애니메이션 리타기팅 (다른 스켈레톤)

스켈레톤이 다른 경우에 사용하는 애니메이션 리타기팅 입니다.

Windows
MacOS
Linux

Retarget1_1.jpg

이 기능은 언리얼 엔진 4.5 미만 버전에서는 사용할 수 없습니다.

애니메이션 리타기팅 (다른 스켈레톤) 은 같은 스켈레톤을 공유하지 않는 캐릭터 사이에 애니메이션을 재사용할 수 있도록 하는 기능으로, 같은 스켈레톤 애셋을 공유하는 캐릭터 사이의 애니메이션 리타기팅이 관여되는 애니메이션 리타기팅 과는 다릅니다.

다른 스켈레톤을 가진 캐릭터 사이의 애니메이션 리타기팅 처리는, 한 스켈레톤에서 다른 스켈레톤으로 본 정보를 전달할 때 Rig (릭)이라는 애셋을 사용합니다. 릭을 선택한 이후에는, 소스 스켈레톤과 (애니메이션을 리타기팅하고자 하는) 타깃 스켈레톤 사이에 릭을 공유합니다. 그 작업을 한 이후에는, 타깃 스켈레톤의 을 릭에 저장된 노드 에 일치시킵니다.

타깃 스켈레톤의 모든 본이 릭에 셋업된 이후에는, 소스 스켈레톤에 사용되는 애니메이션을 타깃 스켈레톤에 리타기팅할 수 있습니다. 심지어 전체 애니메이션 블루프린트 를 그에 연관된 데이터 전부와 함께 리타기팅하는 것도 가능하여, 한 스켈레톤에서 다른 스켈레톤으로 애니메이션 애셋을 전부 빠르게 옮기고자 할 경우 시간을 절약해 줍니다.

시작하기

다른 스켈레톤 사이의 애니메이션 리타기팅을 시작하기 위해서는, 두 스켈레톤에 공유할 릭 애셋을 선택해야 합니다. 여기서는 Engine 콘텐츠에 포함되어 있는 Humanoid Rig 에 접근하여 할당해 사용하는 법을 알아보겠습니다.

마켓플레이스 에서 무료로 받을 수 있는 애셋 팩을 두 개 사용하여, 그 안에 있는 여러 스켈레톤과 애니메이션을 리타기팅하는데 사용하도록 하겠습니다. 별도로 사용할 수 있는 스켈레톤 애셋이 둘 있는 경우, 아랫 부분은 건너뛰셔도 됩니다. 그렇지 않은 경우, 다음 방법대로 두 개의 팩을 추가해 주시기 바랍니다.

이 예제에서 사용된 다음 애셋은 마켓플레이스 를 통해 다운로드할 수 있습니다.

  • 소스 스켈레톤 UE4_Mannequin_SkeletonAnimation Starter Pack 에 포함되어 있습니다.

  • 타깃 스켈레톤 SWAT_SkeletonMixamo Character Pack 에 포함되어 있습니다.

위 팩을 설치한 이후에는, 언리얼 런처의 프로젝트에 추가 버튼을 눌러 프로젝트에 추가할 수 있습니다.

AnimationStarterpack2.jpg

Animation Starter Pack 에는 Mixamo Character Pack 의 캐릭터에 리타기팅할 애니메이션이 다수 포함되어 있습니다.

또, 언리얼 엔진 4 버전이 위 그림과 다를 수 있습니다.

