애니메이션 클립 은 Unity에서 가장 작은 애니메이션 블록입니다. 왼쪽 달리기(RunLeft), 점프(Jump) 또는 기어가기(Crawl) 등 각각의 독립적인 모션을 의미하며 다양한 방법으로 조작하고 통합하여 실감 나는 애니메이션 결과물을 얻을 수 있습니다. 애니메이션 상태 머신, 애니메이터 컨트롤러, 블렌드 트리를 참조하십시오. 임포트한 FBX 데이터에서 애니메이션 클립을 선택할 수 있습니다.
애니메이션 클립이 포함된 모델을 클릭하면 다음의 프로퍼티가 나타납니다.
인스펙터 창의 Animation 탭에는 다음과 같은 네 개의 영역이 있습니다.
(A) 에셋별 프로퍼티. 이 설정은 전체 에셋의 임포트 옵션을 정의합니다.
(B) 클립 선택 목록. 이 목록에서 항목을 선택하여 해당 프로퍼티를 표시하고 애니메이션을 미리 볼 수 있습니다. 새 클립 정의도 가능합니다.
(C) 클립별 프로퍼티. 이 설정은 선택한 Animation Clip 에 대한 임포트 옵션을 정의합니다.
(D) 애니메이션 미리보기. 여기에서 애니메이션을 재생하고 특정 프레임을 선택할 수 있습니다.
이 프로퍼티는 에셋 내에서 정의되는 모든 애니메이션 클립과 제약 사항에 적용됩니다.
프로퍼티: | 기능: | |
---|---|---|
Import Constraints | 이 에셋에서 제약을 임포트합니다. | |
Import Animation | 이 에셋에서 애니메이션을 임포트합니다. 참고: 비활성화하면 페이지의 모든 다른 옵션을 숨기고 애니메이션을 임포트하지 않습니다. |
|
Bake Animations | IK 또는 시뮬레이션을 사용하여 생성된 애니메이션을 순운동학(FK) 키프레임으로 베이크합니다. 이 옵션은 Autodesk® Maya®, Autodesk® 3ds Max® 및 Cinema 4D 파일에서만 사용 가능합니다. |
|
Resample Curves | 애니메이션 커브를 쿼터니언 값으로 리샘플링하고 애니메이션의 모든 프레임마다 새로운 쿼터니언 키프레임을 생성합니다. 이 옵션은 기본적으로 활성화되어 있습니다. 원본 애니메이션의 키 보간에 문제가 있는 경우에만 이 옵션을 비활성화하여 원래 작성된 대로 애니메이션 커브를 유지하십시오. 임포트 파일에 오일러 커브가 있는 경우에만 표시됩니다. |
|
Anim. Compression | 애니메이션을 임포트할 때 사용하는 압축 타입입니다. | |
Off | 애니메이션 압축을 사용하지 않습니다. 즉, Unity가 임포트할 때 키프레임 수를 줄이지 않습니다. 애니메이션 압축을 비활성화하면 고정밀도 애니메이션이 되지만, 성능이 떨어지고 파일과 런타임 메모리 크기가 커집니다. 일반적으로 이 옵션을 사용하는 것은 좋지 않습니다. 고정밀 애니메이션이 필요한 경우 키프레임 축소를 사용하고 대신 Animation Compression Error 값을 허용하는 것이 좋습니다. | |
Keyframe Reduction | 임포트할 때 중복 키프레임 수를 줄입니다. 이 옵션을 활성화하면 인스펙터에 Animation Compression Errors 옵션이 표시됩니다. 이는 파일 크기(런타임 메모리)와 곡선 평가 방식 모두에 영향을 줍니다. Generic 애니메이션 타입 릭에만 사용할 수 있습니다. |
|
Keyframe Reduction and Compression | 임포트할 때 키프레임을 줄이고 애니메이션을 파일에 저장할 때 키프레임을 압축합니다. 이는 파일 크기에만 영향을 미치며 런타임 메모리 크기는 Keyframe Reduction 과 동일합니다. 이 옵션을 활성화하면 인스펙터에 Animation Compression Error 옵션이 표시됩니다. Legacy 애니메이션 타입 릭에만 사용할 수 있습니다. |
|
Optimal | Unity가 키프레임 감소 또는 고밀도 포맷 사용 중에서 압축 방식을 결정합니다. 이 옵션을 활성화하면 인스펙터에 Animation Compression Error 옵션이 표시됩니다. Generic 및 Humanoid 애니메이션 타입 릭에만 사용할 수 있습니다. |
|
Animation Compression Errors | Keyframe Reduction 또는 Optimal 압축이 활성화된 경우에만 사용할 수 있습니다. | |
Rotation Error | 회전 커브 압축에 대한 오류 허용치(각도)를 설정합니다. Unity는 이 값을 사용하여 회전 커브의 키를 제거할지 결정합니다. 이 값은 원래 회전 값과 감소된 값 사이의 최소 각도를 나타냅니다. Angle(value, reduced) < RotationError
|
|
Position Error | 포지션 커브 압축에 대한 오류 허용치(백분율)를 설정합니다. Unity는 이 값을 사용하여 포지션 커브의 키를 제거할지 결정합니다. 자세한 내용은 포지션 및 스케일 커브의 키 감소에 대한 오류 허용치 설정을 참조하십시오. | |
Scale Error | 스케일 커브 압축에 대한 오류 허용치(백분율)를 설정합니다. Unity는 이 값을 사용하여 스케일 커브의 키를 제거할지 결정합니다. 자세한 내용은 포지션 및 스케일 커브의 키 감소에 대한 오류 허용치 설정을 참조하십시오. | |
Animated Custom Properties | 커스텀 사용자 프로퍼티로 지정한 FBX 프로퍼티를 임포트합니다. Unity는 FBX 파일을 임포트할 때 소수의 프로퍼티(예: 이동, 회전, 스케일, 가시성) 서브셋만 지원합니다. 하지만 extraUserProperties 멤버를 통해 임포터 스크립트에서 이름을 지정하면 스탠다드 FBX 프로퍼티를 사용자 프로퍼티처럼 사용할 수 있습니다. 그러면 임포트하는 동안 Unity는 ‘실제’ 사용자 프로퍼티와 마찬가지로 모든 명명된 프로퍼티를 에셋 포스트프로세서에 전달합니다. |
Unity가 애니메이션 압축 전략의 일환으로 포지션 또는 스케일 커브의 키를 제거할지 여부를 결정할 수 있도록 오류 허용치 백분율을 설정합니다.
Anim. Compression 프로퍼티를 “Keyframe Reduction” 또는 “Optimal”로 설정하면 Unity는 원본 커브를 특정 키프레임 제거 후의 커브와 비교한 후 다음 테스트를 적용합니다.
OriginalValue - ReducedValue > OriginalValue * percentageOfError
원본 값과 감소된 값 사이의 델타가 원본 값에 오류 허용치 백분율을 곱한 값보다 작으면 Unity는 키프레임을 제거합니다.
단, Unity는 세 개의 커브 컴포넌트 간 거리(즉 distance(x,y,z)
)와 각 컴포넌트(distance(x)
, distance(y)
, distance(z)
) 간의 거리를 비교합니다.
이 예제는 Unity가 오류 허용치 10%를 사용하여 y축의 감소를 평가하는 방식을 보여줍니다.
키프레임 A의 값은 11.2입니다.
키프레임 B의 값은 11.1입니다.
최종적으로 감소된 커브의 모습은 다음과 같습니다.
키프레임 A가 감소하지 않으며 그 이유는 다음과 같습니다.
D = 11.2 - 10 = 1.2
입니다.E = 10% * 11.2 = 1.12
입니다.키프레임 B가 감소하며 11.1 - 10 < 10% * 11.1`이기 때문입니다.
D = 11.1 - 10 = 1.11
입니다.E = 10% * 11.1 = 1.11
입니다.이 방식은 차이가 별로 없는 높은 값을 사용할 경우에는 제한이 있습니다. 씬을 1000 단위로 이동하면 기본적으로 애니메이션은 동일하지만 0에서 매우 멀리 위치하게 됩니다.
이 경우 두 키프레임이 모두 감소합니다.
키프레임 A가 감소하며 그 이유는 다음과 같습니다.
D = 1011.2 - 1010 = 1.2
입니다.E = 10% * 1011.2 = 101.12
입니다.키프레임 B가 감소하며 11.1 - 10 < 10% * 11.1`이기 때문입니다.
D = 11.1 - 10 = 1.11
입니다.E = 10% * 1011.1 = 101.11
입니다.높은 값은 키프레임을 감소된 커브로 유지하기 위해 원본 값과 감소된 값 간에 훨씬 더 큰 차이를 필요로 합니다. 키프레임 A는 값이 1100이고 삭제되었지만, 키프레임 B는 값이 1112이고 유지되었습니다.
Animation 탭의 이 영역에서 다음과 같은 작업을 수행할 수 있습니다.
+
) 버튼을 사용하여 이 파일에 대한 새 클립을 생성합니다.-
) 버튼을 사용하여 선택한 클립 정의를 제거합니다.경고: 가져온 클립의 프로퍼티를 수동으로 변경하는 경우 Unity는 소스 에셋이 변경될 때 새 애니메이션 클립을 임포트하지 않습니다. 예를 들어 Animation 탭에서 새 클립을 만들거나 클립의 타이밍을 변경하면, Unity 외부의 FBX 파일에 클립을 추가하더라도 해당 클립 목록은 변경되지 않습니다. Unity는 새 애니메이션 클립을 무시합니다.
Animation 탭의 이 영역에 다음과 같은 기능이 표시됩니다.
(A) 선택한 클립의 편집 가능한 이름
(B) 애니메이션 클립 타임라인
(C) 반복 재생 및 포즈를 제어하기 위한 클립 프로퍼티
(D) 커브, 이벤트, 마스크 및 모션 루트를 정의하고 임포트 프로세스의 메시지를 확인하기 위한 확장 가능 섹션
이 에셋 내에서 정의된 각 애니메이션 클립에 대해 이러한 프로퍼티를 별도로 설정할 수 있습니다.
프로퍼티: | 기능: | |
---|---|---|
A 영역(편집 가능 이름) | ||
애니메이션 클립 소스로 사용하는 소스 파일에 포함되는 테이크입니다. 애니메이션 세트를 Motionbuilder, Autodesk® Maya®, 기타 3D 패키지에서 개별적인 세트로 정의해 주는 기능입니다. Unity가 테이크를 별도의 클립으로 임포트할 수도 있고, 사용자가 전체 파일 또는 프레임 서브셋에서 생성할 수도 있습니다. |
||
B 영역(타임라인 기능) | ||
타임라인 근처의 시작 및 종료 표시기를 드래그하여 각 클립에 대한 프레임 범위를 정의할 수 있습니다. | ||
Start | 클립의 시작 프레임. | |
End | 클립의 종료 프레임. | |
C 영역(반복 재생 및 포즈 제어) | ||
Loop Time | 애니메이션 클립을 끝까지 재생하고, 끝에 도달하면 다시 재생을 시작합니다. | |
Loop Pose | 모션을 자연스럽게 반복합니다. | |
Cycle Offset | 반복 재생 애니메이션의 사이클 오프셋입니다. 애니메이션이 다른 시간에 시작하는 경우에 설정합니다. | |
Root Transform Rotation | ||
Bake into Pose | 루트 회전을 뼈대의 움직임에 베이크합니다. 루트 모션으로 저장하려면 비활성화해야 합니다. | |
Based Upon | 기본 루트 회전입니다. | |
Original | 소스 파일의 원래 회전을 유지합니다. | |
Root Node Rotation | 루트 노드의 회전을 사용합니다. Generic 애니메이션 타입에만 사용할 수 있습니다. |
|
Body Orientation | 상체를 앞으로 향하게 합니다. Humanoid 애니메이션 타입에만 사용할 수 있습니다. |
|
Offset | 루트 회전에 대한 오프셋입니다(각도). | |
Root Transform Position (Y) | ||
Bake into Pose | 수직 루트 모션을 뼈대의 움직임에 베이크합니다. 루트 모션으로 저장하려면 비활성화해야 합니다. | |
Based Upon (at Start) | 기본 수직 루트 포지션입니다. | |
Original | 소스 파일의 수직 포지션을 유지합니다. | |
Root Node Position | 수직 루트 포지션을 사용합니다. Generic 애니메이션 타입에만 사용할 수 있습니다. |
|
Center of Mass | 질량 중심을 루트 트랜스폼 포지션과 맞춥니다. Humanoid 애니메이션 타입에만 사용할 수 있습니다. |
|
Feet | 발을 루트 트랜스폼 포지션과 맞춥니다. Humanoid 애니메이션 타입에만 사용할 수 있습니다. |
|
Offset | 수직 루트 포지션에 대한 오프셋입니다. | |
Root Transform Position (XZ) | ||
Bake into Pose | 수평 루트 모션을 뼈대의 움직임에 베이크합니다. 루트 모션으로 저장하려면 비활성화해야 합니다. | |
Based Upon | 기본 수평 루트 포지션입니다. | |
Original | 소스 파일의 수평 포지션을 유지합니다. | |
Root Node Position | 수평 루트 트랜스폼 포지션을 사용합니다. Generic 애니메이션 타입에만 사용할 수 있습니다. |
|
Center of Mass | 루트 트랜스폼 포지션과 맞춥니다. Humanoid 애니메이션 타입에만 사용할 수 있습니다. |
|
Offset | 수평 루트 포지션에 오프셋. | |
Mirror | 이 클립의 좌우를 반전합니다. 애니메이션 타입이 Humanoid 로 설정된 경우에만 표시됩니다. |
|
Additive Reference Pose | 활성화하면 애디티브 애니메이션 레이어에 기본으로 사용할 레퍼런스 포즈의 프레임을 설정합니다. 타임라인 에디터에 파란색 마커가 표시됩니다. |
|
Pose Frame | 레퍼런스 포즈로 사용할 프레임 수를 입력합니다. 타임라인의 파란색 마커를 드래그하여 이 값을 업데이트할 수도 있습니다. Additive Reference Pose 가 활성화된 경우에만 사용할 수 있습니다. |
|
D 영역(확장 가능 섹션) | ||
Curves | 이 섹션을 확장하면 임포트한 클립의 애니메이션 커브를 관리할 수 있습니다. | |
Events | 이 섹션을 확장하면 임포트한 클립의 애니메이션 이벤트를 관리할 수 있습니다. | |
Mask | 이 섹션을 확장하면 임포트한 클립의 마스킹을 관리할 수 있습니다. | |
Motion | 이 섹션을 확장하면 루트 모션 노드 선택을 관리할 수 있습니다. | |
Import Messages | 이 섹션을 확장하면 Retargeting Quality Report 옵션을 포함하여 애니메이션이 임포트된 방식에 대한 정보를 자세히 볼 수 있습니다. |
클립 생성은 애니메이션 세그먼트의 시작 및 끝 지점을 정의하는 데 필수입니다. 클립을 반복 재생하려면 처음과 마지막 프레임이 일치하도록 클립을 다듬어야 합니다. 그래야만 올바른 반복 재생 클립을 만들 수 있습니다.
애니메이션 임포트 프로세스에서 문제가 발생하면 애니메이션 임포트 인스펙터 상단에 경고가 나타납니다.
경고 표시가 애니메이션이 임포트되지 않았거나 동작하지 않는다는 것을 의미하지는 않습니다. 다만, 임포트한 애니메이션이 소스 애니메이션과 약간 다르게 보일 수 있습니다.
자세한 내용을 보려면 Import Messages 섹션을 확장하십시오.
이 경우 Unity는 Generate Retargeting Quality Report 옵션을 제공했습니다. 이 옵션을 활성화하면 리타게팅 문제에 대한 자세한 내용을 확인할 수 있습니다.
그 외에 다음과 같은 경고 세부 정보가 표시될 수 있습니다.
위의 경고 메시지는 Unity가 애니메이션을 내부 포맷으로 임포트하거나 변환할 때 원본 파일에 있는 데이터 일부를 누락했다는 의미입니다. 이와 같은 경고는 리타게팅된 애니메이션이 소스 애니메이션과 정확하게 일치하지 않을 수도 있다는 것을 의미합니다.
참고: Unity는 constant 이외에 다른 사전 및 사후 외삽 모드(사전 및 사후 인피니티 모드라고도 불림)를 지원하지 않으며, 임포트 시 해당 모드를 constant로 전환합니다.
Animation 탭의 미리보기 영역에 다음과 같은 기능이 제공됩니다.
(A) 선택한 클립의 이름
(B) The 2D preview mode button (switches between orthographic and perspective camera)
(C) 피벗 및 질량 중심 표시 버튼(기즈모 표시 및 숨김 간에 전환)
(D) 아바타 선택기(액션을 미리 볼 게임 오브젝트 변경)
(E) 재생/일시정지 버튼
(F) 미리보기 타임라인의 재생 헤드(앞뒤로 이동 허용)
(G) 애니메이션 미리보기 속도 슬라이더(왼쪽으로 이동하면 감속, 오른쪽으로 이동하면 가속)
(H) 재생 상태 표시기(재생 위치를 초, 백분율 및 프레임 수 단위로 표시)
(I) Tag 표시줄. 여기에서 태그를 정의하고 클립에 적용할 수 있음
(J) 에셋 번들 표시줄. 여기에서 에셋 번들 및 배리언트를 정의할 수 있음