空間アンカーの概要
更新日時: 2025/12/22
複合現実エクスペリエンスを構築する際は、ユーザーに快適で安全な体験を提供するために、コンテンツを健康と安全の観点で評価することを強くおすすめします。このサンプルプロジェクトまたはいずれかのプレゼンスプラットフォームの機能を使用してアプリを設計・開発する前に、
混合現実健康安全ガイドラインをお読みください。開発者は、不適切なオクルージョンを避けてください。これは、バーチャルコンテンツが物理的なユーザー環境を尊重していない場合に発生します(つまり、開発者はコンテンツをフリースペース内に配置するシーンを使用するか、
Depth APIを使用してください)。不適切なオクルージョンが発生すると、操作可能なスペースが誤認識される可能性があります。
Mixed Reality Utility Kit
ほとんどの場合は、
Mixed Reality Utility Kit (MRUK)の「ワールドロック」機能の使用を検討してください。これは、アンカーを利用してワールドロックを作動させる機能です。開発者が直接アンカーを使う必要はありません。HMDポーズが微調整され、仮想オブジェクトが現実空間でワールドロックされているように見えますが、開発者自身がアンカーを作成(または操作)する必要がありません。
アンカーとは、ワールドロックされた基準となるフレームです。これを基準として、現実世界における仮想オブジェクトの位置と向きが決まります。
このページを読むと、次のことができるようになります。
- 複合現実における空間アンカーの機能と目的について説明する。
- 空間アンカーを使用するさまざまなタイプのゲームやアプリのインタラクションモデルについて説明する。
- 空間アンカーの作成から共有までのライフサイクルについて説明する。
空間アンカーは、さまざまな方法で使えます。例えば、実物の家具の上に仮想サインを配置したり、実物の窓に仮想キャラクターが飛び出すような生成ポイントを作成したりできます。
以下の画像は、仮想おもちゃ、観葉植物、2Dパネルメディアエクスペリエンスなど、さまざまな種類のコンテンツで4つの空間アンカーを使う方法を示しています。
図1: 複数の仮想オブジェクトにアンカーを再利用する。
- スポーツとカジュアルゲーム: ユーザーはリビングルーム、廊下、ダイニングルームのような広い場所でミニゴルフ、借り物競争、障害物競走のようなゲームをプレイできます。
- アクションゲーム: アドベンチャーゲーム、パズル、バーチャル脱出ゲームは、リビングスペース全体を使って、複数の部屋に展開できます。
- 拡張と装飾: ユーザーは天気やニュースを知らせるウェブブラウザータブやウィジェットを固定したり、新しい家具や装飾を追加して、自分の家の模様替えをバーチャルに行うことができます。
- ビルディングゲームとシミュレーションゲーム: プレイスペースを拡張して、ユーザーの好みに応じて、レーシングトラック、シミュレーションされた都市、ルーブゴールドバーグマシンなどを含めることができます。
図2: 指向と位置を備えたアンカーの概念的な表現。
アプリでは、仮想オブジェクトごとに1つのアンカーを使えます。または、複数の仮想オブジェクトがアンカーの3メートルのカバーエリア内にある限り、同じアンカーを使うようにすることもできます。アンカーAPIを利用することにより、位置情報は、異なるセッション間でも保持されて発見可能になり、同期的にも非同期的にも他のユーザーと共有可能になります。
図3: アンカーを使うユースケースのクラス。上: スポーツ/アクションゲーム 下: 拡張現実とビルダー。
インタラクションモデルの観点では、アプリにはユーザー主導動作のアプリと物語動作のアプリの2種類があります。
- ユーザー主導動作のアプリには、より多くのスペースを使うというユーザーの判断に基づき、新しいコンテンツを適応したり表示したりするリアクティブなアプリが含まれます。次のようなユースケースがあります。
- 拡張現実と装飾: ユーザーは動画、ブラウザータブ、写真を装飾として使い、自在に複数スペースへと展開できます。
- ビルダーゲーム: ユーザーは1つの部屋を超えて展開し、レーシングトラックやシミュレーションされた都市を構築できます。
- 物語動作のアプリには、ユーザーが設定時もしくは動的に、環境から関連するスペースのタイプを選択できるプロアクティブなアプリが含まれます。次のようなユースケースがあります。
- スポーツとカジュアルゲーム: ユーザーはオープンスペースを最大限に利用し、景色を一度にレイアウトします。ミニゴルフや障害物競走に適しています。
- アクションゲーム: アプリでゲームプレイを生成し、ユーザーの目の前に動作を作成してエンゲージメントを高めます。アドベンチャーゲームやパズルゲームに適しています。
図4: ミニゴルフゲームの進行に沿ってユーザーがスペースを移動し続けるアプリ主導インタラクションの例。
アプリは次の2種類のアンカーを利用できます。
アプリが作成し所有する空間アンカー。そのコンテキスト内で非公開のままになります。開発者は特定の位置や場所に仮想コンテンツを配置してこれらのアンカーを作成できます。また、このプロセスを自動化して同じ場所にいるローカルマルチプレイヤーのセッションを強化することもできます。
システムが作成し所有するシーンアンカー。これらのタイプのアンカーは、家具や壁の配置やサイズなど、ユーザーの環境に対するインサイトを提供します。アプリはこれらのアンカーに変更を加えることはできませんが、ユーザーの許可を得ればアクセスすることができます。これらのアンカーはすべてのアプリで一定であり、システムレベルで動作します。
現実世界にバーチャルコンテンツを配置するには、まず空間アンカーを作成します。次に、アンカーを保存して、複数のセッション間で持続するようにします。将来のセッションで、または家全体のような大きなスペースを使用する場合に、このような持続するアンカーをクエリして検出することができます。同じ場所にいる複数のユーザーが同じ座標システムを共有するアプリの場合、一貫した視点と配置を維持するため、1人のユーザーが他のユーザーとアンカーを共有できます。
大規模なスペースのユースケースでは、システムは1つの部屋を超えて展開します。
- 作成とトラッキング: アプリは家全体などの大規模なスペース全体で、アンカーを作成してトラッキングできます。
- 保存と消去: アンカーはアプリの複数セッションで使うために保存したり、不要になったときに消去したりできます。アンカーには、ローカルデバイスのストレージとMetaサーバーのストレージで共通に動作するという抽象性があります。
- 発見: アンカーはユーザーの周囲を認識することによって、適応型エクスペリエンスを可能にします。ユーザーが動き回ると、それに応じてシーンアンカーや空間アンカーがアクセス可能になります。大規模なスペースの場合、スペース発見によって、どの部屋でもエクスペリエンスを開始できるようになります。ユーザーが部屋を移動するにつれ、新しい経路が見つかり、別のエリアのアンカーが一緒に表示されます。
- 共有: 複数のユーザー間で空間アンカーを共有すると、共有の参照フレームが生成されます。この共通の視点により、ユーザー同士が同じ拡張現実を認識できるので、コラボレーションやゲームプレイがスムーズになります。
ユーザーがスペース内を移動する際には、あらゆるアンカー操作(作成、持続、消去、共有、発見)がサポートされます。
図5: アンカーのライフサイクル。
UnityでMeta Quest開発を始めるには、
はじめにをご覧ください。