컴퓨터가 망가져서 고친 후에 프로젝트의 초기 설정들이 모두 엉망진창이 되었었다.
특히 Unreal Plugin 미설정으로 인해 프로젝트 파일이 안열리고 팅기고.. 해서 해결 방법에 대해 적어보려고 한다.
그렇게 어렵진 않지만 쉽게 잊을 수 있을 것 같아 정리한다.
에러의 내용은 다음과 같다.
"The game module '{ProjectName}' could not be loaded. There may be an operating system error or the module may not be properly set up."
Module을 찾을 수 없다는 의미이고 프로젝트가 열릴 때 Module을 사용할 수 없는 상태라는 의미이기도 하다.
본인이 프로젝트에서 어떤 Module을 사용하고 있는 지 먼저 파악해야 한다.
프로젝트를 본인이 사용하고 있는 IDE로 열어주고, Build.cs 파일을 확인한다. ({ProjectName}.Build.cs)
안에 내용을 보면 나의 경우에는 이렇다.
사실 다른 건 언리얼에서 기본적으로 처리해주기 때문에 크게 신경쓸 필요는 없지만,
기본으로 적히지 않은 내가 새로 적은 Module들은 처리가 필요하다.
나의 경우에는 MeshDescription, StaticMeshDescription, DynamicMesh, ModelingComponents, MeshConversion의 Module들의 초기 설정을 수행해야 했다.
먼저 두 가지의 분류로 나눌 수 있는데, Module이 Engine Source에 포함되어 있는 경우, Module이 Plugin 형식으로 포함되어야 하는 경우이다.
이 두가지를 판별할 수 있는 방법은 뭐.. 뻔하긴 하지만 UE Documents를 보는 것이다.
Module의 이름을 구글링해보면 (예시로 MeshDescription을 검색했다.)
대충 뭐 이런 언리얼 문서를 확인할 수 있다.
여기서 아무 클래스나 함수, 변수 등을 눌러보면
이런 식으로 References 정보가 나타난다. 이 때 이 코드의 헤더파일의 위치를 보면 이 모듈이 엔진에 속해있는지 플러그인 형식으로 추가해주어야 하는지 판단할 수 있는데, 해당 모듈 (MeshDescription) 같은 경우에는 Engine/Source/Runtime ... 으로 엔진에 속한 모듈임을 알 수 있다.
이렇게 Engine에 속한 모듈을 따로 처리가 필요하지 않다. 그러나 Plugin 형식으로 제공되는 모듈은 설정이 필요하다.
두 번째 경우를 살펴보자.
이번에 찾아볼 모듈은 ModelingComponents이다.
앞서 수행한 것과 똑같이 언리얼 문서를 찾아보고, 해당 모듈의 헤더파일의 위치를 확인한다.
ModelingComponents의 헤더파일 위치는 위 그림과 같고, 경로가 Engine/Plugins/...인 것을 확인할 수 있다.
이 경우에는 이 플러그인의 설정에서 기본으로 플러그인이 Enable되도록 바꾸어 주어야 한다.
먼저 Unreal Engine이 설치된 경로로 들어가준다.
나의 경우에는 C:\Program Files\Epic Games\UE_4.26 이 경로로 들어갔고, 여기서 해당 플러그인의 폴더로 들어가준다.
이 경우에는 C:\Program Files\Epic Games\UE_4.26\Engine\Plugins\Experimental\MeshModelingToolset 이 경로로 들어가게 될 것이고, 여기서 .uplugin 파일 확장자를 열어준다.
이런식으로 확인할 수 있는데, 여기서 중요한 것은 저 "EnableByDefault": true 이다.
기본 설정을 Enable로 바꿔서 언리얼에서 모듈을 인식할 수 있도록 해준다.
해당 구문이 없다면 해당 구문을 추가해주고, 해당 구문이 이미 있다면 다른 모듈들을 다 확인해준다.
이러한 방식을 다른 모듈들에도 적용해주고 다시 .uproject Generate Visual Studio project files를 수행하면 해결된다.