JP2019535054A - 拡張/仮想現実環境において仮想キャラクタを配置するための方法およびコンピュータプログラム - Google Patents

拡張/仮想現実環境において仮想キャラクタを配置するための方法およびコンピュータプログラム Download PDF

Info

Publication number
JP2019535054A
JP2019535054A JP2019510945A JP2019510945A JP2019535054A JP 2019535054 A JP2019535054 A JP 2019535054A JP 2019510945 A JP2019510945 A JP 2019510945A JP 2019510945 A JP2019510945 A JP 2019510945A JP 2019535054 A JP2019535054 A JP 2019535054A
Authority
JP
Japan
Prior art keywords
physical
space
physical space
user
virtual
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP2019510945A
Other languages
English (en)
Inventor
ボッシュ,ロバート
ブシヒ,イブラヒム
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Google LLC filed Critical Google LLC
Publication of JP2019535054A publication Critical patent/JP2019535054A/ja
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/40Information retrieval; Database structures therefor; File system structures therefor of multimedia data, e.g. slideshows comprising image and additional audio data
    • G06F16/44Browsing; Visualisation therefor
    • G06F16/444Spatial browsing, e.g. 2D maps, 3D or virtual spaces
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/01Head-up displays
    • G02B27/017Head mounted
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/04815Interaction with a metaphor-based environment or interaction object displayed as three-dimensional, e.g. changing the user viewpoint with respect to the environment or object
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/131Protocols for games, networked simulations or virtual reality
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/50Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
    • A63F2300/53Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing
    • A63F2300/534Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing for network load management, e.g. bandwidth optimization, latency reduction
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/50Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
    • A63F2300/55Details of game data or player data management
    • A63F2300/5526Game data structure
    • A63F2300/5533Game data structure using program state or machine event data, e.g. server keeps track of the state of multiple players on in a multiple player game
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2219/00Indexing scheme for manipulating 3D models or images for computer graphics
    • G06T2219/024Multi-user, collaborative environment

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Multimedia (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Optics & Photonics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Graphics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • User Interface Of Digital Computer (AREA)
  • Processing Or Creating Images (AREA)
  • Navigation (AREA)

Abstract

共有仮想空間における複数のユーザに対して仮想環境の提示を方向付けるためのシステムおよび方法が提供される。複数のユーザは異なる物理空間に物理的に存在し得る。複数のユーザの各々について、システムは、それぞれの物理空間と関連付けられた物理的な制約を検出し得、物理空間におけるユーザの向きと、関連付けられた物理的な制約とに基づいて、物理空間内の遮られていない最長の物理経路を求め得る。次に、共有仮想空間における複数のユーザへの仮想環境の提示が、共有仮想空間における複数のユーザ同士の対話を最大化するために、複数のユーザの各々に対して方向付けられ得る。

Description

関連出願の相互参照
本願は、2016年8月23日に出願された米国仮出願第62/378,510号に基づく優先権を主張する2017年8月17日に出願された米国出願第15/679,527号の継続出願であり、それに基づく優先権を主張し、その開示全体を本明細書に引用により援用する。
本願は、2016年8月23日に出願された米国仮出願第62/378,510号に基づく優先権を主張し、その開示全体を本明細書に引用により援用する。
分野
本文書は概して、拡張および/または仮想現実環境において仮想キャラクタを配置するためのシステムおよび方法に関する。
背景
1人以上のユーザが体験することになる仮想現実環境を生成する拡張現実(augmented reality:AR)および/または仮想現実(virtual reality:VR)システムでは、複数のユーザが、共有仮想体験に没入しているときに同一の仮想空間を共有および/または仮想的に占有し得る。共有仮想空間における複数のユーザは、さまざまな電子装置を用いて、互いに、かつ仮想環境における仮想の要素および/または物体および/または特徴と対話し得る。これらの電子装置は、たとえば、ディスプレイを含むヘルメットまたはその他のヘッドマウントデバイス、ユーザがディスプレイ装置を見るときに用いる眼鏡またはゴーグル、センサを含む外部ハンドヘルドデバイス、センサが装着された手袋、およびその他のこのような電子装置などである。AR/VRシステムが動作している現実世界空間における障害および/または現実世界空間の境界は、複数のユーザが互いに効果的に対話する能力に影響を及ぼし得る。
概要
ある局面において、方法は、第1の物理空間と関連付けられた少なくとも1つの物理的な制約を検出することと、第1の物理空間における第1のユーザの位置および向きと、検出した第1の物理空間と関連付けられた少なくとも1つの物理的な制約とに基づいて、第1の物理空間における第1の物理経路を検出することと、第2の物理空間と関連付けられた少なくとも1つの物理的な制約を検出することと、第2の物理空間における第2のユーザの位置および向きと、検出した第2の物理空間と関連付けられた少なくとも1つの物理的な制約とに基づいて、第2の物理空間における第2の物理経路を検出することと、第1のユーザに対して第1の向きで仮想環境を第1のユーザに表示することと、第2のユーザに対して第2の向きで仮想環境を第2のユーザに表示することとを含み得、仮想環境は共有仮想空間における第1および第2のユーザに提示され、表示することは、第1の物理経路と、共有仮想空間において提示される仮想環境の文脈と、共有仮想空間における第1の仮想経路とに基づいて、仮想環境の仮想特徴を共有仮想空間における第1のユーザに対して方向付けることと、第2の物理経路と、共有仮想空間において提示される仮想環境の文脈と、共有仮想空間における第2の仮想経路とに基づいて、仮想環境の仮想特徴を共有仮想空間における第2のユーザに対して方向付けることとを含む。
別の局面において、非一時的なコンピュータ可読媒体上にコンピュータプログラムプロダクトが具現化され得る。コンピュータ可読媒体上に一連の命令が格納され得、命令はプロセッサによって実行されるとプロセッサに方法を実行させる。当該方法は、第1の物理空間と関連付けられた少なくとも1つの物理的な制約を検出することと、第1の物理空間における第1のユーザの位置および向きと、検出した第1の物理空間と関連付けられた少なくとも1つの物理的な制約とに基づいて、第1の物理空間における第1の物理経路を検出することと、第2の物理空間と関連付けられた少なくとも1つの物理的な制約を検出することと、第2の物理空間における第2のユーザの位置および向きと、検出した第2の物理空間と関連付けられた少なくとも1つの物理的な制約とに基づいて、第2の物理空間における第2の物理経路を検出することと、仮想環境の仮想特徴を第1の向きで第1のユーザに表示することと、仮想環境の仮想特徴を第2の向きで第2のユーザに表示することとを含み得、仮想環境は、共有仮想空間における第1および第2のユーザに提示され、共有仮想空間における第1のユーザに対する仮想環境の仮想特徴の第1の向きは、第1の物理経路と、仮想環境の文脈と、共有仮想空間における第1の仮想経路とに基づいており、共有仮想空間における第2のユーザに対する仮想環境の仮想特徴の第2の向きは、第2の物理経路と、共有仮想空間において提示される仮想環境の文脈と、共有仮想空間における第2の仮想経路とに基づいている。
1つ以上の実装例の詳細を添付の図面および以下の説明に記載する。その他の特徴は、明細書および図面から、ならびに特許請求の範囲から明らかであろう。
拡張および/または仮想現実システムの例示的な実装例の図である。 本明細書に記載の実装例に従う、ヘッドマウントディスプレイデバイスの斜視図である。 本明細書に記載の実装例に従う、ヘッドマウントディスプレイデバイスの斜視図である。 本明細書に記載の実装例に従う、拡張および/または仮想現実システムが生成する共有仮想空間を体験する複数のユーザの配置および方向付けを提供する例示的なシステムのブロック図である。 本明細書に記載の実装例に従う、拡張および/または仮想現実システムが生成する共有仮想空間を体験する複数のユーザの配置および方向付けのためのシステムの例示的な実装例を示す図である。 本明細書に記載の実装例に従う、拡張および/または仮想現実システムが生成する共有仮想空間を体験する複数のユーザの配置および方向付けのためのシステムの例示的な実装例を示す図である。 本明細書に記載の実装例に従う、拡張および/または仮想現実システムが生成する共有仮想空間を体験する複数のユーザの配置および方向付けのためのシステムの例示的な実装例を示す図である。 本明細書に記載の実装例に従う、拡張および/または仮想現実システムが生成する共有仮想空間を体験する複数のユーザの配置および方向付けのためのシステムの例示的な実装例を示す図である。 本明細書に記載の実装例に従う、拡張および/または仮想現実システムが生成する共有仮想空間を体験する複数のユーザの配置および方向付けのためのシステムの例示的な実装例を示す図である。 本明細書に記載の実装例に従う、拡張および/または仮想現実システムが生成する共有仮想空間を体験する複数のユーザの配置および方向付けのためのシステムの例示的な実装例を示す図である。 本明細書に記載の実装例に従う、共有仮想空間において複数のユーザを方向付ける方法のフローチャートの図である。 本明細書に記載の技法を実現するために使用され得るコンピュータデバイスおよびモバイルコンピュータデバイスの例を示す図である。
詳細な説明
拡張現実(AR)および/または仮想現実(VR)システムは、たとえばヘッドマウントディスプレイ(HMD)デバイスまたは同様のデバイスを含み得る。当該デバイスは、たとえばユーザの頭部に装着されて、没入型仮想環境を生成する。ユーザは、現実世界環境または現実世界空間にいながら仮想環境を体験することができ、現実世界環境におけるユーザの動きが仮想世界環境における対応する動きに変換される。現実世界環境における物理的な制約は、ユーザが仮想環境で自由に動く能力、および仮想環境で仮想の物体、特徴、要素などと効果的に対話する能力に影響を及ぼし得る。現実世界環境における物理的な制約は、同一の仮想環境を占有または共有している複数のユーザ同士の効果的な対話にも影響を及ぼし得るかまたは対話を阻止し得る。これら物理的な制約として、たとえば、現実世界環境における壁などの物理的な境界があり得る。これら物理的な制約として、現実世界環境における家具等、現実世界環境における他の人々、ペット等、などの物理的な障害もあり得る。本明細書に記載の実装例に従うシステムおよび方法は、各ユーザが物理的に存在している現実世界環境の既知の物理的な制約および/または物理的な障害を前提として、仮想環境の仮想特徴を、共有仮想環境における1人または複数のユーザに対して選択的に位置決めして方向付け得る。この位置決めおよび方向付けによって、ユーザがアクセス可能な物理空間の量が最大化され、仮想環境における仮想特徴および/または仮想環境を共有しているその他の仮想キャラクタとの対話が向上し得る。たとえば、ある実装例では、仮想環境の仮想特徴のこの位置決めおよび方向付けによって、ユーザは遮られていない三次元体積経路に沿って自然に引き寄せられるため、物理環境と関連付けられた物理的な制約および物理的な障害を前提として、システムが判断する物理環境における最大量の途切れない物理的な動きが可能となり得る。以下、単に記述および例示を簡単にするために、この体積経路を物理経路と称する場合もある。
図1は、本明細書に記載の実装例に従うシステムおよび方法の複数のユーザのうちの1人を示す。図1に示すように、HMD100を装着しているユーザは、たとえばコントローラ、スマートフォン、またはその他の携帯型ハンドヘルド電子装置などの、携帯型のまたはハンドヘルド型の電子装置102を手に持っている。ハンドヘルド電子装置102は、たとえば、有線接続、またはたとえばwifiもしくはBluetooth(登録商標)接続などの無線接続を介してHMD100とペアリングされ、またはHMD100に作動的に結合され、HMD100と通信し得る。このペアリングまたは作動的な結合によってハンドヘルド電子装置102とHMD100との間のデータの通信および交換が提供され得るため、ハンドヘルド電子装置102はHMD100が生成する仮想環境との対話および当該環境への入力を容易にし得る。
図2Aおよび図2Bは、たとえば図1のユーザが装着しているHMD100のようなHMDの一例の斜視図である。このHMDは、没入型仮想現実環境を生成する。HMD100は、フレーム120に、結合たとえば回転可能に結合および/または取外し可能に装着される筐体110を含み得る。たとえばヘッドフォンに搭載されたスピーカを含む音声出力装置130もフレーム120に結合されてもよい。図2Bでは、筐体110の前面110aは、筐体110に収容されている部品の一部が見えるように、筐体110の基部110bから回転して離れている。ディスプレイ140が筐体110の前面110aに搭載されていてもよい。レンズ150は、筐体110の内部において、前面110aが筐体110の基部110bに対して閉じられた位置にあるときにユーザの目とディスプレイ140との間になるように装着され得る。レンズ150の位置をユーザの目のそれぞれの光軸と位置合わせすることにより、比較的広い視野および比較的短い焦点距離がもたらされ得る。ある実装例では、HMD100は、さまざまなセンサを含む検知システム160と、プロセッサ190およびHMD100の操作を容易にするさまざまな制御システム装置を含む制御システム170とを含み得る。
ある実装例では、HMD100は、HMD100の外部の現実世界環境の静止画および動画を撮影するカメラ180を含み得る。ある実装例では、カメラ180が撮影した画像を、ユーザに対してパススルーモードでディスプレイ140に表示することで、ユーザが、HMD100を外すことなく、そうでなければHMD100の構成を変更して筐体110を動かしてユーザの視線から外すことなく、現実世界環境から画像を見ることができるようにしてもよい。
ある実装例では、HMD100は光学追跡装置165を含み得る。光学追跡装置165は、たとえば1つ以上の画像センサ165Aを含む。この画像センサは、たとえば、光学位置(たとえば注視)、光学活動(たとえばスワイプ)、光学ジェスチャ(たとえば瞬きなど)といったユーザ眼球運動および活動を検出して追跡する。ある実装例では、HMD100は、光学追跡装置165が検出した光学活動が、HMD100が生成した仮想環境において対応する対話に変換されることになるユーザ入力として処理されるように構成されてもよい。
本明細書に記載の実装例に従う、共有仮想環境においてユーザを方向付けるためのシステムのブロック図を図3に示す。当該システムは、第1のユーザ電子装置300を含み得る。ある実装例では、第1のユーザ電子装置300は第2のユーザ電子装置302と通信してもよい。第1のユーザ電子装置300は、たとえば、ユーザが体験することになる没入型仮想環境を生成する、図1、図2Aおよび図2Bに関して上述したようなHMDであってもよく、第2のユーザ電子装置302は、たとえば、第1のユーザ電子装置300と通信して仮想没入型環境とのユーザの対話を容易にする、図1に関して上述したようなハンドヘルド電子装置であってもよい。
第1の電子装置300は、検知システム360と制御システム370とを含み得る。これらシステムは、図2Aおよび図2Bに示す検知システム160および制御システム170とそれぞれ同様であってもよい。検知システム360は、たとえば、光センサ、音声センサ、画像センサ、距離/近接センサ、たとえば加速度計およびジャイロスコープを含む慣性測定システム、ならびに/またはその他のセンサおよび/もしくはセンサの各種組合わせを含む、多種多様なセンサを含み得る。ある実装例では、光センサ、画像センサおよび音声センサは、たとえば図2Aおよび図2Bに示すHMD100のカメラ180のようなカメラなどの、1つの構成要素に含まれていてもよい。ある実装例では、検知システム360は、たとえば図2Bに示す光学追跡装置165と同様の装置などの、ユーザの光学活動を検出して追跡するように位置決めされた画像センサを含んでいてもよい。制御システム370は、たとえば、電源/停止制御装置、音声およびビデオ制御装置、光学制御装置、遷移制御装置、ならびに/またはその他のこのような装置および/もしくは装置の各種組合わせを含む、多種多様な装置を含み得る。ある実装例では、検知システム360および/または制御システム370は、特定の実装例に応じて、より多いまたはより少ない装置を含んでいてもよい。検知システム360および/または制御システム370に含まれる要素は、たとえば、図2Aおよび図2Bに示すHMD100以外のHMDの内部に、異なる物理的構成(たとえば異なる物理的位置)を有していてもよい。
第1の電子装置300はまた、検知システム360および制御システム370と通信するプロセッサ390と、たとえば制御システム370のモジュールからアクセス可能なメモリ380と、第1の電子装置300とたとえば第1の電子装置300とペアリングされた第2の電子装置302などの別の外部装置との間の通信を提供する通信モジュール350とを含み得る。
第2の電子装置302は、第2の電子装置302とたとえば第2の電子装置302とペアリングされた第1の電子装置300などの別の外部装置との間の通信を提供する通信モジュール306を含み得る。たとえば第1の電子装置300と第2の電子装置302との間の電子データの交換を提供することに加えて、ある実装例では、通信モジュール306は光線またはビームを発するようにも構成されてもよい。第2の電子装置302は検知システム304を含み得る。検知システム304は、たとえば、カメラおよびマイクに含まれるような画像センサおよび音声センサ、慣性測定装置、ハンドヘルド電子装置のタッチセンシティブ画面に含まれるようなタッチセンサ、ならびにその他のこのようなセンサおよび/またはセンサの各種組合わせを含む。プロセッサ309は、第2電子装置302の検知システム304およびコントローラ305と通信してもよい。コントローラ305は、メモリ308にアクセスすることができ、第2の電子装置302の全体の動作を制御する。
拡張および/または仮想現実システムでは、本明細書に記載の実装例に従って、各ユーザは各自の現実世界環境、または現実世界空間、または部屋の中を物理的に動くことにより、仮想環境における対応する動きをもたらし得る。当該システムは、現実世界環境におけるユーザの動きを追跡し得、現実世界環境におけるユーザの物理的な動きと協調して仮想環境における知覚された動きをもたらし得る。つまり、現実世界環境におけるユーザの動きが仮想環境における動きに変換されて、仮想環境における高まった存在感覚が生成され得る。ある実装例では、仮想環境は複数のユーザによって共有されてもよい。ある実装例では、共有仮想環境における複数のユーザは、同一の物理環境に物理的に存在していてもよい。ある実装例では、共有仮想環境における複数のユーザは、各々が共有仮想環境に仮想的に存在しつつ、各々が各自の物理環境に物理的に位置していてもよい。共有仮想環境では、複数のユーザが互いに対話する、仮想環境において仮想特徴との対話を共有する、などを行なってもよい。ある実装例では、共有仮想環境に仮想的に存在しているユーザを仮想キャラクタによって表現することにより、共有仮想環境におけるユーザ同士の対話をさらに向上させてもよい。
共有仮想環境に仮想的に存在している複数のユーザは、仮想環境において互いに近づいてそれぞれの仮想キャラクタ同士の対話を容易にしたいと望む場合がある。ある状況では、第1の現実世界環境における第1のユーザおよび第2の現実世界環境における第2のユーザは、それぞれの現実世界環境に位置決めされた物理的な障害のために互いに近づくことができないように、共有仮想環境の仮想特徴に対して位置決めされて方向付けられ得る。これによって、仮想環境における第1のユーザおよび第2のユーザ同士の効果的な対話が阻止され得る。この状況では、仮想テレポートまたはスクロール動作を実行して第1および第2のユーザを仮想的に互いに近づけてもよい。第1および第2のユーザがそれぞれの現実世界環境で物理的に動きながら仮想環境で互いに近づくことができるこの能力によって、各ユーザの仮想体験が向上し得る。たとえば、第1のユーザは、仮想環境においてターゲット(当該ターゲットはたとえば第2のユーザであり得る)に近づきたいと望む場合がある。これは、物理環境における第1のユーザの対応する動きを必要とし得る。たとえば壁などの物理的な障害によってこのような物理的な動きが阻止される場合は、ユーザは仮想世界には存在しない物理世界における障害に直面するため、仮想環境におけるユーザの存在感覚が減少し得る。この物理的な障害との遭遇は、仮想環境からのユーザの切り離しにつながり得る。
単に記述および例示を簡単にするために、以下、現実世界環境または現実世界空間を部屋と考えることにする。この部屋は、現実世界環境の物理的な境界を規定する壁、床および天井を有しており、現実世界環境における動きの物理的な障害となる物理的なオブジェクトが部屋全体にわたって位置決めされている。対照的に、仮想環境には本質的に境界がなくてもよく、仮想環境におけるユーザの仮想的な動きは、それぞれのユーザが物理的に存在している物理的な部屋の範囲、または境界、または物理的な制約によってのみ制限される。
ある実装例では、部屋の物理的な境界、たとえば、壁の相対的な位置決め、および部屋全体のさまざまな静止した物理オブジェクト(たとえば、家具、ドアなど)の位置決めは、仮想現実システムによって既知であってもよい。ある実装例では、物理的な境界および物理的な障害は、たとえば、仮想没入型体験の開始時の部屋のスキャンと、壁および部屋の中の物理的なオブジェクトの相対位置の較正とに基づいて求められてもよい。このスキャンは、たとえば、図2A〜図2Bに示すカメラ180およびプロセッサ190、ならびに/または図3に示すセンサ304および/もしくは360およびプロセッサ309および/もしくは390などの、カメラおよび/またはその他の画像処理装置によって達成されてもよい。ある実装例では、部屋の物理的な境界は、たとえば、標準的なおよび/または既知の構成を有する部屋の中に仮想現実システムをインストールすることなどに基づいて既知であってもよい。ある実装例では、仮想現実システムは、壁、ならびに、たとえば家具、ドア(およびドアの開閉)、他の人々、ペットなどのその他の物理オブジェクト(静止型および移動型の双方)などの、物理的な境界を検出して更新するように設定されてもよい。この検出は、ユーザがたとえば境界および/または障害に近づくと、上述の撮像装置、センサ、プロセッサなどによって、本質的にリアルタイムで達成されてもよい。
ある実装例では、仮想現実システムは、ユーザが動くと部屋の中を物理的に動いている場合がある、かつユーザが部屋の中を動くとユーザに対する物理的な障害となる場合がある、部屋の中の他の人々、ペットなどの物理的位置を検出して定期的に更新してもよい。ある状況では、部屋の中の他の人/人々もユーザとともに共有仮想環境を占有している場合があるため、ユーザは他の人/人々の存在を認識している場合があるが、他の人々/人の部屋の中の物理的位置は必ずしも認識しているとは限らないので、他の人/人々はユーザの物理的な障害となる/ユーザを潜在的に物理的な危険にさらす場合がある。ある状況では、他の人/人々(および/またはペット)も部屋の中にいる場合があるが、ユーザと同一の仮想環境に加わっていない場合があり、および/またはユーザの仮想体験の開始後に部屋に入ってきた場合がある。この場合、ユーザは部屋の中のそれらの物理的位置を認識していない可能性が最も高いので、それらはユーザの物理的な障害となるおよび/またはユーザを潜在的に物理的な危険にさらす。
ある実装例では、特定の部屋の物理的構成が分かると(物理的な壁によって規定される境界、部屋のその他の物理的特徴、および/または部屋の中のその他の物理的な障害を含む)、仮想環境のサイズ、または範囲が、単にこれら既知の物理的な制約の中に収まるように設計および/または適合されてもよい。しかし、仮想環境に対してこれらの種類の制約を課すと、このような制約がなければ複数のユーザ間での共有に対応可能となる、かつより広範なユーザの動き、探検、および対話を提供することになる、はるかに広範な仮想環境を生成可能なシステムを、不必要に制限してしまう場合がある。
ある実装例では、ユーザが現実世界環境で動いて、現実世界環境におけるユーザのさらなる物理的な動きを制限することになる壁(既知であるか、またはシステムによってリアルタイムで検出される)に近づくと、システムは仮想環境を自動的にスクロールさせてもよい。この仮想環境の自動的なスクロールによって、ユーザを現実世界空間内で再方向付けする目的で、ユーザの向きを変えさせて、さらなる物理的な動きに対応してもよい。ある実装例では、システムは、仮想環境内で自動的にユーザにテレポートさせてもよいし、視方向および/または向きを変えさせてもよい。この自動的なスクロールおよび/またはテレポートによってユーザは効果的に再方向付けられ得るが、その間、方向感覚の喪失が生じるため、ユーザが仮想環境において存在を維持することが困難になり得る。この切り離しは、複数のユーザが同一の共有仮想環境に仮想的に存在している状況では悪化し得る。開示される技術は、このような再方向付けが必要となる状況の必要性および機会、たとえば頻度を減らすよう意図されている。
本明細書に記載の実装例に従うシステムおよび方法では、各ユーザのそれぞれの現実世界環境または物理空間のすべての方向における当該ユーザと任意の物理的な障害および/または物理的な境界との間の物理的距離が、たとえば、上述のようなシステムに含まれるさまざまなセンサおよび/またはプロセッサによって求められてもよい。各ユーザの現実世界環境または物理空間の表現が、たとえば、仮想環境におけるユーザの所望の向きおよび仮想的な動きを考慮して、共有されることになる仮想環境に重ね合わせられてもよい。これによって、仮想環境が、各ユーザのそれぞれの物理的な現実世界環境における物理的な動き、および仮想環境における仮想的な動きの双方について、最適化されることになる当該ユーザに提示される、または当該ユーザに対して方向付けられる態様が可能となり得る。すなわち、仮想環境は、各ユーザが、自身のそれぞれの物理空間における自身の向きに基づいて仮想環境において方向付けられて、物理空間における既知の物理的な制約を前提として、仮想環境において可能な、遮られていない最長の移動距離、および/または仮想空間を仮想的に共有しているその他のユーザへの最も明確な経路を提供するように、各ユーザに提示され得るか、または各ユーザに対して方向付けられ得る。
図4に示すように、第1のユーザAが、第1の物理的な現実世界環境400、または第1の部屋400、または第1の物理空間400の中に物理的に位置決めされ得る。第2のユーザBが、第1の物理空間400とは異なる第2の物理的な現実世界環境500、または第2の部屋500、または第2の物理空間500の中に物理的に位置決めされ得る。第1のユーザAおよび第2のユーザBは、将来の共通の仮想空間600において共に同一の仮想体験に加わることを選択し得る。共通の仮想空間600では、第1および第2のユーザAおよびBは別々の物理空間400および500をそれぞれ物理的に占有しているにも関わらず、共有仮想環境は第1のユーザAおよび第2のユーザBによって共有され得る。
上述のように、ある実装例では、第1の物理空間400の、および/または第2の物理空間500の物理的な制約(物理的な境界、物理的な障害など)はシステムによって既知であってもよい。ある実装例では、第1の物理空間400の、および/または第2の物理空間500の物理的な制約(物理的な境界、物理的な障害など)は、たとえば、仮想体験の開始前の物理空間400、500のスキャンと、ユーザAおよびBへの仮想環境、特に共有仮想空間600の提示とに基づいて求められてもよい。上述のように、物理空間400、500のこのようなスキャンは、たとえば、HMD100上のカメラ180および/もしくはその他のセンサ、ハンドヘルド電子装置102上のセンサ、ならびに/または物理空間400、500を撮影可能なシステムに含まれるその他のセンサによって行なわれてもよい。上述のように、ある実装例では、第1の物理空間400および第2の物理空間500の物理的な制約(物理的な境界、物理的な障害など)は定期的にまたは間欠的に更新されてもよい。これによって、物理空間400、500における物理的な障害が移動または変化した場合に、それぞれの物理空間の本質的にリアルタイムの物理的状態が提供され得る。たとえば、この間欠的なスキャンおよびリアルタイムの更新によって、物理的な障害を表わすドアの開閉、物理空間で動いているおよび/または物理空間に入ってくる他人/ペットなど、ならびに移動および/または変化し得るその他のこのような物理的な障害の指示が提供され得る。
第1の物理空間400および/または第2の物理空間500の物理的な制約が、特定の空間の既知の構成に基づいて予め入手可能であるか、仮想体験の開始要求に応じた物理空間のスキャンに基づいて求められるかにかかわらず、システムは、物理空間内の遮られていない最長の経路を求めることができ、ユーザはこの経路に沿って物理空間の中を動くことができる。一例では、この経路は直線であってもよい。たとえば、図4Aに示すように、システムは、第1の物理空間400における第1のユーザAの現在の位置を前提とした、第1の物理空間400内の最も遮られていない最長のルートまたは経路は、第1の物理ルート420、または第1の物理経路420、または第1の体積経路420であると判断し得る。同様に、システムは、第2の物理空間500における第2のユーザBの現在の位置を前提とした、第2の物理空間500内の最も遮られていない最長のルートまたは経路は、図4Aに示す第2の物理ルート520、または第2の物理経路520、または第2の体積経路520であると判断し得る。第1の物理経路420および第2の物理経路520は、ユーザの動きを妨げるまたは遮ることになる物理的な制約が比較的ないそれぞれの物理空間400、500の中のルートまたは経路を表わし得る。このような物理的な制約として、たとえば、空間におけるユーザの動きを妨げることになる、床空間を占有するおよび/または物理空間内に延びる静止した物理オブジェクトなどの、物理空間における物理オブジェクトがあり得る。たとえば、物理空間の床に位置決めされた家具は、物理空間におけるユーザの動きを阻止するまたは遮る場合があるが、物理空間の天井に設置された照明器具はそのようなことはない。システムは、物理空間におけるユーザの動きに物理的な制約を課すオブジェクトを検出し、物理空間内の最も遮られていない物理的なルートまたは経路を求め得る。つまり、最も遮られていない物理的なルートは、たとえば、物理環境におけるユーザと任意の可能性のある物理的な障害との間の物理環境における最長距離であり得る。
仮想環境は、求められた第1の物理経路420に基づいて第1のユーザAに提示されるように方向付けられ得る。同様に、仮想環境は、求められた第2の物理経路520に基づいて第2のユーザBに提示されるように方向付けられ得る。第1および第2のユーザAおよびBへのこの仮想環境の提示の方向付けは、たとえば、第1のユーザAおよび第2のユーザBが共有することになる特定の仮想環境の特徴に基づいていてもよい。たとえば、ある実装例では、特定の仮想環境の特徴は、第1のユーザAおよび第2のユーザB同士の(たとえば、共有仮想空間600において第1の仮想ユーザAを表わす第1の仮想キャラクタと、共有仮想空間600において第2の仮想ユーザBを表わす第2の仮想キャラクタとの間の)対話に適している場合がある。
この状況では、仮想環境、または共有仮想空間600は、第2のユーザBの仮想表示に向かう、比較的明確な、かつ比較的遮られていない仮想ルートまたは経路620Aとともに、第1のユーザAに提示され得る。仮想ルートまたは経路620Aは、ユーザに対する、かつユーザが近づくことになるターゲットに対する仮想環境の仮想特徴の位置決めに基づいて、比較的明確であり、かつ比較的遮られていないと考えられ得るため、ユーザは、仮想経路620Aに対応する仮想環境における仮想方向に自然に引き寄せられる。共有仮想空間600内の仮想環境における仮想特徴は、第1のユーザAが、これら仮想特徴の配置によって、第1の物理空間400における第1の物理ルートまたは経路420に対応する方向に自然に引き寄せられるように、第1のユーザAに対して方向付けられ得る。これによって、第1のユーザAは、図4Aおよび図5Aに示すように、仮想空間600内の比較的明確で比較的遮られていない仮想経路620A、および物理空間400内の比較的明確で比較的遮られていない物理経路420をたどって、第2のユーザBの仮想表現に向かって歩くことができる。同様に、この状況では、仮想環境、または共有仮想空間600は、第1のユーザAの仮想表示に向かう、明確で遮られていない仮想経路620Bとともに、第2のユーザBに提示され得る。共有仮想空間600内の仮想環境における仮想特徴は、第2のユーザBが、これら仮想特徴の配置によって、第2の物理空間500における第2の物理ルートまたは経路520に対応する方向に自然に引き寄せられるように、第2のユーザBに対して方向付けられ得る。これによって、第2のユーザBは、図4Aおよび図5Aに示すように、仮想空間600内の明確で遮られていない仮想ルートまたは経路620B、および物理空間500内の明確で遮られていない物理経路520をたどって、第1のユーザAの仮想表現に向かって歩くことができる。
図4Aに示す例では、共有仮想空間600は第1の物理空間400に点線で重ね合わせられている。図4Aでは、共有仮想空間600は第2の物理空間500にも点線で重ね合わせられている。共有仮想空間600の向きは、第1の物理空間400に重ね合わせられた共有仮想空間600の表現における文字Fの表現に対する、かつ第2の物理空間500に重ね合わせられた共有仮想空間600の表現における文字Fの向きに対する、図4Aの下部の共有仮想空間600の表現における文字Fの向きに基づいて確かめることができる。図4Aに示す例では、第1のユーザAへの仮想環境の提示は、第1のユーザを、第2のユーザBの仮想表現に向かって、または第1の仮想経路620Aに対応する第1の物理経路420に沿って引き寄せるように方向付けられている。同様に、第1のユーザAへの仮想環境の提示は、第1のユーザを、第2のユーザBの仮想表現に向かって、または第2の仮想経路620Bに対応する第2の物理経路520に沿って引き寄せるように方向付けられている。したがって、図4Aに示す例では、共有仮想空間600内に提示される仮想環境における第1のユーザAと第2のユーザBとの対話の機会が、仮想環境を生成する特定のアプリケーションの文脈の中で最大化され得る。仮想経路620Aおよび620Bは、本開示では所望の仮想経路として、またはさらには方向付け用の仮想特徴としても記載される。所望の仮想経路は、たとえば、ユーザに対する仮想環境の仮想特徴の向き、仮想環境におけるユーザの仮想的な動き、仮想環境に没入しているその他のユーザの仮想的な位置、または仮想環境におけるユーザの近くの予め定められた仮想的な対象点に基づいて求められ得る。
ある実装例では、共有仮想空間600において提示される仮想環境は、仮想環境における第1のユーザAおよび第2のユーザBと1つ以上の仮想の物体、要素、特徴などとの対話を促進するように構成され得る。たとえば、図4Bに示すように、ある実装例では、第1のユーザAおよび第2のユーザBの各々が、共有仮想空間600内に提示される仮想環境において仮想オブジェクトCとの対話を望む場合がある。この状況では、仮想環境または共有仮想空間600は、仮想オブジェクトCに向かう明確な仮想経路620Aとともに第1のユーザAに提示され得る。共有仮想空間600内の仮想環境における仮想特徴は、第1のユーザAが、これら仮想特徴の配置によって、第1の物理空間400における第1の物理経路420に対応する方向に自然に引き寄せられるように、第1のユーザAに対して方向付けられ得る。これによって、第1のユーザAは、図4Bおよび図5Bに示すように、仮想空間600における明確な仮想経路620A、および物理空間400における明確な物理経路420をたどって、仮想オブジェクトCに向かって歩くことができる。同様に、この状況では、仮想環境、または共有仮想空間600は、仮想オブジェクトCに向かう明確な仮想経路620Bとともに第2のユーザBに提示され得る。一例では、仮想オブジェクトCは、ユーザの対象点に対応する仮想環境における予め定められた位置である。共有仮想空間600内の仮想環境における仮想特徴は、第2のユーザBが、たとえば、これら仮想特徴の配置によって、第2の物理空間500における第2の物理経路520に対応する方向に自然に引き寄せられるように、第2のユーザBに対して方向付けられ得る。これによって、第2のユーザBは、図4Bおよび図5Bに示すように、仮想空間600における明確な仮想経路620B、および物理空間500における明確な物理経路520をたどって、仮想オブジェクトCに向かって歩くことができる。
したがって、仮想環境の文脈によって、ユーザは仮想環境において特定の方向に自然に引き寄せられ得る。すなわち、仮想環境の文脈は、たとえば、仮想環境における特定のシーンが、第1および第2のユーザAおよびB同士の対話のためのものであるか、ならびに/または第1および第2のユーザAおよびBと、仮想環境の1つ以上の特定の仮想特徴との対話、ならびにこのような対話を引出すための仮想環境における仮想特徴の仮想配置のためのものであるか、を含み得る。すなわち、ユーザAに対する仮想特徴の仮想配置を含む、ユーザAに提示されるような仮想環境の文脈によって、ユーザAは第1の仮想経路620Aに沿って(ユーザBに向かって、および/または仮想要素Cに向かって)自然に引き寄せられ得る。同様に、ユーザBに対する仮想特徴の仮想配置を含む、ユーザBに提示されるような仮想環境の文脈(ユーザAに提示されるのと同一の仮想環境の文脈とは異なり得る)によって、ユーザBは第2の仮想経路620Bに沿って(ユーザAに向かって、および/または仮想要素Cに向かって)自然に引き寄せられ得る。
ユーザAが第1の物理空間400を占有し、ユーザBが第2の物理空間500を占有するこれらの例では、ユーザAおよびユーザBは互いを物理的な衝突の危険にさらすことはない。しかし、他人(共有仮想空間600における仮想環境に加わっていない)、ペットなどが物理空間400または500に入ってくる場合がある。物理空間400/500に入ってくる、新たに入場する人/ペットは共有仮想空間600にいないため、対応する物理空間400/500におけるユーザA/Bは、付加的な装置および/または検出および/または計算能力を使用しなければ、新たに存在する人/ペットとの衝突を回避するのに間に合うようにこれらの人/ペットを認識できない場合がある。したがって、この種の例では、新たに存在する人/ペットは、物理空間400/500におけるユーザA/Bを衝突の危険にさらし得る。したがって、ある実装例では、システムは、対応する物理空間400/500を間欠的に/定期的にスキャンし、新たに存在する人/ペットを含めるように、物理空間400/500と関連付けられた物理的な制約を更新してもよい。システムは次に、新たに存在する人/ペットおよび/またはこの人/ペットの対応する動きを考慮して、対応する物理空間400/500においてユーザA/Bがたどることになる経路を更新してもよい。
ある状況では、第1のユーザAおよび第2のユーザBは、図4Cに示すように、同一の物理空間、たとえば第1の物理空間400に物理的に存在し得る。この状況では、システムは、上述のように、第1の物理空間400における第1のユーザAの位置および向きに基づいて、第1のユーザAについての第1の物理空間400における最長の物理経路420を求め得る。同様に、システムは、上述のように、第1の物理空間400における第2のユーザBの位置および向きに基づいて、第2のユーザBについての第1の物理空間400における最長の物理経路520を求め得る。
第1の物理空間400におけるユーザAについての最長の物理経路420は、物理空間400の物理的な制約(たとえば壁)と、物理空間400における物理的な障害とに基づいて求められ得る。物理的な障害は、たとえば、物理空間400における家具などの静止オブジェクトと、物理空間400におけるユーザBなどの非静止オブジェクトとを含み得る。ある実装例では、物理的な障害は、他人の第1の物理空間400への検出された入場、ペットの物理空間400への検出された入場などを含み得る。したがって、物理空間400におけるユーザAについての最長の物理経路420を求める際、システムは、ユーザBも、衝突回避のために考慮すべき物理的な障害と見なし得る。システムは、他人またはペットの検出された入場も、衝突回避のために考慮すべき物理的な障害と見なし得る。すなわち、システムは、物理空間400におけるユーザAとこれら物理的な障害のいずれかとの衝突を回避するために、ユーザBがたどる可能性が高い物理経路(たとえば最長の物理経路520)、および、いずれかの新たな人々、ペットなどの物理空間400への検出された入場も考慮して、ユーザAについての最長の物理経路420を設定し得る。同様に、物理空間400におけるユーザBについての最長の物理経路520を求める際、システムは、ユーザA、および、他の人々、ペットなどの物理空間400への検出された入場も、衝突回避のために考慮すべき物理的な障害と見なし得る。すなわち、システムは、物理空間400におけるユーザBと物理的な障害との衝突を回避するために、ユーザAがたどる可能性が高い物理経路(たとえば最長の物理経路420)、および、他人/ペットの当該物理空間への検出された入場も考慮して、ユーザBについての最長の物理経路520を設定し得る。この分析は反復的に実行されて、第1および第2のユーザAおよびBについての第1および第2の経路420および520が設定されることにより、第1および第2のユーザAおよびB同士の衝突、ならびに第1および第2のユーザAおよびBと、物理空間400に入った可能性があるがユーザAおよびBが認識していない可能性がある他人、ペットなどとの衝突が回避され得る。
共有仮想空間600において提示される仮想環境は次に、図4Aおよび図5Aに関して上記に詳述したように、第1のユーザAおよび第2のユーザB同士の対話を促進するように、第1および第2のユーザAおよびBのそれぞれの位置および向きと、物理空間400における第1のユーザAおよび第2のユーザBの移動経路とに基づいて、第1の向きで第1のユーザAに、第2の向きで第2のユーザBに提示され得る。同様に、共有仮想空間600において提示される仮想環境は次に、図4Bおよび図5Bに関して上記に詳述したように、共有仮想空間600において提示される仮想環境における1つ以上の仮想要素との対話を促進するように、第1および第2のユーザAおよびBのそれぞれの位置および向きと、物理空間400における第1のユーザAおよび第2のユーザBの移動経路とに基づいて、第1の向きで第1のユーザAに、第2の向きで第2のユーザBに提示され得る。
ある実装例では、図4Cに関して上述したように、第1のユーザAおよび第2のユーザBが同一の物理空間に存在している場合、共有仮想空間600における仮想環境の向き、または共有仮想空間600における仮想空間の提示は、共有仮想空間600に参加するまたは入る複数のユーザのうちの初めてのユーザの位置および向きに基づいて規定され得る。たとえば、第1の物理空間400における第1のユーザAは、仮想体験を開始して仮想空間600に入り得る。仮想空間600において提示される仮想環境の特徴は、物理空間400における、かつ仮想空間600における第1のユーザAの動きの可能な最長のベクトルが第1のユーザAに与えられるように方向付けられ得る。第2のユーザBがその後で第1の物理空間400に入り(第1のユーザAと共に第1の物理空間400に参加し)、第1のユーザAと共に仮想環境に参加することを選択することによって仮想空間600を共有した場合、共有仮想空間400における仮想環境の要素および特徴の提示および向きは第1のユーザAについて最適化されたままであり、仮想環境の要素および特徴の向きは、第1のユーザAについて既に整えられている環境に基づいて第2のユーザBに設定され提示され得る。
ある状況では、ユーザは、物理空間におけるユーザの物理的な前進に利用可能な、ユーザの真正面の物理経路が、部屋の物理的な制約の1つ以上によって制限されるように、物理空間において位置決めおよび/または方向付けられ得る。たとえば、図4Dに示すように、仮想体験が開始すると、第2のユーザBは、第2のユーザBの真正面の物理経路510(すなわち、第2のユーザBが実質的に前へ歩くことによってたどることになる物理経路)が、第2の物理空間500の物理的な制約によってある程度制限されるように、第2の物理空間500において方向付けられ得る。図4Dに示す例では、第2のユーザBは第2の物理空間500の壁の方を向いている。このため、第2の物理空間500におけるユーザBの現在の物理的な向きに対応する物理経路510に沿って利用可能な前進の量が制限され得る。ユーザが沿って動くことができる物理経路を制限することになるこの種の物理的な制約が、たとえば所与の敷居内に検出されると、システムは、ユーザの向きを変えさせてから(または何らかの態様で物理的に再方向付けしてから)前進させてもよい。これによって、図4Dに示すように、ユーザはより長い経路に沿って、たとえば第2の物理経路520に沿って、再方向付けされ得る。ある実装例では、システムは、仮想環境における仮想特徴がどのようにユーザに提示されているかに基づいて、ユーザの向きを所望の向きに変えさせてもよいし、所望の向きに再方向付けしてもよい。たとえば、ある実装例では、システムは、ユーザが関わることになる仮想特徴をユーザの後ろに仮想的に位置決めすることにより、ユーザを自然に方向転換させて当該仮想特徴に関わらせるようにしてもよい。ある実装例では、システムは、音声および/または視覚合図、案内などに基づいてユーザの向きを変えさせてもよい。ある実装例では、システムは、音声合図および/または視覚合図とともに仮想環境における仮想特徴の配置に基づいてユーザの向きを変えさせてもよい。
図4Dに示す例は、第1の物理空間400における第1のユーザA、および第1の物理空間400とは別の第2の物理空間500における第2のユーザBを示す。しかし、図4Cに関して上述したように、たとえば第1のユーザAおよび第2のユーザBが同一の物理空間にいる場合は、上述の原理が適用され得る。
図4A〜図4Dおよび図5A〜図5Bに関して上述した例は、単に記述および例示を簡単にするために、第1のユーザおよび第2のユーザを含んでいる。本明細書に記載の原理は、1人のユーザのみが仮想空間を占有している状況に、または2人以上のユーザが同一の仮想空間を占有している場合に適用され得る。同様に、複数のユーザが同一の物理空間を占有してもよいし、異なる個々の物理空間を占有してもよいし、それらの組合せであってもよい。
本明細書に記載の実装例に従うシステムおよび方法では、図4A〜図4Dに関して上述したように、共有仮想空間600において提示される共有仮想環境に加わっている第1のユーザAおよび第2のユーザBは、共有仮想空間600における最大化された対話および移動の機会を有し得る。システムは、第1の物理空間400(および第1の物理空間400における第1のユーザAの位置)と第2の物理空間500(および第2の物理空間500における第2のユーザBの位置)との重ね合わせを用いて、共有仮想空間600における第1および第2のユーザAおよびBに仮想環境を提示するための向きを規定し得る。これによって、第1および第2のユーザAおよびBが第1および第2の物理空間400および500の中を動く(または第1および第2のユーザAおよびBが図4Cに示すように第1の物理空間400の中を動く)際に、かつ共有仮想空間600の中を動く際に、第1および第2のユーザは、物理空間400および500におけるそれぞれの可能な最長の物理経路に沿って、かつ共有仮想空間600における所望の仮想経路に沿って動くことができる。
図4A〜図4Dおよび図5A〜図5Bに関して上述した処理のフローチャートを図6に示す。物理空間におけるユーザは、拡張および/または仮想現実システムを操作して、仮想空間で体験することになる仮想環境を生成し得る(ブロック610)。システムは、ユーザが物理的に存在している物理空間と関連付けられた物理的な制約と、物理空間における物理的な障害となる物理オブジェクトとを検出し得る(ブロック620)。これは、たとえば、物理空間のスキャン、および物理空間の予め記憶された物理的な制約と既知の物理空間と関連付けられた障害とにアクセスすることなどを含み得る。これは、物理空間における潜在的な衝突の障害となる、同一の物理空間におけるその他のユーザの検出を含み得る。物理空間と関連付けられた物理的な制約および物理的な障害に基づいて、システムは、物理空間における最長の物理経路をユーザに提供し得る物理空間における物理経路を生成し得る(ブロック640)。物理空間に物理的に存在するより多くのユーザを検出すると(ブロック650)、システムは、個々の各ユーザのそれぞれの物理空間と関連付けられた物理的な制約および物理的な障害を検出し(ブロック630)、個々の各ユーザについて対応する最長の物理経路を生成し得る(ブロック640)。システムは次に、各物理空間の物理的な制約および物理的な障害と、個々の各ユーザの最長経路とを重ね合わせることにより、特定のアプリケーションの文脈に応じて、所望の対話を最大化するために共有仮想空間における各ユーザに提示されることになる仮想環境の向きを求め得る(ブロック660)。この処理は、仮想体験が終了する(ブロック670)まで継続され得る。
図7は、本明細書に記載の技法とともに用いられ得る一般的なコンピュータデバイス900および一般的なモバイルコンピュータデバイス950の例を示す。コンピューティングデバイス900は、ラップトップ、デスクトップ、タブレット、ワークステーション、携帯情報端末、テレビ、サーバ、ブレードサーバ、メインフレーム、およびその他の適切なコンピューティングデバイスといった、様々な形態のデジタルコンピュータを表わすよう意図されている。コンピューティングデバイス950は、携帯情報端末、携帯電話、スマートフォン、およびその他の同様のコンピューティングデバイスといった、様々な形態のモバイル機器を表わすよう意図されている。ここに示すコンポーネント、それらの接続および関係、ならびにそれらの機能は例示であるよう意図されているに過ぎず、本文書に記載されるおよび/または請求される本発明の実装例を限定するよう意図されていない。
コンピューティングデバイス900は、プロセッサ902と、メモリ904と、記憶装置906と、メモリ904および高速拡張ポート910に接続する高速インターフェイス908と、低速バス914および記憶装置906に接続する低速インターフェイス912とを含む。プロセッサ902は半導体ベースのプロセッサであってもよい。メモリ904は半導体ベースのメモリであってもよい。コンポーネント902、904、906、908、910、および912の各々は、さまざまなバスを使用して相互接続されており、共通のマザーボード上にまたはその他の態様で適宜搭載されてもよい。プロセッサ902は、コンピューティングデバイス900内で実行される命令を処理可能であり、これらの命令は、GUIのためのグラフィカル情報を、高速インターフェイス908に結合されたディスプレイ916などの外部入出力デバイス上に表示するために、メモリ904内または記憶装置906上に格納された命令を含む。その他の実装例では、複数のプロセッサおよび/または複数のバスが、複数のメモリおよび複数のタイプのメモリとともに適宜使用されてもよい。また、複数のコンピューティングデバイス900が接続されてもよく、各デバイスは(たとえば、サーババンク、ブレードサーバのグループ、またはマルチプロセッサシステムとして)必要な動作の一部を提供する。
メモリ904は、情報をコンピューティングデバイス900内に格納する。一実装例では、メモリ904は1つまたは複数の揮発性メモリユニットである。別の実装例では、メモリ904は1つまたは複数の不揮発性メモリユニットである。メモリ904はまた、磁気ディスクまたは光ディスクといった別の形態のコンピュータ可読媒体であってもよい。
記憶装置906は、コンピューティングデバイス900のための大容量記憶を提供可能である。一実装例では、記憶装置906は、フロッピー(登録商標)ディスクデバイス、ハードディスクデバイス、光ディスクデバイス、またはテープデバイス、フラッシュメモリもしくはその他の同様のソリッドステートメモリデバイス、または、ストレージエリアネットワークもしくはその他の構成におけるデバイスを含むデバイスのアレイといった、コンピュータ可読媒体であってもよく、または当該コンピュータ可読媒体を含んでいてもよい。コンピュータプログラムプロダクトが情報担体において有形に具体化され得る。コンピュータプログラムプロダクトはまた、実行されると上述のような1つ以上の方法を行なう命令を含んでいてもよい。情報担体は、メモリ904、記憶装置906、またはプロセッサ902上のメモリといった、コンピュータ可読媒体または機械可読媒体である。
高速コントローラ908はコンピューティングデバイス900のための帯域幅集約的な動作を管理し、一方、低速コントローラ912はより低い帯域幅集約的な動作を管理する。機能のこのような割当ては例示にすぎない。一実装例では、高速コントローラ908は、メモリ904、ディスプレイ916に(たとえば、グラフィックスプロセッサまたはアクセラレータを介して)、および、さまざまな拡張カード(図示せず)を受付け得る高速拡張ポート910に結合される。この実装例では、低速コントローラ912は、記憶装置906および低速拡張ポート914に結合される。さまざまな通信ポート(たとえば、USB、Bluetooth、イーサネット(登録商標)、無線イーサネット)を含み得る低速拡張ポートは、キーボード、ポインティングデバイス、スキャナなどの1つ以上の入出力デバイスに、または、スイッチもしくはルータなどのネットワーキングデバイスに、たとえばネットワークアダプタを介して結合されてもよい。
コンピューティングデバイス900は、図に示すように多くの異なる形態で実装されてもよい。たとえばそれは、標準サーバ920として、またはこのようなサーバのグループで複数回実装されてもよい。それはまた、ラックサーバシステム924の一部として実装されてもよい。加えて、それは、ラップトップコンピュータ922などのパーソナルコンピュータにおいて実装されてもよい。これに代えて、コンピューティングデバイス900からのコンポーネントは、デバイス950などのモバイル機器(図示せず)におけるその他のコンポーネントと組合されてもよい。このようなデバイスの各々は、コンピューティングデバイス900、950のうちの1つ以上を含んでいてもよく、システム全体が、互いに通信する複数のコンピューティングデバイス900、950で構成されてもよい。
コンピューティングデバイス950は、数あるコンポーネントの中でも特に、プロセッサ952と、メモリ964と、ディスプレイ954などの入出力デバイスと、通信インターフェイス966と、送受信機968とを含む。デバイス950にはまた、追加の格納を提供するために、マイクロドライブまたはその他のデバイスなどの記憶装置が設けられてもよい。コンポーネント950、952、964、954、966、および968の各々は、さまざまなバスを使用して相互接続されており、当該コンポーネントのうちのいくつかは、共通のマザーボード上にまたはその他の態様で適宜搭載されてもよい。
プロセッサ952は、メモリ964に格納された命令を含む、コンピューティングデバイス950内の命令を実行可能である。プロセッサは、別個の複数のアナログおよびデジタルプロセッサを含むチップのチップセットとして実装されてもよい。プロセッサは、たとえば、ユーザインターフェイス、デバイス950が実行するアプリケーション、およびデバイス950による無線通信の制御といった、デバイス950のその他のコンポーネント同士の連携を提供してもよい。
プロセッサ952は、ディスプレイ954に結合された制御インターフェイス958およびディスプレイインターフェイス956を介してユーザと通信してもよい。ディスプレイ954は、たとえば、TFT LCD(Thin-Film-Transistor Liquid Crystal Display:薄膜トランジスタ液晶ディスプレイ)、またはOLED(Organic Light Emitting Diode:有機発光ダイオード)ディスプレイ、またはその他の適切なディスプレイ技術であってもよい。ディスプレイインターフェイス956は、ディスプレイ954を駆動してグラフィカル情報およびその他の情報をユーザに提示するための適切な回路を含んでいてもよい。制御インターフェイス958は、ユーザからコマンドを受信し、それらをプロセッサ952に送出するために変換してもよい。加えて、デバイス950とその他のデバイスとの近接通信を可能にするように、外部インターフェイス962がプロセッサ952と通信した状態で設けられてもよい。外部インターフェイス962は、たとえば、ある実装例では有線通信を提供してもよく、またはその他の実装例では無線通信を提供してもよく、複数のインターフェイスも使用されてもよい。
メモリ964は、情報をコンピューティングデバイス950内に格納する。メモリ964は、1つもしくは複数のコンピュータ可読媒体、1つもしくは複数の揮発性メモリユニット、または、1つもしくは複数の不揮発性メモリユニットの1つ以上として実装されてもよい。拡張メモリ974も設けられ、拡張インターフェイス972を介してデバイス950に接続されてもよく、拡張インターフェイス972は、たとえばSIMM(Single In Line Memory Module)カードインターフェイスを含んでいてもよい。このような拡張メモリ974は、デバイス950に余分の格納スペースを提供してもよく、または、デバイス950のためのアプリケーションもしくはその他の情報も格納してもよい。具体的には、拡張メモリ974は、上述のプロセスを実行または補足するための命令を含んでいてもよく、セキュアな情報も含んでいてもよい。このため、たとえば、拡張メモリ974はデバイス950のためのセキュリティモジュールとして設けられてもよく、デバイス950のセキュアな使用を許可する命令でプログラムされてもよい。加えて、ハッキング不可能な態様でSIMMカード上に識別情報を乗せるといったように、セキュアなアプリケーションが追加情報とともにSIMMカードを介して提供されてもよい。
メモリはたとえば、以下に述べるようなフラッシュメモリおよび/またはNVRAMメモリを含んでいてもよい。一実装例では、コンピュータプログラムプロダクトが情報担体において有形に具体化される。コンピュータプログラムプロダクトは、実行されると上述の方法のような1つ以上の方法を行なう命令を含む。情報担体は、メモリ964、拡張メモリ974、またはプロセッサ952上のメモリといった、コンピュータ可読媒体または機械可読媒体であり、たとえば送受信機968または外部インターフェイス962を通して受信されてもよい。
デバイス950は、必要に応じてデジタル信号処理回路を含み得る通信インターフェイス966を介して無線通信してもよい。通信インターフェイス966は、とりわけ、GSM(登録商標)音声通話、SMS、EMS、またはMMSメッセージング、CDMA、TDMA、PDC、WCDMA(登録商標)、CDMA2000、またはGPRSといった、さまざまなモードまたはプロトコル下での通信を提供してもよい。このような通信は、たとえば無線周波数送受信機968を介して生じてもよい。加えて、Bluetooth、WiFi、またはその他のこのような送受信機(図示せず)使用するなどして、短距離通信が生じてもよい。加えて、GPS(Global Positioning System:全地球測位システム)受信機モジュール970が、追加のナビゲーション関連および位置関連の無線データをデバイス950に提供してもよく、このデータは、デバイス950上で実行されるアプリケーションによって適宜使用されてもよい。
デバイス950はまた、ユーザから口頭情報を受信してそれを使用可能なデジタル情報に変換し得る音声コーデック960を使用して、音声通信してもよい。音声コーデック960は同様に、たとえばデバイス950のハンドセットにおいて、スピーカを介すなどして、ユーザに聞こえる音を生成してもよい。このような音は、音声電話からの音を含んでいてもよく、録音された音(たとえば、音声メッセージ、音楽ファイルなど)を含んでいてもよく、デバイス950上で動作するアプリケーションが生成する音も含んでいてもよい。
コンピューティングデバイス950は、図に示すように多くの異なる形態で実装されてもよい。たとえばそれは、携帯電話980として実装されてもよい。それはまた、スマートフォン982、携帯情報端末、またはその他の同様のモバイル機器の一部として実装されてもよい。
本明細書に記載のシステムおよび技法のさまざまな実装例は、デジタル電子回路、集積回路、特別設計されたASIC(application specific integrated circuit:特定用途向け集積回路)、コンピュータハードウェア、ファームウェア、ソフトウェア、および/またはそれらの組合わせにおいて実装されてもよい。これらのさまざまな実装例は、少なくとも1つのプログラマブルプロセッサを含むプログラマブルシステム上で実行可能および/または解釈可能な1つ以上のコンピュータプログラムにおける実装例を含んでいてもよく、このプロセッサは専用であっても汎用であってもよく、ストレージシステム、少なくとも1つの入力デバイス、および少なくとも1つの出力デバイスからデータおよび命令を受信するとともに、これらにデータおよび命令を送信するように結合されてもよい。
これらのコンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーションまたはコードとしても公知)は、プログラマブルプロセッサのための機械命令を含んでおり、高レベル手続き型および/もしくはオブジェクト指向プログラミング言語で、ならびに/またはアセンブリ/機械言語で実装されてもよい。ここに使用されるように、「機械可読媒体」「コンピュータ可読媒体」という用語は、機械命令および/またはデータをプログラマブルプロセッサに提供するために使用される任意のコンピュータプログラムプロダクト、装置および/またはデバイス(たとえば、磁気ディスク、光ディスク、メモリ、プログラマブルロジックデバイス(Programmable Logic Device:PLD))を指し、機械命令を機械可読信号として受信する機械可読媒体を含む。「機械可読信号」という用語は、機械命令および/またはデータをプログラマブルプロセッサに提供するために使用される任意の信号を指す。
ユーザとの対話を提供するために、本明細書に記載のシステムおよび技法は、情報をユーザに表示するためのディスプレイ装置(たとえば、CRT(cathode ray tube:陰極線管)またはLCD(liquid crystal display:液晶ディスプレイ)モニタ)と、ユーザが入力をコンピュータに提供できるようにするキーボードおよびポインティングデバイス(たとえば、マウスまたはトラックボール)とを有するコンピュータ上で実装されてもよい。その他の種類の装置を使用してユーザとの対話を提供してもよく、たとえば、ユーザに提供されるフィードバックは、任意の形態の感覚フィードバック(たとえば、視覚フィードバック、聴覚フィードバック、または触覚フィードバック)であってもよく、ユーザからの入力は、音響、音声、または触覚入力を含む任意の形態で受信されてもよい。
本明細書に記載のシステムおよび技法は、(たとえばデータサーバとしての)バックエンドコンポーネントを含む、またはミドルウェアコンポーネント(たとえばアプリケーションサーバ)を含む、またはフロントエンドコンポーネント(たとえば、ユーザが本明細書に記載のシステムおよび技法の実装例と対話できるようにするグラフィカルユーザインターフェイスもしくはウェブブラウザを有するクライアントコンピュータ)を含む、または、このようなバックエンド、ミドルウェア、もしくはフロントエンドコンポーネントの任意の組合わせを含む、コンピューティングシステムにおいて実装されてもよい。システムのコンポーネントは、任意の形態または媒体のデジタルデータ通信(たとえば通信ネットワーク)によって相互接続されてもよい。通信ネットワークの例として、ローカルエリアネットワーク(local area network:LAN)、ワイドエリアネットワーク(wide area network:WAN)、およびインターネットがある。
コンピューティングシステムは、クライアントおよびサーバを含んでいてもよい。クライアントおよびサーバは一般に互いにリモートであり、典型的には通信ネットワークを介して対話する。クライアントとサーバとの関係は、それぞれのコンピュータ上で実行されて互いにクライアント−サーバ関係を有するコンピュータプログラムによって生じる。以下の例においてさらなる実装例を要約する。
例1:方法であって、第1の物理空間と関連付けられた少なくとも1つの物理的な制約を検出することと、第1の物理空間における第1のユーザの位置および向きと、検出した第1の物理空間と関連付けられた少なくとも1つの物理的な制約とに基づいて、第1の物理空間における第1の物理経路を検出することと、第2の物理空間と関連付けられた少なくとも1つの物理的な制約を検出することと、第2の物理空間における第2のユーザの位置および向きと、検出した第2の物理空間と関連付けられた少なくとも1つの物理的な制約とに基づいて、第2の物理空間における第2の物理経路を検出することと、第1のユーザに対して第1の向きで仮想環境を第1のユーザに表示することと、第2のユーザに対して第2の向きで仮想環境を第2のユーザに表示することとを含み、仮想環境は共有仮想空間における第1および第2のユーザに提示され、表示することは、第1の物理経路と、共有仮想空間において提示される仮想環境の文脈と、共有仮想空間における第1の仮想経路とに基づいて、仮想環境の仮想特徴を共有仮想空間における第1のユーザに対して方向付けることと、第2の物理経路と、共有仮想空間において提示される仮想環境の文脈と、共有仮想空間における第2の仮想経路とに基づいて、仮想環境の仮想特徴を共有仮想空間における第2のユーザに対して方向付けることとを含む、方法。
例2:第2の物理空間は第1の物理空間とは異なる、例1に記載の方法。
例3:第2の物理空間は第1の物理空間と同一である、例1に記載の方法。
例4:第1の向きで仮想環境を第1のユーザに表示すること、および第2の向きで仮想環境を第2のユーザに表示することは、第1の物理経路および第1の仮想経路が、遮られていない物理経路を第1のユーザに提供し、遮られていない仮想経路を第2のユーザに提供するように、仮想環境の仮想特徴の表示を第1のユーザに対して方向付けることと、第2の物理経路および第2の仮想経路が、遮られていない物理経路を第2のユーザに提供し、遮られていない仮想経路を第1のユーザに提供するように、仮想環境の仮想特徴の表示を第2のユーザに対して方向付けることとを含む、例1から3のいずれかに記載の方法。
例5:第1の物理空間と関連付けられた少なくとも1つの物理的な制約を検出することは、第1の物理空間をスキャンし、第1の物理空間の物理的な境界と、第1の物理空間の内部に位置決めされた物理的な障害とを検出し、検出した境界および検出した障害に基づいて第1の物理空間をマッピングすることを含み、第2の物理空間と関連付けられた少なくとも1つの物理的な制約を検出することは、第2の物理空間をスキャンし、第2の物理空間の物理的な境界と、第2の物理空間の内部に位置決めされた物理的な障害とを検出し、検出した境界および検出した障害に基づいて第2の物理空間をマッピングすることを含む、例1から4のいずれかに記載の方法。
例6:第1の物理経路を検出することは、検出した第1の物理空間の物理的な境界と、第1の物理空間において検出した物理的な障害とに基づいて、第1のユーザが第1の物理空間で動くことができる第1の物理空間内の遮られていない最長の物理経路を検出することを含み、第2の物理経路を検出することは、検出した第2の物理空間の物理的な境界と、第2の物理空間において検出した物理的な障害とに基づいて、第2のユーザが第2の物理空間で動くことができる第2の物理空間内の遮られていない最長の物理経路を検出することを含む、例5に記載の方法。
例7:第1の物理空間と関連付けられた少なくとも1つの物理的な制約を検出することは、第1の物理空間の物理的な境界を検出することを含み、第2の物理空間と関連付けられた少なくとも1つの制約を検出することは、第2の物理空間の物理的な境界を検出することを含む、例1から6のいずれかに記載の方法。
例8:第1の物理空間と関連付けられた少なくとも1つの物理的な制約を検出することは、第1の物理空間における1つ以上の物理的な障害を検出することを含み、第2の物理空間と関連付けられた少なくとも1つの制約を検出することは、第2の物理空間における1つ以上の物理的な障害を検出することを含む、例7に記載の方法。
例9:第1の物理空間における1つ以上の物理的な障害を検出することは、第1の物理空間を間欠的にスキャンすることと、第1の物理空間の以前のスキャンを第1の物理空間の現在のスキャンと比較することと、比較に基づいて第1の物理空間における物理的な障害の位置を更新することとを含み、第2の物理空間における1つ以上の物理的な障害を検出することは、第2の物理空間を間欠的にスキャンすることと、第2の物理空間の以前のスキャンを第2の物理空間の現在のスキャンと比較することと、比較に基づいて第2の物理空間における物理的な障害の位置を更新することとを含む、例8に記載の方法。
例10:第1の物理空間における物理的な障害の位置を更新することは、第1の物理空間において以前に検出された物理的な障害または第1の物理空間における新たな物理的な障害の動きを検出することを含み、第2の物理空間における物理的な障害の位置を更新することは、第2の物理空間において以前に検出された物理的な障害または第2の物理空間における新たな物理的な障害の動きを検出することを含む、例9に記載の方法。
例11:第2の物理空間は第1の物理空間と同一であり、第1の物理空間における物理的な障害の位置を更新することは、第1の物理空間における第1のユーザに対して第2のユーザの位置を更新することを含み、第2の物理空間における物理的な障害の位置を更新することは、第2の物理空間における第2のユーザに対して第1のユーザの位置を更新することを含む、例10に記載の方法。
例12:非一時的なコンピュータ可読媒体上に具現化されたコンピュータプログラムプロダクトであって、コンピュータ可読媒体上に一連の命令が格納されており、命令はプロセッサによって実行されるとプロセッサに方法を実行させ、方法は、第1の物理空間と関連付けられた少なくとも1つの物理的な制約を検出することと、第1の物理空間における第1のユーザの位置および向きと、検出した第1の物理空間と関連付けられた少なくとも1つの物理的な制約とに基づいて、第1の物理空間における第1の物理経路を検出することと、第2の物理空間と関連付けられた少なくとも1つの物理的な制約を検出することと、第2の物理空間における第2のユーザの位置および向きと、検出した第2の物理空間と関連付けられた少なくとも1つの物理的な制約とに基づいて、第2の物理空間における第2の物理経路を検出することと、仮想環境の仮想特徴を第1の向きで第1のユーザに表示することと、仮想環境の仮想特徴を第2の向きで第2のユーザに表示することとを含み、仮想環境は、共有仮想空間における第1および第2のユーザに提示され、共有仮想空間における第1のユーザに対する仮想環境の仮想特徴の第1の向きは、第1の物理経路と、仮想環境の文脈と、共有仮想空間における第1の仮想経路とに基づいており、共有仮想空間における第2のユーザに対する仮想環境の仮想特徴の第2の向きは、第2の物理経路と、共有仮想空間において提示される仮想環境の文脈と、共有仮想空間における第2の仮想経路とに基づいている、コンピュータプログラムプロダクト。
例13:第2の物理空間は第1の物理空間とは異なる、例12に記載のコンピュータプログラムプロダクト。
例14:仮想環境を第1の向きで第1のユーザに表示すること、および仮想環境を第2の向きで第2のユーザに表示することは、第1の物理経路および第1の仮想経路が、遮られていない物理経路を第1のユーザに提供し、遮られていない仮想経路を第2のユーザに提供するように、仮想環境の仮想特徴の表示を第1のユーザに対して方向付けることと、第2の物理経路および第2の仮想経路が、遮られていない物理経路を第2のユーザに提供し、遮られていない仮想経路を第1のユーザに提供するように、仮想環境の仮想特徴の表示を第2のユーザに対して方向付けることとを含む、例12または13に記載のコンピュータプログラムプロダクト。
例15:第1の物理空間と関連付けられた少なくとも1つの物理的な制約を検出することは、第1の物理空間をスキャンし、第1の物理空間の物理的な境界と、第1の物理空間の内部に位置決めされた物理的な障害とを検出し、検出した境界および検出した障害に基づいて第1の物理空間をマッピングすることを含み、第2の物理空間と関連付けられた少なくとも1つの物理的な制約を検出することは、第2の物理空間をスキャンし、第2の物理空間の物理的な境界と、第2の物理空間の内部に位置決めされた物理的な障害とを検出し、検出した境界および検出した障害に基づいて第2の物理空間をマッピングすることを含む、例12から14のいずれかに記載のコンピュータプログラムプロダクト。
例16:第1の物理経路を検出することは、検出した第1の物理空間の物理的な境界と、第1の物理空間において検出した物理的な障害とに基づいて、第1のユーザが第1の物理空間で動くことができる第1の物理空間内の遮られていない最長の物理経路を検出することを含み、第2の物理経路を検出することは、検出した第2の物理空間の物理的な境界と、第2の物理空間において検出した物理的な障害とに基づいて、第2のユーザが第2の物理空間で動くことができる第2の物理空間内の遮られていない最長の物理経路を検出することを含む、例15に記載のコンピュータプログラムプロダクト。
例17:第1の物理空間と関連付けられた少なくとも1つの物理的な制約を検出することは、第1の物理空間の物理的な境界を検出することと、第1の物理空間における1つ以上の物理的な障害を検出することとを含み、第2の物理空間と関連付けられた少なくとも1つの制約を検出することは、第2の物理空間の物理的な境界を検出することと、第2の物理空間における1つ以上の物理的な障害を検出することとを含む、例12から16のいずれかに記載のコンピュータプログラムプロダクト。
例18:第1の物理空間における1つ以上の物理的な障害を検出することは、第1の物理空間を間欠的にスキャンすることと、第1の物理空間の以前のスキャンを第1の物理空間の現在のスキャンと比較することと、比較に基づいて第1の物理空間における物理的な障害の位置を更新することとを含み、第2の物理空間における1つ以上の物理的な障害を検出することは、第2の物理空間を間欠的にスキャンすることと、第2の物理空間の以前のスキャンを第2の物理空間の現在のスキャンと比較することと、比較に基づいて第2の物理空間における物理的な障害の位置を更新することとを含む、例17に記載のコンピュータプログラムプロダクト。
例19:第1の物理空間における物理的な障害の位置を更新することは、第1の物理空間において以前に検出された物理的な障害または第1の物理空間における新たな物理的な障害の動きを検出することを含み、第2の物理空間における物理的な障害の位置を更新することは、第2の物理空間において以前に検出された物理的な障害または第2の物理空間における新たな物理的な障害の動きを検出することを含む、例18に記載のコンピュータプログラムプロダクト。
例20:第2の物理空間は第1の物理空間と同一であり、第1の物理空間における物理的な障害の位置を更新することは、第1の物理空間における第1のユーザに対して第2のユーザの位置を更新することを含み、第2の物理空間における物理的な障害の位置を更新することは、第2の物理空間における第2のユーザに対して第1のユーザの位置を更新することを含む、例19に記載のコンピュータプログラムプロダクト。
さらなる例では、共有仮想空間における複数のユーザに対して仮想環境の提示を方向付けるためのシステムおよび方法が提供され、複数のユーザは異なる物理空間に物理的に存在し得る。複数のユーザの各々について、システムは、それぞれの物理空間と関連付けられた物理的な制約を検出し得、物理空間におけるユーザの向きと、関連付けられた物理的な制約とに基づいて、物理空間内の遮られていない最長の物理経路を求め得る。次に、共有仮想空間における複数のユーザへの仮想環境の提示が、共有仮想空間における複数のユーザ同士の対話を最大化するために、複数のユーザの各々に対して方向付けられ得る。
多くの実施形態が説明された。しかしながら、本明細書に広範に記載されているような実施形態の精神および範囲から逸脱することなくさまざまな変更がなされ得る。
加えて、図面に示す論理フローは、所望の結果を達成するために、示された特定の順序または順番を必要としない。加えて、説明されたフローに対してその他のステップが提供されてもよく、またはステップが除去されてもよく、説明されたシステムに対してその他のコンポーネントが追加されてもよく、または除去されてもよい。したがって、その他の実施形態は以下の特許請求の範囲内にある。
本明細書を通じて「一実施形態」または「ある実施形態」という言及は、当該実施形態と関連して説明される特定の特徴、構造、または特性が少なくとも1つの実施形態に含まれることを意味する。したがって、本明細書を通じてさまざまな場所に現れる「一実施形態において」または「ある実施形態において」という語句は、必ずしも全てが同一の実施形態を言及しているわけではない。加えて、「または」という用語は、排他的な「または」ではなく、包括的な「または」を意味するよう意図されている。
本明細書に記載の通り、記載されている実装例の一定の特徴が例示されたが、ここで、当業者は、数多くの変形、代用、変更、および均等物を想到するであろう。したがって、添付の特許請求の範囲は、実装例の範囲に含まれるすべてのこのような変形および変更を網羅するよう意図されていることを理解すべきである。それらは限定ではなく専ら例示を目的として提示されており、形態および詳細事項にさまざまな変更が加えられ得ることを理解すべきである。本明細書に記載の装置および/または方法はいずれの部分も、相互に相容れない組合わせを除いて、任意の組合わせが可能である。本明細書に記載の実装例は、記載されている異なる実装例の機能、構成要素および/または特徴のさまざまな組合わせおよび/または下位の組合わせを含み得る。

