(57)【要約】  共有仮想空間における複数のユーザに対して仮想環境の提示を方向付けるためのシステムおよび方法が提供される。複数のユーザは異なる物理空間に物理的に存在し得る。複数のユーザの各々について、システムは、それぞれの物理空間と関連付けられた物理的な制約を検出し得、物理空間におけるユーザの向きと、関連付けられた物理的な制約とに基づいて、物理空間内の遮られていない最長の物理経路を求め得る。次に、共有仮想空間における複数のユーザへの仮想環境の提示が、共有仮想空間における複数のユーザ同士の対話を最大化するために、複数のユーザの各々に対して方向付けられ得る。
2019535054.tif 000002
【特許請求の範囲】
【請求項１】
方法であって、
第１の物理空間と関連付けられた少なくとも１つの物理的な制約を検出することと、
前記第１の物理空間における第１のユーザの位置および向きと、検出した前記第１の物理空間と関連付けられた少なくとも１つの物理的な制約とに基づいて、前記第１の物理空間における第１の物理経路を検出することと、
第２の物理空間と関連付けられた少なくとも１つの物理的な制約を検出することと、
前記第２の物理空間における第２のユーザの位置および向きと、検出した前記第２の物理空間と関連付けられた少なくとも１つの物理的な制約とに基づいて、前記第２の物理空間における第２の物理経路を検出することと、
前記第１のユーザに対して第１の向きで仮想環境を前記第１のユーザに表示することと、前記第２のユーザに対して第２の向きで前記仮想環境を前記第２のユーザに表示することとを備え、前記仮想環境は共有仮想空間における前記第１および第２のユーザに提示され、前記表示することは、
前記第１の物理経路と、前記共有仮想空間において提示される前記仮想環境の文脈と、前記共有仮想空間における第１の仮想経路とに基づいて、前記仮想環境の仮想特徴を前記共有仮想空間における前記第１のユーザに対して方向付けることと、
前記第２の物理経路と、前記共有仮想空間において提示される前記仮想環境の前記文脈と、前記共有仮想空間における第２の仮想経路とに基づいて、前記仮想環境の前記仮想特徴を前記共有仮想空間における前記第２のユーザに対して方向付けることとを含む、方法。
【請求項２】
前記第２の物理空間は前記第１の物理空間とは異なる、請求項１に記載の方法。
【請求項３】
前記第２の物理空間は前記第１の物理空間と同一である、請求項１に記載の方法。
【請求項４】
前記第１の向きで仮想環境を前記第１のユーザに表示すること、および前記第２の向きで前記仮想環境を前記第２のユーザに表示することは、
前記第１の物理経路および前記第１の仮想経路が、遮られていない物理経路を前記第１のユーザに提供し、遮られていない仮想経路を前記第２のユーザに提供するように、前記仮想環境の前記仮想特徴の表示を前記第１のユーザに対して方向付けることと、
前記第２の物理経路および前記第２の仮想経路が、遮られていない物理経路を前記第２のユーザに提供し、遮られていない仮想経路を前記第１のユーザに提供するように、前記仮想環境の前記仮想特徴の表示を前記第２のユーザに対して方向付けることとを含む、請求項１に記載の方法。
【請求項５】
前記第１の物理空間と関連付けられた少なくとも１つの物理的な制約を検出することは、
前記第１の物理空間をスキャンし、前記第１の物理空間の物理的な境界と、前記第１の物理空間の内部に位置決めされた物理的な障害とを検出し、検出した前記境界および検出した前記障害に基づいて前記第１の物理空間をマッピングすることを含み、
前記第２の物理空間と関連付けられた少なくとも１つの物理的な制約を検出することは、
前記第２の物理空間をスキャンし、前記第２の物理空間の物理的な境界と、前記第２の物理空間の内部に位置決めされた物理的な障害とを検出し、検出した前記境界および検出した前記障害に基づいて前記第２の物理空間をマッピングすることを含む、請求項１に記載の方法。
【請求項６】
前記第１の物理経路を検出することは、検出した前記第１の物理空間の物理的な境界と、前記第１の物理空間において検出した前記物理的な障害とに基づいて、前記第１のユーザが前記第１の物理空間で動くことができる前記第１の物理空間内の遮られていない最長の物理経路を検出することを含み、
前記第２の物理経路を検出することは、検出した前記第２の物理空間の物理的な境界と、前記第２の物理空間において検出した前記物理的な障害とに基づいて、前記第２のユーザが前記第２の物理空間で動くことができる前記第２の物理空間内の遮られていない最長の物理経路を検出することを含む、請求項５に記載の方法。
【請求項７】
前記第１の物理空間と関連付けられた少なくとも１つの物理的な制約を検出することは、前記第１の物理空間の物理的な境界を検出することを含み、
前記第２の物理空間と関連付けられた少なくとも１つの制約を検出することは、前記第２の物理空間の物理的な境界を検出することを含む、請求項１に記載の方法。
【請求項８】
前記第１の物理空間と関連付けられた少なくとも１つの物理的な制約を検出することは、前記第１の物理空間における１つ以上の物理的な障害を検出することを含み、
前記第２の物理空間と関連付けられた少なくとも１つの制約を検出することは、前記第２の物理空間における１つ以上の物理的な障害を検出することを含む、請求項７に記載の方法。
【請求項９】
前記第１の物理空間における１つ以上の物理的な障害を検出することは、
前記第１の物理空間を間欠的にスキャンすることと、
前記第１の物理空間の以前のスキャンを前記第１の物理空間の現在のスキャンと比較することと、
前記比較に基づいて前記第１の物理空間における物理的な障害の位置を更新することとを含み、
前記第２の物理空間における１つ以上の物理的な障害を検出することは、
前記第２の物理空間を間欠的にスキャンすることと、
前記第２の物理空間の以前のスキャンを前記第２の物理空間の現在のスキャンと比較することと、
前記比較に基づいて前記第２の物理空間における物理的な障害の位置を更新することとを含む、請求項８に記載の方法。
【請求項１０】
前記第１の物理空間における物理的な障害の位置を更新することは、前記第１の物理空間において以前に検出された物理的な障害または前記第１の物理空間における新たな物理的な障害の動きを検出することを含み、
前記第２の物理空間における物理的な障害の位置を更新することは、前記第２の物理空間において以前に検出された物理的な障害または前記第２の物理空間における新たな物理的な障害の動きを検出することを含む、請求項９に記載の方法。
【請求項１１】
前記第２の物理空間は前記第１の物理空間と同一であり、
前記第１の物理空間における物理的な障害の位置を更新することは、前記第１の物理空間における前記第１のユーザに対して前記第２のユーザの位置を更新することを含み、
前記第２の物理空間における物理的な障害の位置を更新することは、前記第２の物理空間における前記第２のユーザに対して前記第１のユーザの位置を更新することを含む、請求項１０に記載の方法。
【請求項１２】
非一時的なコンピュータ可読媒体上に具現化されたコンピュータプログラムプロダクトであって、前記コンピュータ可読媒体上に一連の命令が格納されており、前記命令はプロセッサによって実行されると前記プロセッサに方法を実行させ、前記方法は、
第１の物理空間と関連付けられた少なくとも１つの物理的な制約を検出することと、
前記第１の物理空間における第１のユーザの位置および向きと、検出した前記第１の物理空間と関連付けられた少なくとも１つの物理的な制約とに基づいて、前記第１の物理空間における第１の物理経路を検出することと、
第２の物理空間と関連付けられた少なくとも１つの物理的な制約を検出することと、
前記第２の物理空間における第２のユーザの位置および向きと、検出した前記第２の物理空間と関連付けられた少なくとも１つの物理的な制約とに基づいて、前記第２の物理空間における第２の物理経路を検出することと、
仮想環境の仮想特徴を第１の向きで前記第１のユーザに表示することと、
前記仮想環境の前記仮想特徴を第２の向きで前記第２のユーザに表示することとを備え、
前記仮想環境は、共有仮想空間における前記第１および第２のユーザに提示され、
前記共有仮想空間における前記第１のユーザに対する前記仮想環境の前記仮想特徴の前記第１の向きは、前記第１の物理経路と、前記仮想環境の文脈と、前記共有仮想空間における第１の仮想経路とに基づいており、
前記共有仮想空間における前記第２のユーザに対する前記仮想環境の前記仮想特徴の前記第２の向きは、前記第２の物理経路と、前記共有仮想空間において提示される前記仮想環境の前記文脈と、前記共有仮想空間における第２の仮想経路とに基づいている、コンピュータプログラムプロダクト。
【請求項１３】
前記第２の物理空間は前記第１の物理空間とは異なる、請求項１２に記載のコンピュータプログラムプロダクト。
【請求項１４】
前記仮想環境を第１の向きで前記第１のユーザに表示すること、および前記仮想環境を第２の向きで前記第２のユーザに表示することは、
前記第１の物理経路および前記第１の仮想経路が、遮られていない物理経路を前記第１のユーザに提供し、遮られていない仮想経路を前記第２のユーザに提供するように、前記仮想環境の前記仮想特徴の表示を前記第１のユーザに対して方向付けることと、
前記第２の物理経路および前記第２の仮想経路が、遮られていない物理経路を前記第２のユーザに提供し、遮られていない仮想経路を前記第１のユーザに提供するように、前記仮想環境の前記仮想特徴の表示を前記第２のユーザに対して方向付けることとを含む、請求項１２に記載のコンピュータプログラムプロダクト。
【請求項１５】
前記第１の物理空間と関連付けられた少なくとも１つの物理的な制約を検出することは、
前記第１の物理空間をスキャンし、前記第１の物理空間の物理的な境界と、前記第１の物理空間の内部に位置決めされた物理的な障害とを検出し、検出した前記境界および検出した前記障害に基づいて前記第１の物理空間をマッピングすることを含み、
前記第２の物理空間と関連付けられた少なくとも１つの物理的な制約を検出することは、
前記第２の物理空間をスキャンし、前記第２の物理空間の物理的な境界と、前記第２の物理空間の内部に位置決めされた物理的な障害とを検出し、検出した前記境界および検出した前記障害に基づいて前記第２の物理空間をマッピングすることを含む、請求項１２に記載のコンピュータプログラムプロダクト。
【請求項１６】
前記第１の物理経路を検出することは、検出した前記第１の物理空間の物理的な境界と、前記第１の物理空間において検出した前記物理的な障害とに基づいて、前記第１のユーザが前記第１の物理空間で動くことができる前記第１の物理空間内の遮られていない最長の物理経路を検出することを含み、
前記第２の物理経路を検出することは、検出した前記第２の物理空間の物理的な境界と、前記第２の物理空間において検出した前記物理的な障害とに基づいて、前記第２のユーザが前記第２の物理空間で動くことができる前記第２の物理空間内の遮られていない最長の物理経路を検出することを含む、請求項１５に記載のコンピュータプログラムプロダクト。
【請求項１７】
前記第１の物理空間と関連付けられた少なくとも１つの物理的な制約を検出することは、
前記第１の物理空間の物理的な境界を検出することと、
前記第１の物理空間における１つ以上の物理的な障害を検出することとを含み、
前記第２の物理空間と関連付けられた少なくとも１つの制約を検出することは、
前記第２の物理空間の物理的な境界を検出することと、
前記第２の物理空間における１つ以上の物理的な障害を検出することとを含む、請求項１２に記載のコンピュータプログラムプロダクト。
【請求項１８】
前記第１の物理空間における１つ以上の物理的な障害を検出することは、
前記第１の物理空間を間欠的にスキャンすることと、
前記第１の物理空間の以前のスキャンを前記第１の物理空間の現在のスキャンと比較することと、
前記比較に基づいて前記第１の物理空間における物理的な障害の位置を更新することとを含み、
前記第２の物理空間における１つ以上の物理的な障害を検出することは、
前記第２の物理空間を間欠的にスキャンすることと、
前記第２の物理空間の以前のスキャンを前記第２の物理空間の現在のスキャンと比較することと、
前記比較に基づいて前記第２の物理空間における物理的な障害の位置を更新することとを含む、請求項１７に記載のコンピュータプログラムプロダクト。
【請求項１９】
前記第１の物理空間における物理的な障害の位置を更新することは、前記第１の物理空間において以前に検出された物理的な障害または前記第１の物理空間における新たな物理的な障害の動きを検出することを含み、
前記第２の物理空間における物理的な障害の位置を更新することは、前記第２の物理空間において以前に検出された物理的な障害または前記第２の物理空間における新たな物理的な障害の動きを検出することを含む、請求項１８に記載のコンピュータプログラムプロダクト。
【請求項２０】
前記第２の物理空間は前記第１の物理空間と同一であり、
前記第１の物理空間における物理的な障害の位置を更新することは、前記第１の物理空間における前記第１のユーザに対して前記第２のユーザの位置を更新することを含み、
前記第２の物理空間における物理的な障害の位置を更新することは、前記第２の物理空間における前記第２のユーザに対して前記第１のユーザの位置を更新することを含む、請求項１９に記載のコンピュータプログラムプロダクト。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本願は、２０１６年８月２３日に出願された米国仮出願第６２／３７８，５１０号に基づく優先権を主張する２０１７年８月１７日に出願された米国出願第１５／６７９，５２７号の継続出願であり、それに基づく優先権を主張し、その開示全体を本明細書に引用により援用する。
【０００２】
本願は、２０１６年８月２３日に出願された米国仮出願第６２／３７８，５１０号に基づく優先権を主張し、その開示全体を本明細書に引用により援用する。
【０００３】
分野
本文書は概して、拡張および／または仮想現実環境において仮想キャラクタを配置するためのシステムおよび方法に関する。
【背景技術】
【０００４】
背景
１人以上のユーザが体験することになる仮想現実環境を生成する拡張現実（augmented reality：ＡＲ）および／または仮想現実（virtual reality：ＶＲ）システムでは、複数のユーザが、共有仮想体験に没入しているときに同一の仮想空間を共有および／または仮想的に占有し得る。共有仮想空間における複数のユーザは、さまざまな電子装置を用いて、互いに、かつ仮想環境における仮想の要素および／または物体および／または特徴と対話し得る。これらの電子装置は、たとえば、ディスプレイを含むヘルメットまたはその他のヘッドマウントデバイス、ユーザがディスプレイ装置を見るときに用いる眼鏡またはゴーグル、センサを含む外部ハンドヘルドデバイス、センサが装着された手袋、およびその他のこのような電子装置などである。ＡＲ／ＶＲシステムが動作している現実世界空間における障害および／または現実世界空間の境界は、複数のユーザが互いに効果的に対話する能力に影響を及ぼし得る。
【発明の概要】
【課題を解決するための手段】
【０００５】
概要
ある局面において、方法は、第１の物理空間と関連付けられた少なくとも１つの物理的な制約を検出することと、第１の物理空間における第１のユーザの位置および向きと、検出した第１の物理空間と関連付けられた少なくとも１つの物理的な制約とに基づいて、第１の物理空間における第１の物理経路を検出することと、第２の物理空間と関連付けられた少なくとも１つの物理的な制約を検出することと、第２の物理空間における第２のユーザの位置および向きと、検出した第２の物理空間と関連付けられた少なくとも１つの物理的な制約とに基づいて、第２の物理空間における第２の物理経路を検出することと、第１のユーザに対して第１の向きで仮想環境を第１のユーザに表示することと、第２のユーザに対して第２の向きで仮想環境を第２のユーザに表示することとを含み得、仮想環境は共有仮想空間における第１および第２のユーザに提示され、表示することは、第１の物理経路と、共有仮想空間において提示される仮想環境の文脈と、共有仮想空間における第１の仮想経路とに基づいて、仮想環境の仮想特徴を共有仮想空間における第１のユーザに対して方向付けることと、第２の物理経路と、共有仮想空間において提示される仮想環境の文脈と、共有仮想空間における第２の仮想経路とに基づいて、仮想環境の仮想特徴を共有仮想空間における第２のユーザに対して方向付けることとを含む。
【０００６】
別の局面において、非一時的なコンピュータ可読媒体上にコンピュータプログラムプロダクトが具現化され得る。コンピュータ可読媒体上に一連の命令が格納され得、命令はプロセッサによって実行されるとプロセッサに方法を実行させる。当該方法は、第１の物理空間と関連付けられた少なくとも１つの物理的な制約を検出することと、第１の物理空間における第１のユーザの位置および向きと、検出した第１の物理空間と関連付けられた少なくとも１つの物理的な制約とに基づいて、第１の物理空間における第１の物理経路を検出することと、第２の物理空間と関連付けられた少なくとも１つの物理的な制約を検出することと、第２の物理空間における第２のユーザの位置および向きと、検出した第２の物理空間と関連付けられた少なくとも１つの物理的な制約とに基づいて、第２の物理空間における第２の物理経路を検出することと、仮想環境の仮想特徴を第１の向きで第１のユーザに表示することと、仮想環境の仮想特徴を第２の向きで第２のユーザに表示することとを含み得、仮想環境は、共有仮想空間における第１および第２のユーザに提示され、共有仮想空間における第１のユーザに対する仮想環境の仮想特徴の第１の向きは、第１の物理経路と、仮想環境の文脈と、共有仮想空間における第１の仮想経路とに基づいており、共有仮想空間における第２のユーザに対する仮想環境の仮想特徴の第２の向きは、第２の物理経路と、共有仮想空間において提示される仮想環境の文脈と、共有仮想空間における第２の仮想経路とに基づいている。
【０００７】
１つ以上の実装例の詳細を添付の図面および以下の説明に記載する。その他の特徴は、明細書および図面から、ならびに特許請求の範囲から明らかであろう。
【図面の簡単な説明】
【０００８】
【図１】拡張および／または仮想現実システムの例示的な実装例の図である。
【図２Ａ】本明細書に記載の実装例に従う、ヘッドマウントディスプレイデバイスの斜視図である。
【図２Ｂ】本明細書に記載の実装例に従う、ヘッドマウントディスプレイデバイスの斜視図である。
【図３】本明細書に記載の実装例に従う、拡張および／または仮想現実システムが生成する共有仮想空間を体験する複数のユーザの配置および方向付けを提供する例示的なシステムのブロック図である。
【図４Ａ】本明細書に記載の実装例に従う、拡張および／または仮想現実システムが生成する共有仮想空間を体験する複数のユーザの配置および方向付けのためのシステムの例示的な実装例を示す図である。
【図４Ｂ】本明細書に記載の実装例に従う、拡張および／または仮想現実システムが生成する共有仮想空間を体験する複数のユーザの配置および方向付けのためのシステムの例示的な実装例を示す図である。
【図４Ｃ】本明細書に記載の実装例に従う、拡張および／または仮想現実システムが生成する共有仮想空間を体験する複数のユーザの配置および方向付けのためのシステムの例示的な実装例を示す図である。
【図４Ｄ】本明細書に記載の実装例に従う、拡張および／または仮想現実システムが生成する共有仮想空間を体験する複数のユーザの配置および方向付けのためのシステムの例示的な実装例を示す図である。
【図５Ａ】本明細書に記載の実装例に従う、拡張および／または仮想現実システムが生成する共有仮想空間を体験する複数のユーザの配置および方向付けのためのシステムの例示的な実装例を示す図である。
【図５Ｂ】本明細書に記載の実装例に従う、拡張および／または仮想現実システムが生成する共有仮想空間を体験する複数のユーザの配置および方向付けのためのシステムの例示的な実装例を示す図である。
【図６】本明細書に記載の実装例に従う、共有仮想空間において複数のユーザを方向付ける方法のフローチャートの図である。
【図７】本明細書に記載の技法を実現するために使用され得るコンピュータデバイスおよびモバイルコンピュータデバイスの例を示す図である。
【発明を実施するための形態】
【０００９】
詳細な説明
拡張現実（ＡＲ）および／または仮想現実（ＶＲ）システムは、たとえばヘッドマウントディスプレイ（ＨＭＤ）デバイスまたは同様のデバイスを含み得る。当該デバイスは、たとえばユーザの頭部に装着されて、没入型仮想環境を生成する。ユーザは、現実世界環境または現実世界空間にいながら仮想環境を体験することができ、現実世界環境におけるユーザの動きが仮想世界環境における対応する動きに変換される。現実世界環境における物理的な制約は、ユーザが仮想環境で自由に動く能力、および仮想環境で仮想の物体、特徴、要素などと効果的に対話する能力に影響を及ぼし得る。現実世界環境における物理的な制約は、同一の仮想環境を占有または共有している複数のユーザ同士の効果的な対話にも影響を及ぼし得るかまたは対話を阻止し得る。これら物理的な制約として、たとえば、現実世界環境における壁などの物理的な境界があり得る。これら物理的な制約として、現実世界環境における家具等、現実世界環境における他の人々、ペット等、などの物理的な障害もあり得る。本明細書に記載の実装例に従うシステムおよび方法は、各ユーザが物理的に存在している現実世界環境の既知の物理的な制約および／または物理的な障害を前提として、仮想環境の仮想特徴を、共有仮想環境における１人または複数のユーザに対して選択的に位置決めして方向付け得る。この位置決めおよび方向付けによって、ユーザがアクセス可能な物理空間の量が最大化され、仮想環境における仮想特徴および／または仮想環境を共有しているその他の仮想キャラクタとの対話が向上し得る。たとえば、ある実装例では、仮想環境の仮想特徴のこの位置決めおよび方向付けによって、ユーザは遮られていない三次元体積経路に沿って自然に引き寄せられるため、物理環境と関連付けられた物理的な制約および物理的な障害を前提として、システムが判断する物理環境における最大量の途切れない物理的な動きが可能となり得る。以下、単に記述および例示を簡単にするために、この体積経路を物理経路と称する場合もある。
【００１０】
図１は、本明細書に記載の実装例に従うシステムおよび方法の複数のユーザのうちの１人を示す。図１に示すように、ＨＭＤ１００を装着しているユーザは、たとえばコントローラ、スマートフォン、またはその他の携帯型ハンドヘルド電子装置などの、携帯型のまたはハンドヘルド型の電子装置１０２を手に持っている。ハンドヘルド電子装置１０２は、たとえば、有線接続、またはたとえばｗｉｆｉもしくはＢｌｕｅｔｏｏｔｈ（登録商標）接続などの無線接続を介してＨＭＤ１００とペアリングされ、またはＨＭＤ１００に作動的に結合され、ＨＭＤ１００と通信し得る。このペアリングまたは作動的な結合によってハンドヘルド電子装置１０２とＨＭＤ１００との間のデータの通信および交換が提供され得るため、ハンドヘルド電子装置１０２はＨＭＤ１００が生成する仮想環境との対話および当該環境への入力を容易にし得る。
【００１１】
図２Ａおよび図２Ｂは、たとえば図１のユーザが装着しているＨＭＤ１００のようなＨＭＤの一例の斜視図である。このＨＭＤは、没入型仮想現実環境を生成する。ＨＭＤ１００は、フレーム１２０に、結合たとえば回転可能に結合および／または取外し可能に装着される筐体１１０を含み得る。たとえばヘッドフォンに搭載されたスピーカを含む音声出力装置１３０もフレーム１２０に結合されてもよい。図２Ｂでは、筐体１１０の前面１１０ａは、筐体１１０に収容されている部品の一部が見えるように、筐体１１０の基部１１０ｂから回転して離れている。ディスプレイ１４０が筐体１１０の前面１１０ａに搭載されていてもよい。レンズ１５０は、筐体１１０の内部において、前面１１０ａが筐体１１０の基部１１０ｂに対して閉じられた位置にあるときにユーザの目とディスプレイ１４０との間になるように装着され得る。レンズ１５０の位置をユーザの目のそれぞれの光軸と位置合わせすることにより、比較的広い視野および比較的短い焦点距離がもたらされ得る。ある実装例では、ＨＭＤ１００は、さまざまなセンサを含む検知システム１６０と、プロセッサ１９０およびＨＭＤ１００の操作を容易にするさまざまな制御システム装置を含む制御システム１７０とを含み得る。
【００１２】
ある実装例では、ＨＭＤ１００は、ＨＭＤ１００の外部の現実世界環境の静止画および動画を撮影するカメラ１８０を含み得る。ある実装例では、カメラ１８０が撮影した画像を、ユーザに対してパススルーモードでディスプレイ１４０に表示することで、ユーザが、ＨＭＤ１００を外すことなく、そうでなければＨＭＤ１００の構成を変更して筐体１１０を動かしてユーザの視線から外すことなく、現実世界環境から画像を見ることができるようにしてもよい。
【００１３】
ある実装例では、ＨＭＤ１００は光学追跡装置１６５を含み得る。光学追跡装置１６５は、たとえば１つ以上の画像センサ１６５Ａを含む。この画像センサは、たとえば、光学位置（たとえば注視）、光学活動（たとえばスワイプ）、光学ジェスチャ（たとえば瞬きなど）といったユーザ眼球運動および活動を検出して追跡する。ある実装例では、ＨＭＤ１００は、光学追跡装置１６５が検出した光学活動が、ＨＭＤ１００が生成した仮想環境において対応する対話に変換されることになるユーザ入力として処理されるように構成されてもよい。
【００１４】
本明細書に記載の実装例に従う、共有仮想環境においてユーザを方向付けるためのシステムのブロック図を図３に示す。当該システムは、第１のユーザ電子装置３００を含み得る。ある実装例では、第１のユーザ電子装置３００は第２のユーザ電子装置３０２と通信してもよい。第１のユーザ電子装置３００は、たとえば、ユーザが体験することになる没入型仮想環境を生成する、図１、図２Ａおよび図２Ｂに関して上述したようなＨＭＤであってもよく、第２のユーザ電子装置３０２は、たとえば、第１のユーザ電子装置３００と通信して仮想没入型環境とのユーザの対話を容易にする、図１に関して上述したようなハンドヘルド電子装置であってもよい。
【００１５】
第１の電子装置３００は、検知システム３６０と制御システム３７０とを含み得る。これらシステムは、図２Ａおよび図２Ｂに示す検知システム１６０および制御システム１７０とそれぞれ同様であってもよい。検知システム３６０は、たとえば、光センサ、音声センサ、画像センサ、距離／近接センサ、たとえば加速度計およびジャイロスコープを含む慣性測定システム、ならびに／またはその他のセンサおよび／もしくはセンサの各種組合わせを含む、多種多様なセンサを含み得る。ある実装例では、光センサ、画像センサおよび音声センサは、たとえば図２Ａおよび図２Ｂに示すＨＭＤ１００のカメラ１８０のようなカメラなどの、１つの構成要素に含まれていてもよい。ある実装例では、検知システム３６０は、たとえば図２Ｂに示す光学追跡装置１６５と同様の装置などの、ユーザの光学活動を検出して追跡するように位置決めされた画像センサを含んでいてもよい。制御システム３７０は、たとえば、電源／停止制御装置、音声およびビデオ制御装置、光学制御装置、遷移制御装置、ならびに／またはその他のこのような装置および／もしくは装置の各種組合わせを含む、多種多様な装置を含み得る。ある実装例では、検知システム３６０および／または制御システム３７０は、特定の実装例に応じて、より多いまたはより少ない装置を含んでいてもよい。検知システム３６０および／または制御システム３７０に含まれる要素は、たとえば、図２Ａおよび図２Ｂに示すＨＭＤ１００以外のＨＭＤの内部に、異なる物理的構成（たとえば異なる物理的位置）を有していてもよい。
【００１６】
第１の電子装置３００はまた、検知システム３６０および制御システム３７０と通信するプロセッサ３９０と、たとえば制御システム３７０のモジュールからアクセス可能なメモリ３８０と、第１の電子装置３００とたとえば第１の電子装置３００とペアリングされた第２の電子装置３０２などの別の外部装置との間の通信を提供する通信モジュール３５０とを含み得る。
【００１７】
第２の電子装置３０２は、第２の電子装置３０２とたとえば第２の電子装置３０２とペアリングされた第１の電子装置３００などの別の外部装置との間の通信を提供する通信モジュール３０６を含み得る。たとえば第１の電子装置３００と第２の電子装置３０２との間の電子データの交換を提供することに加えて、ある実装例では、通信モジュール３０６は光線またはビームを発するようにも構成されてもよい。第２の電子装置３０２は検知システム３０４を含み得る。検知システム３０４は、たとえば、カメラおよびマイクに含まれるような画像センサおよび音声センサ、慣性測定装置、ハンドヘルド電子装置のタッチセンシティブ画面に含まれるようなタッチセンサ、ならびにその他のこのようなセンサおよび／またはセンサの各種組合わせを含む。プロセッサ３０９は、第２電子装置３０２の検知システム３０４およびコントローラ３０５と通信してもよい。コントローラ３０５は、メモリ３０８にアクセスすることができ、第２の電子装置３０２の全体の動作を制御する。
【００１８】
拡張および／または仮想現実システムでは、本明細書に記載の実装例に従って、各ユーザは各自の現実世界環境、または現実世界空間、または部屋の中を物理的に動くことにより、仮想環境における対応する動きをもたらし得る。当該システムは、現実世界環境におけるユーザの動きを追跡し得、現実世界環境におけるユーザの物理的な動きと協調して仮想環境における知覚された動きをもたらし得る。つまり、現実世界環境におけるユーザの動きが仮想環境における動きに変換されて、仮想環境における高まった存在感覚が生成され得る。ある実装例では、仮想環境は複数のユーザによって共有されてもよい。ある実装例では、共有仮想環境における複数のユーザは、同一の物理環境に物理的に存在していてもよい。ある実装例では、共有仮想環境における複数のユーザは、各々が共有仮想環境に仮想的に存在しつつ、各々が各自の物理環境に物理的に位置していてもよい。共有仮想環境では、複数のユーザが互いに対話する、仮想環境において仮想特徴との対話を共有する、などを行なってもよい。ある実装例では、共有仮想環境に仮想的に存在しているユーザを仮想キャラクタによって表現することにより、共有仮想環境におけるユーザ同士の対話をさらに向上させてもよい。
【００１９】
共有仮想環境に仮想的に存在している複数のユーザは、仮想環境において互いに近づいてそれぞれの仮想キャラクタ同士の対話を容易にしたいと望む場合がある。ある状況では、第１の現実世界環境における第１のユーザおよび第２の現実世界環境における第２のユーザは、それぞれの現実世界環境に位置決めされた物理的な障害のために互いに近づくことができないように、共有仮想環境の仮想特徴に対して位置決めされて方向付けられ得る。これによって、仮想環境における第１のユーザおよび第２のユーザ同士の効果的な対話が阻止され得る。この状況では、仮想テレポートまたはスクロール動作を実行して第１および第２のユーザを仮想的に互いに近づけてもよい。第１および第２のユーザがそれぞれの現実世界環境で物理的に動きながら仮想環境で互いに近づくことができるこの能力によって、各ユーザの仮想体験が向上し得る。たとえば、第１のユーザは、仮想環境においてターゲット（当該ターゲットはたとえば第２のユーザであり得る）に近づきたいと望む場合がある。これは、物理環境における第１のユーザの対応する動きを必要とし得る。たとえば壁などの物理的な障害によってこのような物理的な動きが阻止される場合は、ユーザは仮想世界には存在しない物理世界における障害に直面するため、仮想環境におけるユーザの存在感覚が減少し得る。この物理的な障害との遭遇は、仮想環境からのユーザの切り離しにつながり得る。
【００２０】
単に記述および例示を簡単にするために、以下、現実世界環境または現実世界空間を部屋と考えることにする。この部屋は、現実世界環境の物理的な境界を規定する壁、床および天井を有しており、現実世界環境における動きの物理的な障害となる物理的なオブジェクトが部屋全体にわたって位置決めされている。対照的に、仮想環境には本質的に境界がなくてもよく、仮想環境におけるユーザの仮想的な動きは、それぞれのユーザが物理的に存在している物理的な部屋の範囲、または境界、または物理的な制約によってのみ制限される。
【００２１】
ある実装例では、部屋の物理的な境界、たとえば、壁の相対的な位置決め、および部屋全体のさまざまな静止した物理オブジェクト（たとえば、家具、ドアなど）の位置決めは、仮想現実システムによって既知であってもよい。ある実装例では、物理的な境界および物理的な障害は、たとえば、仮想没入型体験の開始時の部屋のスキャンと、壁および部屋の中の物理的なオブジェクトの相対位置の較正とに基づいて求められてもよい。このスキャンは、たとえば、図２Ａ〜図２Ｂに示すカメラ１８０およびプロセッサ１９０、ならびに／または図３に示すセンサ３０４および／もしくは３６０およびプロセッサ３０９および／もしくは３９０などの、カメラおよび／またはその他の画像処理装置によって達成されてもよい。ある実装例では、部屋の物理的な境界は、たとえば、標準的なおよび／または既知の構成を有する部屋の中に仮想現実システムをインストールすることなどに基づいて既知であってもよい。ある実装例では、仮想現実システムは、壁、ならびに、たとえば家具、ドア（およびドアの開閉）、他の人々、ペットなどのその他の物理オブジェクト（静止型および移動型の双方）などの、物理的な境界を検出して更新するように設定されてもよい。この検出は、ユーザがたとえば境界および／または障害に近づくと、上述の撮像装置、センサ、プロセッサなどによって、本質的にリアルタイムで達成されてもよい。
【００２２】
ある実装例では、仮想現実システムは、ユーザが動くと部屋の中を物理的に動いている場合がある、かつユーザが部屋の中を動くとユーザに対する物理的な障害となる場合がある、部屋の中の他の人々、ペットなどの物理的位置を検出して定期的に更新してもよい。ある状況では、部屋の中の他の人／人々もユーザとともに共有仮想環境を占有している場合があるため、ユーザは他の人／人々の存在を認識している場合があるが、他の人々／人の部屋の中の物理的位置は必ずしも認識しているとは限らないので、他の人／人々はユーザの物理的な障害となる／ユーザを潜在的に物理的な危険にさらす場合がある。ある状況では、他の人／人々（および／またはペット）も部屋の中にいる場合があるが、ユーザと同一の仮想環境に加わっていない場合があり、および／またはユーザの仮想体験の開始後に部屋に入ってきた場合がある。この場合、ユーザは部屋の中のそれらの物理的位置を認識していない可能性が最も高いので、それらはユーザの物理的な障害となるおよび／またはユーザを潜在的に物理的な危険にさらす。
【００２３】
ある実装例では、特定の部屋の物理的構成が分かると（物理的な壁によって規定される境界、部屋のその他の物理的特徴、および／または部屋の中のその他の物理的な障害を含む）、仮想環境のサイズ、または範囲が、単にこれら既知の物理的な制約の中に収まるように設計および／または適合されてもよい。しかし、仮想環境に対してこれらの種類の制約を課すと、このような制約がなければ複数のユーザ間での共有に対応可能となる、かつより広範なユーザの動き、探検、および対話を提供することになる、はるかに広範な仮想環境を生成可能なシステムを、不必要に制限してしまう場合がある。
【００２４】
ある実装例では、ユーザが現実世界環境で動いて、現実世界環境におけるユーザのさらなる物理的な動きを制限することになる壁（既知であるか、またはシステムによってリアルタイムで検出される）に近づくと、システムは仮想環境を自動的にスクロールさせてもよい。この仮想環境の自動的なスクロールによって、ユーザを現実世界空間内で再方向付けする目的で、ユーザの向きを変えさせて、さらなる物理的な動きに対応してもよい。ある実装例では、システムは、仮想環境内で自動的にユーザにテレポートさせてもよいし、視方向および／または向きを変えさせてもよい。この自動的なスクロールおよび／またはテレポートによってユーザは効果的に再方向付けられ得るが、その間、方向感覚の喪失が生じるため、ユーザが仮想環境において存在を維持することが困難になり得る。この切り離しは、複数のユーザが同一の共有仮想環境に仮想的に存在している状況では悪化し得る。開示される技術は、このような再方向付けが必要となる状況の必要性および機会、たとえば頻度を減らすよう意図されている。
【００２５】
本明細書に記載の実装例に従うシステムおよび方法では、各ユーザのそれぞれの現実世界環境または物理空間のすべての方向における当該ユーザと任意の物理的な障害および／または物理的な境界との間の物理的距離が、たとえば、上述のようなシステムに含まれるさまざまなセンサおよび／またはプロセッサによって求められてもよい。各ユーザの現実世界環境または物理空間の表現が、たとえば、仮想環境におけるユーザの所望の向きおよび仮想的な動きを考慮して、共有されることになる仮想環境に重ね合わせられてもよい。これによって、仮想環境が、各ユーザのそれぞれの物理的な現実世界環境における物理的な動き、および仮想環境における仮想的な動きの双方について、最適化されることになる当該ユーザに提示される、または当該ユーザに対して方向付けられる態様が可能となり得る。すなわち、仮想環境は、各ユーザが、自身のそれぞれの物理空間における自身の向きに基づいて仮想環境において方向付けられて、物理空間における既知の物理的な制約を前提として、仮想環境において可能な、遮られていない最長の移動距離、および／または仮想空間を仮想的に共有しているその他のユーザへの最も明確な経路を提供するように、各ユーザに提示され得るか、または各ユーザに対して方向付けられ得る。
【００２６】
図４に示すように、第１のユーザＡが、第１の物理的な現実世界環境４００、または第１の部屋４００、または第１の物理空間４００の中に物理的に位置決めされ得る。第２のユーザＢが、第１の物理空間４００とは異なる第２の物理的な現実世界環境５００、または第２の部屋５００、または第２の物理空間５００の中に物理的に位置決めされ得る。第１のユーザＡおよび第２のユーザＢは、将来の共通の仮想空間６００において共に同一の仮想体験に加わることを選択し得る。共通の仮想空間６００では、第１および第２のユーザＡおよびＢは別々の物理空間４００および５００をそれぞれ物理的に占有しているにも関わらず、共有仮想環境は第１のユーザＡおよび第２のユーザＢによって共有され得る。
【００２７】
上述のように、ある実装例では、第１の物理空間４００の、および／または第２の物理空間５００の物理的な制約（物理的な境界、物理的な障害など）はシステムによって既知であってもよい。ある実装例では、第１の物理空間４００の、および／または第２の物理空間５００の物理的な制約（物理的な境界、物理的な障害など）は、たとえば、仮想体験の開始前の物理空間４００、５００のスキャンと、ユーザＡおよびＢへの仮想環境、特に共有仮想空間６００の提示とに基づいて求められてもよい。上述のように、物理空間４００、５００のこのようなスキャンは、たとえば、ＨＭＤ１００上のカメラ１８０および／もしくはその他のセンサ、ハンドヘルド電子装置１０２上のセンサ、ならびに／または物理空間４００、５００を撮影可能なシステムに含まれるその他のセンサによって行なわれてもよい。上述のように、ある実装例では、第１の物理空間４００および第２の物理空間５００の物理的な制約（物理的な境界、物理的な障害など）は定期的にまたは間欠的に更新されてもよい。これによって、物理空間４００、５００における物理的な障害が移動または変化した場合に、それぞれの物理空間の本質的にリアルタイムの物理的状態が提供され得る。たとえば、この間欠的なスキャンおよびリアルタイムの更新によって、物理的な障害を表わすドアの開閉、物理空間で動いているおよび／または物理空間に入ってくる他人／ペットなど、ならびに移動および／または変化し得るその他のこのような物理的な障害の指示が提供され得る。
【００２８】
第１の物理空間４００および／または第２の物理空間５００の物理的な制約が、特定の空間の既知の構成に基づいて予め入手可能であるか、仮想体験の開始要求に応じた物理空間のスキャンに基づいて求められるかにかかわらず、システムは、物理空間内の遮られていない最長の経路を求めることができ、ユーザはこの経路に沿って物理空間の中を動くことができる。一例では、この経路は直線であってもよい。たとえば、図４Ａに示すように、システムは、第１の物理空間４００における第１のユーザＡの現在の位置を前提とした、第１の物理空間４００内の最も遮られていない最長のルートまたは経路は、第１の物理ルート４２０、または第１の物理経路４２０、または第１の体積経路４２０であると判断し得る。同様に、システムは、第２の物理空間５００における第２のユーザＢの現在の位置を前提とした、第２の物理空間５００内の最も遮られていない最長のルートまたは経路は、図４Ａに示す第２の物理ルート５２０、または第２の物理経路５２０、または第２の体積経路５２０であると判断し得る。第１の物理経路４２０および第２の物理経路５２０は、ユーザの動きを妨げるまたは遮ることになる物理的な制約が比較的ないそれぞれの物理空間４００、５００の中のルートまたは経路を表わし得る。このような物理的な制約として、たとえば、空間におけるユーザの動きを妨げることになる、床空間を占有するおよび／または物理空間内に延びる静止した物理オブジェクトなどの、物理空間における物理オブジェクトがあり得る。たとえば、物理空間の床に位置決めされた家具は、物理空間におけるユーザの動きを阻止するまたは遮る場合があるが、物理空間の天井に設置された照明器具はそのようなことはない。システムは、物理空間におけるユーザの動きに物理的な制約を課すオブジェクトを検出し、物理空間内の最も遮られていない物理的なルートまたは経路を求め得る。つまり、最も遮られていない物理的なルートは、たとえば、物理環境におけるユーザと任意の可能性のある物理的な障害との間の物理環境における最長距離であり得る。
【００２９】
仮想環境は、求められた第１の物理経路４２０に基づいて第１のユーザＡに提示されるように方向付けられ得る。同様に、仮想環境は、求められた第２の物理経路５２０に基づいて第２のユーザＢに提示されるように方向付けられ得る。第１および第２のユーザＡおよびＢへのこの仮想環境の提示の方向付けは、たとえば、第１のユーザＡおよび第２のユーザＢが共有することになる特定の仮想環境の特徴に基づいていてもよい。たとえば、ある実装例では、特定の仮想環境の特徴は、第１のユーザＡおよび第２のユーザＢ同士の（たとえば、共有仮想空間６００において第１の仮想ユーザＡを表わす第１の仮想キャラクタと、共有仮想空間６００において第２の仮想ユーザＢを表わす第２の仮想キャラクタとの間の）対話に適している場合がある。
【００３０】
この状況では、仮想環境、または共有仮想空間６００は、第２のユーザＢの仮想表示に向かう、比較的明確な、かつ比較的遮られていない仮想ルートまたは経路６２０Ａとともに、第１のユーザＡに提示され得る。仮想ルートまたは経路６２０Ａは、ユーザに対する、かつユーザが近づくことになるターゲットに対する仮想環境の仮想特徴の位置決めに基づいて、比較的明確であり、かつ比較的遮られていないと考えられ得るため、ユーザは、仮想経路６２０Ａに対応する仮想環境における仮想方向に自然に引き寄せられる。共有仮想空間６００内の仮想環境における仮想特徴は、第１のユーザＡが、これら仮想特徴の配置によって、第１の物理空間４００における第１の物理ルートまたは経路４２０に対応する方向に自然に引き寄せられるように、第１のユーザＡに対して方向付けられ得る。これによって、第１のユーザＡは、図４Ａおよび図５Ａに示すように、仮想空間６００内の比較的明確で比較的遮られていない仮想経路６２０Ａ、および物理空間４００内の比較的明確で比較的遮られていない物理経路４２０をたどって、第２のユーザＢの仮想表現に向かって歩くことができる。同様に、この状況では、仮想環境、または共有仮想空間６００は、第１のユーザＡの仮想表示に向かう、明確で遮られていない仮想経路６２０Ｂとともに、第２のユーザＢに提示され得る。共有仮想空間６００内の仮想環境における仮想特徴は、第２のユーザＢが、これら仮想特徴の配置によって、第２の物理空間５００における第２の物理ルートまたは経路５２０に対応する方向に自然に引き寄せられるように、第２のユーザＢに対して方向付けられ得る。これによって、第２のユーザＢは、図４Ａおよび図５Ａに示すように、仮想空間６００内の明確で遮られていない仮想ルートまたは経路６２０Ｂ、および物理空間５００内の明確で遮られていない物理経路５２０をたどって、第１のユーザＡの仮想表現に向かって歩くことができる。
【００３１】
図４Ａに示す例では、共有仮想空間６００は第１の物理空間４００に点線で重ね合わせられている。図４Ａでは、共有仮想空間６００は第２の物理空間５００にも点線で重ね合わせられている。共有仮想空間６００の向きは、第１の物理空間４００に重ね合わせられた共有仮想空間６００の表現における文字Ｆの表現に対する、かつ第２の物理空間５００に重ね合わせられた共有仮想空間６００の表現における文字Ｆの向きに対する、図４Ａの下部の共有仮想空間６００の表現における文字Ｆの向きに基づいて確かめることができる。図４Ａに示す例では、第１のユーザＡへの仮想環境の提示は、第１のユーザを、第２のユーザＢの仮想表現に向かって、または第１の仮想経路６２０Ａに対応する第１の物理経路４２０に沿って引き寄せるように方向付けられている。同様に、第１のユーザＡへの仮想環境の提示は、第１のユーザを、第２のユーザＢの仮想表現に向かって、または第２の仮想経路６２０Ｂに対応する第２の物理経路５２０に沿って引き寄せるように方向付けられている。したがって、図４Ａに示す例では、共有仮想空間６００内に提示される仮想環境における第１のユーザＡと第２のユーザＢとの対話の機会が、仮想環境を生成する特定のアプリケーションの文脈の中で最大化され得る。仮想経路６２０Ａおよび６２０Ｂは、本開示では所望の仮想経路として、またはさらには方向付け用の仮想特徴としても記載される。所望の仮想経路は、たとえば、ユーザに対する仮想環境の仮想特徴の向き、仮想環境におけるユーザの仮想的な動き、仮想環境に没入しているその他のユーザの仮想的な位置、または仮想環境におけるユーザの近くの予め定められた仮想的な対象点に基づいて求められ得る。
【００３２】
ある実装例では、共有仮想空間６００において提示される仮想環境は、仮想環境における第１のユーザＡおよび第２のユーザＢと１つ以上の仮想の物体、要素、特徴などとの対話を促進するように構成され得る。たとえば、図４Ｂに示すように、ある実装例では、第１のユーザＡおよび第２のユーザＢの各々が、共有仮想空間６００内に提示される仮想環境において仮想オブジェクトＣとの対話を望む場合がある。この状況では、仮想環境または共有仮想空間６００は、仮想オブジェクトＣに向かう明確な仮想経路６２０Ａとともに第１のユーザＡに提示され得る。共有仮想空間６００内の仮想環境における仮想特徴は、第１のユーザＡが、これら仮想特徴の配置によって、第１の物理空間４００における第１の物理経路４２０に対応する方向に自然に引き寄せられるように、第１のユーザＡに対して方向付けられ得る。これによって、第１のユーザＡは、図４Ｂおよび図５Ｂに示すように、仮想空間６００における明確な仮想経路６２０Ａ、および物理空間４００における明確な物理経路４２０をたどって、仮想オブジェクトＣに向かって歩くことができる。同様に、この状況では、仮想環境、または共有仮想空間６００は、仮想オブジェクトＣに向かう明確な仮想経路６２０Ｂとともに第２のユーザＢに提示され得る。一例では、仮想オブジェクトＣは、ユーザの対象点に対応する仮想環境における予め定められた位置である。共有仮想空間６００内の仮想環境における仮想特徴は、第２のユーザＢが、たとえば、これら仮想特徴の配置によって、第２の物理空間５００における第２の物理経路５２０に対応する方向に自然に引き寄せられるように、第２のユーザＢに対して方向付けられ得る。これによって、第２のユーザＢは、図４Ｂおよび図５Ｂに示すように、仮想空間６００における明確な仮想経路６２０Ｂ、および物理空間５００における明確な物理経路５２０をたどって、仮想オブジェクトＣに向かって歩くことができる。
【００３３】
したがって、仮想環境の文脈によって、ユーザは仮想環境において特定の方向に自然に引き寄せられ得る。すなわち、仮想環境の文脈は、たとえば、仮想環境における特定のシーンが、第１および第２のユーザＡおよびＢ同士の対話のためのものであるか、ならびに／または第１および第２のユーザＡおよびＢと、仮想環境の１つ以上の特定の仮想特徴との対話、ならびにこのような対話を引出すための仮想環境における仮想特徴の仮想配置のためのものであるか、を含み得る。すなわち、ユーザＡに対する仮想特徴の仮想配置を含む、ユーザＡに提示されるような仮想環境の文脈によって、ユーザＡは第１の仮想経路６２０Ａに沿って（ユーザＢに向かって、および／または仮想要素Ｃに向かって）自然に引き寄せられ得る。同様に、ユーザＢに対する仮想特徴の仮想配置を含む、ユーザＢに提示されるような仮想環境の文脈（ユーザＡに提示されるのと同一の仮想環境の文脈とは異なり得る）によって、ユーザＢは第２の仮想経路６２０Ｂに沿って（ユーザＡに向かって、および／または仮想要素Ｃに向かって）自然に引き寄せられ得る。
【００３４】
ユーザＡが第１の物理空間４００を占有し、ユーザＢが第２の物理空間５００を占有するこれらの例では、ユーザＡおよびユーザＢは互いを物理的な衝突の危険にさらすことはない。しかし、他人（共有仮想空間６００における仮想環境に加わっていない）、ペットなどが物理空間４００または５００に入ってくる場合がある。物理空間４００／５００に入ってくる、新たに入場する人／ペットは共有仮想空間６００にいないため、対応する物理空間４００／５００におけるユーザＡ／Ｂは、付加的な装置および／または検出および／または計算能力を使用しなければ、新たに存在する人／ペットとの衝突を回避するのに間に合うようにこれらの人／ペットを認識できない場合がある。したがって、この種の例では、新たに存在する人／ペットは、物理空間４００／５００におけるユーザＡ／Ｂを衝突の危険にさらし得る。したがって、ある実装例では、システムは、対応する物理空間４００／５００を間欠的に／定期的にスキャンし、新たに存在する人／ペットを含めるように、物理空間４００／５００と関連付けられた物理的な制約を更新してもよい。システムは次に、新たに存在する人／ペットおよび／またはこの人／ペットの対応する動きを考慮して、対応する物理空間４００／５００においてユーザＡ／Ｂがたどることになる経路を更新してもよい。
【００３５】
ある状況では、第１のユーザＡおよび第２のユーザＢは、図４Ｃに示すように、同一の物理空間、たとえば第１の物理空間４００に物理的に存在し得る。この状況では、システムは、上述のように、第１の物理空間４００における第１のユーザＡの位置および向きに基づいて、第１のユーザＡについての第１の物理空間４００における最長の物理経路４２０を求め得る。同様に、システムは、上述のように、第１の物理空間４００における第２のユーザＢの位置および向きに基づいて、第２のユーザＢについての第１の物理空間４００における最長の物理経路５２０を求め得る。
【００３６】
第１の物理空間４００におけるユーザＡについての最長の物理経路４２０は、物理空間４００の物理的な制約（たとえば壁）と、物理空間４００における物理的な障害とに基づいて求められ得る。物理的な障害は、たとえば、物理空間４００における家具などの静止オブジェクトと、物理空間４００におけるユーザＢなどの非静止オブジェクトとを含み得る。ある実装例では、物理的な障害は、他人の第１の物理空間４００への検出された入場、ペットの物理空間４００への検出された入場などを含み得る。したがって、物理空間４００におけるユーザＡについての最長の物理経路４２０を求める際、システムは、ユーザＢも、衝突回避のために考慮すべき物理的な障害と見なし得る。システムは、他人またはペットの検出された入場も、衝突回避のために考慮すべき物理的な障害と見なし得る。すなわち、システムは、物理空間４００におけるユーザＡとこれら物理的な障害のいずれかとの衝突を回避するために、ユーザＢがたどる可能性が高い物理経路（たとえば最長の物理経路５２０）、および、いずれかの新たな人々、ペットなどの物理空間４００への検出された入場も考慮して、ユーザＡについての最長の物理経路４２０を設定し得る。同様に、物理空間４００におけるユーザＢについての最長の物理経路５２０を求める際、システムは、ユーザＡ、および、他の人々、ペットなどの物理空間４００への検出された入場も、衝突回避のために考慮すべき物理的な障害と見なし得る。すなわち、システムは、物理空間４００におけるユーザＢと物理的な障害との衝突を回避するために、ユーザＡがたどる可能性が高い物理経路（たとえば最長の物理経路４２０）、および、他人／ペットの当該物理空間への検出された入場も考慮して、ユーザＢについての最長の物理経路５２０を設定し得る。この分析は反復的に実行されて、第１および第２のユーザＡおよびＢについての第１および第２の経路４２０および５２０が設定されることにより、第１および第２のユーザＡおよびＢ同士の衝突、ならびに第１および第２のユーザＡおよびＢと、物理空間４００に入った可能性があるがユーザＡおよびＢが認識していない可能性がある他人、ペットなどとの衝突が回避され得る。
【００３７】
共有仮想空間６００において提示される仮想環境は次に、図４Ａおよび図５Ａに関して上記に詳述したように、第１のユーザＡおよび第２のユーザＢ同士の対話を促進するように、第１および第２のユーザＡおよびＢのそれぞれの位置および向きと、物理空間４００における第１のユーザＡおよび第２のユーザＢの移動経路とに基づいて、第１の向きで第１のユーザＡに、第２の向きで第２のユーザＢに提示され得る。同様に、共有仮想空間６００において提示される仮想環境は次に、図４Ｂおよび図５Ｂに関して上記に詳述したように、共有仮想空間６００において提示される仮想環境における１つ以上の仮想要素との対話を促進するように、第１および第２のユーザＡおよびＢのそれぞれの位置および向きと、物理空間４００における第１のユーザＡおよび第２のユーザＢの移動経路とに基づいて、第１の向きで第１のユーザＡに、第２の向きで第２のユーザＢに提示され得る。
【００３８】
ある実装例では、図４Ｃに関して上述したように、第１のユーザＡおよび第２のユーザＢが同一の物理空間に存在している場合、共有仮想空間６００における仮想環境の向き、または共有仮想空間６００における仮想空間の提示は、共有仮想空間６００に参加するまたは入る複数のユーザのうちの初めてのユーザの位置および向きに基づいて規定され得る。たとえば、第１の物理空間４００における第１のユーザＡは、仮想体験を開始して仮想空間６００に入り得る。仮想空間６００において提示される仮想環境の特徴は、物理空間４００における、かつ仮想空間６００における第１のユーザＡの動きの可能な最長のベクトルが第１のユーザＡに与えられるように方向付けられ得る。第２のユーザＢがその後で第１の物理空間４００に入り（第１のユーザＡと共に第１の物理空間４００に参加し）、第１のユーザＡと共に仮想環境に参加することを選択することによって仮想空間６００を共有した場合、共有仮想空間４００における仮想環境の要素および特徴の提示および向きは第１のユーザＡについて最適化されたままであり、仮想環境の要素および特徴の向きは、第１のユーザＡについて既に整えられている環境に基づいて第２のユーザＢに設定され提示され得る。
【００３９】
ある状況では、ユーザは、物理空間におけるユーザの物理的な前進に利用可能な、ユーザの真正面の物理経路が、部屋の物理的な制約の１つ以上によって制限されるように、物理空間において位置決めおよび／または方向付けられ得る。たとえば、図４Ｄに示すように、仮想体験が開始すると、第２のユーザＢは、第２のユーザＢの真正面の物理経路５１０（すなわち、第２のユーザＢが実質的に前へ歩くことによってたどることになる物理経路）が、第２の物理空間５００の物理的な制約によってある程度制限されるように、第２の物理空間５００において方向付けられ得る。図４Ｄに示す例では、第２のユーザＢは第２の物理空間５００の壁の方を向いている。このため、第２の物理空間５００におけるユーザＢの現在の物理的な向きに対応する物理経路５１０に沿って利用可能な前進の量が制限され得る。ユーザが沿って動くことができる物理経路を制限することになるこの種の物理的な制約が、たとえば所与の敷居内に検出されると、システムは、ユーザの向きを変えさせてから（または何らかの態様で物理的に再方向付けしてから）前進させてもよい。これによって、図４Ｄに示すように、ユーザはより長い経路に沿って、たとえば第２の物理経路５２０に沿って、再方向付けされ得る。ある実装例では、システムは、仮想環境における仮想特徴がどのようにユーザに提示されているかに基づいて、ユーザの向きを所望の向きに変えさせてもよいし、所望の向きに再方向付けしてもよい。たとえば、ある実装例では、システムは、ユーザが関わることになる仮想特徴をユーザの後ろに仮想的に位置決めすることにより、ユーザを自然に方向転換させて当該仮想特徴に関わらせるようにしてもよい。ある実装例では、システムは、音声および／または視覚合図、案内などに基づいてユーザの向きを変えさせてもよい。ある実装例では、システムは、音声合図および／または視覚合図とともに仮想環境における仮想特徴の配置に基づいてユーザの向きを変えさせてもよい。
【００４０】
図４Ｄに示す例は、第１の物理空間４００における第１のユーザＡ、および第１の物理空間４００とは別の第２の物理空間５００における第２のユーザＢを示す。しかし、図４Ｃに関して上述したように、たとえば第１のユーザＡおよび第２のユーザＢが同一の物理空間にいる場合は、上述の原理が適用され得る。
【００４１】
図４Ａ〜図４Ｄおよび図５Ａ〜図５Ｂに関して上述した例は、単に記述および例示を簡単にするために、第１のユーザおよび第２のユーザを含んでいる。本明細書に記載の原理は、１人のユーザのみが仮想空間を占有している状況に、または２人以上のユーザが同一の仮想空間を占有している場合に適用され得る。同様に、複数のユーザが同一の物理空間を占有してもよいし、異なる個々の物理空間を占有してもよいし、それらの組合せであってもよい。
【００４２】
本明細書に記載の実装例に従うシステムおよび方法では、図４Ａ〜図４Ｄに関して上述したように、共有仮想空間６００において提示される共有仮想環境に加わっている第１のユーザＡおよび第２のユーザＢは、共有仮想空間６００における最大化された対話および移動の機会を有し得る。システムは、第１の物理空間４００（および第１の物理空間４００における第１のユーザＡの位置）と第２の物理空間５００（および第２の物理空間５００における第２のユーザＢの位置）との重ね合わせを用いて、共有仮想空間６００における第１および第２のユーザＡおよびＢに仮想環境を提示するための向きを規定し得る。これによって、第１および第２のユーザＡおよびＢが第１および第２の物理空間４００および５００の中を動く（または第１および第２のユーザＡおよびＢが図４Ｃに示すように第１の物理空間４００の中を動く）際に、かつ共有仮想空間６００の中を動く際に、第１および第２のユーザは、物理空間４００および５００におけるそれぞれの可能な最長の物理経路に沿って、かつ共有仮想空間６００における所望の仮想経路に沿って動くことができる。
【００４３】
図４Ａ〜図４Ｄおよび図５Ａ〜図５Ｂに関して上述した処理のフローチャートを図６に示す。物理空間におけるユーザは、拡張および／または仮想現実システムを操作して、仮想空間で体験することになる仮想環境を生成し得る（ブロック６１０）。システムは、ユーザが物理的に存在している物理空間と関連付けられた物理的な制約と、物理空間における物理的な障害となる物理オブジェクトとを検出し得る（ブロック６２０）。これは、たとえば、物理空間のスキャン、および物理空間の予め記憶された物理的な制約と既知の物理空間と関連付けられた障害とにアクセスすることなどを含み得る。これは、物理空間における潜在的な衝突の障害となる、同一の物理空間におけるその他のユーザの検出を含み得る。物理空間と関連付けられた物理的な制約および物理的な障害に基づいて、システムは、物理空間における最長の物理経路をユーザに提供し得る物理空間における物理経路を生成し得る（ブロック６４０）。物理空間に物理的に存在するより多くのユーザを検出すると（ブロック６５０）、システムは、個々の各ユーザのそれぞれの物理空間と関連付けられた物理的な制約および物理的な障害を検出し（ブロック６３０）、個々の各ユーザについて対応する最長の物理経路を生成し得る（ブロック６４０）。システムは次に、各物理空間の物理的な制約および物理的な障害と、個々の各ユーザの最長経路とを重ね合わせることにより、特定のアプリケーションの文脈に応じて、所望の対話を最大化するために共有仮想空間における各ユーザに提示されることになる仮想環境の向きを求め得る（ブロック６６０）。この処理は、仮想体験が終了する（ブロック６７０）まで継続され得る。
【００４４】
図７は、本明細書に記載の技法とともに用いられ得る一般的なコンピュータデバイス９００および一般的なモバイルコンピュータデバイス９５０の例を示す。コンピューティングデバイス９００は、ラップトップ、デスクトップ、タブレット、ワークステーション、携帯情報端末、テレビ、サーバ、ブレードサーバ、メインフレーム、およびその他の適切なコンピューティングデバイスといった、様々な形態のデジタルコンピュータを表わすよう意図されている。コンピューティングデバイス９５０は、携帯情報端末、携帯電話、スマートフォン、およびその他の同様のコンピューティングデバイスといった、様々な形態のモバイル機器を表わすよう意図されている。ここに示すコンポーネント、それらの接続および関係、ならびにそれらの機能は例示であるよう意図されているに過ぎず、本文書に記載されるおよび／または請求される本発明の実装例を限定するよう意図されていない。
【００４５】
コンピューティングデバイス９００は、プロセッサ９０２と、メモリ９０４と、記憶装置９０６と、メモリ９０４および高速拡張ポート９１０に接続する高速インターフェイス９０８と、低速バス９１４および記憶装置９０６に接続する低速インターフェイス９１２とを含む。プロセッサ９０２は半導体ベースのプロセッサであってもよい。メモリ９０４は半導体ベースのメモリであってもよい。コンポーネント９０２、９０４、９０６、９０８、９１０、および９１２の各々は、さまざまなバスを使用して相互接続されており、共通のマザーボード上にまたはその他の態様で適宜搭載されてもよい。プロセッサ９０２は、コンピューティングデバイス９００内で実行される命令を処理可能であり、これらの命令は、ＧＵＩのためのグラフィカル情報を、高速インターフェイス９０８に結合されたディスプレイ９１６などの外部入出力デバイス上に表示するために、メモリ９０４内または記憶装置９０６上に格納された命令を含む。その他の実装例では、複数のプロセッサおよび／または複数のバスが、複数のメモリおよび複数のタイプのメモリとともに適宜使用されてもよい。また、複数のコンピューティングデバイス９００が接続されてもよく、各デバイスは（たとえば、サーババンク、ブレードサーバのグループ、またはマルチプロセッサシステムとして）必要な動作の一部を提供する。
【００４６】
メモリ９０４は、情報をコンピューティングデバイス９００内に格納する。一実装例では、メモリ９０４は１つまたは複数の揮発性メモリユニットである。別の実装例では、メモリ９０４は１つまたは複数の不揮発性メモリユニットである。メモリ９０４はまた、磁気ディスクまたは光ディスクといった別の形態のコンピュータ可読媒体であってもよい。
【００４７】
記憶装置９０６は、コンピューティングデバイス９００のための大容量記憶を提供可能である。一実装例では、記憶装置９０６は、フロッピー（登録商標）ディスクデバイス、ハードディスクデバイス、光ディスクデバイス、またはテープデバイス、フラッシュメモリもしくはその他の同様のソリッドステートメモリデバイス、または、ストレージエリアネットワークもしくはその他の構成におけるデバイスを含むデバイスのアレイといった、コンピュータ可読媒体であってもよく、または当該コンピュータ可読媒体を含んでいてもよい。コンピュータプログラムプロダクトが情報担体において有形に具体化され得る。コンピュータプログラムプロダクトはまた、実行されると上述のような１つ以上の方法を行なう命令を含んでいてもよい。情報担体は、メモリ９０４、記憶装置９０６、またはプロセッサ９０２上のメモリといった、コンピュータ可読媒体または機械可読媒体である。
【００４８】
高速コントローラ９０８はコンピューティングデバイス９００のための帯域幅集約的な動作を管理し、一方、低速コントローラ９１２はより低い帯域幅集約的な動作を管理する。機能のこのような割当ては例示にすぎない。一実装例では、高速コントローラ９０８は、メモリ９０４、ディスプレイ９１６に（たとえば、グラフィックスプロセッサまたはアクセラレータを介して）、および、さまざまな拡張カード（図示せず）を受付け得る高速拡張ポート９１０に結合される。この実装例では、低速コントローラ９１２は、記憶装置９０６および低速拡張ポート９１４に結合される。さまざまな通信ポート（たとえば、ＵＳＢ、Ｂｌｕｅｔｏｏｔｈ、イーサネット（登録商標）、無線イーサネット）を含み得る低速拡張ポートは、キーボード、ポインティングデバイス、スキャナなどの１つ以上の入出力デバイスに、または、スイッチもしくはルータなどのネットワーキングデバイスに、たとえばネットワークアダプタを介して結合されてもよい。
【００４９】
コンピューティングデバイス９００は、図に示すように多くの異なる形態で実装されてもよい。たとえばそれは、標準サーバ９２０として、またはこのようなサーバのグループで複数回実装されてもよい。それはまた、ラックサーバシステム９２４の一部として実装されてもよい。加えて、それは、ラップトップコンピュータ９２２などのパーソナルコンピュータにおいて実装されてもよい。これに代えて、コンピューティングデバイス９００からのコンポーネントは、デバイス９５０などのモバイル機器（図示せず）におけるその他のコンポーネントと組合されてもよい。このようなデバイスの各々は、コンピューティングデバイス９００、９５０のうちの１つ以上を含んでいてもよく、システム全体が、互いに通信する複数のコンピューティングデバイス９００、９５０で構成されてもよい。
【００５０】
コンピューティングデバイス９５０は、数あるコンポーネントの中でも特に、プロセッサ９５２と、メモリ９６４と、ディスプレイ９５４などの入出力デバイスと、通信インターフェイス９６６と、送受信機９６８とを含む。デバイス９５０にはまた、追加の格納を提供するために、マイクロドライブまたはその他のデバイスなどの記憶装置が設けられてもよい。コンポーネント９５０、９５２、９６４、９５４、９６６、および９６８の各々は、さまざまなバスを使用して相互接続されており、当該コンポーネントのうちのいくつかは、共通のマザーボード上にまたはその他の態様で適宜搭載されてもよい。
【００５１】
プロセッサ９５２は、メモリ９６４に格納された命令を含む、コンピューティングデバイス９５０内の命令を実行可能である。プロセッサは、別個の複数のアナログおよびデジタルプロセッサを含むチップのチップセットとして実装されてもよい。プロセッサは、たとえば、ユーザインターフェイス、デバイス９５０が実行するアプリケーション、およびデバイス９５０による無線通信の制御といった、デバイス９５０のその他のコンポーネント同士の連携を提供してもよい。
【００５２】
プロセッサ９５２は、ディスプレイ９５４に結合された制御インターフェイス９５８およびディスプレイインターフェイス９５６を介してユーザと通信してもよい。ディスプレイ９５４は、たとえば、ＴＦＴ  ＬＣＤ（Thin-Film-Transistor Liquid Crystal Display：薄膜トランジスタ液晶ディスプレイ）、またはＯＬＥＤ（Organic Light Emitting Diode：有機発光ダイオード）ディスプレイ、またはその他の適切なディスプレイ技術であってもよい。ディスプレイインターフェイス９５６は、ディスプレイ９５４を駆動してグラフィカル情報およびその他の情報をユーザに提示するための適切な回路を含んでいてもよい。制御インターフェイス９５８は、ユーザからコマンドを受信し、それらをプロセッサ９５２に送出するために変換してもよい。加えて、デバイス９５０とその他のデバイスとの近接通信を可能にするように、外部インターフェイス９６２がプロセッサ９５２と通信した状態で設けられてもよい。外部インターフェイス９６２は、たとえば、ある実装例では有線通信を提供してもよく、またはその他の実装例では無線通信を提供してもよく、複数のインターフェイスも使用されてもよい。
【００５３】
メモリ９６４は、情報をコンピューティングデバイス９５０内に格納する。メモリ９６４は、１つもしくは複数のコンピュータ可読媒体、１つもしくは複数の揮発性メモリユニット、または、１つもしくは複数の不揮発性メモリユニットの１つ以上として実装されてもよい。拡張メモリ９７４も設けられ、拡張インターフェイス９７２を介してデバイス９５０に接続されてもよく、拡張インターフェイス９７２は、たとえばＳＩＭＭ（Single In Line Memory Module）カードインターフェイスを含んでいてもよい。このような拡張メモリ９７４は、デバイス９５０に余分の格納スペースを提供してもよく、または、デバイス９５０のためのアプリケーションもしくはその他の情報も格納してもよい。具体的には、拡張メモリ９７４は、上述のプロセスを実行または補足するための命令を含んでいてもよく、セキュアな情報も含んでいてもよい。このため、たとえば、拡張メモリ９７４はデバイス９５０のためのセキュリティモジュールとして設けられてもよく、デバイス９５０のセキュアな使用を許可する命令でプログラムされてもよい。加えて、ハッキング不可能な態様でＳＩＭＭカード上に識別情報を乗せるといったように、セキュアなアプリケーションが追加情報とともにＳＩＭＭカードを介して提供されてもよい。
【００５４】
メモリはたとえば、以下に述べるようなフラッシュメモリおよび／またはＮＶＲＡＭメモリを含んでいてもよい。一実装例では、コンピュータプログラムプロダクトが情報担体において有形に具体化される。コンピュータプログラムプロダクトは、実行されると上述の方法のような１つ以上の方法を行なう命令を含む。情報担体は、メモリ９６４、拡張メモリ９７４、またはプロセッサ９５２上のメモリといった、コンピュータ可読媒体または機械可読媒体であり、たとえば送受信機９６８または外部インターフェイス９６２を通して受信されてもよい。
【００５５】
デバイス９５０は、必要に応じてデジタル信号処理回路を含み得る通信インターフェイス９６６を介して無線通信してもよい。通信インターフェイス９６６は、とりわけ、ＧＳＭ（登録商標）音声通話、ＳＭＳ、ＥＭＳ、またはＭＭＳメッセージング、ＣＤＭＡ、ＴＤＭＡ、ＰＤＣ、ＷＣＤＭＡ（登録商標）、ＣＤＭＡ２０００、またはＧＰＲＳといった、さまざまなモードまたはプロトコル下での通信を提供してもよい。このような通信は、たとえば無線周波数送受信機９６８を介して生じてもよい。加えて、Ｂｌｕｅｔｏｏｔｈ、ＷｉＦｉ、またはその他のこのような送受信機（図示せず）使用するなどして、短距離通信が生じてもよい。加えて、ＧＰＳ（Global Positioning System：全地球測位システム）受信機モジュール９７０が、追加のナビゲーション関連および位置関連の無線データをデバイス９５０に提供してもよく、このデータは、デバイス９５０上で実行されるアプリケーションによって適宜使用されてもよい。
【００５６】
デバイス９５０はまた、ユーザから口頭情報を受信してそれを使用可能なデジタル情報に変換し得る音声コーデック９６０を使用して、音声通信してもよい。音声コーデック９６０は同様に、たとえばデバイス９５０のハンドセットにおいて、スピーカを介すなどして、ユーザに聞こえる音を生成してもよい。このような音は、音声電話からの音を含んでいてもよく、録音された音（たとえば、音声メッセージ、音楽ファイルなど）を含んでいてもよく、デバイス９５０上で動作するアプリケーションが生成する音も含んでいてもよい。
【００５７】
コンピューティングデバイス９５０は、図に示すように多くの異なる形態で実装されてもよい。たとえばそれは、携帯電話９８０として実装されてもよい。それはまた、スマートフォン９８２、携帯情報端末、またはその他の同様のモバイル機器の一部として実装されてもよい。
【００５８】
本明細書に記載のシステムおよび技法のさまざまな実装例は、デジタル電子回路、集積回路、特別設計されたＡＳＩＣ（application specific integrated circuit：特定用途向け集積回路）、コンピュータハードウェア、ファームウェア、ソフトウェア、および／またはそれらの組合わせにおいて実装されてもよい。これらのさまざまな実装例は、少なくとも１つのプログラマブルプロセッサを含むプログラマブルシステム上で実行可能および／または解釈可能な１つ以上のコンピュータプログラムにおける実装例を含んでいてもよく、このプロセッサは専用であっても汎用であってもよく、ストレージシステム、少なくとも１つの入力デバイス、および少なくとも１つの出力デバイスからデータおよび命令を受信するとともに、これらにデータおよび命令を送信するように結合されてもよい。
【００５９】
これらのコンピュータプログラム（プログラム、ソフトウェア、ソフトウェアアプリケーションまたはコードとしても公知）は、プログラマブルプロセッサのための機械命令を含んでおり、高レベル手続き型および／もしくはオブジェクト指向プログラミング言語で、ならびに／またはアセンブリ／機械言語で実装されてもよい。ここに使用されるように、「機械可読媒体」「コンピュータ可読媒体」という用語は、機械命令および／またはデータをプログラマブルプロセッサに提供するために使用される任意のコンピュータプログラムプロダクト、装置および／またはデバイス（たとえば、磁気ディスク、光ディスク、メモリ、プログラマブルロジックデバイス（Programmable Logic Device：ＰＬＤ））を指し、機械命令を機械可読信号として受信する機械可読媒体を含む。「機械可読信号」という用語は、機械命令および／またはデータをプログラマブルプロセッサに提供するために使用される任意の信号を指す。
【００６０】
ユーザとの対話を提供するために、本明細書に記載のシステムおよび技法は、情報をユーザに表示するためのディスプレイ装置（たとえば、ＣＲＴ（cathode ray tube：陰極線管）またはＬＣＤ（liquid crystal display：液晶ディスプレイ）モニタ）と、ユーザが入力をコンピュータに提供できるようにするキーボードおよびポインティングデバイス（たとえば、マウスまたはトラックボール）とを有するコンピュータ上で実装されてもよい。その他の種類の装置を使用してユーザとの対話を提供してもよく、たとえば、ユーザに提供されるフィードバックは、任意の形態の感覚フィードバック（たとえば、視覚フィードバック、聴覚フィードバック、または触覚フィードバック）であってもよく、ユーザからの入力は、音響、音声、または触覚入力を含む任意の形態で受信されてもよい。
【００６１】
本明細書に記載のシステムおよび技法は、（たとえばデータサーバとしての）バックエンドコンポーネントを含む、またはミドルウェアコンポーネント（たとえばアプリケーションサーバ）を含む、またはフロントエンドコンポーネント（たとえば、ユーザが本明細書に記載のシステムおよび技法の実装例と対話できるようにするグラフィカルユーザインターフェイスもしくはウェブブラウザを有するクライアントコンピュータ）を含む、または、このようなバックエンド、ミドルウェア、もしくはフロントエンドコンポーネントの任意の組合わせを含む、コンピューティングシステムにおいて実装されてもよい。システムのコンポーネントは、任意の形態または媒体のデジタルデータ通信（たとえば通信ネットワーク）によって相互接続されてもよい。通信ネットワークの例として、ローカルエリアネットワーク（local area network：ＬＡＮ）、ワイドエリアネットワーク（wide area network：ＷＡＮ）、およびインターネットがある。
【００６２】
コンピューティングシステムは、クライアントおよびサーバを含んでいてもよい。クライアントおよびサーバは一般に互いにリモートであり、典型的には通信ネットワークを介して対話する。クライアントとサーバとの関係は、それぞれのコンピュータ上で実行されて互いにクライアント−サーバ関係を有するコンピュータプログラムによって生じる。以下の例においてさらなる実装例を要約する。
【００６３】
例１：方法であって、第１の物理空間と関連付けられた少なくとも１つの物理的な制約を検出することと、第１の物理空間における第１のユーザの位置および向きと、検出した第１の物理空間と関連付けられた少なくとも１つの物理的な制約とに基づいて、第１の物理空間における第１の物理経路を検出することと、第２の物理空間と関連付けられた少なくとも１つの物理的な制約を検出することと、第２の物理空間における第２のユーザの位置および向きと、検出した第２の物理空間と関連付けられた少なくとも１つの物理的な制約とに基づいて、第２の物理空間における第２の物理経路を検出することと、第１のユーザに対して第１の向きで仮想環境を第１のユーザに表示することと、第２のユーザに対して第２の向きで仮想環境を第２のユーザに表示することとを含み、仮想環境は共有仮想空間における第１および第２のユーザに提示され、表示することは、第１の物理経路と、共有仮想空間において提示される仮想環境の文脈と、共有仮想空間における第１の仮想経路とに基づいて、仮想環境の仮想特徴を共有仮想空間における第１のユーザに対して方向付けることと、第２の物理経路と、共有仮想空間において提示される仮想環境の文脈と、共有仮想空間における第２の仮想経路とに基づいて、仮想環境の仮想特徴を共有仮想空間における第２のユーザに対して方向付けることとを含む、方法。
【００６４】
例２：第２の物理空間は第１の物理空間とは異なる、例１に記載の方法。
例３：第２の物理空間は第１の物理空間と同一である、例１に記載の方法。
【００６５】
例４：第１の向きで仮想環境を第１のユーザに表示すること、および第２の向きで仮想環境を第２のユーザに表示することは、第１の物理経路および第１の仮想経路が、遮られていない物理経路を第１のユーザに提供し、遮られていない仮想経路を第２のユーザに提供するように、仮想環境の仮想特徴の表示を第１のユーザに対して方向付けることと、第２の物理経路および第２の仮想経路が、遮られていない物理経路を第２のユーザに提供し、遮られていない仮想経路を第１のユーザに提供するように、仮想環境の仮想特徴の表示を第２のユーザに対して方向付けることとを含む、例１から３のいずれかに記載の方法。
【００６６】
例５：第１の物理空間と関連付けられた少なくとも１つの物理的な制約を検出することは、第１の物理空間をスキャンし、第１の物理空間の物理的な境界と、第１の物理空間の内部に位置決めされた物理的な障害とを検出し、検出した境界および検出した障害に基づいて第１の物理空間をマッピングすることを含み、第２の物理空間と関連付けられた少なくとも１つの物理的な制約を検出することは、第２の物理空間をスキャンし、第２の物理空間の物理的な境界と、第２の物理空間の内部に位置決めされた物理的な障害とを検出し、検出した境界および検出した障害に基づいて第２の物理空間をマッピングすることを含む、例１から４のいずれかに記載の方法。
【００６７】
例６：第１の物理経路を検出することは、検出した第１の物理空間の物理的な境界と、第１の物理空間において検出した物理的な障害とに基づいて、第１のユーザが第１の物理空間で動くことができる第１の物理空間内の遮られていない最長の物理経路を検出することを含み、第２の物理経路を検出することは、検出した第２の物理空間の物理的な境界と、第２の物理空間において検出した物理的な障害とに基づいて、第２のユーザが第２の物理空間で動くことができる第２の物理空間内の遮られていない最長の物理経路を検出することを含む、例５に記載の方法。
【００６８】
例７：第１の物理空間と関連付けられた少なくとも１つの物理的な制約を検出することは、第１の物理空間の物理的な境界を検出することを含み、第２の物理空間と関連付けられた少なくとも１つの制約を検出することは、第２の物理空間の物理的な境界を検出することを含む、例１から６のいずれかに記載の方法。
【００６９】
例８：第１の物理空間と関連付けられた少なくとも１つの物理的な制約を検出することは、第１の物理空間における１つ以上の物理的な障害を検出することを含み、第２の物理空間と関連付けられた少なくとも１つの制約を検出することは、第２の物理空間における１つ以上の物理的な障害を検出することを含む、例７に記載の方法。
【００７０】
例９：第１の物理空間における１つ以上の物理的な障害を検出することは、第１の物理空間を間欠的にスキャンすることと、第１の物理空間の以前のスキャンを第１の物理空間の現在のスキャンと比較することと、比較に基づいて第１の物理空間における物理的な障害の位置を更新することとを含み、第２の物理空間における１つ以上の物理的な障害を検出することは、第２の物理空間を間欠的にスキャンすることと、第２の物理空間の以前のスキャンを第２の物理空間の現在のスキャンと比較することと、比較に基づいて第２の物理空間における物理的な障害の位置を更新することとを含む、例８に記載の方法。
【００７１】
例１０：第１の物理空間における物理的な障害の位置を更新することは、第１の物理空間において以前に検出された物理的な障害または第１の物理空間における新たな物理的な障害の動きを検出することを含み、第２の物理空間における物理的な障害の位置を更新することは、第２の物理空間において以前に検出された物理的な障害または第２の物理空間における新たな物理的な障害の動きを検出することを含む、例９に記載の方法。
【００７２】
例１１：第２の物理空間は第１の物理空間と同一であり、第１の物理空間における物理的な障害の位置を更新することは、第１の物理空間における第１のユーザに対して第２のユーザの位置を更新することを含み、第２の物理空間における物理的な障害の位置を更新することは、第２の物理空間における第２のユーザに対して第１のユーザの位置を更新することを含む、例１０に記載の方法。
【００７３】
例１２：非一時的なコンピュータ可読媒体上に具現化されたコンピュータプログラムプロダクトであって、コンピュータ可読媒体上に一連の命令が格納されており、命令はプロセッサによって実行されるとプロセッサに方法を実行させ、方法は、第１の物理空間と関連付けられた少なくとも１つの物理的な制約を検出することと、第１の物理空間における第１のユーザの位置および向きと、検出した第１の物理空間と関連付けられた少なくとも１つの物理的な制約とに基づいて、第１の物理空間における第１の物理経路を検出することと、第２の物理空間と関連付けられた少なくとも１つの物理的な制約を検出することと、第２の物理空間における第２のユーザの位置および向きと、検出した第２の物理空間と関連付けられた少なくとも１つの物理的な制約とに基づいて、第２の物理空間における第２の物理経路を検出することと、仮想環境の仮想特徴を第１の向きで第１のユーザに表示することと、仮想環境の仮想特徴を第２の向きで第２のユーザに表示することとを含み、仮想環境は、共有仮想空間における第１および第２のユーザに提示され、共有仮想空間における第１のユーザに対する仮想環境の仮想特徴の第１の向きは、第１の物理経路と、仮想環境の文脈と、共有仮想空間における第１の仮想経路とに基づいており、共有仮想空間における第２のユーザに対する仮想環境の仮想特徴の第２の向きは、第２の物理経路と、共有仮想空間において提示される仮想環境の文脈と、共有仮想空間における第２の仮想経路とに基づいている、コンピュータプログラムプロダクト。
【００７４】
例１３：第２の物理空間は第１の物理空間とは異なる、例１２に記載のコンピュータプログラムプロダクト。
【００７５】
例１４：仮想環境を第１の向きで第１のユーザに表示すること、および仮想環境を第２の向きで第２のユーザに表示することは、第１の物理経路および第１の仮想経路が、遮られていない物理経路を第１のユーザに提供し、遮られていない仮想経路を第２のユーザに提供するように、仮想環境の仮想特徴の表示を第１のユーザに対して方向付けることと、第２の物理経路および第２の仮想経路が、遮られていない物理経路を第２のユーザに提供し、遮られていない仮想経路を第１のユーザに提供するように、仮想環境の仮想特徴の表示を第２のユーザに対して方向付けることとを含む、例１２または１３に記載のコンピュータプログラムプロダクト。
【００７６】
例１５：第１の物理空間と関連付けられた少なくとも１つの物理的な制約を検出することは、第１の物理空間をスキャンし、第１の物理空間の物理的な境界と、第１の物理空間の内部に位置決めされた物理的な障害とを検出し、検出した境界および検出した障害に基づいて第１の物理空間をマッピングすることを含み、第２の物理空間と関連付けられた少なくとも１つの物理的な制約を検出することは、第２の物理空間をスキャンし、第２の物理空間の物理的な境界と、第２の物理空間の内部に位置決めされた物理的な障害とを検出し、検出した境界および検出した障害に基づいて第２の物理空間をマッピングすることを含む、例１２から１４のいずれかに記載のコンピュータプログラムプロダクト。
【００７７】
例１６：第１の物理経路を検出することは、検出した第１の物理空間の物理的な境界と、第１の物理空間において検出した物理的な障害とに基づいて、第１のユーザが第１の物理空間で動くことができる第１の物理空間内の遮られていない最長の物理経路を検出することを含み、第２の物理経路を検出することは、検出した第２の物理空間の物理的な境界と、第２の物理空間において検出した物理的な障害とに基づいて、第２のユーザが第２の物理空間で動くことができる第２の物理空間内の遮られていない最長の物理経路を検出することを含む、例１５に記載のコンピュータプログラムプロダクト。
【００７８】
例１７：第１の物理空間と関連付けられた少なくとも１つの物理的な制約を検出することは、第１の物理空間の物理的な境界を検出することと、第１の物理空間における１つ以上の物理的な障害を検出することとを含み、第２の物理空間と関連付けられた少なくとも１つの制約を検出することは、第２の物理空間の物理的な境界を検出することと、第２の物理空間における１つ以上の物理的な障害を検出することとを含む、例１２から１６のいずれかに記載のコンピュータプログラムプロダクト。
【００７９】
例１８：第１の物理空間における１つ以上の物理的な障害を検出することは、第１の物理空間を間欠的にスキャンすることと、第１の物理空間の以前のスキャンを第１の物理空間の現在のスキャンと比較することと、比較に基づいて第１の物理空間における物理的な障害の位置を更新することとを含み、第２の物理空間における１つ以上の物理的な障害を検出することは、第２の物理空間を間欠的にスキャンすることと、第２の物理空間の以前のスキャンを第２の物理空間の現在のスキャンと比較することと、比較に基づいて第２の物理空間における物理的な障害の位置を更新することとを含む、例１７に記載のコンピュータプログラムプロダクト。
【００８０】
例１９：第１の物理空間における物理的な障害の位置を更新することは、第１の物理空間において以前に検出された物理的な障害または第１の物理空間における新たな物理的な障害の動きを検出することを含み、第２の物理空間における物理的な障害の位置を更新することは、第２の物理空間において以前に検出された物理的な障害または第２の物理空間における新たな物理的な障害の動きを検出することを含む、例１８に記載のコンピュータプログラムプロダクト。
【００８１】
例２０：第２の物理空間は第１の物理空間と同一であり、第１の物理空間における物理的な障害の位置を更新することは、第１の物理空間における第１のユーザに対して第２のユーザの位置を更新することを含み、第２の物理空間における物理的な障害の位置を更新することは、第２の物理空間における第２のユーザに対して第１のユーザの位置を更新することを含む、例１９に記載のコンピュータプログラムプロダクト。
【００８２】
さらなる例では、共有仮想空間における複数のユーザに対して仮想環境の提示を方向付けるためのシステムおよび方法が提供され、複数のユーザは異なる物理空間に物理的に存在し得る。複数のユーザの各々について、システムは、それぞれの物理空間と関連付けられた物理的な制約を検出し得、物理空間におけるユーザの向きと、関連付けられた物理的な制約とに基づいて、物理空間内の遮られていない最長の物理経路を求め得る。次に、共有仮想空間における複数のユーザへの仮想環境の提示が、共有仮想空間における複数のユーザ同士の対話を最大化するために、複数のユーザの各々に対して方向付けられ得る。
【００８３】
多くの実施形態が説明された。しかしながら、本明細書に広範に記載されているような実施形態の精神および範囲から逸脱することなくさまざまな変更がなされ得る。
【００８４】
加えて、図面に示す論理フローは、所望の結果を達成するために、示された特定の順序または順番を必要としない。加えて、説明されたフローに対してその他のステップが提供されてもよく、またはステップが除去されてもよく、説明されたシステムに対してその他のコンポーネントが追加されてもよく、または除去されてもよい。したがって、その他の実施形態は以下の特許請求の範囲内にある。
【００８５】
本明細書を通じて「一実施形態」または「ある実施形態」という言及は、当該実施形態と関連して説明される特定の特徴、構造、または特性が少なくとも１つの実施形態に含まれることを意味する。したがって、本明細書を通じてさまざまな場所に現れる「一実施形態において」または「ある実施形態において」という語句は、必ずしも全てが同一の実施形態を言及しているわけではない。加えて、「または」という用語は、排他的な「または」ではなく、包括的な「または」を意味するよう意図されている。
【００８６】
本明細書に記載の通り、記載されている実装例の一定の特徴が例示されたが、ここで、当業者は、数多くの変形、代用、変更、および均等物を想到するであろう。したがって、添付の特許請求の範囲は、実装例の範囲に含まれるすべてのこのような変形および変更を網羅するよう意図されていることを理解すべきである。それらは限定ではなく専ら例示を目的として提示されており、形態および詳細事項にさまざまな変更が加えられ得ることを理解すべきである。本明細書に記載の装置および／または方法はいずれの部分も、相互に相容れない組合わせを除いて、任意の組合わせが可能である。本明細書に記載の実装例は、記載されている異なる実装例の機能、構成要素および／または特徴のさまざまな組合わせおよび／または下位の組合わせを含み得る。
【図１】
2019535054.tif 000003
【図２Ａ】
2019535054.tif 000004
【図２Ｂ】
2019535054.tif 000005
【図３】
2019535054.tif 000006
【図４Ａ】
2019535054.tif 000007
【図４Ｂ】
2019535054.tif 000008
【図４Ｃ】
2019535054.tif 000009
【図４Ｄ】
2019535054.tif 000010
【図５Ａ】
2019535054.tif 000011
【図５Ｂ】
2019535054.tif 000012
【図６】
2019535054.tif 000013
【図７】
2019535054.tif 000014
【手続補正書】
【提出日】平成31年4月15日(2019.4.15)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
方法であって、
第１の物理空間と関連付けられた少なくとも１つの物理的な制約を検出することと、
前記第１の物理空間における第１のユーザの位置および向きと、検出した前記第１の物理空間と関連付けられた少なくとも１つの物理的な制約とに基づいて、前記第１の物理空間における第１の物理経路を検出することと、
第２の物理空間と関連付けられた少なくとも１つの物理的な制約を検出することと、
前記第２の物理空間における第２のユーザの位置および向きと、検出した前記第２の物理空間と関連付けられた少なくとも１つの物理的な制約とに基づいて、前記第２の物理空間における第２の物理経路を検出することと、
前記第１のユーザに対して第１の向きで仮想環境を前記第１のユーザに表示することと、前記第２のユーザに対して第２の向きで前記仮想環境を前記第２のユーザに表示することとを備え、前記仮想環境は共有仮想空間における前記第１および第２のユーザに提示され、前記表示することは、
前記第１の物理経路と、前記共有仮想空間において提示される前記仮想環境の文脈と、前記共有仮想空間における第１の仮想経路とに基づいて、前記仮想環境の仮想特徴を前記共有仮想空間における前記第１のユーザに対して方向付けることと、
前記第２の物理経路と、前記共有仮想空間において提示される前記仮想環境の前記文脈と、前記共有仮想空間における第２の仮想経路とに基づいて、前記仮想環境の前記仮想特徴を前記共有仮想空間における前記第２のユーザに対して方向付けることとを含む、方法。
【請求項２】
前記第２の物理空間は前記第１の物理空間とは異なる、請求項１に記載の方法。
【請求項３】
前記第２の物理空間は前記第１の物理空間と同一である、請求項１または請求項２に記載の方法。
【請求項４】
前記第１の向きで仮想環境を前記第１のユーザに表示すること、および前記第２の向きで前記仮想環境を前記第２のユーザに表示することは、
前記第１の物理経路および前記第１の仮想経路が、遮られていない物理経路を前記第１のユーザに提供し、遮られていない仮想経路を前記第２のユーザに提供するように、前記仮想環境の前記仮想特徴の表示を前記第１のユーザに対して方向付けることと、
前記第２の物理経路および前記第２の仮想経路が、遮られていない物理経路を前記第２のユーザに提供し、遮られていない仮想経路を前記第１のユーザに提供するように、前記仮想環境の前記仮想特徴の表示を前記第２のユーザに対して方向付けることとを含む、請求項１〜請求項３のいずれか１項に記載の方法。
【請求項５】
前記第１の物理空間と関連付けられた少なくとも１つの物理的な制約を検出することは、
前記第１の物理空間をスキャンし、前記第１の物理空間の物理的な境界と、前記第１の物理空間の内部に位置決めされた物理的な障害とを検出し、検出した前記境界および検出した前記物理的な障害に基づいて前記第１の物理空間をマッピングすることを含み、
前記第２の物理空間と関連付けられた少なくとも１つの物理的な制約を検出することは、
前記第２の物理空間をスキャンし、前記第２の物理空間の物理的な境界と、前記第２の物理空間の内部に位置決めされた物理的な障害とを検出し、検出した前記境界および検出した前記物理的な障害に基づいて前記第２の物理空間をマッピングすることを含む、請求項１〜請求項４のいずれか１項に記載の方法。
【請求項６】
前記第１の物理経路を検出することは、検出した前記第１の物理空間の物理的な境界と、前記第１の物理空間において検出した前記物理的な障害とに基づいて、前記第１のユーザが前記第１の物理空間で動くことができる前記第１の物理空間内の遮られていない最長の物理経路を検出することを含み、
前記第２の物理経路を検出することは、検出した前記第２の物理空間の物理的な境界と、前記第２の物理空間において検出した前記物理的な障害とに基づいて、前記第２のユーザが前記第２の物理空間で動くことができる前記第２の物理空間内の遮られていない最長の物理経路を検出することを含む、請求項５に記載の方法。
【請求項７】
前記第１の物理空間と関連付けられた少なくとも１つの物理的な制約を検出することは、前記第１の物理空間の物理的な境界を検出することを含み、
前記第２の物理空間と関連付けられた少なくとも１つの物理的な制約を検出することは、前記第２の物理空間の物理的な境界を検出することを含む、請求項１〜請求項６のいずれか１項に記載の方法。
【請求項８】
前記第１の物理空間と関連付けられた少なくとも１つの物理的な制約を検出することは、前記第１の物理空間における１つ以上の物理的な障害を検出することを含み、
前記第２の物理空間と関連付けられた少なくとも１つの物理的な制約を検出することは、前記第２の物理空間における１つ以上の物理的な障害を検出することを含む、請求項７に記載の方法。
【請求項９】
前記第１の物理空間における１つ以上の物理的な障害を検出することは、
前記第１の物理空間を間欠的にスキャンすることと、
前記第１の物理空間の以前のスキャンを前記第１の物理空間の現在のスキャンと比較することと、
前記比較に基づいて前記第１の物理空間における物理的な障害の位置を更新することとを含み、
前記第２の物理空間における１つ以上の物理的な障害を検出することは、
前記第２の物理空間を間欠的にスキャンすることと、
前記第２の物理空間の以前のスキャンを前記第２の物理空間の現在のスキャンと比較することと、
前記比較に基づいて前記第２の物理空間における物理的な障害の位置を更新することとを含む、請求項８に記載の方法。
【請求項１０】
前記第１の物理空間における物理的な障害の位置を更新することは、前記第１の物理空間において以前に検出された物理的な障害または前記第１の物理空間における新たな物理的な障害の動きを検出することを含み、
前記第２の物理空間における物理的な障害の位置を更新することは、前記第２の物理空間において以前に検出された物理的な障害または前記第２の物理空間における新たな物理的な障害の動きを検出することを含む、請求項９に記載の方法。
【請求項１１】
前記第２の物理空間は前記第１の物理空間と同一であり、
前記第１の物理空間における物理的な障害の位置を更新することは、前記第１の物理空間における前記第１のユーザに対して前記第２のユーザの位置を更新することを含み、
前記第２の物理空間における物理的な障害の位置を更新することは、前記第２の物理空間における前記第２のユーザに対して前記第１のユーザの位置を更新することを含む、請求項１０に記載の方法。
【請求項１２】
一連の命令を含むコンピュータプログラムであって、前記命令はプロセッサによって実行されると前記プロセッサに方法を実行させ、前記方法は、
第１の物理空間と関連付けられた少なくとも１つの物理的な制約を検出することと、
前記第１の物理空間における第１のユーザの位置および向きと、検出した前記第１の物理空間と関連付けられた少なくとも１つの物理的な制約とに基づいて、前記第１の物理空間における第１の物理経路を検出することと、
第２の物理空間と関連付けられた少なくとも１つの物理的な制約を検出することと、
前記第２の物理空間における第２のユーザの位置および向きと、検出した前記第２の物理空間と関連付けられた少なくとも１つの物理的な制約とに基づいて、前記第２の物理空間における第２の物理経路を検出することと、
仮想環境の仮想特徴を第１の向きで前記第１のユーザに表示することと、
前記仮想環境の前記仮想特徴を第２の向きで前記第２のユーザに表示することとを備え、
前記仮想環境は、共有仮想空間における前記第１および第２のユーザに提示され、
前記共有仮想空間における前記第１のユーザに対する前記仮想環境の前記仮想特徴の前記第１の向きは、前記第１の物理経路と、前記仮想環境の文脈と、前記共有仮想空間における第１の仮想経路とに基づいており、
前記共有仮想空間における前記第２のユーザに対する前記仮想環境の前記仮想特徴の前記第２の向きは、前記第２の物理経路と、前記共有仮想空間において提示される前記仮想環境の前記文脈と、前記共有仮想空間における第２の仮想経路とに基づいている、コンピュータプログラム。
【請求項１３】
前記第２の物理空間は前記第１の物理空間とは異なる、請求項１２に記載のコンピュータプログラム。
【請求項１４】
前記仮想環境を第１の向きで前記第１のユーザに表示すること、および前記仮想環境を第２の向きで前記第２のユーザに表示することは、
前記第１の物理経路および前記第１の仮想経路が、遮られていない物理経路を前記第１のユーザに提供し、遮られていない仮想経路を前記第２のユーザに提供するように、前記仮想環境の前記仮想特徴の表示を前記第１のユーザに対して方向付けることと、
前記第２の物理経路および前記第２の仮想経路が、遮られていない物理経路を前記第２のユーザに提供し、遮られていない仮想経路を前記第１のユーザに提供するように、前記仮想環境の前記仮想特徴の表示を前記第２のユーザに対して方向付けることとを含む、請求項１２または請求項１３に記載のコンピュータプログラム。
【請求項１５】
前記第１の物理空間と関連付けられた少なくとも１つの物理的な制約を検出することは、
前記第１の物理空間をスキャンし、前記第１の物理空間の物理的な境界と、前記第１の物理空間の内部に位置決めされた物理的な障害とを検出し、検出した前記境界および検出した前記物理的な障害に基づいて前記第１の物理空間をマッピングすることを含み、
前記第２の物理空間と関連付けられた少なくとも１つの物理的な制約を検出することは、
前記第２の物理空間をスキャンし、前記第２の物理空間の物理的な境界と、前記第２の物理空間の内部に位置決めされた物理的な障害とを検出し、検出した前記境界および検出した前記物理的な障害に基づいて前記第２の物理空間をマッピングすることを含む、請求項１２〜請求項１４のいずれか１項に記載のコンピュータプログラム。
【請求項１６】
前記第１の物理経路を検出することは、検出した前記第１の物理空間の物理的な境界と、前記第１の物理空間において検出した前記物理的な障害とに基づいて、前記第１のユーザが前記第１の物理空間で動くことができる前記第１の物理空間内の遮られていない最長の物理経路を検出することを含み、
前記第２の物理経路を検出することは、検出した前記第２の物理空間の物理的な境界と、前記第２の物理空間において検出した前記物理的な障害とに基づいて、前記第２のユーザが前記第２の物理空間で動くことができる前記第２の物理空間内の遮られていない最長の物理経路を検出することを含む、請求項１５に記載のコンピュータプログラム。
【請求項１７】
前記第１の物理空間と関連付けられた少なくとも１つの物理的な制約を検出することは、
前記第１の物理空間の物理的な境界を検出することと、
前記第１の物理空間における１つ以上の物理的な障害を検出することとを含み、
前記第２の物理空間と関連付けられた少なくとも１つの物理的な制約を検出することは、
前記第２の物理空間の物理的な境界を検出することと、
前記第２の物理空間における１つ以上の物理的な障害を検出することとを含む、請求項１２〜請求項１６のいずれか１項に記載のコンピュータプログラム。
【請求項１８】
前記第１の物理空間における１つ以上の物理的な障害を検出することは、
前記第１の物理空間を間欠的にスキャンすることと、
前記第１の物理空間の以前のスキャンを前記第１の物理空間の現在のスキャンと比較することと、
前記比較に基づいて前記第１の物理空間における物理的な障害の位置を更新することとを含み、
前記第２の物理空間における１つ以上の物理的な障害を検出することは、
前記第２の物理空間を間欠的にスキャンすることと、
前記第２の物理空間の以前のスキャンを前記第２の物理空間の現在のスキャンと比較することと、
前記比較に基づいて前記第２の物理空間における物理的な障害の位置を更新することとを含む、請求項１７に記載のコンピュータプログラム。
【請求項１９】
前記第１の物理空間における物理的な障害の位置を更新することは、前記第１の物理空間において以前に検出された物理的な障害または前記第１の物理空間における新たな物理的な障害の動きを検出することを含み、
前記第２の物理空間における物理的な障害の位置を更新することは、前記第２の物理空間において以前に検出された物理的な障害または前記第２の物理空間における新たな物理的な障害の動きを検出することを含む、請求項１８に記載のコンピュータプログラム。
【請求項２０】
前記第２の物理空間は前記第１の物理空間と同一であり、
前記第１の物理空間における物理的な障害の位置を更新することは、前記第１の物理空間における前記第１のユーザに対して前記第２のユーザの位置を更新することを含み、
前記第２の物理空間における物理的な障害の位置を更新することは、前記第２の物理空間における前記第２のユーザに対して前記第１のユーザの位置を更新することを含む、請求項１９に記載のコンピュータプログラム。
【国際調査報告】
2019535054.tif 000015
2019535054.tif 000016
2019535054.tif 000017