UnityによるHTC Vive用アプリ制作

ビルドインレンダラーでのVIVE VRアプリ作成

URPへの変更

URPテンプレートを使ってプロジェクトを新規作成した場合には、
Unity Starter Assets、SteamVR Unity Pluginをインポートした後に、
Edit>Rendering Pipeline>Universal Rendering Pipelineから、プロジェクト内のマテリアルアップグレードすればURPに変更ができる。


3Dテンプレートでプロジェクトを作成した後で、URPパッケージをインポートした場合は、追加設定が必要。
3DテンプレートはBuildin Rendererを使うが、設定変更しないとUnityはそのまま使い続けようとする。
インポートしたレンダリングパイプラインを指定する設定は、
UnityEditorのProjectウインドウの「+」Create で新規に設定ファイルを作成する。
Rendering>Universal Render Pipeline>Pipeline AssetでUniversalRenderPipelineAssetを作る。
Edit>Project Settings>Graphics で、作成したAssetを指定する。

マテリアル変更は、Edit>Rendering Pipeline>Universal Rendering Pipelineから、プロジェクト内のマテリアルアップグレードする。
Buildin

URP

ポストプロセッシングとかを設定しなければ、見た目で特段の変化はない。

HDRPテンプレートからの実施

HRDPテンプレートで新規プロジェクトをスタートする。
2020以降のHRDPテンプレートには、綺麗な建物のサンプルモデルが入っているので、内部を探索するVRアプリが簡単に作れる。


SteamVR Unity Pluginのインポート

PackageManagerでMyAssetを選択してリストを開き、SteamVR Unity Pluginを選び、ダウンロード、インポートする。

設定変更をアクセプトする。

Player Settingの中にあるUnity組み込みの、XR Pluginも自動設定される。
SteamVR Unity PluginのオブジェクトはHDRPに対応していないので、HDRP Wizardで全マテリアルをHDRPにUpgrade変換する。

VRオブジェクトの設置

HDRPテンプレートには、キーボードで動くPlayerControllerFPSというオブジェクトがある。
PlayerControllerFPSは、プレーヤーカメラの位置と向きを制御する機能が入っている。
PlayerControllerFPSをInspectorで無効化(OFF)にする。

追加するものは、3Dテンプレートの時と同じ
  • Teleporting
    Assets\SteamVR\InteractionSystem\Teleport\PrefabsにあるTeleporting.prefab
  • Player
    Assets\SteamVR\InteractionSystem\Core\PrefabsにあるPlayer.prefab
  • Teleportpoint
    Assets\SteamVR\InteractionSystem\Teleport\PrefabsにあるTeleportPoint.prefab
  • Teleportarea
    Teleportareaに設定したい床面や、専用のPlaneを新規に作って、下記コンポーネントを追加する。
    Assets\SteamVR\InteractionSystem\Teleport\MaterialsにあるTeleportAreaVisible.mat
    Assets\SteamVR\InteractionSystem\Teleport\ScriptsにあるTeleportArea.cs

  • その場回転移動もできる。

    SteamVRでVIVE機器をスタンバイする。

    Playボタンを押して、シーンを動かすと、エディタ画面とVIVEの両方に映像が映る。




    HRDPの問題

    Unity2020で新しくなったHDRPテンプレートは、太陽光が100,000lux,5500Kとなっている中庭
    日差しの入る廊下
    ダウンライトの暗い部屋
    の3つに分かれている。
    3つの部屋ごとの見せ方を変えるため、ボリューム領域が設定してある。
    これが、Viveのテレポート用のレイキャスト(レーザーポインターのような軌跡)を遮ってしまう。
    テレポートマークまで届かない問題があった。
    ボリュームの端まで行ってから足で進んでコントローラーを持った手を境界の先に伸ばしてレイキャストを飛ばせば何とか移動できた。

    なお、屋外の光が強い場所では、明るすぎてVRのテレポート表示やレイキャストの発光がしても見えない。
    上手く動いてないと思って試行錯誤したのだが実は問題は起きてなくてうすーく見えていた。
    アフターエフェクトでブラーもかかっていてVRで見ると違和感あり、Fogもあって砂漠にいる感じがするので65,000lux,6000Kに変えると日本の夏ぽくなる。
    モーションブラーは視界に違和感あり、VRには合っていない気がするので切る。
    アンチエイリアスをONにしたらクリアになる。
    VIVEでのVRアプリ作成(ビルドインレンダラー)