Unity+Oculus+MMD とりあえず書き留めておく場所

Unity+Oculus+MMDで、ラクして嫁と遊びたいブログ

Oculus Rift CV1とUnityを使用して、MMDモデルをVRで見る ー環境の構築と、MMDユーザーからのよくある質問

  普段、こんな感じでMMDモデルをVRで眺める」体験会をやっております。

bvillage.hatenablog.com

bvillage.hatenablog.com 

いつか詳細な記事を書くとして、「できるかな?やりたいかも?」と思っている、主にMMDユーザーへの「私がやってる作業の流れはこんな感じ」記事です。

 

なお、当コンテンツはMMDに対する知識がある程度あり、それなりに扱える」つまりMMDユーザーが読むことを前提に書かれています。

MMDの操作に関する知識が無い方はこちら、初心者向けMMD操作解説ブログをご参照ください。こちらのブログも筆者が運営しております。

mikumikud.hatenablog.com

MMDにあまり詳しくない方へ

MMDモデルの多くは商用利用が不可となっております。商用利用を念頭に置いている方は必ずモデルに同梱の利用規約の確認をお願いします。

また、MMD以外での利用が不可のモデル・保存形式変換不可のモデル・VR不可のモデル・性的な表現や暴力的な表現不可のモデルなどもありますので、繰り返しますが必ず利用規約を確認してから使用してください。

規約を無視してモデルを使用しても、要らぬトラブルを招くだけで、あなたにとっていい結果には決してなりませんので、おすすめしません。

自分の好きなことを文句言われずにやりたい場合は、無料配布のMMDモデルを使わずに、お金を出してモデルを発注するか、自分でモデリングするのが良いでしょう。

==================

 

また、基本的にここではスクリプトをあまり使用しません。

モーションも、MMDで作成できるモーション(vmd形式)のものを使用する前提で説明します。

vmdの再現性を重視するため、Animationの形式はHumanoid(vmd以外にもHumanoidモーションに対応)ではなく、Generic(vmdの再現性重視、ただし Humanoidモーションは再生できない)前提で解説します。

なので、 Humanoidモーションに関する説明は一切しません。Final IKとかも使いません。完全にガラパゴスですのでよろしくお願いします。 

概要としては

①Unityの画面構成のおおまかな説明・使い方

MMDのモデルを読み込み、vmd形式のモーションを再生する

③HeadLookを使用した「モデルがカメラの方を向く」状態の実装

④照明についての解説・ Post Processing Stackを使用したエフェクト効果の解説・余裕があればパーティクルシステムとか・その他ビジュアル回りの解説を簡易に(自分のためにも英語の項目を全部日本語化して説明した資料を作りたい)

といった内容になると思われます。

MMDモデルをSceneに配置し、モーションを再生できる状態にし、場面の照明効果や色調補正のやり方がわかる…といったあたりがゴールでしょうか。

それ以上やりたい方は、ご自身でいろいろ調べて先に進むと良いと思います。

(余裕があればもうちょっと色々解説したいです…書いてみて、ここでこういうのやりたい!と思ったらやるかもしれない…)

まずは、環境構築から。

①ハイエンドHMDを手に入れる

 現在、VRを楽しむためのガジェットとして、主に

1.モバイルVR・スマートフォンを装着して映像を見る

※¥1000~¥10000以上・スマートフォンが必要・安価で手軽、位置トラッキングなし

2.デスクトップVR・PCに接続して映像を見る

※¥50000~¥80000以上・対応PCが必要・高価だが没入感が高い・位置トラッキングがあり空間の中で移動ができる

以上の二種類があります。

今回は、二番目の「PCに接続して映像を見るヘッドマウントディスプレイ(HMD)」を使用する場合のお話になります。

筆者が使用しているのはOculus Rift CV1(2017年11月現在、5万円にて購入可能)

Oculus touchと呼ばれるコントローラも同梱でこの値段なので、だいぶ安くなりました…

www.oculus.com

