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


HTC VIVEは、ゲーム配信会社Steamと台湾の電子機器メーカーHTCの送り出したハイエンドゲーム向けPC-VRヘッドセット。
VIVEの高性能版で前面ステレオカメラを搭載したVIVE proでは、ビジネス利用を考慮した長時間利用と脱着のしやすい固定方法となり、 VIVE pro eyeでEyeトラッキングが追加されている。
2021年6月に、VIVE pro2が登場してさらに高性能化が進んでいる。
詳細は販売情報を参照。

UnityでのPC-VRアプリ制作

PC-VRは、ヘッドセットやコントローラのセンサー情報を取得しそれに応じた画像・音声を出力しているが、プログラムが動いているのはPCなので、 アプリはPCスクリーンで動かすアプリと変わらない。
プレーヤーコントロール(カメラと操作入力)を切り替えると、一般PC用とVR用を作り分けられる。

Unityセットアップ

まずは、最新のUNITYエディタをPC上にセットアップする。
ターゲットプラットフォームは、PCだけなので追加モジュールは不要。

Unityプロジェクト

最新リリースのUnityをインストールしたら、3Dテンプレートを選んで新規プロジェクトをスタートする。

Unity Starter Assets(TPS)のインポート

UnityStoreでUnity Starter Assetsを検索しMyAssetに入れて、UnityエディタでPackageManagerを開いてインポートする。
キャラクターコントローラーは無効化するのでTPSでもFPSでもいいのだが、TPSとVRのアプリを作り分けるのがいいのではないかと思う。

SteamVR Unity Pluginのインポート

続いてSteamVR Unity Pluginをインポートする。
UnityStoreで、SteamVR Unity Pluginを検索し、MyAssetに入れて、Unityエディタを開く。


Player Settingの中にあるXR Plugin Managementが、自動で設定される。



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

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

Starter Assetsのサンプルシーン読み込み

Assets\StarterAssets\ThirdPersonController\Scenesにある、Playgroundシーンを開く。
TPSのカメラ、キャラクターは使わないので、インスペクターでチェックを外し無効化する。
Hierachyの、
  • MainCamera
  • PlayerFollowCamera
  • PlayerArmature
  • UI_Canvas_StarterAssetsInputs_Joysticks

  • VRオブジェクトの設置


    追加するもの
  • 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を新規に作って、下記コンポーネントを追加する。
    シーン内にあるオブジェクトに直接設定すると、コリジョン判定とか見え方とかに影響出るので、 Teleportarea専用のPlaneを新規に作ってコンポーネント追加する方がよい。
    Assets\SteamVR\InteractionSystem\Teleport\MaterialsにあるTeleportAreaVisible.mat
    Assets\SteamVR\InteractionSystem\Teleport\ScriptsにあるTeleportArea.cs
  • VRアプリの実行

    SteamVRを起動し、VIVE機器をスタンバイする。(エリア境界設定等は終わっていること)

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

    VRの基本機能ができたので、テレポートの位置を調整したり、シーン内にオブジェクトを追加すればVRで探索可能。
    URP/HDRPへの変更
    VIVE SDKのテスト