こんにちは!!Asterです!!!
URP(Universal Render Pipeline)を使ってAR開発をしたいと思い環境構築をしていました。
しかし今回
Unityのバージョンを2020.3.40f1・2021.3.40f1
ARfoundation 4 で
で環境構築をしようと試みたのですが、うまく行かず、
最終的にUnity2022.1.23f1 × ARFoundation5.0で動作確認ができましたので、その方法をまとめます。
もし、Unityのバージョンが2020,2021で動いた場合、ご連絡いただけると嬉しいです。
開発環境は以下の通りです。
・Unity 2022.1.23f1
・AR Foundation 5.0.3
・Apple ARKit XR Plug-in 5.0.3
環境構築
今回の流れとして
まずURPなしで、ARが動くか確認し、その後URPを入れるという流れで環境構築をしていこうと思います。
AR Foundation 5.0
「AR Foundation」とはiOSやAndroidなどのマルチプラットフォームでARアプリを開発できるようにするためのフレームワークです。 iOSにはARKit、AndroidにはARCoreというAR開発ツールがあります。
今回こちらの記事を参考に環境構築をしました.AR Foundation 5.0.3として提供されているので、そちらを今回使用します。
現時点の最新版
Unity のプロジェクトの準備
Unityのプロジェクトの準備の手順は、次のとおりです。
Unityを起動し、Unityのプロジェクトを「3D」で新規作成する。
「Platform」で「iOS」を選択し、「Switch Platform」ボタンを押す。
メニュー「Window → Package Manager」で「Package Manager」を開く。
「+ → add package by name」を選択し、以下を指定し、Addを押す。
出た欄に以下を入力しましょう.
・Name : com.unity.xr.arfoundation
・Version : 5.0.3
installが始まり、以下のように警告が出ますが、Yesを押すとUnityの再起動が始まります。
ARSessionとXROriginの準備
「AR Foundation」でARエクスペリエンスを実装するには、シーンに「ARSession」と「XROrigin」を追加する必要があります。
以下の3つのことを行いましょう
・Hierarchyウィンドウに配置されてる「Main Camera」を削除。
・ メニュー「GameObject → XR → AR Session」で「ARSession」を追加。
・メニュー「GameObject → XR → XR Origin」で「XROrigin」を追加。
ARfoundation4と違い,XROriginの中に「Camera Offset」および「Main Camera」を子に持ちます。
「+ → 3D Object → Cube」で立方体を「XROrigin」の子として追加し、位置とサイズを適当に指定。
iOSでの実行
iOSでの実行手順は、次のとおりです。
AR Foundation5.0.3をimportした要領で,ARkitもimportします.
メニュー「Window → Package Manager」で「Package Manager」を開く。
「+ → add package by name」を選択し、以下を指定し、Addを押す。
・Name : com.unity.xr.arkit
・Version : 5.0.3
iOSで動作できるように,メニュー「Edit → Project Settings → Player → Other Settings」で以下を設定しましょう。
すると,以下のように「Camera Usage Description」の欄が記入されます.
また、メニュー「Edit → Project Settings → XR Plug-in Management」で「Apple ARKit」をチェックします。
これですべての準備が整いました。以下のようにbuildと実行をし、URPなしでの動作確認をしましょう。
(1) メニュー「File → Build Settings」で「Scenes In Build」にシーンを追加し、「Build」ボタンを押す。
Xcodeのプロジェクトが生成されます。
(2) Xcodeのプロジェクトから、通常のiOSの開発方法と同様に、iOSアプリをビルドし、iOS端末にインストールして実行。
ARアプリ開始時の位置に立方体が配置されているので、カメラから立方体が確認できます.
これで3DシーンでのAR開発が完了しました.次にURPでのAR開発に移りましょう.
Universal RPの導入
プロジェクトが新規作成され、Unity Editorが起動した後、パッケージマネージャーを起動し、Universal RPパッケージをインストールしましょう。
※該当項目が現れない場合、Unityレジストリを選択(パッケージ種類)
これで、URPのインストール完了です。
次にURPの背帝をしていきます。
アセット>作成>レンダリング>Universal Render Pipline>Pipline Asset(Forword Renderer) を選択決定します。
名前を任意につけましょう(今回は ARUniversalRenderPipelineAssetとしました.)
するとプロジェクトウィンドウに下記2つのファイルが作成される。
・ARUniversalRenderPipelineAsset
・ARUniversalRenderPipelineAsset_Renderer
ForwardRendererを選択したインスペクタで、ARBackgroundRendererFeatureをレンダラフィーチャのリストに追加してください。
Pipeline Assetの作成と設定が終わったら、次にProject Settingを変更していきます。変更する箇所は以下の2点です。
①GraphicsのScriptable Render Pipeline Setting
②GraphicsのRendering
ARCameraManager の Rendering Mode を "After Opqaue" に設定しましょう.
3Dシーンの時生成したCubeのmaterialが外れているので,再度cubeを生成しましょう.
これで準備完了です.
以下のようにcubeが見れれば完了です.
まとめ
今回URP上でARfoundationを使えるようにしました。
これで、VFX Graphなども使えるようになったので、AR開発の幅が広がりました。
しかし、Unity2020,2021でできれば動かしたいので、動作確認出来たらご連絡お願いします。