2 분 소요

개요

언리얼 마켓플레이스나 Mixamo를 둘러보다 보면 좋은 애니메이션들이 많다.
찾은 애니메이션을 다른 Skeleton에 적용시키려고하면 Skeleton이 일치하지 않아 사용할 수 없는데 Animation Retargeting은 다른 Skeleton에 애니메이션을 사용할 수 있게 만들어주는 기능이다.

Mixamo 에셋 가져오기

원하는 캐릭터로 애니메이션 가져오기

image

Mixamo캐릭터에서 원하는 메시를 고른다.

image

리타겟팅

5.4 이상

  • 5.4 버전부터는 자동으로 애니메이션 리타겟팅이 가능하다.
  • 하지만 규격이 너무 다르면 부자연스럽기에 수동으로 하는 방식을 추천한다.
    image

5.3 이하

언리얼 엔진에서의 애니메이션은 타겟팅한 스켈레톤 하나에 대해서만 작동한다. 그렇기에 원하는 애니메이션을 구해도 타겟팅된 스켈레톤이 다르면 사용할 수 없는데 이런 타겟팅을 바꿀수 있는 것이 리타겟팅이다.

리타겟팅을 하기위해선 스켈레톤의 bone의 규격을 맞춰줘야 한다.

Rig 설정

image

서로 다른 스켈레톤간의 리타겟팅을 위한 Rig 규격을 설정해 줘야한다.
애니메이션 스켈레톤 원본인 Source와 해당 스켈레톤으로 변경하고 싶은 Target의 IKRig 두개를 만들어준다.

스크린샷 2024-04-07 200353

스크린샷 2024-04-07 200408

IK_Rig안에서 원하는 스켈레톤을 지정해준다.

세부설정

루트 설정

스크린샷 2024-04-07 200416

image

루트를 지정해줘야한다. 루트는 위 처럼 허리부분에 삼각형 표시가 나오는 것으로 지정했다.


체인 추가

스크린샷 2024-04-07 200818

IK Retargeting탭에서 Add New Chain을 눌러서 라타겟팅 기준이 되는 체인을 생성해준다. 위 과정들은 Source, Target 모두 해준다.

Retargeter

두 IK_Rig를 만들었으면 애니메이션 스켈레톤을 변환할 IK_Retargeter를 만든다.

스크린샷 2024-04-07 201344


Source와 Target의 IK_Rig를 설정해 준다.

스크린샷 2024-04-07 201431


그리고 Asset Browser에서 애니메이션 미리보기를 볼 수 있는데 확인해보면

스크린샷 2024-04-07 201614


애니메이션이 잘 적용 되어있다.
만약 적용했는데 포즈가 많이 엉켜있다면 Detail에서 각 체인별로 IK와 FK를 껏다 켜보면서 맞춰보면 된다.

스크린샷 2024-04-07 204610


그리고 AssetBrowser 아래에 있는 ExportSelectedAnimations를 통해 애니메이션을 Export할 수 있다.

image

APos, TPos 변경하기

  • 스켈레탈 메쉬들은 APos, TPos로 각각 다르다.
  • 만약 해당 포즈들을 맞춰주지 않고 리타겟팅을 진행한다면 애니메이션이 깨지는 문제가 발생한다.
    image

Pos 변경하기

5.3 미만 버전

  • IK Retargeter에서 직접 포즈를 수정할 수 있는 것으로 보인다.
  • 정확히 몇버전부터 안돼는지는 확인필요하다.
    image

5.3 이상

  • SkeletalMesh 혹은 Static Skeleton에셋에 진입해서 원하는 포즈로 변경해준다.
    image

  • 상단부분 Create Asset으로 Current Pose를 눌러서 Pose Asset을 만들어준다.
    image

image


  • IK Retargeter를 열고 Editing Retarget Pose 모드에서 만들어둔 Pose Asset을 가져온다.
    image

  • Current Retarget Pose를 통해서 포즈를 변경해준다.
    image

  • 적용 후
    image

애니메이션이 정확하지 않은데?

  • 팔이 너무 벌려져 있다.
    image

  • 수정 후
  • 팔 간격이 같아졌다.
    image

  • 모든 체인의 Rotation Mode를 One to One로 바꾼다.
    image

공중에 떠있다.

  • Crouch 모션을 하면 아래처럼 떠있다.
    image

  • 수정 후
    image

  • 루트가 포함된 Chain의 TranslationMode를 GloballyScaled로 바꾼다.
    image

  • 그리고 애니메이션의 Translation Retargeting을 모두 Animation으로 변경해준다.
  • Translation Retargeting
    • Animation

       - 애니메이션 데이터에서 비롯되고 변경되지 않는다.

    • Skeleton

       - 스켈레톤의 bind Pose에 비롯된다.

    • AnimationScaled

       - 애니메이션 데이터에서 비롯되지만 스켈레톤의 Scale에 따라 비율이 조정된다. 이는 대상 스켈레톤과 소스 스켈레톤의 뼈 길이 사이의 비율이다.

Translation Retargeting

  • 애니메이션은 자신의 기본 스켈레톤 Asset의 데이터를 통해 애니메이션을 수행하려한다.
  • Retargeting 데이터를 설정해주지 않으면 애니메이션 데이터를 원래 Skeleton의 Translation data에 적용하려해 에러가 발생할 수 있다.
  • 하지만 Retargeting한 애니메이션의 경우 자신의 원래 스켈레톤이 아닌 다른 종류의 스켈레톤을 이용해 애니메이션 데이터를 생성했다.
  • 그래서 Translation Retargeting을 통해 올바른 Skeleton에 애니메이션 데이터를 적용시켜줘야한다.

image

댓글남기기