아래 단계는 기본 릭과 리타깃 애니메이션을 접근하는 방법을 보여줍니다:

  1. 콘텐츠 브라우저 에서 Game/AnimStarterPack/UE4_Mannequin/Mesh 폴더 아래 UE4_Mannequin_Skeleton 애셋을 엽니다.

  2. Retarget Manager 버튼을 클릭한 다음 Set up Rig 아래 Select Rig 드롭다운을 클릭한 다음 Select Humanoid Rig 을 선택합니다.

    이미지를 클릭하면 원래 크기로 보입니다.

  3. 저장 을 누른 다음 창을 닫습니다.

  4. 콘텐츠 브라우저 에서 Game/MixamoAnimPack/Mixamo_SWAT/Anims 폴더 아래 SWAT_Skeleton 애셋을 엽니다.

  5. 리타깃 매니저 버튼을 클릭한 다음, Set up Rig 아래 Select Rig 드롭다운을 클릭하고 Select Humanoid Rig 을 선택합니다.

    이미지를 클릭하면 원래 크기로 보입니다.

  6. 릭을 할당한 다음, 타깃의 본을 릭의 노드에 일치시켜 줘야 합니다.

    Retarget7.png

  7. 드롭다운 메뉴를 사용하여 릭의 본 (노드) 와 비슷한 위치에 있는 스켈레톤의 본을 선택합니다.

    이미지를 클릭하면 원래 크기로 보입니다.

    위 그림에서, 왼쪽은 (본 이름 표시 옵션을 켠) 소스 스켈레톤이고, 오른쪽은 (역시 본 이름 표시 옵션을 켠) 타깃 스켈레톤입니다. 가운데는 릭 셋업 창이며, 타깃 스켈레톤의 어느 본이 소스 스켈레톤의 본과 같은지를 (아니면 위치상 비슷한지를) 지정하고 있습니다.

    각 스켈레톤에 대한 작명 규칙은 다를 수는 있지만, 각 스켈레톤에 각 본이 어디 있는지, 제대로 일치하는지 확인할 수 있습니다. 모든 본을 지정할 필요는 없으며, 필요에 따라 약간의 미세조정이 필요할 수는 있습니다.

  8. 계속해서 타깃 스켈레톤의 각 본을 그에 맞는 릭의 노드에 지정합니다.

    아래 표는 UE4_Mannequin_SkeletonSWAT_Skeleton 에 대한 구성을 나타냅니다.

    노드 (릭)

    본 (스켈레톤)

    Root

    None

    Pelvis

    Hips

    spine_01

    Spine

    spine_02

    Spine1

    spine_03

    Spine2

    clavicle_l

    LeftShoulder

    upperarm_l

    LeftArm

    lowerarm_l

    LeftForeArm

    hand_l

    LeftHand

    clavicle_r

    RightShoulder

    upperarm_r

    RightArm

    lowerarm_r

    RightForeArm

    hand_r

    RightHand

    neck_01

    Neck1

    head

    head

    thigh_l

    LeftUpLeg

    calf_l

    LeftLeg

    foot_l

    LeftFoot

    thigh_r

    RightUpLeg

    calf_r

    RightLeg

    foot_r

    RightFoot

    릭 셋업시 사용할 수 있는 환경설정은 두 가지 있는데, Base (기본) 또는 Advanced (고급) 입니다. (위 표에 나타난) 기본 환경설정은 애니메이션의 성공적인 리타기팅을 보장하기 위해 필요한 핵심 요소를 사용합니다. 고급 환경설정은 리타기팅 프로세스의 일환으로 포함되어야 하는 추가 본을 포함시키고 지정하는 것이 가능합니다.

    위 예제에서, 왼손과 오른손은 리타기팅 프로세스의 일환으로 포함되어 있지만, 손가락은 아닙니다. 기본 환경설정으로 애니메이션을 리타기팅하면 베이스 모션이 새 스켈레톤으로 복사되도록 합니다만, 소스 스켈레톤에 손가락 애니메이션이 있는데 타깃에는 없었다면, 리타기팅된 애니메이션에는 손가락 애니메이션이 없어 손이 뻣뻣해 보일 것입니다.

  9. 고급 표시 버튼을 눌러 고급 환경설정으로 토글합니다.

    RetargetAdd4.png

  10. 타깃 스켈레톤의 본을 고급 환경설정에 대한 릭의 노드로 지정합니다.

    노드 (릭)

    본 (스켈레톤)

    index_01_l

    LeftHandIndex1

    index_02_l

    LeftHandIndex2

    index_03_l

    LeftHandIndex3

    middle_01_l

    LeftHandMiddle1

    middle_02_l

    LeftHandMiddle2

    middle_03_l

    LeftHandMiddle3

    pinky_01_l

    LeftHandPinky1

    pinky_02_l

    LeftHandPinky2

    pinky_03_l

    LeftHandPinky3

    ring_01_l

    LeftHandRing1

    ring_02_l

    LeftHandRing2

    ring_03_l

    LeftHandRing3

    thumb_01_l

    LeftHandThumb1

    thumb_02_l

    LeftHandThumb2

    thumb_03_l

    LeftHandThumb3

    lowerarm_twist_01_l

    LeftHand

    upperarm_twist_01_l

    LeftArm

    index_01_r

    RightHandIndex1

    index_02_r

    RightHandIndex2

    index_03_r

    RightHandIndex3

    middle_01_r

    RightHandMiddle1

    middle_02_r

    RightHandMiddle2

    middle_03_r

    RightHandMiddle3

    pinky_01_r

    RightHandPinky1

    pinky_02_r

    RightHandPinky2

    pinky_03_r

    RightHandPinky3

    ring_01_r

    RightHandRing1

    ring_02_r

    RightHandRing2

    ring_03_r

    RightHandRing3

    thumb_01_r

    RightHandThumb1

    thumb_02_r

    RightHandThumb2

    thumb_03_r

    RightHandThumb3

    lowerarm_twist_01_r

    RightHand

    upperarm_twist_01_r

    RightArm

    calf_twist_01_l

    None

    ball_l

    LeftToeBase

    thigh_twist_01_l

    LeftUpLeg

    calf_twist_01_r

    None

    ball_r

    RightToeBase

    thigh_twist_01_r

    RightUpLeg

    한 스켈레톤에는 있지만 다른 데는 없는 추가 본이 있는 상황이 있을 수 있습니다. 그러한 본은 생략할 수 있는데, 이를 반영하기 위해 타깃 스켈레톤에 조정을 가할 수 있기 때문입니다.

    IK 리타기팅은 아직 개발중이므로, 이 예제에서는 Mixamo 캐릭터의 IK 본도 None 으로 놔둬도 됩니다.

  11. 콘텐츠 브라우저 에서 Game/AnimStarterPack 아래 새 스켈레톤으로 리타기팅하고자 하는 애니메이션을 선택합니다.

  12. 애니메이션에 우클릭 한 다음 애님 애셋 리타깃 -> 애님 애셋 복제 및 리타기팅 을 선택합니다.

    RT_DuplicateAnim.jpg

  13. 스켈레톤 선택 창 상단 부분에 스켈레톤이 보일 것입니다. 클릭하고 선택 합니다.

    Retarget11_2.jpg

  14. 리타기팅하도록 선택한 애니메이션 사본이 타깃 스켈레톤과 같은 폴더에 생성됩니다.

    Retarget12.png

    이제 이 새 애니메이션을 캐릭터와 함께 사용할 수 있습니다.

