UE5とPICO4でVR開発する際の環境構築

# はじめに
　完全独学、趣味の範囲でVR開発を始めた結果、学ぶことが多すぎて、どのように環境構築したのかさえ忘れてしまったため、メモを取らなかったことに後悔しながら今回初めての記事を書こうと決めました。
 
 　初めての記事で拙い部分もあるかと思いますが、同じ環境で開発を進める方の助けになれれば幸いです。

:::note warn
初学者による記事なので、あくまでも参考程度でお願いします。上手くいかない場合は、私が参考にした以下の[参考文献](#参考文献)を参照してください。
:::

> **Memo :**
> 順次、この記事だけで分かりやすく完結させるために、画像を追加する予定です。あくまでも、"予定"です。

# 目次
- [はじめに](#はじめに)
- [開発環境](#開発環境)
- [環境構築](#環境構築)
  - [PICO4側の準備](#pico4側の準備)
  - [UE側の準備](#ue側の準備)
    - [プラグインの導入](#プラグインの導入)
    - [入力情報の定義](#入力情報の定義)
  - [UEのLivePreview有効化](#ueのlivepreview有効化)
    - [PICO Developer Center のインストール](#pico-developer-center-のインストール)
    - [プラグインのインストール](#プラグインのインストール)
    - [プレビューのためのプロジェクト設定](#プレビューのためのプロジェクト設定)
- [最後に](#最後に)
- [参考文献](#参考文献)

# 開発環境
- UE 5.2.1　(2024/9時点最新verは5.4)
- pico4

 　今回記事に記すのはバージョン5.2ですが、初めてのVR開発環境はバージョン5.3なので、5.3での動作は確認済みです。

　5.3では対応していない部分[^1]があったため、今回はバージョンを落として一から作成しています。

[^1]:こちらについても時間ができ次第、記事にしたい気持ちでいます。

:::note warn
[後のプラグイン](#pico-developer-center-のインストール)に対応するバージョンは、4.27, 5.2, 5.3 の三つあります。個人的に 5.X を選べば問題ないと思います。
 
5.2 と 5.3にはどちらにもメリット・デメリットがあります。
 
**5.2**
　メリット：対応するプラグインが必然的に多くなる。
　デメリット：VRTemplateがクラッシュする。[以下の対処](https://note.com/doiiob/n/n7fe71578874d)のひと手間がかかる。

**5.3**
　メリット： 対応バージョンで一番最新。最初のうちは困らないので、面倒ならとりあえずこれ。
　デメリット： 今後使いたいプラグインが非対応の可能性がある。
:::
https://note.com/doiiob/n/n7fe71578874d

[](>5.3では上手く動作しなかったプラグインを活用したものを作成したので、以下に記事を参照します。興味があれば覗いていただけると幸いです。)

 # 環境構築
　今回開発に用いるVRヘッドセットのPICO4は、UEに用意されているVRTemplateをそのまま用いるだけでは上手くいきません。原因としては、PICO4がUEのVR開発に用いる、OpenXRに対応していないからだそうです。そのため、PICO4でも動作するように下準備をしていきます。
 
 ### PICO4側の準備
　PICO4でプレビューを行うために、PICO4の開発者モードをONにする必要があります。
 
　PICO4を立ち上げ、**設定 > 一般 > デバイスバージョン > ソフトウェアバージョン** を見つけ、ソフトウェアバージョンの部分を10回クリックしてください。こうすることで開発者モードをONに出来ます。
 
 　開発者、の項目が追加されるので選択し、**USB DebugをON** にしてください。ConfirmをクリックすることでONにできます。
 
 　これで一旦PICO4の準備は終わりです。

:::note
最終的にパッケージ化を行う場合は、[参考文献](https://www.hakobuneworks.com/posts/2023/08/15/)の「パッケージングとインストール」を参照してください。
:::

### UE側の準備
#### プラグインの導入
 　マーケットプレイスの[こちら](https://www.unrealengine.com/marketplace/ja/product/pico-xr-plugin)から、**PICO XR Plugin** をダウンロードします。
  
  　VRTemplateを用いて新規プロジェクトを作成し、Pluginsから**PICO XR Pluginを有効化、OpenXRを無効化**し、再起動しましょう。

#### 入力情報の定義
　VRTemplateのコントローラー入力のみ適宜対応すれば、入力関係は解決します。
 
 　コンテンツブラウザーから **VRTemplate > Input** に移動し、**IMC_◯◯◯**を開き、それぞれの入力に対応したものを選択していってください。対応する入力に関しては、[こちらの公式ドキュメント](https://developer.picoxr.com/document/unreal-openxr/input-mappings/)通りに行ってください。

:::note warn
こちらの公式ドキュメントは、**PICO OpenXR Plugin** の入力マッピングです。今回用いる**PICO XR Plugin**では、コントローラーの名前が**PICO Touch~** で、中には割り当てのないボタンもありますが、基本操作のボタンは存在しているので、とりあえずこのドキュメントで対応できます。
私は**PICO OpenXR Plugin**の場合、コントローラーのボタンの反応がなかったので、**PICO XR Plugin**を用いました。
:::

### UEのLivePreview有効化
　PICO4ではデフォルトのVRプレビューが行えないので、以下の準備が必要です。
#### PICO Developer Center のインストール
　[こちら](https://developer.picoxr.com/resources/#pdc)から**PICO Developer Center**のインストールを行ってください。
 
　インストール後、PICO Developer Centerを立ち上げ、指示通りに勧めていきます。
- ログイン
- Developer（Organization）登録
 
の2つが主に必要な操作となります。

:::note
Organization登録後に表示されるダイアログは無視して構わないです。PICOストアでのアプリ公開時に必要らしい。
:::

　PICO4をケーブルでPCに接続して、PICO Developer CenterでPICO4が認識されていれば準備完了です。

 #### プラグインのインストール
 　[こちら](https://developer.picoxr.com/resources/#sdk)から**PICO Unreal Live Preview Plugin (Experiment)** をダウンロードします。
  
  　Unityが選択されているので、**Unrealを選択**し、該当のプラグインをダウンロードしてください。

　ダウンロードし、ファイルを解凍すると、バージョンごとのプラグインが入っているので、自身のバージョンに合ったプラグインを VRTemplate の Plugins フォルダにコピーしてください。
 
:::note 
zip解凍先を、uprojectファイルの位置するディレクトリにすることで、綺麗な階層関係になります。Pluginsフォルダごと圧縮してくれているようです。
:::

 　作成したVRTemplateを開き、先程プラグインを有効にしたときと同様な手順で、**PICOLivePreviewプラグインを有効**にします。

#### プレビューのためのプロジェクト設定
　あと一歩でVRTemplateをPICO4で動かせます。
 
　**プロジェクト設定 > Platforms > Windows** の **Target RHIs > Default RHI** を **DirectX 11** に変更してください。
 
 　**プロジェクト設定 > Engine > Rendering** の **VR > Instanced Stereo** を **OFF** にしてください。

　ここまで上手く出来ていれば、UEのツールバーにアイコンが色付きの光った状態で表示されるはずです。

# 最後に
　ここまでして、PICO4はようやくmetaQuest達と同じスタートラインに立てます。この過程を挫けずに行えたあなたには、ここから楽しいVR開発が待っています。ぜひ楽しんでください。

> 何か不明点、おかしな点があれば、気軽にご連絡ください。

## 参考文献

https://www.hakobuneworks.com/posts/2023/08/15/

https://www.youtube.com/watch?v=WY4oxjf9-cM

https://www.hakobuneworks.com/posts/2023/08/16/