🔸2024년 10월 추가 설명
현재 블로그 리뉴얼을 위해 새로운 블로그를 개설하여 글을 작성중입니다. 이 포스팅은 'Unreal Engine 4'를 기준으로 설명하고 있으므로 'Unreal Engine 5'에 대한 내용을 참고하고 싶으시다면 아래 링크를 통해 리뉴얼한 내용을 참고하시길 바랍니다.
🔸언리얼 엔진5 플러그인 생성방법
이번 포스팅에서는 언리얼 엔진에서 사용할 플러그인을 생성하고 사용할 수 있게 준비하는 부분에 대해서 설명하겠습니다.
해당 플러그인을 생성한 개발 환경은 아래와 같습니다. (꼭 같을 필요는 없습니다. ^^ 본인의 설치된 환경에서 그대로 진행해주시면 됩니다.)
- OS : Windows
- Engine Version : 4.26
- IDE : Visual Studio 2017 community
프로젝트를 C++ 프로젝트로 생성하고 [편집] - [플러그인]을 선택합니다. 그러면 플러그인 창이 나타나는데 우측 하단에 '새 플러그인' 버튼을 클릭하면 새로운 플러그인을 생성하기 위한 창이 나타납니다.
새 플러그인 창에서 '기본' 플러그인을 선택하고 플러그인의 이름을 입력합니다. 그 아래 Descriptor Data는 플러그인 설명이므로 안 적어도 됩니다. (수정은 언제든지 할 수 있습니다) 우측 하단의 '플러그인 생성' 버튼을 클릭하면 플러그인이 만들어집니다.
플러그인이 만들어지면 Visual Studio가 실행됩니다. 먼저 플러그인에 대한 컴파일이 이루어지고 이를 자동으로 실행하여 솔루션 탐색기를 통해 생성된 플러그인을 확인할 수 있습니다. 플러그인을 만들게 되면 프로젝트가 있는 폴더에 'Plugins' 폴더가 생성되고 방금 생성한 플러그인 이름의 폴더가 있습니다.
여기서 하나 알아두어할 점은 블루프린트 콘텐츠만을 담는 플러그인의 경우, 굳이 C++ 프로젝트를 만들 필요는 없습니다. 위의 우측 이미지처럼 블루프린트 프로젝트를 만들면 플러그인 생성 시 '콘텐츠 전용' 하나만 선택할 수 있습니다.
플러그인은 모듈을 감싸고 있는 껍데기입니다. 이 껍데기는 다른 여러 프로젝트에서 사용될 수 있습니다. 플러그인에는 여러 모듈을 넣을 수 있습니다. 이 모듈은 플러그인 폴더의 'Source' 폴더에 존재합니다. 이 소스코드 모듈을 언리얼 프로젝트에서 인식시켜 사용할 수 있도록 해주는 것이 플러그인입니다.
즉, 언리얼 엔진은 소스코드를 모듈화하여 빌드하고 로드하여 사용합니다. 플러그인에서 사용하는 모듈과 프로젝트에 사용하는 모듈은 별개로, 각각 빌드하여 모듈을 라이브러리로 만들고 언리얼 엔진 프로젝트 로드할 때 불러옵니다.
모듈은 크게 모듈의 이름을 한 헤더(.h) 파일과 소스(.cpp) 파일이 있고, 이들을 빌드시스템(모듈명.Build.cs)을 통해 컴파일하여 라이브러리를 만든 뒤 언리얼 엔진에서 불러와 사용할 수 있게 합니다.
아마 C++ 프로젝트를 생성해보았다면 Source 폴더 안에 마찬가지로 프로젝트 이름의 모듈이 있는 것을 확인할 수 있습니다. 이는 프로젝트에서만 사용하는 소스 모듈입니다.
플러그인 모듈(TestPlugin)의 Build.cs의 소스코드를 아래와 같이 수정합니다.
using UnrealBuildTool;
public class TestPlugin : ModuleRules
{
public TestPlugin(ReadOnlyTargetRules Target) : base(Target)
{
PCHUsage = ModuleRules.PCHUsageMode.UseExplicitOrSharedPCHs;
//bFasterWithoutUnity = true;
MinFilesUsingPrecompiledHeaderOverride = 1;
bUseUnity = false;
PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore" });
PublicIncludePaths.AddRange(new string[] { "TestPlugin/Public" });
PrivateIncludePaths.AddRange(new string[] { "TestPlugin/Private" });
}
}
기존 생성자 안에 내용을 지우고 소스코드를 위와 같이 작성합니다. 그리고 프로젝트를 빌드합니다.
※ 빌드 시 가끔 UE4 프로젝트가 시작프로젝트로 설정되어 있을 수 있으니 꼭 현재 프로젝트(위의 예제로 설명하면 PluginTest)로 시작 프로젝트가 설정되어 있는지 확인하시고 빌드해주세요.
컴파일이 완료되면 아래와 같은 로그가 출력됩니다.(정상일 때 예시)
프로젝트를 빌드하면 플러그인의 컴파일도 같이 수행되므로 이에 따라 라이브러리가 생성됩니다. 물론 이미 플러그인을 생성할 때 언리얼 엔진이 자체적으로 컴파일을 수행하고 플러그인 모듈을 자동 로드합니다. 이를 확인하기 위해 메뉴에서 [창] - [개발자 툴] - [모듈]을 눌러서 플러그인 이름으로 검색하면 확인할 수 있습니다.
이제 플러그인을 작업할 준비가 되었습니다. 다음 포스팅에서 C++ 클래스를 생성하여 플러그인을 사용하는 방법에 대해서 설명하겠습니다.