Unreal Engine 5._
-
[Unreal Engine] LuaMachine : 함수 중복 사용하기 (LuaComponent)Unreal Engine 5._ 2023. 10. 6. 15:30
지난 글 (LuaMachine : Install & Hello World)에서 LuaMachine 플러그인에 대해 소개드렸습니다. 저는 이 플러그인을 모딩 기능을 구현하기 위해 사용했습니다. 제가 사용할 Lua 스크립트의 특징은 다음과 같습니다. 스크립트의 이름은 다음과 같은 형태를 합니다. Script.{ID}.lua ({ID}는 1000~9999까지의 자연수입니다.) 스크립트는 특정한 템플릿에 맞춰 작성되어야 합니다 두 번째 특징인 특정 템플릿의 예시는 다음과 같습니다. 더보기 function Start() end function Process() end function Finish() end 이름에서 알 수 있듯이, 게임의 특정 기능에 대하여 지정된 함수가 호출되는 형식입니다. 모더는 위 함수의 구..
-
[Unreal Engine] USaveGame templatizeUnreal Engine 5._ 2023. 10. 1. 19:26
지난 글(Save&Load)에서 USaveGame객체를 이용해 언리얼 엔진에서 제공하는 Save, Load기능을 사용하는 방법을 알아보았습니다. 이번 글은 지난 글에 이어, 해당 기능을 조금 간편하게 활용할 수 있는 방법을 고찰해보도록 하겠습니다. 지난 글에서 살펴 본 Save & Load의 특징 중 일부는 다음과 같습니다. USaveGame을 상속받은 객체의 값을 Save, Load합니다. 데이터에 대한 Mapping 수단으로 (해당 데이터를 찾는 방법으로) 문자열을 사용합니다. 문자열은 Save, Load함수에서 각각 독립적으로 입력됩니다. 위와 같은 특징을 생각해보았을 때, Save와 Load시 입력되는 문자열이 달라지거나, 다른 USaveGame객체를 사용하게 되는 등의 경우에 대하여 확장성이 부..
-
[Unreal Engine] Save & Load (USaveGame)Unreal Engine 5._ 2023. 9. 24. 23:44
Unreal Engine은 기본적인 데이터 타입에 대한 Save & Load를 지원합니다. 이번 글에서는 데이터를 저장, 로드하는 기본적인 방법에 대해 살펴보도록 하겠습니다. 1. USaveGame 객체 만들기 더보기 저장은 특정한 인스턴스 단위로 이루어집니다. 저장을 지원하는 인스턴스는 USaveGame클래스를 상속받은 객체입니다. // ... UCLASS() class MYGAME_API UMySaveGame : public USaveGame { // ... public: UPROPERTY() int32 data; }; 위와 같이 USaveGame을 상속받는 클래스의 필드는 Save & Load가 가능합니다. 2. 저장하기 : SaveGameToSlot 더보기 USaveGame을 상속받는 클래스를 만..
-
[Unreal Engine] LuaMachine : Android null pointer dereferenceUnreal Engine 5._ 2023. 9. 17. 22:40
LuaMachine플러그인을 적용한 프로젝트를 안드로이드 환경에서 실행시킬 경우, 정상적인 실행이 되지 않는 상황이 발생했습니다. 구체적으로는 다음과 유사한 로그가 출력됩니다. 특정 메모리에서 null pointer dereferencing이 발생했다는 뜻으로 추정되는 에러가 발생합니다. 해당 에러의 원인에 대해서는 알아내지 못 했지만, 해결 방안을 찾아 공유합니다. 문제는 Android NDK의 버전에 있었습니다. LuaMachine은 특정 NDK버전을 요구합니다. 구체적으로, 해당 오류는 Android NDK r21e버전에서 발생하지 않습니다. 해당 버전을 사용하는 방법은 두 가지 입니다. 첫 번째는 NDK를 직접 다운로드 받는 방법입니다. r21e버전은 지원이 중단된 구 버전 NDK로, 다음 링크에..
-
[Unreal Engine] CDO Constructor fail to findUnreal Engine 5._ 2023. 9. 6. 17:49
언리얼 개발 도중, 개발 작업물을 안드로이드 환경에서 실행하는 도중 제목과 같은 문제가 발생했습니다. 두 가지 해결 방안을 찾았는데, 이에 대해 공유해보고자 합니다. 본문은 아래 Unreal Development Community의 글을 참조하고 있습니다. [Feature Request] bDontLoadBlueprintOutsideEditor=false by default 1. 문제 문제가 되는 코드의 예시는 다음과 같습니다. UObject* MyObj = ConstructorHelpers::FObjectFinder( TEXT("Blueprint'/Game/MyContent/MyBlueprint.MyBlueprint'")); UBlueprint* BP_MyObj = Cast(MyObj); FTransf..
-
[Unreal Engine] Solve : On mobile the SkyAtmosphere component needs a mesh with ....Unreal Engine 5._ 2023. 9. 6. 15:02
언리얼 프로젝트를 모바일 환경으로 돌리는 중 발생한 에러 메시지 입니다. 메시지의 전문은 아래와 같습니다. On mobile the SkyAtmosphere component needs a mesh with a material tagged as IsSky and using the SkyAtmosphere nodes to visualize the Atmosphere 위 메시지는 레벨에 SkyAtmosphere를 배치한 모바일 환경에서 발생하는 것으로 추측됩니다. 해당 메시지의 해결 방법을 공유하려 합니다. 본문의 내용은 아래 Unreal Development Commuinty를 참조하고 있습니다. HELP completely lost with the message “On mobile SkyAtmospher..
-
[Unreal Engine] LuaMachine : C++ call Lua functionUnreal Engine 5._ 2023. 8. 22. 14:09
이전 글 (LuaMachine : Lua call C++ function)을 통해 C++의 함수를 Lua에서 실행하는 방법을 살펴보았습니다. 이번 글에서는 반대로 Lua의 함수를 C++에서 호출하는 방법을 살펴보도록 하겠습니다. 1. Sample code 더보기 다음과 같은 Lua스크립트를 작성하도록 하겠습니다. myluascript.lua function add_and_print(val1, val2) print(val1 + val2) end 위 함수는 2개의 인자 (val1, val2)를 더한 값읋 출력하는 함수입니다. 2. Call Lua function in C++ code 더보기 이전 글을 통해 LuaState라는 일종의 Virtual Machine에서 Lua스크립트를 실행하는 것을 살펴보았습니다..
-
[Unreal Engine] LuaMachine : Lua call C++ functionUnreal Engine 5._ 2023. 8. 22. 13:39
이전 글 (LuaMachine : Install & Hello world)에서 LuaMachine을 설치하고, 간단한 텍스트 출력을 하는 방법을 살펴보았습니다. 이번 글에서는 Lua에서 C++의 함수를 실행하는 방법에 대하여 알아보도록 하겠습니다. 1. Sample code 더보기 이전 글에서 만든 LuaState에 다음과 같은 코드를 추가하도록 하겠습니다. MyLuaState.h ... public: UMyLuaState(); UFUNCTION() void AddAndPrint(FLuaValue Val1, FLuaValue Val2); ... MyLuaState.cpp UMyLuaState::UMyLuaState() { Table.Add( TEXT("AddAndPrint"), FLuaValue::Fun..