はじめに
こんにちは。
先日、Unity6とARFoundationでスマホ(とりあえずはiOS)用のアプリを作ろうとした際に、カメラ出力が真っ黄色になってしまう症状が発生しました。これについて解決法を見つけたのでここでご紹介します。同じような症状でお困りの方の参考になると幸いです。
ちなみに、本記事は私の初投稿記事になります。読みやすさなど至らない点があるかと思いますがどうかご容赦ください。
動作環境
- Unity 6000.0.29f1(Apple Silicon)
- AR Foundation 6.0.3
- Apple ARKit XR Plugin 6.0.3
- OpenXR Plugin 1.13.2(UnityEditor上での動作確認用)
お急ぎの方へ/概略
この問題を解決していきます。
「入門とか大丈夫。問題の解決方法のみ知りたい!」という方は一面黄色の解決法までどうぞ。
導入
ついでなのでUnity6におけるAR Foundationの入門からやっていこうと思います。
iOS用のセットアップをご紹介しますので、Android用のセットアップを確認したい方は他の記事を見に行っていただけるとやりやすいかと思います。
Unityプロジェクトの作成
Unity6をインストールしていない場合はUnity Hubからインストールしてください。
プロジェクトをUniversal 3Dで作成してください。

プロジェクトを作成したら以下のような画面になりますが、URPのテンプレートは今回使わないのでRemove Readme Assetsで消してしまってください。

パッケージのインストール
メニューバーからWindow > Package Managerを開きます。

パッケージマネージャーを開いたら、左側のサイドバーからUnity Registry > Featuresの「AR」を選択し、Packages Includedから必要なパッケージを個別でインストールしてください。
ARパッケージ全体でインストールしないでください。
記事執筆時点(2024/12/02)でMagic Leapプラグインを導入するとエラーが発生してプロジェクトが動かなくなります。ARパッケージを全体でインストールするとMagic Leapもインストールされてしまうので、Packages Includedから必要なARパッケージを個別でインストールしてください。
今回は動作環境にもあるように
- AR Foundation
- Apple ARKit XR Plugin
- OpenXR Plugin
の3つをインストールしますが、必要に応じて他パッケージもインストールしましょう。
ビルド設定
メニューバーからFile > Build Profilesを開きます。iOSを選択しSwitch Platformを押してビルド対象を変更します。ビルド対象を変更したら、Player Settingsを押してください。

開いたら下にスクロールして、Requires ARKit supportにチェックを入れてください。
またUnity6ではBundle Identifierの初期値が(おそらく)すべて同じでXCodeでエラーを吐くので、Override Default Bundle Indentifierのチェックを一度外してまた付けて、Bundle Identifierを固有の値に変更してください。
Bundle Identifierは全世界で重複できません。そのためプロジェクトで固有の値を設定する必要があります。UnityにおけるBundle Identifierの設定方法は他にもありますがここでは詳しくは触れません。
次に、XR Plug-in Managementに進んでください。

以下の画像の通りにチェックを入れてください。「XR Simulation」はエディター上での実行に必要です。


以上でビルド設定は終了です。
シーン設定
ここからARのためのシーンを作っていきます。難しそうに思えますがめちゃくちゃ簡単です。
まず最初にシーンからMain Cameraとlobal Volumeを削除します。

次に、ヒエラルキー上で右クリックをして、XRからAR SessionとXR Origin(Mobile AR)を追加してください。

実はこれだけで、ARを実行する準備は整ったのです!
では試しにエディター上で実行してみましょう!
OpenXRの導入とビルド設定で行ったXR SimulationへのチェックのおかげでPC上でも擬似的に実行できます。
実行...あれ?!
...出ました。今回の記事のトピック、「一面真っ黄色」です。実機でもこうなります。こいつのせいで私は多くの時間を消費したのです。
一面黄色の解決法
まず、「URP」という名前で(他の名前でもいいですがRender関係であることがわかるように)フォルダを作成してください。

続いて、作成したフォルダ内で右クリックをしURP Asset(with Universal Renderer)を作成してください。

2つファイルが作成されますが、そのうち「<指定した名前>_Renderer(Universal Renderer Data)」にインスペクターのAdd Renderer FeatureからAR Background Renderer Featureを追加してください。

URPの設定が終わったら、メニューバーからEdit > Project Settingsを開きます。
Graphicsを開き、Default Render Pipelineを先ほど作成したものに変更します(枠一番右の二重丸をクリックすると選択できます)。

先ほどと同様に、Render Pipeline Assetを変更します。

これで完了です!
もう一度実行!
黄色が消えました!
実機でのテストは省略しますが、正常に動作します。
まとめ
以上、カメラ出力が黄色になってしまうときの対処法でした。ドキュメントとサンプルプロジェクトと私の環境とでにらめっこしながら頑張りました(^^)
この方法は参考にしたAR Foundationのドキュメントでは必要に応じてする操作とされているのですが、私の環境では必須でした。なので他の方の環境ではわかりませんが、もはやチュートリアルの一環と言ってもいいのではないでしょうか。
皆さんのお役に立てたら幸いです。
それでは、良きAR開発ライフを!
参考




