개발일지

2022/11/18 개발 일지

myroad 2022. 11. 18. 09:19

RunUAT.bat로 플러그인 패키징하기

언리얼 에디터의 플러그인 창에서 해당 플러그인을 패키징 할 수도 있지만 만약 "ERROR: Visual Studio 2017 must be installed in order to build this target."와 같은 오류가 발생한다면 cmd에서 RunUAT.bat에 인자들을 주어서 직접 플러그인을 패키징할 수 있다.

 

UE4.27.2 에디터에서 플러그인을 패키징을 하려고 하니 Visual Studio 2017을 설치하라는 오류가 발생하였고 현재 Visual Studio 2019가 설치된 상황에서 플러그인을 패키징하기 위해 2017을 다시 설치하고 싶지는 않았다. 

 

따라서 cmd에서 RunUAT.bat에 -VS2019 인자을 주어서 해당 플러그인의 패키징을 시도하였다.

 

명령은 아래와 같은 형식을 취한다.

UE4Dir\Engine\Build\BatchFiles\RunUAT.bat  BuildPlugin  -Rocket  -Plugin=PluginDir\Plugin.uplugin  -TargetPlatforms=Win64  -Package=OutputDir  -VS2019

 

UE4Dir\Engine\Build\BatchFiles\RunUAT.bat - 엔진의 RunUAT.bat경로

BuildPlugin - 플러그인 빌드 명령

-Rocket - UE4베타 버전의 잔재라고 하는데 이 명령을 빼고 빌드해도 정상적으로 빌드된다.

-Plugin=PluginDir\Plugin.uplugin - 빌드할 플러그인의 전체 경로

-TargetPlatforms=Win64 - 빌드할 타겟 플랫폼

-Package=OutputDir - 빌드된 플러그인을 저장할 폴더 경로

-VS2019 - 빌드에 사용할 컴파일러 버전(만약 추가하지 않으면 UE4.27.2은 VisualStudio2017을 사용할려고 할 것이다.)

 

이것은 내가 플러그인을 빌드하기 위해 실제 사용한 명령이다.

D:\Program Files\Epic Games\UE_4.27\Engine\Build\BatchFiles\RunUAT.bat BuildPlugin -Rocket -Plugin=D:\UnrealWork\PatcherPluginBuild\Plugins\Patcher\Patcher.uplugin -TargetPlatforms=Win64 -Package=D:\UnrealWork\PatcherPluginBuild\Release -VS2019

 

플러그인을 빌드후 이렇게 저장되었다.

 

 

참고 링크1 - https://mercuna.com/building-binary-plugins-in-unreal-engine-4/

 

How to Build Binary Plugins in UE4 | Mercuna

Mercuna builds binary plugins for our evaluations. Learn how we do it.

mercuna.com

참고 링크2 - https://forums.unrealengine.com/t/build-plugin-package-with-vs-2019/481084

 

Build plugin package with vs 2019

Hi there, I’m trying to create a package of a plugin that i’ve created using 4.26, but the build fail with the following error UATHelper: Package Plugin Task (Windows): ERROR: Visual Studio 2017 must be installed in order to build this target. i wasn

forums.unrealengine.com


패키징한 플러그인의 소스코드을 숨기고 싶다면~

패키징한 플러그인의 소스코드을 숨기고 배포하고 싶다면 플러그인의 패키징 폴더에서 Private은 삭제하고 Public만 남겨 놓고 배포하면 된다.


패키징한 플러그인을 에디터에서만 작동하고 게임 패키징은 안되게 하고 싶다면~

만약 배포한 플러그인인 에디터에서만 사용할 수 있고 해당 플러그인을 사용한 게임의 게임 패키징은 안되게 하고 싶다면 Intermediate\Build\Win64\UE4 폴더을 삭제해서 배포한다.


Patcher플러그인 패키징 후 블루프린트 Demo프로젝트 테스트

웹 서버로 부터 pak파일을 다운받아 마운트하는 Patcher플러그인을 패키징한 후 실제로 순수 블루프린트 프로젝트에 적용하여 테스트 하는 데모을 만들어 보았다.

 

일단 패키징 한 Patcher 플러그인을 엔진 Plugin/Marketplace폴더에 추가해 주었다. 이렇게 하면 언리얼 에디터을 실행하면 언제든 사용할 수 있다.

데모 프로젝트을 실행시키면 이렇게 플러그인을 볼 수 있다.

그리고 프로젝트에서 패치을 위한 게임 모드및 위젯등을 만들어 준다.

그 다음 해 줄것은 pak파일로 만들기 위해 데이터 에셋을 만들어 주고 ChunkID등을 설정해 주는 과정이다.

그리고 게임 패키징을 위해 프로젝트 세팅에서 청크 관련 설정들을 해 준다. 기본 설치외에 나머지 리소스은 pak파일로 만들어 웹 서버에 업로드 할 것이다.

그리고 게임을 Windows플랫폼으로 패키징해 준다.

패키징한 결과이다. 실행 파일와 기본설치 pak파일외에 추가적으로 아래와 같은 pak파일들이 생성된다. 그리고 이 pak파일을 웹 서버에 업로드 해 주면 된다.

그리고 테스트 해본 결과이다.

패처을 초기화 하고 패치을 실행한 후 다운받은 pak파일에 있는 레벨에 입장하는 과정이다.