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のテスト




