🎮Unreal4/C++

[UE4] Mesh Component, Mesh Assets 만들기 (CreateDefaultSubobject, ConstructorHelpers, FObjectFinder)

공대 컴린이 2023. 2. 27. 00:40
728x90

🚩 Mesh Component

블루프린트 내에 생성할 Mesh Component를 C++ 클래스로 만들어보자.

먼저 .cpp 클래스에서 생성될 Mesh Component 변수를 선언해준다.

 

이후 컴포넌트의 초기화 소스코드를 사용하기 편리하도록 템플릿화 하였다.

컴포넌트 생성은 CreateDefaultSubobject 함수를 이용하여 생성할 수 있고, 매개변수로 컴포넌트의 이름이 들어간다.

블루프린트에서는 Root 컴포넌트가 기본인 Default Component로 정의되어 있지만, C++ 클래스로 생성할 시 Root 컴포넌트는 NULL이므로 꼭 지정해주어야 한다.

이는 SetRootComponent 함수를 이용해 초기화해주었다.

 

이렇게 만들어진 컴포넌트 생성 함수를 이용하여 Mesh Component를 생성하였다.

 

이후 C++클래스 기반 블루프린트 클래스를 생성한 결과를 보면 RootComponent가 Mesh로 만들어져있는 블루프린트가 생성되어있다.

🚩 Mesh Assets

이후 Mesh 컴포넌트에 Mesh를 불러와서 초기화시켜보았다.

 

프로젝트 내에 에셋을 불러와 Mesh로 가져오는 과정 또한 컴포넌트 생성 함수처럼 템플릿화하여 함수로 만들었다.

 

에셋을 가져올 땐 ConstructorHelpers 클래스 안에 있는 FObjectFinder 함수를 이용한다. 매개변수로 에셋이 존재하는 경로를 넣어 사용할 수 있다.

 

컴파일 후 블루프린트 클래스를 확인해보면 Mesh가 불러온 에셋대로 잘 초기화되었고, 에디터 내에서도 블루프린트 클래스의 미리보기 화면에 Mesh가 정상 출력되는것을 볼 수 있다.

728x90