【VTuberのなり方解説#6】UnityでOculus Quest2用アプリケーションを開発する(準備編)【Unity入門】

Unityを使ってVTuberデビューを目指す管理人が、その手順を示していこうと思います。
この記事では、Unityを使ってVRアプリを作るための準備を解説していきます。

【関連記事】VTuberのなり方シリーズまとめはコチラ

VTuberのなり方解説まとめ【Unity】

2021.01.17

目次

  1. Unityでプロジェクトを作成する際の注意点
  2. 準備するもの
  3. Oculus Quest2を開発者モードにする
  4. プロジェクトを作成する
  5. Oculus Quest2用のビルド設定をする
  6. Oculus Integrationを導入する
  7. 直面したエラーと対処

Unityでプロジェクトを作成する際の注意点

Oculus Quest 2はAndoroidで動作しています。
そのため、プロジェクトを作成する際には”Android Build Support”のモジュールが必要です。
上記のモジュールを入れていない方は、Unity Hubからモジュールを追加しましょう。

Unity Hubを開いてインストールタブから「:」をクリック

「モジュールを加える」を選択

“Android Build Support”にチェックを入れて”次へ”

規約①に同意して”次へ”

規約②に同意して”実行”をクリック

後は気長に待ちましょう。
完了したらAndroidマークが入ります。

準備するもの

以下のものが必要です。

  • Unity
  • Oculus Quest 2(以下”Quest2″)
  • USBケーブル(PCとQuest2を接続するケーブル)
  • Oculusアプリ(スマートフォンにインストールしておいてください)

Oculus Quest2を開発者モードにする

OculusアプリからQuest2を開発者モードにします。
自作アプリをテストするために必要な設定です。

Oculusアプリの操作が結構長かったので、別記事にまとめます。

【VTuberのなり方解説#2】Oculus Quest2を開発者モードにする

2021.01.25

プロジェクトを作成する

Quest2本体の準備ができたら、Unityでプロジェクトを作成しましょう。

使用するUnityのバージョンを選択する

Unity Hubを起動して、プロジェクトタブから”新規作成”の右にある”▼”をクリックします。
プロジェクトに使用したいUnityのバージョンを指定しましょう。

プロジェクト内容を設定する

プロジェクト作成画面が表示されるため、内容を入力する。

  • テンプレート:3D
  • プロジェクト名:任意の名称
  • 保存先:任意の保存先

入力したら”作成”をクリックする

ちょっと時間がかかるので待ちましょう。

Unityの初期画面が出てこればOKです!

Oculus Quest2用のビルド設定をする

作ったプログラムをQuest2で実行するための設定をしましょう。
Unityで設定します。

Oculus Quest2とPCをUSBで接続する

読んで字のごとく、Quest2とPCをUSBで接続しておきましょう。
この後の工程で実行するデバイスを選択する項目がありますが、USB接続されているデバイスしか出てきません

Android用のビルド設定をする

Unityのメニューから”ビルド設定”を選択します。

プラットフォームの項目を”Android”に設定します。

各種設定項目を設定します。

  • テクスチャ圧縮:ASTC(容量が軽い圧縮フォーマットらしい)
  • 実行デバイス:Oculus Quest2
  • 開発ビルド:チェック(テストだけの場合)

設定が終わったら”Switch Platform”をクリックしましょう。
(『適用』という意味と捉えてください)

設定が完了すると、プラットフォーム欄のUnityマークがAndroidの横に移動します。
確認出来たら右上の”×”で閉じましょう。

アプリの情報を設定する

アプリの作者名やバージョンなどを設定します。

メニューの”編集”から”プロジェクト設定”を選択します。

“Player”タブを開きます
内容は以下のように設定しましょう。

  • 企業名:任意の開発者名
  • プロダクト名:アプリ実行時にメニューバーに表示させたいアプリ名称
  • バージョン:バージョンを特定する番号(初期なら”0.1″のままでいいと思う)

設定したら”その他の設定”を開きましょう

“その他の設定”を開くと色々な項目が出てきます。
少し下にスクロールして”識別”を設定しましょう。
設定する項目は以下の通りです。

  • 最低APIレベル:Android6.0 ‘Marshmallow'(API level 23)
  • ターゲットAPIレベル:Automatic(highest installed)

“識別”の下に”設定”の箇所があります。
インストール先だけ設定しましょう。

  • インストール先:自動

開いたまま次の設定に移行します。

VRサポートを有効にする

Quest2に対応したVR開発を簡単にするため、VRサポートを有効にしてプラグインを導入しましょう。

Project Settingのウィンドウで”XRプラグイン管理”タブを開き、”XRプラグイン管理をインストール”をクリックします。

PCマークのタブを表示し、”Plug-in Providers”から”Oculus”にチェックを入れます。

次にAndroidマークのタブを表示し、”Plug-in Providers”の”Oculus”にチェックを入れます。

開いたまま次の設定に移行します。

レンダリング設定をする

Project Settingのウィンドウで”Player”タブを開きます。
Androidのタブを開いて”その他の設定”を展開します。

レンダリングの”色空間”を”リニア”に設定することでリアルな表現にできるらしいので、リニアに設定します。

