언리얼 C++ 프로그래밍

[언리얼 C++] 컨텐츠 애셋 유형 - 메시

언린이 2021. 8. 18. 20:42

메시에는 두 종류가 있습니다. 바로 스켈레탈 메시와 스태틱 메시입니다.

스켈레탈 메시는 애니메이션을 적용하여 메시를 변형시킬 수 있도록 설계된 계층형 본 스켈레톤에 묶인 메시입니다.

스태틱 메시는 비디오 메모리에 캐시되고 그래픽 카드에서 렌더링할 수 있는 폴리곤 세트로 구성되는 지오메트리 조각입니다.

 

 

1. 스켈레탈 메시

스켈레탈 메시는 두 부분으로 이루어져 있습니다. 스켈레탈 메시의 표면을 구성하는 폴리곤 세트와 폴리곤의 버텍스 애니메이션에 사용할 수 있는 계층형 상호 연결 본 세트입니다.

 

언리얼 엔진 4에서 스켈레탈 메시의 주 용도는 캐릭터나 기타 애니메이트 오브젝트를 나타내는데 쓰입니다. 3D 모델, 리깅, 애니메이션은 외부 모델링/애니메이션 어플리케이션으로 만든 다음 언리얼 에디터의 컨텐츠 브라우저를 사용하여 언리얼 엔진 4로 임포트한 뒤 패키지에 저장합니다.

 

 

2. 스태틱 메시

스태틱 메시는 폴리곤 세트로 구성되는 지오메트리 조각을 말합니다. 그 덕에 효율적인 렌더링이 가능해서 브러시와 같은 지오메트리 유형보다 훨씬 더 복잡한 것도 쉽게 렌더링할 수 있습니다. 스태틱 메시는 비디오 메모리에 저장되기 때문에 위치, 방향, 크기를 조절할 수는 있지만, 어떤 식으로든 그 버텍스를 움직일 수는 없습니다.

 

스태틱 메시는 언리얼 엔진으로 제작하는 레벨의 월드 지오메트리를 만드는데 쓰이는 기본 단위입니다. 보통 외부 모델링 프로그램에서 제작된 3D 모델을 컨텐츠 브라우저를 통해 언리얼 에디터로 임포트한 다음 패키지에 저장하여 여러가지 방식으로 사용해서 렌더링 가능한 요소를 만듭니다. 언리얼로 만든 게임이면 어느 맵이든 대부분 스태틱 메시, 주로 스태틱 메시 액터의 형태로 이루어지기 마련입니다. 그 외에도 스태틱 메시가 사용되는 곳은 문이나 승강기와 같은 무버, 리짓 바디 피직스 오브젝트, 폴리지와 지형 장식, 프로시저럴 빌딩, 기타 여러가지 시각 요소 등에 쓰입니다.

 

 

3. C++에서 메시 로드하기

블루프린트 클래스를 생성하고 메시를 설정해줍니다.

 

그런 다음 블루프린트 클래스를 우클릭하고 레퍼런스를 복사해줍니다.

 

static ConstructorHelpers::FObjectFinder<USkeletalMesh> MeshAsset(TEXT("SkeletalMesh'/Game/AnimalVarietyPack/DeerStagAndDoe/Meshes/SK_DeerDoe.SK_DeerDoe'"));

if (MeshAsset.Succeeded())
	GetMesh()->SetSkeletalMesh(MeshAsset.Object);

마지막으로 C++ 코드에서 ConstructorHelpers::FObjectFinder() 함수를 사용하여 복사해준 레퍼런스 경로를 파라미터로 넘겨 메시를 로드하면 됩니다.