MRが楽しい

MRやVRについて学習したことを書き残す

MikuMikuDanceのキャラクタをUnityに取り込む(mmd4mecanim編)その2

本日は MMD の技術調査枠です。
前回 mmd4mecanim でMMDモデルを Unity に取り込む方法を調査しました。
bluebirdofoz.hatenablog.com

幾らか遊んで試してみたので作業ごとにまとめます。

初期ポーズをT字ポーズにする

mmd4mecanim では読み込んだモーションの1フレーム目のポーズが基本ポーズになるようです。
f:id:bluebirdofoz:20171127032329j:plain

恐らくダンスの繋がりをよくするための措置ですが、やはり基本ポーズはT字ポーズにしたいです。
やり方は簡単。T字ポーズの vmd ファイルを作って読み込めば良いだけです。
MMD を起動します。
f:id:bluebirdofoz:20171127032430j:plain

何でも良いので人型のモデルを読み込むと、MMD の基本のT字ポーズで表示されます。
f:id:bluebirdofoz:20171127032442j:plain

フレーム操作で基本ポーズを構成するボーン設定を選択状態にします。
f:id:bluebirdofoz:20171127032507j:plain

この状態で ファイル -> モーションデータ保存 を行い、vmd ファイルを出力します。。
f:id:bluebirdofoz:20171127032517j:plain

改めてMMDモデルの変換を行い、VMD ファイルの選択に、基本T字ポーズ -> ダンスモーション の順で選択します。
f:id:bluebirdofoz:20171127032532j:plain

出力されたMMDモデルの基本ポーズがT字ポーズになりました。
f:id:bluebirdofoz:20171127032542j:plain
後は前回と同様の手順で、ダンスモーションをアニメーションコントローラを設定すればOKです。

物理演算を有効にする

変換後のモデルを利用すると、デフォルトでは物理演算が無効になっています。
そのままだとスカートや装飾の先端が宙に浮いた形で静止してしまいます。
f:id:bluebirdofoz:20171127032551j:plain

ダンスを躍らせる場合は物理演算を有効にした方が見栄えは良くなります。
モデルの GameObject から MMD4MecanimModel(Script) を確認し、PhysicsEngine を BulletPhysics に変更します。
f:id:bluebirdofoz:20171127032600j:plain

HoloLensに投影する

UWP アプリでビルド可能なため、作成したアプリは HoloLens にもインストール可能です。
しかし、以前調査したように精細なMMDモデルをHoloLens上でそのまま描画すると、マシンパワーが足りず、処理が重くなります。
bluebirdofoz.hatenablog.com

前回は Blender を通してポリゴン数を落とす解決策を取りましたが、解決策はそれだけではありません。
HolographicRemoting を利用すると UnityEditor のデバッグを HoloLens で行えます。bluebirdofoz.hatenablog.com

つまり、これを使えばキャラクタ描画の重い処理はPCで行いつつ、HoloLensで投影を行えます。
ネットワーク接続可能なPCが別途必要になりますが、持ち運びせず、個人的に楽しむのであればこれでも十分です。
早速試してみます。

Unity 側で Holographic Emulation を起動します。
f:id:bluebirdofoz:20171127032849j:plain

HoloLens 側で HolographicRemoting を起動しておくと……。
f:id:bluebirdofoz:20171127032858j:plain
キャラクタが HoloLens 上でも滑らかにダンスをしてくれました。成功です。

ただし、2017.2 以降の HoloToolkit だと UnityEditor はヘッドセット環境として認識するようで背景が描画されてしまいます。
こだわるならば UnityEditor の場合でも、HoloLens での動きと同じように背景を透過させるなどのカスタマイズが必要です。