티스토리 뷰
사내 프로젝트에서 C++로 자체 개발한 라이브러리를 UE에 적용하는 작업이 생겨서, 관련 정보에 대해 리서치한 내용을 작성하였습니다.
신규 프로젝트를 생성하고 플러그인 템플릿을 만드는 과정을 설명합니다.
이 글은 UnrealEngine 5.1을 기준으로 작성되었습니다.
EpicGamesLauncher에서 UE를 실행합니다.
기본 프로젝트를 C++로 설정하고 적당한 프리셋과 이름을 정한 뒤 새 프로젝트를 생성합니다.
UE 에디터가 열리면 Edit > Plugins를 클릭하여 Plugins 창을 엽니다. (보통 Visual Studio와 함께 열립니다)
좌측 상단의 +Add 버튼을 클릭합니다.
항목에서 Blueprint Library를 선택하고 플러그인 이름을 입력한 뒤 Create Plugin 버튼을 클릭합니다.
열려있는 Visual Studio를 활성화 하면 위와 같은 창이 뜹니다. 모두 다시 로드를 클릭합니다.
만약 Visual Studio가 열려있지 않다면, 프로젝트 폴더로 이동하여 sln 솔루션 파일을 엽니다.
솔루션 탐색기에서 프로젝트의 Plugins 필터가 생성된 것을 확인할 수 있습니다.
우리는 XXXBPLibrary.h와 XXXBPLibrary.cpp 파일을 중점으로 사용합니다.
위 두 개의 파일이 Blueprint에서 사용될 기능을 정의합니다.
XXXBPLibrary.h 파일을 열어보면 Blueprint에 어떻게 표시될 지와, 해당 함수를 선언합니다.
UFUNCTION() 매크로의 meta는 다음과 같습니다.
- DisplayName = Blueprint에 표시될 이름 (검색 등)
- Keywords = 마우스 우측버튼 등으로 표시된 검색에서 검색되는 키워드
- Category = 검색 항목에서 표시될 카테고리 (리스트 폴딩)
XXXBPLibrary.cpp 파일을 열어보면 위의 함수 선언에 대해 정의를 합니다.
테스트를 위해 위와 같이 내용을 수정해 봅니다.
그리고 수정된 파일을 모두 저장합니다.
다시 UE 에디터로 돌아와서, Ctrl+Alt+F11을 눌러 컴파일 합니다. (Live coding)
Live coding 컴파일이 완료되면, Open Level Blueprint를 선택하여 Level Blueprint 창을 엽니다.
그래프의 빈 공간에 마우스 오른쪽 버튼을 클릭하고, 검색에 begin을 입력하여 Event BeginPlay를 선택합니다.
마찬가지로 그래프의 빈 공간에 마우스 오른쪽 버튼을 클릭하고, 검색에 awesome을 입력하여 우리가 추가한 Execute Sample function을 선택합니다.
다시그래프의 빈 공간에 마우스 오른쪽 버튼을 클릭하고, 검색에 print를 입력하여 Print String을 선택합니다.
추가된 노드를 모두 연결해주고, Execute Sample function의 Param에 값을 12.2로 입력합니다.
Execute Sample function 노드의 Return Value를 Print String 노드의 In String에 연결합니다. (사이의 Convert 노드는 자동으로 생성됩니다)
상단 메뉴에서 Compile을 클릭하여 컴파일을 하고 저장을 합니다.
그리고 Blueprint 편집 창을 닫습니다.
플레이를 눌러 좌측 상단에 결과값을 확인합니다.
Param(12.2) * 2 = 24.4 결과가 잘 나온것을 확인할 수 있습니다.