위 모델의 Animation State는 Default Layer의 Idle State입니다.
걷는 애니메이션과 오브젝트를 들고 있는 애니메이션을 혼합(Mix)해서 사용하고 싶습니다.
애니메이션 State를 혼합할 때 사용하는 것이 Animation Layer입니다.
Avatar Mask를 하나 생성하고 이름을 그에 맞게 변경해줍니다.
특정 오브젝트를 잡고 있는 애니메이션의 상태에서 하체의 움직임은 필요없고 상체의 움직임만 변경되길 원하므로 하체는 클릭하여 제외시켜주면 됩니다.
Animator창으로 가서 Layer버튼을 누르고 + 버튼을 눌러 새로운 Layer을 만들어준 뒤 이름을 적절하게 변경해줍니다.
Weight | 현재 레이어와 아래 레이어의 애니메이션 비중, 1에 가까울수록 현재 레이어의 가까운 모션을 취함 |
Mask | 출력하고자 하는 애니메이션의 부위 |
Blending | 앞 순서의 애니메이션 계산에 덮어씌울 것인지, 가산(Add)할 것인지 |
Sync | 다른 레이어와의 동기화 설정 |
IK Pass | IK 애니메이션 사용 여부 |
더보기
IK 애니메이션에 대해
- IK : 허리를 기준으로 잡았을 때 왼쪽 상체부위는 손끝이 마지막으로 계산됨
- FK : 손끝이 움직이면 그에 맞춰 다른 부위의 위치도 함께 계산됨
각 번호는 움직일 때 계산되는 순서
Hold가 True가 되면 상단은 오브젝트를 들고 있는 애니메이션을 취하고 하단은 걷거나 , Idle 등의 State를 취하게 됩니다.
우측 움짤은 "Hold Animation + Idle Animation"이 혼합된 상태입니다.
Animator.SetLayerWeight(Layer, Weight);
코드로 특정 인덱스의 레이어를 컨트롤하기 위해서는 위 처럼 작성하시면 됩니다.