이 페이지에서는 Unity의 애니메이션 시스템에서 사용할 모델을 임포트하는 방법에 대해 안내합니다. 애니메이션 시스템과 함께 사용할 모델 생성에 대한 자세한 내용은 애니메이션용 모델 생성을 참조하십시오.
애니메이션 시스템은 다음과 같은 두 개의 모델 유형으로 작동합니다.
모든 유형의 모델에 적용할 수 있는 일반적인 임포트 지침은 모델 임포트를 참조하십시오.
Unity는 휴머노이드 릭과 애니메이션이 포함된 모델 파일을 임포트할 때 모델의 뼈대 구조와 해당 애니메이션을 조정해야 합니다. 이는 파일의 각 뼈대를 휴머노이드 아바타에 매핑하여 애니메이션을 제대로 재생할 수 있도록 합니다. 따라서 Unity에 임포트하기 전에 모델 파일을 세심하게 준비해야 합니다.
인스펙터 창의 Rig 탭에서 Animation Type 을 Humanoid 로 설정합니다. 기본적으로 Avatar Definition 프로퍼티는 Create From This Model 로 설정됩니다. 이 옵션을 유지하면 Unity가 파일에 정의된 뼈대 집합을 휴머노이드 아바타에 매핑합니다.
경우에 따라 다른 모델 파일에 이미 정의한 아바타를 사용하도록 이 옵션을 Copy From Other Avatar 로 변경할 수 있습니다. 예를 들어 여러 개의 고유 애니메이션이 있는 3D 모델링 애플리케이션에서 메시(스킨)를 생성하는 경우 메시를 하나의 FBX 파일로 익스포트하고 각 애니메이션을 자체 FBX 파일로 익스포트할 수 있습니다. 이러한 파일을 Unity로 임포트하는 경우 첫 번째로 임포트하는 파일(대개 메시)에 아바타를 하나만 생성해야 합니다. 모든 파일이 동일한 뼈대 구조를 사용하는 한 해당 아바타를 나머지 파일(예: 모든 애니메이션)에 다시 사용할 수 있습니다.
이 옵션을 활성화하면 Source 프로퍼티를 설정하여 사용할 아바타를 지정해야 합니다.
Skin Weights 프로퍼티를 사용하여 특정 버텍스에 영향을 줄 수 있는 최대 뼈대 수를 변경할 수도 있습니다. 기본적으로 이 프로퍼티는 영향을 네 개의 뼈로 제한하지만 다른 값을 지정할 수 있습니다.
Apply 버튼을 클릭하면 Unity는 기존 뼈대 구조를 아바타 뼈대 구조와 일치시키려고 시도합니다. 대개 릭에서 뼈대 간의 연결을 분석하여 이를 자동으로 수행할 수 있습니다.
매칭이 성공하면 Configure 메뉴 옆에 체크 표시가 나타납니다. Unity는 모델 에셋에 아바타 서브 에셋도 추가합니다. 이 서브 에셋은 프로젝트 뷰에서 확인할 수 있습니다.
성공적으로 매칭되면 Unity가 필요한 모든 뼈대를 매칭할 수 있음을 의미합니다. 그러나 더 나은 결과를 얻으려면 선택적 뼈대를 매칭하고 모델을 적절한 T-포즈 로 설정해야 합니다.
Unity가 아바타를 생성할 수 없는 경우 Configure 버튼 옆에 십자 기호가 표시되고 프로젝트 뷰에 아바타 서브 에셋이 표시되지 않습니다.
아바타는 애니메이션 시스템에서 매우 중요한 요소이므로 아바타를 모델 에 적합하게 설정하는 것이 중요합니다.
따라서 자동 아바타 생성에 성공하든 실패하든 항상 아바타가 유효하고 올바르게 설정되었는지 확인해야 합니다.
Unity가 모델의 뼈대를 아바타에 올바르게 매핑했는지 확인하거나 Unity가 모델에 아바타를 생성하지 못했는지 확인하려면 Rig 탭의 Configure … 버튼을 클릭하여 아바타 설정 모드로 전환하십시오.
Unity가 아바타를 성공적으로 생성하면 아바타가 모델 에셋의 서브 에셋으로 표시됩니다. 프로젝트 창에서 아바타 에셋을 선택한 후 인스펙터에서 ‘Configure Avatar’ 버튼을 클릭하여 아바타 설정 모드를 시작할 수 있습니다. 이 모드를 사용하면 Unity가 모델의 뼈대를 아바타 레이아웃에 매핑하는 방식을 확인하거나 조정할 수 있습니다.
아바타 설정 모드로 전환한 후에는 뼈대 매핑을 보여 주는 Avatar 창이 인스펙터 에 표시됩니다.
뼈대 매핑이 올바른지 확인하고, Unity가 할당하지 않은 부수적인 뼈대를 모두 매핑해야 합니다.
Unity가 유효한 매치를 생성하려면 골격에 필요한 최소한의 뼈대가 있어야 합니다. 아바타와 일치하는 뼈대를 찾을 확률을 높이기 위해, 뼈대가 나타내는 신체 부위를 반영하는 방식으로 뼈대의 이름을 지정하십시오. 예를 들어 이름을 ‘LeftArm’ 및 ‘RightForearm’으로 지정하면 해당 뼈대가 무엇을 제어하는지 분명하게 알 수 있습니다.
모델이 유효한 일치 항목을 생성하지 않는 경우 Unity에서 내부적으로 사용하는 것과 유사한 프로세스를 사용할 수 있습니다.
자동 매핑이 완전히 또는 부분적으로 실패하면 뼈대를 씬 뷰 또는 계층 구조 뷰에서 드래그하여 수동으로 할당할 수 있습니다. Unity가 뼈대가 적합하다고 생각하면 Avatar Mapping 탭에 녹색으로 표시되고, 그렇지 않으면 빨간색으로 표시됩니다.
T-포즈 는 Unity 애니메이션에 필요한 기본 포즈로, 3D 모델링 애플리케이션에서 모델링하는 데 권장하는 포즈입니다. 그러나 T-포즈를 사용하여 캐릭터를 모델링하지 않았고 애니메이션이 예상대로 작동하지 않는 경우, Pose 드롭다운 메뉴에서 Reset 을 선택할 수 있습니다.
뼈대 할당이 올바르지만 캐릭터의 포즈가 올바르지 않으면 ‘Character not in T-Pose’라는 메시지가 표시됩니다. 이때 Pose 메뉴에서 Enforce T-Pose 를 선택하여 문제를 해결할 수 있습니다. 포즈가 여전히 올바르지 않으면 수동으로 나머지 뼈대를 회전하여 T-포즈로 만들 수 있습니다.
마스킹을 사용하면 클립에서 일부 애니메이션 데이터를 폐기하여 전체 오브젝트가 아니라 오브젝트 또는 캐릭터의 일부만 애니메이션화하는 클립을 만들 수 있습니다. 예를 들어, 팔과 다리 모션을 모두 포함하는 표준 걷기 애니메이션을 만드는데, 캐릭터가 양손으로 큰 물체를 운반하는 경우 캐릭터가 걷는 동안 팔이 옆으로 흔들리는 것은 원하지 않을 것입니다. 그러나 마스크를 사용해 걷기 애니메이션 상단 위에 있는 움직이는 애니메이션의 상체 부분만 재생하면 물체를 운반하는 표준 걷기 애니메이션을 사용할 수 있습니다.
애니메이션 클립은 임포트 시 또는 런타임 시 마스킹을 적용할 수 있습니다. 임포트 시 마스킹을 사용하면 폐기된 애니메이션 데이터를 빌드에서 생략할 수 있어 파일이 작아지고 메모리를 더 적게 사용하므로 바람직합니다. 또한 런타임 시 블렌드할 애니메이션 데이터가 적기 때문에 처리 속도가 빨라집니다. 경우에 따라 임포트 마스킹이 해당 목적에 적합하지 않을 수 있습니다. 이 경우 아바타 마스크 에셋을 생성하고 Animator 컨트롤러 의 레이어 설정에서 이를 사용하여 런타임 시 마스크를 적용할 수 있습니다.
빈 아바타 마스크 에셋을 생성하려면 다음 작업 중 하나를 수행합니다.
그러면 새 에셋이 프로젝트 뷰에 표시됩니다.
이제 마스크에 바디 부분을 추가하고 마스크를 애니메이션 레이어에 추가하거나 Animation 탭의 Mask 섹션 아래에 레퍼런스를 추가할 수 있습니다.