待ちに待ったUnityのネイティブOculusRift対応。Unity5.1b3のVR Supportedを試してみたメモ(Pro限定)

はじめに

ようやくUnity5.1からOculusRift開発にネイティブで対応するVirtual Reality Supportedの機能が追加されました。(2015/4/17ベータアクセス開始)

※2015/04/19現在VR Supportedを試せるのは、UnityProライセンス所有者限定のベータアクセスでUnity5.1.0 beta3を入手できる方のみ。
今すぐ試したい場合は、UnityProライセンスの契約を結ぼう。( ◕ ‿‿ ◕ )

 

環境

  • Windows 8.1
  • Unity 5.1.0 beta3 URL

Virtual Reality Supportedについて

今まで

Unity5.0.1までは

  1. 下準備として、Oculus DeveloperからUnity4Integrationのプラグイン(ovr_unity_0.5.0.1_lib.zipのOculusUnityIntegration.unitypackage)をインポート。
  2. Oculus用のカメラをシーン内に配置、OVRPlayerControllerかOVRCameraRigを置く。
  3. もしImageEffectを使うのであれば、LeftEyeAnchorとRightEyeAnchorそれぞれのカメラに同じパラメータを設定したImageEffectをアタッチ。
  4. エディタ実行は、OculusRuntimeでExtendにしてGameビューをOculus側のモニタに移動する。

こんなめんどい手順を踏む必要がありました。

 

これからは

  1.  「Player Setting」で「Virtual Reality Supported」をONにする。

 

おしまい

 

以上の手順だけで以下の全てが解決

  • 下準備に、プロジェクトにプラグインを別途入れる必要なし
    OculusUnityIntegration.unitypackage不要
  • Oculus用カメラはいらない
    MainCameraが自動的に実行時に置き換わる。(実際の動きは未調査)
  • ImageEffectsもMainCameraに設定するだけでOK
    自動的に左右に設定してくれるので、わざわざLeft、Rightで同じものをアタッチしなくてOK。(実際の動きは未調査)
  • エディタ実行時もOculusをつないでおけば自動的に映る
    OculusRuntimeはDirectでもExtendどっちでもOK。
    Gameビューは普通のMainCamera、Oculus側の樽型歪みの2画面分割のステレオ表示ではなく、通常の歪みのない1画面表示。
    ビルド後のファイルも同じ。展示や生放送などでは1画面の方が見栄えがいいので嬉しい。(以前たじさん@hal_tajima00G-tuneさんのイベント用にPC側を1画面化するアセットをわざわざ作って頂きました。その節はありがとうございました!)

 

Profiler

プロファイラーで見ると、実行時にMainCameraが2つ見えるが、Hierarchyビューでは変わらず1つ。
実行中のシーンでは確認できないっぽい?

 

問題点

  1. OVRGamepadとかOVRMenuとか便利な物がない。

     キャラクターに関してはUnityのCharactersアセットを使う。

    が、なぜか\Unity 5.1.0b3\Editor\Standard Assetsが空っぽ。Unity5.0.1f1などの前のバージョンから持ってくる。
    (例: \Unity5.0.1 f1\Editor\Standard Assets\Characters.unitypackage)

    それか全く他のキャラクターのアセット、FinalIKなどを使う。

    Unity5.0.x

    Unity 5.1

  2.  右目のレンダリングがおかしい。ポリゴンが消えたりする。

    これはOculusのフォーラムにも報告が上がっている。

     >> Unity 5.1.0b | Unity Integration | Oculus VR Forums
    https://forums.oculus.com/viewtopic.php?f=37&t=22363

     >> Weird lightmapping artifacts Unity 5.1.0 [Solved] | Unity Integration | Oculus VR Forums
    https://forums.oculus.com/viewtopic.php?f=37&t=22381

    たぶんbeta4で解決するとKnown Issuesに上がっている問題点。

    暫定の処置ではあるが、Player Settingsの Rendering PathをFowardからDeferredに変えれば解決するが、重くなるしbeta4を待った方がよい。

     >> Unity – マニュアル: レンダリングパス
    http://docs.unity3d.com/ja/current/Manual/RenderingPaths.html

  3. Macは待った方が良い

    Judderの問題が残っている、32bitでは動かない(後者はどうでもいい気が)

  4. Health and Safetyのメッセージ表示がちらつく

    アッハイ

  5. Player Settingsを開いていると、なんかめっちゃエラー出る
    無害です。InspectorでPlayerSettingsのOther Settingsをたたんでおけば止まります。ウザいですが我慢しましょう。
    EditorOnlyPlayerSettings property Standalone::ScriptingBackend not inititalized.
    UnityEditor.DockArea:OnGUI()

  6. 【未調査】MainCameraにAnimで移動をさせるようなものだと、Virtual Reality SupportedをONにすると盛大にスタートの開始位置がずれる

    HE – Abandoned Manor MegaPack v.2 by Artur G.
    https://kharma.unity3d.com/jp/#!/content/8429
    バージョン2.0(Dec 01, 2014)で発生。
    ※他の同構成で試してない。

    仮説→MainCameraが右目左目で自動的に複製される際に、AnimをMainCameraにつけているので両目にAnimがついた状態になっておかしくなってる?

 

ちなみにUnreal Engine4は

UnrealEngine4ではリリース当初からOculusのネイティブプラグインが提供されており、デフォルトでOculusに対応。エディタ上で実行する場合もStandalone Game実行中にAlt+Enterを押すだけ。

更に4.7からはVR Previewが追加されて、Standalone Gameを経ず直接Oculus表示を高速に行うことができるようになっていました。

 

まとめ

※時間がなく詳細は未調査なので、あまり真に受けてほしくないということをご留意願いたい。(・ω<)☆

Unity5.1.0beta3では、Rendering Pathを ForwardからDeferredにしないと右目のレンダリングがおかしくなるので静観しても良いかもしれない。beta4で解決しそうな問題でもある。

ただ、シーン内のLightingとかいろいろ整理して調整、見直せばbeta3のForwardでも解決しそうではある。

 

情報源

Oculus Forums

 >> Unity Integration | Oculus VR Forums
https://forums.oculus.com/viewforum.php?f=37&sid=da896864d64e26a83f50d12a831f30a7

2015/04/19現在、2つのTopicが建てられている。

 >> Unity 5.1.0b | Unity Integration | Oculus VR Forums
https://forums.oculus.com/viewtopic.php?f=37&t=22363

 >> Weird lightmapping artifacts Unity 5.1.0 [Solved] | Unity Integration | Oculus VR Forums
https://forums.oculus.com/viewtopic.php?f=37&t=22381