애니메이션 리깅
다음 문서는 애니메이션 리깅 패키지 **[com.unity.animation.rigging]**의 설정 프로세스, 제약 정의, 추가 정보에 대해 설명합니다.
애니메이션 리깅이란 ?
사용자는 애니메이션 리깅을 사용하여 C# 애니메이션 잡 API를 기반으로 다양한 제약 집합을 만들고 구성함으로써 애니메이션 리깅과 관련된 여러 요구 사항을 해결할 수 있습니다. 여기에는 캐릭터 방어구, 액세서리 등에 대한 변형 릭(절차적 보조 애니메이션)과 상호작용 조정, 타겟팅, 애니메이션 압축 보정 등에 대한 월드 상호작용 릭(IK, 조준 등)도 포함됩니다.
워크플로
다음 섹션에서는 애니메이션 릭을 정의하기 위한 필수 컴포넌트와 단계를 설명합니다. 또한 이 동영상은 커스텀 애니메이션 릭을 만들기 위한 패키지 컴포넌트 사용 방법도 알려줍니다.
Rig Builder 컴포넌트
Rig Builder 컴포넌트는 Animator 컴포넌트와 함께 상주하며, 기존 애니메이터 상태 머신에 추가되는 플레이어블 그래프를 생성합니다. Rig Builder 컴포넌트는 Animator 컴포넌트가 있는 게임 오브젝트에 추가해야 합니다. 릭 빌더는 애니메이터와 동일한 계층 구조에 영향을 주어야 합니다.
Rig Builder 컴포넌트는 Rig Layers를 사용하여 여러 릭의 중첩을 허용합니다. 이는 언제든지 활성화/비활성화할 수 있습니다.
Bone Renderer 컴포넌트
사용자는 Bone Renderer 컴포넌트를 사용하여 리깅 프로세스 동안 시각화 및 선택을 위해 뼈대로 그릴 트랜스폼 계층 구조를 정의할 수 있습니다. 이 뼈대는 게임 뷰에서 보이지 않습니다. 예를 들어 사용자는 리깅을 위해 자신의 캐릭터 변형 골격을 정의할 수도 있습니다.
뼈대의 모습은 커스터마이즈할 수 있습니다. 뼈대 크기, 모양 및 컬러는 수정이 가능합니다. 로컬 축의 삼각대를 표시하고, 사용자 선호에 따라 크기를 조정할 수도 있습니다. 사용자는 피라미드, 라인, 박스 중 하나의 기본 모습을 선택할 수 있습니다.
릭 이펙터
뼈대와 마찬가지로 사용자는 릭 이펙터를 사용하여 시각화와 선택을 위해 트랜스폼에 시각적 기즈모를 추가할 수 있습니다. 시각적 기즈모는 Rig Builder 또는 Rig 컴포넌트와 동일한 계층 구조에 있는 모든 트랜스폼에 추가할 수 있습니다. 이펙터는 게임 뷰에서 보이지 않습니다. 릭 계층 구조에서 이펙터를 관리하고 커스터마이즈할 수 있도록 특별한 씬 뷰 오버레이가 추가되었습니다.
이펙터의 모습도 커스터마이즈할 수 있습니다. 이펙터 크기, 모양, 컬러, 오프셋 포지션, 오프셋 회전은 수정이 가능합니다. 모양은 프로젝트에서 이용 가능한 모든 메시 에셋일 수 있습니다. 동시에 여러 개의 이펙터를 생성, 삭제 또는 편집할 수 있습니다.
Rig 컴포넌트
Rig 컴포넌트는 특정 릭의 모든 릭 제약에 대한 주요 엔트리 포인트입니다. 이 컴포넌트는 Rig Layer 필드에서 Rig Builder 컴포넌트에 할당됩니다. 컨트롤 릭 계층 구조당 하나의 Rig 컴포넌트가 있어야 합니다. 여러 개의 릭이 있는 경우 여러 개의 컨트롤 릭 계층 구조를 다른 릭 레이어에 할당한 후 독립적으로 활성화/비활성화할 수 있습니다. Rig 컴포넌트의 주요 목적은 해당 로컬 계층 구조 아래에 정의된 모든 Constraint 컴포넌트를 수집하고 IAnimationJobs 의 순서 리스트(평가 순서)를 생성하는 것입니다. 그러면 애니메이터 평가 후에 이 리스트가 적용됩니다. 제약이 GetComponentsInChildren 을 사용하여 수집되기 때문에 잡이 평가되는 순서는 컴포넌트 순서와 릭 계층 구조의 구성 방식에 의해 정의됩니다. 이 순서는 아래와 같이 뎁스 우선 이동을 따릅니다.
즉 사용자는 게임 오브젝트 아래의 그룹화 제약을 사용하여 계층 구조를 수정함으로써 이러한 제약의 평가 순서를 관리할 수 있습니다.
컨트롤 릭 계층 구조는 이펙터, 제약 등과 같은 필수 릭 요소와 제약 정의에 필요한 기타 오브젝트/요소를 포함해야 합니다. 컨트롤 릭 계층 구조의 루트는 골격 루트와 동일한 수준이어야 하고, 둘 다 애니메이터가 들어 있는 게임 오브젝트 아래에 있어야 합니다. 즉 골격 계층 구조 내에 있는 것이 아니라, 곁에 상주해야 합니다.
모든 Constraint 컴포넌트와 같은 Rig 컴포넌트에는 전체 컨트롤 릭 계층 구조를 활성화/비활성화하거나 이즈인/이즈아웃하는 데 사용하고 애니메이션화하고 스크립트화할 수 있는 Weight 프로퍼티가 있습니다.
릭 트랜스폼
릭 계층 구조의 특정 게임 오브젝트 부분이 조작에는 중요하지만 릭 제약에서 참조하지 않는 경우 Animation Rigging/Setup 아래에 있는 RigTransform 컴포넌트를 추가해야 합니다. 아래 동영상에서 본 바와 같이 부모 트랜스폼(ik )을 사용하여 2BoneIK 샘플의 왼발 및 오른발 IK 타겟(lfik 및 rfik)을 모두 조작하려면 이 컴포넌트를 추가해야 원하는 동작을 구현할 수 있습니다.
애니메이션 릭 정의
릭은 최소 세 가지의 컴포넌트(Rig Builder, Rig, Constraint)를 사용하는 게임 오브젝트의 계층 구조입니다. 일반적인 설정은 루트 게임 오브젝트에 Animator 컴포넌트가 있는 게임 오브젝트[예: Ninja.fbx]의 계층 구조를 갖습니다. 애니메이터 릭에서 이러한 계층 구조를 사용하려면 Rig Builder 컴포넌트가 필요합니다. Rig Builder 컴포넌트를 루트에 추가하면 릭 게임 오브젝트[예: Rig Setup] 를 이 루트의 자식으로 생성할 수 있습니다. 애니메이션 리깅을 활성화하려면 릭 게임 오브젝트 에 Rig 컴포넌트가 포함되어 있어야 합니다. 그런 다음 릭을 애니메이터에 연결하려면 릭 게임 오브젝트[예: Rig Setup] 를 Rig Builder 컴포넌트의 Rig Layer 필드에 할당해야 합니다. 그러면 애니메이션 릭과 애니메이터가 연결됩니다.
다음 그림은 Animator 컴포넌트와 Animation Rig 컴포넌트 간의 상호 종속성에 대한 도식적 개요를 나타냅니다.
Rig 컴포넌트가 포함된 릭 게임 오브젝트(예: Rig Setup) 가 Rig Builder 컴포넌트에 연결되면 Rig Constraint 컴포넌트가 들어 있는 릭 요소(이펙터 게임 오브젝트)를 릭 게임 오브젝트(예: Rig Setup) 계층 구조 아래에 추가할 수 있습니다. 다양한 릭 요소를 정리하고 계층적으로 구성하여 원하는 종류의 릭을 생성함으로써 모든 리깅 요구 사항을 충족할 수 있습니다. 타겟 이펙터 또는 힌트 이펙터 등과 같은 제약을 위한 소스 게임 오브젝트는 연결된 릭 게임 오브젝트(예: Rig Setup) 아래에 배치할 수 있습니다. 다음 그림에서 Left Leg는 Two Bone IK Constraint 컴포넌트가 들어 있는 릭 요소 역할을 합니다(동시에 LeftFootEffector와 LeftLegHint 소스 오브젝트 모두의 부모임).
Constraint 컴포넌트
애니메이션 리깅 패키지에는 릭을 정의하는 데 사용할 수 있는 몇 개의 사전 정의된 제약이 들어 있습니다.
- 블렌딩 제약
- 체인 IK 제약
- 감쇠 트랜스폼
- 다중 조준 제약
- 다중 부모 제약
- 다중 포지션 제약
- 다중 레퍼런스 제약
- 다중 회전 제약
- 오버라이드 트랜스폼
- 트위스트 보정
- 두 개 뼈대 IK 제약
기술 세부 정보
요구 사항
이 버전의 애니메이션 리깅은 다음 버전의 Unity 에디터와 호환됩니다.
- .Net 4.x 스크립팅 런타임을 지원하는 2019.1 이상
알려진 제한 사항
문서 개정 이력
날짜 | 이유 |
---|---|
2018년 11월 23일 | 패키지 문서의 첫 번째 초안 |