#3-α「Unity2019でVR開発のための環境を整える（SteamVR Plugin2.7.Xをインストールする）：推奨」【初心者】HTC VIVE Pro Eyeを使ってUnityでVRの開発を行ってみる．

#はじめに

[前回](https://qiita.com/RyoyaHase/items/7b2148e9034584db7420)は実際にプロジェクトを触ってみましたので今回はXR開発をするための下準備をしていきます．

記事を書き始めた時点では最新版でよかったのですが，次回のバージョンでは色々と関数の仕様が変更され，これまで書いたアセットの修正が必要になるということでアセットストアからではなく，リリースサイトから2.7.X系（この記事ではSteamVR Plugin2.7.3）のインストールをメモしておきます．

バージョン2.7.X系と違う場合この先の記事で動かないものが出てくる可能性があるので，記事を参考にする場合にはこちらを参照してください．

環境一覧
[SteamVR](https://store.steampowered.com/app/250820/SteamVR/?l=japanese) 1.16.10
[Unity](https://unity3d.com/jp/get-unity/download) 2019.4.27f1 or 2020.1.17f1（動作確認済み，非対応なSDKあり）

[SteamVR Plugin](https://assetstore.unity.com/packages/tools/integration/steamvr-plugin-32647) 2.7.3
[Vive SRanipalRuntime Plugin](https://hub.vive.com/en-US/download) 1.3.2.0


追加アクセサリー
[VIVEトラッカー2018](https://www.amazon.co.jp/dp/B0748ZY323/ref=cm_sw_r_tw_dp_QDZSM4A3844PSM33DB3R?_encoding=UTF8&psc=1)
[Ovrvision Pro（ステレオカメラ）](https://www.amazon.co.jp/dp/B01N7H8YUM/ref=cm_sw_em_r_mt_dp_6TGRDF5BWQPW2PJ1H4WN)
[Leap Motion](https://www.amazon.co.jp/Leap-Motion-Controller/dp/B075T4MH77/ref=asc_df_B075T4MH77/?tag=jpgo-22&linkCode=df0&hvadid=342463500927&hvpos=&hvnetw=g&hvrand=13721783060484696807&hvpone=&hvptwo=&hvqmt=&hvdev=c&hvdvcmdl=&hvlocint=&hvlocphy=1009320&hvtargid=pla-945077929421&psc=1)


使用PCスペック
インテル® Core™ i7-7700K
NVIDIA GeForce GTX 1070

- **環境作成編**

 #1 [Unityのセットアップをする](https://qiita.com/RyoyaHase/items/5a173b7acbdf9aa2cfff)　2021年 1月更新

 #2 [プロジェクトを作ってみる](https://qiita.com/RyoyaHase/items/7b2148e9034584db7420)　2021年 1月更新

 #3-α [__Unity2019でVR開発のための環境を整える（SteamVR Plugin2.7.Xをインストールする）：推奨（この記事）__
](https://qiita.com/RyoyaHase/items/36910ec8a0b3d8122f8c)　2021年 6月更新

 #3-β [Unity2020でVR開発のための環境を整える（SteamVR Plugin2.7.Xをインストールする）](https://qiita.com/RyoyaHase/items/b7b5f8a7110810c1c0f1)　2021年 5月更新

 #3-おまけ [UnityでVR開発のための環境を整える（SteamVR Pluginの最新版をインストールする）：非推奨](https://qiita.com/RyoyaHase/items/f8b4fb5b04d9f02aae49)　2021年 2月更新

 #4 [SteamVRのダウングレードと自動アップデートの停止（上級者向け）](https://qiita.com/RyoyaHase/items/0dab278b080f517032a0)　2021年 5月更新


- **コントローラの入力やトラッカー，HMDの位置座標，回転座標を得る＋α**

 #5 [VIVEコントローラのボタン入力を取得する](https://qiita.com/RyoyaHase/items/89ffc9d134b784b8ae50)　2021年 2月更新

 #6 [トリガーの押し具合やトラックパッドの位置情報の入力を取得する](https://qiita.com/RyoyaHase/items/81fa026f68aee02fa5d4)　2021年 2月更新

 #6-おまけ [VIVEコントローラを使った開発をする時のおすすめ設定（独断と偏見）](https://qiita.com/RyoyaHase/items/d622e1bb0e345cf78f4f)　2021年 5月更新

 #7 [ヘッドマウントディスプレイとコントローラの位置座標と回転を取得する](https://qiita.com/RyoyaHase/items/325e7250c01f47e7e63b)　2021年 2月更新

 #8 [VIVEトラッカー2018を有効化してUnity上で位置座標と回転を取得](https://qiita.com/RyoyaHase/items/015bbb8671833ef8e740)　2021年 5月更新

 #9 [VIVEコントローラの振動機能を開発してみる](https://qiita.com/RyoyaHase/items/0690761fed2e71f6d517)　2021年 4月更新


- **VIVE Pro Eyeのアイトラッキングを使ってみる**

 #10 [VIVE Pro Eyeの視線トラッキングを有効化（セットアップ）する](https://qiita.com/RyoyaHase/items/024f3589547d1af84a92)　2021年 4月更新

 #11 [VIVE Pro Eyeのアイトラッキングを使ってUnity上で瞬きや視線のデータを取得する](https://qiita.com/RyoyaHase/items/5af948666a039d48a68d)　2021年 4月更新

 #11-おまけ [VIVE Pro Eyeのアイトラッキングで計測できるデータについて（適宜更新）](https://qiita.com/RyoyaHase/items/044826488e763f896a0f)　2021年 4月更新


- **VIVE Pro Eyeのカメラを使ってみる**

 #12 [VIVE Pro Eyeのフロントカメラの解像度（性能）とAR機能を有効化について](https://qiita.com/RyoyaHase/items/853938ec7c8745ec811c)　2021年 5月更新


- **小技**

 [プレイエリアの境界線（シャペロン境界）が表示されないように設定を変更する](https://qiita.com/RyoyaHase/items/57296d7753877afc6f34)　2021年 6月更新

 [Unity上でカメラを複数台追加してHMDやコントローラの動きを見る](https://qiita.com/RyoyaHase/items/4b4733503d53c8387db4)　2021年 6月更新


- **Ovrvision Pro（ステレオカメラ）を使ってAR開発してみる**

 ＄1-1 [Ovrvision Pro（ステレオカメラ）のセットアップをして実際に動かしてみる](https://qiita.com/RyoyaHase/items/262ad2133ee89d00b3cb)　2021年 6月更新

 ＄1-2 [Ovrvision Pro（ステレオカメラ）とHMDを使ってARアプリ開発する](https://qiita.com/RyoyaHase/items/4abcd90f0f2319c89114)　2021年 6月更新

- **Leap Motionを使ってハンドトラッキングしてみる**

 ＄2-1 [Leap Motion（ハンドトラッキング）のセットアップをして実際に動かしてみる](https://qiita.com/RyoyaHase/items/6891c21c8c21dcb08b2f)　2021年 6月更新

 ＄2-2 [Leap Motion（ハンドトラッキング）とHMDを使ったインタラクティブなアプリ開発する](https://qiita.com/RyoyaHase/items/b0f6cd1d7474286f99ed)　2021年 6月更新

- **アプリを作ってみる**

  [VR（仮想空間）上に曲面ディスプレイを作成して大画面で広角WEBカメラ映像を見る](https://qiita.com/RyoyaHase/items/cc57e67799c1b14ef15d)　2021年 5月更新


今回の記事では，

1．UnityXRを有効にする．
1．Unityパッケージをダウンロードして追加する．
2．実際に動かして動作確認を行う．
3．サンプルプログラムを触ってみる．

という流れ．

#1．UnityXRを有効にする．

前回同様Unity2019.4.27f1でプロジェクトを作成し，Edit→Project Settingsを開きます．
![01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/758746/6f935e4a-d03a-ce15-d01c-0cbf6ef174a1.png)

Project Settingsタブが開いたらXR Plugin Managementの項目を開き，"Install XR Plugin Management"を押して設定をインストールします．
![02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/758746/9c455cc0-6760-5fdb-5e7d-973f43aa4d0f.png)

インストールが完了すると，各VR環境を有効にするか聞かれますが今回はOpenVRでの開発なのでチェックマークは入れなくていいです．
![03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/758746/4d27b03c-46b2-fd66-9337-33f27b6353e9.png)

Project Settingsタブ内のPlayerの項目を開き，Virtual Reality Supportedの項目にチェックマークを入れます．
![04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/758746/9ab2e364-9a9a-b6ce-cfad-0dbcead728bd.png)

色々聞かれるのでとりあえずOKしとく．
![05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/758746/05a4faac-a1db-256b-b641-f345b83ae6ca.png)

確認ダイアログもOK．
![06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/758746/5082a247-9e15-4c5c-16db-69cc65c0f31e.png)

一回目は色々聞かれるだけでチェックマークが有効にならないのでしっかりとチェックマークが入っていることを確認する．
![07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/758746/08979603-dc38-1241-03b9-8bf881925a71.png)

このままだとSDKが１つも入っていない状態なので，Virtual Reality SDKsのリスト右下のプラスボタンからSDKの追加を行う．
![08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/758746/b4f83c54-2d2f-4f44-121a-20b4544ec873.png)

今回はVIVEを使っているのでOpenVRを追加する．
![09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/758746/0a495243-a945-66a3-5538-9f0409a819d4.png)

リストにOpenVRが追加されている状態になっていればOk．
![10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/758746/45ceb515-f853-8f52-d084-1d14eae0e282.png)

#1．Unityパッケージをダウンロードして追加する．

まずは，Gitの [SteamVR Unity Plugin Releases](https://github.com/ValveSoftware/steamvr_unity_plugin/releases) にアクセスをして，2.7.X系の最新版を見つけます．
![01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/758746/03c0234d-f4b8-2cbe-91a0-2d374dff7d8d.png)

各バージョンの最新版には.unitypackageのファイルが用意されているので（各バージョンの最新版以外は.zipやtar.gzしかありません）そちらをクリックしてダウンロードします．
![02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/758746/2db1d4da-6bd8-876d-5e89-c95ce9c0a846.png)

.unitypackageがダウンロードされるのでわかりやすい場所に保存しておきます．
![03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/758746/50e88e65-3bf2-a1a0-7052-843c7fe1b9c5.png)

Unityを開き，"Assets→Import Package→Custom Package"を押します．
![04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/758746/230aa4f8-611e-8e92-4646-07c05cc6671c.png)

先ほどダウンロードしたUnityパッケージを開きます．
![05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/758746/c3d24ceb-6814-afbf-5274-7ec823333e9c.png)

インポートするファイルを聞かれるのでデフォルトのままimportを押します．
![06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/758746/dbcde6ab-d64f-ca08-01f6-b288531e1823.png)

設定を最適化するかを確認されるので「Accept ALL」する．順番はどっちでも大丈夫．
![09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/758746/33ee41f8-9c69-51b5-fc54-27ab90615480.png)

素晴らしい選択だね！と言われて，アセットにSteamVRの関連フォルダが追加されているのを確認する．
![10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/758746/3accd2d2-4239-5cd9-e94f-7e0f2226cae7.png)

念のため1度File→Saveで保存をしてプロジェクトを開きなおす．
![11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/758746/620c460c-4076-bf34-08d5-a4670c5c00ae.png)

#2．実際に動かして動作確認を行う．

アセットマネジメントタブからシーンタブに一度戻る．
プロジェクトタブにあるSteamVRフォルダ内にSimple Sampleというシーンがあるのでタブルクリックで開く．
![14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/758746/1409579b-7079-abcb-fdef-535a3d9294e4.png)

SteamVRを起動して，ヘッドセット及びコントローラーを認識させておく．
![16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/758746/3a5d71e9-e55e-143f-2ff7-7da1ea4b4984.png)

画面上部の再生ボタンを押して実行する．
![15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/758746/5622ce03-2d17-68ae-d375-d3e715c89524.png)

＊初回起動のみ
コントローラーの入力を得るためのSteamVR Inputを開く必要があるといわれるので「Yes」を押す．
![17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/758746/bf414c2c-269a-bd86-3064-2a3297c0b67a.png)

＊初回起動のみ
コントローラーの入力を得るためのSteamVR Inputを作る必要があるといわれるので「Yes」を押す．
![18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/758746/3507cdc2-09a6-99db-6c0d-c426af07304e.png)

＊初回起動のみ
上の4つがコントローラの入力方式4つ（通常状態と車両に乗った際などの入力を変更する為）と，Actionsというボタンなどの設定一覧が表示されている．
![19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/758746/89e7bd67-7f0c-1a81-d7d2-d4c9e5d7a9b3.png)

＊初回起動のみ
一応「Save and generate」を押してウィンドウを閉じる．
![20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/758746/7982394f-40e6-f453-a65d-7976eb344fb6.png)

＊初回起動のみ
画面上部の再生ボタンを押し直す．
![21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/758746/d0400be9-e7bc-8079-9728-3693a080ad86.png)

HMDを被ってゲーム内でコントローラが見えれば正しく認識されている．
＊Steamの待機画面などでコントローラが表示されていても，ボールが動いている画面でコントローラが表示されてなければ設定できてない．
![22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/758746/f1eeb476-b7b7-1785-bf78-9dc353361511.png)

#3．サンプルプログラムを触ってみる．

SteamVR/InteractionSystem/Sampleフォルダ内にあるInteractions_Exampleが色々な動作が実装されているので試しに触ってみると結構面白い．
![12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/758746/ec5b2f56-73e1-6791-216c-d480b06ca69d.png)


![24.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/758746/8cee668b-e2ac-59c9-846d-45e3529c80a3.gif)

![25.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/758746/64a0f564-63c1-2464-4ce8-fc5e345e56a4.gif)

[次回](https://qiita.com/RyoyaHase/items/0dab278b080f517032a0)はバージョン違いによって動かなくなったり，動かなかったりの対策のためにSteamVRのダウングレードと自動更新の停止をします．