クリエイターの教科書

ChatGPT, Stable Diffusion, Visual Studio, Excelなど教科書

【Unity】Oculus用VR版のビルド [VRテンプレートから作成する場合]

Meta Quest 2用アプリをUnityで作る場合のメモです。VRテンプレートを使えば、いちいちパッケージのセットアップ等を自前でやらなくても大丈夫です。

UnityでVR開発の下準備

アンドロイド開発環境を整える

UnityではAndroidをビルド可能なモジュールをインストールしておきます。

 

Unity以外にAndorid StudioやJavaSDKをインストールします。

Download Android Studio & App Tools - Android Developers

 

JDK8のインストールについては下記を参考にしました。

ダウンロード後、環境変数へのパスを設定したりしておきます。

JDK8インストール手順<Windows向け> - IT入門書籍 スッキリシリーズ (sukkiri.jp)

 

 

Meta Quest 2で開発者モードにする

開発者モードにすることで設定変更や、アプリ開発のテストなどができます。

 

さきにMetaデベロッパーへ登録しておきます。個人でも大丈夫です。ただしクレジットカードとSMS(携帯電話)登録が必須です。

https://dashboard.oculus.com/organization/create/

 

続いてスマホアプリの設定をします。マイページで「デバイス」を選択。

 

続いて「ヘッドセットの設定」。

 

これで「開発者モード」の項目へ。

 

後はオンにするだけ。

 

オキュラスリンク

OculusのPCアプリを入れ、オキュラスリンクでPCとクエスト2がつながるようにしておきます。

Setup Your Quest: Quest, Quest 2, Link, Rift S & Rift | Meta Quest

 

PCとはUSBケーブルでつなぎますが、(あれば)USB3でつなぎましょう。

 

 

UnityのVRテンプレートで開発

VRテンプレート

VR用テンプレートからプロジェクトを作ります。

 

これで、XRプラグインが入った状態でプロジェクトが作られます。

 

プロジェクト設定

編集>プロジェクト設定のPCタブでOculusに。

 

アンドロイドタブもOculusに。

 

 

再生

オキュラスリンクでPCとメタクエ2がつながっていることを確認します。

 

具体的にはメタクエ2でオキュラスリフトのメニューが映し出されればOK。そうでなければオキュラスリンクがオンかどうかもチェック。

 

Unity上で「SampleScene」を選んで実行すると、メタクエ2のほうにもシーンが映し出されます。ヘッドセットの動きでカメラも動くのが確認できるはずです。

 

 

ビルド

プログラムをビルドします。

 

ビルド設定で「アンドロイド」にします。圧縮を「ASTC」にしておきます。

これで「Switch Platform」を実行。

 

アンドロイド版のビルドで「プレイヤー設定」も変更しておきましょう。

 

まず企業名・製品名を登録。パッケージ名が「com.aaa.aaa」となるようにしておいたほうがいいみたいです。

最低APIレベルは6.0Marshro以上に。

 

レンダリングはリニア、自動グラフィックスAPIはオフ。

 

プロジェクト設定>品質では

  • ピクセルライトカウント:1
  • アンチエイリアス:4x
  • テクスチャー品質:フル解像度
  • 異方性テクスチャー:テクスチャーごと
  • ソフトパーティクル:オフ
  • ビルボードの正面を:オン

...など。

 

終わったら「ビルドして実行」を行います。APKファイルが無事できればOKです。

 

ビルド時に「Gradle」がらみのエラーが出た場合は以下参照ください。 

【Unity】Gradleとは?Oulus用ビルドで「Gradle build failed」の場合は? - Windows11の教科書

 

 

Oculus上でAPKを再生

Oculus Quest2用アプリは、最終的に作った「APK」をOculus上で展開・インストールしてから起動させます。

 

APKを転送するにはSideQuestを使うと便利です。

 

SideQuestからAdvanced Installerを入手。

SideQuest (sidequestvr.com)

 

起動・ログイン後、まずはOculusQuest2と接続・認識させます。

