Oculus Rift DK2で艦娘に踊ってもらった - ReDo

2014年8月25日

Oculus Rift DK2で艦娘に踊ってもらった

ovra04.png

Oculus Rift DK2でOVRAgentとMMD4Mecanimを使って、艦娘に踊ってもらった話です。

○はじめに

UnityとMMDについて最低限の知識があり、現在Oculus Rift DK2環境があって、Direct ModeとExtend Desktopの差分についてなんとなくわかっている方であれば、下記の2サイトを参照すると、配布されている好きなMMDモデルとモーションデータで、3次元で踊ってもらうことができると思います。

# 前述の用語がすべてなんのこっちゃだとという方は、好きな嫁を3次元に召喚する話だと理解してもらえれば大差ございません。

Unity+Oculus Rift開発メモ(DK2対応)
http://framesynthesis.jp/tech/2013/oculus-rift/
OVRAgent, MMD4Mecanim配布元:Stereoarts Homepage
http://stereoarts.jp/

MMDことMikuMikuDanceについて、niconico動画で閲覧したことがある以上の知識がない方は、手前味噌ですが下記エントリを参考にモデルデータ(.pmx, .pmd)やモーションデータ(.vmd)の取り扱いについてさらっておくことと、

MMD 1日目
http://greety.sakura.ne.jp/redo/2014/05/mmd.html

マルチプラットフォームなゲームエンジンUnityについてUnityちゃんかわいい以上の知識がない方は、ドットインストールにて一通りの操作方法とファイル群について下知識をつけておくことを強く推奨します。

ドットインストール:Unity入門
http://dotinstall.com/lessons/basic_unity

MMDもUnityも3Dやコンテンツ/ソフトウェア開発に普段から慣れていれば、今回の目標を達成するぐらいまではどちらも1日ずつ程度でなんとかなると思います。本件の全行程で明らかに難易度が高いのはDK2を調教する側だと思います(笑)

○作業メモ

01. Unityを起動し、File->New Project...から新しいProjectを作成します。

02. Nora氏のStereoartsのサイトからOVRAgentをダウンロードして展開しておきます。

03. OVRAgent(0.4.1)を展開したOculusUnityIntegrationOVRAgent.unitypackageをダブルクリック、Import自動的に今Unityで開いているプロジェクトにimportされます。

04. HierarchyからMain Cameraを削除し、OVR/Prefabs/OVRCameraControllerをHierarchyにドラッグ&ドロップします。

05. Cubeで10x1x10ぐらいの床とDirectional lightを配置し、適当な色のMaterialをCreateして適用します。床のpositionはy -0.5して高さ0に埋めておきます。

ovra01.png

06. 続けて、MMDモデルとモーションと音楽を配置します。モデルや楽曲の利用規約をよく確認し、展示や再配布等は配布規約の範囲で実施しましょう。同StereoartsのサイトからMMD4Mecanimをダウンロードし、展開します。この後はチュートリアルpdf他、ドキュメントに記載されている通りです。

07. MMD4Mecanim.unitypackageをダブルクリックし、MMD4Mecaniumを現在のProjectにimportします。

08. Modelとモーションをフォルダ毎UnityのProject Assets配下にドラッグ&ドロップし(今回はつみ式駆逐艦島風2.1と【MMD】 ねこみみスイッチ 【モーション配布】をお借りしました。)

09. つみ式駆逐艦島風2.1/島風.MMD4Mecanimを選択、利用規約を読んで同意し、PMX2FBXタブからAdvanced Modeにチェックを入れ、Vertex Scaleを必要に応じて修正します。VMDの項にモーションファイル、nekomimi_latをドラッグ&ドロップして設定後、Processを押してしばらく変換を待ちます。

MM4Mecanimのドキュメントにも書いてありますが、変換前のVertex Scaleによるサイズ調整が一番妥当な模様です。身長10cmのミクさんも40mのミクさんも召喚可能ですが、DK2のポジトラの物理的な移動量がリアルと噛み合ってるため、リアルに1.5m程度になるように調整するのが妥当っぽいです。

12. 島風.fbxをHierarchyに追加します。どうもデフォルトでは後ろを向いて配置されるみたいなのでRotationのYに180を入れて回してこっちを向いてもらいます。

13. ねこみみスイッチのwavをProject Assetsに配置後、3D Soundのチェックは外し、Hierarchyから島風を選択、「MMD4Mecanim Model(Script)」内のAnimタブのAnimations項内、Audio Clipにwavを設定、PhysicsタブのPhyiscs EngineにBullet Physicsを設定しておきます。

14. 最後にModelにAnimationを設定します。Assetsの島風フォルダでCreate->Animation ControllerでAnimationを作り、ダブルクリックで開いたAnimatorWindowに対して、島風.fbx内に生成されたnekomimi_lat.vmdをドラッグ&ドロップで設定し、最後にAnimatoinをHierarchy中の島風モデルにドラッグ&ドロップし、Animatorが増えることを確認します。

ovra02.png

15. ここまで来たらUnityプレビューとして再生してみて、ぜかましがねこみみスイッチを踊ってくれていればUnityプロジェクトとしては問題ありません。Build Settings...で適当なプラットフォームを選んでexeを生成します。DK2をExtend Destopモードで起動した状態から、"_DirectToRift.exe"の方を起動します。QualityはFantasticが良いです。

ovra03.png

筆者はDK1未所持、MMD大好きなただのソフトウェア開発者ですが、DK2の言うことをきかせるのに2,3日、MMDとUnityで1日ずつ、OVRAgent+MMD4Mecanim作業で1日と考えると、だいたい1week、あるいは休日のみで1月もあれば好きな子に踊ってもらえる様にはなると思います。勢いでDK2買ってみたは良いけれど、デモをひたすらダウンロードして試す以上の何かやることが思いつかない等の方は、気軽に手を出してみるのも良いと思います。楽しそうな世界ですようふふ。

○感想
・プログラミングは一切不要、1行たりともコードを書く必要は無いのでPCと愛があれば大丈夫。
・3次元こわい。
・UnityProの力もGOROman氏の力もいろいろありそうですが、Mikulus級を目指すには色々超えるべき壁がありそう。
・力が...Unity力が欲しい!

コメント(2)

DK2を、勢いだけで手に入れた者です。
MMDは、ちょっとだけ触っています。
分かり易く記載してあるので、とても参考になりました。

>mikoto3kuroko3さん
コメントありがとうございます。私も勢いだけで手に入れましたが道は遠く険しそうです。これからがんばっていきたいと思います。

コメントする