【Unity】そろそろXR Managementに対応したOpenVR XR Pluginがリリースされそう

# はじめに

※追記2※

OpenVR XR PluginのGitHubリポジトリが分割されたのでインストール方法を更新しました。

- https://github.com/ValveSoftware/unity-xr-plugin/releases/tag/installer

更にUnity XR InputとSteamVR Input Systemの統合が困難らしくサポートされません。**そのためボタン類の入力はSteamVR Plugin 2.6以降のSteamVR Input Systemが必須です。**
現在はOpenXRサポートに注力しているそうです。

- https://github.com/ValveSoftware/unity-xr-plugin/issues/16#issuecomment-662708512

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/8995/d46879fb-9080-a540-512c-b3624af80d41.png)

そしてUnityはOpenXRサポートを開発していてXR SDKから使えるようになるようですが提供方法が決まっていませんので発表待ちです。

- https://forum.unity.com/threads/2020-roadmap-q-a-core-engine-creator-tools.852253/page-3#post-5630953

※追記1※

プレビュー版がリリースされました。

- [OpenVR Unity XR Plugin v1.0.0-preview1 (sdk 1.11.11)](https://steamcommunity.com/app/250820/discussions/7/2268069450205612646/)

---

Unityの既存のVRサポートは2020.1で廃止されXR Managementに一本化されます。
今までOpenVR対応プラグインがなかったのでViveなど一部のHMDで移行の障害になっていましたがやっとリリースされそうな動きが見えてきました。

https://forum.unity.com/threads/xr-plugins-and-subsystems.693463/page-5#post-5562637
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/8995/4ae45f66-d12c-5de1-8c28-5727cb11759d.png)

以下はInputSystemのPull Requestとそれを作った開発者のGitHubアカウントにあるテストパッケージです。

- https://github.com/Unity-Technologies/InputSystem/pull/1083
- https://github.com/zite/TestPackage

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/8995/02501293-8812-0f5b-59d6-1faddb34985c.png)

----

# 導入方法(プレビューパッケージ)

**プレビュー版なので導入しても動作保証はありません。**

## OpenVR Unity XR Plugin Installerをインポートする

以下からOpenVR-XR-Plugin-Installer.unitypackageをダウンロードしてインポートします。

- https://github.com/ValveSoftware/unity-xr-plugin/releases/tag/installer

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/8995/e7b3e8cc-4bce-0485-adb5-6388496b8608.png)

すると`manifest.json`にUPM RegistoryとOpenVR XR APIが登録されてUPMとしてインストールされます。インストールが終わると2つのスクリプトが削除されるのですがasmdefが残っているので`/Assets/OpenVRAutoUpdater/`フォルダ毎削除して構いません。
UPMに対応しているのにわざわざunitypackageを経由するのは恐らく手動で間違えたUPM Registryを設定した時のトラブルを回避したいためだと思われます。

## SteamVR PluginとOpenVR Unity XR Pluginをインポートする

以下からsteamvr_2_6_0b3.unitypackageをダウンロードしてインポートします。

- https://github.com/ValveSoftware/steamvr_unity_plugin/releases

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/8995/93ba5a70-edf4-c558-cc81-282cdd86dafe.png)

するとOpenVR XR Plugin単体の時と同様にUPMに追加されます。ボタンはほぼ必須なのでこっちをインストールする事が多いと思います。

## ~~manifest.jsonに追加~~

**GitHubリポジトリが分割されたので直接指定できなくなりました**

Package Managerを開き、`Add package from git URL`から以下のURLを入力します。
https://github.com/ValveSoftware/steamvr_unity_plugin.git#UnityXRPlugin

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/8995/d28bd1e7-f7db-7080-0b41-5de57c74a6d3.png)

うまくいかない場合はPackagesフォルダにコピーする方法を試してください。

## ~~Pakcagesフォルダにコピー~~

**GitHubリポジトリが分割されてダウンロードできなくなりました**

UnityXRPluginブランチをzipでダウンロードして展開したりgit cloneしてPackagesフォルダに配置するとUnityプロジェクトに取り込まれます。

# ~~導入方法(テストパッケージ)~~

**プレビュー版がリリースされたのでテストパッケージは非推奨です**

Unityプロジェクトフォルダの`Packages/manifest.json`に以下の1行を追加するとUnityが自動でダウンロードします。
今はmasterブランチよりTestBranchの方が進んでいるので`#TestBranch`を指定します。

```json:manifest.json
{
  "dependencies": {
    "com.valve.openvr": "https://github.com/zite/TestPackage.git#TestBranch",
    ...
  }
}
```

## ~~Pakcagesフォルダにコピー~~

**プレビュー版がリリースされたのでテストパッケージは非推奨です**

TestPackageリポジトリをzipでダウンロードして展開したりgit cloneしてPackagesフォルダに配置するとUnityプロジェクトに取り込まれます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/8995/760104f5-85b7-430a-1d21-b5f8a204ff3d.png)

# UPMを確認する

OpenVR XR Pluginが認識されるとPackage Managerに追加されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/8995/927ee03d-83de-7472-bb19-004224b476c1.png)

# OpenVR XR Pluginの設定

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/8995/1ac675ba-dc90-eaee-dc77-499a49dd44be.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/8995/babc8daf-ba11-e7f7-ed5a-1ad0ac44bea2.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/8995/40f18b2b-03f2-05e1-007c-dd542c58de3e.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/8995/ee5072ab-bc63-ee50-19b1-739c3fe6d350.png)