終わったらダウンロードアイコンを押すと「APK」が選択できるのでビルドしたAPKファイルを指定します。すると転送・インストールが実行されます。

 

ゲーム一覧では「提供元不明」のところに表示されるので起動。

 

問題なければこれで起動するはずです。




 

Oculusのアセットをインポート

Oculus Integration をインポート。

Oculus Integration | Integration | Unity Asset Store

 

Use Open XR、Show Assets、Clear、

 

Upgrade、Restart..とすすみます。

 

 

またはSDK入手。

https://developer.oculus.com/downloads/package/unity-integration/

 

 

プロジェクト設定で「XRプラグイン管理」からインストールを実行。

「Oculus」をチェックします。

 

ビルド設定をAndoroidにします。

 

これでビルドを実行します。

 

 

ビルドエラー?

Gradle build failed. 

Gradleとは、ビルドの補助ツールみたいです。

Android の Gradle - Unity マニュアル (unity3d.com)

 

以下のようなエラーです。

CommandInvokationFailure: Gradle build failed. 
C:\Program Files\Unity\Hub\Editor\2021.3.16f1\Editor\Data\PlaybackEngines\AndroidPlayer\OpenJDK\bin\java.exe -classpath "C:\Program Files\Unity\Hub\Editor\2021.3.16f1\Editor\Data\PlaybackEngines\AndroidPlayer\Tools\gradle\lib\gradle-launcher-6.1.1.jar" org.gradle.launcher.GradleMain "-Dorg.gradle.jvmargs=-Xmx4096m" "assembleRelease"

 

 

Oulus用ビルドで「Gradle build failed」の場合は?

対策は以下。Gradleにはいろんな原因があるので試行錯誤が必要そうです。

 

プレイヤー設定でAPIレベルを変更

する。

 

 

Gradle最新版にする

Gradle最新版を入手。

 

UnityのLibを置き換える。

Gradle | Releases

 

またはダウンロードしたGradleのフォルダを「環境設定>外部ツール」で指定しなおす。

 

 

Gradleのバージョン指定を変更する

プロジェクト設定>プレイヤー>公開設定>カスタムのGradele基本テンプレートをチェック。指定のAssetの場所にあるGradleのバージョンを変更して試す。

【Unity】Admob導入後Androidビルドエラーが発生した際の対処法 - ゲーム作るためのこと学ぶdevろぐ(’ー’)/チャラン (snoopopo.com)

 

Gradleのバージョンの互換性

Unity - Manual: Gradle for Android (unity3d.com)

 

 

JDKを最新にする

JDKのバージョンを最新版にしておく。

Java Downloads | Oracle

 

 

ディレクトリ名

ディレクトリ名にスペースがあれば、除去しておく。

Can't build to android! (CommandInvokationFailure: Gradle build failed) - Unity Forum

 

 

ビルド先のパスで日本語はいれない

ビルドできない(VR) (teratail.com)

 

保存ファイル名でも日本語は入れない。

Unityでのビルドエラーについて (teratail.com)

 

キャッシュ

Gradleのキャッシュを消す。

C:\Users\XXX\gradle\caches

Gradle build failed | Page 3 - Unity Forum

 

 

KEYを削除

続けてキーの読み込みに失敗とメッセージが出た場合。

Failed to read key AndroidDebugKey from store "C:\Users\keepg\.android\debug.keystore": Invalid keystore format

 

Unityを一度終了し、該当するキーファイルを削除。

その後のビルドでAPKが作成。

 

うちではこれでやっとAPKができました。ただいろいろ設定を変更したのでこれのせいだけかは不明。

 

 

Adsのパッケージ

パッケージマネージャにUnity Adsがあれば削除しておく

c# - Unity - CommandInvokationFailure: Gradle build failed - Stack Overflow

 

 

MONOでビルド

Oculus用の場合、一度PC向けをMONOでビルド。

 

その後アンドロイドへスイッチしてビルド。

