본문 바로가기
둥지/Unreal

Unreal 모프타겟 다뤄보기

by 까닭 2023. 8. 21.
블로그 내용 참고 영상

 

1) 모프타겟(Morph Target)이란

모프타겟이란 변형된 메시의 정점 위치에 대한 스냅샷을 말한다. 예를 들어, 아티스트가 캐릭터 모델의 얼굴을 변형하여 얼굴 표정을 만든 다음 그 수정된 버전을 모프타겟으로 저장한다. 그렇게 만든 모프타겟을 통해 표정의 정점 위치를 블렌딩하여 캐릭터가 여러 표정을 짓도록 만들 수 있다.

 

모프 타깃 프리뷰어

애니메이션 에디터에서 사용가능한 편집 모드 사용 안내서입니다.

docs.unrealengine.com

 

FBX 모프 타깃 파이프라인

FBX 콘텐츠 파이프라인을 사용하여 모프 타깃을 임포트, 익스포트하고 셋업하는 방법에 대해서입니다.

docs.unrealengine.com

 

 

2) 모프타겟 Export(Blender)

먼저 여러 표정의 얼굴 메시를 아래 링크에서 다운로드 받은 후 블렌더로 Import한다.
만약, 사용할 아트 툴이 마야나 맥스라면 아래 참고.

 

언리얼 엔진의 Fbx 모프 타깃 파이프라인 | 언리얼 엔진 5.4 문서 | Epic Developer Community

FBX 콘텐츠 파이프라인을 사용하여 스켈레탈 메시를 위한 모프 타깃을 생성 및 임포트합니다.

dev.epicgames.com

 

아래 모델은 상단 영상의 유튜버 분이 제작해놓은 에셋이다.
다음에는 얼굴 메시를 직접 만들어서 나만의 모프타겟을 만들어보자.

 

Head Expressions - Download Free 3D model by Phil McClenaghan - Sketchfab

An array of morph targets for a cartoony head. The base mesh is in the top left.

sketchfab.com

 

블렌더에서 위 모델을 열면 아래와 같다.

 

 

아무 표정이 없는 기본 얼굴을 선택한다.

 

 

그리고 삼각형 모양의 Object Data Properties 탭에서 Shape Keys 속 + 버튼을 누른다.

 

 

기본 표정을 제외한 다른 표정 메시 오브젝트들을 선택한 ▽ 버튼(Object Data Properties) 내 Join as Shapes를 선택한다.

 

 

그러면 Shape Keys 내 Shape Key들이 추가되는 걸 확인할 수 있다.

 

 

이제 얼굴 모델을 .FBX 형식으로 Export하고 이를 언리얼에 Import한다.

Import 시 고급 옵션 내 Import Morph Targets를 체크해준다.

 

 

Import한 스켈레탈 메시를 열어보면 Morph Target Previewer가 보이면서 표정마다 블랜딩되는 가중치를 조절할 수 있다.

 

 

이제 모프타겟을 인게임에서도 수정하면서 확인해보자.

얼굴의 스켈레탈 메시를 하위로 둔 액터 블루프린트 클래스를 하나 만들어준다. 그리고 아래와 같은 커스텀 이벤트를 만든다.

 

 

그리고 위젯 블루프린트를 추가해준다.

표정이 블렌딩되는 가중치를 슬라이더로 조절하기 위해 아래처럼 만들어준다.

 

 

그리고 이벤트 그래프에서 슬라이더의 OnValueChanged 이벤트 호출 시 얼굴 액터의 커스텀 이벤트를 호출한다.

 

 

위젯 블루프린트에서 얼굴 액터를 세팅해야 하기 때문에 얼굴 액터의 Instance Editable, Expose on Spawn 속성을 체크한다.

 

 

얼굴 액터 블루프린트에서 아래와 같은 로직을 넣고 Create Widget 노드를 선택한 후 Refrash Nodes를 선택한다.

 

 

노드를 Refrash될 경우 아래처럼 인자 추가가 가능하다.

 

 

결과