Unity] VMD 적용 오류 (실패)

2023. 12. 20. 19:293D/Unity

 

 파란 댓글은 일주일 공부 후


유니티 쓰시는 분이 제가 만든 VMD를 넣으면 모션이 이상하다고 해서 유니티 빠르게 배워서 해보는 중입니다.

 

아래는 제가 만든 모션입니다.

https://www.youtube.com/watch?v=i4loQ1_T3kQ&t=36s

 

 

 

 

 
 

 

(모델 문제인가 해서 쓰시는 모델 받아서 적용했는데 Blender와 MMD에선 문제가 없었습니다.)

 

 

 

아래는 유니티에서 받은 Model로 Vmd를 적용했을 때의 모습입니다.

 

제가 가진 다른 분들 motion 중에서도 같은 증상인 게 있긴 하더라고요.

제 모션을 넣으니 hip본이 부서져서 같은 증상이 된 것이었는데
다른 모션은 부서져도 잘되는 하.. 모르겠다

 

 

질문1. 허리가 Root bone인 것 같고 허리 쪽이 아예 안 움직입니다.

인터넷에 있는 방법 MMD4Mecainm으로 Humanoid하고 Root transform 등등 만져봤는데 안 고쳐지는데 도움 요청합니다 

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡBlender의 rigify 와는 다르게 Game engine은 허리가 root본이라고 함.
뭐 움직임이 허리로 하는 게 시스템 용이성, 호환, 뭐 motion 용량의 최적화 등등이라 함.

질문2. 아니면 FBX motion을 사용하는 방법이 있을까요?

(FBX를 뼈까지 통째로 가져가면 허리 문제없긴 하던데 Humanoid로 바꾸니까 모션(anim.)이 사라져 버립니다.

Generic에서 추출(Ctrl+D)해서 humanoid한 다른 모델에 넣어보면 가만히 굳어있더라구요..)

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡBlender로 모델을 가져온 뒤 모션을 넣고 unity로 FBX로 통째로 가져가도 가능한 것 같음.
vrchat 모델에도 아 모르겠따 머리아픔.

Blender에서 game rig로 변형시키는 방법은 많은데 가능한 것 같긴 한데

 

 

질문3.

https://cafe.naver.com/steamindiegame/10176125

 

여기서 VRchat에선 대부분 모션사용을 금지한다고 하는데 이유를 알 수 있을까요?

ㅡㅡㅡㅡVRCHAT의 MMD 월드란 곳에서 mmd를 할 수 있는데 이게 모션을 구매하지 않고도 영상을 뽑아낼 수 있어서 수익을 해치기 때문인 것 같음

 

왜 너희는 hip이 root니?

 

대체로 제자리에서 춤추는 모션을 선호하는 편인가?

(그게 더 쉽긴 한데)

 


어찌 저찌 상체에 들어가는 Location 값을 빼줬는데

이것저것 실험하다 보니 이름도 영어로 변형되어 있고 그루브랑  센터본도 없어서 거의 풀어낸 것 같은데 머리가 아픔.

영어도 호환될까 해서 vmd로 unity로 가져갔는데 안됨

 

https://youtu.be/-ukoT7W2xk0

 


최종결론 Blender와 mmd 외 게임엔진에서 쓰려면 rigify 결합방식이 아닌 mmd focus 결합방식을 쓰는 것이다.
왜 굳이 결합해서? mmd 아마추어를 그대로 쓰면 제약이 빡세서? 완벽한 인간 뼈의 움직임을 구사하지 않으면 일일히 다 잡아줘야한다.
하여튼 mmd focus 방식을 써서 최대한 mmd 아마추어와 비슷하게 찍되 ik의 장점을 가져가는 것이다.
그리고 torso ik를 쓰는 것이 아닌 그루브와 센터bone을 써서 위치를 잡아야 게임엔진에서도 호환이 된다.

뭐 vrchat에서 fbx를 쓰는 방법을 알아낸다면..

vrchat을 더 파고 든다면 해결책이 보일 것 같기도 한데

일단 motion구성에서도 오류가 있긴하니 mmd focus모션으로 찍었을 때 재실험해봐야할 것 같다.