
Unity : Animation Rigging Package
https://www.youtube.com/watch?v=Htl7ysv10Qs
https://kangworld.tistory.com/187
- animation rigging 패키지 설치
- 캐릭터 오브젝트 선택 > Animation Rigging > Bone Renderer Setup : 본 렌더러 추가
- 캐릭터 오브젝트 선택 > Animation Rigging > Rig Setup : Rig 추가
- Rig에 타겟을 바라보게 하는 효과를 주기 위해, Rig 오브젝트 아래에 빈 게임 오브젝트를 만들고 ‘HeadAim’이라 명명한 뒤 Multi-Aim Constraint 컴포넌트 추가
- Multi-Aim Constraint 설정
- Constrained Obejct : 움직이게 할 대상. 모델에서 헤드 오브젝트를 찾아서 넣어준다.
- Aim Axis : 대상을 바라볼 축. Y로 설정한다.
- Up Axis : 위가 될 축. Y로 설정한다.
- Source Objects : 바라볼 대상. HeadAim 아래에 ‘Target’이라는 게임 오브젝트를 추가하고, Source Objects에 넣어준다.
- Settings > Min, Max Limit : 돌아갈 수 있는 최대 각도. -100, 100으로 설정한다.
- 씬 뷰 우측 하단 Animation Rigging에서 대상의 크기 모양 색깔을 설정할 수 있다
- 게임 실행하고 Target을 움직이면 대상을 향해 머리가 돌아가는 걸 볼 수 있다.
- Rig 컴포넌트 > Weight : Constraint 적용되는 정도. 플레이어가 멀어지면 바라보지 않게 응용 가능. Multi-Aim Constraint 컴포넌트에서 개별 값을 조절할 수도 있다.
- 애니메이션을 바꿔도 똑같이 대상을 바라본다.
- 상체도 돌아가게 하기 위해, Target을 상위 레벨로 올린 후에 HeadAim을 복사하고 상체를 할당한다.
- 살짝 덜 돌아가게 하기 위해, Source Objects의 Weight를 0.3으로 줄인다.
- 또다른 constraint 효과를 주기 위해, rig 하나를 또 setup한다. 이름은 ArmRig로 바꾼다.
- ArmRig 아래에 빈 오브젝트를 추가하고 ArmMover라 명명하고 Two Bone IK Constraint 컴포넌트를 추가한다.
- Two Bone IK Constraint : 두 개의 뼈를 가진 관절 체계가 목표에 도달하도록 자동으로 회전 및 위치를 계산
- Root에는 팔 위쪽 뼈, Mid에는 팔 아래쪽 뼈, Tip에는 손을 할당한다.
- 빈 오브젝트를 ArmMover 아래에 하나 더 추가하고 Target이라 명명한다. Ctrl을 누르고 모델에 있는 손 오브젝트를 함께 선택한 후, Animation Rigging > Align Transform을 선택한다. 그 후 ArmMover의 Source Objects > Target에 추가한다.
- 특정한 위치를 정해놓고 스크립트로 Weight를 조절하여 특정 동작을 하게 만들 수 있다.
- Animation이나 Timeline 시스템과 같이 사용하여 동작을 저장하거나 재생할 수도 있다.
- Rig 하나에 여러 Constraint를 할당하면, Hierarchy에서의 순서 기준으로 적용된다.
- Rig끼리의 순서는 Rig Builder 컴포넌트에서 지정할 수 있다.
- Package Manager > Animation Rigging > Samples에 가면 어떻게 활용하는지 예시 프로젝트 있다.
Inverse Kinematics (역운동학)?
오브젝트의 끝부분을 먼저 정하면, 이를 기준으로 나머지 관절(뼈)들의 위치와 회전을 자동으로 계산하는 방식