AI教科書

ChatGPT, Stable Diffusion、Python, Visual Studio、Excelなどいろんな教科書

【Unity】Oculus用VR版のビルドその1 [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ファイルを指定します。すると転送・インストールが実行されます。

 

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

 

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




 

1からOculus用モジュールを追加する場合

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にします。

 

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

 

 

 

アプリの登録

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

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

 

 

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

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