Unreal 4

Unreal Framework - Init

이전 글에서 PreInit 과정까지 알아보았습니다. PreInit 과정까지는 세상을 만들 재료를 준비하는 과정이었다면, Init은 세상을 만드는 과정입니다. Init은 우리가 직접 사용하는 언리얼 엔진과 더 가까운 내용이 많기 때문에, PreInit보다는 자세히 알아보는 게 좋을 것 같습니다. FEngineLoop::Init 언리얼 엔진의 Init 과정은 FEngineLoop::Init() 함수에서 처리합니다. FEngineLoop::Init함수의 내용을 요약해보았습니다. int32 FEngineLoop::Init() { // Engine 객체 만들기 FString GameEngineClassName; GConfig->GetString(TEXT("/Script/Engine.Engine"), TEXT("G..

Unreal 2023.12.07

Unreal Framework - PreInit

저번 글에서는 언리얼 프레임워크의 큰 틀에 대해서 알아보았다. 이번엔 언리얼 엔진의 PreInit 과정에 대해 좀 더 자세히 알아보도록 하겠다. GEngineLoop 언리얼 엔진의 메인 함수에서 'int32 ErrorLevel = EnginePreInit( CmdLine );' 와 같은 선언문으로 PreInit 작업이 시작됩니다. EnginePreInit 함수 내부에서는 간단히 GEngineLoop 객체의 PreInit() 이라는 함수를 호출해줍니다. GEngineLoop 객체는 Laucn.cpp에 전역 변수로 선언되어 있습니다. 참고로 GEngineLoop 객체는 이후에도 Init 과정과 Tick 과정에도 사용됩니다. GEngineLoop 객체의 역할은 메인 엔진 루프 구현입니다. //Launch.cp..

Unreal 2023.12.05

Unreal Framework

게임 프레임워크라고 한다면 게임이 종료될 때까지 무한루프를 돌며 입력을 받고, 게임 로직을 처리하는 형태가 떠오릅니다. 언리얼 엔진의 프레임워크도 이와 크게 다르지는 않습니다. 그러나 물론 언리얼 엔진의 강력한 기능들을 구현하기 위해자세히 들어가면 훨씬 복잡합니다. 따라서 언리얼 엔진의 기능들을 제대로 활용하기 위해서는 언리얼 엔진의 프레임워크를 공부할 필요가 있다고 생각되어 이 글을 작성하게 되었습니다. 한 번에 모든 내용을 쓰기는 어려우니, 이번 글에서는 언리얼 프레임워크의 큰 틀에 대해서만 다뤄보겠습니다. 엔트리 포인트 언리얼에는 수많은 모듈들이 있습니다. 그 중 우리가 궁금한 언리얼 엔진의 메인 함수는 'Launch' 라는 모듈에 있습니다. 솔루션 탐색기에서 UE5 > Source > Runtim..

Unreal 2023.12.05

애니메이션 블루프린트 초급

어떤 캐릭터를 제대로 만들려면 메시(형태)뿐만 아니라 애니메이션(움직임)도 있어야 한다. 언리얼 엔진에서는 이를 Animation Blueprint를 통해 쉽게 구현할 수 있다. 그럼 Animation Blueprint를 어떻게 만들면 좋을지 알아보자. 1. 재료 구하기. 우선 캐릭터를 만들려면 재료가 필요하다. 마음에 드는 메시, 스켈레톤, 애니메이션 파일들을 구해보자. 나는 언젠가 이달의 무료 에셋으로 다운받았던 Fox 에셋을 사용할 것이다. 에픽 게임즈에서 받은 에셋들은 보통 프로젝트에 추가 버튼을 누르고 진행하면 자동적으로 필요한 모든 재료가 언리얼 엔진에서 사용가능한 형태로 임포트 된다. 그러나 다른 외부에서 받은 FBX파일들은 따로 임포트 해주어야 한다. 임포트 하는 방법은 파일을 언리얼 엔진..

Unreal 2023.10.24