Azure Spatial Anchors を使用して効果的なアンカー エクスペリエンスを作成するCreate an effective anchor experience by using Azure Spatial Anchors

この記事では、Azure Spatial Anchors を使用してアンカーを効果的に作成して配置するためのガイドラインと考慮事項について説明します。This article provides guidelines and considerations to help you effectively create and locate anchors by using Azure Spatial Anchors.

Anchor の段階的改善Anchor improvement over time

Azure Spatial Anchors では、アンカーが検索されるたびに、Microsoft では将来の位置特定操作の品質改善を試行します。With Azure Spatial Anchors, each time you locate anchors, we attempt to improve the quality of future locate operations. これは、収集した環境データを利用し、検索対象のアンカーの視覚的情報を強化することで行います。We do this by using the environment data collected to augment the visual information on the anchors we are looking for. このプロセスは内部で実行されます。また、環境のための最適化を目的とし、Azure Spatial Anchors サービスによって実行されるオフライン最適化です。This process runs under the hood and is an offline optimization run by the Azure Spatial Anchors service to optimize for your environment. 操作のたびに収集される追加データによって、環境に対する理解が強固になります。The additional data gathered during each operation builds a stronger understanding of the environment. それにより品質が上がり、環境が変わっても、時間が経過しても、ユーザーが別の角度や観点からアンカーを見ている場合でも、アンカーの位置特定機能が改善されます。This improves quality and allows you to better locate anchors through environment change, time passing, and for users looking at anchors from different angles and perspectives.

適切なアンカーGood anchors

Azure Spatial Anchors では、アンカーの品質を段階的に改善することが試行されますが、良いアンカーを作成するには、ユーザー体験 (UX) においてユーザーの教育または指導に時間を投資することも重要です。While Azure Spatial Anchors does attempt to improve the quality of anchors over time, it is also important to invest time in either educating or guiding users in your user experience (UX) to create good anchors. 前もって適切なアンカーの作成に時間をかけることで、エンド ユーザーは次のような条件でアンカーを確実に見つけることができます。By investing in creating good anchors up front, you help end users to reliably find anchors:

  • 異なるデバイス。Across different devices.
  • さまざまな時刻。At various times.
  • 異なる照明条件。In different lighting conditions.
  • 空間内の目的の分析観点から。From the desired perspectives within the space.

静的な場所と動的な場所Static and dynamic locations

アンカー エクスペリエンスの設計の一部は、場所を選択することです。Part of designing the anchor experience is choosing the locations. 場所は静的であり、スペースの管理者によって定義されていますか。Will the locations be static and defined by an administrator of the space? または、動的であり、ユーザーが定義しますか。Or will they be dynamic and defined by the user?

小売店舗のマネージャーは、アクセスするユーザーの気を引くために静的なストア内エクスペリエンスを望むことがあります。A retail store manager might want a static in-store experience to entice users to visit. 一方、複合現実ボード ゲームの開発者は、ユーザーにプレイ場所を選択させるのを好みます。But the developer of a mixed-reality board game would likely want to let users choose where to play.

静的な場所では、適切なアンカーのスペースの選択について時間をかけて管理者に教えることができます。For static locations, you can teach administrators to spend time curating the space with good anchors.

動的な場所では、UX 内のユーザーに適切なアンカーの作成について教えたり案内したりする方法を考える必要があります。For dynamic locations, you should think about how you teach or guide users in your UX to create good anchors.

安定した視覚的特徴Stable visual features

