見出し画像

ゼロから始まるVR開発part2~OculusGoでミクさんに踊ってもらった!~

前置き

5月初旬に発売が始まったOculusGo。現在でも多くのコンテンツが楽しめますが、どこかもの足りなさを感じている人もいるのではないでしょうか?かくいう自分もその一人です、僕の不満はそう、美少女キャラと触れ合えるアプリが圧倒的に少ない!!
というわけで無いなら自分で作ればよかろう。今回はMMD*1 データをUnityに持ってきてOculusGoで踊ってもらうのを目的にやってみました。なんか、難しそう?いえいえ、思ったより簡単だったので、PCスキル皆無の人でもぜひトライしてみてください!(というか自分もPCスキル皆無)

また、本記事は偉大なる先駆者の方々の努力により成り立っています。本当にありがとうございました!

*1 MMD・・・MikuMIkuDance(ミクミクダンス) の略称。フリーの3DCGムービー制作ソフト。ニコニコ動画でMMDと検索してみれば、どういうものか大体わかる。

環境

参考までに自分が成功したときの環境を載せておきます。ver違いなどは基本的に問題ないですが、OSなどが違うと多少手順に差が出るので他の方のブログも参考にしてみてください。

・Unity2018.1.1f1(Unity5以降なら問題ないと思われます)
・Windows10(Macの場合にはWineの導入など一手間あるようです。)
【Macの場合の参考ブログ】
テラシュールブログ様(http://tsubakit1.hateblo.jp/entry/20131020/1382197325
・MMD4Mecanim_Beta_20180523(後述)

0.使用するMMDデータを探そう

MMDデータがなくては何も始まりません。モデルは何でもいいと思いますが、オーソドックスなモデルのほうが詰まったときに検索しやすいので初心者の方は有名どころのモデルにしましょう。僕はTda式初音ミク *2 さんにしました。

【注意】MMDモデルだけの話ではありませんが、製作者様の利用規約は必ず確認してから使用しましょう。

また、モーションデータと音源は

・WAVEFILE fullver. モーション 作製hino氏
http://www.nicovideo.jp/watch/sm18065127
配布ページ http://bowlroll.net/up/dl5983

・曲 WAVEFILE 作製ゴジマジP
http://www.nicovideo.jp/watch/sm14257396

こちらをお借りしました。こちらもどのデータでも構いませんが、モデルとの相性によっては正常に動作しないこと(頑張れば治せるらしいが、その手間を考えると他のものにした方がよいと思われる)もあるので、いろいろ試してみてください。

*2 Tda式初音ミク・・・Tda氏の作成したMMDモデルのこと。そのほかにもMMDモデルは沢山の人が作成していて、どれもみんな可愛いので色々調べてみよう!ちなみに僕の最近のお気に入りはどっと式初音ミク

1.MMD4Mecanimをインポートしよう

MMD4MecanimとはMMDデータをUnityに持ってくる(インポート)する為のツールです。要するにMMDのデータをUnityで動かせるようにデータの変換を行っていると考えてもらっていいです。こちらからダウンロードできます。(http://stereoarts.jp/

実はこちらのサイトのチュートリアルを読めばこれからやる大体のことは分かります。そこで以降は大まかな概要と分かりにくい部分、躓きやすいポイントを説明していきます。



さて、ダウンロードできましたでしょうか?出来ましたら解凍 *3 を行ってください。解凍が終わると以下のようなパッケージが見つかるかと思います。

開いてprojectビューに追加されているのを確認したら、第一章は終了です。

*3 解凍・・・ 圧縮されたデータをもとの状態に戻すこと。展開や伸張、抽出とも言う。解凍方法はググればすぐに出てくる。

2.Unity用にデータを変換する

それでは実際に先ほど使えるようにしたMMD4Mecanimを使って、Unity用にMMDデータを変換していきましょう。

まず次の①、②の操作を行ってください。この際MMDデータはエクスプローラやFinderを開いてMMDデータのある場所(ディレクトリ)に行き、unityへドラッグアンドドロップします。



続いて、モデルとモーションデータの変換を行います。
①追加されたMMDモデルのフォルダ(今回はTda式初音ミク・アペンドVer1.10)をクリック
②そのフォルダ内の モデル名 + .MMD4Mecanimをクリック(Unityのアイコンが目印です)
③④チェックして同意する。



すると、Inspectorビューが変わり、下の画像の右側のようになると思います。
①先ほど追加したモーションファイルをVMDに追加
②変換後の名前をMikuに変えるため、赤の下線部分をMikuとしてください。(名前が日本語のままだと不具合が生じる場合があるので、それを避けるためです。英語なら何でもOK)

③のprocessを実行すると何やら黒い画面が!お茶でも飲んで気長に待ちましょう。

*青い丸で囲まれたものをクリックするとInspectorビューが固定され、操作が楽になります。解除はもう一回クリック


3.ミクさんに踊ってもらう

ここまできたら、もう一息!ミクさんにモーションデータをアタッチします。

まずは、sceneビューにミクさんをお呼びします。
①Tda式初音ミク・アペンドVer1.10の中のMikuをクリック
②InspectorビューのAnimationTypeをGenericからHumanoidに変更
③MikuをHierarchyビューにドラッグアンドドロップし、カメラやミクさんの位置を調整



続いて、ミクさんアニメーション(モーションデータ)を付けます。

①Projectビューの上の方にあるcreateからAnimator Controllerをクリックし②出来たものを適当な名前に変更します。(デフォルトはNew Animator Controller、今回はAnimとしました)
③Tda式初音ミク・アペンドVer1.10/Mikuの下にある変換後モーションデータをドラッグアンドドロップ


最後に先ほど作ったAnimator Controller(Anim) をHierarchyビュー内のMikuにドラッグアンドドロップし、playボタンを押すと・・・

踊ったあああああああああああああ!!!!!

*これだけでは表情が動いていない時があるのですが、その場合は下記ブログが参考になると思います。

simplestarの技術ブログ様
http://simplestar-tech.hatenablog.com/entry/2016/11/27/154125


4.OculusGoで動かそう

まず最初にお詫びですが、unityからOculusGoへのビルドの方法は本記事では紹介いたしません。ですが、この情報はいくらでもネットに転がってるので問題ないかと思いますし、万が一わからなかったらTwitter等で聞けば、大抵の場合は解決します。

一応、躓くことが予想される部分を簡単に書いておきます。
・スマホからOculusGoを開発者モードにする
・build system を gradle から internalへ(一時的な対応の模様。gradleでうまくいかなかったら変えるとビルドが通るようですが、あくまで基本はgradle)
・android sdk tools のダウングレードを行ったか
。jdkは最新のものではなくjdk1.8とかにしたほうがいい模様(未検証)


それではOculusGoでミクさんを見るための準備をしていきましょう。といっても、やることは簡単。Asset Storeでoculus integration (無料)をダウンロードすればある程度のものがそろっています。

こちらのアセットをインポートし、Hierarchyビューに以下のオブジェクトをドラッグアンドドロップ(Oculus/VR/Prefabas下にあります)

使わなくなったcameraを削除してOculusCameraRigの位置を調整し、ビルド&ランすると見事ミクさんをOculusGoで躍らせることに成功しました。お疲れさまでした。


終わりに~さらなる高みへ~

とりあえず、ミクさんにOculusGoで会うことはできましたが、表情や髪の動き、曲を追加したり、ミクさんを自由な角度から眺めたり、まだまだやることは沢山あります。次回以降にミクさんをもっと可愛くリアルな存在にするために奔走していく記事を掲載予定ですので、noteのフォローもしくはtwitter(@pwhrhs)のフォローよろしくお願いします!


p.s.noteって動画公開する方法がYoutubeで動画上げるしかないんですね…僕もとうとうYoutuberデビューか(笑)
今回の記事はかなり時間がかかりました。改めてブログ等で情報共有を行っている方の偉大さを思い知りました。


#Unity #MMD #OculusGo




魔剤代。