- Animator IK: 유니티의 기본 IK 시스템으로, Animator 컴포넌트를 통해 사용됩니다. 손과 발의 위치를 제어하는 데 유용합니다.
- 2D IK: 2D 애니메이션에서 IK를 적용하기 위한 도구로, 2D 캐릭터의 관절을 제어합니다.
- Animation Rigging Package: 고급 리깅 시스템으로, 다양한 제약 조건과 함께 복잡한 IK를 구현할 수 있습니다.
1. Multi-Aim Constraint
Multi-Aim Constraint는 특정 본(Bone)이 여러 타겟을 향하도록 제어할 수 있는 기능입니다. 주로 캐릭터의 머리, 팔 등이 타겟을 바라보도록 할 때 사용됩니다.
- Constrained Object: 타겟을 바라보도록 제어되는 본입니다.
- Source Objects: 타겟으로 설정된 오브젝트들입니다. 각각의 타겟은 가중치를 가질 수 있습니다.
- Aim Axis: 본이 타겟을 바라볼 때 사용할 축입니다 (예: X, Y, Z).
- Up Axis: 본의 위쪽 방향을 정의하는 축입니다.
- Weight: 컨스트레인트의 전반적인 영향도를 조절합니다 (0에서 1 사이).
2. Two Bone IK Constraint
Two Bone IK Constraint는 팔이나 다리와 같은 두 개의 본으로 구성된 체인을 타겟 위치에 맞추는 기능입니다.
- Root: IK 체인의 시작 본입니다.
- Mid: IK 체인의 중간 본입니다.
- Tip: IK 체인의 끝 본입니다.
- Target: IK 체인이 따라가야 하는 타겟입니다.
- Hint: IK 체인의 중간 본이 가야 할 방향을 보조하는 힌트 본입니다.
- Weight: IK 컨스트레인트의 영향도를 조절합니다 (0에서 1 사이).
3. Chain IK Constraint
Chain IK Constraint는 여러 개의 본으로 구성된 체인을 타겟 위치에 맞추는 기능입니다.
- Root: IK 체인의 시작 본입니다.
- Tip: IK 체인의 끝 본입니다.
- Target: IK 체인이 따라가야 하는 타겟입니다.
- Weight: IK 컨스트레인트의 영향도를 조절합니다 (0에서 1 사이).
4. Damped Transform
Damped Transform은 본의 움직임을 부드럽게 감쇠시키는 기능입니다. 주로 머리카락, 꼬리 등과 같은 부드러운 움직임을 표현할 때 사용됩니다.
- Constrained Object: 감쇠 효과를 적용할 본입니다. ( 하위 오브젝트 )
- Source Object: 감쇠 효과의 기준이 되는 타겟 오브젝트입니다. ( 상위 오브젝트 )
- Damp Position: 위치 감쇠 정도를 조절합니다 (0에서 1 사이).
- Damp Rotation: 회전 감쇠 정도를 조절합니다 (0에서 1 사이).
- Maintain Aim: 본이 원래의 목표를 유지하도록 할지 여부를 설정합니다.
- Weight: 전체 감쇠 효과의 강도를 조절합니다 (0에서 1 사이).
public Transform sourceObject; // 움직임의 기준이 되는 오브젝트
public Transform constrainedObject; // 움직임이 감쇠되는 오브젝트
- Source오브젝트의 영향을 받아서 constrained Object가 움직임.
- 움직일 오브젝트를 constrained Object에 집어 넣어야함
5. Multi-Parent Constraint
Multi-Parent Constraint는 하나의 본을 여러 부모 오브젝트에 연결하여 여러 부모 오브젝트의 영향을 받을 수 있게 합니다.
- Constrained Object: 여러 부모 오브젝트의 영향을 받을 본입니다.
- Source Objects: 부모로 설정된 오브젝트들입니다. 각각의 부모 오브젝트는 가중치를 가질 수 있습니다.
- Maintain Offset: 부모 오브젝트와의 초기 오프셋을 유지할지 여부를 설정합니다.
- Weight: 전체 컨스트레인트의 영향도를 조절합니다 (0에서 1 사이).
6. Twist Chain Constraint
Twist Chain Constraint는 여러 개의 본이 연속적으로 회전할 때, 회전을 부드럽게 전달하는 기능입니다. 주로 캐릭터의 팔이나 다리에서 사용됩니다.
- Root: 트위스트 체인의 시작 본입니다.
- Tip: 트위스트 체인의 끝 본입니다.
- Source Object: 트위스트 체인을 제어하는 타겟 오브젝트입니다.
- Twist Axis: 회전할 축을 설정합니다.
- Weight: 전체 트위스트 효과의 강도를 조절합니다 (0에서 1 사이).
7. Position Constraint
Position Constraint는 특정 본의 위치를 다른 오브젝트의 위치에 맞추는 기능입니다.
- Constrained Object: 위치가 제어될 본입니다.
- Source Objects: 위치를 기준으로 할 타겟 오브젝트들입니다. 각각의 타겟 오브젝트는 가중치를 가질 수 있습니다.
- Maintain Offset: 타겟 오브젝트와의 초기 오프셋을 유지할지 여부를 설정합니다.
- Weight: 전체 위치 제어의 강도를 조절합니다 (0에서 1 사이).
8. Rotation Constraint
Rotation Constraint는 특정 본의 회전을 다른 오브젝트의 회전에 맞추는 기능입니다.
- Constrained Object: 회전이 제어될 본입니다.
- Source Objects: 회전을 기준으로 할 타겟 오브젝트들입니다. 각각의 타겟 오브젝트는 가중치를 가질 수 있습니다.
- Maintain Offset: 타겟 오브젝트와의 초기 회전 오프셋을 유지할지 여부를 설정합니다.
- Weight: 전체 회전 제어의 강도를 조절합니다 (0에서 1 사이).
9. Scale Constraint
Scale Constraint는 특정 본의 스케일을 다른 오브젝트의 스케일에 맞추는 기능입니다.
- Constrained Object: 스케일이 제어될 본입니다.
- Source Objects: 스케일을 기준으로 할 타겟 오브젝트들입니다. 각각의 타겟 오브젝트는 가중치를 가질 수 있습니다.
- Maintain Offset: 타겟 오브젝트와의 초기 스케일 오프셋을 유지할지 여부를 설정합니다.
- Weight: 전체 스케일 제어의 강도를 조절합니다 (0에서 1 사이).
오버라이드와 블렌드의 주요 차이점 요약
- 목적:
- Override: 기존 값을 완전히 덮어쓰는 것이 목적입니다. 특정 상황에서 애니메이션 데이터나 트랜스폼을 완전히 무시하고 새로운 값을 적용해야 할 때 사용합니다.
- Blend: 여러 값을 섞어서 적용하는 것이 목적입니다. 자연스러운 움직임이나 애니메이션 간 전환을 위해 여러 값을 혼합하여 사용합니다.
- 적용 방식:
- Override: 하나의 값을 완전히 적용하여 다른 값을 무시합니다.
- Blend: 여러 값을 가중치를 두어 혼합하여 최종 값을 만듭니다.
실전 사용 예
- Override 사용 예:
- 특정 상황에서 캐릭터의 팔이 반드시 목표를 향하도록 고정되어야 하는 경우.
- 캐릭터가 특정 위치에 정확히 도달해야 하는 경우.
- Blend 사용 예:
- 캐릭터가 여러 목표 사이를 자연스럽게 바라보도록 해야 하는 경우.
- 여러 애니메이션 클립을 부드럽게 전환하거나 결합해야 하는 경우.
Twist Chain과 Twist Correction은 유니티의 애니메이션 리깅 시스템에서 캐릭터의 트위스트(비틀림)를 제어하기 위해 사용되는 두 가지 다른 도구입니다. 이 두 도구는 모두 캐릭터의 관절이나 본 체인이 자연스럽게 비틀리지 않도록 돕지만, 각각의 사용 방식과 목적은 다릅니다.
Twist Chain
Twist Chain은 여러 개의 본(bone)으로 이루어진 체인에서 트위스트를 부드럽게 전달하는 역할을 합니다. 주로 긴 본 체인(예: 팔이나 다리)에서 각 본의 회전을 균등하게 분배하여 자연스러운 비틀림을 만듭니다.
주요 속성 및 사용법
- Root: 트위스트 체인의 시작 본입니다.
- Tip: 트위스트 체인의 끝 본입니다.
- Source Object: 트위스트를 제어하는 타겟 오브젝트입니다.
- Twist Axis: 회전할 축을 설정합니다.
- Weight: 전체 트위스트 효과의 강도를 조절합니다 (0에서 1 사이).
Twist Correction
Twist Correction은 특정 본의 트위스트를 수정하여 캐릭터의 변형을 방지하는 데 사용됩니다. 이는 주로 캐릭터의 어깨나 엉덩이와 같이 단일 관절에서 과도한 트위스트가 발생하는 것을 막기 위해 사용됩니다.
주요 속성 및 사용법
- Constrained Object: 트위스트가 수정될 본입니다.
- Source Objects: 트위스트를 수정하기 위해 참조하는 본들입니다. 이들은 일반적으로 트위스트를 유발하는 본들입니다.
- Twist Axis: 트위스트를 수정할 축을 설정합니다.
- Weight: 전체 트위스트 수정의 강도를 조절합니다 (0에서 1 사이).
주요 차이점
- 목적:
- Twist Chain: 긴 본 체인에서 트위스트를 부드럽게 전달하여 자연스러운 움직임을 만듭니다.
- Twist Correction: 특정 본의 과도한 트위스트를 수정하여 변형을 방지합니다.
- 사용 방식:
- Twist Chain: 체인의 여러 본들에 트위스트를 균등하게 분배합니다.
- Twist Correction: 단일 본의 트위스트를 수정하고 제한합니다.
- 적용 예:
- Twist Chain: 팔, 다리와 같은 여러 본으로 구성된 체인.
- Twist Correction: 어깨, 엉덩이와 같은 단일 관절에서 과도한 트위스트가 발생할 수 있는 부분.
요약
- Twist Chain은 긴 본 체인에서 트위스트를 부드럽게 전달하여 자연스러운 움직임을 만드는 데 사용됩니다.
- Twist Correction은 특정 본의 트위스트를 수정하여 변형을 방지하는 데 사용됩니다.