複合現実や拡張現実デバイスで使用される視覚追跡システムは、環境の視覚的特徴に依存します。Visual tracking systems used on mixed-reality and augmented-reality devices rely on visual features of the environment. 最も信頼性の高いエクスペリエンスを実現するには、次のようにします。To get the most reliable experience:

  • 安定した視覚的特徴 (つまり、頻繁に変化しない特徴) を持つ場所にアンカーを作成 "する" ようにします。Do create anchors in locations that have stable visual features (that is, features that don't change often).

  • 際立った特徴のない大きな空いている面にはアンカーを作成 "しない" ようにします。Don't create anchors on large blank surfaces that have no distinguishing characteristics.

  • 高い反射率の素材にはアンカーを作成 "しない" ようにします。Don't create anchors on highly reflective materials.

  • カーペットや壁紙のようにパターンが繰り返される表面にはアンカーを作成 "しない" ようにします。Don't create anchors on surfaces where the pattern repeats, such as carpet or wallpaper.

アンカーに適した環境と適さない環境の例

さまざまな視点Various viewing perspectives

アンカーを作成するときは、後でユーザーがアンカーを探そうとするときのことについて考えます。When creating an anchor, think about the people who will later try to locate the anchor.

たとえば、ドアが 2 つある部屋の中央にアンカーを配置します。Consider, for example, an anchor in the middle of a room that has two doors. ユーザーがどちらのドアから部屋に入ってきてもかまわないようにします。You likely want to allow users to enter the room from either door. アンカーを作成するときは、両方の出入り口から位置をスキャンする必要があります。When creating the anchor, you'll need to scan its position from both doorways. ユーザーがどちらのドアからでもアンカーを特定できるように、視点を変更してアンカーの周囲の環境データをキャプチャします。You change perspectives to capture environment data around the anchor so that users can locate the anchor from either door.

一般に、アンカーを作成するときは、それを特定しようとするユーザーの視点からスキャンします。In general, when creating an anchor, scan it from the perspectives of the people who will try to locate it. したがって、屋外の彫刻に仮想コンテンツを配置する場合は、アンカーを作成するときにスキャンしながら彫刻の周りを歩くのが理にかなっています。So if you're placing virtual content on an outdoor sculpture, it makes sense to walk around the sculpture, while scanning it, as you create the anchor. アンカーが部屋の隅にあると、1 つの方向からしかそれにアプローチできません。If your anchor is in the corner of a room, there's only one direction to approach it from. このようなアンカーを作成すると、この視点からだけスキャンできます。When creating this anchor, you can scan it just from this perspective.

複数のアンカーMultiple anchors

照明により、アプリで検出される視覚的特徴が異なる場合があります。Lighting can make a difference in the visual features that an app detects. 強力な自然光で作成したアンカーが人工光では見つけにくい場合や、その逆の場合があります。Anchors created in strong natural light might be hard to locate in artificial light, and vice versa.

このような問題がある場合は、アンカーを 2 つ作成すると役に立つことがあります。If you have this issue, it can help to create two anchors. 同じ場所に、日光と人工光でそれぞれ別のアンカーを作成します。At the same spot, create one anchor in the daylight and another in artificial light. その後、アプリでは両方のアンカーをクエリできます。Your app can then query for both anchors. いずれかのアンカーが特定されると、アプリはそのアンカーに対するポーズを作成します。When either anchor is located, the app will have a pose for the anchor.

同様に、ほとんどのオブジェクトが移動するために視覚的特徴が変化する環境では、複数のアンカーが役立ちます。Similarly, in environments where the visual features change because most objects move, multiple anchors can help. 環境が大きく変化したためにアンカーの検出が難しくなったら、アンカーを新しいものに置き換えることができます。When an anchor becomes too difficult to find because of significant changes in the environment, you can replace the anchor with a new one. たとえば、レイアウトが数か月ごとに変わる小売店などでは、これを行う可能性があります。You might do this, for example, in a retail store where the layout is refreshed every few months.

ターゲットと部屋Targets and rooms

多くの場合、アンカーはアプリのエクスペリエンスへのエントリ ポイントです。In many cases, an anchor is an entry point to your app's experience. ユーザーがエクスペリエンスに入ることができるように、このステップはすばやく確実に行われることが望まれます。You'll want to get through this step quickly and reliably so users can enter your experience. ユーザーがアンカーを検索する方法に時間をかけることは、重要な設計上の手順です。Spending time on how users will find your anchors is an important design step. "ターゲット" と "部屋" という 2 つの広範なシナリオの観点から、アンカーの検索について考えると役に立ちます。It's helpful to think about finding anchors in terms of two broad scenarios: targets and rooms.

対象サーバーTargets

ターゲットのシナリオでは、アンカーの場所はよく知られています。In the target scenario, the location of an anchor is well known. たとえば、架空の複合現実絵画アプリでは、1 人のユーザーが壁に仮想キャンバスを配置します。For example, in a fictional mixed-reality painting app, one user places a virtual canvas on the wall. そのユーザーは、室内の他のユーザーに、壁の同じ場所にデバイスを向けてアンカーを特定し、エクスペリエンスを開始するよう指示します。She instructs the other users in the room to point their devices at the same place on the wall to locate the anchor and begin the experience.

ターゲット シナリオの別の例は、"スキャンして注文" と表示されているコーヒー ショップのサインのような場合です。Another example of a target scenario might be a sign in a coffee shop that reads, “Scan for deals.” コーヒー ショップはここにアンカーを配置しています。The coffee shop has placed an anchor here. ユーザーはサインをスキャンし、アンカーを見つけて拡張現実エクスペリエンスに入り、コーヒーの注文を検索します。As users scan the sign, they locate the anchor and enter the augmented-reality experience to find deals on coffee.

ターゲットのシナリオでは、写真が役に立つことがあります。In the target scenario, photos can help. ユーザーのデバイスでターゲットの写真をユーザーに見せると、現実の世界で何をスキャンすればよいかすぐにわかります。If you show users a photo of the intended target on their device, they can quickly identify what to scan in the real world. たとえば、GPS を使用して目的のターゲットの一般的な領域内にユーザーが到着するのを手助けします。For example, you might help your users arrive within the general area of an intended target by using GPS. ユーザーが到着したら、アプリでターゲットの写真を示します。When the user arrives, your app shows a photo of the target. ユーザーは、周囲を見回し、ターゲットを見つけて、アンカーをスキャンします。The user looks around the space, finds the target, and scans for the anchor.

ユーザーのモバイル デバイス上のターゲットの写真を示すアンカーの図

部屋Rooms

部屋のシナリオでは、ユーザーはどこかにアンカーがあることを知った状態でスペースに入ります。In the room scenario, users enter a space simply knowing there's an anchor here somewhere. ユーザーは自分のデバイスでスペースをスキャンして、アンカーをすばやく見つけます。Users scan the space with their device and quickly locate the anchor.

通常、このエクスペリエンスでは、「さまざまな視点」で説明したように、適切に選択されたアンカーを作成する必要があります。This experience typically requires you to create well-curated anchors, as discussed in Various viewing perspectives. アンカーを作成するときに多くの視点から部屋をスキャンしておけば、ユーザーはアンカーを探すときにほとんどどこからでもスキャンできます。If you scanned the room from many perspectives when you created the anchor, users can scan almost anywhere when they try to locate it.

ユーザーがアンカーを探して部屋をスキャンする方法の図

基本的に、アンカーを作成するときにスペースのスキャンに時間をかけるほど、後でユーザーがアンカーをスキャンして発見するまでの時間が短くなります。Essentially, you spend more time scanning the space when you create the anchor so that later users can scan and locate the anchor quickly. エクスペリエンスを作成するときは、この重要なトレードオフを考慮する必要があります。As you create your experience, you'll need to consider this important trade-off.

前に説明した複合現実の絵画アプリの例は、部屋のシナリオではうまく機能しません。The example of the mixed-reality painting app that we discussed earlier doesn't work well as a room scenario. この例では、アンカーを配置するユーザーは、他のユーザーがエクスペリエンスに迅速に参加することを望んでいます。Here, the user who places the anchor wants others to join the experience quickly. 部屋がよくスキャンされるまで、エクスペリエンスの開始を待ちたくはありません。The users don't want to wait to start the experience until the room is well scanned. すべてのユーザーはアンカーを見つけるためにデバイスをどこに向ければよいのか正確にわかっているので、この例はターゲットのシナリオとしてはうまく機能します。Because all users know exactly where to point their device to locate the anchors, this example works better as a target scenario.

アンカーの場所Anchor location

視覚追跡システムは、環境での視覚的特徴に依存します。Visual tracking systems rely on the visual features in an environment. スキャンに含まれる視覚的特徴が多いほど、アンカーが見つかる可能性は高くなります。The more visual features that a scan includes, the higher the likelihood of finding an anchor.

このセクションの一般的なガイドラインに従って、環境の便利なスキャンを促進する UX を構築してください。Follow the general guidelines in this section to build a UX that encourages a useful scan of the environment.

最初に、ユーザーが数秒以内にアンカーを見つけられない場合は、アプリでユーザーにデバイスを動かしてもっと多くの視点をキャプチャするよう促す必要があります。First, if the user doesn't locate an anchor within a few seconds, the app should encourage users to move the device to capture more perspectives. アプリでは、ユーザーに自分で環境内を動き回ってもっと多くの視点からアンカーをスキャンするよう促すこともできます。The app can also encourage users to move themselves around the environment to scan for the anchor from more perspectives. アンカーが見つかる確率が上がり、また、アンカーの品質改善に利用する目的で収集される環境データが増えるため、デバイスに表示される特徴の分析観点は多ければ多いほど良いです。The more feature perspectives that the device sees, the better, as it will increase the likelihood that an anchor is located, and it will also collect more environment data that will be used to improve the quality of the anchor.

ターゲットのシナリオでは、ターゲットの周囲を移動して異なる視点からそれを見るよう、ユーザーに促します。For target scenarios, ask the user to move around the target to view it from different perspectives. つまり、アンカーが見つかるまで、新たな視点からターゲットをキャプチャするようユーザーに求めます。In other words, ask the user to capture the target from new perspectives until the anchor is located.

部屋のシナリオでは、部屋をゆっくりスキャンするようユーザーに求めます。For room scenarios, ask the user to slowly scan the room. たとえば、180 度または 360 度向きを変えて部屋をキャプチャするようユーザーに促します。For example, ask the user to turn to capture 180 degrees or even 360 degrees of the room. または、新しい視点から部屋を見てみるようユーザーに求めます。Or ask the user to view the room from a new perspective.

最も有効な方法は、部屋を横断しながらスキャンすることです。The most meaningful method is to scan across the room. 部屋を横断してスキャンすると、たとえば壁の近くでスキャンするより、環境内の多くの視覚的特徴をキャプチャできます。A scan across the room captures more visual features of the environment than a scan of a nearby wall, for example. 壁の近くでスキャンしたのでは、環境の多くの役に立つ視覚的特徴をキャプチャできません。A scan of a nearby wall won't capture as many useful visual features of the environment.

アンカーを探すとき、デバイスを左右に繰り返し動かしたのでは役に立ちません。It's not helpful to repeatedly move the device from side to side when looking for an anchor. これでは単に、同じ視点から同じポイントをキャプチャするだけです。This simply captures the same points from the same perspective.

エクスペリエンスのテストExperience tests

この記事では、一般的なガイドラインを説明しました。In this article, we've discussed general guidelines. Spatial Anchors では、現実の世界と対話するアプリを作成します。With Spatial Anchors, you're writing apps that interact with the real world. そのため、アプリのアンカーのシナリオを実際の環境でテストすることに時間を費やす必要があります。Because of that, you should devote time to testing your app's anchor scenarios in real environments. これは、ユーザーがアプリを使用することが予想される場所を表す環境に特に当てはまります。This is especially true for environments that represent where you expect your users to use the app.