Claims (20)

  1. 方法であって、
    第1の物理空間と関連付けられた少なくとも1つの物理的な制約を検出することと、
    前記第1の物理空間における第1のユーザの位置および向きと、検出した前記第1の物理空間と関連付けられた少なくとも1つの物理的な制約とに基づいて、前記第1の物理空間における第1の物理経路を検出することと、
    第2の物理空間と関連付けられた少なくとも1つの物理的な制約を検出することと、
    前記第2の物理空間における第2のユーザの位置および向きと、検出した前記第2の物理空間と関連付けられた少なくとも1つの物理的な制約とに基づいて、前記第2の物理空間における第2の物理経路を検出することと、
    前記第1のユーザに対して第1の向きで仮想環境を前記第1のユーザに表示することと、前記第2のユーザに対して第2の向きで前記仮想環境を前記第2のユーザに表示することとを備え、前記仮想環境は共有仮想空間における前記第1および第2のユーザに提示され、前記表示することは、
    前記第1の物理経路と、前記共有仮想空間において提示される前記仮想環境の文脈と、前記共有仮想空間における第1の仮想経路とに基づいて、前記仮想環境の仮想特徴を前記共有仮想空間における前記第1のユーザに対して方向付けることと、
    前記第2の物理経路と、前記共有仮想空間において提示される前記仮想環境の前記文脈と、前記共有仮想空間における第2の仮想経路とに基づいて、前記仮想環境の前記仮想特徴を前記共有仮想空間における前記第2のユーザに対して方向付けることとを含む、方法。
  2. 前記第2の物理空間は前記第1の物理空間とは異なる、請求項1に記載の方法。
  3. 前記第2の物理空間は前記第1の物理空間と同一である、請求項1に記載の方法。
  4. 前記第1の向きで仮想環境を前記第1のユーザに表示すること、および前記第2の向きで前記仮想環境を前記第2のユーザに表示することは、
    前記第1の物理経路および前記第1の仮想経路が、遮られていない物理経路を前記第1のユーザに提供し、遮られていない仮想経路を前記第2のユーザに提供するように、前記仮想環境の前記仮想特徴の表示を前記第1のユーザに対して方向付けることと、
    前記第2の物理経路および前記第2の仮想経路が、遮られていない物理経路を前記第2のユーザに提供し、遮られていない仮想経路を前記第1のユーザに提供するように、前記仮想環境の前記仮想特徴の表示を前記第2のユーザに対して方向付けることとを含む、請求項1に記載の方法。
  5. 前記第1の物理空間と関連付けられた少なくとも1つの物理的な制約を検出することは、
    前記第1の物理空間をスキャンし、前記第1の物理空間の物理的な境界と、前記第1の物理空間の内部に位置決めされた物理的な障害とを検出し、検出した前記境界および検出した前記障害に基づいて前記第1の物理空間をマッピングすることを含み、
    前記第2の物理空間と関連付けられた少なくとも1つの物理的な制約を検出することは、
    前記第2の物理空間をスキャンし、前記第2の物理空間の物理的な境界と、前記第2の物理空間の内部に位置決めされた物理的な障害とを検出し、検出した前記境界および検出した前記障害に基づいて前記第2の物理空間をマッピングすることを含む、請求項1に記載の方法。
  6. 前記第1の物理経路を検出することは、検出した前記第1の物理空間の物理的な境界と、前記第1の物理空間において検出した前記物理的な障害とに基づいて、前記第1のユーザが前記第1の物理空間で動くことができる前記第1の物理空間内の遮られていない最長の物理経路を検出することを含み、
    前記第2の物理経路を検出することは、検出した前記第2の物理空間の物理的な境界と、前記第2の物理空間において検出した前記物理的な障害とに基づいて、前記第2のユーザが前記第2の物理空間で動くことができる前記第2の物理空間内の遮られていない最長の物理経路を検出することを含む、請求項5に記載の方法。
  7. 前記第1の物理空間と関連付けられた少なくとも1つの物理的な制約を検出することは、前記第1の物理空間の物理的な境界を検出することを含み、
    前記第2の物理空間と関連付けられた少なくとも1つの制約を検出することは、前記第2の物理空間の物理的な境界を検出することを含む、請求項1に記載の方法。
  8. 前記第1の物理空間と関連付けられた少なくとも1つの物理的な制約を検出することは、前記第1の物理空間における1つ以上の物理的な障害を検出することを含み、
    前記第2の物理空間と関連付けられた少なくとも1つの制約を検出することは、前記第2の物理空間における1つ以上の物理的な障害を検出することを含む、請求項7に記載の方法。
  9. 前記第1の物理空間における1つ以上の物理的な障害を検出することは、
    前記第1の物理空間を間欠的にスキャンすることと、
    前記第1の物理空間の以前のスキャンを前記第1の物理空間の現在のスキャンと比較することと、
    前記比較に基づいて前記第1の物理空間における物理的な障害の位置を更新することとを含み、
    前記第2の物理空間における1つ以上の物理的な障害を検出することは、
    前記第2の物理空間を間欠的にスキャンすることと、
    前記第2の物理空間の以前のスキャンを前記第2の物理空間の現在のスキャンと比較することと、
    前記比較に基づいて前記第2の物理空間における物理的な障害の位置を更新することとを含む、請求項8に記載の方法。
  10. 前記第1の物理空間における物理的な障害の位置を更新することは、前記第1の物理空間において以前に検出された物理的な障害または前記第1の物理空間における新たな物理的な障害の動きを検出することを含み、
    前記第2の物理空間における物理的な障害の位置を更新することは、前記第2の物理空間において以前に検出された物理的な障害または前記第2の物理空間における新たな物理的な障害の動きを検出することを含む、請求項9に記載の方法。
  11. 前記第2の物理空間は前記第1の物理空間と同一であり、
    前記第1の物理空間における物理的な障害の位置を更新することは、前記第1の物理空間における前記第1のユーザに対して前記第2のユーザの位置を更新することを含み、
    前記第2の物理空間における物理的な障害の位置を更新することは、前記第2の物理空間における前記第2のユーザに対して前記第1のユーザの位置を更新することを含む、請求項10に記載の方法。
  12. 非一時的なコンピュータ可読媒体上に具現化されたコンピュータプログラムプロダクトであって、前記コンピュータ可読媒体上に一連の命令が格納されており、前記命令はプロセッサによって実行されると前記プロセッサに方法を実行させ、前記方法は、
    第1の物理空間と関連付けられた少なくとも1つの物理的な制約を検出することと、
    前記第1の物理空間における第1のユーザの位置および向きと、検出した前記第1の物理空間と関連付けられた少なくとも1つの物理的な制約とに基づいて、前記第1の物理空間における第1の物理経路を検出することと、
    第2の物理空間と関連付けられた少なくとも1つの物理的な制約を検出することと、
    前記第2の物理空間における第2のユーザの位置および向きと、検出した前記第2の物理空間と関連付けられた少なくとも1つの物理的な制約とに基づいて、前記第2の物理空間における第2の物理経路を検出することと、
    仮想環境の仮想特徴を第1の向きで前記第1のユーザに表示することと、
    前記仮想環境の前記仮想特徴を第2の向きで前記第2のユーザに表示することとを備え、
    前記仮想環境は、共有仮想空間における前記第1および第2のユーザに提示され、
    前記共有仮想空間における前記第1のユーザに対する前記仮想環境の前記仮想特徴の前記第1の向きは、前記第1の物理経路と、前記仮想環境の文脈と、前記共有仮想空間における第1の仮想経路とに基づいており、
    前記共有仮想空間における前記第2のユーザに対する前記仮想環境の前記仮想特徴の前記第2の向きは、前記第2の物理経路と、前記共有仮想空間において提示される前記仮想環境の前記文脈と、前記共有仮想空間における第2の仮想経路とに基づいている、コンピュータプログラムプロダクト。
  13. 前記第2の物理空間は前記第1の物理空間とは異なる、請求項12に記載のコンピュータプログラムプロダクト。
  14. 前記仮想環境を第1の向きで前記第1のユーザに表示すること、および前記仮想環境を第2の向きで前記第2のユーザに表示することは、
    前記第1の物理経路および前記第1の仮想経路が、遮られていない物理経路を前記第1のユーザに提供し、遮られていない仮想経路を前記第2のユーザに提供するように、前記仮想環境の前記仮想特徴の表示を前記第1のユーザに対して方向付けることと、
    前記第2の物理経路および前記第2の仮想経路が、遮られていない物理経路を前記第2のユーザに提供し、遮られていない仮想経路を前記第1のユーザに提供するように、前記仮想環境の前記仮想特徴の表示を前記第2のユーザに対して方向付けることとを含む、請求項12に記載のコンピュータプログラムプロダクト。
  15. 前記第1の物理空間と関連付けられた少なくとも1つの物理的な制約を検出することは、
    前記第1の物理空間をスキャンし、前記第1の物理空間の物理的な境界と、前記第1の物理空間の内部に位置決めされた物理的な障害とを検出し、検出した前記境界および検出した前記障害に基づいて前記第1の物理空間をマッピングすることを含み、
    前記第2の物理空間と関連付けられた少なくとも1つの物理的な制約を検出することは、
    前記第2の物理空間をスキャンし、前記第2の物理空間の物理的な境界と、前記第2の物理空間の内部に位置決めされた物理的な障害とを検出し、検出した前記境界および検出した前記障害に基づいて前記第2の物理空間をマッピングすることを含む、請求項12に記載のコンピュータプログラムプロダクト。
  16. 前記第1の物理経路を検出することは、検出した前記第1の物理空間の物理的な境界と、前記第1の物理空間において検出した前記物理的な障害とに基づいて、前記第1のユーザが前記第1の物理空間で動くことができる前記第1の物理空間内の遮られていない最長の物理経路を検出することを含み、
    前記第2の物理経路を検出することは、検出した前記第2の物理空間の物理的な境界と、前記第2の物理空間において検出した前記物理的な障害とに基づいて、前記第2のユーザが前記第2の物理空間で動くことができる前記第2の物理空間内の遮られていない最長の物理経路を検出することを含む、請求項15に記載のコンピュータプログラムプロダクト。
  17. 前記第1の物理空間と関連付けられた少なくとも1つの物理的な制約を検出することは、
    前記第1の物理空間の物理的な境界を検出することと、
    前記第1の物理空間における1つ以上の物理的な障害を検出することとを含み、
    前記第2の物理空間と関連付けられた少なくとも1つの制約を検出することは、
    前記第2の物理空間の物理的な境界を検出することと、
    前記第2の物理空間における1つ以上の物理的な障害を検出することとを含む、請求項12に記載のコンピュータプログラムプロダクト。
  18. 前記第1の物理空間における1つ以上の物理的な障害を検出することは、
    前記第1の物理空間を間欠的にスキャンすることと、
    前記第1の物理空間の以前のスキャンを前記第1の物理空間の現在のスキャンと比較することと、
    前記比較に基づいて前記第1の物理空間における物理的な障害の位置を更新することとを含み、
    前記第2の物理空間における1つ以上の物理的な障害を検出することは、
    前記第2の物理空間を間欠的にスキャンすることと、
    前記第2の物理空間の以前のスキャンを前記第2の物理空間の現在のスキャンと比較することと、
    前記比較に基づいて前記第2の物理空間における物理的な障害の位置を更新することとを含む、請求項17に記載のコンピュータプログラムプロダクト。
  19. 前記第1の物理空間における物理的な障害の位置を更新することは、前記第1の物理空間において以前に検出された物理的な障害または前記第1の物理空間における新たな物理的な障害の動きを検出することを含み、
    前記第2の物理空間における物理的な障害の位置を更新することは、前記第2の物理空間において以前に検出された物理的な障害または前記第2の物理空間における新たな物理的な障害の動きを検出することを含む、請求項18に記載のコンピュータプログラムプロダクト。
  20. 前記第2の物理空間は前記第1の物理空間と同一であり、
    前記第1の物理空間における物理的な障害の位置を更新することは、前記第1の物理空間における前記第1のユーザに対して前記第2のユーザの位置を更新することを含み、
    前記第2の物理空間における物理的な障害の位置を更新することは、前記第2の物理空間における前記第2のユーザに対して前記第1のユーザの位置を更新することを含む、請求項19に記載のコンピュータプログラムプロダクト。