※購入は必ず上の本家サイトから!現時点では残念ながら家電量販店などでは購入できません。

Amazonなどで高額転売されているケースあり・保証も受けられず割高でメリットなし

Rift以外に入手しやすいのは「HTC Vive」(2017年11月現在8万弱。やや高価だが入手しやすい。VRアトラクション施設などで良く利用されている。一番売れていたがCV1の値下げにより拮抗状態らしい)Windows MR」(2017年11月現在5~6万。発売したてで情報が少ないが、比較的安価で入手が容易。日本語対応。まだあんまりおすすめしない…)など。

Riftのセットアップは英語ですが、たくさんのウェブサイトでセットアップ方法を記事にしているので、そちらを参照しながら臨めば引っかかる部分はあまりなく、スムーズ。

しかしながら発売当時と現在では同梱物が異なったりしているため、比較的新しめの記事を探すのがいいと思います。

こちらは発売当時の記事です。

www.moguravr.com

現在は「Remote」と「XBOXコントローラ」は付属しておらず、「Oculus touch」が付属しています。

こちらは「touch」のセットアップについて。

www.moguravr.com

②CV1を使用できるPC環境を手に入れる

基本的には「高い性能のグラフィックボードを積んだWindowsPC」が必要。

BTOパソコンを買えるショップなどでは「VR対応」と銘打って発売されている機種も多数あり。「VR Ready」などの表示がある。

Oculus Rift CV1推奨環境は以下の通り。

グラフィックボード:NVIDIA GTX 970及びAMD 290 以上
CPU:Intel Core i5-4590 以上
メモリ:8GB 以上
映像出力:HDMI 1.3
USB端子:USB3.0が3つ(+USB2.0が1つ)
OS:Windows 7 SP1以降(できればWindows10で64bit推奨)

満たさない場合は視聴クオリティに問題が生じたり、そもそも見られなかったりするので注意。

基本的にはデスクトップでの使用になると思われるが、外でデモをしたいなどの理由からノートPCを購入したい場合は特に注意。ショップに確認するが吉。

推奨スペック確認ページ

(↑自分のPCが推奨スペックに達しているか確認できるツールがDLできる)

2017年11月現在で、最も安価なデスクトップモデルで10万円くらいから購入可能。

ノートPCの場合はそれより割高になる。

OcuFes監修PC ゲーミングPC 

↑ここで紹介されてるLITTLEGEARは、持ち運びに便利な取っ手がついててコンパクトなので、デスクトップだけどデモ用に使用してる人も居る。

③Unityを入手する

Unityは現在広く使われているゲーム開発エンジン。ゲームを作れるアプリケーションだと思ってもらえば差し支えない。

(ちなみにポケモンGOスーパーマリオランなどもUnityで作られている)

Proでなければ無料で使用可能。趣味で使うなら問題ありません。

(※Personal(無料版)の使用条件は、個人:制作物の年間総収入$200,000以下/法人:$100,000以下であること。Unityでの制作物の売り上げが生じないホビー用途ならPersonalでOK、売り上げがあったとしても個人利用は2000万超えなければPersonalを使用してOKということになります)

Unity - Store

↑上のページの「Personal(無料)」からダウンロード…ですが、同ページを下にスクロールして「詳細→過去のバージョンのUnity」からダウンロードするのがいいかも。

筆者は現在、比較的安定している「ver.5.6.4」をメインに使用。

Unity.5.xのタブの一番上から入手できる。

入手したら起動→アカウント作成→とりあえず「新規プロジェクト」を作成する流れになる(※プロジェクトとは、MMDにおける「ステージデータもモデルデータもモーションデータもエフェクトデータもとにかく動画作るための材料を全部格納しておけるpmmファイル」みたいなものだと思ってください) 

Unityを開くと「ぜんぶえいごだよおお…しかもなんかすっごいすっごいいっぱい色々あるよお…」となるかもしれませんが、「いっぱい色々あるやつ」を全部わかって仕事してるプロもそうそう居ないレベルなので、気にしないでください。わかるとこだけわかればいい。

