전체 글
-
[Algorithm] BFS 격자 탐색 (dx, dy + dz)기타 2023. 10. 16. 00:51
BFS는 그래프 탐색에 자주 사용되는 알고리즘입니다. 기본적인 BFS는 인접 행렬, 인접 리스트 등 노드와 노드 사이의 연결 관계를 나타낸 그래프를 Queue를 이용하여 탐색합니다. 이번 글에서는 주어진 데이터가 인접 행렬, 인접 리스트가 아닌 경우의 예시를 살펴보도록 하겠습니다. 1. 입력 데이터 및 조건 더보기 주어지는 데이터의 예시는 다음과 같습니다. // pseudo code int arr[][] = { 0, 1, 1, 0, 1, 1, 0, 1, 1 ,1, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0 }; 위와 유사한 2차원 배열이 주어집니다. 주어진 배열의 노드 (X, Y)에 연결된 노드는 다음과 같습니다. (X+1, Y) (X-1, Y) (X, Y+1) (X,..
-
[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..
-
[Gatsby] Gatsby start기타 2023. 8. 31. 12:41
Gatsby(이하 개츠비)는 React를 기반으로 한 웹 사이트 생성 프레임워크 입니다. 개츠비에 대한 소개는 아래 공식 웹 페이지에서 더 자세한 내용을 확인할 수 있습니다. Gatsby 이번 글에서는 개츠비를 사용하여 웹 페이지를 생성하는 과정을 간단하게 살펴보도록 하겠습니다. 1. Node.js 설치 더보기 개츠비는 Node.js기반 프레임워크입니다. Node.js 노드가 설치되어 있지 않다면, 위 링크를 통해 설치할 수 있습니다. 본 글에서 사용된 노드의 버전은 18.17.1입니다. 2. Git 설치 더보기 개츠비 프로젝트는 VCS로 Git을 사용합니다. 아래 문단에서 확인할 수 있지만, 개츠비 프로젝트를 생성할 때 자동으로 git이 생성됩니다. Git Git은 위 링크를 통해 설치할 수 있습니다...