Oculus Rift + VRIK で 初音ミクになりきってみる
いろんな人がVRでなりきりを試していたので、自分もやってみたいと思い、Oculus Rift + VRIKで実現する方法をまとめました。
すでにたくさんの事例があるので、今回は自分用のメモとして残すことを目的としているのですが、少しでも同じことをしたい人の参考になればと思います。まだUnity歴は1週間ぐらいなので、色々変でもご容赦ください。
環境
準備
上記を一式そろえます。
Oculu Rift CV1 + Oculus Touch
買う。
Oculus Rift | Oculus
Unity 5.6.3f1
ダウンロードアンドインストール
Unity - Download
Oculus Utilities for Unity 1.1.5
ダウンロードアンドImport Package
Oculus Utilities for Unity 5 | Developer Center | Oculus
Tda式初音ミク(かわいい)
ダウンロードアンドAssetsに配置
Tda式初音ミクV4X - BowlRoll
MMD4Mecanim
ダウンロードアンドImport Package
Stereoarts Homepage
VrGrabber
ダウンロードアンドImport Package
VR 向けの自作 Grabber を作ってみた - 凹みTips
セットアップ
Tda式初音ミクさんをUnityで使用できる状態にする
MMDのモデルはそもままでは使用できないので、使用できる状態にします。
Asset配下に配置したモデルのディレクトリ内にある、<モデル名>.MMD4Mecanim を選択しInspectorの利用規約を確認したうえで、同意します。次の画面でProcessを押すことで「<モデル名>.fbx」ができます。ここで、そのモデルを選択し、Imspectorにある Rig からAnimationTypeをHumanoidに変更します。
そうすると、Sceneに投入してあげると配置ができるようになります。一応地面としてGameObject -> 3DObject -> Plane を配置しておきました。
以下のような状態になります。
初音ミクをVRのカメラに追従するようにする
基本は以下を参考にすれば誰でもできると思います。ただ、以下の記事との違いは今回はOculusとTda式初音ミクを使用しているところにあるので、同じようにOculusを使用している人の参考になればと思います。
Unity+Vive+MMD+VRIKで、キズナアイちゃんになりきりVR - Qiita
作業概要
作業概要は以下です。
OVRPlayerController を配置
OVR -> Prefabs -> OVRPlayerController を Hierarchy に配置します。
OVRCameraRig配下に HeadTarget、LArmHandTarget、RArmHandTarget を作成
各コンポーネント配下に空の Object を作成し、Qiitaの記事を参考に各ObjectのRotationの値を変更します。今回のモデルを使用した感じ、自分の場合は以下のように設定することで腕の状態がしっくり来ました。
OVRCameraRig -> CenterEyeTarget -> HeadTarget (CreateEmptyで作成)
OVRCameraRig -> Vrg Left Grabber -> LArmHandTarget (CreateEmptyで作成)
OVRCameraRig -> Vrg Right Grabber -> RArmHandTarget (CreateEmptyで作成)
※HeadTargetは参考にしたQiitaの記事の値をそのまま使用しました。
ここで、カメラのニアクリップの変更します。変更しないと顔にカメラが埋もれてしまいます。
VRIKのScriptを初音ミクにアタッチして、VRIKのSolverにあるTargetの項目に先程作成したObjectを指定します。
次は、References -> Pelvis の項目に 初音ミクのRoot 指定します。これがないとモデルがしゃがまないそうです。
ここまでくれば、プレイモードにして初音ミクになりきることができます。あと、VRKのSolverにあるPlantFeetのチェックを外さないと、初音ミクの足が地面から離れないのでHMDを上のほうに上げると幽体離脱状態になります。
まだまだ調整した方がいいことがおおいのですが、一旦この記事ではここまでにします。次回は指の動かし方とかで調整したことをまとめたいと思います。