PaperSloth’s diary

主にゲーム開発関連についての記事を書きます。

UE4 Oculus Go, Questの開発について

概要

UE4のOculusGoとOculus Quest向けのTemplateをgithubに公開しています。

- Oculus Go(UE4.19 - UE4.22)
GitHub - PaperSloth/UE4OculusGoTemplate: OculusGo Teloport Example


- Oculus Quest(UE4.22)
GitHub - PaperSloth/UE4OculusQuestTemplate: Oculus Quest VR Template

GoとQuestは基本的に設定が同じなので、Goのセットアップをした人はすんなりと開発を始めることができます。
今回は上記TemplateをDownloadした前提で進めます。

Oculus Go/Quest向けのセットアップ

1. Oculus Go/Questを開発者モードにする
スマホのOculusのアプリを開いて
設定 -> HMDを選択 -> その他の設定 -> 開発者モード から変更が可能です。

開発者モードの有効化は調べてすぐに出てくるため、もし分からなければ別途検索をしてください。

2. CodeWorks for Android のインストール
Engine/Extras/AndroidWorks/Win64/
CodeWorksforAndroid-1R7u1-windows.exe を起動して手順に沿ってインストールを行ってください。

詳細については公式のAndroidのドキュメントに記載があります。
ドキュメントではCodeWorksforAndroid-1R6u1-windows.exe ですが
使用したいエンジンバージョンのものであれば基本的に問題はありません。
Unreal Engine | 1. Android 向けゲーム開発に必要な設定

必須のSDKとしてはAndroid 4.4.2(API 19)は必須です。
Oculus Go/QuestのどちらもAPI 19を利用します。
f:id:PaperSloth:20190617221815p:plain

Project側の設定を変更する

DownloadしたTemplateを起動し、Project Settingsを開きます。

- Platfoms -> Androidから
APK Packaging -> Configure Nowを押下
f:id:PaperSloth:20190617223242p:plain

Google Play Services -> Configure Nowを押下
f:id:PaperSloth:20190617223426p:plain

どちらも「Platform files are writeable」になっていることを確認
f:id:PaperSloth:20190617223524p:plain

SDKの各種pathを通す
f:id:PaperSloth:20190617223812p:plain

- android-sdk-windows
- android-ndk-r14b
- apache-ant-1.8.2
- jdk 1.8.0_77
上記4つへのpathが通っていることを確認してください。

Templateでの設定は以上になります。
新規にプロジェクトを作った場合は他にも設定が必要です。
GoもQuestもGear VRのドキュメントが一番参考になります。
Samsung Gear VR UE 4 のクイックスタート | Unreal Engine ドキュメント

HMDと接続して動かしてみる

Oculus Go/QuestとPCをUSBで接続します。

Androidの設定が無事にできていれば、LaunchからQuestが選択できます。
Oculus Goの場合はPacificという名前です。
f:id:PaperSloth:20190617225019p:plain

Launchし、エラーがなければ一先ず動かして開発を行うことができます。
ようこそ!UE4でのVR開発の世界へ!

HMDをUSB接続せずにadbを用いてリモートで開発する

adbのセットアップが完了している人は下記で行なえます。
> adb shell ip addr show wlan0
でip addressを確認して
> adb tcpip 5555
USBを抜く
> adb connect (ip address):5555
> adb devices
で接続を確認できればUSBで接続をしていなくてもLaunchで実行できます。


では順に見ていきましょう。
まずはadb(Android Debug Bridge)への環境変数を設定する

adb(Android Debug Bridge)へのpathは
\NVPACK\android-sdk-windows\platform-tools になります。
Android SDKをインストールする際にNVIDIA CodeWorks for Android 1R7 Component Managerをインストールしたpathです。

環境変数のPathにこの\NVPACK\android-sdk-windows\platform-toolsへのpathを追加します。
コントロールパネル -> システムとセキュリティ -> システム ->
システムの詳細設定 -> システムのプロパティ -> 環境変数 から編集を行います。

Pathにplatform-toolsへのpathを追加して、PCを再起動します。
f:id:PaperSloth:20190617230349p:plain


再起動をしたあとは
adbへのpathが通っているかを確認します。

Win + Rでcmdと入力するかWindowsメニューからコマンドプロンプトを起動します。
adbと入力して、pathが通っているかを確認します。
> adb
Pathが通っていれば
Android Debug Bridge Version 1.0.xx とadbの使い方のヘルプが表示されます。
f:id:PaperSloth:20190617231651p:plain


HMDとPCをUSBで接続済のことを確認した上で
コマンドプロンプトから下記を入力します。
> adb shell ip addr show wlan0
inet 192.168.xxx.xxx が表示されます。
これがHMD側のIP Addressになります。
f:id:PaperSloth:20190617231354p:plain


次に任意のポートでTCP/IP 接続を行えるようにします。
今回は無難に5555のポートを使用します。
設定できるポートは5555 - 5585だった気がします。
> adb tcpip 5555
TCP/IP接続のリッスン状態にしても特に何もログが出ません。
ここでHMDとPCを繋いでいるUSBを抜きます。


続いて先程取得したIP AddressをもとにHMDに接続を試みます。
> adb connect (IP Address):5555
connected to (IP Address):5555 と表示されれば接続成功です。

念のために再度確認をしておきます。
> adb devices
List of devices attached
(IP Address):5555 device

adb devicesで接続中のデバイス一覧を表示し、接続が行えているかを確認します。
f:id:PaperSloth:20190617232624p:plain


再びUE4 Editorに戻ってUSBを繋いでいない状態でもLaunchできることを確認しましょう。
Launch DeviceがQuest(IP Address):5555 になっていれば成功です。
f:id:PaperSloth:20190617233154p:plain



以上でUSB接続しなくてもVR開発が行えるようになりますね!
とっても快適です。
f:id:PaperSloth:20190617233656j:plain

なお、再度USB接続を行った場合はリモートセッションが解除されてしまうため
再度上記の手順でリモートで開発が行えるようにする必要があります。