스태틱 메시 모프 타깃

모프 타깃과 WorldPositionOffset 을 사용하여 스태틱 메시를 변형시키는 방법입니다.

Choose your operating system:

Windows

macOS

Linux

모프 타깃(morph target)은 기본 형태에서 목표 형태로 메시를 변형(deform)시키는 수단입니다. 보통 애니메이션 시스템의 일부로써 스켈레탈 메시와 함께 사용되나, StaticMeshMorpher.ms MaxScript와 StaticMeshMorphTarget 머티리얼 함수 를 통해, 스태틱 메시 역시도 모프 타깃을 사용하여 변형시킬 수 있도록 구성하는 것이 가능해 졌습니다.

이 방법은 다중 UV 채널, 버텍스 컬러, WorldPositionOffset 을 사용하여 변형을 합니다. 각 모프 타깃에 대한 버텍스의 오프셋은 UV 채널의 버텍스 컬러로 저장됩니다. 그 후 StaticMeshMorphTarget 머티리얼 함수로 추출한 다음 머티리얼에서 사용할 수 있게끔 만들어 줍니다. 그걸 머티리얼의 WorldPositionOffset 입력으로 전달해 줌으로써 메시의 버텍스를 모프 타깃에 있는 버텍스 위치로 변형시킬 수 있는 것입니다.

스크립트 셋업과 설치

StaticMeshMorpher.ms MaxScript의 위치는 UE4/Engine/Extras/FX_tools/3DSMax2012_x64/ 입니다.

StaticMeshMorpher.ms MaxScript를 실행하려면:

  1. 3dsmax 에서, MAXScript 메뉴의 Run Script... 를 선택합니다.

  2. 자신의 StaticMeshMorpher.ms MaxScript 위치로 이동하여 엽니다.

  3. 스크립트의 인터페이스가 표시되어 사용할 수 있습니다.

스크립트에 키 조합을 지정하거나 커스텀 메뉴에 추가하여 쉽고 빠르게 실행시킬 수 있습니다.

모프 타깃 만들기

모프 타깃은 같은 메시에 버텍스가 변형된 인스턴스가 다수 필요합니다. 예를 들어, 녹는 눈덩이는 세 가지 형태가 있을 수 있습니다:

Game Model

Morph target 1

Morph target 1

게임 모델

모프 타깃 1

모프 타깃 2

모프 타깃은 (두 개의 모프 타깃을 패킹한다 가정하고) UV 채널 2 번과 3 번에 패킹되며, 원한다면 모프 타깃 1 에 대한 노멀 역시도 메시의 버텍스 컬러에 저장할 수 있습니다.

모프 타깃을 패킹하려면:

  1. Pick Game Mesh 버튼을 누른 다음 씬의 게임 모델 메시를 선택합니다.

    Game Mesh Selected

  2. Pick Morph Target 1 버튼을 누른 다음 씬의 첫 모프 타깃에 대한 메시를 선택합니다.

    Morph Target 2 Selected

  3. 씬의 둘째 모프 타깃이 있는 경우, 위의 과정을 반복합니다.

    Morph Target 2 Selected

  4. 원한다면 Store Morph 1 Normals (모프 1 노멀 저장) 체크박스를 선택합니다.

  5. Pack Morph Targets 버튼을 눌러 모프 타깃을 UV 채널에 패킹하는 프로세스를 시작시킵니다.

    Morph Packing Progress

  6. 메시는 평소처럼 3dsMax 에서 익스포트하여 언리얼로 임포트할 수 있습니다. 이 프로세스 관련 자세한 내용은 FBX 스태틱 메시 파이프라인 페이지를 확인하시기 바랍니다.

머티리얼 셋업

StaticMeshMorphTargets 함수는 스태틱 메시 에 적용된 머티리얼 내 모프 타깃과 노멀에 접근할 수 있습니다. 이 함수에는 모프 타깃 둘에 해당하는 출력이 둘, 노멀에 해당하는 출력이 하나 있습니다. 모프 타깃 출력은 머티리얼 노드의 WorldPositionOffset 입력 채널에 연결할 수 있는 값을 내 주는 반면, 노멀 출력은 예상대로 머티리얼 노드의 Normal 입력 채널에 연결할 수 있습니다.

베이스 메시와 모프 타깃의 모프 작업을 위해, 하나 이상의 LinearInterpolate 표현식에 Alpha 입력을 돌리는 ScalarParameter 를 같이 사용합니다. 이를 통해 게임플레이 코드나 마티네에서 모프 타깃을 실시간으로 구동시킬 수 있습니다.

구성 예제는 다음과 같습니다 (모프 네트워크만):

morph_material_setup.png

위의 네트워크에서 Time 파라미터가 0 에서 1 로 이동할 때의 결과는 다음과 같습니다:

morph_result.png

언리얼 엔진 문서의 미래를 함께 만들어주세요! 더 나은 서비스를 제공할 수 있도록 문서 사용에 대한 피드백을 주세요.
설문조사에 참여해 주세요
건너뛰기