UnityとLeap Motionで初音ミクに触ってみる

UnityとLeap Motionで初音ミクに触ってみる

先日Leap Motionを購入したので、Unityを使って遊んでみました。

【国内正規代理店品】 Leap Motion 小型モーションコントローラー 3Dモーション キャプチャー システム

Leap Motionのセットアップ

まず初めに、Unityのプロジェクトを新規作成してから、Asset StoreからLeap Motionのアセットをダウンロードします。

Leap Motion Core Assets

このアセットさえあれば、とりあえずLeap Motionを使って手を表示させることは可能です。ちゃんと動くかどうか確認するためには、

HandControllerというPrefabをシーン上にドラッグ&ドロップすればOKです。

この状態でゲームをRunすれば、自分の手の動きに追従する3Dモデルが表示されるはずです。

もし、何も表示されない場合、Leap Motionが正しく動作していない可能性があります。その場合、下記をコマンドプロンプトに入力すると上手くいくかもしれません。

net stop LeapService

net start LeapService

(MacやLinuxの場合はここを参照)

MMDのセットアップ

MMD(MikuMikuDance)のモデルをUnityで使うため、MMD4Mecanimをインポートします。

次に、MMDのモデルの入ったフォルダをUnity上にD&Dで、プロジェクトにコピーします。

そして、Unity上でモデルをクリックすると、下の画像のような利用規約が表示されるので、チェックを入れて、「同意するボタン」を押します。

そして、次に表示される画面でProcessボタンを押すと変換が始まり、終了すると、MMDのフォルダ内にPrefabができています。

これをシーン上にD&Dするとモデルが表示されます。しかし、この状態では手のモデルはMMDモデルをすり抜けてしまい、触ることは出来ません。そこで、一手間必要となります。

RigidBodyスクリプトを追加

モデルに触るにはまず、Hierarchy上のMMDモデルをクリックし、Physicsタブを選択します。そして、Physics EngineでBullet Physicsを選択、Processを押して、

Join Local Worldのチェックを外します。

次に、Leap Motion側のモデルにRigidBodyのスクリプトを追加していきます。

まず、RigidHandというPrefabをHierarchy上にD&Dで追加し、項目を全展開します。ここで各指のBoneにスクリプトを追加するため、Boneを全て選択して、Add ComponentからMMD4Mecanim Rigid Bodyを追加します。

そして、今スクリプトを追加したRigidHandのPrefabを再度Projectの方に戻します。

最後に、Hierarchy上のHandControllerにRigidHandをD&Dで追加しなおせば作業完了です。

初音ミクに触る

ここまで色々やった状態でRunすると、ついにモデルに触ることが出来ます。

今回私は、Tda式初音ミクで試してみました。このモデルのように髪が長いと、触っている感じが分かりやすいです。