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

Unity+Oculus+MMD VRでキャラクターと遊ぶ

5. HeadLook機能の実装(準備編)

前回までで、なんとなくですがUnity内の操作方法がわかったのではないかと思います。

次は、HeadLookControllerというスクリプトを使って、モデルに「いつも体験者の方を向く」機能を実装しましょう。

準備として、これから必要になるであろうものをいくつか先にダウンロードし、Unity内にインポートしておきます。

UnityPackageやスクリプトの入手

①UnityのStandardAsset

https://www.assetstore.unity3d.com/jp/#!/content/32351

Unityを使用する上で色々と役立つものが入っている標準的なPackageです。

アセットストアから入手できます(旧バージョンのものも現在まだストアにありますので、間違えないよう気をつけてください。リンク先はUnity5以上を使用している場合向けのPackageです)

アセットストアへは、普通にブラウザからアクセスしても構いませんし、Unityのメニューバーから「Window」→「Asset Store」でタブ表示することも出来ます。

f:id:emifuwa:20171123220043j:plain

タブ小さすぎて見にくい!と思ったら、タブ名のあたりを左ドラッグで掴んで、画面上の方にぐーっと押し上げると、独立タブにすることも出来ます。

f:id:emifuwa:20171123220111j:plain

もちろん他のビューもこんな感じで独立タブにすることが出来ますし、コンパクトにしまっておきたければどこかのタブの脇にでもドラッグすれば、その場所に置いておくこともできます。

アカウント・ログイン・インポート手順などに関しては、こちらの記事を参照のこと。

www.atmarkit.co.jp

 Standard Assetを正しくインポートできれば、Assetフォルダの中身はこんな感じになっていると思います。

f:id:emifuwa:20171123191852j:plain

こうやって様々なアセット(Unityでは3Dモデルや画像、音楽ファイルなど、使用する全ての素材のことをアセットと言います)をAssetフォルダにインポートし、そこからHierarchyに乗せてSceneに表示していくことになります。

②Oculus Utilities for Unity

Oculus固有の機能を使うためのものです。

以前はこの中の専用カメラがないとVR対応出来なかったのですが、現在はUnity側がチェック一つでVR対応できるようになったため、一応はなくても作業は可能です(今回の作業では使用していません)。

ただ、中に入っている「OVRPlayerController」などをカメラの代わりに使用すると、キーボードの矢印キーで空間を移動したりすることが簡単にできます。

また、touch対応のコンテンツを作りたい場合などは、OVRのカメラを使った方が楽です。

Unity | Developer Center | Oculus

このページの一番上の「Core Packege」から「Oculus Utilities for Unity」の方をクリックすると、ダウンロードページに飛びます。チェックを入れてダウンロードしてください。

f:id:emifuwa:20171124111020j:plain

ファイルをどこか任意の場所に展開しておき、Unityを起動した状態で、メニューバー→「Asset」→「Import Package」→「Custom Package...」から開きましょう。

※もしかすると「バージョン違うけど大丈夫?」とかそんな感じのダイアログが途中で出るかもしれませんが、とりあえずそのまま進んでしまってください。

③Head Look Controller

https://www.assetstore.unity3d.com/jp/#!/content/4

モデルの目・顔・上半身などが、特定のオブジェクトを追いかけるようにできるスクリプトが含まれています。

こちらもStandard Assetと同様にインポートしましょう。

  

それと、忘れないうちに、画質維持のためのUnity全体のセッティングを行っておこうと思います。

Quality設定

 メニューバー「Edit」→「Project Setting」→「Quality」を選択してください。

Inspectorにクオリティのパラメータが表示されます。

一番上のQualityLevelはそのまま「Fantastic」に。

f:id:emifuwa:20171127142323j:plain

「Rendering」の「Anti Aliasing」「8×Multi Sampling」に。

 アンチエイリアスの精度を上げます。

「Shadows」の「Shadow Resolution」「Very High Solution」に。

「Other」の「Blends Weights」「4 Bonesに。

 特にpmx形式のモデル使用時には必ずこの項目にしてください。

f:id:emifuwa:20171127142417j:plain

以上の設定が終了したら、次回、ようやく実作業です。

 アセットストア使用上の注意 

※アセットストアでアセットを入手する場合、アセットの推奨バージョンに十分注意してください。

単純な3Dモデルだけのものの場合は問題ないことも多いのですが、インポートしたものの中に「Unity4では動くがUnity5では動かないスクリプトなどを含んでいた場合、インポートしただけでSceneの再生が出来なくなったりすることがままあります。

そんな時は必ずインポートの際に赤文字でエラーが出ます。原因となったファイルの場所や名前が表示されますので、それをUnity上で削除してしまえば元に戻ったりします。

推奨バージョンは「新しすぎても古すぎてもダメ」だったりするので、エラーが出て、当該スクリプトを削除しても再生が出来なくなってしまった場合は、原因となったアセットはとりあえずAssetフォルダから削除しましょう。

Projectのおおもとのフォルダについて

重要なことなのですが、UnityのProjectから何かを削除したい時は、必ずUnityの画面内で削除をしてください(Hierarchyビュー、Projectビュー、Assetフォルダなど)。

Projectが保存されているおおもとのフォルダを開いて削除をしてはいけません。かなり高い確率で、Projectが壊れます。

f:id:emifuwa:20171123214146j:plain

f:id:emifuwa:20171123214208j:plain

このモデルはもう使わないから…とか、このファイルは要らないよね?ということで、Projectの中身を整理したくなることはあると思うのですが、オブジェクトを足すのも削除するのも、全てUnityの作業画面内で行いましょう。

もとの保存場所は基本開かないくらいでいいと思います。ご注意を…