メインコンテンツまでスキップ

AR Foundation 5.0 の実験的サポート

Pretia SDK v0.8.0のリリースに伴い、AR Foundation 5.0に対応するためのサポートが追加されました。

一般的に、AR Foundation 4から5へ移行する際に注意しなければならない点があります。このドキュメントでは、AR Foundation 4を使用しているUnityプロジェクトをAR Foundation 5に安全に移行する方法と、その過程でPretia SDKとの相関関係で行う必要があることについて説明します。

AR Foundation 5の変更点

AR Foundationで何が変わったかを理解するために、UnityのAR Foundation 5の新機能に関するドキュメントを参照してください。 また、AR Foundation 5.xの移行に関するUnityのドキュメントもあわせて読むことをお勧めします。

移行のステップ

⚠ この移行作業は、Unityプロジェクトに多くの変更をもたらします。移行作業を行う前に、プロジェクトのバックアップをとっておくことを強く推奨します。 ⚠

Unityバージョンをアップデートする

AR Foundation 5は、Unity v2021.2以降でのみサポートされています。2021.2より古いバージョンを使用している場合は、新しいUnityのバージョンをダウンロードし、インストールしてください。AR Foundation 5との最新の互換性を保つために、最新の2021.3 LTSを使用することをおすすめします。

Pretia SDK v0.8.0以上のインポート

Pretia SDKのインポート に記載されている手順に従い、最新バージョンのPretia SDKをインポートしてください。バージョンはv0.8.0以上であることを確認してください。

AR Foundation​のアップグレード

このドキュメントの執筆時点では、AR Foundation 5はパッケージマネージャのウィンドウに表示されないため、Unityプロジェクトディレクトリの manifest.json ファイルを手動で修正してインストールする必要があります。

下記は、Unityのドキュメントからそのままコピーしています。

AR Foundation 5.0 は Unity 2021.2 および 2021.3 と互換性がありますが、これらの Editor バージョンの Package Manager ウィンドウに表示されません。プロジェクトマニフェストを編集する方法については、Unity 2021でAR Foundation 5.0にアクセスする を参照してください。

manifest.json ファイルを開き、AR Foundation の依存関係を明示的に指定するようにファイルを変更します。変更を保存し、Unity エディタを開きます。

com.unity.xr.arfoundation: 5.0.3,
com.unity.xr.arcore: 5.0.3
com.unity.xr.arkit: 5.0.3

インポートが完了すると、プロジェクトが新しい入力システムを使用しているという警告ダイアログが表示され、それらを有効にするためにエディタを再起動するように要求されます。 Yes ボタンを選択し、次に進みます。

AR Session Origin​を編集する

AR Foundationの以前のバージョンからの大きな変化の一つは、UnityがAR Session Originを非推奨とし、代わりに汎用的なXROriginの実装を使用することです。

安全に移行するためには、以下の作業が必要です。

  1. ARSessionOriginのスクリプトリファレンスをXROriginに変更する。これを行うには、まずインスペクタウィンドウからデバッグモードを有効にします。次に、AR Session Originゲームオブジェクトを選択します。

  1. デバッグモードを有効にすることで、非推奨のARSessionOriginのスクリプトリファレンスをXROriginに変更することができるようになります。

  1. デバッグモードを無効化し、ノーマルモードに戻します。

  2. AR Session Originゲームオブジェクトの子として空のゲームオブジェクトを作成し、Camera Offsetと名付けます。AR Cameraゲームオブジェクトを、この新しいCamera Offsetゲームオブジェクトの下に再保存します。

  1. インスペクタから、Camera OffsetゲームオブジェクトをXROriginコンポーネントのCamera Floor Offset Objectフィールドとして設定します。

  1. AR Cameraゲームオブジェクトを選択し、非推奨のAR Pose Driverコンポーネントを削除します。

  1. Tracked Pose Driver (Input System)コンポーネントを追加します。

  1. Tracked Pose Driver (Input System)が、centerEyePosition/RotationとdevicePosition/Rotationを使用するように設定します。 コンポーネントを手動で設定することも可能ですが、Hierarchyウィンドウを右クリックし、XR > XROrigin (Mobile AR)を選択してXROriginゲームオブジェクトを一時的に作成するのが最も簡単な方法です。 次に、生成されたXR Originの下にあるMain Cameraゲームオブジェクトに移動し、生成されたTracked Pose Driver (Input System) コンポーネントを右クリックしてコピーします。

  1. ARカメラゲームオブジェクトを選択し、Tracked Pose Driver (Input System)コンポーネントを右クリックし、コンポーネント値の貼り付けを選択し、コンポーネント構成を貼り付けます。

  1. 生成された一時的なXR Originゲームオブジェクトを削除します。

(仮) イベントシステム入力の置き換え

シーンにEvent Systemコンポーネントがある場合、新しいInput Systemを使うために、Event Systemを更新する必要があるかもしれません。Event System ゲームオブジェクトを選択し、コンポーネント上の Replace with InputSystemUIInputModule ボタンを押してください。

AR Foundationは新しい入力システムを使用しているため、Unityのレガシー Input クラスを呼び出すと、ランタイムにエラーが発生することに注意してください。プロジェクトを徹底的に調査し、それに応じて修正してください。

上記のステップをすべて完了したら、UnityプロジェクトでAR Foundation 5を使用する準備が整いました。実装によっては、コードベースを変更する必要があるかもしれません。この部分については、Unityのマイグレーションガイドに従ってください。

プロジェクトにエラーが無くなったら、AR Foundation 5.0を使用するための移行は完了です。この方法で行うことで、シーンやコンポーネントが新しいXROriginコンポーネントへの以前のリファレンスをすべて保持し、その結果、壊れたリファレンスの可能性を最小限にすることができます。

リファレンスが壊れていない限り、Pretia SDKのコンポーネントは新しいXROriginコンポーネントで動作することができるはずですので、特定のPretia SDKの要件に関してこれ以上変更する必要はないはずです。