この記事を手にとっていただき、ありがとうございます。
なんちゃってエンジニア・Mojatto でございます。
概要
このエントリについて
このエントリは、Unreal Engine を用いて VIVE XR Elite 向けにアプリケーション開発を行うための手順や注意点に関する内容をメモ書き的にまとめているものです。
内容については、随時更新していく予定となっております。一個人が記録しているものであるため、誤り等が頻出する可能性があります。お気づきの点がございましたら、本記事のコメントやSNSアカウントのメッセージなどで、お知らせ頂けますと幸いです。
このエントリによって可能となること
- Unreal Engine を用いて VIVE XR Elite 向けにアプリ開発を始められる状態に環境構築ができる
- 配布されているサンプルプロジェクトをVIVE XR Elite実機にビルドして動作確認できる
簡単なサンプルレベルを作って実機で動作テストするまで通しで実践できる(試行中)
検証環境
項目名 | 内容 |
---|---|
使用PC | 個人所有の Windows 11 PC |
UnrealEngine ソフトウェアバージョン | Unreal Engine 5.1 |
IDE (使用エディター) | Microsoft Visual Studio Code 1.78.2 |
前提条件
- Unreal Engine 5をインストール済みであること
- Unreal Engine で Android 向けのアプリケーション開発が行える状態であること
※ Android 向けのアプリケーション開発については、公式ドキュメントが参考になります。まだ設定等が終わっていない場合は、以下のページを参照してみてください。
https://docs.unrealengine.com/5.1/ja/setting-up-unreal-engine-projects-for-android-development/
https://docs.unrealengine.com/5.1/ja/how-to-set-up-android-sdk-and-ndk-for-your-unreal-engine-development-environment/
補足 : VIVE Wave SDK の Unreal Engine 対応バージョンについて
2023年9月10日現在、後述する VIVE XR Elite 用 SDK が対応している Unreal Engine バージョンは、以下の通りとなっている。
- Unreal Engine 4.27
- Unreal Engine 5.0
- Unreal Engine 5.1
手法説明 (サンプルプロジェクトを使う場合)
VIVE XR Elite 用 SDK 「VIVE Wave SDK」をダウンロードする
HTC VIVE ブランドの開発者向けWebサイト「Vive Developers」より、最新バージョンのSDKを取得する。
使用したい Unreal Engine のバージョンに合ったリンクをクリックすると、SDKのデータが格納された Zip ファイルがダウンロードされる。任意の場所に Zip ファイルを展開すると、以下のような階層が出来上がる。
wave_VERSION_UE_UEVERSION.zip
└ plugin
└ Binaries
└ (以下、省略)
└ Config
└ (以下、省略)
└ Content
└ (以下、省略)
└ Plugins
└ WaveVR (Unreal Engine 向けの WaveSDK データ群)
└ (以下、省略)
└ Source
└ (以下、省略)
└ .editorconfig
└ .gitignore
└ plugin.uproject (サンプルプロジェクトのプロジェクトファイル)
└ LICENSE
Zip ファイルを展開した中にある、プロジェクトファイル plugin.uproject
をダブルクリックすると、Unreal エディタが立ち上がる。
Unreal プロジェクトの設定を確認する
中身を作っていく前に、いくつかプロジェクトの初期設定を行っておく必要がある。
サンプルプロジェクトでは大半の設定が済んでいるが、念のため一通りの項目を確認しておくことをおすすめする。
VRアプリとして実行されるように設定する
プロジェクト設定ウィンドウを開き、「プロジェクト」>「説明」の順に項目を確認し、「VRで開始」項目のチェックボックスにチェックを入れる。
Android SDK、NDK、Java SDK へのパスを指定する
「プラットフォーム」>「Android SDK」>「SDKConfig」の順に項目を確認し、Android SDK、Android NDK、Java SDK へのパスを指定する。各フィールドの右側にある「…」ボタンをクリックすることで、フォルダ選択ウィンドウが表示される。
Android NDK と JDK については、当方の環境では Unreal Engine 公式ドキュメントに掲載されている推奨バージョンでは、サンプルプロジェクトの実機ビルドが行えなかった。Wave SDK のアップデートに伴う現象と考えられるが、以下のバージョンで実機ビルドが行えることが確認できたので、参考情報として掲載する。
- Android NDK Version : 25.2.1.8937393 (r25b)
- JDK Version : 1.8.0_202
SDK API Level と NDK API Level は、以下のように指定する。
- SDK API Level : latest
- NDK API Level : android-29
※ ここで設定するSDKのパスは、Android向けアプリケーション開発の設定が完了していれば空欄でも良い (OSの環境変数で指定されているパスが採用される) ようですが、プロジェクトの事情で個別にバージョンを指定する場合など、空欄の状態でアプリケーションのビルドがうまく行かない場合は、個別にパスを指定してください。
Android SDK バージョンを指定する 開発するアプリが必要とする、最低SDKバージョンとターゲットSDKバージョンを指定する。公式のドキュメントに推奨値が記されているが、現時点での最新バージョンSDKでは、以下のように指定するのが良さそう。
- Minimium SDK Version : 25
- Target SDK Version : 29
サポートするグラフィックAPIを指定する 開発するアプリがサポートするグラフィックAPIを指定する。公式のドキュメントでは、「OpenGL ES3.1」のみを有効にすることが推奨されている。
起動時画像の表示を無効化する アプリを起動したときのイメージ画像の表示機能を無効化する。「Show launch image」のチェックボックスからチェックを外す。
MSAA サンプリングカウントを0 (無効) に設定する 「プロジェクト」>「Rendering」>「Default Settings」>「MSAAサンプルカウント」の順に項目を確認し、「No MSAA」に変更する。/
実機ビルドで最初に表示するマップを設定する
プロジェクト設定ウィンドウから、「プロジェクト」>「マップ&モード」>「デフォルトのゲームモード」の順に項目を確認し、項目の右側にあるドロップダウンメニューから pluginGameModeBase
クラスを選択する。これが、サンプルプロジェクト内で使用される、アプリケーション全体を統括するデフォルトの GameModeBaseBP クラスとなる。 (この項目の設定は、必須ではないかもしれない・・・)
次に、「ゲームのデフォルトマップ」の項目を確認し、項目の右側にあるドロップダウンメニューから「VRTestApp」というマップ (Unity でいう Scene) を選ぶ。このマップが、Wave SDK で利用できる様々な機能を試すためのサンプルマップへの橋渡しをしてくれる初期マップとなる。
サンプルプロジェクトに含まれる各種機能のテスト用マップは、下記ページにリストが掲載されている。当方の環境では空間認識機能のマップ (ScenePerceptionTest.umap
) しかテストできていないため、他の機能も確認出来次第、このエントリに追記する。
※後で気づいたが、下記ページのリストは情報が少々古いようだ・・・
VIVE XR Elite にサンプルプロジェクトをビルド・デプロイする
Unreal エディタの上部にある「プラットフォーム」ボタンを押し、「クイック起動」「VIVE XR Elite」>「VIVE XR Elite」の順に選択する。
すると、Unreal エディタ右下に通知バナーのようなものが現れ、ビルド・デプロイ処理が行われる。(このときアウトプットログを確認すると、ものすごい速度でログが流れ始める)
しばらく待ち、エラーメッセージなくビルドが完了し、実機上でアプリが起動したら、ビルド・デプロイ成功となる。
初期マップの操作方法
サンプルプロジェクトを実機で起動すると、画像のようなマップから開始される。
中央にある縦長い GUI には、サンプルプロジェクトに含まれるサンプルマップが表示されており、コントローラから出ているレーザーポインターでリストの項目を指し示し、トリガーを引くことで選択する。選択すると、対応するテストマップにマップ遷移が行われる。
手法説明 (自作プロジェクトにSDKを実装する場合)
VIVE XR Elite 用 SDK 「VIVE Wave SDK」をダウンロードする
作業内容は、Wave SDK を取得して任意の場所に展開するところまで、「サンプルプロジェクトを使用する場合」と同様。
Unreal プロジェクトを作成する
※ 作成済みプロジェクトに Wave SDK を追加する場合は、この手順をスキップしてください。
Wave SDK を導入する Unreal プロジェクトを新規に作成する。
プロジェクトの新規作成時に選択できるテンプレートは、任意のものを選択してもよい。
個人的には、余分なアセットが含まれない「Blank」を選ぶのがおすすめ。
※ Unreal Engine には VR 向けの機能を最低限実装したプロジェクトテンプレート「バーチャルリアリティ」が用意されているが、これは OpenXR 規格向けにアプリケーション開発を行う前提で機能実装が行われている。本エントリで取り扱う Wave SDK を使用してアプリケーション開発を行う場合には OpenXR に関わるプラグインを無効化しなければならないため、テンプレートを使用する場合は Wave SDK に合わせる形で改造が必要になるため、今のところおすすめしづらい。 (Unreal Engine で VR 向けにアプリケーション開発を行うにおいては大変参考にはなる)
Unreal プロジェクトに Wave SDK を導入する
新規に作成した Unreal プロジェクトのフォルダをエクスプローラーで開き、プロジェクトの直下ディレクトリ (「Content」フォルダや「*.uproject」ファイルが配置されているディレクトリ) に、「Plugins」という名前のフォルダを作成する。ここに、展開して出てきた Wave SDK のフォルダにある plugin > Plugins > WaveVR
フォルダを、自作プロジェクト側に作成した「Plugins」フォルダ配下にコピーする。
既に新規作成したプロジェクトを開いている場合は一度閉じ、再度プロジェクトを開き直した上で、Rnreal エディタのメニューバーから「編集」>「プラグイン」の順に選択し、プラグインウィンドウを表示させる。
正しくSDKが読み込まれていれば、プラグインウィンドウの左側にある「全てのプラグイン」リストに「Virtual Reality」という項目が現れ、この項目を選択すると、プラグインウィンドウ右側の領域に、下記画像のように Wave SDK が表示される。項目左側のチェックボックスにチェックを入れ、再度プロジェクトを開き直す。
プロジェクトを開き直した後、Unreal エディタのメニューバーに「WaveVR」と表示されていれば、Wave SDK の導入は成功。
Unreal プロジェクトの初期設定を行う
作業内容は、「サンプルプロジェクトを使用する場合」の「Unreal プロジェクトの設定を確認する」と同様に行う。
HMD・コントローラの動作を扱えるようにする
(検証中)
補足
(随時追記予定)
参照情報・参考文献
(随時追記予定)
コメント