How to remove android.enableR8' from the project - Unity Answers

 

 

アンドロイドスタジオのほうを使用する

ビルドではなくエクスポートを使って、アンドロイドスタジオのほうでビルドするという方法があります。

一応この方法でもうちでは対応できました。

 

Unityではビルドではなくエクスポート。

 

アンドロイドスタジオからエクスポートしたフォルダをオープン。

その際アンドロイドスタジオのSDKを使う。

 

ロードが終わるまでしばし待ちます。

次にGradel.properiesというファイルで、「Enable88」の行を削除。

 

後はAPKをビルドします。

 

右下でBuildがRunningになるのでしばし待ちます。

 

左下でBuild ... successfully for 1 module.となれば終了。

 

APKですが、「...launcher\build\outputs\apk\debug\launcher-debug.apk」あたりにできている?

 

c# - Unity - CommandInvokationFailure: Gradle build failed - Stack Overflow

 

 

 

 

アプリの登録

アプリの配布を行うサイトへ登録しましょう。

itch.io

インディゲーム公開の大手の1つ。

SideQuestとリンク付けもできるのでこちらへアップするという手もあります。 

 

サイトへログイン後、マイページ>Account Settingsで日本語に変更可能。

 

以下より規約に同意。

Start Selling - アカウント設定 - itch.io

 

続いて支払い設定。

とりあえず「Collect by itch.io paid later」なら支払いはItch.io経由で済みます。

この後念のためメール認証が入ります。

 

メニューから「新作をアップロード」を実行。

ゲーム名、を入力していきます。

・カバー画像:最小: 315x250, 推奨: 630x500

・スクリーンショット:3-5枚

 

「公開」を選択して保存すれば、すぐにページが公開されファイルが入手可能となります。

Cube Clock VR by EffectTaro (itch.io)

 

 

SideQuest

SideQuesetはOculus用アプリの配布に便利なサイトです。

SideQuesetへログイン後、マイページのThings I Created>My Appsへ移動

 

「Create an app」から申請画面へ進みます。

 

タイトル、パッケージ名、サマリ(概要)をいれます。

SideQuest (sidequestvr.com)

 

続けて「リスティング情報」「メディア(アイコン、バナー、プレイ動画など」などを登録してきます。

 

ListingInfoでは説明文やバージョン情報、さらにAPKファイルををアップします。

 

Artworkでは、アイコンや背景画像、プレイ動画など。

 

IntegrationではOculusストアへのリンクなど。

 

Mangeではアプリの削除など。

 

登録にあたっては、スクリーンショットやプレイ動画を先に準備しておきましょう。

 

終わったら申請します。

必要なものがないとエラーが出るので適宜修正・追加。

・サマリーは60字以上

・バナー画像(2048×512)

・スクショ(16/9 1280×1028)

・サムネイル(640×480)



登録完了後1週間程度でメール通知があります。実際には2,3日ぐらいでレスポンスが来ました。

 

 

Oculus Store

オキュラスストアでは審査を通過していないアプリでも公開可能となっています(ただ検索でひっかかりにくいなどマイナス点もあります)。

 

必要なもの

・ロゴ(1440x1440)
・アイコン(512x512)

・カバーアート横型(2560x1440)
・カバーアート正方形(1440x1440)
・カバーアート縦型(1008x1440)
・カバーアートミニ横型(1008x360)
・ヒーローカバー(3000x900)
・スクリーンショット画像5点(2560x1440)

・プレイ動画URL

【Oculus Quest】AppLabでコンテンツをリリースする手順 - Qiita

 

 

 

本ブログのUnity関連記事一覧はこちら。

 www.kyoukasho.net

 

 

このブログは、ネットや書籍上の情報、個人の体験や感想を中心にまとめたものです。 正確性を期していはいますが、間違い・誤訳等あるかもしれません。 当サイトの情報によって生じたいかなる損失について一切の責任を負わないものとします. あらかじめご了承ください。

プライバシーポリシー |〇利用規約 |〇問い合わせ