UnityとHydraでMMDモデルの髪やスカートに触る

以下の記事でLeap MotionでMMDモデルに触る方法が紹介されていたので、Hydraでやってみました。

なお、UnityのFree版ではうまく動かなかったので30日試用版を使っています。

テストに使用したモデル : あぴミク(MMDにて撮影) テストに使用したモデル : あぴミク(MMDにて撮影)

Hydraの手とMMDモデルの準備

「Asset Store」から「Sixense Unity Plug-in」をインポートし、「SixenseInput/DemoScenes/SixenseHands.unity」のシーンを開きます。

SixenseHands.unityを開いたところ SixenseHands.unityを開いたところ

ここにMMD4Mecanimを使用してMMDのモデルをインポートします。インポート手順は以下のチュートリアルのとおりです。(「シーンへのオブジェクトの配置」まで)

今回は以下のモデルを使用しました。

インポートできたらモデルのサイズや位置を調整しておきます。

MMDモデルのサイズと位置を調整したところ MMDモデルのサイズと位置を調整したところ

これで素材は揃いましたが、このまま実行してもHydraの手はMMDモデルをすり抜けてしまい、触ることができません。

HydraでMMDモデルに触るための設定

MMDモデルに触るためには、MMD4Mecanimの以下のドキュメントで説明されている機能を使用します。

MMDモデル側の設定で「Physics Engine」の項目を「None」から「Bullet Physics」に変更し、「Join Local World」のチェックを外します。

Bullet Physicsの設定をしたところ Bullet Physicsの設定をしたところ

Hydraのデモ用の手には衝突用のオブジェクトが設定されていないので、とりあえず適当なCubeを追加して使います。

メニューから「GameObject」→「Create Other」→「Cube」で立方体を作り、サイズと位置を調整して「HandsController」の「Hand - Right」と「Hand - Left」配下に入れます。「Mesh Renderer」のチェックを外せばボックスは見えなくなります。

衝突用のCubeを追加したところ 衝突用のCubeを追加したところ

Cubeを選択した状態で、「Add Component」から「Scripts」→「MMD4Mecanim Rigid Body」を選択してスクリプトを追加します。

「MMD4Mecanim Rigid Body」のスクリプトを追加したところ 「MMD4Mecanim Rigid Body」のスクリプトを追加したところ

以上で設定は完了です。

実行

Hydraを接続して実行すると、髪やスカートに触ってインタラクションをとることができます。

完成! 完成!

関連記事

blog comments powered by Disqus