MMD4Mecanimを入手する

UnityにMMDモデルを読み込むためのプラグインMMD4Mecanimを以下のサイトからダウンロードする。

スクロールしていって下の方にある「MMD4Mecanim Beta~」と書いてあるzipファイルのリンクから。

Stereoarts Homepage

Unityを起動した状態でインポート(色んなやり方があるけど、とても簡単。同梱のチュートリアル基本編のpdfにやり方が書いてある)。

インポートが終了すると、Riftが既に接続されセットアップ済なら、とりあえずこれで「RiftでMMDモデルを見られる」状態になる。

 

この後の流れをざっくり書くと(本当にざっくりなので、後で別記事でうるさいくらい解説します) 

MMDモデルとモーションを準備する(モーションはなくても読み込むだけでも出来る)

→モデルのフォルダにモーションデータ(vmdファイル)を入れておき、フォルダごとUnityの画面上にドラッグアンドドロップする

→Unity上でMMDモデル(+モーションデータ)を表示できる状態に変換する(この時モデルの利用規約が表示され、「規約に同意した上で使用してください」などのチェック項目にチェックを入れます)

→作業画面に変換したモデルを乗せる

→モデルと一緒に変換されたモーションデータを作業画面のモデルに乗せる(D&D)

→再生する

ウゴイタアアア!!しかもRiftで見られる!!

(※UnityをVRモードにしていれば、出力しなくても作業画面上で再生すればVRで見られる)

 

という感じになっております。

よくある質問 

MMD動画をそのままVRで見られるの?

2Dムービーとしてアップロードされている映像を3Dで見ることは出来ません。出来たらすごい…

VR用のデータはVR用に作成する必要があります。

通常の2Dムービーと違い、体験者がどこを見るかわからない(360度どこでも見られる)のに見た場所すべてをレンダリングしないといけないので、非常に重いデータになります。なので、ハイスペックなPCが必要なのです。

・MMEは使えないの? 

Unity上でデータを作っているので、当然ながらMMDのエフェクトは使えません。

Unityの中で使えるエフェクトは使えます。

パーティクル系などは、「パーティクルシステム」と呼ばれる機能を使い、自分で作ることが出来ます。

ただし、使用している変換プラグインは「MMD上で表示されるのと同じように表示する」ことになっているため、SSAOのようなエフェクトをUnity上で使用しても、モデルに反映されないことがあります(Unity上でシェーダ変更をすることで適用可能)。

オーバーレイや色調補正などに関しては、ある意味MMDよりかなり自由に設定することが出来ます。

参考:Unity - マニュアル: Post-processing スタック

また、照明の自由度はMMDより遥かに高いですが、もちろん度を越せば重くなります。

カスタマイズすれば、ビジュアル表現の自由度はかなり高いです。

(私はトゥーン系にもフォトリアルにもあまり魅力を感じないのでビジュアルはそっち系に寄せませんが、もちろんやろうと思えばそういう描写も出来ます)

MMDのステージは使えるの?

MMD4Mechanimが「pmd/pmxモデルを変換するプラグイン」なので、pmd/pmxモデルならそのまま変換して使えます。xファイルは使用できませんが、pmd/pmxファイルやfbxファイルやobjファイルに出力し直せば使えることになります。

参考:Unity - マニュアル: 3D アプリケーションからモデルをインポートする方法

大きいファイルは当然重くなります。

(ちなみに、pmxファイルのステージのモーフなどは再現されないことが多いです…)

また、Unityには「アセットストア」と呼ばれるストアがあり、ユーザーが作った3Dモデルが無料/有料で販売されています。

私が現在作成しているデータの背景のほとんどは、こちらで購入した部屋や建造物のアセットを使用しています。

https://www.assetstore.unity3d.com/jp/

もちろん、自作できる方はガンガン自作するといいと思います。

空に関しては、MMDで言うところの「スカイドーム」と似たような「スカイボックス」というものがあります。

