Unity : Animation Rigging Package


https://www.youtube.com/watch?v=Htl7ysv10Qs
https://kangworld.tistory.com/187

alt text

  • 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 컴포넌트에서 개별 값을 조절할 수도 있다.
  • 애니메이션을 바꿔도 똑같이 대상을 바라본다.

alt text

  • 상체도 돌아가게 하기 위해, Target을 상위 레벨로 올린 후에 HeadAim을 복사하고 상체를 할당한다.
  • 살짝 덜 돌아가게 하기 위해, Source Objects의 Weight를 0.3으로 줄인다.

alt text

  • 또다른 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 (역운동학)?
오브젝트의 끝부분을 먼저 정하면, 이를 기준으로 나머지 관절(뼈)들의 위치와 회전을 자동으로 계산하는 방식