HoloLens には、環境を継続的にスキャンするビルトインカメラがあり、実世界のオブジェクトに対応する仮想世界のジオメトリを構築することができます。この機能により、HoloLens は仮想コンテンツと現実世界との間に説得力のあるインタラクションを作成できます (現実世界を遮断したり、物理的に相互作用するなど)。現実世界のサーフェスを仮想世界にマッピングするプロセスは、空間マッピング と呼ばれています。
Unity エディターには、プロジェクト環境のサーフェスの情報を集める低レベルのスクリプト API があります。この低レベルのスクリプト API によって、サーフェスの変化に関していつデバイスにクエリを送るかや、いつ関連するサーフェスのゲームオブジェクトの作成や更新を行うかに関して、最大限の制御が可能です。Spatial Mapping コンポーネントを使うと、低レベルのスクリプト API を直接使うことなしに、Windows Mixed Reality を素早く立ち上げ実行することができます。
空間マッピング は、HoloLens アプリケーションにより良い現実世界との相互作用を加えるための優れた方法です。
HoloLens デバイスは、常に周囲をスキャンし、新しいセンサーデータに基づいて世界に関する情報を精密化します。データの更新は頻繁に行われるため、部屋の中の人の移動やドアの開閉など、環境の変化を検知することができます。空間マッピングによって、ワールドマッピングデータセットは HoloLens デバイスに保存され、複数のアプリケーションやデバイスの再起動の間にも持続します。
透明、黒、または、反射するサーフェスは、HoloLense の空間マッピングにうまく利用できません。デバイスが現実世界のオブジェクトを検出できない場合、空間マッピングデータ内に空のパッチができます。デバイスが存在しない、または、スキャンできない部分の世界についても同じことが言えます。例えば、HoloLens が観察しない部屋のデータはありません。
デバイスのワールドマッピングは、サーフェスと呼ばれる均一なチャンクに分割されています。空間マッピングシステムは、システム自体に都合の良い方法で世界のサーフェスの向きを決定します。システムがサーフェスを特定の向きに配置するとは限りません。また、サーフェスが特定の現実空間 (部屋など) と不適切に交差する可能性もあります。空間マッピングがサーフェスのデータを生成するとき、そのデータは隣接するサーフェスとわずかに重なります。
注意: サーフェスデータに関連するセマンティックな意味や解釈はありません。空間マッピングは、何が実際にサーフェス上にあるかを理解したり、報告したりできません。例えば、机の上の塊として検出されたものが実際にはマグカップであるとか、部屋の真ん中にある椅子型のオブジェクトが何であるかはわかりません。サーフェスデータは、そのセンサーからの入力を使用して構築される世界に関する理解に基づいて、その領域内のジオメトリの構成を報告するだけです。
空間マッピングを使用してアプリケーションを開発するときに、パフォーマンスの問題を回避するには以下に注意してください。
空間マッピングデータの量はとても多くなることがあり、拡張性の問題となる場合があります。
部屋の中をすばやく移動する物体や人々は空間マッピングデータを非常に不規則にする可能性があるので、可能な限りこれを避けてください。
特に、設計上の理由から連続したデータが必要な場合、データの穴が問題の原因になることがあります。穴は大抵、透明なサーフェスや黒いサーフェスによって発生します。
空間マッピングに関する詳細は、Microsoft のドキュメント Spatial Mapping を参照してください。
2018–05–01 編集レビュー を行ってパブリッシュされたページ
Hololens の空間マッピングは 2017.3 に更新
Did you find this page useful? Please give it a rating:
Thanks for rating this page!
What kind of problem would you like to report?
Thanks for letting us know! This page has been marked for review based on your feedback.
If you have time, you can provide more information to help us fix the problem faster.
Provide more information
You've told us this page needs code samples. If you'd like to help us further, you could provide a code sample, or tell us about what kind of code sample you'd like to see:
You've told us there are code samples on this page which don't work. If you know how to fix it, or have something better we could use instead, please let us know:
You've told us there is information missing from this page. Please tell us more about what's missing:
You've told us there is incorrect information on this page. If you know what we should change to make it correct, please tell us:
You've told us this page has unclear or confusing information. Please tell us more about what you found unclear or confusing, or let us know how we could make it clearer:
You've told us there is a spelling or grammar error on this page. Please tell us what's wrong:
You've told us this page has a problem. Please tell us more about what's wrong:
Thank you for helping to make the Unity documentation better!
Your feedback has been submitted as a ticket for our documentation team to review.
We are not able to reply to every ticket submitted.