리타기팅 조절

스켈레톤 사이에 공유할 릭 셋업시, 한 스켈레톤에는 없는 본이 다른 스켈레톤에 있는 상황이 생길 수 있습니다 (시작하기 섹션에서 예제에 지정된 스켈레톤을 사용한 경우, Mixamo 스켈레톤의 손에 본이 남는 것을 예로 들 수 있습니다). 이로 인해 가끔 문제가 생길 수 있지만, 트랜슬레이션 리타기팅을 스켈레톤에 재귀 설정함으로써 고칠 수 있습니다.

예를 들어 조절 전의 모습입니다:

Retarget13.png

릭 셋업 도중 지정되지 않은 여분의 본때문에 손가락이 일그러진 것을 보세요.

조절 이후 예제는 이렇습니다:

Retarget15.png

스켈레톤 트리 뷰를 통해 본 트랜슬레이션 리타기팅을 지정할 수 있습니다. 여기서 각 손가락 마지막 숫자에 우클릭 한 다음 본 트랜슬레이션을 Recursively Set Translation Retargeting Skeleton (트랜슬레이션 리타기팅 스켈레톤 재귀 설정)했습니다.

Retarget14.png

애니메이션 블루프린트 리타기팅

두 스켈레톤 애셋에 공유할 릭 셋업 프로세스를 거친 이후, 소스 스켈레톤에 연관된 애니메이션 블루프린트 가 있는 경우, 타깃 스켈레톤용으로 리타기팅하도록 선택할 수 있습니다.

