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

ARシェアードアンカーの管理

ARSharedAnchorManager はシェアードアンカーを管理するための MonoBehaviour コンポーネントです。この関数からメソッドを呼び出すことで、リローカライズの開始と停止を行うことができます。また、RelocalizationScore のような、リローカライズの際に得られる様々な情報を問い合わせることもできます。このコンポーネントは、AR Foundation の ARSessionOrigin コンポーネントと同じオブジェクトに追加する必要があります。

インスペクタの設定

インスペクタから挙動を変更することができます。それぞれのパラメータを見てみましょう。

Relocalize On Start

このオプションを使うと、コードを一行も書かずにリローカライズ機能を使うことができます。このオプションを有効にすると、動作を変更するための追加のパラメーターが表示されます。

これらのパラメータは Relocalize On Start も有効になっている場合にのみ適用されます。実行時に、これらのパラメータを使って自動的にリローカライズが開始されます。

Restart Automatically On Error

有効にすると、エラーが発生したときに自動的にリローカライズが再開されます。マップベースのリローカライズを使用している場合は、マップ選択の仕組みに応じて再実行します。

Relocalization Type

ImageCloud Mapのどちらかを選択することができます。それぞれのタイプに対して、割り当てられたデフォルトのパラメータ(マップベースのリローカライズでは Map Selection 、イメージベースのリローカライズでは Reference Image )が使用されることになります。

Timeout In Milliseconds

リローカリゼーションを試行する時間(ミリ秒)を設定することができます。0 に設定すると、成功するかエラーが発生するまで、無期限に試行されます。

Map-based Relocalization Default Parameter

Map Selection

マップベースのリローカライズで使用するデフォルトのパラメータを設定するために使用します。これは Relocalize on Start オプションを有効にした場合、あるいは mapKey を入力せずに以下の API を呼び出した場合に使用され、SDKはデフォルトのマップ選択方法として DirectMapSelectionCriteriaBasedMapSelection の2つを提供しています (参照: Map Selection).

// ARSharedAnchorManager.cs

// Start map-based relocalization with the default parameter
public void StartCloudMapRelocalization(int timeoutInMilliseconds = 0);

// Start map-based relocalization to find the shared anchor in a map with mapKey
public void StartCloudMapRelocalization(string mapKey, int timeoutInMilliseconds = 0);

Image-based Relocalization Default Parameter

画像ベースのリローカライズで使用されるデフォルトのパラメータを設定するために使用され、 Relocalize on Start オプションを有効にした場合や、 referenceImage を入力として画像ベースのリローカライズのAPIを呼び出した場合に設定します。

// ARSharedAnchorManager.cs

// Start image-based relocalization with the default parameter
public void StartImageRelocalization(int timeoutInMilliseconds = 0);

// Start image-based relocalization with the referenceImage as shared anchor when it's found
public void StartImageRelocalization(XRReferenceImage referenceImage, int timeoutInMilliseconds = 0);

AR Tracked Image Manager

画像ベースのリローカライズは、画像追跡のためにAR Foundationの基礎となるサブシステムを使用します。ARTrackedImageManager コンポーネントを追加し、XRReferenceImageLibrary をアサインする必要があります。新しい参照イメージライブラリは、Project タブ上で右クリックし、Create > XR > Reference Image Library を選択することで作成することができます。作成後、画像マーカーとして使いたい画像を追加していきます。

Reference Image

AR Tracked Image Manager をアサインすると、インスペクタでこのパラメータが有効になり、 ARTrackedImageManager コンポーネントに割り当てられた参照イメージライブラリのイメージのリストから、シェアードアンカーとして使用するイメージを選択することができます。