ARシェアードアンカーの管理
ARSharedAnchorManager
はシェアードアンカーを管理するための MonoBehaviour
コンポーネントです。この関数からメソッドを呼び出すことで、リローカライズの開始と停止を行うことができます。また、RelocalizationScore
のような、リローカライズの際に得られる様々な情報を問い合わせることもできます。このコンポーネントは、AR Foundation の ARSessionOrigin
コンポーネントと同じオブジェクトに追加する必要があります。
インスペクタの設定
インスペクタから挙動を変更することができます。それぞれのパラメータを見てみましょう。
Relocalize On Start
このオプションを使うと、コードを一行も書かずにリローカライズ機能を使うことができます。このオプションを有効にすると、動作を変更するための追加のパラメーターが表示されます。
これらのパラメータは Relocalize On Start
も有効になっている場合にのみ適用されます。実行時に、これらのパラメータを使って自動的にリローカライズが開始されます。
Restart Automatically On Error
有効にすると、エラーが発生したときに自動的にリローカライズが再開されます。マップベースのリローカライズを使用している場合は、マップ選択の仕組みに応じて再実行します。
Relocalization Type
Image
か Cloud Map
のどちらかを選択することができます。それぞれのタイプに対して、割り当てられたデフォルトのパラメータ(マップベースのリローカライズでは Map Selection
、イメージベースのリローカライズでは Reference Image
)が使用されることになります。
Timeout In Milliseconds
リローカリゼーションを試行する時間(ミリ秒)を設定することができます。0
に設定すると、成功するかエラーが発生するまで、無期限に試行されます。
Map-based Relocalization Default Parameter
Map Selection
マップベースのリローカライズで使用するデフォルトのパラメータを設定するために使用します。これは Relocalize on Start
オプションを有効にした場合、あるいは mapKey
を入力せずに以下の API を呼び出した場合に使用され、SDKはデフォルトのマップ選択方法として DirectMapSelection
と CriteriaBasedMapSelection
の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
コンポーネントに割り当てられた参照イメージライブラリのイメージのリストから、シェアードアンカーとして使用するイメージを選択することができます。