스태틱 메시 모프 타깃

모프 타깃 및 WorldPositionOffset을 사용하여 스태틱 메시를 디폼합니다.

Choose your operating system:

Windows

macOS

Linux

모프 타깃(Morph Target) 을 사용하면 메시를 베이스 폼에서 타깃 폼으로 디폼할 수 있습니다. 일반적으로 모프 타깃은 애니메이션 시스템의 일부로 스켈레탈 메시와 함께 사용됩니다. 하지만 StaticMeshMorpher.ms MAXScript와 StaticMeshMorphTarget 머티리얼 함수를 사용하면 스태틱 메시 또한 모프 타깃을 사용하여 디포메이션을 구성할 수 있습니다.

이 메서드는 다수의 UV 채널, 버텍스 컬러, WorldPositionOffset을 사용하여 디포메이션을 수행합니다. 각 모프 타깃의 버텍스 오프셋은 UV 채널에 버텍스 컬러로 저장되어 있습니다. 그런 다음 StaticMeshMorphTarget 머티리얼 함수는 이러한 오프셋을 추출하여 머티리얼 내에서 사용할 수 있게 만듭니다. 이러한 오프셋을 머티리얼의 WorldPositionOffset 입력으로 전달하여 메시의 버텍스가 모프 타깃에서 버텍스의 위치로 트랜스폼될 수 있습니다.

스크립트 구성 및 설치

StaticMeshMorpher.ms MAXScript는 UE4/Engine/Extras/FX_tools/3DSMax2012_x64/에 위치한 빌드에서 찾을 수 있습니다.

StaticMeshMorpher.ms MAXScript를 실행하려면 다음 단계를 따릅니다.

  1. 3ds Max의 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 체크박스를 선택합니다.

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

    Morph Packing Progress

  6. 메시는 3dsMax에서 익스포트하여 언리얼 엔진으로 임포트할 수 있습니다. 이 프로세스에 대한 자세한 내용은 FBX 스태틱 메시 파이프라인 페이지를 참고하세요.

머티리얼 구성

StaticMeshMorphTargets 함수는 모프 타깃에 대한 액세스와 스태틱 메시 에 적용된 머티리얼 내 노멀에 대한 액세스를 제공합니다. 이 함수는 두 개의 모프 타깃과 하나의 노멀 출력과 관련된 두 개의 출력을 가지고 있습니다. 모프 타깃 출력은 Material 노드의 WorldPositionOffset 입력 채널로 연결할 수 있는 값을 제공하며, 노멀 출력은 Material 노드의 노멀 입력 채널에 연결할 수 있습니다.

베이스 메시와 모프 타깃 사이에서 모핑 하기 위해 알파 입력을 구동하는 단일 ScalarParameter 를 가진 하나 이상의 LinearInterpolate 표현식이 사용됩니다. 이렇게 하면 게임플레이 코드 또는 마티네를 통해 런타임에서 모프 타깃을 구동할 수 있습니다.

아래 이미지는 모프 네트워크만 있는 예시 구성입니다.

morph_material_setup.png

위 네트워크에서 Time 파라미터인 결과는 아래 이미지와 같이 0과 1 사이를 오갑니다.

morph_result.png