결론 : Rig to Unity Generate한 후 Hand Bone을 DEF-Hand로 Parent 변경해주어 Unity Humonoid에서 요구하는 사항에 맞는 트리구조를 만든 후에 Rigging하자.
Blender는 3ds max의 Biped와 비슷한 기능을 할 수 있는 Meta-Rig가 있다. 근데 Biped는 걍 뼈다귀가 나와서 이거 가지고 놀면 되는데, Blender의 MetaRig는 그냥 보면 개 복잡하다. 일단 사람모양으로 만들어지길래 이걸 캐릭터에 맞춰서 transform하고 곧 바로 Animation을 하러 가도 되지만 이 상태에서 바로 Animation을 하면 걍 Bone으로 되어있기 때문에 G키로 Move를 하면 원피스 루피 고무고무 총난타 같은 애니메이션을 의도하지 않았음에도 만들 수 있다.
다음을 참고 하여 만들었다. 플러그인이 필요하면 github에서 받아서 쓰면 된다.
https://docs.unity3d.com/560/Documentation/Manual/BlenderAndRigify.html
Unity - Manual: Using Blender and Rigify
A Glossary of animation terms Using Blender and Rigify Blender now comes with a free add-on called Rigify that provides your models with a biped rig that will work with Mecanim. This will prove very useful for new and casual game developers. This guide sho
docs.unity3d.com
https://github.com/AlexLemminG/Rigify-To-Unity
GitHub - AlexLemminG/Rigify-To-Unity: Converts Rigify rig to Humanoid compatible
Converts Rigify rig to Humanoid compatible. Contribute to AlexLemminG/Rigify-To-Unity development by creating an account on GitHub.
github.com
일단 딴 건 몰라도 DEF(deform) Bone이 실제 Biped와 대응되는 Skinning 본이므로 DEF 본만 보면 된다.
사실 이렇게 글 쓸 이유도 없는데. 위에 다 나와있어서.
하지만 까먹을까봐 쓴다. 이건 내 일기장이니까...
원리 :
Skeletal Animation이라는 것은 결국 트리 구조로 작성된 Bone List의 Position Rotation Scale 값을 KeyFrame으로 기록하는 것이다.
그러면 어떻게 다른 모델링인데 같은 애니메이션을 공유해서 사용할 수 있는 것인가?
Biped를 보면 트리구조가 대충 Root - Spine1 -Spine 2- Spine3 - Neck - Head Spine3에서는 다시 Shoulder - upperArm - foreArm - Hand
이렇게 구조가 되어있는데, 언리얼도 아직 자세하게 확인은 안 해봤지만 똑같을 것이다. 트리구조가 이렇게 부모 자식 관계가 맞춰져 있기만 하면 휴머노이드로 인식하도록 할 수 있고, 이 관절에 대한 애니메이션을 재사용할 수 있게 되는 것이다.
그래서 그냥 사람 모양이면 휴머노이드 타입으로 Rig 타입을 놓으면 사람에 대한 애니메이션을 막 적용할 수 있게 된다.
Generic은 이 휴머노이드의 여집합에 해당하는 Rig가 사용하는 것이다.
Humonoid 타입을 쓰면 장점은 리소스 재활용이 가능하다는 것인데, 이게 바이패드 세팅과 같이 제약이 있다. Scale 키가 무시되고 위에서 말한 고무고무 총난타 같이 팔이 늘어나거나 하는 애니메이션을 넣을 수 없다.
그래서 Rigify로 작성된 Rig는 Unity에서 요구하는 Humonoid 사양에 맞지 않기 때문에 우리가 임의로 트리 구조를 수정하고, 쓸모없는 본을 지워주어야 한다. 물론 이걸 안지우고 쓸 수도 있지만 그렇게 할 경우 Generic 타입으로만 Rig를 쓸 수 있다.
내가 Rigify를 이렇게 오랜시간 Unity에 넘기지 못하는 데 고통받으면서 사용하려고 했던 이유는 그냥 Bone을 가지고 셋업을 하였을 경우 IK, driver 등등 Constraint 세팅을 내가 모두 해주어야 한다. 시도를 해보았으나 매우 고통스러웠고 Biped가 천사라고 느껴질 정도로 다리 하나 굽히는 거 꼴랑 이거하나 자연스럽게 제작하는 게 힘들었다. IK 세팅을 하려니 Pole 로 사용할 본을 요구하는데, 이걸 세팅해줘도 굽히는 각도가 사람처럼 안 구부려지고 지멋대로 움직인다. Pole Bone도 일일이 키를 또 잡아야 한다는 게 정신 나갈 것 같아서 Rigify를 쓸 수 밖에 없었다.
Rigify는 Generate를 할 경우 이러한 Controller를 모두 제공하기 때문이다. 하지만 막상 Rigify를 쓰려고 보니 Bone이 무슨 100개가 넘게 생성이 된다. 일단 이 상태에서 멘탈이 찢긴다. 이걸 대체 어떻게 쓰라는 건가...
그래서 열심히 찾아보았다. Rigify에서 실제로 Skinning에 사용되는 본은 21번 Layer에 있는 Def Bone 들만 사용할 수 있으며, 나머지는 모두 사람같이 움직이도록 하기 위한 세팅용 본들이다.
문제는 Def bone들이 Biped처럼 클린하게 트리구조가 되어있는 게 아니라 Org 본에 붙어있기도 하고 뭐 지 멋대로 Parent가 되어있다. 왜 이따위로 정신나갈 것 같이 해놨는 지는 모르겠지만. 어쨌든 위에 있는 생성된 Rigify Armature를 Unity용으로 변경하는 플러그인을 사용해서 Unity의 휴머노이드에 맞게 세팅되도록 한 후, 그렇게 해주어도 여전히 남아있는 Hand본의 Parent를 Def본에 잘 연결시켜주어야 한다는 점 잊지 말도록 하자.
마지막은 내가 제작한 캐릭터에 UnityChan 홈페이지에서 가져온 춤추는 애니메이션을 적용시킨 움짤로 끝내기로 한다...
'Blender > Rig & Animation' 카테고리의 다른 글
Pivot Point 이동 없이 원형으로 물체가 이동하도록 애니메이션 만들기 (0) | 2022.04.19 |
---|