MMD방을 만들고 싶다고 하시는 분들이 많아 강좌를 쓰게 되었습니다. 굳이 MMD방 뿐만이 아니라, 총게임이나 퍼즐게임에서 승리나 패배 이벤트가 발생했을때 아바타에게 모션을 재생시키고 싶으신 분들도 이 강좌가 도움이 되길 바랍니다.
먼저 MMD 기능을 넣을 월드를 불러옵니다. (그리고 반드시 Final IK를 구입하셔야 합니다.)
빈 오브젝트를 하나 생성하고 VRC_Station 컴포넌트를 생성합니다. 이제 이 오브젝트 위에서 아바타가 춤을 추게 만들겁니다.
Animator Override Controller를 생성한 뒤 짓고 싶은 이름으로 바꿔줍니다. 저는 MMD로 하겠습니다.
그러면 저 컨트롤러가 비어있을텐데 옆에 작은 원을 눌러 AvatarControllerTemplete을 찾아넣습니다.
적용하고 싶은 모션을 에셋에 불러옵니다.
애니메이션 탭으로 들어가 Full Body Biped IK와 VR IK 컴포넌트를 비활성화시켜주는 모션을 넣습니다. 이 부분에 대해서는 https://gall.dcinside.com/mgallery/board/view/?id=vr&no=53403를 참조하시면 됩니다.
수정한 모션을 아까 만든 오버라이드의 IDLE탭에 넣어줍니다.
그리고 그 오버라이드를 아까 만든 빈 오브젝트의 Animator Controller에 집어넣습니다.
모션과 음악을 구동시킬 버튼 오브젝트를 만들어줍니다. 이건 강좌라서 그냥 대충 큐브로 만들고 있는데, 월드 제작하실 분들은 버튼 오브젝트를 예쁘게 꾸며주셔도 상관없습니다.
버튼에 트리거 컴포넌트를 생성합니다.
OnInteract로 바꿔줍니다.
여기가 좀 어려운데, Actions에서 SendRPC를 넣어줘야하는데 Basic Events에서 찾을 수는 없고 Events from Scene에서 아까 VRC_Station 컴포넌트를 생성했던 오브젝트를 찾아 선택해야합니다.
사용할 음악을 에셋에 불러와 Hierarchy 패널에 집어넣습니다.
볼륨 설정 및 기타 설정들을 원하시는대로 셋팅하고 오디오 소스가 담긴 오브젝트를 비활성화 시켜줍니다.
아까 만든 버튼 오브젝트로 돌아와, 트리거에 오브젝트 활성화 액션을 추가하고 오디오 소스를 선택 후 Operation 설정을 True로 바꿔줍니다.
마지막으로, VRC_Station의 Location칸에는 아바타가 위에서 춤출 오브젝트를, Station칸에는 트리거가 담긴 오브젝트를 넣어줍니다.
이제 월드를 업로드하여 테스트해봅시다.
참고로 트리거와 애니메이터 기능을 활용해 랜덤으로 모션을 재생시킨다던지, 버튼을 두번 누르면 다른 모션을 재생시킨다던지, 아바타가 춤추는 오브젝트에 애니메이션을 넣어 위치를 움직이게 함으로서 뮤직비디오처럼 만든다던지 하는 것들이 가능합니다.
굳이 춤뿐만 아니라, FPS같은 경우 총알 오브젝트에 충돌하면 트리거를 발동시켜 쓰러지는 모션을 재생시킨다던지, 승리했을때 오버워치처럼 승리포즈나 최고의 플레이 애니메이션 연출도 가능합니다. 자신의 창의력과 상상력을 최대한 발휘하여 멋진 연출을 만들어보시길 바랍니다.
※이건 여담인데 이 기능을 활용하여 아바타 내에서 1분이 넘어가는 모션을 적용해보려고 했는데...아바타에는 트리거 컴포넌트를 아예 못 넣게 해놨더군요. Final IK를 이용해서 모션을 1분 넘게 재생할 수 있는 방법을 아시는 분 계시면 알려주시면 감사하겠습니다.