UnityでVIVE cosmosを扱う【SteamVR Plugin導入】

ここではUnity上でVIVE Cosmosを利用する方法と手順をまとめる

VIVE Cosmosは旧世代の機種であるVIVE Proと少々違いがあります
例
- ベースステーションが不要
- コントローラの形状が異なる


そのためUnityで扱うにあたってVIVE Proのやり方そのままではエラーを起こすことがあります
またSteamVR Pluginのversionによって設定のやり方が異なる場合があるので注意しなければなりません
ここで紹介するSteamVR Inputはversion2.0以降でないと利用できません

####機器概要
- Unity 2019.3.2.f1
<details><summary>UnityのDL及びインストールに関する記事
</summary>[５分でできる！UnityとHTC ViveでVRコンテンツ開発](https://www.capa.co.jp/archives/16959)</details>
- SteamVR Plugin 2.5.0
- windows PC
- VIVE Cosmos<導入は[こちら](https://qiita.com/T170521/items/931f466a83ec221ecea5)>

####導入手順####
あらかじめVIVE Cosmosを接続しておく

#####1. projectを新規作成する#####
3Dを選択
名前は任意でよい
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/563922/71ec02d0-5450-0b4c-c539-2056be962325.png)


#####2. SteamVR Pluginを導入する#####
Asset StoreよりSteamVR PluginをDL&Importする
ウィンドウが出てくるのでそのままImportする
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/563922/48fc17ef-0cad-cf2b-666e-c3194257719d.png)
また以下のようなウィンドウが出てくるのでAccept Allを押す
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/563922/0fb829f9-5754-c8e3-65f5-d9e502dce413.png)
これでOK
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/563922/4584c341-ed00-bf23-670d-f5ce49d93dc1.png)

#####3. キーコンフィグの設定【SteamVR Input】#####
Importを完了したらSampleシーンで動作確認を行う
Assets/SteamVR にある Simple Sample.unityというシーンファイルをopenする
実行をすると以下のようなウィンドウが出てくるのでYesを押す
(初回実行時はInputの設定がないため)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/563922/095850da-67f4-9cfd-c28e-27035c51615b.png)

ControllerのキーコンフィグをするSteamVR Inputウィンドウが出てくる
(Windows -> SteamVR Inputより表示することも可能)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/563922/a0cfa3ab-0166-1558-63b3-e8820e49857a.png)

そのままSave and generateを押す
Assets/SteamVR_Inputが生成される
設定は以上です

Sampleが実行できるようになったはずなので実行して確認する
<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">SteamVRテスト動画 <a href="https://t.co/WPecUimKLn">pic.twitter.com/WPecUimKLn</a></p>&mdash; ゆーま (@sagirin262) <a href="https://twitter.com/sagirin262/status/1260462253062656000?ref_src=twsrc%5Etfw">May 13, 2020</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

またAssets/SteamVR/InteractionSystem/SamplesにあるInteractions_Example.unityというシーンファイルをopenして実行すると様々な動作を試すことができる

これでCosmosでもSteamVR Pluginを利用することができました

####参考記事
- [UnityでVIVE(Steam)向けアプリを開発する際の手始め](https://kan-kikuchi.hatenablog.com/entry/Unity_VIVE_Getting_Started)

#####SteamVR Plugin
- [【HTC VIVE】 VR開発チュートリアル　~ものをつかんで投げ、テレポートできるようにする~](https://review-of-my-life.blogspot.com/2017/11/throw-objects-and-move-aroud-with-laser-in-vr.html)
- [SteamVR Pluginをダウンロードする方法【その後の作業の概要も紹介】](https://shinrinmusic.com/steamvr-plugin-download/)
- [【Unity】SteamVR Plugin 2.0の入力方法を調べてみた](https://shop-0761.hatenablog.com/entry/2018/10/12/071507)
- [Getting Started With VIVE Cosmos Development](https://developer.vive.com/resources/2019/06/04/getting-started-with-cosmos-development/)
- [Adding the Cosmos bindings with SteamVR Unity plugin 2.4.3](https://forum.vive.com/topic/6666-adding-the-cosmos-bindings-with-steamvr-unity-plugin-243/)

#####CameraRig
- [[CameraRig]プレハブの設定項目](http://hououin-asuma.hatenablog.com/entry/2016/08/21/091153)
- [[CameraRig]のControllerの設定について](http://hououin-asuma.hatenablog.com/entry/2016/08/23/080000)

#####controller
- [Cosmos controller setup in unity](https://forum.vive.com/topic/6668-cosmos-controller-setup-in-unity/)

VIVE proのコントローラでもInputを利用すれば扱えると思いますが確認はしていないです
version2.0以前の場合はScriptで設定する必要があります
VIVE proにおけるScriptでのキーコンフィグ設定に関する記事も載せておきます
- [【Vive】コントローラのボタン入力の取得【Unity】](http://cycling.hateblo.jp/entry/2016/03/26/010232)

もしVIVE Cosmosのキーコンフィグ設定に関する情報があれば教えていただけるとありがたいです