スカイドームを転用することはできませんが、こちらもアセットストアで様々な種類のものを入手することが出来ます。

ちなみに、パーティクルやエフェクト、テクスチャなどもこちらで入手することが出来ます。

あえて気をつけるとすれば、Unityのバージョンによって使えたり使えなかったりするものがあるので、そのあたりでしょうか(古すぎて使えない・新しすぎて使えない両方ある)。

MMDモデルはちゃんと表示されるの?

だいたい良い具合に表示されますが、ものによってはテクスチャやtoonが反映されないなどの不具合が生じることがあります(※対応策あり)。

また、モーフなどもものによっては再現できない場合があります(通常の表情モーフなどはほぼ再現可能)。

どうしても解せない不具合が出る場合は、相談に乗れます。

MMD世界よりも少し小さく表示されるため、Unity内ではモデルの大きさを1.2~1.3倍くらいにするとちょうど良いです(モデルの大きさは簡単に変えられます)。

・視野角は調整できるの?

Riftの視野角は110度固定ですが、これは「映像の見える範囲」という意味で、MMDで言うところの視野角とは意味が違います。

なのでもちろんMMDでの視野角110度の状態で見えるわけではありませんが、やはりMMDユーザーからするとやや広角気味には見えます。体感で言えば40度くらいでしょうか。

では顔が歪んで見えるか…と言えば、VRでの見え方と2Dムービーでの見え方を同一に語ることはなかなか難しいです。

モデルの着ているアウターとインナーの隙間が広めに感じられたり、全体的に奥行きを強調された感じに映ります。

 ・モーションはちゃんと再現できるの?

現在かなり再現性は高いですが、完全に完全です!ということではないです。

IKがらみで引っかかることがたまにあります。腕IKとかは避けた方がいいかも…

・外部親機能は使えるの?

MMDじゃないので使えません。

剣を持ったアクションなどをやりたい場合、pmxエディタなどでモデルの手に剣をくっつけてしまう方をおすすめします。

・物理演算は?

MMDの物理の完全再現は無理です><

袖や裾がバサバサ系は辛いかもしれません…

MMMなどを使用して、モーションで物理焼き込みをしてしまえばOKです。

・モデルに触ることはできるの?

「触って質感を感じる」ことが出来るようになれば、すごいことになるでしょうね…

現在可能なのは「Riftに付属している左右コントローラー(Oculus touch)に左手右手を割り当て→コントローラを手にしてモデルに触れ、髪や服の裾を揺らす」といった感じになりますが、個人的にあまり魅力を感じないのと作業量が増えるので体験会用のデータにはやっていません。

やろうと思えば「任意の箇所に触れると表情を変える・モーションを変える」なども出来ます。

YouTubeにアップされている360度動画とどう違うの?

違うところは色々ありますが、最も大きいのは「位置トラッキングがある/ない」でしょう。

RiftなどのハイエンドHMDは、センサーによって体験者の位置を把握します。

なので、目の前に居るモデルに近づこうとすれば近づけますし、自分が後退すればモデルは遠ざかります。

ですが、センサーなしのVRスコープで見た場合、体験者が動けば映像もそのままついてきてしまいます。

個人的には位置トラッキングがある方が好きなので、こちらの道には進みませんでした…

ただ、重いPCを持ち歩かなくてもよく、気軽にどこでも楽しめるという点では優れています。

・メガネをかけていても使える?

一応メガネは中に入ります。あまり横幅の広いものだと入らない可能性もありますが、ほぼ大丈夫かと…

最近の作業はずっとメガネでやってます。とは言え、コンタクトにした方が楽ではありますが…

ちなみに、ViveはRiftよりもゴーグル内のスペースが広く、メガネが中に入りやすいです。

のちのちはメガネなしでも使えるようにしてほしいところ。

 

 

(とりあえずこんなところですが、「こういうことが知りたい!」「これ書き方が間違ってない?」「これも書き足した方が…」などあれば是非お寄せください)