유니티 개발 관련

Final IK 써보기

DualQuaternion 2022. 7. 25. 15:43

http://www.root-motion.com/finalikdox/html/page4.html

 

Biped IK

IK system for standard biped characters that is designed to replicate and enhance the behaviour of the Unity's built-in character IK setup. BipedIK or FullBodyBipedIK? Originally the only benefit of BipedIK over FullBodyBipedIK was its much better performa

www.root-motion.com

지금 개발중인 부분에 IK가 필요하다. 그래서 유로 플러그인인 Final IK를 써보고있는데, 또 대충 살펴보니 Final IK가 지원하는 다양한 모듈 중 Biped IK라는 것이 지금의 문제 풀이에 가장 적합한 걸로 보인다.

 

그래서 상기 링크의 문서를 읽어보려하는데, 공부 겸 번역해가며 읽어보면서 이 페이지에 내용을 정리해보았다.

 

Biped IK

유니티의 빌트인 캐릭터 IK 셋업을 강화하고 replicate할 수 있도록 디자인된 표준 바이패드 캐릭터를 위한 IK 시스템

 

BipedIK or FullBodyBipedIK?

원래 BipedIK를 썼을 때의 장점은 퍼포먼스가 훨씬 좋다는 것이었다. 하지만 FinalIK 0.4부터는 FBBIK solver의 iteration count를 0으로 설정할 수 있게 되면서, 거의 BipedIK만큼 빠르게 작동하게 되었다. 이 방법은 캐릭터의 IK 최적화를 훨씬 간단해지게 해주었다. 따라서 0.,4버전 부터는 FullBodyBipedIK 컴포넌트를 사용하는 것을 추천하고 있따.

 

BipedIK or Unity's Animator IK?

* Animator IK는 solver의 기본적인 parameter의 수정을 허락하지 않는다. 예를 들면 lib bend direction 같은 것 말이다. 따라서 일반적이지 않은 케이스에 대해서는 적용이 어렵다. 

* Animator  IK는 spine solver가 빈약하다.

* Animator의 LookAt 기능이 가끔 이상하게 작동한다.

* BipedIK는 AimIK도 적용가능하다.

* BipedIK는 unity pro를 요구하지 않는다.

 

간단하게 유니티의 빌트인 Animator IK로부터 BipedIK로 옮겨올 수 있도록 같은 API를 제공하고 있다. 그래서 animator.SetIKPosition()을 bipedIK.SetIKPosition()으로 변경하기만 하면 된다.

 

BipedIK는 FinalIK 패키지의 다른 컴포넌트와 같이 셋업을 위해서 필요한 작업을 최소화했다. BipedIK는 자동으로 bipedbones를 탐지해서 컴포넌트를 drag & drop 하자마자 잘 작동할거다. 만약 BipedIK가 본 구조를 인식하지 못하거나, 그 구조를 변경하고 싶을때는 언제건 인스펙터창을 통해서 수정할 수 있다. 

 

시작하기

* 캐릭터의 루트에 BipedIK 컴포넌트를 추가한다. 

* 바이패드의 구조가 잘 감지되었는지 확인한다.

컴포넌트를 추가해보니 이렇게 나온다.

잘 된것 같다. 

 

*Solver에 weight를 잘 주고 play를 눌러보자.

solver를 열어보니 이런 모습이다. 오른쪽 손에 target을 심어줘봐야겠다. 

 

Play를 눌렀는데 에러가 나온다.

찾아보니 위와 같은 글이 있었다. 어라 그냥 재생하니 넘어가진다. 뭐야....

 

미묘하게 애니메이션이 변경된걸 확인할 수 있다. 이제 파라미터만 잘 조정하면 원하는 결과를 얻을 수 있을 것 같다.

 

남은 부분은 살펴보니 크게 얻을 건 없어보여서 이쯤에서 포스팅은 마무리!