유니티3D로 MMD 사용하기 2
전 글에 이어 기본적으로 MMD4Mecanim이 임포트 되어있고 MMD용 pmx모델 폴더, 그리고 모션으로 쓸 vmd 파일이 준비 되어야 합니다.
이 글은 유니티가 중점이므로 MMD에 대한 기본적인 지식이 있다는 가정 하에 진행됩니다.
pmx를 fbx로 변환
먼저 MMD4Mecanim가 임포트 된 유니티 프로젝트에서 pmx파일을 인식하면 자동으로 동일한 이름의 MMD4Mecanim 확장자 파일이 생성됩니다.
클릭해보면 인스펙터 창에 모델 폴더에 포함된 Read me 파일을 띄워주고 동의를 구합니다.
저작권과 관련된 부분이니 얌전히 사용하도록 합시다.
동의를 누르고 나면
이런 창으로 바뀝니다.
다른건 딱히 건드릴 필요 없고 VMD 부분에 원하는 모션들을 넣어주면 됩니다. 두 개 이상 넣을 수 있습니다.
FBX Path에서 출력 이름을 바꿀 수 있긴 한데 바꾸면 fbx 변환 과정 중에 다른 것들과 이름 매칭이 안 되서 그런지 문제가 생깁니다.
만약 같은 모델로 2개의 fbx 파일을 얻고 싶다면 아예 pmx 파일을 복사 하고 그걸로 만드는 것을 추천합니다. 만들어진 fbx 파일을 복사 해도 약간 문제가 있거든요.
그리고 Material 부분은 일단은 무시하셔도 됩니다. 후에 fbx로 나온 뽑은 후에도 어느정도 조정 가능합니다. 지금 조정해도 바뀌는 것을 볼 수 없고 거의 MMD에서 보던 기본 상태 그대로의 모습으로 나오게 됩니다.
이후 Process 버튼을 누르면 변환 과정이 이루어집니다.
시간은 좀 걸립니다. 그리고 vmd에 따라 바뀝니다. 만약 vmd를 하나도 넣지 않았다면 모델링만 변환 되고 vmd가 있다면 그만큼 애니메이션 제작도 해야해서 오래 걸립니다.
춤이 보통 3분이라 하면 60(프레임) * 60(초) * 3(분) = 10800 프레임 정도 되는데 그만큼 걸립니다.
만약 두 개 이상 넣었다면 더 걸리겠죠. 기다리면 됩니다.
다 끝나면 fbx 파일이 생성되고
이런식으로 생깁니다. vmd가 있다면 그 개수만큼 애니메이션도 포함되어 있습니다.
기본적으로 Rig를 보면 Generic으로 되어 있습니다. 포함한 vmd를 활용하고자 한다면 그대로 쓰시면 되고 휴머노이드로 활용하고자 한다면 변경하시면 됩니다.
휴머노이드로 사용 시 주의사항
휴머노이드로 사용하는 방법에 대해선 여기서 언급하지 않겠습니다. 다른 인간형 fbx모델들을 다룰 때와 동일하기 때문입니다.
단, 여기서 MMD모델의 휴머노이드 변경 중에 문제가 있는데 대부분은 문제없이 이루어지지만 일부 모델들은 제대로 되지 않습니다.
저 같은 경우엔 4개의 모델 중 하나가 그랬는데 어깨부터 팔꿈치까지의 부분이 잘못 연결되어 있더군요.
근데 이 부분에 대해선 아는게 없어서 결국 못 고쳤습니다.
만약 휴머노이드로 사용하고자 한다면 꼭 Rig 변경 이후 configure으로 정상적으로 대입이 되었는지 확인하시기 바랍니다. 아마 대부분은 정상적으로 될거라 생각합니다.
그리고 vmd로 함께 생성 된 애니메이션은 휴머노이드 상태에선 사용 할 수 없습니다.
고로 애초에 휴머노이드로 사용할 것이라면 vmd를 굳이 포함 시킬 이유가 없습니다.
MMD처럼 다뤄보기
변환된 fbx 모델을 씬에 올려보면 기본 자세는 포함한 vmd 모션에 따라 달라집니다. 만약 아무것도 포함하지 않았다면 자주 보던 小 모양으로 서있을 것이고 포함했다면 처음 올린 vmd모션의 첫 프레임 모습을 하고 있습니다.
인스펙터 창을 보면 기본적으로 Animator 컴포넌트가 있고 MMD4 Mecanim Model이라는 스크립트가 포함되어 있습니다.
MMD4 Mecanim Model은 변환 된 fbx 파일의 이름이 바뀌면 생기지 않는 것 같으니 주의 바랍니다. 동일한 이유로 위에서 언급했듯 변환 된 fbx 파일의 복사 또한 같은 문제가 발생 할 수 있습니다.
여기서 보통 일반적으로 Model, Morph, Anim 정도만 건드리게 됩니다.
Model에선 맨 아래 Physics Engine이 중요한데 처음엔 none으로 되어 있습니다.
이건 옷이나 머리카락 같은 부분에 물리를 줄 것인지를 의미합니다.
기본적으로 Generic 상태에서 vmd 모션만 사용한다면 굳이 필요 없기는 합니다. 애니메이션 변환 도중에 동작에 맞춰 흔들림까지 포함되어 있기 때문입니다.
하지만 그럼에도 환경의 영향을 받게 하고 싶다든지 등의 이유로 별도의 물리를 유니티에서 주고싶다면 따로 물리를 Physics Engine에 넣어주면 됩니다.
이러면 애니매이션에 포함된 움직임은 무시되고 환경에 영향만을 받게 됩니다.
일반적으로는 Bullet Physics를 사용하는 모양입니다.
에셋 스토어에서 Bullet Physics를 검색하여 임포트 하시면 됩니다. 무료입니다.
제가 한 가지 착각을 했는데 이것을 위한 Bullet Physics는 내장되어 있기에 따로 받을 필요가 없습니다.
제가 다른데서 배울때 따로 받길래 받아야 생긴다고 착각했습니다.
Morph에선 표정 관련을 조정 할 수 있습니다.
View English를 누르면 영어로 보인다고 하는데 전 다 깨져버리더군요. 일본어가 가능하다면 읽어서 조정해도 되고 아니면 하나씩 조정해보면서 뭐가 뭔지 파악해 보는 것도 좋습니다.
표정을 사용하게 된다면 게임 중에 실시간으로 값을 바꿀 필요가 있는데 방법은
MMD4 Mecanim Model 컴포넌트를 GetComponent로 가져온 후 GetMorph("").weight 로 바꾸시면 됩니다.
예를 들어 눈 깜빡임의 경우엔 GetMorph("まばたき").weight 로 값을 일정 간격으로 부드럽게 바꿔주면
이런식으로 눈을 깜빡입니다.
단, vmd 모션에 표정 변화까지 포함되어 있다면 우선되어 Morph 변경 값이 먹지 않습니다.
어느쪽이든 그 순간 더 높은 값을 우선합니다. 자세한 것은 모션과 표정 글을 봐주시기 바랍니다.
Anim에선 모션에 노래를 연결 시킬 수 있습니다.
기본적으로 fbx로 변환 할 때 포함시킨 vmd 모션들이 보여지는데 오디오 클립만 비어 있습니다.
그곳에 춤에 맞는 노래를 넣으면 해당 애니메이션이 실행 될 때 노래도 실행됩니다.
그외
Root는 본이니 신경 쓰지 않아도 되고 중요한건 그 아래 Char입니다.
char_0은 얼굴이고 Char_1은 몸인데 이런 식으로 통짜입니다.
그리고 하나 클릭해보면 내부가 이런식으로 되어 있습니다.
이 셰이더를 열어보면 아웃라인이나 그림자 색 등 일부 설정들을 조정 할 수 있습니다.
하지만 보다시피 다 개별 설정이기 때문에 어지간해서는 건드리지 않는 것을 추천합니다.
능력만 된다면 여기서 추가로 MMD처럼 다른 셰이더를 먹일 수도 있을거 같지만 저는 그런 능력이 안 되서 시도해보지 않았습니다.
'MMD RPG (3D) > 진행' 카테고리의 다른 글
MMD4Mecanim (0) | 2018.04.06 |
---|---|
예정 (0) | 2018.04.05 |
진행상황 동영상 (2) | 2018.04.03 |
(유니티3D)3인칭 조작 (2) | 2018.03.18 |
MMD란? 유니티3D로 MMD 사용하기 1 (1) | 2018.03.04 |