상세 컨텐츠

본문 제목

유니티 Chain Ik, 체인 IK, 애니메이션 리깅

유니티/기능

by MJ_119 2024. 10. 4. 00:58

본문

- 애니메이션 리깅에서 chain ik, 체인 IK 적용해보기.

 

 

1. 체인 IK를 적용할 제일 상단 오브젝트(Monster)에 애니메이터와 Rig Builder 컴포넌트를 추가한다.

 그리고 자식 오브젝트로 빈 오브젝트를 만들고 거기에 Rig 컴포넌트를 추가해준다.

 

2. Rig 오브젝트 자식으로 빈 오브젝트를 만들고 Chain IK Constraint 컴포넌트를 추가해준다.

Root와 Tip에 리깅(Rigging)된 오브젝트를 넣어준다. 

Target에는 목표로 하는 오브젝트를 넣어준다.

 

3. 본 렌더러(bone renderer)를 통해 시각적으로 뼈의 위치 등을 확인한다.

 - 본 렌더러는 없어도 IK 적용하는데 전혀 상관 없다. 대신에 본 구조가 보여서 보면서 설정하기가 편하다.

 

4. 스크립트를 통해 Rig이나 chain ik constraint 둘중 하나의 Weight의 값을(0~1까지) 조절해가면서 사용한다.

 

5. bone들은 빈 오브젝트이다.

 

6. bone의 자식으로 bone1, cube1을 추가한다.

 - bone1의 자식으로 bone2, cube2를 추가한다.

 - bone2의 자식으로 bone3, cube3을 추가한다.

이런식으로 진행.

 

7. chain ik 컴포넌트에서 root, tip, Target 등 수정했으면 최상위 오브젝트에 rigBuilder의 컴포넌트를 껐다 키거나, 재빌드 해줘야 적용이 된다.

 - 실행전에 chain ik 타겟을 미리 설정해놓고 Play하면 이상없이 타겟을 목표로 삼는데, Play모드에 들어가서 실행 도중에 Target을 바꾸면 알아서 Update가 되는게 아니고, 이전 타겟에 머물러있는 상황이 발생. 

 

 - 해결방안 : rigBuilder의 컴포넌트를 껐다 키거나, 빌드를 다시 해줘야 적용이 된다.

// spawnMonster : 최상위 오브젝트
spawnMonster.GetComponent<RigBuilder>().Build();

 

 

 

 

 

 

 

bone

 

관련글 더보기