애니메이션 블루프린트에 우클릭 한 다음 애님 블루프린트 리타깃 -> 애님 블루프린트 복제 및 리타깃 옵션을 선택합니다.

RT_AnimBP.jpg

스켈레톤 선택 창이 뜹니다. 타깃 스켈레톤을 선택한 다음 선택 을 클릭합니다.

Retarget11_2.jpg

애니메이션 블루프린트에 연관된 모든 (애니메이션, 블렌드 스페이스 등의) 애셋이, 애니메이션 블루프린트 자체에 정의된 로직과 함께 복사되어 타깃 스켈레톤과 같은 위치에 배치됩니다.

Retarget17.png

베이스 포즈 리타기팅

소스 스켈레톤과 같은 베이스 포즈를 별로 사용하지 않는 스켈레톤에 애니메이션을 리타기팅하고자 하는 경우가 있을 수 있습니다.

아래 그림에서 오른쪽에 있는 스켈레톤을 예로 들어 봅시다.

Retarget2_2.jpg

왼쪽에 있는 소스 스켈레톤은 A-포즈인 반면, 타깃 스켈레톤은 T-포즈를 사용중입니다. 그 둘에 공유할 릭이 셋업되긴 했지만, 지금과 같은 애니메이션을 리타기팅하려 했다간 아래와 같은 문제에 봉착할 수 있습니다.

Retarget19.png

위 그림에서, 애니메이션이 타깃 스켈레톤에 대해 리타기팅되어 있으나, 베이스 포즈가 같지 않기 때문에 팔이 측면으로 잘립니다. 고맙게도 애니메이션 리타기팅 전 타깃 스켈레톤의 베이스 포즈도 리타기팅하여 이러한 문제를 줄이거나 없앨 수 있습니다.

타깃 스켈레톤에서, 리타깃 매니저 아래 Manage Retarget Base Pose (리타깃 베이스 포즈 관리) 옵션이 있습니다.

Retarget20.png

View Pose (포즈 보기) 버튼을 클릭하면, 현재 베이스 포즈가 보입니다. 본을 클릭하고 회전 (E) 위젯을 사용하여 조절할 수 있습니다.

Retarget21.png

위 그림에서, 오른팔은 조절하고 왼팔은 (회전 위젯을 사용하여 조절할 수 있는) 기본 포즈를 사용하고 있습니다. 포즈를 조절하고 나면, 포즈 저장 옵션을 클릭하여 리타기팅된 베이스 포즈를 저장할 수 있습니다. 스켈레톤끼리 비슷한 포즈가 생겼으니 이제 애니메이션을 리타기팅할 수 있으며, 스켈레톤 선택 창이 뜨면 타깃 스켈레톤이 이제 리타기팅된 베이스 포즈를 사용중임을 볼 수 있습니다.

Retarget2_2.jpg

리타기팅된 베이스 포즈로 애니메이션을 리타기팅하면, 더 나은 모습의 애니메이션을 얻을 수 있습니다.

Retarget23.png

새로운 언리얼 엔진 4 문서 사이트에 오신 것을 환영합니다!

문서 사이트에 대한 의견을 모을 수 있는 피드백 시스템을 포함해서 여러가지 새로운 기능을 준비하고 있습니다. 아래 Documentation Feedback 포럼(영문) 또는 언리얼 엔진 네이버 공식 카페(한글) 중 편하신 곳에 의견이나 문제점을 알려 주세요.

새 시스템이 준비되면 알려 드리겠습니다.

네이버 카페
공식 포럼