Animation
- Legacy Animation : 하위 호환성을 고려한 애니메이션, 소스코드로 컨트롤 해야 함
- Mecanim Animation : 모션 캡처 애니메이션, 리타겟팅 기능
Animation Type
Animation Type 옵션 | 설명 |
---|---|
None | 애니메이션을 사용하지 않는다. |
Legacy | 하위 호환성을 유지하기 위한 이전 방식의 애니메이션 |
Generic | 메카님 애니메이션, 인체형 모델이 아닌 3D 모델에 적용. 리타게팅 불가 |
Humanoid | 메카님 애니메이션, 리타게팅이 가능하며, 사람과 같이 2족 보행하는 모델에 적용 |
💫 애니메이션 타입에 따라 컴포넌트도 바뀌어야 한다.
- Legacy => Animation 컴포넌트
- Mecanim => Animator 컴포넌트
Animation Clip
- 케릭터의 걷기, 달리기, 점프, 총 쏘기 등과 같은 동작을 기록한 파일
- 애니메이션 컴포넌트는 애니메이션 클립에 기록 된 Rig 위치나 Rotate 값을 프레임 단위로 재생시킨다.
3D 모델링 툴 제작방법
1. 모든 애니메이션 클립이 하나의 애니메이션 파일에 들어 있는 경우
- 각 애니메이션 클립이 시작 프레임과 종료 프레임을 가지는 방식
- 개발자가 직접 분리하여 사용하여야 함
2. 1번 과 같지만 분리 되어 있는 경우
3. 애니메이션 클립을 동작별로 분리해 별도 파일로 생성하는 경우
- “모델명@애니메이션 클립명”형태의 명명 규칙 적용
Animation Blending
- 현재 수행 중인 애니메이션에서 다른 애니메이션으로 변경될 때 이를 부드럽게 연결해주는 기능
- 급격한 애니메이션 변화로 인한 어색함을 방지하기 위해 CrossFade 함수 제공
- CrossFade 의 경우 첫번째 인자는 ‘Animation Clip’, 두 번째 인자는 ‘Fade Out Time’
private void PlayerAnimation(float h, float v)
{
// KeyBoard Input Value를 기준으로 동작할 애니메이션 수행
switch (v)
{
case >= 0.1f:
// Forward Animation 실행
_playerAnimation.CrossFade("RunF", 0.25f);
break;
case <= -0.1f:
// Back Animation 실행
_playerAnimation.CrossFade("RunB", 0.25f);
break;
default:
{
switch (h)
{
case >= 0.1f:
// Right Animation 실행
_playerAnimation.CrossFade("RunR", 0.25f);
break;
case <= -0.1f:
// Left Animation 실행
_playerAnimation.CrossFade("RunL", 0.25f);
break;
default:
_playerAnimation.CrossFade("Idle", 0.25f);
break;
}
break;
}
}
}