パソナについて
記事検索

Unity 6000系のARテンプレートで始めるAndroid ARアプリ開発

はじめに
Unityがメジャーバージョンを6000系に切り替えてしばらくが経ちました⌛
Unity6000系へのアップデートを機に、改めてARアプリ開発を試してみようと思ったところ、開発手順に従来とは異なる点があるように感じました。特にARCore拡張機能導入部分などが、公式ドキュメントから追いづらくなった印象です...🫠
本記事では、Unity 6000 x ARFoundation 6 を用いて、セットアップから拡張機能の利用、そしてAndroid実機での動作確認までの流れを、画像を交えながら整理できればと考えています!

Unity 6000系のARテンプレートで始めるAndroid ARアプリ開発

はじめに
Unityがメジャーバージョンを6000系に切り替えてしばらくが経ちました⌛
Unity6000系へのアップデートを機に、改めてARアプリ開発を試してみようと思ったところ、開発手順に従来とは異なる点があるように感じました。特にARCore拡張機能導入部分などが、公式ドキュメントから追いづらくなった印象です...🫠
本記事では、Unity 6000 x ARFoundation 6 を用いて、セットアップから拡張機能の利用、そしてAndroid実機での動作確認までの流れを、画像を交えながら整理できればと考えています!

知識・情報

2025/10/17 UP

環境

利用した環境になります。
なお、UnityのAndroid向け開発環境一式はインストール済みです。

項目 内容
開発PC Windows 11
Unity Hub 3.13.1
Unity Unity 6000.0.31f1
ARFoundation 6 (テンプレート同梱)
ARCore Extensions arf6
実行デバイス Sony Xperia 1 III Android OS 13

開発プロセス

このセクションでは、プロジェクトの新規作成からARCore拡張機能の導入、実機での動作確認までの流れを順に解説します。

プロジェクト作成

Unityのプロジェクト作成時にはAR用テンプレートが選択でき、これを利用することでバージョンに対応したAR拡張ライブラリや推奨設定が自動で適用されます。

1.Unity Hub > New Project を選択します。

image

2.TemplateよりAR Mobileを選択し、『Create new project』または『Create new local project』よりプロジェクト名を指定しプロジェクトを作成します。

image

プロジェクト起動直後のシーンについて

ARMobileテンプレートを利用することで、ARFoundation 6系統がインポート済みでプロジェクトが立ち上がります。アクティブになっているSampleSceneには、既に平面検出を行いタップ動作でオブジェクトを生成する処理が含まれています。

image

またUnityEditorでの簡易デバッグも既に利用できるため、Playボタンクリックでサンプルシーンが動作する状態です。ここで、EditorPlayモードでは次の操作で移動が可能でした。右クリック:視点回転、右クリック+WASD:平面移動、右クリック+QE:上下移動

image

また、ARCoreの基本機能も導入済みなので、Switch PlatformでAndroidを選択してターゲットを変更したのち、デバッグ接続したAndroid端末に向けてBuild & Runで実機でもAR機能が動作します。

ARCore Extensionsの導入

ARTemplateを導入するだけで、基本的なAR機能に関してはアウト・オブ・ボックスで動作しますが、ARCore特有の拡張機能を利用したい場合には、追加インポートが必要となります。また、Extension用のGameObjectをシーンに配置する必要がありました。

パッケージインポート

GoogleのAR Foundation 向け ARCore Extensions のスタートガイドを確認すると、拡張機能のインポート方法が記載されています。

こちらの記事ではhttps://github.com/google-ar/arcore-unity-extensions.git#arf5を取り込むよう記載がありますが、現在利用しているARFoundationのバージョンは6です...。

ただ、記載されているGitHubを確認するとarf6も存在しているため、こちらを利用できます。

image

拡張機能のインポート後に、Gradle Templateが存在しないとエラーが発生するため、事前にProject Settings > Playerより、Custom Main Gradle Templateを有効にしておきます。

image

その後、PackageManagerより、https://github.com/google-ar/arcore-unity-extensions.git#arf6を利用してパッケージをインポートします。

image

インポート後、UnityのProjectウィンドウのPackages以下に拡張機能が入れ込まれていればインポートが成功しています。スクリプト上では、using Google.XR.ARCoreExtensions;が宣言できるようになっています。

image

GameObject追加

拡張機能をインポートするだけではシーン上から拡張機能を利用することができません。拡張機能を有効化するために新しくARCore Extensionsを追加し、各種参照を追加します。

image

参照はAR Core Extensionsを選択し、検索ボタンからシーン内のオブジェクトを順次追加していけばOKです。

image

機能の追加

これで拡張機能が利用できるようになりました。例えばセッションの録画・再生機能であれば、Android をターゲットとする AR Foundation で AR セッションを録画して再生するのコードをほぼそのまま追加すれば動作するようになるかと思います。

ただし、AR Core ExtensionsはUnityEditor上では動作しませんので、Android実機以外ではGameObjectを非アクティブにしておくような操作が必要となります。

その他:入力システム

AR部分以外に、入力システムもテンプレートでは新しいものになっていて混乱したため、新しい入力システムの利用についても整理しました。

AR Templateでプロジェクトを生成した場合、入力システムは新しいInput Systemが有効になっており、古い入力機能(Input.~~)が利用できません。シーン内のScreenSpaceSelectInput.csを参考に、XRInputValueReaderから値を読み込んで入力判定をする必要がでてきます。

image

タップの判定例

[SerializeField] UnityEngine.XR.Interaction.Toolkit.Inputs.Readers.XRInputValueReader<Vector2> m_TapStartPositionInput = new ("Tap Start Position"); ... var input = m_TapStartPositionInput.ReadValue();

おわりに

私がUnityのARMobileTemplateを利用してARアプリを導入する際に、いくつか詰まった点を整理しました。

新しくAR Coreの拡張機能を用いてARアプリを作ろうとする方の、何らかの参考になれば幸いです。ご一読ありがとうございました!

参照

文献

AR Foundation 向け ARCore Extensions のスタートガイド

Android をターゲットとする AR Foundation で AR セッションを録画して再生する

生成AI

Microsoft Copilot


この記事を書いたメンバー
image

クラウドソリューション第1チーム 穂積正隆
※こちらの画像は生成AIで作られており、著作権に問題があるご指摘を頂いた場合はすぐに修正致します。

前回の記事:Roslyn AnalyzerでUnityコードをチェックする話