同じ設定をPCタブでも行いましょう。

このまま次の設定に移行します。

品質設定をする

グラフィックの品質設定です。

Project Settingのウィンドウで”品質”タブを開きます。

設定内容は以下のようにしましょう。
(よくわかってないけどマニュアル通りです)

ピクセルライト数:1
テクスチャ品質:フル解像度
異方性テクスチャ:テクスチャごと
アンチエイリアス:4x マルチサンプリング
ソフトパーティクル:チェックなし
リアルタイムリフレクションプローブ:チェック
ビルボードの正面を…:チェック

ここまで設定したらProject Settingsウィンドウでやることは終わりです!
画面右上の”×”で閉じちゃいましょう。

Oculus Integrationを導入する

Oculus Integrationとは…?
まず!“Oculus Integration”ってなんやねん!!!(初心者の叫び)

ってことで調べてみました。。。
ざっくりいうと、Oculus Quest固有の機能をまとめたプラグイン的なやつらしいです。
これを導入することで、VR開発において「Quest2のこの機能を使えるようにしたい」って機能を簡単に開発に導入することができるようになるみたいです。

「ハンドトラッキング使いたいけど、骨格検出から作らないといけなの…?」ってお悩みを解決してくれそう。(希望)
あとは「ボタンを押す」とか「トリガーを引く」とか「Quest2に表示させる視点のカメラを追加」的な…

Quest2用アプリを作成するなら入れておきたいね!!

そんなわけで導入しましょう!

Unityのアセットストアタブを見ると、アセットストアのリンクがあります。
“Search online”ボタンを押して、アセットストアにアクセスしましょう。
(ブラウザが開きます)

検索窓に”Oculus Integration”と入力して検索します。

該当するものが見つかったらクリックして詳細を開きます。

こんな画面が表示されます。
迷うことなく”マイアセットに追加する”をクリックしましょう。

規約を読んで同意したら、アセットに追加されます。
そのまま流れでUnityに追加しましょう~

Unityのパッケージマネージャーウィンドウが表示されるので、右下の”ダウンロード”をクリックします。
ダウンロードが完了すると、このボタンが”インポート”に変わります。
そちらもクリックして、開いているプロジェクトに導入しましょう。

また新たにインポートの画面が出てきました!
これも右下の”インポート”ボタンをクリックします。

管理人の環境ではインポートに20分ほどかかりました。。。

途中アップグレードの確認もあります。
とりあえずアップグレードしておけば間違いないと思います(雑)

Unityの再起動を求められたら再起動しましょう。

インポートが完了すると、プロジェクトウィンドウのAssetsに”Oculus”が追加されます!

終わり!

ここまでで必要な設定は終わりです!
お疲れさまでした!
あとはアプリを作って実行してみましょう~
アプリを作った後の実行方法については、管理人が挑戦次第記事にします!

直面したエラーと対処

後述です。
実際にアプリを作ってビルドをしたときに直面したエラーと対処方法を記載します。

OVRADBTool adb server version (41) doesn’t match this client (40);

よくわからんの出てキタ━━━━(゚∀゚)━━━━!!

原因

“adb.exe”の多重起動

PCがAndroid端末(Quest2)と通信する際には、”adb”(Android Debug Bridge)という通路を通ってデータのやり取りを行うらしいです。
今回のエラーは、その経由地である”adb”が複数できてしまっており、PC側とAndroid端末が使おうとしている道路が異なっていることが原因っぽいです。

対処

起動している”adb.exe”を終了させる

多重起動しているのが問題なら終了させればいい!!
ということで終了させましょう。

Ctrl + Alt + Delete でタスクマネージャーを起動させます。
“プロセス”タブを探してみると、”adb.exe”がいました。

こいつを!右クリックして!
タスクの終了

ビルドして実行したら…

消えました~!!

CommandInvokationFailure: Gradle build failed.

これまたよくわからんエラーキタ━━━━(゚∀゚)━━━━!!

原因

調べた結果、”Gradle”というビルドシステムが対応していないことが原因のようです。
この問題はUnityのバージョンが新しい場合に発生する問題のようです。

対策

解決策としては…

  1. Unityのバージョンを古いものにする
  2. AndroidStudioでビルドする

です。
今回は②の方法を解説します。

AndroidStudio用に出力する

AndroidStudioで扱えるよう、Unityで出力しましょう。

“ファイル” → “ビルド設定”

を開きます。

ビルド設定を開いたら”プロジェクトをエクスポート”にチェックを入れて、”エクスポート”ボタンを押します。

保存先を指定します。
管理人はプロジェクトフォルダ内の”Build”の中に”for_Android_Studio”というフォルダを作って指定しました。

出力が完了したら、AndroidStudioを開きましょう。

AndroidStudioでビルドする

AndroidStudioを開いたら

“File” → “Open”

を選択します。

先ほど出力した”for_Android_Studio”を選択します。
アイコンがアンドロイドのマークになっていますね。

諸々の読み込みが完了したら、画面上部のデバイスの選択が”Oculus Quest2″になっていることを確認して、”▶”(Run)ボタンを押しましょう。

するとビルドが実行されます。
あとはOculus Quest2を被れば、作ったゲームが開始されます!