Oculus GoでMMDを踊らせつつ自由に眺めるまでの手順
2018/5/24
この記事の趣旨
この記事は
Oculus GoでMMDが立体的に踊っている姿を360度あらゆる方向から眼に焼き付けたい……!
という要望を叶えるための手順書になります。
対象とする読者
プロジェクト、ビルド, SDKの意味がわかるレベルでプログラム経験がある方。
MMD関連(PMX/VMDファイル)の意味がわかる方。
Unityがどんなものか漠然とは理解している方。
C#の知識は必須では無いですがあると便利です。
プログラム完全に未経験という方には不親切な説明になっていると思います。
最低限必要なもの
Oculus Go本体
開発用PC or Mac (Unity最新版が動作出来るもの)
自分はMac(High Sierra)にて作成しているため、Windows利用の方は適宜読み替えてください。
アプリ作成環境を準備する
Oculus GoでUnityプロジェクトを動かすまでの説明になります。そこまで済んでいる方は読み飛ばしてください。
上記リンクの指示に従いUnityをセットアップし、プロジェクト実行をOculus Goで確認するところまで行います。
UnityのDLが長いので数時間かかるかもしれません。
Android SDKについては自分はAndroid Studioをインストールして起動->SDK DLで済ませました。
JDKは一番上のリストから、自分のOS環境に合ったものを落としてください。
以降、この記事は以下のバージョンで検証しております。
Unity: 2018.1.1f1
Android SDK: 3.1.2
JDK: 1.8.0_171
この後は、上記で作成したプロジェクトをベースとして説明いたします。
補足
このあたりでUnityのアセット、ヒエラルキーの概念を掴んでいると楽になります。
もうちょっとUnityの操作に慣れておきたい、という方は以下をOculus Go用に試してみる事をお勧めします。
サンプル動画で利用している床はこちらのマテリアルを利用しております。ありがとうございます
MMD4Mechanimを導入する
MMD4Mechanimの使い方の説明になります。知っている方は読み飛ばしてください。
Unityから直接MMDを利用することは出来ないので、MMDをfbxに変換するライブラリ、MMD4Mechanimを導入します。
上記サイトから
MMD4Mecanimをダウンロードします。
(2018.5.24現在は MMD4Mecanim_Beta_20180523.zipが最新版となっております)
160MBほどあるのでやや時間がかかるかもしれません。
以降の作業の前にUnityでOculus Go用にカスタマイズしたプロジェクトを開いた状態にしておきます。
ダウンロードしたzipを展開し、中のMMD4Mecanim.unitypackageを実行(ダブルクリック)すると、Unityプロジェクト側でWindowが開くので、Importを実行します。
MMD、モーション素材を用意する(出来れば音声も)
この辺で自分が操作したいMMD、モーション、音声素材を用意します。
MMDはFBXへの変換に失敗するデータもあるので、その場合はMMD4Mechanimのチュートリアルに乗っている
を試して見てください。
モーションはフルサイズのダンスモーションだと変換に時間がかかる(5〜10分)ため、
最初は軽いものでテストした方がいいかもしれません。
音源は実質mp3形式一択なので、非mp3形式で持っている場合は何らかの方法でmp3に変換してください。
MMDをUnity用に変換してモーションを登録する
MMD4MechanimでのMMD->FBX変換の仕方の説明になります。知っている方は読み飛ばしてください。
上記MMD4Mechanimのチュートリアルに書いてある通りにすれば、対応するFBXファイルが生成されます。
また同様の説明記事が以下にもあるのでPDFが見れない方はこちらを参照すると良いと思います。
Macでは最初はMMD->FBXの変換に失敗すると思うので以下を参照して対応してください。
どうしても変換に失敗するようであれば、別のMMDデータを試してみてください。
(自分の時はあかね様配布の2018雪ミクが変換に失敗しました)
この段階でチュートリアルに従ってScene上にキャラクターの配置、アニメーションの設置、カメラ位置調整が済んでいるはずです。
その状態でUnity上のPlayボタンを押せば、カメラの前でモーション通りに踊るMMDが見れるはずです。
音楽をMMDから聞こえるようにする
Unityへの音源の登録方法の説明になります。知っている方/不要な方は読み飛ばしてください。
モーションに合わせた音源はある方が望ましいです。
音源がある場合、以下の手順でプロジェクトに追加していきます。
音源ファイルをAssetsに追加
MMDオブジェクトのインスペクタにてAdd Component > Audio > Audio Sourceを追加し、AudioClipに音源ファイルを追加
Spatial Blendを1にし、3D音源にする(普通に聞こえた方が良いという人は0のままで良いです)
インスペクタ サンプル
https://gyazo.com/f6e2a425014a68f3dfbd27e0457e41fc
カメラの向きに合わせてタッチパッドで移動する
ちょっと説明が長くなったので別記事にしました。こちらを参照ください。
サンプル動画
以上で、Oculus GoのタッチパッドによりMMDモーションを自在な角度から眺めることができるようになります。
https://youtu.be/p1GtbXrF8qc
Oculs はなぜ録画で音声に対応してくれないのか……
もう少し綺麗にしたい
動画ではわかりづらいですが実際に観ると、割とエッジがジャギジャギです。
という事で、以下を参考に適当なオブジェクトにAdd Componentして解像度を変えてみてください。
試した限りでは4体程度ならrenderScale=2でも大丈夫でした。1体なら4でも平気そう。
更なる拡張
説明はここで終わりますが、以降のような拡張を試してみるのも良いと思います。
パーティクルで雪や雨を降らせる
再生の開始/停止、モーション変更のためのUIを追加する
MMDを中心とした移動モードへの切り替え
UIを追加してモーションの再生をコントロールする。