JP2019510945A 2016-08-23 2017-08-18 拡張/仮想現実環境において仮想キャラクタを配置するための方法およびコンピュータプログラム Withdrawn JP2019535054A (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201662378510P 2016-08-23 2016-08-23
US62/378,510 2016-08-23
US15/679,527 2017-08-17
US15/679,527 US20180060333A1 (en) 2016-08-23 2017-08-17 System and method for placement of virtual characters in an augmented/virtual reality environment
PCT/US2017/047603 WO2018039070A1 (en) 2016-08-23 2017-08-18 System and method for placement of virtual characters in an augmented/virtual reality environment

Publications (1)

Publication Number Publication Date
JP2019535054A true JP2019535054A (ja) 2019-12-05

Family

ID=61240564

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019510945A Withdrawn JP2019535054A (ja) 2016-08-23 2017-08-18 拡張/仮想現実環境において仮想キャラクタを配置するための方法およびコンピュータプログラム

Country Status (6)

Country Link
US (1) US20180060333A1 (ja)
EP (1) EP3504609A1 (ja)
JP (1) JP2019535054A (ja)
KR (1) KR20190030746A (ja)
CN (1) CN109564473A (ja)
WO (1) WO2018039070A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021261346A1 (ja) * 2020-06-23 2021-12-30 株式会社ソニー・インタラクティブエンタテインメント 情報処理装置、方法、プログラム及び情報処理システム
WO2022202205A1 (ja) * 2021-03-23 2022-09-29 株式会社Jvcケンウッド 表示装置、表示装置の制御方法及びプログラム

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019231463A1 (en) 2018-06-01 2019-12-05 Hewlett-Packard Development Company, L.P. Boundary maps for virtual reality systems
EP3873285A1 (en) * 2018-10-29 2021-09-08 Robotarmy Corp. Racing helmet with visual and audible information exchange
US11150788B2 (en) 2019-03-14 2021-10-19 Ebay Inc. Augmented or virtual reality (AR/VR) companion device techniques
US10890992B2 (en) 2019-03-14 2021-01-12 Ebay Inc. Synchronizing augmented or virtual reality (AR/VR) applications with companion device interfaces
US10937218B2 (en) * 2019-07-01 2021-03-02 Microsoft Technology Licensing, Llc Live cube preview animation
WO2021072301A1 (en) * 2019-10-11 2021-04-15 The Regents Of The University Of California Search and recommendation process for identifying useful boundaries in virtual interaction settings
US11095855B2 (en) * 2020-01-16 2021-08-17 Microsoft Technology Licensing, Llc Remote collaborations with volumetric space indications
US20210232210A1 (en) * 2020-01-28 2021-07-29 Facebook Technologies, Llc Virtual path generation in a virtual environment that is based on a physical environment
US11609345B2 (en) * 2020-02-20 2023-03-21 Rockwell Automation Technologies, Inc. System and method to determine positioning in a virtual coordinate system
US11593994B2 (en) * 2020-11-05 2023-02-28 Kyndryl, Inc. Creating working boundaries in a multi-user environment
CN113206989A (zh) * 2021-03-31 2021-08-03 聚好看科技股份有限公司 一种三维通信系统中人物模型的定位方法及设备

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2376397A (en) * 2001-06-04 2002-12-11 Hewlett Packard Co Virtual or augmented reality
CN102184342B (zh) * 2011-06-15 2013-11-20 青岛科技大学 一种虚实融合的手功能康复训练系统及方法
WO2013055320A2 (en) * 2011-10-11 2013-04-18 Empire Technology Development Llc Gathering path data from a massively multiplayer on-line role-playing game
US9454849B2 (en) * 2011-11-03 2016-09-27 Microsoft Technology Licensing, Llc Augmented reality playspaces with adaptive game rules
US8806599B2 (en) * 2012-06-11 2014-08-12 Symantec Corporation Systems and methods for implementing multi-factor authentication
US8954853B2 (en) * 2012-09-06 2015-02-10 Robotic Research, Llc Method and system for visualization enhancement for situational awareness
CN102929625A (zh) * 2012-10-30 2013-02-13 北京伸得纬科技有限公司 应用模板抓取方法及装置
US10109075B2 (en) * 2013-03-15 2018-10-23 Elwha Llc Temporal element restoration in augmented reality systems

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021261346A1 (ja) * 2020-06-23 2021-12-30 株式会社ソニー・インタラクティブエンタテインメント 情報処理装置、方法、プログラム及び情報処理システム
WO2022202205A1 (ja) * 2021-03-23 2022-09-29 株式会社Jvcケンウッド 表示装置、表示装置の制御方法及びプログラム

Also Published As

Publication number Publication date
KR20190030746A (ko) 2019-03-22
EP3504609A1 (en) 2019-07-03
WO2018039070A1 (en) 2018-03-01
US20180060333A1 (en) 2018-03-01
CN109564473A (zh) 2019-04-02

Similar Documents

Publication Publication Date Title
JP2019535054A (ja) 拡張/仮想現実環境において仮想キャラクタを配置するための方法およびコンピュータプログラム
KR102038639B1 (ko) 증강 현실 및/또는 가상 현실에서의 터치 스크린 호버 검출
US10832448B2 (en) Display control device, display control method, and program
US9451210B1 (en) Directing communications using gaze interaction
EP2936444B1 (en) User interface for augmented reality enabled devices
CN108234918B (zh) 具有隐私意识的室内无人机的勘探和通讯架构方法和系统
JP6126076B2 (ja) 各ユーザの視点に対する共有デジタルインターフェースのレンダリングのためのシステム
CN108697935B (zh) 虚拟环境中的化身
KR102233807B1 (ko) 가상 현실 시스템을 위한 입력 제어기 안정화 기법
US20140282224A1 (en) Detection of a scrolling gesture
KR102251253B1 (ko) 가상 환경에서 제스처 기반 액세스 제어
JP2019502193A (ja) 仮想現実環境におけるナビゲーション用制御システム
US11869156B2 (en) Augmented reality eyewear with speech bubbles and translation
US11151804B2 (en) Information processing device, information processing method, and program
US20200294318A1 (en) Representation of user position, movement, and gaze in mixed reality space
US20210406542A1 (en) Augmented reality eyewear with mood sharing
JP7468506B2 (ja) 情報処理装置、情報処理方法、及び記録媒体
US20240135650A1 (en) Electronic device and method for displaying modification of virtual object and method thereof
US20240119928A1 (en) Media control tools for managing communications between devices
KR20240058013A (ko) 가상 객체의 변경을 표시하기 위한 전자 장치 및 그 방법
TW202414033A (zh) 追蹤系統、追蹤方法及自追蹤追蹤器
KR20230070308A (ko) 웨어러블 장치를 이용한 제어가능한 장치의 위치 식별
KR20210085929A (ko) 다중 사용자 간의 증강현실 커뮤니케이션 방법

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190422

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190415

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190415

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20191120