본문 바로가기

Unreal/득우짱의 언리얼

Chapter13 프로젝트의 설정과 무한 맵의 제작

1. 새로운 모듈을 추가하려면 언리얼 빌드 규칙을 이해하고, 이에 따라 폴더와 파일을 생성해야 한다. 추가 모듈 제작을 위해 필요한 요소는 다음과 같다. 

모듈 폴더와 빌드 설정 파일 - 모듈 폴더와 모듈 명으로 된 Build.cs 파일

모듈 정의 파일 - 모듈명으로 된 .cpp 파일


2. 비쥬얼 스튜디오에서 추가한 모듈을 빌드하도록 각 Target.cs 파일은 게임 빌드와 빌드 설정을 지정해준다.

이렇게 하면 빌드시 Binaries폴더에 DLL이 생성된다. 그렇다면 얼리얼 에디터가 이 DLL을 로딩하도록 명령하는 일만 남았다.

이를 uproject 파일에 새로운 모듈에 대한 정보를 기입한다.



3. 생성자 코드에서 캐릭터 애셋을 코드로 지정할 수 있지만, 만일 애셋이 변경되면 코드를 다시 만들고 컴파일해야 하는 번거로움이 있다. 언리얼 엔진은 언리얼 오브젝트의 기본값을 유연하게 관리하도록 외부 INI 파일에서 기본 속성 값을 지정하는 기능을 제공한다.

애셋은 경로 정보만 알면 프로그램에서 이를 참조해서 로딩할 수 있다. 이 애셋 경로 정보를 보관하기 위해 언리얼 엔진은 FSoftObjectPath라는 클래스를 제공한다.


4. 언리얼 오브젝트가 기본값을 INI 파일에 불러들이려면 UCLASS 매크로에 config 키워드를 추가해 여기에 불러들일 INI 파일의 이름을 지정하고,

불러들일 PROPERTY 속성에는 Config 키워드를 선언해야 한다. 이렇게 선언하면 언리얼 엔진은 언리얼 오브젝트를 초기화할 때 해당 속성의 값을 INI 파일에 읽어서 설정한다.


5. 언리얼 엔진이 초기화되면 엔진 구동에 필요한 모듈이 순차적으로 로딩된다. 모듈이 로딩되면서 모듈은 자신에게 속한 모든 언리얼 오브젝트의 기본값을 지정해 생성해 내는데, 이를 클래스 기본 객체라 한다. 그래서 엔진이 초기화되면 모든 언리얼 오브젝트 클래스 기본 객체가 메모리에 올라간 상태가 된다. GetDefault 함수를 사용해 가져올 수 있고, 엔진이 종료될때까지 메모리에 상주한다.


6. 비동기 방식으로 애셋을 로딩하는 기능을 제공하는 FStreamableManager는 프로젝트에서 하나만 활성화 하는것이 좋다.


흠~~~