(概要)
仮想アバタは、AR/VR/MR環境内の実際または架空の人物(または創造物または擬人化されたオブジェクト)の仮想表現であってもよい。例えば、その中で2人のAR/VR/MRユーザが相互に相互作用する、テレプレゼンスセッションの間、視認者は、別のユーザのアバタを視認者の環境内で知覚し、それによって、他のユーザの存在の有形感覚を視認者の環境内に作成することができる。アバタはまた、共有仮想環境内において、ユーザが、相互に相互作用し、ともに物事を行うための方法を提供することができる。例えば、オンラインクラスに出席する生徒は、他の生徒または教師のアバタを仮想教室内で知覚することができ、他の生徒または教師のアバタと相互作用することができる。
アバタをAR/VR/MR環境のためのユーザの物理的環境内に設置するとき、アバタのサイズが、決定される必要がある。3次元(3D)空間内にスポーンする(アバタの初期レンダリング)とき、アバタは、実際は、任意のサイズ(例えば、極小、ヒトサイズ、または巨大)であり得る。アバタは、そのヒト対応者に対して1:1サイズを維持し得るが、しかし、これは、ある環境内では、意味を成さない場合がある(例えば、空間の欠如、プライバシ懸念等に起因して)。不適切に定寸されたアバタは、ぎこちないソーシャル相互作用をもたらす、またはアバタと相互作用するとき、ユーザ疲労をもたらし得る。例えば、アバタが、視認者に対してあまりに大きいまたはあまりに小さい場合、視認者は、アバタとの目と目を合わせた会話に従事するために、その頭部または身体を不快な位置に位置付ける必要があり得る。さらに、不適切に定寸されたアバタは、アバタのヒト対応者と視認者との間の含意される優越感(例えば、アバタがユーザより大きいとき)または劣等感(例えば、アバタがユーザより小さいとき)等の誤ったソーシャルメッセージを伝達し得る。不適切に定寸されたアバタによって生じる問題に関連する付加的実施例はさらに、図11Aを参照して説明され、本問題に対するソリューションの実施例は、図12A-18Bを参照して説明される。
有利には、いくつかの実施形態では、本明細書に説明されるウェアラブルシステムは、スポーン時、アバタのための適切なサイズを自動的に決定することができ、相互作用に関するコンテキスト情報に基づいて、他のユーザ(またはアバタ)との相互作用の一部または全部の全体を通して、アバタを再スケーリングすることができる。いくつかの例示的コンテキスト情報は、ユーザの位置、他のユーザの環境内のアバタのレンダリング場所、ユーザとアバタとの間の相対的高低差、レンダリング環境内のオブジェクトの存在(例えば、アバタが着座するための椅子が存在するかどうか、またはアバタの移動がアバタをテーブル等の固体オブジェクトを通して通過させるであろうかどうか)等を含むことができる。ウェアラブルシステムは、コンテキスト情報に基づいて、直接アイコンタクトを増加させるかまたは最大限にし、したがって、アバタ-ヒト通信を促進するように、アバタを自動的にスケーリングすることができる。コンテキスト情報に基づいてアバタをスケーリングするための詳細はさらに、図12A-18Bに説明される。
アバタは、そのヒト対応者に基づいて、動画化されることができ、ヒトの相互作用は、そのアバタにマッピングされる。ユーザとアバタとの間の1対1のマッピングは、アバタのアクションがユーザのアクションの直接マッピングであるように、AR/VR/MR環境内で採用されることができる。例えば、ユーザが、左を見る場合、そのアバタもまた、左を見る。ユーザが、起立する場合、そのアバタも、起立する。ユーザが、ある方向に歩行する場合、そのアバタも、その方向に歩行する。本1対1のマッピングは、VR環境の参加者(ユーザの仮想アバタを含む)に同一共有仮想コンテンツが見えているため、VR環境内で機能し得る。しかしながら、AR/MR環境では、各ユーザの物理的環境および他のユーザのアバタがその中に現れる方法は、2人(以上の)ユーザが非常に異なる環境内に存在し得るため、異なり得る。例えば、Bobは、自宅の居間内に存在し得、Aliceは、オフィス建物の部屋内に存在し得る。Bobには、Bobの環境(居間)内においてBobの向かいにAliceのアバタが見え得る一方、Aliceには、Aliceの環境(オフィス部屋)内においてAliceの左に位置するBobのアバタが見える。別の実施例として、アバタは、仮想オブジェクトであって、サイズ変更可能であり得るため、Bobは、Aliceのアバタのサイズを縮小し、それをその居間内のテーブル上に設置し得る一方、Aliceは、広いオフィス部屋内に存在し得、Bobのアバタを角に立たせ、原寸大となるように選定し得る。
そのような定寸は、BobがAliceのアバタに話しかけているとき、BobがAliceのアバタを見下ろす結果をもたらし得る。1対1のマッピングが、Bobのアクションに基づいて、Bobのアバタに適用される場合、Aliceのオフィス内にレンダリングされたBobのアバタは、Bobのアバタが、Aliceに話しかけている間、床を見ているであろうため(実際のBobがAliceのアバタを見下ろしているため)、Aliceにとって異常に見え得る。他方では、ユーザのある側面が保存され、別のユーザの環境内のアバタにマッピングされることが、望ましくあり得る。例えば、ユーザが、同意の際、その頭部を点頭させること、または不同意の際、その頭部を揺動させることが、そのような運動をアバタにマッピングすることによって、他のユーザに伝達されることができる。1対1のマッピングにおける問題を説明する付加的実施例はさらに、図11B-11Dを参照して提供される。そのような問題に対するソリューションの実施例は、図19A-30Bを参照して説明される。
有利には、いくつかの実施形態では、ウェアラブルシステムは、ユーザの相互作用を分析し、相互作用を世界成分およびローカル成分に分解することができる。世界成分は、環境と相互作用する、相互作用の部分を含むことができる。例えば、世界運動は、点Aから点Bまで歩行すること、梯子を登ること、着座または起立すること、ある方向に向くこと、環境内の(仮想または物理的)オブジェクトと相互作用することを含んでもよい。本明細書にさらに説明されるように、世界成分は、環境と関連付けられる、世界基準フレームに関して説明されることができる。ローカル成分は、ユーザに対するアクションを含むことができる(身体固定基準フレームに関して説明されることができる)。例えば、Aliceが、その頭部を点頭させる、またはその頭部を揺動させる場合、その運動は、その胴体(または身体)に対するその頭部の角度に基づいて、意味を有する。別の実施例として、Aliceは、180度方向転換し、その頭部を点頭させ得る。これらの2つの運動は、それらがその胴体に対して位置特定され、環境との相互作用を要求し得ないため、ローカルと見なされ得る。さらに別の実施例として、手を振ることは、ユーザの身体に対して定義され得るため、ローカル運動であることができる。いくつかの移動は、ローカル部分および世界部分を有してもよい。例えば、ユーザが、指を差すことによって、ジェスチャを行い得、これは、ユーザがユーザの環境内のオブジェクトを指している場合、ユーザの身体に対するローカル属性と、世界側面とを有する。例えば、Aliceが、Aliceの環境内のBobのアバタを指している場合、Aliceの手のジェスチャから決定された意図は、AliceがBobを指しているということである。Bobの環境では、Aliceは、Bobに対して異なる相対的場所または配向に現れ得、その手のジェスチャが1対1の対応においてレンダリングされる場合、Aliceのアバタは、Bobを指し得ず、したがって、Aliceの意図を反映させ得ない。Bobのウェアラブルデバイスは、AliceのアバタがBobを指しているようにレンダリングされるように、Aliceの意図をBobの環境にマッピングすることができる。
ウェアラブルシステムは、ユーザの環境、ユーザの移動、ユーザの意図等と関連付けられたコンテキスト情報に基づいて、ユーザの相互作用の意図を抽出することができる。ウェアラブルシステムは、故に、アバタの環境に基づいて、ユーザの相互作用の世界運動をアバタのアクションにマッピングし、ユーザの相互作用のローカルアクションを直接アバタにマッピングすることができる。世界運動のマッピングは、その中にアバタがレンダリングされる物理的環境と互換性があるように(単に、直接1対1の方式において特性をマッピングするのではなく)、例えば、移動、位置、配向、サイズ、顔の表情、姿勢、眼視線等のアバタの1つ以上の特性を調節することを含むことができる。
例えば、Aliceが、椅子まで歩いて行き、椅子の上に着座すると、ウェアラブルシステムは、Bobの環境の世界マップからの情報にアクセスし、Aliceを椅子の上に着座しているようにレンダリングすることによって、Bobの環境内の椅子(または椅子が存在しない場合、別の着座可能表面)を自動的に見出すことができる。別の実施例として、ウェアラブルシステムは、Aliceがその環境内の関心オブジェクト(例えば、木または仮想書籍)と相互作用することを意図することを決定してもよい。ウェアラブルシステムは、Aliceのアバタを自動的に再配向し、関心オブジェクトの場所がAliceの環境内のものと同一ではあり得ない、Bobの環境内の関心オブジェクトと相互作用させることができる。例えば、仮想書籍の直接1対1のマッピングが、それをBobの環境内のテーブルの内側または下にレンダリングされるよう生じさせるであろう場合、Bobのウェアラブルシステムは、代わりに、テーブルの上にあるように仮想書籍をレンダリングしてもよく、これは、Bobに、Aliceおよび仮想書籍とのより自然な相互作用を提供するであろう。
ウェアラブルシステムが、世界運動を再マッピングし得る間、ウェアラブルシステムは、ユーザの相互作用の点頭、手の傾斜または揺動(混乱、同意、または拒絶を示すことができる)等のローカル運動を保存することができる。例えば、Aliceは、その頭部を揺動させ、椅子に向かって歩いて行き得る。本相互作用は、椅子に向かった歩行等の世界運動と、その頭部の揺動等のローカル運動とを含む。ウェアラブルシステムは、Bobの環境内の椅子の場所に基づいて、Aliceのアバタの歩行方向を調節するが、その一方で、その頭部を揺動させるようにAliceのアバタをレンダリングすることができる。アバタの意図ベースのレンダリングに関連するさらなる説明は、図19-31を参照して説明される。
ある実装では、ウェアラブルシステムはまた、意図に基づいて、ローカル成分をアバタにマッピングすることができる。例えば、Aliceが、サムズアップサインを与える場合、ウェアラブルシステムは、これを表象的ジェスチャ(例えば、意識的に使用され、意識的に理解され、単語の代用品として使用され、日常の身体言語より手話に近い、ジェスチャ)として解釈し、より表現力のあるサムズアップ動画をBobの環境内のAliceのアバタにマッピングし、同一意図を伝達することができる。これは、例えば、掌を開いたジェスチャで手を振る、またはOKジェスチャでOKサインを与える等の他の共通する象徴的または表象的ジェスチャにも適用することができる。
そのヒト対応者の相互作用に基づいて、仮想アバタを動画化することに加えて、またはその代替として、有利には、いくつかの実施形態では、ウェアラブルシステムはまた、アバタがその中にレンダリングされる環境に基づいて、アバタを動画化することができる。ウェアラブルシステムは、仮想アバタが、環境との相互作用に基づいて、その決定を行うことが可能であるように現れ得るように、仮想アバタをレンダリングすることができる(例えば、ウェアラブルシステムは、環境内に存在する椅子が存在する場合、着座しているようにアバタを表示するが、椅子が存在しない場合、起立しているようにアバタを表示してもよい)。
ウェアラブルシステムは、関心オブジェクト、関心エリア、音、または関心オブジェクトの成分等の視認者の環境内の関心誘引誘発要因を発見し、アバタに、関心誘引誘発要因に自動的に応答させることができる(例えば、関心誘引誘発要因を見るように方向転換する等)。一実施例として、視認者のウェアラブルシステムは、突然の大きな雑音を検出し得、視認者のウェアラブルシステムは、大きな雑音が発せられた方向を見るようにアバタを自動的に再配向することができる。
ウェアラブルシステムは、視認者がアバタのヒト対応者とのテレプレゼンスセッション中であるかどうかにかかわらず、誘発要因に基づいて、アバタを動画化することができる。視認者がテレプレゼンスセッション中である状況では、アバタは、そのような関心誘引誘発要因がヒト対応者の環境内に現れない場合でも、視認者の環境内の関心誘引誘発要因に応答することができる。例えば、AliceおよびBobが、テレプレゼンスセッション中であり得る。Aliceのアバタは、最初に、Bobが話しているため、Bobに向き得る。Bobのウェアラブルシステムが、Bobの環境内の大きな雑音を検出すると、Aliceのアバタは、その注意をBobから大きな雑音の方向に切り替え得る(したがって、Bobから視線を逸らし得る)。視認者の環境に基づいてアバタを動画化することに関連するさらなる説明は、図31A-37を参照して説明される。
ある実装では、ウェアラブルシステムは、ヒト対応者ユーザが(遠隔または同一環境のいずれかに)存在する場合とそうではない場合がある場合でも、1人以上のユーザ(例えば、アバタのヒト対応者を含む)の挙動を学習し、そのような学習に基づいて、アバタの動画を駆動することができる。例えば、ウェアラブルシステムは、発話音声またはユーザの環境内のオブジェクトに関連したユーザの眼視線方向およびアイコンタクトの頻度から、ユーザが他者と相互作用する方法を学習することができる(例えば、デバイスセンサからのデータに基づいて)。ウェアラブルシステムは、故に、ユーザの学習された挙動に基づいて、アバタの動画を駆動することができる。実施例として、ユーザが、カントリーミュージックに応答しない(例えば、カントリーミュージックを再生している音源を見ない)場合、ユーザと関連付けられたアバタもまた、アバタがカントリーミュージックに応答しないようにレンダリングされてもよい。
本開示における実施例は、ヒト形状のアバタを動画化することを説明するが、類似技法はまた、動物、架空の生物、オブジェクト(例えば、上記に説明される仮想書籍)等にも適用されることができる。例えば、Aliceのシステムは、その環境内で動き回るイヌを検出し得る。Bobのウェアラブルシステムは、仮想イヌの移動をBobの環境内に提示することができる。Bobのウェアラブルシステムは、Bobの環境内の障害物に基づいて、仮想イヌの移動をBobの環境内に表示してもよい(例えば、仮想イヌを物理的オブジェクトを通して通過させない軌道上で仮想イヌを移動させることによって)。
故に、開示されるシステムおよび方法の実施形態は、ウェアラブルシステムのユーザとユーザの環境内のアバタとの間のはるかにより現実的な相互作用を提供し得る。
(ウェアラブルシステムの3Dディスプレイの実施例)
ウェアラブルシステム(本明細書では、拡張現実(AR)システムとも称される)は、2Dまたは3D仮想画像をユーザに提示するために構成されることができる。画像は、組み合わせまたは同等物における、静止画像、ビデオのフレーム、またはビデオであってもよい。ウェアラブルシステムの少なくとも一部は、ユーザ相互作用のために、単独で、または組み合わせて、VR、AR、またはMR環境を提示し得る、ウェアラブルデバイス上に実装されることができる。ウェアラブルデバイスは、ARデバイス(ARD)と同義的に使用されることができる。さらに、本開示の目的のために、用語「AR」は、用語「MR」と同義的に使用される。
図1は、人物によって視認される、ある仮想現実オブジェクトおよびある物理的オブジェクトを伴う、複合現実シナリオの例証を描写する。図1では、MR場面100が、描写され、MR技術のユーザには、人々、木々、背景における建物、およびコンクリートプラットフォーム120を特徴とする、実世界公園状設定110が見える。これらのアイテムに加え、MR技術のユーザはまた、実世界プラットフォーム120上に立っているロボット像130と、マルハナバチの擬人化のように見える、飛んでいる漫画のようなアバタキャラクタ140とが「見える」と知覚するが、これらの要素は、実世界には存在しない。
3Dディスプレイが、真の深度感覚、より具体的には、表面深度のシミュレートされた感覚を生成するために、ディスプレイの視野内の点毎に、その仮想深度に対応する遠近調節応答を生成することが望ましくあり得る。ディスプレイ点に対する遠近調節応答が、収束および立体視の両眼深度キューによって決定されるようなその点の仮想深度に対応しない場合、ヒトの眼は、遠近調節衝突を体験し、不安定な結像、有害な眼精疲労、頭痛、および遠近調節情報の不在下では、表面深度のほぼ完全な欠如をもたらし得る。
VR、AR、およびMR体験は、複数の深度平面に対応する画像が視認者に提供されるディスプレイを有する、ディスプレイシステムによって提供されることができる。画像は、深度平面毎に異なってもよく(例えば、場面またはオブジェクトの若干異なる提示を提供する)、視認者の眼によって別個に集束され、それによって、異なる深度平面上に位置する場面に関する異なる画像特徴に合焦させるために要求される眼の遠近調節(accommodation)に基づいて、または合焦からずれている異なる深度平面上の異なる画像特徴を観察することに基づいて、ユーザに深度キューを提供することに役立ち得る。本明細書のいずれかに議論されるように、そのような深度キューは、信用できる深度の知覚を提供する。
図2は、ウェアラブルシステム200の実施例を図示し、これは、AR/VR/MR場面を提供するように構成されることができる。ウェアラブルシステム200はまた、ARシステム200と称され得る。ウェアラブルシステム200は、ディスプレイ220と、ディスプレイ220の機能をサポートするための種々の機械的および電子的モジュールおよびシステムとを含む。ディスプレイ220は、ユーザ、装着者、または視認者210によって装着可能である、フレーム230に結合されてもよい。ディスプレイ220は、ユーザ210の眼の正面に位置付けられることができる。ディスプレイ220は、AR/VR/MRコンテンツをユーザに提示するができる。ディスプレイ220は、ユーザの頭部上に装着される、頭部搭載型ディスプレイ(HMD)を備えることができる。
いくつかの実施形態では、スピーカ240が、フレーム230に結合され、ユーザの外耳道に隣接して位置付けられる(いくつかの実施形態では、示されない別のスピーカが、ユーザの他方の外耳道に隣接して位置付けられ、ステレオ/成形可能音響制御を提供する)。ディスプレイ220は、環境からオーディオストリームを検出し、周囲音を捕捉するために、オーディオセンサ(例えば、マイクロホン)232を含むことができる。いくつかの実施形態では、示されない1つ以上の他のオーディオセンサが、ステレオ音受信を提供するために位置付けられる。ステレオ音受信は、音源の場所を決定するために使用されることができる。ウェアラブルシステム200は、音声または発話認識をオーディオストリームに実施することができる。
ウェアラブルシステム200は、ユーザの周囲の環境内の世界を観察する、外向きに面した結像システム464(図4に示される)を含むことができる。ウェアラブルシステム200はまた、ユーザの眼移動を追跡し得る、内向きに面した結像システム462(図4に示される)を含むことができる。内向きに面した結像システムは、一方の眼の移動または両方の眼の移動のいずれかを追跡することができる。内向きに面した結像システム462は、フレーム230に取り付けられてもよく、内向きに面した結像システムによって入手された画像情報を処理し、例えば、ユーザ210の眼の瞳孔直径または配向、眼の移動、または眼姿勢を決定し得る、処理モジュール260または270と電気通信してもよい。内向きに面した結像システム462は、1つ以上のカメラを含んでもよい。例えば、少なくとも1つのカメラは、各眼を結像するために使用されてもよい。カメラによって入手された画像は、眼毎に、別個に、瞳孔サイズまたは眼姿勢を決定し、それによって、各眼への画像情報の提示がその眼に対して動的に調整されることを可能にするために使用されてもよい。
実施例として、ウェアラブルシステム200は、外向きに面した結像システム464または内向きに面した結像システム462を使用して、ユーザの姿勢の画像を入手することができる。画像は、静止画像、ビデオのフレーム、またはビデオであってもよい。
ディスプレイ220は、有線導線または無線接続等によって、フレーム230に固定して取り付けられる、ユーザによって装着されるヘルメットまたは帽子に固定して取り付けられる、ヘッドホンに内蔵される、または別様にユーザ210に除去可能に取り付けられる(例えば、リュック式構成において、ベルト結合式構成において)等、種々の構成において搭載され得る、ローカルデータ処理モジュール260に動作可能に結合されることができる(250)。
ローカル処理およびデータモジュール260は、ハードウェアプロセッサおよび不揮発性メモリ(例えば、フラッシュメモリ)等のデジタルメモリを備えてもよく、その両方とも、データの処理、キャッシュ、および記憶を補助するために利用され得る。データは、a)画像捕捉デバイス(例えば、内向きに面した結像システムまたは外向きに面した結像システム内のカメラ)、オーディオセンサ(例えば、マイクロホン)、慣性測定ユニット(IMU)、加速度計、コンパス、全地球測位システム(GPS)ユニット、無線デバイス、またはジャイロスコープ等の(例えば、フレーム230に動作可能に結合される、または別様にユーザ210に取り付けられ得る)センサから捕捉されるデータ、または、b)場合によっては処理または読出後にディスプレイ220への通過のために、遠隔処理モジュール270または遠隔データリポジトリ280を使用して入手または処理されるデータを含んでもよい。ローカル処理およびデータモジュール260は、これらの遠隔モジュールがローカル処理およびデータモジュール260へのリソースとして利用可能であるように、有線または無線通信リンク等を介して、通信リンク262または264によって遠隔処理モジュール270または遠隔データリポジトリ280に動作可能に結合されてもよい。加えて、遠隔処理モジュール280および遠隔データリポジトリ280は、相互に動作可能に結合されてもよい。
いくつかの実施形態では、遠隔処理モジュール270は、データまたは画像情報を分析および処理するように構成される、1つまたはそれを上回るプロセッサを備えてもよい。いくつかの実施形態では、遠隔データリポジトリ280は、デジタルデータ記憶設備を備え得、これは、インターネットまたは「クラウド」リソース構成における他のネットワーキング構成を通して利用可能であってもよい。いくつかの実施形態では、全てのデータが、記憶され、全ての算出が、ローカル処理およびデータモジュールにおいて実施され、遠隔モジュールからの完全に自律的な使用を可能にする。
(ウェアラブルシステムの例示的コンポーネント)
図3は、ウェアラブルシステムの例示的コンポーネントを図式的に図示する。図3は、ウェアラブルシステム200を示し、これは、ディスプレイ220と、フレーム230とを含むことができる。引き伸ばし図202は、ウェアラブルシステム200の種々のコンポーネントを図式的に図示する。ある実装では、図3に図示されるコンポーネントのうちの1つ以上のものは、ディスプレイ220の一部であることができる。種々のコンポーネントは、単独で、または組み合わせて、ウェアラブルシステム200のユーザまたはユーザの環境と関連付けられた種々のデータ(例えば、聴覚的または視覚的データ等)を収集することができる。他の実施形態は、ウェアラブルシステムが使用される用途に応じて、付加的またはより少ないコンポーネントを有してもよいことを理解されたい。なお、図3は、種々のコンポーネントのうちのいくつかと、ウェアラブルシステムを通して収集、分析、および記憶され得る、データのタイプの基本概念とを提供する。
図3は、例示的ウェアラブルシステム200を示し、これは、ディスプレイ220を含むことができる。ディスプレイ220は、ユーザの頭部、またはフレーム230に対応する、筐体またはフレーム230に搭載され得る、ディスプレイレンズ226を備えることができる。ディスプレイレンズ230は、筐体230によって、ユーザの眼302、304の正面に位置付けられる、1つ以上の透明ミラーを備えてもよく、投影された光ビーム338を眼302、304の中にバウンスさせ、ビーム成形を促進しながら、また、ローカル環境からの少なくとも一部の光の透過を可能にするように構成されてもよい。投影された光ビーム338の波面は、投影された光の所望の焦点距離と一致するように屈曲または集束されてもよい。図示されるように、2つの広視野マシンビジョンカメラ316(世界カメラとも称される)が、筐体230に結合され、ユーザの周囲の環境を結像することができる。これらのカメラ316は、二重捕捉式可視光/非可視(例えば、赤外線)光カメラであることができる。カメラ316は、図4に示される外向きに面した結像システム464の一部であってもよい。世界カメラ316によって入手された画像は、姿勢プロセッサ336によって処理されることができる。例えば、姿勢プロセッサ336は、1つ以上のオブジェクト認識装置708(例えば、図7に示される)を実装し、ユーザまたはユーザの環境内の別の人物の姿勢を識別する、またはユーザの環境内の物理的オブジェクトを識別することができる。
図3を継続して参照すると、光338を眼302、304の中に投影するように構成される、ディスプレイミラーおよび光学系を伴う、一対の走査式レーザ成形波面(例えば、深度のために)光プロジェクタモジュールが、示される。描写される図はまた、ユーザの眼302、304を追跡し、レンダリングおよびユーザ入力をサポート可能であるように構成される、赤外線光(発光ダイオード「LED」等)とペアリングされる、2つの小型赤外線カメラ324を示す。カメラ324は、図4に示される、内向きに面した結像システム462の一部であってもよい。ウェアラブルシステム200はさらに、センサアセンブリ339を特徴とすることができ、これは、X、Y、およびZ軸加速度計能力および磁気コンパスおよびX、Y、およびZ軸ジャイロスコープ能力を備え、好ましくは、200Hz等の比較的に高周波数でデータを提供し得る。センサアセンブリ339は、図2Aを参照して説明される、IMUの一部であってもよい。描写されるシステム200はまた、ASIC(特定用途向け集積回路)、FPGA(フィールドプログラマブルゲートアレイ)、またはARMプロセッサ(高度縮小命令セット機械)等の頭部姿勢プロセッサ336を備えることができ、これは、リアルタイムまたは近リアルタイムユーザ頭部姿勢を捕捉デバイス316から出力された広視野画像情報から計算するように構成されてもよい。頭部姿勢プロセッサ336は、ハードウェアプロセッサであることができ、図2Aに示されるローカル処理およびデータモジュール260の一部として実装されることができる。
ウェアラブルシステムはまた、1つ以上の深度センサ234を含むことができる。深度センサ234は、環境内のオブジェクトとウェアラブルデバイスとの間の距離を測定するように構成されることができる。深度センサ234は、レーザスキャナ(例えば、LIDAR)、超音波深度センサ、または深度感知カメラを含んでもよい。カメラ316が深度感知能力を有する、ある実装では、カメラ316はまた、深度センサ234と見なされ得る。
また、示されるのは、デジタルまたはアナログ処理を実行し、姿勢をセンサアセンブリ339からのジャイロスコープ、コンパス、または加速度計データから導出するように構成される、プロセッサ332である。プロセッサ332は、図2に示される、ローカル処理およびデータモジュール260の一部であってもよい。ウェアラブルシステム200はまた、図3に示されるように、例えば、GPS337(全地球測位システム)等の測位システムを含み、姿勢および測位分析を補助することができる。加えて、GPSはさらに、ユーザの環境についての遠隔ベース(例えば、クラウドベース)の情報を提供してもよい。本情報は、ユーザの環境内のオブジェクトまたは情報を認識するために使用されてもよい。
ウェアラブルシステムは、GPS337および遠隔コンピューティングシステム(例えば、遠隔処理モジュール270、別のユーザのARD等)によって入手されたデータを組み合わせてもよく、これは、ユーザの環境についてのより多くの情報を提供することができる。一実施例として、ウェアラブルシステムは、GPSデータに基づいて、ユーザの場所を決定し、ユーザの場所と関連付けられた仮想オブジェクトを含む、世界マップを読み出すことができる(例えば、遠隔処理モジュール270と通信することによって)。別の実施例として、ウェアラブルシステム200は、世界カメラ316(図4に示される外向きに面した結像システム464の一部であってもよい)を使用して、環境を監視することができる。世界カメラ316によって入手された画像に基づいて、ウェアラブルシステム200は、環境内のオブジェクトを検出することができる(例えば、図7に示される1つ以上のオブジェクト認識装置708を使用することによって)。ウェアラブルシステムはさらに、GPS337によって入手されたデータを使用して、表意文字を解釈することができる。
ウェアラブルシステム200はまた、レンダリングエンジン334を備えてもよく、これは、世界のユーザのビューのために、ユーザにローカルなレンダリング情報を提供し、スキャナの動作およびユーザの眼の中への結像を促進するように構成されることができる。レンダリングエンジン334は、ハードウェアプロセッサ(例えば、中央処理ユニットまたはグラフィック処理ユニット等)によって実装されてもよい。いくつかの実施形態では、レンダリングエンジンは、ローカル処理およびデータモジュール260の一部である。レンダリングエンジン334は、ウェアラブルシステム200の他のコンポーネントに通信可能に結合されることができる(例えば、有線または無線リンクを介して)。例えば、レンダリングエンジン334は、通信リンク274を介して、眼カメラ324に結合され、通信リンク272を介して、投影サブシステム318(網膜走査ディスプレイに類似する様式において、走査レーザ配列を介して、光をユーザの眼302、304の中に投影することができる)に結合されることができる。レンダリングエンジン334はまた、それぞれ、リンク276および294を介して、例えば、センサ姿勢プロセッサ332および画像姿勢プロセッサ336等の他の処理ユニットと通信することができる。
カメラ324(例えば、小型赤外線カメラ)は、眼姿勢を追跡し、レンダリングおよびユーザ入力をサポートするために利用されてもよい。いくつかの例示的眼姿勢は、ユーザが見ている場所または合焦させている深度(眼の輻輳・開散運動(vergence)を用いて推定されてもよい)を含んでもよい。GPS337、ジャイロスコープ、コンパス、および加速度計339は、大まかなまたは高速の姿勢推定を提供するために利用されてもよい。カメラ316のうちの1つ以上のものは、画像および姿勢を入手することができ、これは、関連付けられたクラウドコンピューティングリソースからのデータと併せて、ローカル環境をマッピングし、ユーザビューを他者と共有するために利用されてもよい。
図3に描写される例示的コンポーネントは、例証目的のためだけのものである。複数のセンサおよび他の機能モジュールが、例証および説明の容易性のために、ともに示される。いくつかの実施形態は、これらのセンサまたはモジュールの1つのみまたはサブセットを含んでもよい。さらに、これらのコンポーネントの場所は、図3に描写される位置に限定されない。いくつかのコンポーネントは、ベルト搭載型コンポーネント、ハンドヘルドコンポーネント、またはヘルメットコンポーネント等、他のコンポーネント内に搭載または格納されてもよい。一実施例として、画像姿勢プロセッサ336、センサ姿勢プロセッサ332、およびレンダリングエンジン334は、ベルトパック内に位置付けられ、超広帯域、Wi-Fi、Bluetooth(登録商標)等の無線通信を介して、または有線通信を介して、ウェアラブルシステムの他のコンポーネントと通信するように構成されてもよい。描写される筐体230は、好ましくは、ユーザによって頭部搭載可能かつ装着可能である。しかしながら、ウェアラブルシステム200のいくつかのコンポーネントは、ユーザの身体の他の部分に装着されてもよい。例えば、スピーカ240が、ユーザの耳の中に挿入され、音をユーザに提供してもよい。
ユーザの眼302、304の中への光338の投影に関して、いくつかの実施形態では、カメラ324は、一般に、眼の焦点の位置または「焦点深度」と一致する、ユーザの眼の中心が幾何学的に輻輳される場所を測定するために利用されてもよい。眼が輻輳する全ての点の3次元表面は、「単視軌跡」と称され得る。焦点距離は、有限数の深度をとり得る、または無限に変動し得る。輻輳・開散運動距離から投影された光は、対象の眼302、304に集束されるように現れる一方、輻輳・開散運動距離の正面または背後の光は、ぼかされる。本開示のウェアラブルデバイスおよび他のディスプレイシステムの実施例はまた、米国特許公開第2016/0270656号(参照することによってその全体として本明細書に組み込まれる)に説明される。
ヒト視覚系は、複雑であって、深度の現実的知覚を提供することは、困難である。オブジェクトの視認者は、輻輳・開散運動移動と遠近調節の組み合わせに起因して、オブジェクトを3次元として知覚し得る。相互に対する2つの眼の輻輳・開散運動移動(例えば、瞳孔が、相互に向かって、またはそこから離れるように移動し、眼の視線を収束させ、オブジェクトを固視するような瞳孔の回転)は、眼の水晶体の合焦(または「遠近調節」)と緊密に関連付けられる。通常条件下、焦点を1つのオブジェクトから異なる距離における別のオブジェクトに変化させるための眼のレンズの焦点の変化または眼の遠近調節は、「遠近調節-輻輳・開散運動反射」として知られる関係下、輻輳・開散運動の整合変化を自動的に同一距離に生じさせるであろう。同様に、輻輳・開散運動の変化は、通常条件下、遠近調節の整合変化を誘起するであろう。遠近調節と輻輳・開散運動との間のより良好な整合を提供するディスプレイシステムは、3次元画像のより現実的かつ快適なシミュレーションを形成し得る。
さらに、約0.7ミリメートル未満のビーム直径を伴う、空間的にコヒーレントな光は、眼が合焦している場所にかかわらず、ヒトの眼によって正しく解決されることができる。したがって、適切な焦点深度の錯覚を作成するために、眼の輻輳・開散運動が、カメラ324を用いて追跡されてもよく、レンダリングエンジン334および投影サブシステム318は、単視軌跡上またはそれに近接する全てのオブジェクトを合焦させてレンダリングし、全ての他のオブジェクトを可変程度に焦点をずらしてレンダリングするために利用されてもよい(例えば、意図的に作成されたぼけを使用して)。好ましくは、システム220は、ユーザに、約60フレーム/秒以上のフレームレートでレンダリングする。上記に説明されるように、好ましくは、カメラ324は、眼追跡のために利用されてもよく、ソフトウェアは、輻輳・開散運動幾何学形状だけではなく、また、ユーザ入力としての役割を果たすための焦点場所キューも取り上げるように構成されてもよい。好ましくは、そのようなディスプレイシステムは、昼間または夜間の使用のために好適な明度およびコントラストを用いて構成される。
いくつかの実施形態では、ディスプレイシステムは、好ましくは、視覚的オブジェクト整合のために約20ミリ秒未満の待ち時間、約0.1度未満の角度整合、および約1弧分(arc minute)の分解能を有し、これは、理論によって限定されるわけではないが、ヒトの眼のほぼ限界であると考えられる。ディスプレイシステム220は、位置特定システムと統合されてもよく、これは、GPS要素、光学追跡、コンパス、加速度計、または他のデータソースを伴い、位置および姿勢決定を補助し得る。位置特定情報は、関連世界のユーザのビュー内における正確なレンダリングを促進するために利用されてもよい(例えば、そのような情報は、眼鏡が実世界に対する場所を把握することを促進するであろう)。
いくつかの実施形態では、ウェアラブルシステム200は、ユーザの眼の遠近調節に基づいて、1つ以上の仮想画像を表示するように構成される。ユーザに画像が投影されている場所に合焦させるように強制する、従来の3Dディスプレイアプローチと異なり、いくつかの実施形態では、ウェアラブルシステムは、投影された仮想コンテンツの焦点を自動的に変動させ、ユーザに提示される1つ以上の画像のより快適な視認を可能にするように構成される。例えば、ユーザの眼が、1mの現在の焦点を有する場合、画像は、ユーザの焦点と一致するように投影されてもよい。ユーザが、焦点を3mに偏移させる場合、画像は、新しい焦点と一致するように投影される。したがって、ユーザに所定の焦点を強制するのではなく、いくつかの実施形態のウェアラブルシステム200は、ユーザの眼がより自然な様式において機能することを可能にする。
そのようなウェアラブルシステム200は、仮想現実デバイスに対して典型的に観察される、眼精疲労、頭痛、および他の生理学的症状の発生率を排除または低減させ得る。これを達成するために、ウェアラブルシステム200の種々の実施形態は、1つ以上の可変焦点要素(VFE)を通して、仮想画像を可変焦点距離に投影するように構成される。1つ以上の実施形態では、3D知覚は、画像をユーザから固定された焦点面に投影する、多平面焦点システムを通して達成されてもよい。他の実施形態は、可変平面焦点を採用し、焦点面は、ユーザの焦点の現在の状態と一致するように、z-方向に往復して移動される。
多平面焦点システムおよび可変平面焦点システムの両方において、ウェアラブルシステム200は、眼追跡を採用し、ユーザの眼の輻輳・開散運動を決定し、ユーザの現在の焦点を決定し、仮想画像を決定された焦点に投影してもよい。他の実施形態では、ウェアラブルシステム200は、ファイバスキャナまたは他の光生成源を通して、網膜を横断して、可変焦点の光ビームをラスタパターンで可変に投影する、光変調器を備える。したがって、画像を可変焦点距離に投影するウェアラブルシステム200のディスプレイの能力は、ユーザがオブジェクトを3Dにおいて視認するための遠近調節を容易にするだけではなく、また、米国特許公開第2016/0270656号(参照することによってその全体として本明細書に組み込まれる)にさらに説明されるように、ユーザの眼球異常を補償するために使用されてもよい。いくつかの他の実施形態では、空間光変調器は、種々の光学コンポーネントを通して、画像をユーザに投影してもよい。例えば、以下にさらに説明されるように、空間光変調器は、画像を1つ以上の導波管上に投影してもよく、これは、次いで、画像をユーザに伝送する。
導波管スタックアセンブリ
図4は、画像情報をユーザに出力するための導波管スタックの実施例を図示する。ウェアラブルシステム400は、複数の導波管432b、434b、436b、438b、4400bを使用して、3次元知覚を眼/脳に提供するために利用され得る、導波管のスタックまたはスタックされた導波管アセンブリ480を含む。いくつかの実施形態では、ウェアラブルシステム400は、図2のウェアラブルシステム200に対応してもよく、図4は、そのウェアラブルシステム200のいくつかの部分をより詳細に概略的に示す。例えば、いくつかの実施形態では、導波管アセンブリ480は、図2のディスプレイ220の中に統合されてもよい。
図4を継続して参照すると、導波管アセンブリ480はまた、複数の特徴458、456、454、452を導波管間に含んでもよい。いくつかの実施形態では、特徴458、456、454、452は、レンズであってもよい。他の実施形態では、特徴458、456、454、452は、レンズではなくてもよい。むしろ、それらは、単に、スペーサであってもよい(例えば、空気間隙を形成するためのクラッディング層または構造)。
導波管432b、434b、436b、438b、440bまたは複数のレンズ458、456、454、452は、種々のレベルの波面曲率または光線発散を用いて、画像情報を眼に送信するように構成されてもよい。各導波管レベルは、特定の深度平面と関連付けられてもよく、その深度平面に対応する画像情報を出力するように構成されてもよい。画像投入デバイス420、422、424、426、428は、それぞれ、眼410に向かって出力するために、各個別の導波管を横断して入射光を分散させるように構成され得る、導波管440b、438b、436b、434b、432bの中に画像情報を投入するために利用されてもよい。光は、画像投入デバイス420、422、424、426、428の出力表面から出射し、導波管440b、438b、436b、434b、432bの対応する入力縁の中に投入される。いくつかの実施形態では、光の単一ビーム(例えば、コリメートされたビーム)が、各導波管の中に投入され、特定の導波管と関連付けられた深度平面に対応する特定の角度(および発散量)において眼410に向かって指向される、クローン化されたコリメートビームの場全体を出力してもよい。
いくつかの実施形態では、画像投入デバイス420、422、424、426、428は、それぞれ、それぞれの対応する導波管440b、438b、436b、434b、432bの中への投入のための画像情報を生成する、離散ディスプレイである。いくつかの他の実施形態では、画像投入デバイス420、422、424、426、428は、例えば、画像情報を1つ以上の光学導管(光ファイバケーブル等)を介して、画像投入デバイス420、422、424、426、428のそれぞれに送り得る、単一の多重化されたディスプレイの出力端である。
コントローラ460が、スタックされた導波管アセンブリ480および画像投入デバイス420、422、424、426、428の動作を制御する。コントローラ460は、導波管440b、438b、436b、434b、432bへの画像情報のタイミングおよび提供を調整する、プログラミング(例えば、非一過性コンピュータ可読媒体内の命令)を含む。いくつかの実施形態では、コントローラ460は、単一一体型デバイスまたは有線または無線通信チャネルによって接続される分散型システムであってもよい。コントローラ460は、いくつかの実施形態では、処理モジュール260または270(図2に図示される)の一部であってもよい。
導波管440b、438b、436b、434b、432bは、全内部反射(TIR)によって各個別の導波管内で光を伝搬するように構成されてもよい。導波管440b、438b、436b、434b、432bはそれぞれ、主要上部表面および主要底部表面およびそれらの主要上部表面と主要底部表面との間に延在する縁を伴う、平面である、または別の形状(例えば、湾曲)を有してもよい。図示される構成では、導波管440b、438b、436b、434b、432bはそれぞれ、光を再指向させ、各個別の導波管内で伝搬させ、導波管から画像情報を眼410に出力することによって、光を導波管から抽出するように構成される、光抽出光学要素440a、438a、436a、434a、432aを含んでもよい。抽出された光はまた、外部結合光と称され得、光抽出光学要素はまた、外部結合光学要素と称され得る。抽出された光のビームは、導波管によって、導波管内で伝搬する光が光再指向要素に衝打する場所において出力される。光抽出光学要素(440a、438a、436a、434a、432a)は、例えば、反射または回折光学特徴であってもよい。説明を容易にし、図面を明確性にするために、導波管440b、438b、436b、434b、432bの底部主要表面に配置されて図示されるが、いくつかの実施形態では、光抽出光学要素440a、438a、436a、434a、432aは、上部主要表面または底部主要表面に配置されてもよい、または導波管440b、438b、436b、434b、432bの容積内に直接配置されてもよい。いくつかの実施形態では、光抽出光学要素440a、438a、436a、434a、432aは、透明基板に取り付けられ、導波管440b、438b、436b、434b、432bを形成する、材料の層内に形成されてもよい。いくつかの他の実施形態では、導波管440b、438b、436b、434b、432bは、モノリシック材料部品であってもよく、光抽出光学要素440a、438a、436a、434a、432aは、その材料部品の表面上および/または内部に形成されてもよい。
図4を継続して参照すると、本明細書に議論されるように、各導波管440b、438b、436b、434b、432bは、光を出力し、特定の深度平面に対応する画像を形成するように構成される。例えば、眼の最近傍の導波管432bは、そのような導波管432bの中に投入されるにつれて、コリメートされた光を眼410に送達するように構成されてもよい。コリメートされた光は、光学無限遠焦点面を表し得る。次の上方の導波管434bは、眼410に到達し得る前に、第1のレンズ452(例えば、負のレンズ)を通して通過する、コリメートされた光を送出するように構成されてもよい。第1のレンズ452は、眼/脳が、その次の上方の導波管434bから生じる光を光学無限遠から眼410に向かって内向きにより近い第1の焦点面から生じるように解釈するように、若干の凸面波面曲率を生成するように構成されてもよい。同様に、第3の上方の導波管436bは、眼410に到達する前に、その出力光を第1のレンズ452および第2のレンズ454の両方を通して通過させる。第1および第2のレンズ452および454の組み合わせられた屈折力は、眼/脳が、第3の導波管436bから生じる光が次の上方の導波管434bからの光であったよりも光学無限遠から人物に向かって内向きにさらに近い第2の焦点面から生じるように解釈するように、別の漸増量の波面曲率を生成するように構成されてもよい。
他の導波管層(例えば、導波管438b、440b)およびレンズ(例えば、レンズ456、458)も同様に構成され、スタック内の最高導波管440bを用いて、人物に最も近い焦点面を表す集約焦点力のために、その出力をそれと眼との間のレンズの全てを通して送出する。スタックされた導波管アセンブリ480の他側の世界470から生じる光を視認/解釈するとき、レンズ458、456、454、452のスタックを補償するために、補償レンズ層430が、スタックの上部に配置され、下方のレンズスタック458、456、454、452の集約力を補償してもよい。そのような構成は、利用可能な導波管/レンズ対と同じ数の知覚される焦点面を提供する。導波管の光抽出光学要素およびレンズの集束側面は両方とも、静的であってもよい(例えば、動的ではないまたは電気活性ではない)。いくつかの代替実施形態では、一方または両方とも、電気活性特徴を使用して動的であってもよい。
図4を継続して参照すると、光抽出光学要素440a、438a、436a、434a、432aは、導波管と関連付けられた特定の深度平面のために、光をその個別の導波管から再指向し、かつ本光を適切な量の発散またはコリメーションを伴って出力するように構成されてもよい。その結果、異なる関連付けられた深度平面を有する導波管は、関連付けられた深度平面に応じて、異なる量の発散を伴う光を出力する、異なる構成の光抽出光学要素を有してもよい。いくつかの実施形態では、本明細書に議論されるように、光抽出光学要素440a、438a、436a、434a、432aは、光を具体的角度で出力するように構成され得る、立体特徴または表面特徴であってもよい。例えば、光抽出光学要素440a、438a、436a、434a、432aは、体積ホログラム、表面ホログラム、および/または回折格子であってもよい。回折格子等の光抽出光学要素は、2015年6月25日に公開された米国特許公開第2015/0178939号(参照することによってその全体として本明細書に組み込まれる)に説明される。
いくつかの実施形態では、光抽出光学要素440a、438a、436a、434a、432aは、回折パターンを形成する回折特徴または「回折光学要素」(本明細書では、「DOE」とも称される)である。好ましくは、DOEは、ビームの光の一部のみがDOEの各交差部で眼410に向かって偏向される一方、残りが、全内部反射を介して、導波管を通して移動し続けるように、比較的に低回折効率を有する。画像情報を搬送する光は、したがって、複数の場所において導波管から出射する、いくつかの関連出射ビームに分割され、その結果、導波管内でバウンスする本特定のコリメートされたビームに関して、眼304に向かって非常に均一なパターンの出射放出となることができる。
いくつかの実施形態では、1つ以上のDOEは、能動的に回折する「オン」状態と有意に回折しない「オフ」状態との間で切替可能であってもよい。例えば、切替可能なDOEは、ポリマー分散液晶の層を備えてもよく、その中で微小液滴は、ホスト媒体中に回折パターンを備え、微小液滴の屈折率は、ホスト材料の屈折率に実質的に整合するように切り替えられることができる(その場合、パターンは、入射光を著しく回折させない)、または微小液滴は、ホスト媒体のものに整合しない屈折率に切り替えられることができる(その場合、パターンは、入射光を能動的に回折させる)。
いくつかの実施形態では、深度平面または被写界深度の数および分布は、視認者の眼の瞳孔サイズまたは配向に基づいて、動的に変動されてもよい。被写界深度は、視認者の瞳孔サイズと反比例して変化してもよい。その結果、視認者の眼の瞳孔のサイズが減少するにつれて、被写界深度は、その平面の場所が眼の焦点深度を越えるため判別不能である1つの平面が、判別可能となり、瞳孔サイズの低減および被写界深度の相当する増加に伴って、より合焦して現れ得るように増加する。同様に、異なる画像を視認者に提示するために使用される、離間される深度平面の数は、減少された瞳孔サイズに伴って減少されてもよい。例えば、視認者は、一方の深度平面から他方の深度平面への眼の遠近調節を調節せずに、第1の深度平面および第2の深度平面の両方の詳細を1つの瞳孔サイズにおいて明確に知覚することが可能ではない場合がある。しかしながら、これらの2つの深度平面は、同時に、遠近調節を変化させずに、別の瞳孔サイズにおいてユーザに合焦するには十分であり得る。
いくつかの実施形態では、ディスプレイシステムは、瞳孔サイズまたは配向の決定に基づいて、または特定の瞳孔サイズまたは配向を示す電気信号の受信に応じて、画像情報を受信する導波管の数を変動させてもよい。例えば、ユーザの眼が、2つの導波管と関連付けられた2つの深度平面間を区別不能である場合、コントローラ460(ローカル処理およびデータモジュール260の実施形態であり得る)は、これらの導波管のうちの1つへの画像情報の提供を停止するように構成またはプログラムされることができる。有利には、これは、システムへの処理負担を低減させ、それによって、システムの応答性を増加させ得る。導波管のためのDOEがオンおよびオフ状態間で切替可能である実施形態では、DOEは、導波管が画像情報を受信するとき、オフ状態に切り替えられてもよい。
いくつかの実施形態では、出射ビームに視認者の眼の直径未満の直径を有するという条件を満たさせることが望ましくあり得る。しかしながら、本条件を満たすことは、視認者の瞳孔のサイズの変動性に照らして、困難であり得る。いくつかの実施形態では、本条件は、視認者の瞳孔のサイズの決定に応答して出射ビームのサイズを変動させることによって、広範囲の瞳孔サイズにわたって満たされる。例えば、瞳孔サイズが減少するにつれて、出射ビームのサイズもまた、減少し得る。いくつかの実施形態では、出射ビームサイズは、可変開口を使用して変動されてもよい。
ウェアラブルシステム400は、世界470の一部を結像する、外向きに面した結像システム464(例えば、デジタルカメラ)を含むことができる。世界470の本部分は、世界カメラの視野(FOV)と称され得、結像システム464は、時として、FOVカメラとも称される。世界カメラのFOVは、視認者210のFOVと同一である場合とそうではない場合があり、これは、視認者210が所与の時間に知覚する、世界470の一部を包含する。例えば、いくつかの状況では、世界カメラのFOVは、ウェアラブルシステム400の視認者210の視野より大きくあり得る。視認者による視認または結像のために利用可能な領域全体は、動眼視野(FOR)と称され得る。FORは、装着者が、その身体、頭部、または眼を移動させ、空間内の実質的に任意の方向を知覚することができるため、ウェアラブルシステム400を囲繞する4πステラジアンの立体角を含んでもよい。他のコンテキストでは、装着者の移動は、より抑制されてもよく、それに応じて、装着者のFORは、より小さい立体角に接し得る。外向きに面した結像システム464から得られた画像は、ユーザによって行われるジェスチャ(例えば、手または指のジェスチャ)を追跡し、ユーザの正面における世界470内のオブジェクトを検出する等のために、使用されることができる。
ウェアラブルシステム400は、オーディオセンサ232、例えば、マイクロホンを含み、周囲音を捕捉することができる。上記に説明されるように、いくつかの実施形態では、1つ以上の他のオーディオセンサが、発話源の場所の決定に有用なステレオ音受信を提供するために位置付けられることができる。オーディオセンサ232は、別の実施例として、指向性マイクロホンを備えることができ、これはまた、オーディオ源が位置する場所に関するそのような有用な指向性情報を提供することができる。ウェアラブルシステム400は、発話源を位置特定する際、または特定の瞬間におけるアクティブ話者を決定するために等、外向きに面した結像システム464およびオーディオセンサ230の両方からの情報を使用することができる。例えば、ウェアラブルシステム400は、単独で、または話者の反射された画像(例えば、鏡に見られるように)と組み合わせて、音声認識を使用して、話者の識別を決定することができる。別の実施例として、ウェアラブルシステム400は、指向性マイクロホンから入手された音に基づいて、環境内の話者の位置を決定することができる。ウェアラブルシステム400は、発話認識アルゴリズムを用いて、話者の位置から生じる音を解析し、発話のコンテンツを決定し、音声認識技法を使用して、話者の識別(例えば、名前または他の人口統計情報)を決定することができる。
ウェアラブルシステム400はまた、眼移動および顔移動等のユーザの移動を観察する、内向きに面した結像システム466(例えば、デジタルカメラ)を含むことができる。内向きに面した結像システム466は、眼410の画像を捕捉し、眼304の瞳孔のサイズおよび/または配向を決定するために使用されてもよい。内向きに面した結像システム466は、ユーザが見ている方向(例えば、眼姿勢)を決定する際に使用するため、またはユーザのバイオメトリック識別のため(例えば、虹彩識別を介して)、画像を得るために使用されることができる。いくつかの実施形態では、少なくとも1つのカメラが、眼毎に、独立して、各眼の瞳孔サイズまたは眼姿勢を別個に決定し、それによって、各眼への画像情報の提示がその眼に対して動的に調整されることを可能にするために利用されてもよい。いくつかの他の実施形態では、単一眼410のみの瞳孔直径または配向(例えば、対の眼あたり単一カメラのみを使用して)が、決定され、ユーザの両眼に関して類似すると仮定される。内向きに面した結像システム466によって得られる画像は、ユーザに提示されるべきオーディオまたは視覚的コンテンツを決定するためにウェアラブルシステム400によって使用され得る、ユーザの眼姿勢または気分を決定するために分析されてもよい。ウェアラブルシステム400はまた、姿勢センサ、例えば、IMU、加速度計、ジャイロスコープ等のセンサを使用して、頭部姿勢(例えば、頭部位置または頭部配向)を決定してもよい。
ウェアラブルシステム400は、ユーザが、コマンドをコントローラ460に入力し、ウェアラブルシステム400と相互作用し得る、ユーザ入力デバイス466を含むことができる。例えば、ユーザ入力デバイス466は、トラックパッド、タッチスクリーン、ジョイスティック、多自由度(DOF)コントローラ、容量感知デバイス、ゲームコントローラ、キーボード、マウス、指向性パッド(Dパッド)、ワンド、触知デバイス、トーテム(例えば、仮想ユーザ入力デバイスとして機能する)等を含むことができる。マルチDOFコントローラは、コントローラの一部または全部の可能性として考えられる平行移動(例えば、左/右、前方/後方、または上/下)または回転(例えば、ヨー、ピッチ、またはロール)におけるユーザ入力を感知することができる。平行移動をサポートする、マルチDOFコントローラは、3DOFと称され得る一方、平行移動および回転をサポートする、マルチDOFコントローラは、6DOFと称され得る。ある場合には、ユーザは、指(例えば、親指)を使用して、タッチセンサ式入力デバイスを押下またはその上でスワイプし、入力をウェアラブルシステム400に提供してもよい(例えば、ユーザ入力をウェアラブルシステム400によって提供されるユーザインターフェースに提供するために)。ユーザ入力デバイス466は、ウェアラブルシステム400の使用の間、ユーザの手によって保持されてもよい。ユーザ入力デバイス466は、ウェアラブルシステム400と有線または無線通信することができる。
ウェアラブルシステムの他のコンポーネント
多くの実装では、ウェアラブルシステムは、上記に説明されるウェアラブルシステムのコンポーネントに加えて、またはその代替として、他のコンポーネントを含んでもよい。ウェアラブルシステムは、例えば、1つ以上の触知デバイスまたはコンポーネントを含んでもよい。触知デバイスまたはコンポーネントは、触覚をユーザに提供するように動作可能であってもよい。例えば、触知デバイスまたはコンポーネントは、仮想コンテンツ(例えば、仮想オブジェクト、仮想ツール、他の仮想構造)に触れると、圧力またはテクスチャの触覚を提供してもよい。触覚は、仮想オブジェクトが表す物理的オブジェクトの感覚を再現してもよい、または仮想コンテンツが表す想像上のオブジェクトまたはキャラクタ(例えば、ドラゴン)の感覚を再現してもよい。いくつかの実装では、触知デバイスまたはコンポーネントは、ユーザによって装着されてもよい(例えば、ユーザウェアラブルグローブ)。いくつかの実装では、触知デバイスまたはコンポーネントは、ユーザによって保持されてもよい。
ウェアラブルシステムは、例えば、ユーザによって操作可能であって、ウェアラブルシステムへの入力またはそれとの相互作用を可能にする、1つ以上の物理的オブジェクトを含んでもよい。これらの物理的オブジェクトは、本明細書では、トーテムと称され得る。いくつかのトーテムは、例えば、金属またはプラスチック片、壁、テーブルの表面等、無生物オブジェクトの形態をとってもよい。ある実装では、トーテムは、実際には、任意の物理的入力構造(例えば、キー、トリガ、ジョイスティック、トラックボール、ロッカスイッチ)を有していなくてもよい。代わりに、トーテムは、単に、物理的表面を提供してもよく、ウェアラブルシステムは、ユーザにトーテムの1つ以上の表面上にあるように見えるように、ユーザインターフェースをレンダリングしてもよい。例えば、ウェアラブルシステムは、トーテムの1つ以上の表面上に常駐するように見えるように、コンピュータキーボードおよびトラックパッドの画像をレンダリングしてもよい。例えば、ウェアラブルシステムは、トーテムとしての役割を果たし得る、アルミニウムの薄い長方形プレートの表面上に見えるように、仮想コンピュータキーボードおよび仮想トラックパッドをレンダリングしてもよい。長方形プレート自体は、任意の物理的キーまたはトラックパッドまたはセンサを有していない。しかしながら、ウェアラブルシステムは、仮想キーボードまたは仮想トラックパッドを介して行われた選択または入力として、長方形プレートを用いたユーザ操作または相互作用またはタッチを検出し得る。ユーザ入力デバイス466(図4に示される)は、トラックパッド、タッチパッド、トリガ、ジョイスティック、トラックボール、ロッカまたは仮想スイッチ、マウス、キーボード、多自由度コントローラ、または別の物理的入力デバイスを含み得る、トーテムの実施形態であってもよい。ユーザは、単独で、または姿勢と組み合わせて、トーテムを使用し、ウェアラブルシステムまたは他のユーザと相互作用してもよい。
本開示のウェアラブルデバイス、HMD、およびディスプレイシステムと使用可能な触知デバイスおよびトーテムの実施例は、米国特許公開第2015/0016777号(参照することによってその全体として本明細書に組み込まれる)に説明される。
(ウェアラブルシステムとのユーザ相互作用の例示的プロセス)
図5は、仮想ユーザインターフェースと相互作用するための方法500の実施例のプロセスフロー図である。方法500は、本明細書に説明されるウェアラブルシステムによって実施されてもよい。方法500の実施形態は、ウェアラブルシステムによって使用され、ウェアラブルシステムのFOV内の人物またはドキュメントを検出することができる。
ブロック510では、ウェアラブルシステムは、特定のUIを識別してもよい。UIのタイプは、ユーザによって事前決定されてもよい。ウェアラブルシステムは、ユーザ入力(例えば、ジェスチャ、視覚的データ、オーディオデータ、感覚データ、直接コマンド等)に基づいて、特定のUIが取り込まれる必要があることを識別してもよい。UIは、システムの装着者がドキュメントを装着者に提示するユーザを観察している(例えば、旅行者検問所において)、セキュリティシナリオに特有であることができる。ブロック520では、ウェアラブルシステムは、仮想UIのためのデータを生成してもよい。例えば、範囲、一般的構造、UIの形状等と関連付けられたデータが、生成されてもよい。加えて、ウェアラブルシステムは、ウェアラブルシステムがUIをユーザの物理的場所に関連して表示し得るように、ユーザの物理的場所のマップ座標を決定してもよい。例えば、UIが、身体中心である場合、ウェアラブルシステムは、リングUIがユーザの周囲に表示され得る、または平面UIが壁上またはユーザの正面に表示され得るように、ユーザの物理的立ち位置の座標、頭部姿勢、または眼姿勢を決定してもよい。本明細書に説明されるセキュリティコンテキストでは、UIは、装着者が、旅行者および旅行者のドキュメントを見ながら、UIを容易に視認し得るように、UIがドキュメントをシステムの装着者に提示している旅行者を囲繞しているかのように表示されてもよい。UIが、手中心である場合、ユーザの手のマップ座標が、決定されてもよい。これらのマップ点は、FOVカメラ、感覚入力を通して受信されたデータ、または任意の他のタイプの収集されたデータを通して、導出されてもよい。
ブロック530では、ウェアラブルシステムは、データをクラウドからディスプレイに送信してもよい、またはデータは、ローカルデータベースからディスプレイコンポーネントに送信されてもよい。ブロック540では、UIは、送信されたデータに基づいて、ユーザに表示される。例えば、ライトフィールドディスプレイは、仮想UIをユーザの眼の一方または両方の中に投影することができる。いったん仮想UIが作成されると、ウェアラブルシステムは、単に、ブロック550において、より多くの仮想コンテンツを仮想UI上に生成するためのユーザからのコマンドを待機してもよい。例えば、UIは、ユーザの身体またはユーザの環境内の人物(例えば、旅行者)の身体の周囲の身体中心リングであってもよい。ウェアラブルシステムは、次いで、コマンド(ジェスチャ、頭部または眼移動、音声コマンド、ユーザ入力デバイスからの入力等)を待機してもよく、それが認識される場合(ブロック560)、コマンドと関連付けられた仮想コンテンツは、ユーザに表示されてもよい(ブロック570)。
(複合現実におけるアバタレンダリングの実施例)
ウェアラブルシステムは、高被写界深度をレンダリングされたライトフィールド内で達成するために、種々のマッピング関連技法を採用してもよい。仮想世界をマッピングする際、実世界内の全ての特徴および点を把握し、仮想オブジェクトを実世界に関連して正確に描くことが有利である。この目的を達成するために、ウェアラブルシステムのユーザから捕捉されたFOV画像が、実世界の種々の点および特徴についての情報を伝達する新しい写真を含むことによって、世界モデルに追加されることができる。例えば、ウェアラブルシステムは、マップ点(2D点または3D点等)のセットを収集し、新しいマップ点を見出し、世界モデルのより正確なバージョンをレンダリングすることができる。第1のユーザの世界モデルは、第2のユーザが第1のユーザを囲繞する世界を体験し得るように、(例えば、クラウドネットワーク等のネットワークを経由して)第2のユーザに通信されることができる。
図6Aは、ウェアラブルシステムの別の実施例のブロック図であって、これは、複合現実環境内のアバタ処理およびレンダリングシステム690を備えることができる。ウェアラブルシステム600は、図2に示されるウェアラブルシステム200の一部であってもよい。本実施例では、ウェアラブルシステム600は、マップ620を備えることができ、これは、マップデータベース710(図7に示される)内のデータの少なくとも一部を含んでもよい。マップは、部分的に、ウェアラブルシステム上にローカルで常駐してもよく、部分的に、有線または無線ネットワークによってアクセス可能なネットワーク化された記憶場所(例えば、クラウドシステム内)に常駐してもよい。姿勢プロセス610は、ウェアラブルコンピューティングアーキテクチャ(例えば、処理モジュール260またはコントローラ460)上で実行され、マップ620からのデータを利用して、ウェアラブルコンピューティングハードウェアまたはユーザの位置および配向を決定してもよい。姿勢データは、ユーザが、システムを体験し、世界内で動作するにつれてオンザフライで収集されたデータから、算出されてもよい。データは、画像、センサ(慣性測定ユニット等、これは、概して、加速度計と、ジャイロスコープコンポーネントとを備える)からのデータ、および実または仮想環境内のオブジェクトと関連する表面情報を含んでもよい。
疎点表現は、同時位置特定およびマッピング(例えば、入力が画像/視覚専用である構成を指す、SLAMまたはvSLAM)プロセスの出力であってもよい。本システムは、種々のコンポーネントが存在する世界内の場所だけではなく、世界が成る内容も見出すように構成されることができる。姿勢は、マップの取込およびマップからのデータの使用を含む、多くの目標を達成する、構築ブロックであり得る。
一実施形態では、疎点位置は、それだけでは完全に適正ではあり得ず、さらなる情報が、多焦点AR、VR、またはMR体験を生産するために必要とされ得る。概して、深度マップ情報を指す、稠密表現が、少なくとも部分的に、本間隙を充填するために利用されてもよい。そのような情報は、ステレオ640と称される、プロセスから算出されてもよく、深度情報は、三角測量または飛行時間感知等の技法を使用して決定される。画像情報およびアクティブパターン(アクティブプロジェクタを使用して作成された赤外線パターン等)、画像カメラから入手された画像、または手のジェスチャ/トーテム650が、ステレオプロセス640への入力としての役割を果たし得る。有意な量の深度マップ情報が、ともに融合され得、そのうちの一部は、表面表現とともに要約され得る。例えば、数学的に定義可能な表面は、効率的(例えば、大点群と比較して)であって、ゲームエンジンのような他の処理デバイスへの理解しやすい入力であり得る。したがって、ステレオプロセス(例えば、深度マップ)640の出力は、融合プロセス630において組み合わせられてもよい。姿勢610は、同様に、本融合プロセス630への入力であってもよく、融合630の出力は、マップ取込プロセス620への入力となる。サブ表面は、トポグラフィマッピングにおけるように、相互に接続し、より大きい表面を形成し得、マップは、点および表面の大規模ハイブリッドとなる。
複合現実プロセス660における種々の側面を解決するために、種々の入力が、利用されてもよい。例えば、図6Aに描写される実施形態では、ゲームパラメータが、入力され、システムのユーザが、種々の場所における1匹以上のモンスター、種々の条件下で死にかけている、または逃げているモンスター(ユーザがモンスターを射撃する場合等)、種々の場所における壁または他のオブジェクト、および同等物を伴った状態で、モンスターバトルゲームをプレーしていることを決定し得る。世界マップは、オブジェクトの場所に関する情報またはオブジェクトの意味論情報(例えば、オブジェクトが、平坦であるかまたは丸いか、水平であるかまたは鉛直であるか、テーブルであるかまたはランプであるか等の分類)を含んでもよく、世界マップは、複合現実への別の有益な入力であり得る。世界に対する姿勢は、同様に、入力となり、ほぼあらゆる双方向システムに対して重要な役割を担う。
ユーザからの制御または入力は、ウェアラブルシステム600への別の入力である。本明細書に説明されるように、ユーザ入力は、視覚的入力、ジェスチャ、トーテム、オーディオ入力、感覚入力等を含むことができる。動き回る、またはゲームをプレーするために、例えば、ユーザは、自らが所望する内容に関して、ウェアラブルシステム600に命令する必要があり得る。単に、自らを空間内で移動させる以外にも利用され得る、種々の形態のユーザ制御が存在する。一実施形態では、トーテム(例えば、ユーザ入力デバイス)または玩具銃等のオブジェクトが、ユーザによって保持され、システムによって追跡されてもよい。本システムは、好ましくは、ユーザがアイテムを保持していることを把握し、ユーザがアイテムと行っている相互作用の種類を理解するように構成されるであろう(例えば、トーテムまたはオブジェクトが、銃である場合、本システムは、場所および配向と、ユーザが、トリガまたは他の感知されるボタンまたは要素(アクティビティがカメラのいずれかの視野内にないときでも、生じている内容を決定することを補助し得る、IMU等のセンサを装備し得る)をクリックしているかどうかとを理解するように構成されてもよい)。
手のジェスチャの追跡または認識もまた、入力情報を提供し得る。ウェアラブルシステム600は、ボタン押下、左または右、停止、握持、保持のジェスチャ等に関して、手のジェスチャを追跡および解釈するように構成されてもよい。例えば、1つの構成では、ユーザは、非ゲーム用環境において電子メールまたはカレンダをフリップする、または「フィストバンプ」を別の人物またはプレーヤと行うことを所望し得る。ウェアラブルシステム600は、動的である場合とそうではない場合がある、最小量の手のジェスチャを活用するように構成されてもよい。例えば、ジェスチャは、停止のために手を開く、OKのためのサムズアップ、非OKのためのサムズダウン、または指向性コマンドのための右または左または上/下への手のフリップのような単純静的ジェスチャであってもよい。
眼追跡は、別の入力である(例えば、ユーザが見ている場所を追跡し、ディスプレイ技術を制御し、具体的深度または範囲にレンダリングする)。一実施形態では、眼の輻輳・開散運動が、三角測量を使用して、決定されてもよく、次いで、その特定の人物に関して開発された輻輳・開散運動/遠近調節モデルを使用して、遠近調節が、決定されてもよい。眼追跡は、眼カメラによって実施され、眼視線(例えば、片眼または両眼の方向または配向)を決定することができる。他の技法は、例えば、眼の近傍に設置された電極による電位の測定(例えば、電気眼球図記録)等の眼追跡のために使用されることができる。
発話追跡は、単独で、または他の入力(例えば、トーテム追跡、眼追跡、ジェスチャ追跡等)と組み合わせて使用され得る、別の入力であり得る。発話追跡は、単独で、または組み合わせて、発話認識、音声認識を含んでもよい。システム600は、オーディオストリームを環境から受信する、オーディオセンサ(例えば、マイクロホン)を含むことができる。システム600は、発話している人物(例えば、発話が、ARDの装着者または別の人物または音声(例えば、環境内のラウドスピーカによって伝送される記録された音声)からのものであるかどうか)を決定するための音声認識技術と、話されている内容を決定するための発話認識技術とを組み込むことができる。ローカルデータおよび処理モジュール260または遠隔処理モジュール270は、例えば、隠れマルコフモデル、動的時間伸縮法(DTW)ベースの発話認識、ニューラルネットワーク、ディープフィードフォワードおよび再帰ニューラルネットワーク等の深層学習アルゴリズム、エンドツーエンド自動発話認識、機械学習アルゴリズム(図7を参照して説明される)、または音響モデル化または言語モデル化を使用する、他のアルゴリズム等の種々の発話認識アルゴリズムを適用することによって、マイクロホンからのオーディオデータ(または、例えば、ユーザによって鑑賞されているビデオストリーム等の別のストリーム内のオーディオデータ)を処理し、発話のコンテンツを識別することができる。
odule 270 & processing module or the remote data procesisng cognition algorithms cel 260 can also iton, alone or in combaintion
ローカルデータおよび処理モジュール260または遠隔処理モジュール270はまた、音声認識アルゴリズムを適用することができ、これは、話者が、ウェアラブルシステム600のユーザ210またはユーザが会話している別の人物であるかどうか等、話者の識別を識別することができる。いくつかの例示的音声認識アルゴリズムは、周波数推定、隠れマルコフモデル、ガウス混合物モデル、パターンマッチングアルゴリズム、ニューラルネットワーク、行列表現、ベクトル量子化、話者ダイアライゼーション、決定ツリー、および動的時間伸縮法(DTW)技法を含むことができる。音声認識技法はまた、コホートモデルおよび世界モデル等のアンチ話者技法を含むことができる。スペクトル特徴が、話者特性を表す際に使用されてもよい。ローカルデータおよび処理モジュールまたは遠隔データ処理モジュール270は、図7を参照して説明される、種々の機械学習アルゴリズムを使用して、音声認識を実施することができる。
ウェアラブルシステムの実装は、UIを介したこれらのユーザ制御または入力を使用することができる。UI要素(例えば、制御、ポップアップウィンドウ、吹き出し、データエントリフィールド等)は、例えば、情報、例えば、オブジェクトのグラフィックまたは意味論情報のディスプレイを閉じるために使用されることができる。
カメラシステムに関して、図6Aに示される例示的ウェアラブルシステム600は、3つの対のカメラ、すなわち、ユーザの顔の側面に配列される、一対の相対的広FOVまたは受動SLAMカメラと、ステレオ結像プロセス640をハンドリングし、また、ユーザの顔の正面における手のジェスチャおよびトーテム/オブジェクト追跡を捕捉するために、ユーザの正面に配向される、異なる対のカメラとを含むことができる。FOVカメラおよびステレオプロセス640のための対のカメラは、外向きに面した結像システム464(図4に示される)の一部であってもよい。ウェアラブルシステム600は、眼ベクトルおよび他の情報を三角測量するために、ユーザの眼に向かって配向される、眼追跡カメラ(図4に示される内向きに面した結像システム462の一部であってもよい)を含むことができる。ウェアラブルシステム600はまた、1つ以上のテクスチャ加工された光プロジェクタ(赤外線(IR)プロジェクタ等)を備え、テクスチャを場面の中に投入してもよい。
ウェアラブルシステム600は、アバタ処理およびレンダリングシステム690を備えることができる。アバタ処理およびレンダリングシステム690は、コンテキスト情報に基づいて、アバタを生成、更新、動画化、およびレンダリングするように構成されることができる。アバタ処理およびレンダリングシステム690の一部または全部は、単独で、または組み合わせて、ローカル処理およびデータモジュール260または遠隔処理モジュール262、264の一部として実装されることができる。種々の実施形態では、複数のアバタ処理およびレンダリングシステム690(例えば、異なるウェアラブルデバイス上に実装されるように)が、仮想アバタ670をレンダリングするために使用されることができる。例えば、第1のユーザのウェアラブルデバイスは、第1のユーザの意図を決定するために使用されてもよい一方、第2のユーザのウェアラブルデバイスは、アバタの特性を決定し、第1のユーザのウェアラブルデバイスから受信された意図に基づいて、第1のユーザのアバタをレンダリングすることができる。第1のユーザのウェアラブルデバイスおよび第2のユーザのウェアラブルデバイス(または他のそのようなウェアラブルデバイス)は、例えば、図9Aおよび9Bを参照して説明されるであろうように、ネットワークを介して、通信することができる。
図6Bは、例示的アバタ処理およびレンダリングシステム690を図示する。例示的アバタ処理およびレンダリングシステム690は、単独で、または組み合わせて、3Dモデル処理システム680と、コンテキスト情報分析システム688と、アバタ自動スケーラ692と、意図マッピングシステム694と、解剖学的構造調節システム698と、刺激応答システム696とを備えることができる。システム690は、アバタ処理およびレンダリングのための機能性を図示するように意図され、限定することを意図するものではない。例えば、ある実装では、これらのシステムのうちの1つ以上のものは、別のシステムの一部であってもよい。例えば、コンテキスト情報分析システム688の一部は、個々に、または組み合わせて、アバタ自動スケーラ692、意図マッピングシステム694、刺激応答システム696、または解剖学的構造調節システム698の一部であってもよい。
コンテキスト情報分析システム688は、図2および3を参照して説明される、1つ以上のデバイスセンサに基づいて、環境およびオブジェクト情報を決定するように構成されることができる。例えば、コンテキスト情報分析システム688は、ユーザまたはユーザのアバタの視認者の外向きに面した結像システム464によって入手された画像を使用して、環境およびユーザの環境のオブジェクト(物理的または仮想オブジェクトを含む)またはその中にユーザのアバタがレンダリングされる環境を分析することができる。コンテキスト情報分析システム688は、単独で、または場所データまたは世界マップ(例えば、マップ620、710、910)から入手されたデータと組み合わせて、そのような画像を分析し、環境内のオブジェクトの場所およびレイアウトを決定することができる。コンテキスト情報分析システム688はまた、仮想アバタ670を現実的に動画化するために、ユーザまたはヒト全般の生物学的特徴にアクセスすることができる。例えば、コンテキスト情報分析システム688は、違和感曲線を生成することができ、これは、ユーザのアバタの身体の一部(例えば、頭部)がユーザの身体の他の部分に対して違和感のある(または非現実的)位置にないように(例えば、アバタの頭部は、270度方向転換されない)、アバタに適用されることができる。ある実装では、1つ以上のオブジェクト認識装置708(図7に示される)は、コンテキスト情報分析システム688の一部として実装されてもよい。
アバタ自動スケーラ692、意図マッピングシステム694、および刺激応答システム696、および解剖学的構造調節システム698は、コンテキスト情報に基づいて、アバタの特性を決定するように構成されることができる。アバタのいくつかの例示的特性は、サイズ、外観、位置、配向、移動、姿勢、表現等を含むことができる。アバタ自動スケーラ692は、ユーザがアバタを不快な姿勢で見る必要がないように、アバタを自動的にスケーリングするように構成されることができる。例えば、アバタ自動スケーラ692は、ユーザが、それぞれ、アバタを見下ろす、またはアバタを見上げる必要がないように、アバタのサイズを増加または減少させ、アバタをユーザの眼の高さに持って来ることができる。意図マッピングシステム694は、アバタがその中にレンダリングされる環境に基づいて、ユーザの相互作用の意図を決定し、(正確なユーザ相互作用ではなく)意図をアバタにマッピングすることができる。例えば、第1のユーザの意図は、テレプレゼンスセッションにおいて第2のユーザと通信することであり得る(例えば、図9B参照)。典型的には、2人が、通信するとき、相互に向かい合う。第1のユーザのウェアラブルシステムの意図マッピングシステム694は、テレプレゼンスセッションの間に存在するそのような対面意図を決定することができ、第1のユーザのウェアラブルシステムに、第2のユーザのアバタを第1のユーザに向かってレンダリングさせることができる。第2のユーザが、物理的に方向転換しようとする場合、第2のユーザのアバタを方向転換された位置にレンダリングする代わりに(第2のユーザのアバタの背面を第1のユーザに対してレンダリングさせるであろう)、第1のユーザの意図マッピングシステム694は、第2のアバタの顔を第1のユーザに対してレンダリングし続けることができ、これは、テレプレゼンスセッションの推測される意図(例えば、本実施例では、対面意図)である。
刺激応答システム696は、環境内の関心オブジェクトを識別し、関心オブジェクトに対するアバタの応答を決定することができる。例えば、刺激応答システム696は、アバタの環境内の音源を識別し、音源を見るようにアバタを自動的に方向転換させることができる。刺激応答システム696はまた、閾値終了条件を決定することができる。例えば、刺激応答システム696は、音源が消失した後またはある時間周期が経過した後、アバタをそのオリジナル姿勢に戻させることができる。
解剖学的構造調節システム698は、生物学的特徴に基づいて、ユーザの姿勢を調節するように構成されることができる。例えば、解剖学的構造調節システム698は、違和感曲線(例えば、図38A-39を参照する説明参照)に基づいて、ユーザの頭部とユーザの胴体との間またはユーザの上半身と下半身との間の相対的位置を調節するように構成されることができる。
3Dモデル処理システム680は、仮想アバタ670を動画化し、ディスプレイ220にレンダリングさせるように構成されることができる。3Dモデル処理システム680は、仮想キャラクタ処理システム682と、移動処理システム684とを含むことができる。仮想キャラクタ処理システム682は、ユーザの3Dモデルを生成および更新するように構成されることができる(仮想アバタを作成および動画化するため)。移動処理システム684は、例えば、アバタの姿勢を変化させることによって、アバタをユーザの環境内で移動させることによって、またはアバタの顔の表情を動画化することによって等、アバタを動画化するように構成されることができる。図10を参照してさらに説明されるであろうように、仮想アバタは、リギング技法(例えば、骨格系またはブレンドシェイプ動画技法)を使用して、動画化されることができ、アバタは、2つの部分、すなわち、仮想アバタの外向き外観をレンダリングするために使用される表面表現(例えば、変形可能メッシュ)と、メッシュを動画化するために相互接続された関節の階層セット(例えば、骨格)とにおいて表される。いくつかの実装では、仮想キャラクタ処理システム682は、表面表現を編集または生成するように構成されることができる一方、移動処理システム684は、アバタを移動させる、メッシュを変形させる等によって、アバタを動画化するために使用されることができる。
(ユーザの環境をマッピングする実施例)
図7は、MR環境700の実施例のブロック図である。MR環境700は、入力(例えば、ユーザのウェアラブルシステムからの視覚的入力702、室内カメラ等の定常入力704、種々のセンサからの感覚入力706、ユーザ入力デバイス466からのジェスチャ、トーテム、眼追跡、ユーザ入力等)を1つ以上のユーザウェアラブルシステム(例えば、ウェアラブルシステム200またはディスプレイシステム220)または定常室内システム(例えば、室内カメラ等)から受信するように構成されてもよい。ウェアラブルシステムは、種々のセンサ(例えば、加速度計、ジャイロスコープ、温度センサ、移動センサ、深度センサ、GPSセンサ、内向きに面した結像システム、外向きに面した結像システム等)を使用して、ユーザの環境の場所および種々の他の属性を決定することができる。本情報はさらに、異なる視点からの画像または種々のキューを提供し得る、部屋内の定常カメラからの情報で補完されてもよい。カメラ(室内カメラおよび/または外向きに面した結像システムのカメラ等)によって入手された画像データは、マッピング点のセットに低減されてもよい。
1つ以上のオブジェクト認識装置708が、受信されたデータ(例えば、点の集合)を通してクローリングし、点を認識またはマッピングし、画像をタグ付けし、マップデータベース710を用いて、意味論情報をオブジェクトに結び付けることができる。マップデータベース710は、経時的に収集された種々の点およびその対応するオブジェクトを備えてもよい。種々のデバイスおよびマップデータベースは、ネットワーク(例えば、LAN、WAN等)を通して相互に接続され、クラウドにアクセスすることができる。
本情報およびマップデータベース内の点集合に基づいて、オブジェクト認識装置708a-708nは、環境内のオブジェクトを認識してもよい。例えば、オブジェクト認識装置は、顔、人物、窓、壁、ユーザ入力デバイス、テレビ、ドキュメント(例えば、本明細書におけるセキュリティ実施例において説明されるような旅券、運転免許証、パスポート)、ユーザの環境内の他のオブジェクト等を認識することができる。1つ以上のオブジェクト認識装置が、ある特性を伴うオブジェクトのために特殊化されてもよい。例えば、オブジェクト認識装置708aは、顔を認識するために使用されてもよい一方、別のオブジェクト認識装置は、ドキュメントを認識するために使用されてもよい。
オブジェクト認識は、種々のコンピュータビジョン技法を使用して実施されてもよい。例えば、ウェアラブルシステムは、外向きに面した結像システム464(図4に示される)によって入手された画像を分析し、場面再構成、イベント検出、ビデオ追跡、オブジェクト認識(例えば、人物またはドキュメント)、オブジェクト姿勢推定、顔認識(例えば、環境内の人物またはドキュメント上の画像から)、学習、インデックス化、運動推定、または画像分析(例えば、写真、署名、識別情報、旅行情報等のドキュメント内の印を識別する)等を実施することができる。1つ以上のコンピュータビジョンアルゴリズムが、これらのタスクを実施するために使用されてもよい。コンピュータビジョンアルゴリズムの非限定的実施例は、スケール不変特徴変換(SIFT)、スピードアップロバスト特徴(SURF)、配向FASTおよび回転BRIEF(ORB)、バイナリロバスト不変スケーラブルキーポイント(BRISK)、高速網膜キーポイント(FREAK)、Viola-Jonesアルゴリズム、Eigenfacesアプローチ、Lucas-Kanadeアルゴリズム、Horn-Schunkアルゴリズム、Mean-shiftアルゴリズム、視覚的同時位置推定およびマッピング(vSLAM)技法、シーケンシャルベイズ推定器(例えば、カルマンフィルタ、拡張カルマンフィルタ等)、バンドル調節、適応閾値化(および他の閾値化技法)、反復最近傍点(ICP)、セミグローバルマッチング(SGM)、セミグローバルブロックマッチング(SGBM)、特徴点ヒストグラム、種々の機械学習アルゴリズム(例えば、サポートベクトルマシン、k最近傍アルゴリズム、単純ベイズ、ニューラルネットワーク(畳み込みまたは深層ニューラルネットワークを含む)、または他の教師あり/教師なしモデル等)等を含む。
オブジェクト認識は、加えて、または代替として、種々の機械学習アルゴリズムによって実施されることができる。いったん訓練されると、機械学習アルゴリズムは、HMDによって記憶されることができる。機械学習アルゴリズムのいくつかの実施例は、教師ありまたは教師なし機械学習アルゴリズムを含むことができ、回帰アルゴリズム(例えば、通常の最小2乗回帰等)、インスタンスベースのアルゴリズム(例えば、学習ベクトル量子化等)、決定ツリーアルゴリズム(例えば、分類および回帰ツリー等)、ベイズアルゴリズム(例えば、単純ベイズ等)、クラスタリングアルゴリズム(例えば、k-平均クラスタリング等)、関連付けルール学習アルゴリズム(例えば、アプリオリアルゴリズム等)、人工ニューラルネットワークアルゴリズム(例えば、Perceptron等)、深層学習アルゴリズム(例えば、DeepBoltzmann Machine、すなわち、深層ニューラルネットワーク等)、次元削減アルゴリズム(例えば、主成分分析等)、アンサンブルアルゴリズム(例えば、StackedGneralization等)、または他の機械学習アルゴリズムを含む。いくつかの実施形態では、個々のモデルは、個々のデータセットのためにカスタマイズされることができる。例えば、ウェアラブルデバイスは、ベースモデルを生成または記憶することができる。ベースモデルは、開始点として使用され、データタイプ(例えば、テレプレゼンスセッション内の特定のユーザ)、データセット(例えば、テレプレゼンスセッション内のユーザの取得される付加的画像のセット)、条件付き状況、または他の変形例に特有の付加的モデルを生成してもよい。いくつかの実施形態では、ウェアラブルHMDは、複数の技法を利用して、集約されたデータの分析のためのモデルを生成するように構成されることができる。他の技法は、事前に定義された閾値またはデータ値を使用することを含んでもよい。
マップデータベース内の本情報および点の集合に基づいて、オブジェクト認識装置708a-708nは、オブジェクトを認識し、オブジェクトを意味論情報で補完し、生命をオブジェクトに与えてもよい。例えば、オブジェクト認識装置が、点のセットがドアであることを認識する場合、システムは、いくつかの意味論情報を結び付けてもよい(例えば、ドアは、ヒンジを有し、ヒンジを中心として90度移動を有する)。オブジェクト認識装置が、点のセットが鏡であることを認識する場合、システムは、鏡が、部屋内のオブジェクトの画像を反射させ得る、反射表面を有するという意味論情報を結び付けてもよい。意味論情報は、本明細書に説明されるように、オブジェクトのアフォーダンスを含むことができる。例えば、意味論情報は、オブジェクトの法線を含んでもよい。システムは、ベクトルを割り当てることができ、その方向は、オブジェクトの法線を示す。経時的に、マップデータベースは、システム(ローカルに常駐し得る、または無線ネットワークを通してアクセス可能であり得る)がより多くのデータを世界から蓄積するにつれて成長する。いったんオブジェクトが認識されると、情報は、1つ以上のウェアラブルシステムに伝送されてもよい。例えば、MR環境700は、Californiaで発生している場面についての情報を含んでもよい。環境700は、New Yorkにおける1人以上のユーザに伝送されてもよい。FOVカメラおよび他の入力から受信されたデータに基づいて、オブジェクト認識装置および他のソフトウェアコンポーネントは、場面が世界の異なる部分に存在し得る第2のユーザに正確に「パス」され得るように、種々の画像から収集された点をマッピングし、オブジェクトを認識すること等ができる。環境700はまた、位置特定目的のために、トポロジマップを使用してもよい。
図8は、認識されたオブジェクトに関連して仮想コンテンツをレンダリングする方法800の実施例のプロセスフロー図である。方法800は、仮想場面がウェアラブルシステムのユーザに提示され得る方法を説明する。ユーザは、その場面から地理的に遠隔に存在してもよい。例えば、ユーザは、New Yorkに存在し得るが、Californiaで現在起こっている場面を視認することを所望し得る、またはCaliforniaに存在する友人と散歩に行くことを所望し得る。
ブロック810では、ウェアラブルシステムは、ユーザの環境に関する入力をユーザおよび他のユーザから受信してもよい。これは、種々の入力デバイスおよびマップデータベース内にすでに保有されている知識を通して達成されてもよい。ユーザのFOVカメラ、センサ、GPS、眼追跡等が、ブロック810において、情報をシステムに伝達する。システムは、ブロック820において、本情報に基づいて、疎点を決定してもよい。疎点は、ユーザの周囲における種々のオブジェクトの配向および位置を表示および理解する際に使用され得る、姿勢データ(例えば、頭部姿勢、眼姿勢、身体姿勢、または手のジェスチャ)を決定する際に使用されてもよい。オブジェクト認識装置708a-708nは、ブロック830において、これらの収集された点を通してクローリングし、マップデータベースを使用して、1つ以上のオブジェクトを認識してもよい。本情報は、次いで、ブロック840において、ユーザの個々のウェアラブルシステムに伝達されてもよく、所望の仮想場面が、ブロック850において、適宜、ユーザに表示されてもよい。例えば、所望の仮想場面(例えば、CAにおけるユーザ)が、New Yorkにおけるユーザの種々のオブジェクトおよび他の周囲に関連して、適切な配向、位置等において表示されてもよい。
(複数のウェアラブルシステム間の例示的通信)
図9Aは、相互に相互作用する複数のユーザデバイスを描写する、全体的システム図を図式的に図示する。コンピューティング環境900は、ユーザデバイス930a、930b、930cを含む。ユーザデバイス930a、930b、および930cは、ネットワーク990を通して、相互に通信することができる。ユーザデバイス930a-930cはそれぞれ、ネットワークインターフェースを含み、ネットワーク990を介して、遠隔コンピューティングシステム920(また、ネットワークインターフェース971を含んでもよい)と通信することができる。ネットワーク990は、LAN、WAN、ピアツーピアネットワーク、無線、Bluetooth(登録商標)、または任意の他のネットワークであってもよい。コンピューティング環境900はまた、1つ以上の遠隔コンピューティングシステム920を含むことができる。遠隔コンピューティングシステム920は、クラスタ化され、異なる地理的場所に位置する、サーバコンピュータシステムを含んでもよい。ユーザデバイス930a、930b、および930cは、ネットワーク990を介して、遠隔コンピューティングシステム920と通信してもよい。
遠隔コンピューティングシステム920は、遠隔データリポジトリ980を含んでもよく、これは、具体的ユーザの物理および/または仮想世界についての情報を維持することができる。データ記憶装置980は、ユーザ、ユーザの環境(例えば、ユーザの環境の世界マップ)、またはユーザのアバタの構成に関連する情報を記憶することができる。遠隔データリポジトリは、図2に示される遠隔データリポジトリ280の実施形態であってもよい。遠隔コンピューティングシステム920はまた、遠隔処理モジュール970を含んでもよい。遠隔処理モジュール970は、図2に示される遠隔処理モジュール270の実施形態であってもよい。遠隔処理モジュール970は、1つ以上のプロセッサを含んでもよく、これは、ユーザデバイス(930a、930b、930c)および遠隔データリポジトリ980と通信することができる。プロセッサは、ユーザデバイスおよび他の源から取得される情報を処理することができる。いくつかの実装では、処理または記憶の少なくとも一部は、ローカル処理およびデータモジュール260(図2に示されるように)によって提供されることができる。遠隔コンピューティングシステム920は、所与のユーザが、具体的ユーザ自身の物理的および/または仮想世界についての情報を別のユーザと共有することを可能にしてもよい。
ユーザデバイスは、単独で、または組み合わせて、ウェアラブルデバイス(HMDまたはARD等)、コンピュータ、モバイルデバイス、または任意の他のデバイスであってもよい。例えば、ユーザデバイス930bおよび930cは、図2に示されるウェアラブルシステム200(または図4に示されるウェアラブルシステム400)の実施形態であってもよく、これは、AR/VR/MRコンテンツを提示するように構成されることができる。
ユーザデバイスのうちの1つ以上のものは、図4に示されるユーザ入力デバイス466と併用されることができる。ユーザデバイスは、ユーザおよびユーザの環境についての情報を取得することができる(例えば、図4に示される外向きに面した結像システム464を使用して)。ユーザデバイスおよび/または遠隔コンピューティングシステム1220は、ユーザデバイスから取得される情報を使用して、画像、点、および他の情報の集合を構築、更新、および建造することができる。例えば、ユーザデバイスは、入手された未加工情報を処理し、さらなる処理のために、処理された情報を遠隔コンピューティングシステム1220に送信してもよい。ユーザデバイスはまた、処理のために、未加工情報を遠隔コンピューティングシステム1220に送信してもよい。ユーザデバイスは、処理された情報を遠隔コンピューティングシステム1220から受信し、ユーザに投影させる前に、最終処理を提供してもよい。ユーザデバイスはまた、取得された情報を処理し、処理された情報を他のユーザデバイスに渡してもよい。ユーザデバイスは、入手された情報を処理しながら、遠隔データリポジトリ1280と通信してもよい。複数のユーザデバイスおよび/または複数のサーバコンピュータシステムが、入手された画像の構築および/または処理に関与してもよい。
物理的世界に関する情報は、経時的に展開されてもよく、異なるユーザデバイスによって収集される情報に基づいてもよい。仮想世界のモデルはまた、経時的に展開され、異なるユーザの入力に基づいてもよい。そのような情報およびモデルは、時として、本明細書では、世界マップまたは世界モデルと称され得る。図6および7を参照して説明されるように、ユーザデバイスによって入手された情報は、世界マップ910を構築するために使用されてもよい。世界マップ910は、図6Aに説明されるマップ620の少なくとも一部を含んでもよい。種々のオブジェクト認識装置(例えば、708a、708b、708c…708n)が、オブジェクトおよびタグ画像を認識するため、および意味論情報をオブジェクトに付加するために使用されてもよい。これらのオブジェクト認識装置はまた、図7に説明される。
遠隔データリポジトリ980は、データを記憶し、世界マップ910の構築を促進するために使用されることができる。ユーザデバイスは、ユーザの環境についての情報を常に更新し、世界マップ910についての情報を受信することができる。世界マップ910は、ユーザまたは別の人物によって作成されてもよい。本明細書に議論されるように、ユーザデバイス(例えば、930a、930b、930c)および遠隔コンピューティングシステム920は、単独で、または組み合わせて、世界マップ910を構築および/または更新してもよい。例えば、ユーザデバイスは、遠隔処理モジュール970および遠隔データリポジトリ980と通信してもよい。ユーザデバイスは、ユーザおよびユーザの環境についての情報を入手および/または処理してもよい。遠隔処理モジュール970は、遠隔データリポジトリ980およびユーザデバイス(例えば、930a、930b、930c)と通信し、ユーザおよびユーザの環境についての情報を処理してもよい。遠隔コンピューティングシステム920は、例えば、ユーザの画像を選択的にクロッピングする、ユーザの背景を修正する、仮想オブジェクトをユーザの環境に追加する、ユーザの発話に補助情報で注釈を付ける等、ユーザデバイス(例えば、930a、930b、930c)によって入手された情報を修正することができる。遠隔コンピューティングシステム920は、処理された情報を同一または異なるユーザデバイスに送信することができる。
(テレプレゼンスセッションの実施例)
図9Bは、個別のウェアラブルシステムの2人のユーザがテレプレゼンスセッションを行っている、実施例を描写する。2人のユーザ(本実施例では、Alice912およびBob914と命名される)が、本図に示される。2人のユーザは、その個別のウェアラブルデバイス902および904を装着しており、これは、テレプレゼンスセッションにおいて他のユーザの仮想アバタを表すために、図2を参照して説明される、HMD(例えば、システム200のディスプレイデバイス220)を含むことができる。2人のユーザは、ウェアラブルデバイスを使用して、テレプレゼンスセッションを行うことができる。2人のユーザを分離する、図9Bにおける鉛直線は、AliceおよびBobが、テレプレゼンスを介して彼らが通信する間、2つの異なる場所に存在し得る(但し、その必要はない)(例えば、Aliceは、Atlantaにおけるそのオフィス内に存在し得る一方、Bobは、Bostonの屋外に存在する)ことを図示するように意図されることに留意されたい。
図9Aを参照して説明されるように、ウェアラブルデバイス902および904は、相互または他のユーザデバイスおよびコンピュータシステムと通信してもよい。例えば、Aliceのウェアラブルデバイス902は、例えば、ネットワーク990(図9Aに示される)を介して、Bobのウェアラブルデバイス904と通信してもよい。ウェアラブルデバイス902および904は、ユーザの環境および環境内の移動(例えば、個別の外向きに面した結像システム464または1つ以上の場所センサを介して)および発話(例えば、個別のオーディオセンサ232を介して)を追跡することができる。ウェアラブルデバイス902および904はまた、内向きに面した結像システム462によって入手されたデータに基づいて、ユーザの眼移動または視線を追跡することができる。いくつかの状況では、ウェアラブルデバイスはまた、ユーザが反射性表面の近傍に存在する場合、ユーザの顔の表情または他の身体移動(例えば、腕または脚部移動)を捕捉または追跡することができ、外向きに面した結像システム464は、ユーザの反射された画像を取得し、ユーザの顔の表情または他の身体移動を観察することができる。
ウェアラブルデバイスは、第1のユーザおよび環境の入手された情報を使用して、第2のユーザのウェアラブルデバイスによってレンダリングされ、第2のユーザの環境内における第1のユーザの存在の有形感覚を作成するであろう、仮想アバタを動画化することができる。例えば、ウェアラブルデバイス902および904および遠隔コンピューティングシステム920は、単独で、または組み合わせて、Bobのウェアラブルデバイス904による提示のために、Aliceの画像または移動を処理してもよい、またはAliceのウェアラブルデバイス902による提示のために、Bobの画像または移動を処理してもよい。本明細書にさらに説明されるように、アバタは、例えば、ユーザの意図、ユーザの環境またはその中にアバタがレンダリングされる環境、またはヒトの他の生物学的特徴等のコンテキスト情報に基づいて、レンダリングされることができる。
実施例は、2人のみのユーザを参照するが、本明細書に説明される技法は、2人のユーザに限定されるべきではない。ウェアラブルデバイス(または他のテレプレゼンスデバイス)を使用する、複数のユーザ(例えば、2人、3人、4人、5人、6人、またはそれよりも多く)が、テレプレゼンスセッションに参加してもよい。特定のユーザのウェアラブルデバイスは、テレプレゼンスセッションの間、その特定のユーザに、他のユーザのアバタを提示することができる。さらに、本図における実施例は、環境内に立っているユーザを示すが、ユーザは、立っているように要求されない。ユーザのいずれかは、テレプレゼンスセッションの間、立っていてもよい、座っていてもよい、膝をついていてもよい、横になっていてもよい、歩いていてもよい、または走っていてもよい、または任意の位置または移動状態にあってもよい。ユーザはまた、本明細書の実施例に説明される以外の物理的環境内に存在してもよい。ユーザは、テレプレゼンスセッションを行っている間、別個の環境内に存在してもよい、または同一環境内に存在してもよい。全てのユーザが、テレプレゼンスセッションにおいて、その個別のHMDを装着することが要求されるわけではない。例えば、Aliceは、ウェブカメラおよびコンピュータ画面等の他の画像入手およびディスプレイデバイスを使用してもよい一方、Bobは、ウェアラブルデバイス904を装着する。
(仮想アバタの実施例)
図10は、ウェアラブルシステムのユーザによって知覚されるようなアバタの実施例を図示する。図10に示される例示的アバタ1000は、部屋内の物理的植物の背後に立っている、Alice(図9Bに示される)のアバタであることができる。アバタは、例えば、サイズ、外観(例えば、皮膚色、顔色、髪型、衣類、顔特徴(例えば、しわ、ほくろ、しみ、にきび、えくぼ等))、位置、配向、移動、姿勢、表現等の種々の特性を含むことができる。これらの特性は、アバタと関連付けられたユーザに基づいてもよい(例えば、Aliceのアバタ1000は、実際の人物Aliceの一部または全部の特性を有してもよい)。本明細書にさらに説明されるように、アバタ1000は、コンテキスト情報に基づいて、動画化されることができ、これは、アバタ1000の特性のうちの1つ以上のものに対する調節を含むことができる。概して、人物(例えば、Alice)の物理的外観を表すように本明細書に説明されるが、これは、限定ではなく、例証のためのものである。Aliceのアバタは、Alice以外の別の実際または架空のヒト、擬人化されたオブジェクト、創造物、または任意の他の実際または架空の表現を表し得る。さらに、図10における植物は、物理的である必要はなく、ウェアラブルシステムによってユーザに提示される植物の仮想表現であり得る。また、図10に示されるものの付加的または異なる仮想コンテンツも、ユーザに提示され得る。
(アバタを動画化するための例示的制御システム)
図6Bを参照して説明されるように、アバタは、リギング技法を使用して、ウェアラブルシステムによって、動画化されることができる。リギングの目標は、単純なヒトによって理解可能な制御に基づいて、アバタの魅力的で高忠実性の変形を提供することである。概して、最も人を引き付ける変形は、少なくとも部分的に、実世界サンプル(例えば、身体移動、関節運動、顔のゆがみ、表現等を実施する、実際のヒトの写真測量走査)または芸術指向的展開(実世界サンプリングに基づいてもよい)に基づく。複合現実環境におけるアバタのリアルタイム制御は、図6Bを参照して説明される、アバタ処理およびレンダリングシステム690の実施形態によって提供されることができる。
リギングは、アバタの身体の変形(例えば、顔のゆがみ)についての情報をメッシュ上に転写するための技法を含む。メッシュは、3D点(例えば、頂点)の集合であって、これらの頂点を共有する、ポリゴンのセットを伴うことができる。図10は、アバタ1000の眼の周囲のメッシュ1010の実施例を示す。メッシュを動画化することは、頂点の一部または全部を3D空間内の新しい位置に移動させることによって、メッシュを変形させることを含む。これらの位置は、リグ(下記に説明される)の下層骨の位置または配向によって、または顔の表情等の動画のための時間または他の状態情報によってパラメータ化されたユーザ制御を通して、影響されることができる。メッシュのこれらの変形のための制御システムは、多くの場合、リグと称される。図6Bの例示的アバタ処理およびレンダリングシステム690は、3Dモデル処理システム680を含み、これは、リグを実装することができる。
独立して、各頂点を移動させ、所望の変形を達成することは、非常に時間がかかり、労力集約的であり得るため、リグは、典型的には、メッシュを制御することをより容易にする、コンピュータ化されたコマンドとして、一般的な望ましい変形を提供する映画等の最高仕様視覚効果生産に関しては、リグが、大量の数学的算出を実施し、高度に現実的な動画効果を達成するための十分な生産時間が存在し得る。しかし、リアルタイムアプリケーション(複合現実において等)に関しては、変形の速さは、非常に有利であり得、異なるリギング技法が、使用されてもよい。リグは、多くの場合、骨格系および/またはブレンドシェイプに依拠する、変形を利用する。
(例示的骨格系)
骨格系は、階層内の関節の集合としての変形を表す。関節(骨とも呼ばれる)は、主に、平行移動、回転、およびスケールの変化を含む、空間内の変換を表す。関節の半径および長さも、表され得る。骨格系は、関節間の親-子関係を表す、階層であって、例えば、肘関節は、肩の子であって、手首は、肘関節の子である。子関節は、子関節が親の変換を継承するように、その親の関節に対して変換することができる。例えば、肩を移動させることは、指の先端までの全ての関節を移動させる結果をもたらす。その名称にもかかわらず、骨格は、実世界の骨格を表す必要はなく、メッシュの変形を制御するためにリグ内で使用される階層を説明することができる。例えば、髪は、系統内の一連の関節として表されることができ、アバタの顔のゆがみに起因する皮膚運動(例えば、笑顔になる、眉を顰める、笑う、発話する、瞬目等のアバタの表現を表す)は、顔リグによって制御される一連の顔関節によって表されることができ、筋肉変形は、関節によってモデル化されることができ、衣類の運動は、関節のグリッドによって表されることができる。
骨格系は、アバタの生物学的骨格に類似し得る、低レベル(いくつかの状況では、低次とも称される)コア骨格を含むことができる。本コア骨格は、解剖学的に正しい骨の実際のセットに正確にマッピングされ得ないが、少なくとも類似配向および場所における骨のサブセットを有することによって、骨の実際のセットに類似することができる。例えば、鎖骨は、接地面と略平行であって、大まかには、頸部と肩との間に位置し得、正確に同一の長さまたは位置ではなくてもよい。筋肉、衣類、髪等を表す、より高次の関節構造は、低レベル骨格の上に層化されることができる。リグは、コア骨格のみを動画化してもよく、より高次の関節構造は、例えば、スキニング技法(例えば、線形ブレンドスキニング(LBS)等の頂点加重方法)を使用して、コア骨格の動画に基づいて、リギング論理によって、アルゴリズム的に駆動されることができる。リアルタイムリギングシステム(アバタ処理およびレンダリングシステム690等)は、3Dモデル処理システム680による効率的リアルタイム処理を提供するために、所与の頂点に割り当てられ得る関節の数(例えば、8つまたはより少ない)に関して限界を課してもよい。
(ブレンドシェイプ)
ブレンドシェイプは、一部または全部の頂点が、加重に基づいて、所望の量だけ3D空間内で移動される、メッシュの変形を含む。各頂点は、具体的ブレンドシェイプ標的のためのその独自のカスタム運動を有し得、頂点を同時に移動させることは、所望の形状を生成するであろう。ブレンドシェイプの程度は、ブレンドシェイプ加重を使用することによって、適用されることができる。リグは、組み合わせて、ブレンドシェイプを適用し、所望の変形を達成してもよい。例えば、笑顔を生産するために、リグは、口角を引っ張り、上唇を上昇させ、下唇を低下させ、眼、眉、鼻、およびえくぼを移動させるため、ブレンドシェイプを適用してもよい。
(例示的リギング技法)
リグは、多くの場合、層内に構築され、より下層のより単純である層は、より高次の層を駆動し、これは、より現実的なメッシュ変形を生産する。リグは、リギング制御論理によって駆動される、骨格系およびブレンドシェイプの両方を実装することができる。制御論理は、関節間の制約(例えば、具体的移動または親-子関節制約を提供するための照準、配向、および位置制約)、動態(例えば、髪および衣類のため)、姿勢ベースの変形(骨格の姿勢が、定義された姿勢からの距離に基づいて、変形を駆動するために使用される、PSD)、所望のより高いレベルの出力(例えば、顔の表情)が(骨格系またはブレンドシェイプの)より低いレベルの入力のセットから学習される、機械学習技法(例えば、図7を参照して説明されるもの)等を含むことができる。いくつかの機械学習技法は、放射基底関数(RBF)を利用することができる。
いくつかの実施形態では、3Dモデル処理システム680は、アバタを複合現実環境内にリアルタイムで動画化し、(MRシステムのユーザと)双方向にさせ、適切なコンテキストアバタ挙動(例えば、意図ベースの挙動)をユーザの環境内に提供する。システム680は、アバタのより高いレベルの変形(例えば、ブレンドシェイプ、補正)を制御し、アバタの所望の移動および表現を生産する、表現、制約、変換(例えば、平行移動、回転、スケーリング、剪断等の3D空間内の頂点の移動)等のシステムをさらに駆動する、コア骨格階層を備える、層化アバタ制御システムを駆動してもよい。
(仮想アバタを環境内に現実的かつ動的にレンダリングすることの例示的問題)
図11A-11Dは、仮想アバタが、不自然な外観を有する、または非現実的相互作用を生じさせ得る、種々の環境内のアバタの例示的場面を図示する。アバタ1100は、Bobのアバタであってもよい。図9Bを参照して説明されるように、アバタ1100は、例えば、意図、姿勢、移動、表現、またはアクションを含む、Bobの特性に基づいて、動画化されてもよい。
図11Aは、3人のユーザ1112、1114、および1116が、テレプレゼンスセッションの間、アバタ1100と相互作用する、例示的場面1102を図示する。しかしながら、示されるように、本実施例では、Bobのアバタ1100は、3人のユーザ1112、1114、および1116と比較して、比較的に小さく、これは、ヒトが、多くの場合、アイコンタクトおよび近似眼の高さを相互に維持しながら、相互に通信することが最も快適であると感じるため、ぎこちない相互作用につながり得る。したがって、アバタと3人のユーザとの間の通視線における差異に起因して、3人のユーザは、アバタ1100を見る、または会話におけるソーシャル動態を維持(または改変)するために、自らを不快な位置において姿勢をとる必要があり得る。例えば、ユーザ1112は、アバタの眼を見るために、膝をついており、ユーザ1114は、アバタを見下ろしており、ユーザ1116は、その身体を前方に屈曲させ、アバタ1100との会話に従事している。不適切に定寸されたアバタによって生じる、ユーザの物理的疲労を低減させるために、有利には、いくつかの実装では、ウェアラブルシステムは、例えば、他のユーザの眼の高さレベル等のコンテキスト情報に基づいて、アバタを自動的にスケーリングし、アバタのサイズを増加または減少させることができる。そのような調節は、アバタと他者との間の直接アイコンタクトを増加させるかまたは最大限にする様式において実装され、したがって、アバタ-ヒト通信を促進することができる。例えば、アバタは、ウェアラブルデバイスが、アバタの頭部を視認者の眼レベルにレンダリングし得、したがって、ユーザが、アバタと相互作用する間、物理的疲労を体験する必要がなくなり得るように、スケーリングされることができる。コンテキスト情報に基づいてアバタを動的にスケーリングする詳細な説明および実施例はさらに、図12A-18Bを参照して説明される。
図6Bおよび10を参照して説明されるように、ユーザのアバタは、ユーザの特性に基づいて、動画化されることができる。しかしながら、アバタの特性の中へのユーザの特性の1対1のマッピングは、不自然なユーザ相互作用をもたらす、またはユーザの誤ったメッセージまたは意図を視認者に伝達し得るため、問題となり得る。図11B-11Dは、1対1のマッピング(ユーザとアバタとの間の動画化)が問題をもたらし得る、いくつかの例示的シナリオを図示する。
図11Bは、テレプレゼンスセッションの間、BobがCharlieに話しかけている、場面を図示する。本図における場面は、2つの環境1120aおよび1120bを含む。環境1120aは、Bobが常駐する、場所である。環境1120bは、Charlie1118が常駐し、物理的テーブル1122を含み、Charlieがテーブル1122の隣の椅子に着座している、場所である。Charlieは、例えば、ディスプレイ220を介して、Bobのアバタ1100を知覚することができる。環境1120a内では、Bobは、西に向いている(座標1128によって示されるように)。Bobのアバタ1100を動画化するために、図11Bでは、Bobの特性が、Bobのアバタ1100に1対1であるようにマッピングされる。しかしながら、本マッピングは、Charlieの環境を考慮せず、アバタ1100との不自然または違和感のあるユーザ相互作用体験もたらすため、問題となる。例えば、Bobのアバタは、Charlieが椅子に着座しているため、Charlieより背が高く、Charlieは、Bobのアバタ1100との通信を維持するために、その頸部を歪ませる必要があり得る。別の実施例として、Bobのアバタ1100は、Bobが西に向いているため、西に向いている。しかしながら、Charlieは、Bobのアバタ1100の東に存在する。したがって、Charlieは、Bobのアバタの背面を知覚し、Bobのアバタ1100によって反映されるようなBobの顔の表情を観察することができない。Charlieに対する本Bobのアバタ1100の配向はまた、BobがCharlieとフレンドリーに会話することを意図している場合でも、不正確なソーシャルメッセージ(例えば、BobがCharlieと関わることを所望していない、またはBobがCharlieに怒っている)を伝達し得る。
図11Cは、Bobのアバタ1100がCharlieの環境内の物理的オブジェクトを考慮せずにレンダリングされる、場面を図示する。本場面は、2つの環境1130aおよび1130bを図示する。Bobは、環境1130a内に位置し、Charlieは、環境1130b内に存在する。図示されるように、Bobは、環境1130a内の椅子1124に着座している。本実施例に図示される、Bobの姿勢とBobのアバタの姿勢の1対1のマッピングに起因して、Bobのアバタ1100もまた、Charlieの環境1130b内において着座姿勢でレンダリングされる。しかしながら、Charlieの環境には、椅子が存在しない。その結果、Bobのアバタ1100は、空中に着座しているようにレンダリングされ、これは、Bobのアバタ1100の不自然な外観をもたらし得る。
図11Dは、1対1のマッピングが仮想アバタの非現実的移動を生じさせる、例示的場面を図示する。図11Dにおける場面は、2つの環境1140aおよび1140bを図示する。Bobは、その環境1140a内において東に向かって移動している。Bobの移動1142をBobのアバタ1100がレンダリングされる環境1140bにマッピングするために、Bobのアバタ1100もまた、東に向かって移動する(例えば、位置1142aから位置1142bに)。しかしながら、環境1140bは、テーブル1126を有する。Bobの移動1142をBobのアバタ1100の移動に直接マッピングすることによって、Bobのアバタ1100は、テーブルの中に直線に移動し、テーブル1126に捕らえられるように現れ、これは、Bobのアバタ1100の不自然かつ非現実的移動および外観をもたらす。
有利には、いくつかの実装では、ウェアラブルシステム200は、アバタが表示される環境に関連するコンテキスト情報に基づいて、アバタをレンダリングする、またはユーザの意図を伝達するように構成されることができ(直接の1対1のマッピングではなく)、したがって、アバタによる不自然なまたは非現実的外観または相互作用を回避し得る。例えば、ウェアラブルシステム200は、コンテキスト情報およびBobのアクションを分析し、Bobのアクションの意図を決定することができる。ウェアラブルシステム200は、Bobのアクションおよびその中にBobのアバタがレンダリングされるべき環境についてのコンテキスト情報に照らして、Bobのアバタの特性を調節し、Bobの意図を反映させることができる。
例えば、図11Bを参照すると、西向きに向くようにアバタ1100をレンダリングするのではなく、ウェアラブルシステム200は、Bobが、通常、対面で生じる、フレンドリーな様式において、Charlieと会話することを意図するため、Charlie1118に向くようにアバタを方向転換させることができる。しかしながら、Bobが、Charlieに怒っている(例えば、Bobのシステム上のマイクロホンによって検出されるようなBobの発話のトーン、内容、音量、またはBobの顔の表情によって決定されるように)場合、ウェアラブルシステム200は、BobがCharlieから外方を向くように、Bobの配向を保つことができる。
別の実施例として、Bobのアバタ1100を空中に着座しているようにレンダリングする(図11Cに示されるように)のではなく、ウェアラブルシステム200は、Charlieの環境内に着座するために好適な水平表面を伴うオブジェクト(例えば、ベッドまたはソファ)を自動的に識別することができ、識別された表面上に(空中ではなく)着座しているようにBobのアバタ1100をレンダリングすることができる。Charlieの環境1130b内に、Bobのアバタ1100が着座し得る場所が存在しない場合(例えば、全ての椅子が、ヒトまたは他のアバタのいずれかによって占有されている、または着座可能表面が存在しない)、ウェアラブルシステムは、代わりに、Bobのアバタを立っているようにレンダリングする、または仮想アバタが着座するための仮想椅子をレンダリングしてもよい。
さらに別の実施例として、図11Dを参照すると、テーブルの中に、またはそれを通して歩行するようにBobのアバタをレンダリングするのではなく、ウェアラブルシステムは、環境1140b内のBobのアバタのルート上の障害物として、テーブル1126の存在を検出することができる(例えば、環境1140bの世界マップ910に基づいて、または環境1140b内の視認者のウェアラブルデバイスの外向きに面した結像システム464によって入手された画像に基づいて)。ウェアラブルシステム200は、故に、テーブル1126を迂回する、またはテーブルに先立って、停止するように、アバタ1100のルートを変更することができる。意図ベースのレンダリングに関連するさらなる詳細は、図19A-22を参照して説明される。
(コンテキスト情報に基づいて仮想アバタをスケーリングする実施例)
図11Aを参照して説明されるように、不適切にスケーリングされたアバタは、アバタの視認者にとって、物理的疲労をもたらし得、アバタとユーザとの間の不適切なソーシャル相互作用の尤度を増加させ得る。例えば、アバタを不適切にスケーリングすることは、ユーザに対して不快感または痛み(例えば、頸部痛)を引き起こし得る(例えば、ユーザが、アバタを見上げる、または見下ろす必要があるため)。そのような不適切なスケーリングはまた、ユーザにとって、ぎこちないソーシャル動態を提供し得る。実施例として、不適切に定寸されたアバタ(例えば、視認者より背が低いアバタ)は、視認者の身体の不適切なまたは不適当な領域を見ているようにレンダリングされ得る。別の実施例として、ユーザとアバタとの間の異なる通視線または眼レベルは、ソーシャル劣等感または優越感を不適切に含意し得る。
例えば、フレンドリーな会話では、ユーザの眼は、典型的には、他のユーザの顔のソーシャルトライアングルと呼ばれる領域に向かって指向される。ソーシャルトライアングルは、ユーザの眼とユーザの口の頂点との間の線上の第1の辺を用いて形成される。ソーシャルトライアングル内のアイコンタクトは、フレンドリーかつ中立であると見なされる一方、ソーシャルトライアングル外に指向される眼視線は、力の不平衡(例えば、他方の人物の前額に向かって、ソーシャルトライアングルの上方に指向される眼視線)、怒り、または会話が深刻であることを伝達し得る。したがって、視認者より背が高くレンダリングされたアバタは、視認者のソーシャルトライアングルの上方の領域を見ていると見なされる傾向にあり得、これは、視認者にとって、アバタが視認者より優れているという心理学的効果をもたらし得る。したがって、アバタの正しくない定寸は、会話の実際のヒト参加者間に意図されていない、ヒトとアバタとの間のぎこちないまたは不快な敵対心につながり得る。
いくつかのウェアラブルデバイスでは、ユーザは、アバタのサイズが快適な高さであるように、アバタを手動でスケーリングすることができる。しかしながら、そのような手動制御は、完了するまでにより多くの時間がかかり、ユーザが精緻化された調節をアバタに行うことを要求し得、これは、ユーザの筋肉疲労を生じさせ、ユーザからより専門的制御を要求し得る。他のウェアラブルデバイスは、1:1スケールをアバタとユーザとの間に維持することを模索する、スケーリング方法を使用し得る(例えば、アバタは、ユーザと同一高さに自動的にスケーリングされる)。しかしながら、本技法は、アバタが、その上にユーザが座っているかまたは立っている表面より高い表面上に立っている(例えば、アバタがユーザの頭部を越えて見る)場合、不適切な通視線を生産し得る。
有利には、いくつかの実施形態では、ウェアラブルシステム200は、環境内のアバタのレンダリング位置および環境内のユーザの位置または眼の高さに関するコンテキスト情報に基づいて、仮想アバタを自動的にスケーリングすることができる。ウェアラブルシステム200は、例えば、単独で、または組み合わせて、アバタのレンダリング場所、ユーザの位置、ユーザの高さ、ユーザとアバタとの間の相対的位置、アバタがその上にレンダリングされるであろう表面の高さ、ユーザがその上に立っているかまたは座っている表面の高さ等のコンテキスト要因に基づいて、仮想アバタのサイズを計算することができる。ウェアラブルシステム200は、アバタが、少なくとも部分的に、そのようなコンテキスト要因に基づいて、適切な高さを伴ってレンダリングされるように、アバタの初期レンダリング(スポーンと呼ばれる)を行うことができる。ウェアラブルシステム200はまた、例えば、アバタまたはユーザが環境内で動き回るにつれて等、コンテキスト情報の変化に応答して、仮想アバタのサイズを動的にスケーリングすることができる。
例えば、アバタをスポーンすることに先立って、またはその時点で、ウェアラブルシステムは、ユーザの頭部の高さ(したがって、眼が、典型的には、頭部の上部と底部との間のほぼ途中または頭部の上部の約4~6インチ下方にあるため、眼の高さ)を決定し、アバタのベース表面(例えば、アバタがその上にスポーンされるであろう表面)からユーザの眼の高さまでの距離を算出することができる。本距離は、その結果として生じる頭部および通視線がユーザと同一高さであるように、アバタをスケーリングするために使用されることができる。ウェアラブルシステムは、環境表面(例えば、ユーザがその上に存在する表面、またはアバタがその上にスポーンされるであろう表面)を識別し、これらの表面またはユーザとアバタ表面との間の相対的高低差に基づいて、アバタ高さを調節することができる。例えば、ウェアラブルシステムは、床を走査し、床平面に対する頭部の高さを測定することができる。ウェアラブルシステムは、ユーザの頭部姿勢を決定し(例えば、IMUからのデータを介して)、ユーザの頭部姿勢または環境および頭部姿勢の両方によって共有される共通座標系に対する環境表面を算出することができる。本情報に基づいて、ウェアラブルシステムは、アバタのサイズを計算し、ディスプレイ220に、アバタを環境上に重畳されるように表示させるように命令することができる。
ある実装では、ユーザが、環境内で動き回る(またはアバタが動き回る)につれて、ウェアラブルシステムは、ユーザの頭部姿勢および環境表面を持続的に追跡し、アバタが元々スポーンされたときと類似方式において、これらのコンテキスト要因に基づいて、アバタのサイズを動的に調節することができる。いくつかの実施形態では、(スポーン時またはアバタが移動するにつれてリアルタイムでのいずれかにおいて)アバタを自動的にスケーリングするためのこれらの技法は、有利には、アバタをユーザのローカル環境内に設置するとき、頸部疲労を最小限にし、ユーザ-アバタ通信を促進し、ユーザが行う必要がある手動調節の量を最小限にしながら、直接アイコンタクトが行われることを可能にし、それによって、両参加者(例えば、アバタおよびその視認者)が、目と目を合わせて通信し、快適な双方向相互作用をもたらすことを可能にすることができる。
いくつかの実装では、ウェアラブルシステム200は、ユーザがアバタの自動の動的再スケーリングをオフにする(一時的または恒久的に)ことを可能にすることができる。例えば、ユーザが、テレプレゼンスセッションの間、頻繁に、起立および着座する場合、ユーザは、アバタが対応して再スケーリングされないことを所望し得、これは、ヒトが、会話の間、サイズを動的に変更しないため、不快な相互作用につながり得るためである。ウェアラブルシステムは、アバタスケーリングオプションの異なるモード間で切り替えるように構成されることができる。例えば、ウェアラブルシステムは、3つのスケーリングオプション、すなわち、(1)コンテキスト情報に基づく自動調節、(2)手動制御、および(3)1:1スケーリング(アバタが視認者またはそのヒト対応者と同一サイズにレンダリングされる)を提供してもよい。ウェアラブルシステムは、コンテキスト情報に基づいて自動的に調節可能であるように、デフォルト設定することができる。ユーザは、ユーザ入力(例えば、ユーザ入力デバイス466、姿勢、または手のジェスチャ等を介して等)に基づいて、本デフォルトオプションを他のオプションに切り替えることができる。他の実装では、ウェアラブルシステムは、アバタが、サイズを急激に変化させるのではなく、短時間周期(例えば、数秒~数十秒)にわたってサイズを平滑に変化させるようにレンダリングされたように、サイズ変化間で平滑に補間してもよい。
(スケーリングされたアバタをスポーンする実施例)
ウェアラブルシステムは、コンテキスト情報に基づいて、アバタを自動的にスケーリングし、アバタと視認者との間の目と目を合わせた通信を可能にすることができる。アバタの高さの計算は、視認者の環境の中へのアバタの初期スポーンに応じて実施されることができる。ウェアラブルシステムは、スポーン地点におけるアバタのレンダリング場所を識別することができる。アバタのレンダリング場所は、例えば、接地面、テーブル、椅子の着座表面等の水平支持プラットフォーム(または表面)であることができる。いくつかの状況では、支持プラットフォームは、水平ではなく、傾角または鉛直であってもよい(ユーザが、例えば、横たわっている場合)。
ウェアラブルシステムは、ユーザの現在の頭部位置(ユーザが、立っている、または座っているかどうかにかかわらず)およびアバタのためのスポーン地点における水平支持プラットフォームの場所に基づいて、アバタの高さを計算することができる。ウェアラブルシステムは、アバタのサイズを調節するためのスケール係数を算出するために、本プラットフォームの上方の眼の推定される高さ(プラットフォームに対して垂直および鉛直の距離であり得る)を算出することができる。プラットフォームの上方の眼の推定される高さは、眼とプラットフォームとの間の距離に基づくことができる。いくつかの実装では、ウェアラブルシステムは、眼レベルを算出することができ、これは、眼が真っ直ぐ見ているレベルの1D、2D、3D、または他の数学的表現であってもよい。アバタの推定される高さは、眼レベルとプラットフォームのレベルとの間の差異に基づいて、計算されることができる。
図12Aおよび12Bは、アバタが視認者と同一表面上にスポーンされる、アバタをスケーリングする2つの場面を図示する。図12Aにおける場面1200aは、不適切にスケーリングされたアバタを示す一方、図12Bにおける場面1200bは、視認者とほぼ同一の眼の高さを維持する、スケーリングされたアバタを示す。これらの2つの図では、例示的仮想アバタ1000は、Aliceのアバタであることができる一方、ユーザ914は、図9Bにおいて識別されるようなBobであってもよい。AliceおよびBobは両方とも、図2を参照して説明されるように、ウェアラブルデバイスを装着していてもよい。これらの実施例では、Bobは、接地面(接地面平面1214によって表されるように)上に立っている一方、Aliceのアバタ912もまた、本実施例では、接地面上にスポーンされるであろう。
図12Aは、Aliceのアバタ1000が、視認者(Bob)がAliceのアバタ1000と相互作用するとき、見下ろす必要があるほど小さい、実施例を図示する。Aliceのアバタ100およびBobの高さは、接地面平面1214の一部であり得る、共通接地面位置線1210から測定されることができる。接地面位置線1210は、接地面平面1214に沿って、ユーザ914の位置および仮想アバタ1000の位置を接続し得る。
図12Aはまた、Bob914の眼レベル(ユーザの眼線1206によって図示されるように)と、Bobの眼レベル1206の下方にある、アバタの眼レベル(アバタ眼線1228によって図示されるように)とを示す。アバタ眼線1228およびユーザの眼線1206は、接地面位置線1210と平行であって、それぞれ、仮想アバタ1000およびユーザ914の眼と交差するように示されるが、通視線を図示する、他のタイプの眼線または表現もまた、種々の実装では、可能性として考えられる。ユーザの眼線1206およびアバタ眼線1228はそれぞれ、対応する眼線を包含し、接地面平面1214と平行である、個別の平面(図示せず)に対応してもよい。ユーザの眼線1206およびアバタ眼線1228の一方または両方は、接地面平面1214と平行であってもよい。
アバタのサイズを決定するために、ウェアラブルシステム(例えば、アバタ処理およびレンダリングシステム690内のアバタ自動スケーラ692等)は、視認者914の高さ1202およびアバタ1000の高さ1224を計算することができる。アバタの高さおよび視認者の高さは、アバタおよびユーザの個別の眼線から、その上にアバタがレンダリングされ、その上に視認者が立っている、接地面表面1214に対して鉛直に測定されることができる。図12Aに図示されるように、アバタの眼の高さ1224は、アバタ眼線1228と接地面位置線1210との間で決定されてもよい。同様に、ユーザの眼の高さ1202は、ユーザの眼線1206と接地面位置線1210との間で決定されてもよい。ユーザの眼の高さ1202は、図12Aに図示されるように、ユーザ914の眼と交差するが、しかしながら、他の実装では、ユーザ(またはアバタ)の高さは、ユーザ(またはアバタ)の頭部の上部またはある他の便宜的基準位置を基準とされてもよい。
ある実装では、本システムは、ユーザ914と仮想アバタ1000のレンダリング位置との間の距離1242を決定するように構成されてもよい。距離1242は、仮想アバタ1000をユーザ914のためのより快適な位置または見掛け深度に表示するために使用されてもよい。例えば、ウェアラブルシステムは、視認者がアバタのより良好なビューを有し得るように、アバタが視認者から比較的に離れている場合、アバタのサイズを増加させてもよい。
図12Aに示される実施例では、アバタ1000は、アバタの眼線1228がユーザの眼線1206より低いことから、ユーザの眼線1206がアバタの眼線1228と共線形に整合されないため、適切に定寸されていない。これは、アバタ1000が、小さすぎ、Aliceのアバタと相互作用するために、Bobにその頭部を下向きに傾斜させることを示唆する。これは、アバタが視認者より背が低いことを示すが、アバタサイズはまた、アバタが視認者より背が高い場合も不適切であり得、これは、Aliceのアバタと相互作用するために、Bobにその頭部を上向きに傾斜させるであろう。
図12Bは、その個別の眼の高さが匹敵するという意味において、そのサイズがBobに対して適切にレンダリングされている、仮想アバタ1000を示す。本実施例では、仮想アバタ1000は、視認者914の眼の高さに基づいてスケーリングされる。仮想アバタ1000をスケーリングすることは、アバタ眼の高さ1224およびユーザの眼の高さ1202を合致させることを含んでもよい。視認者の高さおよびアバタの標的高さを計算する方法に関するアルゴリズムに関連する詳細は、図16A-18Bを参照して説明される。
いくつかの状況では、ユーザ914またはアバタ1000(または両方)は、接地面平面1214と異なる表面上に存在してもよい(例えば、ユーザ914またはアバタ1000は、椅子に着座している)。図13Aおよび13Bは、アバタが視認者と同一表面上にレンダリングされない、コンテキスト情報に基づいてアバタを自動的にスケーリングする実施例を図示する。
場面1300aは、Bobがテーブル1324の正面の椅子1322に着座していることを示す。Bobは、テレプレゼンスセッションをAliceと開始することができ、これは、Aliceのアバタ1000をテーブル1324上にレンダリングさせるであろう。Aliceのアバタ1000をBobが相互作用するために快適な高さにスポーンするために、ウェアラブルシステムは、ユーザの眼レベルと、Aliceのアバタ1000がその上にレンダリングされるであろう、プラットフォームとの間の高低差を計算することができる。本実施例では、高低差1302は、Bobの眼レベル1306からテーブル1324の表面まで測定される。本高低差1302は、次いで、アバタ1000をスケーリングするために適用されることができる。本実施例では、テーブル1324は、高さ1332(接地面から測定されるように)を有するが、本高さ1332は、アバタが、接地面上ではなく、テーブルの表面上にレンダリングされるであろうため、アバタのサイズを計算するために要求されない。
図13Bにおける場面1300bは、Aliceのアバタ1000が、スケーリングされ、テーブル1324の上部にレンダリングされる、場面を示す。本実施例では、Aliceのアバタ1000のスケールは、高さ1302(ユーザの眼レベルからテーブルの上部まで測定される)に基づく。例えば、Aliceのアバタの眼の高さ(アバタ1000の眼からテーブルの上部まで測定されるように)は、高さ1302と等しくあることができる。
(アバタを動的にサイズ変更する実施例)
いくつかの状況では、アバタまたはアバタの視認者は、環境内を動き回ることができ、一方または両方は、その上にユーザが位置付けられ、その上にアバタがレンダリングされる、水平平面間の相対的高低差が存在する位置に移動し得る。ウェアラブルシステム200は、視認者またはアバタが移動するにつれて更新された相対的高さ情報に基づいて、アバタを動的にサイズ変更することができる。例えば、Aliceのアバタが移動する(例えば、Aliceが移動するため)か、またはBobが移動するかのいずれかにつれて、AliceのアバタとBobとの間の高低差が、変更され得る。図14および15は、アバタを動的にスケーリングし、水平アイコンタクトを維持する実施例を図示する。
図14は、ユーザがアバタの接地面平面の上方に存在する、ユーザの移動に応答してアバタを動的にスケーリングする実施例を図示する。Bobは、最初に、図12Bに示される位置に存在し、Aliceのアバタ1000との水平アイコンタクトに従事し得る。図14に示される場面1400では、Bobは、ここでは、アバタの接地面平面1214の上方にある、オブジェクト(例えば、腰掛1438)の上に立っている。Aliceのアバタ1000が、動的に再スケーリングされていない場合、Bobは、Bobが腰掛1438の高さ1422によって上昇されているため、アバタ1000を見下ろすことになるであろう。ウェアラブルシステム200は、破線矢印1434によって表される値までアバタの高さを増加させる(図12Bに示される高さ1202と比較して)ことによって、Aliceのアバタの高さを調節し、Bobの本付加的高さ1422を考慮することができる。
図15は、図14と比較したアバタのさらなる移動(例えば、Aliceの移動)に応答してアバタを動的にスケーリングするさらなる実施例を図示する。場面1500に示されるように、Aliceは、接地面からプラットフォーム1548(高さ1558を有する)まで上方に移動した一方、Bobは、依然として、図14に説明されるように、プラットフォーム1438上に立っている。AliceのアバタおよびBobのための接地面平面は、ここでは、ともにより近づいているため、Aliceのアバタの高さ1524は、BobおよびAliceのアバタがアイコンタクトを維持するように、図14に示されるアバタの高さ1434と比較して低減されている(プラットフォーム1548の高さ1558によって)。
図17Aおよび17Bを参照して下記にさらに説明されるように、ウェアラブルシステム200は、プラットフォーム1548を、アバタがその上に立っているようにレンダリングされることになる、新しい表面として検出することができる。したがって、ウェアラブルシステムは、プラットフォーム1548に対する(接地面1214ではなく)アバタ1000の眼の高さおよびプラットフォーム1438に対する(接地面平面1214ではなく)Bobの眼の高さを計算することができる。ウェアラブルシステムは、次いで、Bobの高さおよびその上にそれぞれが立っている水平平面間の相対的差異に基づいて、アバタの高さを計算することができる。
式(1)は、図12A-15を参照して図示される概念に基づいてアバタの標的高さを計算するための例示的式を説明する。
式中、AvatarHは、ユーザのウェアラブルシステムによってレンダリングされるべきアバタの標的高さを表し、UserHは、ユーザの支持平面から測定されるようなユーザの高さを表し、UserSupportPlaneHは、その上にユーザが位置する支持平面の高さを表し、AvatarSupportPlaneHは、その上にアバタがレンダリングされることになる平面の高さを表す。本式を図15における実施例に適用すると、Aliceのアバタの標的高さ1524=Bobの高さ1202+Bobのプラットフォームの高さ1422-Aliceのアバタのプラットフォームの高さ1558となる。数式
は、本数式が、ユーザの高さを修正し、アバタのレンダリングされた高さを決定するため、高さ軟化子と称され得る。
式(2)は、アバタの標的高さを計算するための別の例示的式を説明する。
式中、AvatarHは、アバタの標的高さを表し、UserToAvatarSupportPlaneHは、その上にアバタが立っている、支持表面から測定されるようなユーザの高さを表す。ウェアラブルシステムは、レイキャスティングおよび図16A-17Bに説明される技法を使用して、支持表面を検出することができ、ユーザの眼の高さとアバタの支持表面との間の角度およびユーザからアバタ支持表面までの距離を測定することによって、三角法技法を使用して、式(2)の右辺を決定することができる。
図14および15における実施例は、アバタの高さを増加させることを図示するが、類似技法はまた、アバタの高さを減少させることにも適用されることができる。例えば、高さ軟化子は、アバタ1000が、その上にユーザ914が立っている表面より高い、表面に立っている場合、負であってもよい。さらに、類似技法はまた、ユーザまたはアバタが着座等の他の姿勢にあるときにも、適用されることができる。例えば、ユーザは、立っている一方、アバタは、椅子まで歩いて行き、椅子に着座してもよい。ウェアラブルシステムは、水平アイコンタクトが維持され得るように、アバタのサイズを自動的に増加させることができる。別の実施例として、ユーザは、椅子を見つけ、着座し得る一方、アバタは、立っている。ウェアラブルシステムは、ユーザの眼の高さが減少した(着座に起因して)ことを検出することができ、ウェアラブルシステムは、アバタのサイズを自動的に低減させ、アバタをユーザの眼に高さに持って来ることができる。
(アバタを自動的にスケーリングするためのコンテキスト要因を分析する実施例)
本明細書に説明されるように、ウェアラブルシステム200は、仮想アバタをスポーンするため、または仮想アバタのサイズをリアルタイムで動的に調節するために、コンテキスト要因を自動的に識別し、仮想アバタのための標的高さを計算するように構成されることができる。
図16A-1-16Bは、コンテキスト要因に基づいて、アバタを自動的にスケーリングするための例示的データフロー図を図示する。いくつかの例示的コンテキスト要因は、ユーザの頭部の位置、アバタのレンダリング場所、ユーザの身体位置(例えば、ユーザの足の位置)、ユーザおよびアバタがその上に位置付けられる表面の高さ(またはそれらの間の相対的高低差)等を含むことができる。例示的データフロー図1600は、本明細書に説明されるウェアラブルシステム200によって、例えば、図6Bのアバタ処理およびレンダリングシステム690のアバタ自動スケーラ692によって、実装されることができる。
ウェアラブルシステムは、図2および3を参照して説明されるもの等の1つ以上のデバイスセンサ1674を含むことができる。デバイスセンサ1674から入手されたデータは、ユーザの環境を決定し(例えば、ユーザの環境内のオブジェクトを識別する、またはユーザの環境内の表面を検出するため等)、環境に対するユーザの位置を決定するために使用されることができる。
例えば、IMUは、例えば、ユーザの頭部姿勢または身体移動等のユーザデータを入手することができる。外向きに面した結像システム464は、ユーザの環境の画像を入手することができる。IMUおよび外向きに面した結像システム464からのデータは、頭部位置を決定するための入力であり得る。ウェアラブルシステムは、ユーザの環境と関連付けられた基準フレーム(世界フレームとも称される)に対する頭部の位置、配向、または移動を検出することができる。基準フレームは、マップ点のセットであってもよく、それに基づいて、ウェアラブルシステムは、ユーザの移動をアクションまたはコマンドに変換することができる。いくつかの実装では、カメラ較正1688が、世界フレーム内の頭部位置特定1682を決定するために実施されてもよい。カメラ較正1688は、IMU(またはウェアラブルデバイスの他のハードウェアセンサ)から決定されるようなユーザの頭部の姿勢の世界フレーム内の頭部場所へのマッピングをもたらし得る。図6Bにおけるアバタ自動スケーラ692(および図16Bを参照して説明される、サブプロセス1650)を参照してさらに説明されるように、世界フレーム内のそのような頭部位置特定1682は、アバタ自動スケーラ692の中にフィードされることができ、アバタを自動的にスケーリングするためのユーザの頭部位置1604を決定するための入力として利用されることができる。
デバイスセンサは、1つ以上の深度センサ234(例えば、LIDAR、飛行時間センサ、または超音波センサ)または世界カメラ(外向きに面した結像システム464の一部であってもよい)を含むことができ、世界カメラは、深度感知能力を有する(例えば、RGB-Dカメラまたは立体視カメラ)。例えば、深度センサは、例えば、ユーザからのオブジェクトの距離等、環境内のオブジェクトの深度データを入手することができる。深度データは、環境点群1678を作成するために使用されることができ、これは、ユーザの環境の3D数学的表現(ユーザの環境内のオブジェクトを考慮し得る)を含むことができる。本環境点群1678は、図7に示されるマップデータベース710内に記憶(またはそこからアクセス)されてもよい。
図17Aおよび17Bを参照してさらに説明されるであろうように、ウェアラブルシステムは、環境点群1678に基づいて、主要な水平平面(等例えば、テーブルの表面、接地面、壁、椅子表面、プラットフォーム等)を識別することができる。主要な水平平面は、その上にユーザまたはアバタが位置付けられ得る、環境表面を含むことができる。
ウェアラブルシステムは、点群を、例えば、ポリゴン(例えば、三角形)メッシュ等のメッシュ状環境に変換し、主要な水平平面をメッシュから抽出することができる。ある実装では、ウェアラブルシステムは、点群をメッシュに変換せずに、直接、点群から平面を推定することができる。直接点群から平面を推定する実施例として、ウェアラブルシステムは、単独で、または深度センサと組み合わせて、外向きに面した結像システムによって入手された画像に基づいて、1つ以上の深度点を決定することができる。深度点は、本システムによって、世界基準フレーム上にマッピングされてもよい(ユーザの環境を表すため)。深度点は、ユーザの環境内の1つ以上の点に対応してもよい。ウェアラブルシステムは、1つ以上の表面を1つ以上の深度点から抽出するように構成されてもよい。深度点から抽出された1つ以上の表面は、1つ以上の三角形を含んでもよい。1つ以上の三角形のそれぞれの頂点は、近傍深度点を含んでもよい。
図16A-1に示されるように、深度カメラ較正1688を用いることで、ウェアラブルシステムは、ブロック1680に示されるように、本点群1678を世界基準フレーム(ブロック1682における頭部位置特定のために使用され得る)内のメッシュ状環境に変換することができる。深度カメラ較正は、深度カメラから取得される点群の位置をウェアラブルシステムの基準フレームまたは環境の基準フレームの位置に関連させる方法に関する情報を含むことができる。深度カメラ較正は、ウェアラブルシステムがそれらの点が作業座標系内に位置する場所を把握するように、環境およびカメラフレームと同一基準フレーム内の点を位置特定することを可能にし得るため、有利であり得る。
メッシュ状環境は、3Dメッシュ状環境であってもよい。メッシュ状環境は、1つ以上の表面三角形を含んでもよい。各表面三角形は、隣接する深度点に対応する頂点を含んでもよい。ウェアラブルシステムは、符号付き距離場関数を点群から構築し、例えば、マーチングキューブアルゴリズム等の三角測量アルゴリズムを使用して、点群をポリゴン(例えば、三角形)メッシュ等の三角形の表面表現に変換するように構成されることができる。いくつかの実施形態では、表面表現は、メッシュ状環境からではなく、直接、点群から決定されることができる。
ブロック1684では、ウェアラブルシステムは、世界基準フレーム内の平面環境に近似することができ、これは、メッシュからの平面抽出を含んでもよい。平面抽出は、三角形を類似配向のエリアにグループ化することができる。さらなる処理が、これらのメッシュ状エリア(平面抽出から識別されるように)に行われ、環境内の平坦エリアを表す純平面領域を抽出することができる。
ブロック1686では、ウェアラブルシステムは、さらなる処理を実施し、主要な水平平面を環境から抽出することができる。ウェアラブルシステムは、ブロック1684から識別された領域からの表面の配向、サイズ、または形状に基づいて、主要な水平平面を決定するように構成されてもよい。例えば、ウェアラブルシステムは、ユーザまたはアバタがその上に立つことを可能にするために十分に大きい、水平表面を、主要な水平平面として識別することができる。いくつかの実装では、交点におけるその法線が重力ベクトル(ウェアラブルシステム上のIMUによって決定されることができる)に近整合される、光線と物理的水平表面の第1の交点を見出すことによって、ウェアラブルシステムは、主要な水平平面を識別することができる。メッシュ状環境からの場面内の主要な水平平面を識別する付加的実施例はさらに、図17A-17Cを参照して説明される。
図16A-2は、主要な水平平面を場面から抽出するための別の例示的データフロー図を図示する。プロセス1640は、データを深度カメラ1642、IMU1644、および/またはカメラ1646(眼カメラまたは世界カメラ、RGB、RGB-D、赤外線、またはグレースケールカメラであってもよい)から入手するステップから開始する。IMU1644、カメラ1646、および/または深度カメラ1642から入手されたデータは、ユーザの頭部姿勢1648を決定するために使用されることができる。深度カメラ1642が、頭部姿勢決定1648に入力する場合、カメラは、必要とされなくてもよい(図16A-2では、Alt1として示される)。ブロック1682を参照して説明されるように、頭部姿勢の位置は、ユーザの環境の世界フレームを基準として決定されてもよい。
ブロック1652では、ウェアラブルシステムは、深度カメラ1642によって入手された画像に基づいて、世界再構成を実施することができる。カメラ1646からの出力は、随意に、世界再構成のために使用されることができる(図16A-2では、Alt2として示される)。世界再構成は、ユーザの環境(例えば、ユーザの部屋)のために、カメラ1642および/またはカメラ1646によって入手された全ての画像をともにスティッチングするステップを伴うことができ、実世界場所対応のために、頭部姿勢1648を利用して、環境を表すメッシュ内の環境の画像を変換することができる。図16A-1を参照して説明されるように、世界再構成は、深度カメラ1642によって入手された画像に基づいて生成された3D点群に基づいてもよい。世界再構成は、時間「i」(図16A-2では、@時間iとして示される)からのデータに基づくことができ、さらなるデータがシステムによって受信されるにつれて(例えば、時間i+1、i+2等において)、更新されることができる。
ブロック1654では、ウェアラブルシステムは、メッシュに基づいて、平面抽出を実施することができる。ウェアラブルシステムは、図16A-1におけるブロック1684を参照して説明される技法を使用して、そのような抽出を実施することができる。例えば、ウェアラブルシステムは、メッシュ内の近傍三角形に基づいて、平面を決定することができる。
ブロック1656では、ウェアラブルシステムは、主要な水平平面を場面から抽出することができる。ウェアラブルシステムは、図16A-1におけるブロック1686を参照して説明される技法を使用して、そのような抽出を実施することができる。主要な水平平面は、その上にアバタがレンダリングされるであろう、またはユーザが立っている、平面を含んでもよい。
代替実施形態では、ウェアラブルシステムは、直接、平面抽出を深度カメラ1642およびIMU1644から実施することができる。深度カメラは、オブジェクトの点場所を提供し、IMUは、重力からの指向性を提供する。本技法は、平面に、上方向(例えば、IMUによって示される局所重力方向と反対の方向)を示すベクトルを提供することができる。ウェアラブルシステムは、次いで、新しいアバタを、世界再構成1652の必要なく、検出された第1の水平(または第1の好適な水平)表面上にスポーンすることができる。
世界フレーム内の主要な水平平面および頭部場所に関する情報は、プロセス1600、1640のいずれかによって、アバタを自動的にスケーリングするためのアバタ自動スケーラ692にパスされてもよい。図16Bは、例示的サブプロセス1650を図示し、これは、ウェアラブルシステム200の一部として、アバタ自動スケーラ692(図6Bに示される)によって実装されることができる。
頭部場所情報の受信に応じて、アバタ自動スケーラは、ブロック1604において、ウェアラブルデバイスを装着しているユーザの頭部位置を決定することができる。本アクションは、頭部追跡(ユーザが、例えば、環境に向かって外向きに面した1つ以上のカメラを伴うデバイスを装着しているため、表裏逆頭部追跡とも称され得る)の一部であってもよい。
場面からの主要な水平平面情報の受信に応じて、ブロック1616では、アバタ自動スケーラは、ユーザを支持する、水平接地面平面を決定することができる。水平接地面平面は、頭部の下方にある、第1の大水平接地面平面であることができる(例えば、ユーザが接地面上に立っている状況において)。図16A-1および16A-2を参照して説明されるように、本接地面平面は、3D環境点群から抽出されることができる(直接または最初に3D環境点群をメッシュに変換することによってのいずれかにおいて)。
3D頭部位置(ブロック1604から決定されるように)を前提として、ウェアラブルシステムは、ブロック1608では、頭部位置を頭部の下の第1の大水平平面に投影することができる。これは、光線を頭部から下方に投射し、その光線と交差する、最大水平平面領域を識別することによって実施されることができる。本アクションは、ユーザが立っている場所と関連付けられた床レベル(変数「user_feet」と称され、これは、ユーザの足が現れる場所を示す)を識別するために適用されることができる。ユーザが接地面上に立っていない状況では、第1の大水平平面は、水平接地面平面と同一ではなくてもよい。
ブロック1620では、アバタ自動スケーラ692は、ユーザの眼の高さを水平支持平面から推定することができる。アバタ自動スケーラ692は、次いで、頭部とuser_feetとの間の鉛直距離を求め、ユーザの高さを推定することができる。式(1)および(2)を参照すると、UserH=user_head-user_feetであって、式中、user_headは、ブロック1604から決定されるような頭部の位置(ある実装では、ユーザの眼レベルに対応してもよい)を表す。
ブロック1612では、ウェアラブルシステムは、場面内のアバタのレンダリング場所を識別することができる。本明細書にさらに説明されるであろうように、アバタのレンダリング場所は、アバタ処理およびレンダリングシステム690によって決定されることができる。例えば、アバタ自動スケーラ692は、意図マッピングシステム694からの出力に基づいて、アバタのレンダリング場所を受信する、またはそこにアクセスすることができる。
アバタのレンダリング場所を用いることで、ブロック1642では、アバタ自動スケーラ692は、アバタが存在すべき高さを算出し、アバタおよびユーザが類似する眼の高さレベルを有することを確実にすることができる。
ブロック1626では、アバタ自動スケーラ629は、アバタの標的高さを計算することができる。下記の式(3)は、アバタの標的高さを計算する実施例を図示する。
AvatarH=UserH-AvatarBaseHであって、式中、AvatarBaseHは、UserHに対するアバタの足の底までの高さである。アバタの足が、ユーザの足より高い場所上に立っている状況では、AvatarBaseHは、正の数であって、アバタの高さは、ユーザの高さ未満である。しかし、ユーザが、アバタのレンダリング場所より高い水平支持平面上に立っている場合、AvatarBaseHは、負の数であり得、これは、ユーザとのアイコンタクトを維持するために、アバタの高さを増加させる。アバタおよびユーザが、等しい高さを伴う表面上に立っている場合、AvatarBaseHは、0と等しい。
ブロック1632では、アバタは、その高さが標的高さに合致するように、スケーリングされることができる。ある実装では、アバタを変形させることを回避するために、アバタをスケーリングするステップは、アバタの高さを標的高さに合致させるとき、アバタの高さ、幅、および長さを比例するようにサイズ変更するステップを含むことができる。
ある実装では、アバタ自動スケーラ692は、ユーザがその眼の高さを動的に変化させる場合、新しいAvatarHが、動的にスケーリングされ、ユーザの眼の高さをアバタのものと維持し得るように、ウェアラブルシステムが使用されているとき、起動されたままにされることができる(例えば、背景プロセスまたはエージェントとして)。例えば、ユーザの頭部の高さが、例えば、腰掛上に上がる等のあるアクションのために変化する場合、本システムは、新しいAvatarHを迅速に算出し、視認者とアバタとの間のアイコンタクトを維持することができる。同様に、アバタが、その立っている場所を異なる表面に変化させる場合、アバタのスケールは、適宜、調節され、水平アイコンタクトを維持することができる。
(物理的環境内の表面を識別する実施例)
図16A-16Bを参照して説明されるように、ウェアラブルシステムは、ユーザの環境内の平面表面を識別することができる。これらの平面表面は、水平接地面平面(環境の接地面に対応することができる)、その上にユーザが立つ、水平支持表面、およびその上にアバタがレンダリングされる、表面を含んでもよい。図17A-17Bは、平面表面をメッシュ状環境から識別する実施例を図示する。
図17A-17Bは、複数の平面表面を含み得る、表面環境1750(図17B)に変換される、メッシュ環境1740(図17A)を図示する。メッシュ環境1740は、図16A-1を参照して説明されるように、3D点群から再構築されることができる。再構築されたメッシュ環境1740は、例えば、鉛直メッシュ状表面1742または水平メッシュ状表面1744等の1つ以上の表面を含んでもよい。メッシュ状表面は、環境内のオブジェクト1748の一部を表してもよい(例えば、テーブルの表面は、水平メッシュ状表面として表され得る)。ユーザまたはアバタは、1つ以上の再構築されたメッシュ表面上またはその近傍に位置付けられてもよく、ユーザまたはアバタが移動するにつれて、その上にユーザまたはアバタが位置付けられる、表面の高さは、変化し得る。
ウェアラブルシステムは、再構築されたメッシュ環境1740を、メッシュから抽出された複数の平面表面を含む、表面環境1750に変換するように構成されてもよい。図17Bは、再構築されたメッシュ環境1740の抽出された表面を図示する。いくつかの例示的な抽出された表面は、鉛直表面1752と、水平表面1758と、接地面1756とを含むことができる。平面抽出は、メッシュ環境1740の三角形を類似配向のエリアにグループ化するステップを含むことができ、これは、三角形のグループ化が共通表面の一部であることを示す傾向にある。例えば、図17Bに示される三角形1704aおよび1704bは、平坦水平表面を表すように、ともにグループ化されることができ、三角形1702aおよび1702bは、平坦鉛直表面を表すように、ともにグループ化されることができる。さらなる処理が、これらのメッシュエリアに行われ、純平面領域を抽出し、環境内の平坦エリアを表すことができる。本平面抽出技法に基づいて、ウェアラブルシステムは、場面内の主要な水平平面を抽出することができ、その上に、ユーザ、アバタ、またはオブジェクトが、位置し得る。
(アバタを自動的にスケーリングする例示的プロセス)
図18Aおよび18Bは、アバタを自動的にスケーリングする例示的プロセスを図示する。図18Aおよび18Bにおけるプロセス1800aおよび1800bは、それぞれ、ウェアラブルシステム200によって実施されることができる。例えば、これらの2つのプロセスにおける1つ以上のブロックは、図6Bを参照して説明される、アバタ自動スケーラ692によって実施されてもよい。さらに、本明細書に説明される位置および高さは、世界基準フレームに対して計算されてもよい。
プロセス1800aは、アバタのための標的高さを計算するステップと、標的高さに基づいて、アバタをレンダリングするステップとを説明する。本プロセス1800aは、アバタがスポーンされる時間に先立って、適用されてもよい。
ブロック1812では、ウェアラブルシステムは、ユーザ1812の頭部位置を決定する。頭部位置は、IMUまたは世界カメラ等のデバイスセンサから入手されたデータに基づいて決定されてもよい。頭部位置は、ユーザの環境(例えば、世界フレームによって表されるように)に対して決定されてもよい。
ブロック1814では、ウェアラブルシステムは、ユーザ1814の環境内の表面を決定することができる。表面は、接地面、ユーザがその上に立っている表面、またはアバタがその上にレンダリングされるであろうまたはレンダリングされている表面であってもよい。図16A-17Cを参照して説明されるように、表面は、3D点のセット(例えば、3D環境点群)から抽出されることができる、または環境のメッシュ(3D環境点群から生成されてもよい)から抽出されることができる。
ブロック1816では、ウェアラブルシステムは、表面およびユーザの頭部位置に基づいて、ユーザの高さを計算することができる。例えば、ウェアラブルシステムは、ユーザの頭部位置と表面との間の高低差を算出することによって、ユーザの高さを計算することができる。ある実装では、ユーザの高さは、ユーザの眼レベルと、表面上に位置する、アバタの足との間の差異として測定されてもよい。
ブロック1818では、ウェアラブルシステムは、少なくとも部分的に、ユーザの高さに基づいて、アバタの標的高さを計算することができる。ウェアラブルシステムは、本明細書に説明される式(1)-(3)のうちの任意の1つを使用して、標的高さを計算することができる。
ブロック1820では、ウェアラブルシステムは、標的高さに基づいて、アバタを自動的にスケーリングすることができる。例えば、ウェアラブルシステムは、アバタの高さが標的高さに合致するように、アバタのサイズを変化させることができる(単独で、または組み合わせて、高さ、幅、または長さを変化させるステップを含んでもよい)。
ブロック1822では、ウェアラブルシステムは、ディスプレイに、アバタを複合現実環境内の標的高さにレンダリングさせることができる。例えば、ウェアラブルは、ディスプレイ220に、接地面またはプラットフォーム上に立っているようにアバタをレンダリングさせることができる。ウェアラブルシステムは、世界フレームを基準として現れるように仮想アバタを表示するように構成されることができる。世界フレームは、ユーザの環境内の実オブジェクトおよび/またはその特徴上にオーバーレイされてもよい。
本プロセス1800bは、アバタをスケーリングする別の実施例を図示する。本プロセス1800bは、アバタがスポーンされた後、適用されてもよい。
ブロック1832では、ウェアラブルシステムは、環境内のユーザの位置およびアバタの位置を監視することができる。例えば、ウェアラブルシステムは、テレプレゼンスセッションの間、ユーザまたはアバタの移動を監視することができる。ウェアラブルシステムは、デバイスセンサから入手されたデータに基づいて、ユーザのアクションを監視することができる。ウェアラブルシステムは、単独で、またはアバタ処理およびレンダリングシステム690の1つ以上のコンポーネントの出力(例えば、意図ベースのレンダリングが有効にされるかどうか等)と組み合わせて、アバタと関連付けられたユーザの移動に基づいて、アバタの移動を監視することができる。
ブロック1834では、ウェアラブルシステムは、ユーザとアバタとの間の相対的高さの変化を検出することができる。例えば、ウェアラブルシステムは、ユーザまたはアバタの位置または移動に基づいて、ユーザまたはアバタが、椅子に着座した、プラットフォームに上がった、またはそこから降りたこと等を検出することができる。
ブロック1836では、ウェアラブルシステムは、相対的高さの変化の検出に応答して、プロセス1800a内のブロック1812-1818を実施することができる。標的高さ(ブロック1818によって生成された)に基づいて、ウェアラブルシステムは、標的高さに基づいて、アバタのサイズを動的に調節することができる。例えば、ウェアラブルシステムは、アバタの足がユーザの足より(それぞれ)低い位置にあるかまたはより高い位置にあるかに基づいて、アバタのサイズを増加または減少させることができる。
(仮想アバタの意図ベースのレンダリングの実施例)
図11B-11Dを参照して説明されるように、ユーザ相互作用(例えば、頭部または身体姿勢、ジェスチャ、移動、眼視線等)のアバタアクションへの1対1のマッピングは、アバタがレンダリングされる環境内で意味を成さない、ぎこちないまたは異常な結果をもたらし得るため、問題となり得る。有利には、いくつかの実施形態では、ウェアラブルシステム200は、相互作用のどの部分が、遠隔環境内では異なり得る、世界成分(例えば、移動または関心オブジェクトとの相互作用)であって、相互作用のどの部分が、環境との相互作用を要求しない、ローカル成分(例えば、点頭による「はい」または「いいえ」等)であるかを決定することができる。ウェアラブルシステム200(例えば、アバタ処理およびレンダリングシステム690または意図マッピングシステム694等)は、ユーザ相互作用を2つの部分、すなわち、世界成分と、ローカル成分とに分解することができる。世界成分は、世界成分の意図が、保存されるが、意図を行うためのアバタのアクションが、他のユーザの環境内で修正され得る(例えば、異なるルート上を歩行する、異なるオブジェクト上に着座する、異なる方向に向くこと等によって)ように、ユーザの意図に基づいて、他のユーザの環境内にレンダリングされることができる(アバタのために)。ローカル成分は、ローカル運動が保存されるように、バックチャネル通信としてレンダリングされることができる。
実施例として、Aliceは、その環境内で能動的に動き回り得、ウェアラブルシステムは、その平行移動運動の一部をBobの環境(その中にAliceのアバタがレンダリングされる)に伝達してもよい。ウェアラブルシステムは、Aliceの移動をAliceの世界フレーム内で再解釈し、ユーザの意図によって提案されるように、Bobの世界フレーム内の運動に合致させることができる。例えば、Aliceは、Aliceの環境内のBobのアバタに向かって前方に歩行し得る。AliceおよびBobの頭部姿勢からの意図を分解することは、ウェアラブルシステムが、AliceおよびBobの環境のそれぞれ内の「前方」である方向を決定することを可能にすることができる。別の実施例として、Aliceが、椅子まで歩いて行き、着座する場合、Bobの環境内に椅子が存在せず、Aliceのアバタが、突然、空中に着座する場合、異常に見えるであろう。ウェアラブルシステムは、物理的場所、すなわち、Bobの環境内の着座可能表面の高さが、Aliceが着座するものと異なる場合でも、Aliceの運動(着座)の意図に焦点を当て、Bobの環境内の「着座可能」表面(椅子、ソファ等であってもよい)を識別し、Aliceのアバタを着座可能表面に移動させ、着座可能表面上に着座するようにアバタをレンダリングするように構成されることができる。別の実施例として、Aliceは、Bobのアバタを見下ろしている場合がある一方、遠隔環境内では、Bobは、Aliceのアバタを見上げている場合がある。
ある実装では、そのような意図の再マッピングは、リアルタイムで生じ得る(例えば、2人のユーザが、アバタのヒト対応者が相互作用を実施する、テレプレゼンスセッションを行っているとき)。他の状況では、再マッピングは、リアルタイムで生じなくてもよい。例えば、アバタは、メッセンジャとしての役割を果たし、メッセージをユーザに送達し得る。本状況では、アバタの再マッピングは、メッセージが作成または送信されるのと同時に生じる必要はなくなり得る。むしろ、アバタの再マッピングは、アバタがメッセージを送達するとき(例えば、ユーザがウェアラブルデバイスをオンにするとき等)、生じ得る。再マッピングは、メッセージを送達するとき、アバタにユーザ(空間内のランダム場所ではなく)を見るようにさせてもよい。意図に基づいて、世界運動をレンダリングすることによって、ウェアラブルシステムは、有利には、不自然なヒト-アバタ相互作用の尤度を低減させることができる。
(ユーザ相互作用を分解する実施例)
図19Aは、ユーザ相互作用を分解するためのシステムの実施例を説明する。本実施例では、Aliceは、環境A1902a内に存在することができる。Aliceは、ウェアラブルシステム200のユーザであることができ、それを通して、Aliceは、その環境A1902aとの複合現実体験を有することができる。Aliceは、種々の相互作用1912aを実施することができ、これは、遠隔環境内でアバタにマッピングされてもよい。Aliceの相互作用1912aは、単独で、または組み合わせて、移動、姿勢(例えば、頭部姿勢、身体姿勢、または手のジェスチャ等)、眼視線等を含むことができる。いくつかの状況では、これらの相互作用1912aのうちの1つ以上のものは、相互作用イベントとも称され得る。
ウェアラブルシステムは、図2および3を参照して説明される、1つ以上のデバイスセンサを使用して、データを入手することができる。デバイスセンサによって入手されたデータは、ユーザの相互作用を決定するために使用されることができる。データに基づいて、ウェアラブルシステムは、例えば、ユーザが、相互作用するかまたは関心があるオブジェクト、相互作用のタイプ(例えば、ユーザが、歩いている、座っている、立っているかどうか等)等であり得る、関心オブジェクト(関心アイテムまたは略してIOIとも称される)等の相互作用1912aの特性を決定することができる。単独で、またはデバイスセンサから入手されたデータと組み合わせて、相互作用1912aの特性に基づいて、ウェアラブルシステムは、相互作用1912aが世界成分および/またはローカル成分を含み得るかどうかを決定することができる。
図19Aに図示されるように、移動1920aは、ローカル運動1922aおよび/または世界運動1924aに分解されることができる。ローカル運動1922aは、固定身体基準フレームに対する運動を含むことができ、環境A1902aと相互作用し得ない。世界運動1924aは、環境A1902aとの相互作用を伴う、運動を含むことができる。そのような世界運動1924aは、世界フレームに関して説明されることができる。例えば、Aliceは、その環境内で走っている場合がある。その腕の移動は、ローカル運動1922aと見なされ得る一方、脚部の移動(例えば、環境内のある方向に向かって前方に移動している)は、世界運動1924aと見なされ得る。別の実施例として、Aliceは、その脚部を交差した状態で椅子に着座している場合がある。脚部を交差した状態で着座する姿勢は、ローカル成分と見なされる一方、椅子に着座する相互作用は、世界成分と見なされる。Aliceのアバタの視認者のウェアラブルシステムは、脚部を交差した状態でベッド上に着座しているAliceのアバタをレンダリングすることができる(遠隔環境が椅子を有していない場合)。
相互作用1912aは、時として、また、例えば、環境内の物理的オブジェクト(例えば、椅子、テーブル、ベッド、鏡等)または仮想オブジェクト(例えば、別のユーザのアバタ、仮想エンターテインメントコンテンツ、または他の仮想アプリケーション)等の関心オブジェクトと相互作用することを伴うことができる。デバイスセンサから入手されたデータに基づいて、ウェアラブルシステムは、ユーザAliceの相互作用と関連付けられた関心オブジェクト1950aを識別することができる。例えば、関心オブジェクト1950aは、個々に、または組み合わせて、Aliceの移動1920a、姿勢1930a、眼視線1940aから識別されることができる。
本明細書にさらに説明されるように、ある実装では、関心オブジェクト1950aは、ユーザの注意を誘引する、成分を含んでもよい。上記に説明されるように、ユーザの眼は、典型的には、フレンドリーな中立会話の間、他のユーザの顔のソーシャルトライアングルと呼ばれる領域に向かって指向される。ソーシャルトライアングルは、ユーザの眼とユーザの口における頂点との間の線上の第1の辺を用いて形成される。関心オブジェクト1950aは、ソーシャルトライアングルを含んでもよい。例えば、Aliceは、ヒトが、対面会話の間、別の人物のソーシャルトライアングルを自然と見る傾向にあるため、Bobの顔上のソーシャルトライアングルを見る場合がある。関心オブジェクトとの相互作用は、それらが環境内の仮想または物理的オブジェクトと相互作用することを伴うため、世界成分と見なされ得る。
ウェアラブルシステムは、直接マッピング1962を使用して、相互作用1912aのローカル成分を仮想アバタ1970にマッピングすることができる。例えば、ウェアラブルシステムは、ローカル運動1922a、姿勢1930a、または眼視線1940aを、直接マッピング1962を使用して、アバタ1970のアクションの中にマッピングすることができる。その結果、アバタの1970アクションは、Aliceによって実施される相互作用1912aの対応するローカル成分を反映させることができる(例えば、Aliceがその頭部を点頭すると、アバタもその頭部を点頭する)。
ウェアラブルシステムは、意図ベースのマッピング1964を使用して、相互作用1912aの世界成分をマッピングすることができる。意図ベースのマッピング1964の結果、アバタ1970のアクションは、アバタ1970のアクションがAliceのものと正確に同一ではあり得ない場合でも、Aliceによって実施される対応する相互作用1912aと同一目的を達成する。例えば、ウェアラブルシステムは、その中にアバタ1970がレンダリングされる、環境内の環境特徴(例えば、障害物、オブジェクトのレイアウト等)に基づいて、世界運動1924aをアバタ1970にマッピングすることができる。別の実施例として、ウェアラブルシステムは、仮想アバタ1970が遠隔環境内の類似関心オブジェクト1950と相互作用するように、遠隔環境内の仮想アバタ1970を移動または再配向することができる。
ある実装では、ユーザ相互作用を世界成分およびローカル成分に分解することによって、本明細書に提供される技法は、より高速の処理を有効にし、記憶要件を低減させ、待ち時間を改良することによって、改良されたウェアラブルデバイスを提供することができる。例えば、本技法は、動画化されたアバタの幾何学形状全体またはユーザの運動全体が環境B1902内のBobのウェアラブルデバイスに横断して送信されることを要求しない。Aliceのウェアラブルデバイスは、Bobのウェアラブルデバイスにおいてアバタをローカルで動画化するために使用され得る、センサデータのサブセットを送信することができ、したがって、Aliceのデバイスは、アバタ全体のための幾何学形状および動画更新を送信し続ける必要はない。Aliceのウェアラブルデバイスによって送信されるデータは、粗雑であり得るため、Bobのウェアラブルデバイスは、より頻繁に更新し、より応答性のアバタ動画を得ることができる。
ユーザ相互作用を遠隔環境にマッピングする実施例
図19Bは、ユーザの相互作用を遠隔環境内のアバタにマッピングするためのシステムの実施例を説明する。仮想アバタ1970は、Aliceのアバタであることができる。図19Bは、仮想アバタが、サイズ1972(図12A-18Bを参照して説明される実施例参照)、移動1920b、姿勢、1930b、および視線1940b等の種々の特性を有することを示す。本明細書に説明されるように、仮想アバタ1970はまた、例えば、顔の表情または見た目等の本図に示されない他の特性を含むことができる。Aliceのアバタは、ウェアラブルデバイス904によって、Bobの環境(環境B1902bとして示される)内にレンダリングされることができる。
仮想アバタ1970は、例えば、環境B1902b(その中に仮想アバタがレンダリングされる)内のオブジェクト、関心エリア1962、ユーザBobのコンテキスト情報1964(例えば、ユーザBobの位置、配向、相互作用等)、および環境B1966のコンテキスト情報(例えば、環境B1966内のオブジェクトのレイアウト等)等の環境B1902b内の種々のコンテキスト要因に基づいて、レンダリングされることができる。環境B1902b内のコンテキスト要因に加え、またはその代替として、仮想アバタ1970はまた、Aliceの相互作用1912aに基づいて、レンダリングされることができる。図19Aに説明されるように、Aliceの相互作用1912aの世界成分は、意図に基づいて、仮想アバタ1970にマッピングされることができる一方、Aliceの相互作用1912aのローカル成分は、直接マッピング1962を介して、仮想アバタ1970にマッピングされることができる。
実施例として、Aliceは、Aliceの環境内の関心オブジェクト1950aと相互作用することができる。ウェアラブルシステムは、関心オブジェクト1950aに対応する、環境B1902b内の関心オブジェクト1950bを決定することができる。例えば、Aliceが、環境A1902a内の椅子に着座する場合、対応する関心オブジェクト1950bは、環境B1902b内の椅子または別の着座可能表面であってもよい。別の実施例として、Aliceは、環境A1902a内のBobのアバタと対面会話をしている。ウェアラブルシステムは、Bobが、Aliceのアバタとの対面会話に従事するように、環境A1902a内のAliceの相互作用をBobの環境B1902bにマッピングすることができる(例えば、Bobのウェアラブルデバイスは、AliceのアバタをBobに向かって配向することができる)。関心オブジェクトに基づいて仮想アバタをレンダリングすることに関連する詳細はさらに、図24-30を参照して説明される。ある実装では、意図ベースのマッピング1964はまた、関心エリア1962にも適用されることができる。例えば、Aliceは、その環境1902a内の人々の群集を見るが、群集内の特定の人物を見ていない場合がある。Aliceの相互作用は、環境B1902bにマッピングされてもよく、Aliceの仮想アバタ1970は、環境B1902b内のあるグループの仮想アバタまたは人々のグループを見るように配向されてもよい。本明細書にさらに説明されるであろうように、ある実装では、関心エリア1962はまた、Aliceの相互作用の意図ベースのマッピングを伴わずに、環境B1902bに基づいて決定されてもよい。例えば、ウェアラブルシステムは、類似音源が環境A1902a内に存在しない場合でも、環境B1902b内の音源の方向を見るようにアバタ1970を配向することができる。
別の実施例として、Aliceの眼視線1940aが、環境A内の固視点に対して追跡されることができる。しかしながら、本固視点は、Aliceのローカル環境に基づくため、直接、環境Bにマッピングされると、コンテキストから外れたものになり得る。いくつかの実装では、ウェアラブルシステムは、ウェアラブルシステムが、オブジェクトまたは関心エリアに基づいて、固視点を算出し得るように、環境B内のオブジェクトまたは関心エリアを自動的に識別することができ、これは、仮想アバタのためのより現実的眼視線を提供し得る。遠隔環境内のオブジェクトまたは刺激に基づいて仮想アバタをレンダリングすることに関連する詳細はさらに、別の節において本明細書に説明される。
世界成分をマッピングすることに加え、またはその代替として、相互作用1912aのローカル成分はまた、意図に基づいて、遠隔環境にマッピングされることができる。例えば、ユーザの相互作用1912aは、片手を振ることを含み得、これは、ユーザが質問に否定したことを示し得る。本否定の意図は、環境B1902内のBobのウェアラブルデバイスに通信されることができる。本意図は、仮想アバタ1970にマッピングされることができ、Bobのウェアラブルデバイスは、両手を振る仮想アバタ1970を示すことができる。別の実施例として、1つのタイプのユーザ相互作用は、異なるタイプのユーザ相互作用にマッピングされ、同一意図を伝達してもよい。例えば、質問を否定する(その手を振ることを介して)Aliceの意図をマッピングするために、Bobのウェアラブルシステムは、本意図を発話された音「いいえ」にマッピングし、Bobのウェアラブルデバイス上のスピーカ240を介して、この音をBobに発することができる。
有利には、いくつかの実施形態では、アバタがレンダリングされる、環境内のユーザの意図を再マッピングすることによって、ウェアラブルシステムは、視認者のローカル物理的周囲に適合させるように相互作用および通信することができる。例えば、Aliceは、その机に向かって着座し、テーブル上のBobのアバタ1100に話しかけることができる一方、Bobは、彼の正面に立っているように現れるAliceのアバタ1000とともに、広い空の部屋内に存在する。BobおよびAliceはそれぞれ、非常に異なる環境を有するが、依然として、正常に通信することができる。他方では、VR環境内において、AliceのアバタおよびBobのアバタは両方とも、同一仮想空間にトランスポートされ、したがって、アバタは、ユーザのローカルの物理的環境に適合させる必要はない。
(仮想アバタの意図ベースのレンダリングの例示的プロセス)
図20は、仮想アバタの意図ベースのレンダリングの例示的プロセスを図示する。例示的プロセス2000は、2つのサブプロセス2010および2020を含むことができる。サブプロセス2010は、ユーザの相互作用を世界成分と、ローカル成分とに分解し、世界成分と関連付けられた意図を決定するために適用されることができる。サブプロセス2020は、ユーザの相互作用および遠隔環境の環境情報に基づいて、遠隔環境内の仮想アバタをレンダリングするために適用されることができる。サブプロセス2010は、Aliceのウェアラブルデバイス(図20-21Cでは、ウェアラブルデバイスAと称される)によって実施されることができ、サブプロセス2020は、Bobのウェアラブルデバイス(図20-21Cでは、ウェアラブルデバイスBと称される)によって実施されることができる。サブプロセス2010および2020の1つ以上の部分は、それぞれ、ウェアラブルデバイスAおよびウェアラブルデバイスB上に実装されるような意図マッピングシステム694(図6B)によって実施されることができる。
サブプロセス2010を参照すると、ブロック2012では、ウェアラブルデバイスAは、ユーザ相互作用を識別することができる。ウェアラブルデバイスAは、デバイスセンサから入手されたデータを分析し、ユーザの相互作用を決定することができる。そのような例示的相互作用は、図19Aに示される相互作用1912aを参照して説明される。
ブロック2014では、ウェアラブルデバイスAは、ユーザ相互作用を世界成分と、ローカル成分とに分解することができる。実施例として、関心オブジェクトを指し、注視することは、世界成分と見なされ得る。別の実施例として、Aliceの環境内での移動または姿勢変化(例えば、座るまたは横たわる)は、世界空間に対する成分を有し得る(例えば、場所1から場所2への移動、または座るまたは横たわるために物理的オブジェクトと相互作用する)。さらに別の実施例として、頭部位置変化(例えば、点頭)は、ローカル空間内のデータを含む。
ブロック2016では、ウェアラブルデバイスAは、世界成分と関連付けられた意図を決定することができる。意図は、Aliceが、相互作用している、または相互作用することに関心がある、関心オブジェクトを含んでもよい。ウェアラブルデバイスAは、Aliceが参照している世界空間内の対象を決定することができる。例えば、ウェアラブルデバイスAは、別のアバタ、共有デジタルコンテンツ、または中立/曖昧点(眼視線のため)を、関心オブジェクトとして決定することができる。いくつかの状況では、Aliceが参照し得る、複数の可能性として考えられるものが存在し得る。ウェアラブルデバイスAは、ユーザAliceまたはAliceの環境と関連付けられたコンテキスト情報を活用し、関心オブジェクトを決定することができる。実施例として、Aliceの手のジェスチャは、椅子の方向およびAliceがテレプレゼンスセッションにおいて他の参加者と共有している仮想コンテンツを指し得る。ウェアラブルデバイスAは、テレプレゼンスセッションにおける会話により関連するため、仮想コンテンツが関心オブジェクトである可能性が高いことを決定することができる。
コンテキスト情報の別の実施例は、ユーザの過去または最近のアクティビティであることができ、例えば、オブジェクトは、最近使用または参照されたオブジェクトである場合、関心オブジェクトであることのより高い尤度を有し得る。ある実装では、複数のユーザ入力が、組み合わせられ、関心オブジェクトを決定することができる。例えば、ウェアラブルデバイスは、眼視線方向およびユーザの手のジェスチャ(例えば、ユーザの環境内のある場所を指している)を組み合わせ、関心オブジェクトを決定することができる。図24-30は、加重要因を使用して、関心オブジェクトを決定する付加的実施例を説明する。
いくつかの状況では、ウェアラブルデバイスAは、ウェアラブルデバイスAの環境内の関心オブジェクトを見出す必要なく、意図を決定してもよい。ウェアラブルデバイスAは、Aliceの相互作用の本質に基づいて、そのような意図の決定を行うことができる。例えば、Aliceが、メッセージを記録している場合、受信者(例えば、Bobのデバイス)が、Aliceの空間内に存在しない(およびウェアラブルデバイスAが、関心オブジェクトを識別するためのレイキャスティングを使用することができない)場合でも、ウェアラブルデバイスは、(Aliceのアバタ上に実装するための)意図が、再生時、メッセージを受信する人物に向かって配向し、その人物を見ることであることを自動的に決定することができる。したがって、ウェアラブルデバイスAは、意図が、本実施例では、本記録されたメッセージを再生するとき、アバタの環境内の他のライブユーザに向かって眼視線を位置付け、身体姿勢を配向することであることを自動的に規定することができる。
ブロック2018aでは、ウェアラブルデバイスAは、意図をウェアラブルデバイスBに通信することができ、ブロック2018bでは、ウェアラブルデバイスBは、ローカル成分と関連付けられた情報をウェアラブルデバイスBに通信することができる。意図に関連するデータおよびローカル成分と関連付けられた情報に関連するデータは、ローカル空間内の動画が世界空間動画または姿勢データから分離されるように、別個に伝送されてもよい。ローカル成分に関する情報は、そのような情報(例えば、ローカル動画データ)が、少なくとも、ローカルフレーム内のAliceのアクションに基づき、ウェアラブルデバイスBに送信される(アバタのローカルフレームにマッピングされることができる)ため、別個に伝送されてもよい。世界空間情報は、異なる座標系内にある(例えば、世界空間情報は、AliceまたはAliceのアバタのローカルフレームではなく、世界フレームを基準とする)ため、ローカル成分と異なるようにハンドリングされる必要があり得る。各データまたはメッセージタイプが区別される(例えば、世界空間と関連付けられたデータのためのラベルおよびローカル成分と関連付けられたデータのための別のラベルを提供することによって)限り、同一データチャネルを使用して、両方を送信することが可能であり得る。
サブプロセス2020を参照すると、ブロック2022では、ウェアラブルデバイスBは、ウェアラブルデバイスBと関連付けられたコンテキスト情報を決定することができる。そのようなコンテキスト情報は、ウェアラブルデバイスBの環境とのAliceのアバタの相互作用を決定するために使用されることができる。例えば、ウェアラブルデバイスBは、ウェアラブルデバイスBの環境内の対応する関心オブジェクトを決定することができる。実施例として、ウェアラブルAの環境内の関心オブジェクトは、ウェアラブルデバイスAとウェアラブルデバイスBとの間で共有される、仮想オブジェクトである場合、ウェアラブルデバイスBの環境内の対応する関心オブジェクトが、本共有仮想オブジェクトであることができる。いくつかの状況では、意図は、意味論意図を含んでもよく、これは、ウェアラブルデバイスBに、対応する関心オブジェクトと類似した分類または機能を有するオブジェクトを見出させる、またはウェアラブルデバイスBの環境内の類似したユーザ相互作用をサポートさせることができる。例えば、ウェアラブルデバイスAの環境内の関心オブジェクトは、オフィス用の椅子を含むことができる。ウェアラブルデバイスBの環境内の対応する関心オブジェクトは、着座可能表面を伴うオブジェクト(ベッドまたはベンチ等)であってもよい。
ウェアラブルシステムはまた、各世界-空間アイテムがウェアラブルデバイスBの環境内のAliceのアバタに対して位置する場所を決定することができる。環境のレイアウトに基づいてアバタを配向する実施例はさらに、図22-30Bを参照して説明される。
ブロック2026では、ウェアラブルデバイスBは、ウェアラブルデバイスAから受信されたローカル成分と関連付けられた情報に基づいて、アバタのローカルアクションを決定することができる。例えば、ウェアラブルデバイスBは、適切な世界空間コンテンツを見るまたは指し得るように、アバタのための位置および配向を含む、身体姿勢を決定することができる。ある実装では、ローカルフレーム内のアバタのアクションは、衝突チェックおよび世界空間内の環境障壁を条件とすることができる。例えば、ローカル運動は、アバタの腕を上昇させることを含んでもよい。しかしながら、アバタは、壁に近接して立っている場合があり、腕は、アバタが腕を上昇させる場合、壁を通して貫通するように現れるであろう。ウェアラブルデバイスBは、本アクションを動画化しないように構成されてもよい、または腕を上昇させる動画をレンダリングする前に、世界フレームに対してアクションを行うように構成されてもよい(例えば、最初に、アバタを壁から離れるように移動させることによって(例えば、後退させることによって))。
ブロック2028では、ウェアラブルデバイスBは、ディスプレイに、それぞれ、ブロック2024および2026から決定されるような世界空間に対するアクションおよびローカル空間に対するアクションに基づいて、仮想アバタをレンダリングさせることができる。ウェアラブルシステムは、ローカルフレーム内のアバタのアクションのための動画を環境の世界フレーム内のアバタのアクションの上にマッピングすることができる。例えば、ウェアラブルシステムは、手のジェスチャ(関心オブジェクトを指す)を関心オブジェクトに向かって面した身体配向(意図に基づいて、配向を調節することに応じて)上にマッピングすることができる。
いくつかの実装では、ウェアラブルデバイスBは、環境(例えば、図17Aおよび17Bを参照して説明される環境メッシュおよび平面等)を走査し、環境B内の世界空間情報を取得することができる。本情報を用いることで、ウェアラブルデバイスBは、Aliceのアバタの位置およびAliceの環境内の環境目印(関心オブジェクトになり得る)に対する移動を決定することができる。ウェアラブルシステムは、例えば、歩行運動、着座、およびオブジェクトに手を伸ばすこと等のアクションを世界成分として取り扱うことができる。ある実装では、ウェアラブルデバイスBまたはAは、世界フレームに対して自動的にモデル化されるであろう、事前にプログラムされたアクションのセットを有することができる。ウェアラブルデバイスBはまた、例えば、初期開始姿勢(アバタをスポーンすることに応じて設定され得る)に対する頭部姿勢変化等のローカル空間内の運動のセットを決定することができる。ウェアラブルデバイスBは、開始配向に対する相対的歩行運動を算出し、付加的に、歩行運動変化がスポーン点に対するように、その運動をアバタの初期配向に適用することができる。
本実施例では、サブプロセス2010内のブロックは、ウェアラブルデバイスAによって実施される一方、サブプロセス2020内のブロックは、ウェアラブルデバイスBによって実施されるように説明されるが、これは、ブロックが図20に示されるデバイスによって実施されなければならないかどうかに関する限定ではない。例えば、ウェアラブルデバイスAは、Aliceの相互作用データを捕捉し、そのようなデータをサーバまたはウェアラブルデバイスBにパスし、世界成分、意図、およびローカル成分を抽出することができる。
頭部姿勢および眼視線追跡に基づく仮想オブジェクトとの相互作用のための意図(ベースのレンダリングの例示的プロセス)
図21Aは、頭部姿勢追跡および眼視線追跡に基づいて意図を決定するための例示的プロセスを図示する。図21Aに示されるプロセス2130は、Aliceの環境(図20-21Cでは、環境Aとも称される)内のAliceの相互作用をBobの環境(図20-21Cでは、環境Bとも称される)内にレンダリングされたAliceのアバタにマッピングすることによって、Aliceの意図を決定するために適用されることができる。プロセス2130は、個々に、または組み合わせて、Aliceのウェアラブルデバイス902、遠隔コンピューティングシステム920によって実施されることができる。プロセス2130はまた、図6Bに示される、意図マッピングシステム694の一部として実装されることができる。
プロセス2130は、2132において、Aliceの頭部移動データを追跡し得る、頭部姿勢追跡2134aから開始する。種々の技法が、頭部姿勢を追跡するために使用されてもよい。例えば、Aliceのウェアラブルデバイス902は、IMUおよびカメラ(例えば、外向きに面した結像システム464または内向きに面した結像システム462内のカメラ)の組み合わせを採用し、Aliceの回転および平行移動運動を記録することができる。ウェアラブルデバイス902によって記録される移動データは、環境Aと関連付けられた世界フレームに対する頭部姿勢を推定するための環境A内の特徴を抽出するために使用されることができる(データブロック2136aとして示される)。
ウェアラブルデバイス902はまた、眼追跡2134bを実施し、頭部フレーム内のAliceの視野内の眼の固視点(焦点)(頭部フレームが、Aliceに対してローカルの座標系と関連付けられる、データブロック2136bに示されるように)を取得することができる。
ブロック2138では、眼視線標的点は、固視点および頭部姿勢の組み合わせに基づいて、計算されることができる。ブロック2138における算出から取得される結果は、世界フレームに対する視線固視点および世界フレーム内の光線方向(データブロック2140aに示される)を含むことができる。
頭部姿勢および眼視線に基づいて、世界フレーム2140b内の静的仮想場面モデル(環境A内の静的仮想オブジェクトを説明し得る)、および場面2140c(環境A内の所与の位置または配向に固定される、仮想オブジェクトを含んでもよい)内の動的仮想オブジェクト(アバタを含んでもよい)が、ブロック2142において、ローカル空間内の視線固視点と交差する場面内の仮想オブジェクトを決定するために使用されることができる。例えば、ウェアラブルデバイス902は、光線ベクトルを眼から本固視点に投射することによって、レイキャスティングを実施することができる。本光線ベクトルは、ウェアラブルデバイス902を通して知覚されるようなAliceがその視野内で見ている対象を決定するために使用されることができる。
Aliceが見ている可能性があるものに関して、3つの基本可能性が存在し得る。1つ目は、Aliceが、例えば、椅子またはランプ等のその環境内の物理的オブジェクトを見ている可能性である。2つ目は、Aliceが、そのウェアラブルデバイス902のディスプレイ220によって、そのAR/MR環境内にレンダリングされた仮想オブジェクトを見ている可能性である。3つ目は、Aliceが、例えば、思案に暮れる、または何らかのものについて考え込んでいるとき等、特に何も見ていない可能性である。
ブロック2144では、ウェアラブルシステムは、視線が仮想オブジェクトと交差するかどうかを決定することができ、該当する場合、オブジェクトがAliceのアバタの目線と異なる相対的位置(Aliceの目線と比較して)にある場合は、Aliceのアバタのための異なる頭部姿勢が、算出される必要があり得る。該当しない場合、プロセス2130は、開始ブロック2132に戻る。ある実装では、ブロック2144から決定されるような仮想オブジェクトは、関心オブジェクトであることができる。
ブロック2146では、ウェアラブルシステムは、あるオブジェクトと相互作用する等の意味論意図指示を抽出することができる。例えば、ウェアラブルシステムは、例えば、オブジェクトを移動させる、オブジェクトを注視する、オブジェクトを修正する、Bobの仮想アバタに話しかける等、ユーザによって意図されるようなオブジェクトとの相互作用を決定することができる。
オブジェクト(またはそのアバタと相互作用することから決定されるような人物)と相互作用する意図および頭部姿勢は、Bobのウェアラブルデバイスに通信されることができ、これは、意図に基づいて、Aliceの頭部姿勢をAliceのアバタに(Bobのウェアラブルデバイスによってレンダリングされるように)マッピングすることができる。
下記のアルゴリズム(i)は、図21Aにおけるプロセス2130の例示的擬似コード実装を説明する。
アルゴリズム(i)
世界座標フレームW内の頭部姿勢H_Wと、
頭部フレームH内の眼固視点F_Hとを前提とする。
Pをユーザの近辺内の実際の物理的オブジェクトのセットとし、
Sをウェアラブルディスプレイを介して場面内にレンダリングされた3-D静的仮想オブジェクトのセットとする。
Dを他のアバタまたは移動するオブジェクト等の動的3D仮想オブジェクトのセットとする。
H_Wおよびf_Hから、
f_W=f_HH_Wは、
世界フレームWに対する3-D固視点F_Wを表すものとし、
H_Wは、座標フレームを表す、4×4変換行列である。
e_Hは、頭部フレームH内の頭部の眼間の基準点を表すものとする。
e_W=e_HH_Wを世界フレームW内に表される点e_Hとする。
g_W=f_W-e_Wを、固視点f_Wに向かって見ており、e_Wから生じる、頭部の通視線の方向を指している、視線方向光線とする。
光線は、g_W(t)=e_W+t(f_W-e_W)としてパラメータ化されることができ、tは、[0,無限遠]内にあって、無限光線を表し、t=0は、点e_Wに対応し、t=1は、本光線上の固視点f_Wを表す。
g_Wに関して、P、S、およびDに対する本光線の交点を試験する。tの最小値において交差する、P、S、Dの和集合内のオブジェクトOを選択する。これは、光線g_W(t)と交差する、P、S、D間の最も近いオブジェクトと一致する。
I_avatarをアバタを制御するための遠隔デバイスに送信するための意図のセットとする。
H_avatarをアバタを制御するための遠隔デバイスに送信するための現在の頭部姿勢とする。
Oが、S(静的仮想オブジェクト)の要素である場合、意図lookat(S)をI_avatarに追加する。
Oが、D(動的仮想オブジェクト)の要素である場合、意図lookat(D)をI_avatarに追加する。
H_avatar=H_Wを設定する。
出力は、I_avatarおよびH_avatarのセットである。
出力I_avatarおよびH_avatarは、ブロック2150に示されるように、意図に基づいてAliceのアバタをレンダリングするために、Bobのウェアラブルデバイスに通信されることができる。
アバタ制御セッションの間(例えば、テレプレゼンスセッションの間または視認者とアバタとの間の相互作用の間等)、ウェアラブルデバイスAは、現在の頭部姿勢を、規則的、周期的、または不規則的時間間隔において、ウェアラブルデバイスBに送信することによって、Aliceのアバタを更新することができる。アルゴリズム(i)から、ウェアラブルデバイスAは、意図(I_avatar)およびAliceの現在の頭部姿勢(H_avatar)のセットをウェアラブルデバイスBにパスすることができる。ウェアラブルデバイスBによってAliceのアバタを動画化する際に使用されるためのベースライン頭部姿勢(H_baseline)を決定するために、ウェアラブルデバイスは、本段落の直下の段落における計算を実施する。
第1の時間サンプルに関して、ベースライン頭部姿勢は、H_baseline=H_avatarとして定義される。I_avatarが、設定される場合、H_baselineは、姿勢であるように算出され、これは、アバタの頭部をBobのローカル空間内の意図(lookat(S))のためのオブジェクトSに向かって向ける。Aliceのローカル空間内のSの場所は、Bobのローカル空間内のSの場所と同一ではない場合があることに留意されたい。しかしながら、意図I_avatar=lookat(S)を送信することによって、ウェアラブルデバイスBは、頭部姿勢を算出し、頭部をアバタの遠隔環境内のSに向かって指向する本意図を維持することができる。ウェアラブルデバイスAによって入手された画像のフレーム毎に、ウェアラブルデバイスBは、最初に、それをH_baselineに設定し、H_baselineとH_avatarとの間の相対的姿勢(H_relative)上に追加することによって、最終のアバタの頭部姿勢H_finalを算出することができる。結果は、意図(lookat(O))が、その環境内のローカルユーザとアバタの遠隔環境内の同一オブジェクトまたはアバタOを見ている遠隔アバタとの間に保存されることになる。
仮想関心オブジェクトと相互作用するための意図ベースのレンダリングのための付加的ユーザ体験はさらに、図24-30を参照して説明される。
(環境との相互作用のための意図ベースのレンダリングの例示的プロセス)
意図に基づいて、Aliceの頭部姿勢および眼視線をマッピングすることに加えて、またはその代替として、環境とのAliceの相互作用もまた、意図に基づいて、そのアバタにマッピングされることができる。環境との相互作用は、環境内の物理的関心オブジェクトと相互作用することを含んでもよい。例えば、Aliceのアバタが、Bobの環境内に現れる場合、Aliceの正確な運動を模倣するのではなく、Bobのウェアラブルデバイスは、Bobの環境を分析し、例えば、家具の周囲を歩き回る、空の椅子に着座する、またはAliceのアバタがBobの環境内に立っている場所に近いテーブルまたは棚に寄りかかる等、適宜、Aliceのアバタの挙動を調節することができる。
図21Bは、環境との相互作用を別の環境とのアバタの相互作用にマッピングするための例示的プロセスを図示する。図21Bに示されるプロセス2160は、Aliceの環境とのAliceの相互作用をBobの環境内にレンダリングされたAliceのアバタにマッピングするためのAliceの意図を決定するために適用されることができる。プロセス2160はまた、図6Bに示される意図マッピングシステム694の一部として実装されることができる。プロセス2160は、Bobのウェアラブルデバイスの目線から説明されるが、プロセス2160は、個々に、または組み合わせて、Aliceのウェアラブルデバイス902、Bobのウェアラブルデバイス904、遠隔コンピューティングシステム920によって実施されることができる。
ブロック2162aでは、ウェアラブルデバイスBは、参加者センサデータ2160aを読み出すことができる。例えば、参加者センサデータ2160aは、単独で、または組み合わせて、Aliceのウェアラブルデバイスのデバイスセンサによって入手されたAliceの運動データ、Aliceの運動データから決定されるようなAliceの意図、その環境とのAliceの相互作用の世界成分、Aliceの相互作用のローカル成分等を含んでもよい。
ブロック2162bでは、ウェアラブルデバイスBは、その中にAliceのアバタがレンダリングされる、環境B内のアバタの新しい相対的運動および位置を決定することができる。新しい相対的運動および位置は、環境Bのコンテキスト情報(例えば、環境B内のオブジェクトのレイアウト、環境B内のオブジェクト等)またはAliceの意図に基づいて、決定されることができる。
ブロック2166では、ウェアラブルデバイスBは、ブロック2162bから決定された結果が環境内のオブジェクトとの衝突をもたらすであろうかどうかを決定することができる。ウェアラブルデバイスBは、図21Cに示される環境再構成および分析サブプロセス2164からの1つ以上の出力を使用して、そのような衝突チェックを実施する。
衝突が、検出される場合、プロセス2160は、ブロック2162bに戻ることができ、アバタの新しい相対的運動および位置が、決定される。例えば、アバタの新しい位置が、環境内の既存のオブジェクトとの衝突または干渉をもたらす場合、ウェアラブルシステムは、運動計画アルゴリズムを適用し、新しい無衝突位置を決定することができる。運動計画アルゴリズムの一実施例は、衝突がもはや生じなくなるまで、新しい位置から前の位置に向かってステップを逆戻りすることである。ある場合には、新しい方向は、衝突を回避するように全体的に計算されることができる。
衝突が、検出されない場合、ブロック2168では、ウェアラブルデバイスは、メッシュオブジェクトが、ユーザ相互作用をサポートする、意味論カテゴリを有するものであるかどうかを決定することができる。図7を参照して説明されるように、オブジェクト認識装置708は、環境内のオブジェクトを認識し(オブジェクト認識装置708は、環境再構成および分析サブプロセス2164を実装してもよい)、意味論情報をオブジェクトに結び付けることができる。意味論情報は、オブジェクトが人物によって相互作用可能である、カテゴリを含んでもよい。例えば、オブジェクト認識装置708は、例えば、椅子、テーブル、または壁、または他の一点の家具等、メッシュであるオブジェクトのタイプを認識することができる。
オブジェクトが、相互作用可能カテゴリではない場合、プロセス2160は、ブロック2178において終了する。オブジェクトが、相互作用可能である場合、ブロック2170では、ウェアラブルシステムは、意味論カテゴリに基づいて、相互作用タイプを決定することができ、いくつかの例示的相互作用可能カテゴリは、椅子、壁、テーブル等を含むことができる。各相互作用可能カテゴリ内において、ウェアラブルデバイスBは、ブロック2172a、2172b、および2172cに示されるように、アフォーダンスを識別することができる。オブジェクトのアフォーダンスは、オブジェクトとオブジェクトの環境との間の関係を含み、これは、アクションまたは使用がオブジェクトと関連付けられる機会を与える。アフォーダンスはオブジェクトの特性(意味論情報の一部として記録されることができる)に基づいて、決定されてもよい。いくつかの例示的オブジェクトの特性は、オブジェクトの機能、配向、タイプ、場所、形状、またはサイズを含むことができる。実施例として、水平テーブルのアフォーダンスは、オブジェクトが、テーブル上に設定されることができるというものであって、鉛直壁のアフォーダンスは、オブジェクトが、壁から吊架される、またはその上に投影され得ることである。アフォーダンスはまた、その中にオブジェクトが位置する、環境に基づいてもよい(例えば、オフィス内のテーブルは、書斎テーブルとして使用されることができる一方、食堂内のテーブルは、食事目的のためのものである)。
いったんカテゴリが、識別されると、ウェアラブルシステムは、ブロック2174a、2174b、および2174cにおいて、カテゴリ特有の領域を探すことができる。椅子の場合、これは、椅子の座面と、バックレストと、おそらく、アームレストとを識別するであろう。オブジェクトのこれらのサブ部分は、アバタがそれと相互作用し得る、種々の方法を含意することができる。例えば、アバタが着座すると、その背面端は、椅子の座面上に静置されることができ、その背面は、腕がアームレスト上に設置された状態で、バックレストにもたれることができる(ブロック2176c参照)。
アバタの身体の一部をオブジェクト上に位置付けるための1つの方法は、アバタの身体の一部を特定の位置および配向に制約することであって、これは、逆運動学と呼ばれる。複数の身体標的が、複数の逆運動学標的を使用して、同時に、制約され、位置付けられることができる。
図21Cは、環境再構成および分析サブプロセス2164の実施例を図示する。例示的サブプロセス2164は、図7に示されるオブジェクト認識装置708の一部として、または図6Bに示されるコンテキスト情報分析システム688の一部として、実装されることができる。例示的サブプロセス2164は、平面を認識するためのサブプロセス2180と、環境内のオブジェクトを識別する(例えば、メッシュセグメントを分析することによって)ためのサブプロセス2190とを含むことができる。
サブプロセス2180を参照すると、ブロック2182では、プロセスは、環境内の主要な平面を抽出することができる。主要な平面は、図16Aおよび17A-17Bを参照して説明される、技法を使用して、抽出されてもよい。例えば、ウェアラブルシステムは、外向きに面した結像システム464(深度感知能力を有してもよい)によって入手されたデータに基づいて、3D点群を生成することができる。平面は、直接、3D点群から抽出される、または3D点群から決定されたメッシュから抽出されることができる。ここでは、3D点群が、実施例として使用されるが、平面は、環境の他の3Dモデルから抽出されることもできる。例えば、平面は、環境を3D点群として表す場合とそうではない場合がある、世界マップ910から抽出されてもよい。
ブロック2184では、プロセスは、平面を、例えば、床、壁、テーブルの表面等の意味論カテゴリにカテゴリ化することができる。本ブロックは、図17Aおよび17Bを参照して説明される、技法を使用して、実施されることができる。例えば、平面は、環境の画像分析から決定されたメッシュの近傍三角形から識別されてもよい。
サブプロセス2190を参照すると、ブロック2192では、非平面領域が、環境メッシュから抽出されてもよい。ブロック2194では、非平面領域は、メッシュセグメントに分離され、1つ以上のメッシュセグメントは、物理的環境内の物理的オブジェクトに対応し得る。ブロック2196bでは、プロセスは、セグメント毎に、境界された体積を算出し、物理的オブジェクトの境界を決定することができる。ブロック2196aでは、メッシュセグメントは、オブジェクトのタイプに対応し得る、意味論カテゴリにカテゴリ化されることができる。
環境との相互作用のための意図ベースのレンダリングのための例示的ユーザ体験
図22および23は、2人のユーザ相互作用体験を図示し、ある環境とのユーザの相互作用は、意図に基づいて、別の環境内のユーザのアバタにマッピングされる。
図22におけるシナリオは、4つの場面2202a、2202b、2204a、および2204bを有する。場面2202aは、時間t1におけるAliceの環境を説明し、場面2202bは、時間t1におけるBobの環境を説明し、場面2204aは、時間t2におけるAliceの環境を説明し、場面2204bは、時間t2におけるBobの環境を説明する。これらの2つの図に示されるように、Aliceの環境は、居間環境であって、これは、ソファ2222を含むことができる一方、Bobの環境は、寝室環境であって、これは、机2224と、ベッド2226とを含むことができる。Aliceの環境では、Aliceは、東に向いている一方、Aliceが、Bobのアバタ1100に向くように、Bobのアバタ1100は、西に向いている(座標系2250によって示されるように)。Bobの環境内では、Aliceのアバタ1000およびBobもまた、相互に向いている。しかしながら、Aliceのアバタ1000は、南に向いている一方、Bobは、北に向いている。
場面2202aおよび2204aを参照すると、Aliceは、Bob1100に向かって東向きに歩いている2212。Aliceのウェアラブルデバイスは、Aliceの運動およびAliceの環境(Bobのアバタ1100を含む)内のオブジェクトを分析し、Aliceの運動の意図を決定することができる。本実施例では、意図は、Bobに向かって歩いていくことである(Bobのアバタ1100が、Aliceの環境内のBobの仮想存在としての役割を果たし得るため)。Aliceのウェアラブルデバイスは、Aliceの運動をBobの環境にマッピングするために、本意図をBobのウェアラブルデバイスに通信することができる。
場面2202bおよび2204bを参照すると、Aliceのアバタ1000およびBobの環境内のBobの配向は、Aliceの配向912およびAliceの環境内のBobのアバタ1100の配向と異なるため、Bobに向かって歩くというAliceの意図をマッピングするために、Bobのウェアラブルデバイスは、Bobに向かって南向きに移動する2214ように、Aliceのアバタの運動をレンダリングする。本シナリオでは、Aliceの運動が、Bobの環境にマッピングされるが、意図がマッピングされない場合、Aliceのアバタ1000は、ベッド2226の中に東向きに歩いて行くことになり、これは、不自然なユーザ体験をもたらす。
図23におけるシナリオは、4つの場面2202a、2202b、2302a、および2302bを有する。場面2202aおよび2202bは、図22に説明されるものと同一である。場面2302aは、時間t3におけるAliceの環境を説明し、場面2302bは、時間t3におけるBobの環境を説明する。
場面2202aおよび2302aを参照すると、Aliceは、移動する(その環境内のソファ2222上に着座するための軌道2312aによって図示されるように)。場面2302aに図示されるように、Bobのアバタ1100は、Aliceの本移動に応答し得る(Aliceは、Bobのアバタにとって関心オブジェクトと見なされる)。その結果、Bobのアバタ1100は、Bobのアバタ1100がAliceと対面してやりとりするままであるように、自らを自動的に再配向することができる(矢印2214aによって図示されるように)。図12A-18Bを参照して説明されるように、いくつかの実装では、Bobのアバタ1100はまた、(彼女がソファ2222上に着座後の)Aliceと(環境内で立っているような)Bobのアバタ1100との間の高低差に基づいて、自動的にサイズ変更されることができる。例えば、Bobのアバタ1100は、Aliceとの目と目を合わせたやりとりを維持するために、動的にスケールダウンされることができる。
その環境とのAliceの相互作用は、その相互作用の意図に基づいて、Bobの環境にマッピングされることができる。しかしながら、Bobの環境は、ソファを有していない。Aliceの相互作用の意図は、着座可能表面上に着座することであり得る。Bobのウェアラブルデバイスは、着座可能表面を自動的に検出し(例えば、図21Bおよび21Cを参照して説明される、技法を使用して)、着座可能表面上に着座するようにAliceのアバタ1000をレンダリングすることができる。場面2302bに示されるように、Bobは、そのウェアラブルデバイスを介して、Aliceのアバタが、軌道2312bに沿って移動し、ベッド2226上に着座することを知覚することができる。しかしながら、テーブル2224のアフォーダンスが着座可能表面を含まない(例えば、人物は、典型的相互作用では、テーブル上に着座しないであろう)ため、Aliceのアバタ1000は、テーブル2224上に着座しない。
(仮想関心オブジェクトとの相互作用のための意図ベースのレンダリングの実施例)
本明細書に説明されるように、複合現実環境内の各ユーザは、異なる物理的環境を有する(または同一物理的環境の異なる位置に存在し得る)が、それでもなお、仮想体験の少なくとも一部を別のユーザと共有し得る(例えば、仮想環境内の同一オブジェクトと相互作用することによって)。しかしながら、ユーザは、完全に異なる物理的環境内に存在し得るため、共有仮想オブジェクトおよび遠隔アバタの位置および配向は、特定のユーザに一意であり得る。共通環境レイアウトの欠如は、その独自の仮想環境内の他のユーザに論理的意味を成すように、その独自のローカル環境内のユーザの焦点または通信キューを遠隔アバタにマッピングすることを困難にする。例えば、ユーザが、右を見ると、その独自のローカル環境内の共有仮想オブジェクトが見える場合、その遠隔アバタにもまた右を見させることは、共有仮想オブジェクトが実際には遠隔仮想環境内のアバタの左にある場合、意味を成し得ない。
別の実施例として、そのウェアラブルシステムによって彼女に表示されるAliceの仮想体験では、Bobのアバタが、Aliceの正面に立っていて、木がその右にあって、巨石がその左にあり得る。Bobの仮想体験では、Bobは、Aliceのアバタの左に立っていて、巨石および木の両方がその右にあり得る。Bobの1対1の頭部および手移動を伝送する単純なアプローチは、Bobが、見ている、または相互作用しているオブジェクトがAliceに明確になり得ない。単に、Bobのアバタの配向を具体的オブジェクトに強制的にスナップさせることは、Bobの意図および性格を伝える、わずかな頭部および手移動を取り除き得る。故に、図19A-23を参照して説明されるように、本明細書に説明されるウェアラブルシステムは、Bobが、Bobの環境内の木の上部を見ている場合、木がAliceの仮想環境内の異なる相対的場所にある場合でも、Aliceには、その仮想環境内の木の上部を見ているBobのアバタが見えるであろうように、Bobの関心点および移動をBobの仮想環境からAliceの仮想環境に再マッピングすることができる。
図19A-23を参照して説明されるように、したがって、直接、ユーザの移動をアバタの移動の中にマッピングする、1対1のマッピングを使用するのではなく、意図ベースのレンダリングを使用して、環境内のオブジェクトとのユーザの相互作用をその遠隔アバタ上にマッピングすることが、有利であり得る。仮想アバタの意図ベースのレンダリングでは、ウェアラブルシステムは、環境内の関心アイテムに関連するユーザの配向に基づいて、遠隔仮想アバタの相互作用をマッピングしてもよい。遠隔アバタは、したがって、アバタに関心アイテムとの相互作用を失わせ得る、ユーザの移動を厳密に模倣する(1:1マッピングにおけるように)のではなく、ユーザが合焦しているオブジェクトに向かって方向転換または対面し得る。例えば、ユーザが、方向転換し、その右の仮想オブジェクトを調べる場合、ユーザの遠隔アバタは、その同一仮想オブジェクトを遠隔アバタの左において識別し、左に方向転換させてもよい。遠隔アバタは、したがって、ユーザの移動を厳密に模倣せず、依然として、ユーザの意図を捕捉し、仮想オブジェクトに向かって向いている。いったん関心オブジェクトが、識別されると、ユーザのウェアラブルシステムは、アバタの意図を行うようにアバタを操作することができる。
図24は、関心オブジェクトに基づく意図ベースの仮想アバタレンダリングの概要のブロック図を示す。仮想アバタの意図ベースのレンダリングは、仮想環境内のユーザの姿勢に依存し得る。ブロック図は、図6Bを参照して説明される、意図マッピングシステム684によって実装されてもよい。いくつかの実施形態では、ユーザの姿勢は、図4に示されるウェアラブルシステムに類似する、外向きに面したシステムまたは内向きに面した結像システム(例えば、眼視線のため)またはIMUを伴う、ウェアラブルシステムを使用することによって、決定されてもよい。ユーザの姿勢データは、それぞれ、ブロック2450および2460において、身体姿勢および眼視線の成分にさらに分割されてもよい。ブロック2470では、ユーザの身体姿勢および眼視線データは、仮想環境内でユーザが相互作用し得る、関心オブジェクトを識別するために使用されてもよい。ユーザの仮想アバタは、次いで、ブロック2480において、識別された関心オブジェクトとのユーザの相互作用イベントを反映させるようにレンダリングされてもよい。
意図ベースのレンダリングの具体的実装は、ユーザの焦点または関心アイテムを決定するステップに依拠し得る。図25A-25Dは、関心アイテムが2人のユーザ間で共有される、関心アイテムを決定するための実施例を図示する。図25Aは、仮想オブジェクトおよびアバタが仮想環境内に設置され得る方法を図示することから開始する。ユーザA2510およびユーザB2560は、その独自のローカル仮想環境2500および2550内に設置される。ユーザA2510には、ローカル仮想環境2500内において、仮想三角形2520、仮想正方形2530、およびユーザ2560の遠隔アバタB2540が見え得る。ユーザB2560にもまた、ローカル仮想環境2550内において、仮想三角形2520、仮想正方形2530、およびユーザA2510の遠隔アバタA2570が見え得る。しかしながら、仮想オブジェクトおよび遠隔アバタの位置および配向は、各ユーザに一意であり得る。実施例として、図25Aでは、仮想三角形2520および仮想正方形2530は、ローカル環境2500内のユーザA2510の左に現れる。一方、仮想正方形2530は、ローカル仮想環境2550内のユーザB2560の右にあるが、仮想三角形2520は、ユーザB2560の正面にある。加えて、遠隔アバタ2540は、仮想環境2500では、ユーザ2510に向かって向いているが、ユーザAの遠隔アバタ2570は、ローカル仮想環境2550では、ユーザB2560から外方を向いている。
図25Bは、いったん仮想オブジェクトまたは仮想アバタが仮想環境全体を通して設置されると関心アイテムが識別され得る方法の実施例を図示する。仮想環境内のオブジェクトは、潜在的関心アイテムとしてマークされることができる。いくつかの実施形態では、ベクトルが、ユーザから各潜在的関心アイテムに向かって投影されてもよい。図25Bでは、仮想三角形2520、仮想正方形2530、および遠隔アバタ2540は全て、潜在的関心アイテムと識別され得る。仮想三角形2520、仮想正方形2530、および遠隔アバタ2540は全て、それぞれ、対応するベクトル2502、2504、および2508によって表され得る。各対応するベクトルは、次いで、直接、ユーザ2510からユーザ2510が向いている方向に向かって投影される、ユーザの現在の通視線ベクトル2506と比較されてもよい。図25Bにおける対応するベクトル2502、2504、および2508は、ユーザ2510から各対応する仮想オブジェクトに向かって延在するが、異なるベクトルまたは方法が、他の実施形態では、使用されてもよい。例えば、ベクトルは、そのローカル原点であり得る、仮想環境内のオブジェクトの位置を指すことができる。その原点がレンダリングモデルに関連して指す場所は、仮想オブジェクトがレンダリングモデル内に定義される方法に応じて変動し得る。いくつかのオブジェクトに関して、ベクトルは、ユーザまたはオブジェクトの幾何学的中心に最も近い点に向かって指す。大オブジェクト(例えば、3フィート、6フィート、8フィート、またはそれを上回る等の閾値よりも大きいサイズを伴うもの)に関して、それぞれ、その独自のローカル関心点とタグ付けされる、サブアセンブリを作成することが可能である。
図25Cおよび25Dは、複数の潜在的関心アイテムの中から関心アイテムを決定する実施例を図示する。関心アイテムは、仮想場面内の全ての潜在的関心アイテムに関して関心値を計算することによって決定されてもよい。オブジェクトの関心値は、ユーザがオブジェクト上に合焦している強度を表す数であってもよい。具体的に図25Cおよび25Dでは、潜在的関心アイテムに関する関心値は、ユーザの通視線(V)を表すベクトルと関心アイテムへの方向を表すベクトル(図25Cでは、ベクトルBと称される)との間のドット積を算出することによって計算される。結果として生じるスカラー値は、関心アイテムに関する関心加重Wによって乗算されることができる。したがって、関心値は、加重されたドット積であって、これらの実施例では、関心値=(V・B)*Wである。ドット積は、ドット積が、2つのベクトルが同一方向に向いている(ユーザがオブジェクトを見ている)ことを示す、2つのベクトルが平行である(それらの間にゼロ角度)とき、正の大きさにおいて最大であるため、有用である。ドット積は、ユーザがオブジェクトに向かって見ていないことを示す、2つのベクトルが相互に垂直である(それらの間に90度の角度)とき、ゼロである。したがって、ドット積は、ユーザの通視線上またはその近傍の関心アイテムを選択する傾向にある。ユーザの背後のオブジェクトに関して、ドット積は、負であって、したがって、加重されたドット積は、ユーザの正面の関心アイテムを選択する傾向にあるであろう。
オブジェクトの関心加重Wは、ユーザがオブジェクト上に合焦することを所望するであろう可能性を表す数であってもよい。関心加重が大きいほど、オブジェクトにより大きい関心を示し、関心加重が小さいほど、オブジェクトにより少ない関心を示す。図25Cでは、仮想三角形2520、仮想正方形2530、および遠隔アバタ2540は、潜在的関心アイテムである。仮想三角形2520の関心値は、ユーザの通視線ベクトル2506とベクトル2502との間のドット積を算出することによって、計算されてもよい。類似計算は、仮想正方形2530および遠隔アバタ2540に関しても行われてもよい。図25Cにおける潜在的関心アイテムの関心加重は、等しい(本実施例では、W=1.0)ため、最高関心値を伴う潜在的関心アイテムは、ユーザの通視線ベクトル2506に最も近いものである。したがって、図25Cに示される特定の実施例では、仮想正方形2530は、仮想正方形の関心値(0.90)が仮想三角形(0.45)または遠隔アバタ(0.65)に関する関心値より大きいため、関心アイテムである。ある実施形態では、直接、ユーザの通視線ベクトル内にあるオブジェクトは、デフォルトによって、関心アイテムであってもよい。
図25Cにおける実施例に示されるオブジェクトは、等しい関心加重を有するが、他の実施形態は、異なる関心加重を伴うオブジェクトを有してもよい。図25Dは、潜在的関心アイテムが異なる関心加重を有し得る、関心アイテムを決定する実施例を図示する。図25Dにおける場面は、図25Cにおける場面と同一であるが、遠隔アバタ2540は、仮想三角形2520および仮想正方形2530(それぞれ、W=1.0を有する)より高い関心加重(W=1.5)を有する。より高い関心加重を伴うオブジェクトは、他のオブジェクトより通視線ベクトル2506から離れている場合でも、関心アイテムとなり得る。また、(そのドット積が全てほぼ等しいような)ユーザから共通方向に沿ってあるオブジェクトに関して、最大関心加重を伴うオブジェクトは、関心アイテムとして選択されるであろう。図25Dでは、遠隔アバタ2540は、より高い関心加重および全体的なより高い関心値(0.975)を有し、したがって、仮想正方形2530が、通視線ベクトル2506により近い場合でも、より低い関心値(0.90)を伴うため、関心アイテムとなる。
潜在的関心アイテムの関心加重は、仮想場面内のイベントに応答して、動的に増加または減少してもよい。例えば、図25Dにおける遠隔アバタ2540の関心加重は、遠隔アバタ2540が発話しているとき、増加し得、遠隔アバタ2540が発話を停止すると、減少し、ユーザが現在発話しているアバタにより関心がある可能性が高いことを反映させ得る。数人のユーザまたはアバタが一度に発話している場合、彼らはそれぞれ、等しく加重され得、関心アイテムは、ユーザのビューベクトルの最近傍のユーザまたはアバタであり得る。
ユーザによって操作されているオブジェクトは、より多くの加重を得る場合がある。例えば、ユーザが、仮想チェスのゲームをプレーしており、そのアバタ対戦者が、ユーザのクイーンを取り上げる場合、クイーンが、現在、チェスゲームにおいて着目されているため、クイーンは、より重く加重され、より関心を誘引する状態となり得る。同様に、指し示されているが、ユーザまたはアバタによって直接操作されていない、オブジェクトは、より重い加重を得てもよい。仮想バードウォッチング体験のある実施例では、ユーザおよびアバタは、特定の仮想鳥、例えば、アカアシミツユビカモメを見ている場合があり、これは、現在の関心アイテムである。アバタが、仮想環境内の別の仮想鳥、例えば、ナキハチクイモドキを指し示す場合、ナキハチクイモドキの関心加重は、関心アイテムがアカアシミツユビカモメからハチクイモドキに変化するように、十分に増加されることができる(例えば、アカアシミツユビカモメの関心値と比較して)。図26A-26Fは、各オブジェクトが等しい関心加重を有すると仮定して、仮想環境内のオブジェクト毎に関心値を計算し、関心アイテムを決定する実施例を示す。図26A-26Fによって図示される具体的実施例は、ベクトルのドット積乗算および等しい関心加重を使用するが、他の実施形態は、異なる方法(例えば、異なるオブジェクトに関する不等関心加重)を使用してもよい。
図26Aは、実施例の初期場面を提示する。図26Aでは、ローカルユーザ2620、遠隔アバタ2640、大ドラゴン2660、および小ドラゴン2680は全て、3次元空間内の一意の位置を占有する。オブジェクトの位置は、デカルト座標値(x、y、z)によって表されるが、他の座標系も、他の実装では、使用されることができる。例えば、ローカルユーザの位置は、(0、2、0)にあって、遠隔ユーザB2640の位置は、(4、2、6)にある等となる。
図26Bは、図26Aに提示される場面を複製する。しかしながら、図26Bはまた、図26Aからの各オブジェクトがユーザ2620から各オブジェクトまで延在するベクトルと関連付けられ得ることを示す。例えば、ユーザからオブジェクトB2640までのベクトルは、ベクトルABであって、デカルト座標値(0.555、0、0.832)を有する。本実施例では、ベクトルは全て、長さ1.0を有するように正規化される(例えば、それらは、単位ベクトルである)。図26Bにおける順方向ベクトルAF2610は、ユーザの通視線を表す。本実施例では、順方向ベクトルAFは、座標(0、0、1)を有する。
図26C-26Eは、仮想場面内の3つのオブジェクトの関心値を計算する実施例を図示する。周知のように、座標値、それぞれ、(V1x、V1y、V1z)および(V2x、V2y、V2z)を有する、2つのベクトルV1およびV2のドット積は、V1・V2=(V1x*V2x)+(V1y*V2y)+(V1z*V2z)である。図26Cは、遠隔アバタ2640の関心値を計算する実施例を示す。図26Cでは、遠隔アバタ2640の関心値は、順方向ベクトルAF2610と、ユーザ2620から遠隔アバタ2640に向いている、ベクトルAB2630のドット積である。ドット積式を適用すると、ユーザに対する遠隔アバタ2640の関心値は、AF・AB=(0*0.555)+(0*0)+(1*0.832)=0.832となる。1.0と等しくない関心加重Wが、遠隔アバタのために使用される場合、ドット積の本値は、Wによって乗算され、関心値に達するであろう。
図26Dおよび26Eは、図26Cに図示される同一方法を使用して、大ドラゴン2660および小ドラゴン2680に関する関心値を計算する実施例を示す。図26Dに示されるように、大ドラゴン2660の関心値は、順方向ベクトルAF2610およびベクトルAC2650のドット積であって、これは、0.911と等しい。同様に、図26Eに示されるように、小ドラゴン2680の関心値は、順方向ベクトルAF2610およびベクトルAD2670のドット積であって、これは、0.408と等しい。図26Fは、図26C、26D、および26Fにおいて計算される関心値を比較することによって、関心アイテムを決定する実施例を示す。大ドラゴン2660は、最高関心値(0.911)を有するため、ユーザ2620にとって関心アイテムとなる。大ドラゴン2660は、ユーザの通視線AFに最も近いオブジェクトであって、故に、本実施例では、関心アイテムとして選択されることに留意されたい(関心加重が全て等しい場合)。オブジェクトが、仮想環境内で移動するにつれて、その座標値は、変化し、ユーザの順方向ベクトルとオブジェクトまでのベクトルとの間の対応するドット積も、変化する。したがって、仮想環境内の異なるオブジェクトが、経時的に、関心アイテムとなり得る。上記に説明されるように、関心加重を動的に変動させることは、関心アイテムが別のオブジェクトよりユーザの通視線から遠いオブジェクトであり得るように、オブジェクト毎に使用されることができる。
いくつかの実施形態では、オブジェクトに関する関心加重Wは、少なくとも部分的に、ユーザとオブジェクトとの間の距離に依存し得る。例えば、関心加重は、オブジェクトまでの距離がより短い場合、より大きく、それによって、ユーザの近傍のオブジェクトがユーザにとってより関心を誘引する傾向にあるであろうことを示してもよい。関心値はまた、環境内のコンテキスト要因を表してもよい。例えば、仮想ゲームでは、危険なゲーム要素(例えば、大ドラゴン)または貴重なアイテム(例えば、金の王冠)は、ユーザが、中立/受動的ゲーム要素と相互作用するより、危険なゲーム要素と戦う、または貴重なアイテムを見出すことに関心がある可能性が高いであろうため、より中立的または受動的ゲーム要素(例えば、岩または非威嚇的プレーヤ)より高い関心値を割り当てられてもよい。
図27は、意図ベースのレンダリングの間、他のウェアラブルデバイスによって、1つのウェアラブルデバイスから別のウェアラブルデバイスに通信され得る、情報の実施例を示す。図27では、仮想正方形2710は、関心アイテムであると決定され、仮想正方形の対応するベクトル2720およびユーザ2700の現在の通視線ベクトル2740は、角度θ2730だけオフセットされる。仮想正方形およびオフセット角度(および随意に、関心加重)を表す、識別子2750が、アバタの関心アイテム情報として遠隔ウェアラブルシステムに通信されてもよい。関心アイテム情報が、遠隔システム2760によって受信されると、システム2760は、遠隔仮想環境内の関心アイテムに面するように遠隔アバタの配向を調節してもよく、本システムは、伝送されるオフセット角度θ2730だけ遠隔アバタの頭部を回転させてもよい。一方、図27におけるオフセット角度は、2次元平面における角度θを表すが、オフセット角度は、特定の値または2次元平面に限定されない。他の実施例は、3次元空間内の複数の可能性として考えられる角度、例えば、ロール、ピッチ、およびヨー等のオイラー角を伴ってもよい。第1のウェアラブルシステムから別のウェアラブルシステムへの関心情報の通信は、図9Aを参照して説明される、ネットワーク990を経由して生じ得る。関心情報の通信は、持続的に生じることができ、関心アイテムの決定は、アバタ挙動が自然かつシームレスに現れるように、リアルタイムで実施されることができる。したがって、異なるユーザの仮想環境が、非常に異なり得る場合でも、その個別のウェアラブルシステムによってユーザに表示されるアバタは、自然に現れ、各ユーザは、相互作用されているオブジェクト、アバタの注意、およびアバタの意図される移動を容易に決定することができる。
図28Aおよび28Bは、関心オブジェクトに基づいて仮想アバタをレンダリングする実施例を図示する。図28Aは、2つの仮想環境の初期設定の実施例を図示する。ユーザAの仮想環境2800では、ユーザA2810は、仮想三角形2820および仮想正方形2830をその左に、遠隔仮想アバタ2840(ユーザBのもの)をその右に視認し得る。遠隔アバタ2840は、最初に、ユーザ2810に向かって向いている場合がある。ユーザBの仮想環境2802では、ユーザB2850は、遠隔アバタ2860(ユーザAのもの)を目の前に、仮想三角形2820、仮想菱形2870、および仮想正方形2830をその右に視認し得る。遠隔アバタ2860は、最初に、ユーザ2850から外方を向いている場合がある。
図28Bでは、ユーザ2810の関心アイテムおよびオフセット角度1815に関連する関心情報2804が、レンダリングするために、ユーザB2850のウェアラブルシステムに通信されてもよい。図28Bに提示される実施例では、仮想正方形2830は、関心アイテムであって、通視線ベクトル2825からオフセット角度2815だけオフセットされる。関心情報2804が、ユーザAのウェアラブルシステムによって通信され、ユーザBのウェアラブルシステムによって処理されると、遠隔アバタ2860は、関心アイテムの位置に面するように配向されてもよく、遠隔アバタ2860の頭部は、関心アイテム(正方形2830)に対する頭部の配向が環境2800と2802との間で同一のままであるように、伝送されたオフセット角度2815だけ回転されてもよい(例えば、ユーザの頭部は、環境2800内の関心アイテムに向いている場合、ユーザの仮想アバタもまた、関心アイテムから目を背けるのではなく、関心アイテムに向き得る)。
図29A、29B、および29Cは、関心アイテムを再計算する実施例を図示する。例証目的のために、図29A、29B、および29Cは、2つの列に分裂され、一方は、ビデオ会議の間のユーザ2930の仮想環境を表し、他方は、ユーザ2960の仮想環境を表す。2つの列は、本実施例全体を通して仮想環境内で生じるアクションの順序を表す、場面のシーケンスを含む。以下の実施例は、関心アイテムおよびオフセット角度を識別することに依拠するが、他の実施形態は、他の方法を使用して、関心アイテムを再計算してもよい。
実施例は、場面2900および2902から開始する。ユーザ2930およびユーザ2960はそれぞれ、その独自のローカル仮想環境内に存在する。これらの図では、破線輪郭を伴うオブジェクトは、2人のユーザの環境間の共有仮想コンテンツである。仮想三角形2950および仮想正方形2940は、両ローカル環境に見出され得る、共有仮想オブジェクトである。場面2904および2906では、ビデオ会議が、開始し、遠隔アバタ2970および2980が、特定のローカル環境内で論理的意味を成す場所にスポーンされる。場面2904および2906では、仮想アバタ2970および2980は、オブジェクトが環境内にすでに存在するエリアにおけるスポーンを回避し、デフォルトによって、それぞれ、ユーザ2930および2960に向かって向くようにスポーンされる。
場面2908および2910では、潜在的関心アイテムが、仮想環境内で識別されてもよく、関心アイテムは、ユーザ毎に決定されてもよい。ある実施形態では、遠隔アバタは、場面2908および2910に示されるように、デフォルトによって、最も関心を誘引する関心アイテムとして設定されてもよい。
次に、図29Bの場面2912では、ユーザ2930は、仮想正方形2940に向くように方向転換する。ユーザ2930のウェアラブルシステムは、ユーザ2930にとって最高関心値を伴う関心アイテムを再計算してもよい。例証目的のために、仮想正方形2940は、本特定の実施例では、ユーザAにとって最高関心値を伴う新しい関心アイテムであると決定された。場面2914は、ユーザ2930が仮想正方形2940に向かって方向転換する間であるが、ユーザAの関心情報がユーザBのウェアラブルシステムに伝送される前の、ユーザ2960のローカル環境を示す。ユーザ2930の関心アイテムに関する情報は、場面2914内でまだ受信されていないため、遠隔アバタ2980は、まだ位置を変化させていない。しかしながら、伝送される情報の受信に応じて、ユーザBのウェアラブルシステムは、移動し、ユーザ2930の意図に合致するように遠隔アバタ2980をレンダリングしてもよい。仮想正方形2940は、場面2912内のユーザ2930の関心アイテムと識別されたため、遠隔アバタ2980は、仮想正方形2940に向かって方向転換し、場面2918内のユーザ2930の意図に合致させてもよい。
図29Cでは、遠隔アバタ2980が、ユーザ2930の意図に合致するように移動した後、ユーザ2930は、場面2920内での移動を停止し、ユーザ2960は、場面2922内の遠隔アバタ2980から離れるように方向転換する。ウェアラブルシステムは、ユーザ2960にとって最高関心値を伴う関心アイテムを再計算してもよい。場面2922内のユーザ2960は、直接、仮想三角形2950を見ていないが、仮想三角形2950は、例証的目的のために、場面2922内のユーザ2960の関心アイテムであると決定される。ユーザBのウェアラブルシステムは、ユーザ2960の関心アイテムおよびオフセット角度に関する関心情報をユーザAのウェアラブルシステムに通信し、これは、移動し、ユーザ2960の意図に合致するように遠隔アバタ2970をレンダリングする。具体的には、場面2924では、遠隔アバタ2970は、仮想三角形2950に向かって方向転換し、次いで、伝送されたオフセット角度だけ回転し、場面2922からのユーザ2960の意図、すなわち、ユーザBが仮想三角形2950に関心があるということに合致させてもよい。
アバタをレンダリングする付加的実施例が、ここで説明される。一実施例では、アバタは、開けたスポットにスポーンし、初期場面に関する最高関心アイテムに向き、デフォルト選好では、他のアバタに向く。1つのみの他のアバタが存在する場合、これは、他のアバタに向いていることを意味するであろう。複数のアバタが存在し、そのうちの1つが発話している(例えば、より高い関心加重を有する)場合、アバタは、話者に向くようにスポーンされる。複数のアバタが存在し、それらが全て(または大部分が)同一関心アイテムを有する場合、ウェアラブルシステムは、共有関心アイテムを新しくスポーンされたアバタの関心アイテムにすることができる。複数のアバタが存在し、共通関心アイテムが存在しない場合、ウェアラブルシステムは、新しくスポーンされたアバタの関心アイテムを最も近いユーザにすることができる。
別の実施例として、ユーザが、そのローカル環境内で移動すると、ユーザのアバタも同様に、他のユーザの仮想環境内で移動する。移動は、以下のルールによって統制されることができる。頭部姿勢ベクトルが、描かれる。ベクトルは、ユーザの頭部から各潜在的関心アイテムまで描かれる。関心値は、潜在的関心アイテム毎に、計算されることができる(例えば、加重されたドット積を使用して)。アバタは、実ユーザと最高関心アイテムからの同一角度オフセットに移動される。
(アバタをレンダリングするための例示的プロセス)
図30Aは、関心オブジェクトに基づいてアバタをレンダリングするための例示的プロセスのフロー図である。プロセスは、図6Bを参照して説明される、意図マッピングシステム694によって実施されてもよい。図4に説明されるウェアラブルシステムおよび図24に説明されるプロセスと同様に、ウェアラブルシステムは、ブロック3000において、外向きに面した結像システム、内向きに面した結像システム(例えば、眼視線のため)、またはIMUを使用して、ユーザの姿勢データにアクセスしてもよく、ユーザの姿勢データは、身体姿勢または眼視線成分を含んでもよい。ウェアラブルシステムは、次いで、ブロック3010において、ユーザの環境内の複数の仮想オブジェクトを識別してもよい。ユーザの環境内の複数の仮想オブジェクトを識別後、ウェアラブルシステムは、ブロック3020において、仮想オブジェクト毎に、加重値を決定し、割り当ててもよい。仮想オブジェクトに関する加重値は、少なくとも部分的に、仮想オブジェクトのコンテキスト情報および意味論情報に基づいてもよい。例えば、仮想アバタが、ユーザに話しかけている場合、仮想アバタは、より高い加重値を割り当てられてもよい。
仮想アイテム毎に加重値を決定後、ウェアラブルシステムは、仮想オブジェクト毎に関心値を計算することによって、ブロック3030に継続してもよい。仮想オブジェクト毎の関心値は、少なくとも部分的に、ユーザの姿勢データおよび仮想オブジェクトの加重値に基づいて、例えば、関心加重によって加重されたドット積として、計算されてもよい。仮想オブジェクト毎に関心値を計算後、プロセスは、少なくとも部分的に、仮想オブジェクトの関心値に基づいて、仮想オブジェクトを選択することによって、ブロック3040に継続する。例えば、プロセスは、ある実施形態では、全ての仮想オブジェクトの中から最高関心値を伴う仮想オブジェクトを選択してもよい。仮想関心オブジェクトを選択後、選択は、ブロック3050において、第2のユーザのウェアラブルデバイスに通信され、ブロック3060において、第2のユーザのウェアラブルデバイスによって受信されてもよい。
本特定の例示的プロセスは、仮想オブジェクトの選択を通信することに焦点を当てるが、第2のユーザのウェアラブルデバイスに通信される情報は、選択された仮想オブジェクトの識別に限定されない。ある実装では、通信される情報は、選択されたオブジェクトの識別、オフセット角度、およびおそらく、それ以上のものを含んでもよい。ブロック3060において、通信された情報を受信後、第2のユーザのウェアラブルシステムは、ブロック3070において、第1のユーザの仮想アバタに対する選択された仮想関心オブジェクトの場所を識別してもよい。いったん仮想関心オブジェクトが、第1のユーザの仮想アバタに対して識別されると、第2のユーザのウェアラブルシステムは、ブロック3080において、仮想関心オブジェクトの場所に基づいて、第1のユーザの仮想アバタの位置または配向を調節してもよい。
図30Bは、条件の変化が存在するときの関心オブジェクトに基づいてアバタをレンダリングするための例示的プロセスのプロセスフロー図である。プロセスは、図6Bを参照して説明される、意図マッピングシステム694によって実施されてもよい。条件の変化が、ブロック3005において、第1のユーザのウェアラブルシステムによって検出される場合、ウェアラブルシステムは、ブロック3015において、検出された条件の変化に基づいて、仮想オブジェクト毎に関心値を再計算してもよい。実施例の目的のために、条件の変化は、ある実施形態では、ユーザの姿勢の変化、仮想関心アイテムの移動、または他の可能性を含んでもよい。
関心値を再計算後、プロセスは、最高関心値を伴う仮想関心オブジェクトを決定することによって、ブロック3025に継続してもよい。ある実施形態では、識別された仮想オブジェクトと、条件の変化が生じる前に最高関心値を有していた仮想オブジェクトとは、異なり得る。そのような実施例では、第1のユーザのウェアラブルシステムは、ブロック3035において、仮想関心オブジェクトを識別された仮想オブジェクトに更新してもよい。いったん第1のユーザのウェアラブルシステムが、識別および選択されると、ウェアラブルシステムは、ブロック3045において、選択を第2のユーザのウェアラブルデバイスに通信してもよい。いくつかの実施形態では、通信される情報は、選択された仮想関心オブジェクトの識別子およびオフセット角度を含んでもよい。しかしながら、付加的または異なる情報は、他の実施例では、通信されてもよい。
第2のユーザのウェアラブルシステムが、ブロック3055において、通信された選択を受信すると、ウェアラブルシステムは、ブロック3065において、第1のユーザの仮想アバタの位置に関連して更新された仮想関心オブジェクトの場所を識別してもよい。いったんウェアラブルシステムが、更新された仮想関心オブジェクトの場所を識別すると、ウェアラブルシステムは、3075において、仮想アバタの位置または配向を調節してもよい。例えば、仮想アバタは、ある実施形態では、直接、更新された仮想関心オブジェクトの場所に向かって向くように調節されてもよい。
(環境刺激に基づくアバタレンダリングの実施例)
本明細書に開示されるシステムおよび方法は、アバタがより現実的かつ生きているように複合現実システムのユーザに現れるように、アバタをレンダリングすることができる。ユーザの環境内のオブジェクトは、現実または仮想としてカテゴリ化されることができ、ウェアラブルシステムは、アバタがその複合現実環境内で相互作用および決定を行うように構成されることができる。アバタは、アバタが、エージェンシー、存在性、または自然性の外観をユーザに与えるように、レンダリングされることができる。エージェンシーは、仮想アバタの属性であってもよい。エージェンシーが、仮想アバタのために有効にされると、仮想アバタは、独自に行動するように現れることができる(例えば、アバタは、関心誘引を見出す対象についてその独自の決定を行うように現れてもよい)。ウェアラブルシステムは、仮想アバタのためのエージェンシーの外観を作成することができる(例えば、仮想アバタの画像または動画によって)。例えば、エージェンシーの外観を提供するために、ウェアラブルシステムは、アバタがヒトであるかのように、アバタに、視認者の環境内のイベントまたは刺激に自動的に応答させ、特定の効果または結果を生産させることができる。エージェンシーは、例えば、仮想アバタの環境、環境内の視認者の相互作用、および環境内のオブジェクト等の1つ以上のコンテキスト要因によって決定されることができる。ある実装では、コンテキスト要因はまた、例えば、アバタの信念、所望、および意図等のアバタの特性を含むことができる。アバタをより自然かつ生きているようにレンダリングすることによって、ウェアラブルシステムのユーザは、アバタと相互作用するとき、異様な、不気味な、または不快な感覚を体験する可能性が低くなるであろう。例えば、アバタは、その相互作用において、ほぼヒトであるが、完全ではない、アバタに対するヒトの感情応答における急降下を表す、いわゆる、不気味の谷に陥る尤度を低減させるように、レンダリングされることができる。
2人のユーザ間で共有される仮想オブジェクトに基づいて、仮想アバタを動画化することに加えて、またはその代替として、ウェアラブルシステムはまた、アバタがその中にレンダリングされる、環境に基づいて、アバタを動画化することができる。ウェアラブルシステムは、仮想アバタが、自然かつヒトのような決定を行い、その中にそれがレンダリングされる複合現実環境に反応することを可能にすることによって、仮想アバタを生きているように現れさせることができ、これは、仮想アバタにエージェンシーおよび存在性の外観を与えることができる。例えば、ウェアラブルシステム(例えば、刺激応答システム696を介して)は、これに対してアバタが反応し得る、あるカテゴリの環境オブジェクトまたは環境刺激(本明細書では、関心誘引誘発要因と称される)を自動的に識別し、視認者の環境内の関心誘引誘発要因に基づいて、アバタの視認者の環境との相互作用を自動的に調節することができる。関心誘引誘発要因は、環境内の視覚的または聴覚的刺激(例えば、移動、外観、または音)であってもよく、これは、アバタの注意を誘引することができる。図31A-37を参照してさらに説明されるように、関心誘引誘発要因は、関心オブジェクト、関心エリア、音、関心オブジェクトの成分、または視認者環境の他のコンテキスト要因と関連付けられてもよい。関心誘引誘発要因は、仮想または物理的オブジェクトおよびその中に仮想アバタがレンダリングされる仮想または物理的環境と関連付けられてもよい。
ウェアラブルシステムは、仮想アバタの自然性を維持するように、関心誘引誘発要因と相互作用するためのアバタの決定を実行することができる。例えば、視認者の環境内に爆発音が存在するとき、ウェアラブルシステムは、爆発源から離れるように走るように仮想アバタをレンダリングすることができる(仮想アバタがヒトであるかのように)。別の実施例として、仮想アバタは、ある人物に話しかけている間、そのユーザまたは人物の顔のソーシャルトライアングル内のアバタの眼視線ベクトル(視線点および視線方向を含むことができる)を偏移させてもよく、これは、その人物とアバタとの間のより自然かつ非威嚇的なヒトのような相互作用を促す。さらに別の実施例として、仮想アバタは、長時間にわたってオブジェクトを見た後、関心を失い得る。したがって、仮想アバタは、別の関心誘引誘発要因を識別し、その注意を前のオブジェクトから他の関心誘引誘発要因に移してもよく、これは、再び、自然なヒトのような挙動により典型的である。
(環境内の関心誘引誘発要因の実施例)
ウェアラブルシステム200(例えば、刺激応答システム696)は、視認者の環境をモデル化し、オブジェクト(例えば、実または仮想オブジェクト)をカテゴリ化し、関心誘引誘発要因を識別することができる。関心誘引誘発要因は、その本来の関心誘引度を表すための値を有することができ、これは、時間経過、オブジェクトまたは環境の変化(関心誘引誘発要因と識別されたオブジェクトまたは環境の一部の変化を含んでもよい)、またはアバタと関連付けられたヒト対応者の相互作用等のコンテキスト要因に基づいて、減衰または増幅し得る。関心誘引度値は、トリガイベントに応答して、持続的にまたは突然、変化し得る。
関心誘引度値がトリガイベントに起因して突然変化する実施例として、関心オブジェクトが書籍であると仮定すると、関心誘引度値は、ページ変化に応答して、増加するであろう。関心誘引度値が持続的に変化する実施例として、関心誘引誘発要因は、話者の手として表され得、手が形状を変化させるにつれて(例えば、話者が主張している点を強調するために)、関心誘引度値は、持続的に増加し得る。関心誘引度値の変化は、関心誘引度値の調節の速さまたは加速の変化を含むことができる。例えば、関心オブジェクト上のトリガイベントに応答して、関心誘引度値の成長と関連付けられた加速または速さは、突然、増加し得る。いくつかの実装では、関心誘引度値の調節の速さまたは加速は、一定のままであり得る。例えば、関心誘引度値は、時間の経過に伴って一定の速さで減衰し得る。図31A-31Cは、視認者の環境内の関心誘引誘発要因のタイプのカテゴリ化の実施例を図示する。図31Aでは、視認者の環境は、種々の関心誘引誘発要因3110を含むことができる。関心誘引誘発要因3110は、聴覚的または視覚的刺激であってもよい。例えば、関心誘引誘発要因3110は、環境3100内の視認者の移動または雑音であってもよい。
図31Aに図示されるように、関心誘引誘発要因3110は、関心誘引オブジェクト3120または関心エリア3130を含むことができる。関心誘引オブジェクトは、図19A-30Bを参照して説明される、関心オブジェクトの実施例であってもよい。ある実装では、関心誘引オブジェクトは、それに向かってアバタが見ている、関心オブジェクトの一部であることができる。下記にさらに説明されるであろうように、関心誘引オブジェクトは、サッカード点(同一方向における2つ以上の固視相間の両眼の迅速かつ同時移動である、サッカード眼球運動の間の関心点と関連付けられることができる)を保持するための多角形構造として説明されることができる。例示的関心誘引オブジェクト3120は、ソーシャルトライアングル3122であることができ、これは、人物(またはアバタ)が、会話の間、合焦する、顔の領域を説明し得る。下記に説明される図31Bは、例示的ソーシャルトライアングルを図示する。
別の例示的関心誘引オブジェクト3120は、視線ボックス3114(また、図31Bに示される)であってもよく、これは、環境または関心オブジェクトとの相互作用の間、ある人物(またはアバタ)が合焦している(例えば、注視している)、オブジェクトまたは別の人物の領域と関連付けられることができる。
図31Bは、例示的ソーシャルトライアングル3112を図示する。図31Bに示されるソーシャルトライアングル3112は、人々が、会話中、合焦する傾向にある、ヒトの顔の一部を図式的に図示する。図31Bにおける実施例では、ソーシャルトライアングル3112は、ある人物の眉毛の若干上から眼を覆って、口まで延びる、三角形である。
ソーシャルトライアングル3112は、例えば、サイズ、形状、境界、エリア等の種々のパラメータを有することができる。ソーシャルトライアングルの境界は、所与の時間におけるサッカード点が第1の人物のソーシャルトライアングルの境界外に到達しないように、第2の人物(またはアバタ)のサッカード眼球運動の間のサッカード点を制約することができる。したがって、ソーシャルトライアングル3112を有する人物を見ている、アバタの眼のサッカード点は、ソーシャルトライアングル3112内に集中される傾向にあり、ソーシャルトライアングル外にならない傾向にある。サッカード点は、ウェアラブルシステムによって、所与の時間におけるアバタの眼視線ベクトルを決定するために使用されてもよい。本明細書に説明されるように、サッカード運動は、ランダムに設置されたサッカード点を伴い得、これは、アバタの眼視線ベクトルをソーシャルトライアングル3112内でランダムに偏移させ得る。眼視線ベクトルはまた、アバタの眼視線を動画化するとき、ソーシャルトライアングル3112内の軌道に沿って移動することができる。例えば、眼視線ベクトルは、最初に、鼻のある点に到達し、次いで、点を左眼上に移動させ、さらに、点を右眼上に移動させる等となり得る。
ある実装では、可能性として考えられるサッカード点は、例えば、ユーザの環境内の仮想または物理的オブジェクトの存在から構築されたクエリ可能データベース等のデータ構造内に保たれ得る。可能性として考えられるサッカード点は、関心誘引オブジェクトの可視空間の和(例えば、ソーシャルトライアングルまたは視線ボックス内のサッカード点)を含んでもよい。クエリ可能データベースは、図7に示されるマップデータベース710の一部であってもよい。クエリ可能データベースはまた、ウェアラブルシステムが、情報を使用して、仮想アバタの眼視線を決定し得るように、例えば、関心誘引オブジェクトに関連する情報(例えば、ソーシャルトライアングルまたは視線ボックス)、関心誘引誘発要因等の他の情報も記憶することができる。ウェアラブルシステムは、クエリ可能データベースにクエリすることによって、関心誘引オブジェクトのサッカード点を自動的に選択することができる(例えば、ランダムに、または定義されたシーケンスに従ってのいずれかにおいて)。ある実装では、サッカード点の選択の頻度は、標的関心誘引オブジェクトの関心誘引度値と関連付けられることができる。例えば、関心誘引度値が高いほど、選択の頻度を増加させ得、関心誘引度値が低いほど、選択の頻度を減少させ得る。
サッカード点をランダムに選択するために、ウェアラブルシステムは、種々の確率論的モデルを利用することができる。例えば、ウェアラブルシステムは、別のサッカード点を関心誘引オブジェクト内の現在のサッカード点の周囲の正規分布から選択することができる(例えば、アバタの眼視線ベクトルが現在設置されている、サッカード点)。別の実施例として、ウェアラブルシステムは、テクスチャチャネルに規定され、テクスチャマップとして関心誘引オブジェクトに適用される、分布関数を使用することができる。例えば、仮想アバタが絵画を見ている場合、絵画は、他の部分よりヒトの眼にとって関心を誘引する、いくつかの部分を有し得る。テクスチャマップが、いくつかの部分がオブジェクト上のその他より関心を誘引することを反映させるように作成されることができる。テクスチャマップは、ヒートマップに類似する属性を有してもよく、テクスチャマップのより明るい部分(例えば、より高い関心誘引度値を伴う部分)は、より関心を誘引する部分を表し、より暗い部分は、あまり関心を誘引しない部分(例えば、より低い関心誘引度値を伴う部分)を表す。これらのマップは、例えば、関心領域を手動で入力する、または示すことによって、プログラマまたはユーザによって定義されてもよい。これらのマップは、例えば、内向きに面した結像システム466内のカメラによって入手されたデータに基づいて等、眼追跡システムから作成されることができる。例えば、ウェアラブルシステムは、オブジェクトのある場所における視認者の眼視線ベクトルの持続時間および位置を追跡することができる。ウェアラブルシステムは、領域が眼視線ベクトルと関連付けられた点のより高い密度を有するため、または眼視線ベクトルがより長い持続時間にわたってその領域(または点)に留まるとき、より関心を誘引する領域を識別することができ、その逆も同様である。代替として、ユーザの性格、気質、プロファイル、または他の属性が、少なくとも部分的に、テクスチャマップを定義し得る。例えば、ユーザが、イヌ好きであると特性評価され、絵画内にイヌが存在する場合、絵画のその部分は、その関心誘引度値を増加させるであろう。
ソーシャルトライアングルのパラメータのうちの1つ以上のものは、構成可能であってもよい。ソーシャルトライアングルのパラメータは、アバタの視認者によって構成されてもよい、またはウェアラブルシステムの中に事前にプログラムされてもよい。例えば、種々の実施形態では、ソーシャルトライアングルの境界は、ウェアラブルシステムによって、図31Bに示されるソーシャルトライアングル3112より少ないまたはより多いエリアを含むように構成されてもよい。別の実施例として、ウェアラブルシステムの視認者は、ソーシャルトライアングルのサイズを規定することができ、ウェアラブルシステムは、規定されたサイズを満たす顔の領域をソーシャルトライアングルとして決定することができる(例えば、眼、鼻、または口が、その中に適合するように、三角形を顔上に設置すること等によって)。ある実装では、ソーシャルトライアングルのパラメータは、顔の配向または位置に基づいて変化してもよい。例えば、ソーシャルトライアングル3212a(図32Aに示される)は、アバタ(図32Aには図示せず)が、人物3210aの顔の側面(より少ない顔特徴を有する)を知覚するが、人物3212dの顔の正面(より多くの顔特徴を有する)も知覚し得るため、ソーシャルトライアングル3212d(また、図32Aに示される)より小さいエリアを有する。さらに、用語「ソーシャルトライアングル」が、本開示では使用されるが(本用語は、従来的使用であるため)、ソーシャルトライアングルによって表される領域の形状は、厳密には、三角形である必要はなく、任意のタイプのポリゴン(例えば、四辺形、五角形、六角形等)、凸面平面形状(例えば、円形、楕円形、または卵形)、または3D形状であることができる。
いくつかの状況では、顔の一部は、人物またはアバタが、直接、顔のその部分を観察することが不可能であり得るように、オクルードされ得る。例えば、視認者は、本明細書に説明されるウェアラブルデバイスを装着している場合、頭部搭載型ディスプレイは、視認者の眼および視認者の鼻の一部をオクルードし得る。その結果、視認者のソーシャルトライアングルと関連付けられたサッカード点は、視認者の眼領域上ではなく、頭部搭載型ディスプレイの表面の一部上に到達し得る。
図31Bはまた、人物がオブジェクトを見ている間のサッカード点を捕捉し得る、3D空間を含み得る、視線ボックス3114の実施例を図示する。本実施例では、視線ボックス3114は、サッカード点と関連付けられた6辺の直方体視線表面によって表される。これは、幅(「W」によって表される)と、高さ(「H」によって表される)と、深度(「D」によって表される)とを有する。種々の実装では、視線ボックス3114は、図31Bに図示される立方体以外の他の2Dまたは3D形状を有することができる(例えば、ボックスは、多角形であってもよい)。視線ボックス3114はまた、ソーシャルトライアングルと類似パラメータを含むことができる。ソーシャルトライアングルを参照して本明細書に説明されるように、視線ボックス3114のパラメータもまた、視認者によって、またはウェアラブルシステムによって自動的に、構成可能であることができる。例えば、視線ボックスの境界または視線ボックスのサイズは、オブジェクトのタイプに基づいて構成されてもよい。例えば、図32Aに示されるように、リュックと関連付けられた視線ボックス3216は、カップと関連付けられた視線ボックス3214aより大きい。
図31A-37を参照してさらに説明されるであろうように、ウェアラブルシステムは、関心誘引オブジェクトに基づいて、アバタの人物またはオブジェクトとの相互作用をシミュレートすることができる。例えば、ウェアラブルシステムは、ソーシャルトライアングルまたは視線ボックス内のサッカード眼球運動を用いて、アバタの眼球運動を動画化することができる。したがって、アバタの眼を人物またはオブジェクト上の特定の点に合焦させるのではなく、ウェアラブルシステムは、関心誘引オブジェクト内の1つの関心点から別の関心点への高速眼移動をシミュレートし、ヒトの眼移動に類似するアバタの眼移動をレンダリングすることができる。アバタの眼のそのようなサッカード運動は、容易に明白ではない場合があるが、実際のヒトの眼移動をシミュレートするため、アバタサッカード眼球運動をレンダリングすることは、アバタと相互作用するとき、自然な感覚につながり得、これは、また、相互作用を不気味の谷から抜け出させることになる。
図31Aを参照して説明されるように、関心誘引誘発要因はまた、関心エリアを含むことができる。関心エリアは、アバタが視認者の空間内で見ている、一般的方向であることができる。これは、2Dエリアとして表され得る。しかしながら、これは、空間次元を有していなくてもよく、むしろ、アバタの視点からの関心誘引誘発要因の指向性であることができる。本タイプの関心誘引誘発要因は、一般的エリアまたは方向におけるイベントを表すために有用であり得る。例えば、光の点滅が、検出される(例えば、視認者のウェアラブルデバイスによって)場合、視認者のウェアラブルデバイスは、光の一般的方向を関心エリアとして表すことができる。有利には、いくつかの実施形態では、これは、正確な位置または潜在的サッカード点のセットに頼らずに、仮想アバタが光の方向を見ることを可能にするであろう。
関心エリアの別の実施例は、音または雑音の一般的方向であることができる。図31Cは、視認者の環境内の音に基づくアバタレンダリングの実施例を図示する。図31Cは、2つの複合現実(MR)場面3150aおよび3150bを図示する。2つのMR場面は、Aliceの環境と関連付けられてもよく、Aliceは、Aliceのウェアラブルデバイス902を介して、Bobのアバタ1100を知覚することができる、ヒト(図示せず)である。Aliceのウェアラブルデバイス902は、最初に、場面3150a内において、西(座標系3154によって示されるように)に向き、その足を見ているように、Bobのアバタ1100をレンダリングしてもよい。Aliceのウェアラブルデバイス902は、Aliceの環境内の大きな雑音3152(例えば、オーディオセンサ232によって入手されたデータを介して)を検出し得る。雑音3152の原点を正確に示す必要なく、Aliceのウェアラブルデバイス902は、雑音が一般的方向3156から生じたことを決定することができる。ウェアラブルデバイス902は、故に、雑音に反応するようにアバタの配向および頭部姿勢を変化させることができる。場面3150bに示されるように、ウェアラブルデバイス902は、アバタの1100配向を西向きから東向きに変化させ、アバタ1100の頭部姿勢または眼視線方向を雑音3152に向かって方向3156を見るように変化させることができる。
関心エリアは、視認者の環境内に固定位置を有し得ないため、関心誘引エリアは、アバタが応答可能であるために仮想アバタの視錐内にあるように要求されない(例えば、コーンまたはレイキャスティングが仮想アバタの目線から実施されるとき)。故に、図31Cに示されるように、アバタは、アバタの背後から生じる音源に応答することができる。アバタは、その視野内の音源に応答することに限定されない。
音または光の一般的方向に加えて、またはその代替として、関心エリアはまた、アバタが、環境内の領域を周期的にチェックし、以前の刺激が存在するかどうかを決定し得るように、以前の刺激のメモリと関連付けられることができる。例えば、図31Cでは、いったん音3152が、フェーディングすると、アバタ1100は、場面3150aに示されるように、その以前の姿勢および配向に戻り得る。関心誘引誘発要因の時間減衰は、下記にさらに説明される。しかしながら、ウェアラブルシステムは、その特定の時間において、その方向における音3152が存在しない場合でも、音源の方向を見るために、その姿勢または配向を場面3150bに示されるものに周期的に変化させるように、アバタ1100をレンダリングしてもよい。別の実施例として、アバタ1100は、最初に、環境内の関心アイテム(例えば、仮想イヌ等)を見ている場合がある。関心アイテムは、環境から退出し得る(例えば、仮想イヌが別の部屋に移動したため)。しかしながら、アバタ1100は、関心アイテムが最後に現れた場所に時々目を向け、関心アイテムが環境内に再度現れるかどうかをチェックしてもよい。故に、いったん関心アイテムまたは関心誘引誘発要因が、環境内で識別されると、アイテムまたは誘発要因への関心低下を表すある時間減衰後、アバタは、アイテムまたは誘発要因に周期的に(または時々)戻ってチェックするかのようにレンダリングされてもよい。
仮想アバタはまた、関心誘引オブジェクト3112または関心エリア3114以外のコンテキスト要因にも応答することができる。仮想アバタの挙動は、アバタがその中に存在する、環境の特性に基づいて、変化してもよい。例えば、仮想アバタが、会議部屋環境内にレンダリングされる場合、視認者のシステムは、仮想アバタが過去の刺激と関連付けられた関心エリアに関してチェックする、尤度または頻度を低減させ得る(例えば、頻繁なチェックは、仕事または事業環境において不適切であり得る)。しかしながら、アバタが、自宅環境に存在するとき、仮想アバタは、過去の刺激と関連付けられた関心エリアに関してより頻繁にチェックしてもよい。別の実施例として、仮想アバタは、仮想アバタがその中に存在する、環境に基づいて、あるタイプの刺激に応答しないように構成されてもよい。上記の同一実施例を継続すると、仮想アバタが、会議環境内に存在する場合、視認者のウェアラブルシステムは、仮想アバタが、電子メッセージの到着を示す、ウェアラブルデバイスからまたは別のコンピューティングデバイスからのリングトーンに応答しないように構成されてもよい。故に、チェックするための頻度は、環境的に依存してもよく、例えば、数秒~数十秒毎から数分毎、最大で1時間に数回までの範囲内であってもよい。
(環境内の関心誘引誘発要因を生成する実施例)
視認者のウェアラブルシステムは、アバタがウェアラブルシステムによってレンダリングされる、ランタイム時、関心誘引オブジェクト3112の存在を検出する、または関心エリア3114を決定することができる。ウェアラブルシステムはまた、関心誘引オブジェクト3112または関心エリア3114の存在に基づいて、ランタイム時、関心誘引誘発要因を生成することができる。生成された関心誘引誘発要因は、例えば、その姿勢、配向、眼視線方向、移動を変化させることによって、発話することによって、発話を中止することによって等、アバタを関心誘引誘発要因に応答させ得る。
関心誘引誘発要因は、視認者の環境内の仮想または物理的刺激に結び付けられることができる。仮想刺激は、仮想コンテンツを環境内にレンダリングする、コンテンツエンジンから生成されたオブジェクトに明示的に結び付けられることができる。実施例として、関心誘引誘発要因は、視認者が仮想書籍のページをフリップすることに応答して、生成されることができる。別の実施例として、関心誘引誘発要因は、顔の表情(例えば、笑顔)または同一環境内にレンダリングされた別の仮想アバタの移動に基づくことができる。
実世界刺激は、デバイスセンサ(例えば、図3に示されるもの等)によって入手されたデータに基づいて、生成されることができる。ウェアラブルシステム200(例えば、刺激応答システム696)は、デバイスセンサから入手されたデータを分析し、検出および分類アルゴリズム(図7におけるオブジェクト認識装置708を参照して説明されるもの等)を介して、データを処理し、イベントのタイプ(例えば、あるオブジェクト、音、または光の存在)を決定することができる。ウェアラブルシステム200は、単独で、または遠隔処理モジュール270(または遠隔コンピューティングシステム920)と組み合わせて、ローカル処理およびデータモジュール260を使用して、そのようなイベント検出を実施することができる。検出および分類アルゴリズムの結果は、次いで、ウェアラブルシステム200によって処理され、関心誘引誘発要因を作成することができる。ある実装では、関心誘引誘発要因は、ウェアラブルシステム200によって記憶されてもよく、仮想アバタの知識ベースの一部であることができる。
図32Aは、実世界刺激に基づいて関心誘引誘発要因を生成する実施例を図示する。本図では、視認者は、ウェアラブルシステムを介して、場面3200内の人々のグループ(人物3210a-3210e)を知覚することができる。本場面3200からの関心誘引誘発要因の実施例は、個別の人物3210a-3210dと関連付けられたソーシャルトライアングル3212a-3212dである。ウェアラブルシステム(例えば、刺激応答システム)は、例えば、1つ以上のオブジェクト認識装置708に基づいて、環境内の人物3210a-3210eの存在を検出することができる。1つ以上のオブジェクト認識装置708は、環境内の人物3210a-3210dの顔の存在を検出するために、種々の顔検出アルゴリズムまたは骨格推定アルゴリズムを採用することができる。いったん検出されると、ソーシャルトライアングル3212a-3212dは、ウェアラブルシステムが本データに効率的にアクセスし得るように、仮想アバタの知識ベースの中に挿入されてもよい。有利には、いくつかの実施形態では、ウェアラブルシステムは、複合現実環境内の他のヒト(および視認者)と注意を共有するようにアバタをレンダリングすることによって、仮想アバタの存在を向上させ、視認者と仮想アバタとの間の双方向体験を改良する。
図32Aには図示されないが、視認者のソーシャルトライアングルもまた、関心誘引誘発要因であることができ、例えば、アバタは、直接、視認者(例えば、ウェアラブルディスプレイデバイスの装着者)と相互作用することを所望し得る。ウェアラブルシステムは、視認者の頭部位置に基づいて(例えば、外向きに面した結像システム464、IMU等から入手されたデータに基づいて)、視認者のソーシャルトライアングルの位置および配向を取得することができる。ウェアラブルシステムは、ユーザの環境の世界フレームに対する頭部姿勢を計算することができる。ウェアラブルシステムはまた、視認者が環境内で動き回るにつれて、視認者のソーシャルトライアングルの位置および配向を追跡および更新することができる。視認者のソーシャルトライアングルはまた、仮想アバタによる相互作用のために、仮想アバタの知識ベースの中に挿入されることができる。
ある実装では、ソーシャルトライアングルの関心誘引度は、顔の表情の検出された変化に関して変調されることができる。ウェアラブルシステムは、人物の顔の表情に基づいて、人物のソーシャルトライアングルと関連付けられた関心誘引度値を修正することができる。例えば、実世界のヒトの顔上の表情が、笑顔からしかめっ面に変化するにつれて、関連付けられたソーシャルトライアングルの関心誘引度値は、上昇し得る(顔の表情の本変化に起因して)。
ウェアラブルシステムはまた、オーディオデータ(例えば、オーディオセンサ232によって入手されたデータ)に基づいて、新しいソーシャルトライアングルを識別することができる。これは、仮想アバタが、発話している個人(環境内の非話者より大きい関心誘引度値を有し得る)を見ることを可能にすることができ、これは、仮想キャラクタの存在を増加させるであろう。例えば、ウェアラブルシステムは、オーディオセンサ232を介して、発話を捕捉し、視認者の環境内の話者の位置を検出することができる。話者の位置に基づいて、ウェアラブルシステムは、以前に検出されていないソーシャルトライアングルを検出し、話者と関連付けられた新しいソーシャルトライアングルを作成することができる。例えば、図32では、ウェアラブルシステムは、人物3210eに関するソーシャルトライアングルを検出しなかった(例えば、人物3210eは、ウェアラブルシステムがその世界マップを更新する前に、場面に進入している場合がある)。しかしながら、ウェアラブルシステムは、人物3210eによる発話を捕捉し得る。本発話データは、ウェアラブルシステムに、人物3210eと関連付けられた画像の領域を再分析させ得、故に、場面3200内の新しいソーシャルトライアングル(人物3210eと関連付けられた)を識別し得る。ウェアラブルシステムは、その世界マップを更新し、人物3210eの存在および本人物と関連付けられたソーシャルトライアングルを反映させることができる。さらに、ウェアラブルシステムは、ヒトが、環境に進入してきた新しい人々に関心を持つ傾向にあり、その方向を見る傾向にあるため、人物3210e(またはそのソーシャルトライアングル)と関連付けられた関心誘引度値を増加させ得る。
ウェアラブルシステムはまた、オーディオデータに基づいて、関心誘引度値を増加させることができる。例えば、ウェアラブルシステムは、ウェアラブルシステムが、ソーシャルトライアングルと関連付けられた人物が発話していることを検出する場合、ソーシャルトライアングルの関心誘引度値を増加させることができる。代替として、ウェアラブルシステムは、ウェアラブルシステムが、ソーシャルトライアングルと関連付けられた人物が発話していない、またはある時間周期にわたって発話しなかったことを検出する場合、ソーシャルトライアングルの関心誘引度値を減少させることができる。有利には、いくつかの実施形態では、オーディオデータに基づいて、ソーシャルトライアングルの関心誘引度値を増加(または減少)させることによって、ウェアラブルシステムは、有利には、仮想アバタが発話している個人の方を見ることを可能にし、仮想アバタにその注意をより高い関心誘引度値を伴う別のオブジェクトに逸させ得る、関心誘引度値減衰を回避することができる。
図32Aはまた、複数の視線ボックス3214a、3214c、3214d、および3216を示す。視線ボックスは、物理的オブジェクト(それぞれ視線ボックス3216および3214aに対応する、リュックおよびカップ等)または物理的オブジェクトの一部(それぞれ、視線ボックス3214cおよび3214dに対応する、足または手等)のために生成されることができる。ウェアラブルシステムは、オブジェクト認識装置708を使用して、物理的オブジェクト(またはその一部)を識別することができる。例えば、オブジェクト認識装置708は、画像分類子を含むことができ、これは、視線ボックスに変換され得る、オブジェクトの3D位置および境界を提供することができる。視線ボックスはまた、仮想アバタの知識ベースの中に挿入されることができ、これは、後に、仮想アバタの注意を決定するために使用されることができる。
生成された視線ボックスの関心誘引度は、オブジェクトタイプ(例えば、オブジェクトと関連付けられた意味論情報として、オブジェクト認識装置708によって決定されることができる)および仮想キャラクタの性格(または気質)を使用して、変調されることができる。例えば、視線ボックスは、ソーダ缶と関連付けられてもよく、仮想アバタは、喉渇特徴を有する。ソーダ缶の生成された視線ボックスと関連付けられた関心誘引度値は、増加され得る。しかしながら、ヒト対応者が水を飲んだばかりであるため、またはアバタが水を飲んだばかりであるため(その仮想環境内で動画化されるように)、アバタが、現時点で喉が渇いていない場合、ソーダ缶の視線ボックスと関連付けられた関心誘引度値は、減少し得る。別の実施例として、関心オブジェクトが、イヌであって、仮想アバタが、イヌに恐怖心を有する場合、イヌ(またはイヌの視線ボックス)と関連付けられた関心誘引度値は、増加し得る。いくつかの実装では、イヌが、仮想アバタのより近くに移動するにつれて、関心誘引度値の増加量は、より高速となり、増加された恐怖心を表し得る。高関心誘引度値は、仮想アバタに、イヌとの自然なヒトの相互作用を反映させる挙動を実施させる、例えば、イヌを見る、またはイヌから離れるように移動させてもよい。本実施例を継続すると、アバタとイヌとの間の距離が増加するにつれて、イヌと関連付けられた関心誘引度値は、減少し得、関心誘引度値が、閾値を下回って低下すると(イヌがもはやアバタにとって脅威ではないことを表し得る)、アバタは、イヌから離れるように移動することを停止するようにレンダリングされてもよい。したがって、環境内のオブジェクトと関連付けられた関心誘引度値を増加および減少させることは、ウェアラブルシステムが、自然かつ現実的なアバタ挙動をレンダリングすることを可能にする。
関心誘引オブジェクト(例えば、視線ボックスまたはソーシャルトライアングル)の関心誘引度値はまた、視認者の注意に基づいて、変調されることができる。例えば、視認者が、視線ボックスまたはソーシャルトライアングルを見ている場合、視線ボックスまたはソーシャルトライアングルと関連付けられた関心誘引度値もまた、視認者の環境内の仮想アバタに関して増加し、それによって、アバタもまた視線ボックスまたはソーシャルトライアングルを見るようにレンダリングされるであろう、尤度を増加させ得る。
図32Bは、関心誘引誘発要因と関連付けられたパラメータを構成し、関心誘引誘発要因を追跡する例示的プロセスを図示する。例示的プロセス3250は、仮想アバタを視認者の環境内にレンダリングするように構成され得る、視認者のウェアラブルシステムによって実施されることができる。
ブロック3252では、ウェアラブルシステムは、例えば、ソーシャルトライアングルまたは視線ボックスの境界または形状等の関心誘引オブジェクトと関連付けられたパラメータを決定することができる。ウェアラブルシステムは、システムの中に事前にプログラムされるパラメータにアクセスすることができる。ウェアラブルシステムはまた、ソーシャルトライアングルまたは視線ボックスと関連付けられたオブジェクトに基づいて、パラメータを動的に決定することができる。例えば、顔に関するソーシャルトライアングルのサイズまたは形状は、顔のサイズまたは顔特徴の特性に応じて変動し得る(例えば、伸長顔は、より長いが、より狭いソーシャルトライアングルを有し得る一方、丸顔は、より広いソーシャルトライアングルを有し得る)。
ブロック3254では、ウェアラブルシステムは、視認者の環境内の関心誘引オブジェクトを識別することができる。ある実装では、本ブロック3254は、ブロック3252の前に実施されることができる。ウェアラブルシステムは、図7におけるオブジェクト認識装置708を参照して説明される、種々の顔認識技法を利用して、視認者の環境内の顔特徴を識別することができ、識別された顔特徴に基づいて、ソーシャルトライアングルを環境内の人物の顔に適合させることができる(例えば、ソーシャルトライアングルは、人物の眼、鼻、および顔の少なくとも一部を含んでもよい)。ウェアラブルシステムはまた、視線ボックスの場所を決定するために、オブジェクト認識装置708を使用して、環境内の物理的オブジェクトを識別することができる。
ソーシャルトライアングルが、アバタと関連付けられる場合、ウェアラブルシステムは、アバタの顔データにアクセスすることによって、ソーシャルトライアングルのための領域を決定することができる。例えば、ウェアラブルシステムは、アバタの3Dモデルと関連付けられた顔パラメータにアクセスし、ソーシャルトライアングルのパラメータに基づいて、アバタの顔の領域の輪郭を描くことができる。ソーシャルトライアングルが、視認者上にある場合、ウェアラブルシステムは、視認者の顔モデルにアクセスし、顔モデルに基づいて、ソーシャルトライアングルを決定することができる。そのような顔モデルは、視認者が、ウェアラブルデバイスを着けている間に生成されてもよい(例えば、外向きに面した結像システム464を使用して、視認者の顔の画像を入手することによって)。顔モデルはまた、視認者の環境内のカメラを用いて視認者の顔を走査することによって入手されてもよい。
ブロック3256では、ウェアラブルシステムは、視認者の環境内の関心誘引オブジェクトを追跡することができる。例えば、ウェアラブルシステムは、それと関心誘引オブジェクトが関連付けられる、人物またはオブジェクトの移動を追跡することができる。ウェアラブルシステムはまた、視認者、別の人物、またはアバタの頭部姿勢を追跡することができ、これは、関心誘引オブジェクトのパラメータの変化(例えば、場所またはサイズの変化)を生じさせ得る。
ブロック3258では、ウェアラブルシステムは、関心誘引オブジェクトのパラメータを動的に更新することができる。例えば、視認者が、動き回るにつれて、ウェアラブルシステムは、視認者の移動に従って、ソーシャルトライアングルの移動を追跡してもよい。別の実施例として、人物が、その頭部を傾斜させるにつれて、ソーシャルトライアングルのサイズまたはソーシャルトライアングルの位置もまた、頭部姿勢に基づいて、変化し得る。
(標的関心誘引誘発要因を識別する実施例)
ウェアラブルシステムは、関心誘引誘発要因の知識ベースを通して周期的に走査し、最も関心を誘引する誘発要因を標的関心誘引誘発要因として選択することができる。いったん標的関心誘引誘発要因が、選択されると、ウェアラブルシステムは、例えば、アバタがその注意を標的関心誘引誘発要因上に集中させているかのようにアバタを配向することによって等、標的関心誘引誘発要因と相互作用するように、アバタをレンダリングすることができる。
図33は、標的関心誘引誘発要因を識別する実施例を図示する。図33における環境3300は、その中にAliceのアバタ1000がレンダリングされる、複合現実環境であってもよい。本複合現実環境は、Bobのウェアラブルデバイス904によってレンダリングされることができる。環境3300は、物理的関心誘引オブジェクト3324および3322を含むことができ、これは、環境内の物理的オブジェクトの一部であってもよい。例えば、物理的関心誘引オブジェクト3324および3322は、視線ボックスと関連付けられてもよい。環境3300はまた、仮想関心誘引オブジェクト3312および3314を含むことができる。仮想関心誘引オブジェクト3312および3314は、複合現実環境3300内でAliceのアバタ1000およびBobによって共有され得る、仮想オブジェクトであってもよい。環境3334はまた、ソーシャルトライアングル3334を含むことができ、これは、Bob(Aliceのアバタ1000の視認者であり得る)のソーシャルトライアングルであってもよい。環境3300はまた、関心誘引エリア3336を含むことができる。物理的関心誘引オブジェクト3324、3322、仮想関心誘引オブジェクト3312、3314、ソーシャルトライアングル3334、および関心誘引エリア3336(例えば、関心誘引エリアの場所、方向、または境界)は、仮想アバタの1000の知識ベースの一部であることができる。
本実施例では、Bobのウェアラブルデバイス904は、デフォルトによって、Aliceのアバタが関心誘引エリア3336を見るようにレンダリングすることができる(アバタ1000の眼移動の領域を示す、サッカード錐3310によって示されるように)。しかしながら、環境3300内の関心誘引オブジェクトは、アバタ1000のために実施されるコーンキャスティングの一部であり得る、視錐3320に対して分析されることができる。いくつかの状況では、サッカード錐または視錐は、それぞれ、サッカード錐台または視覚的錐台とも称され得る。
標的関心誘引誘発要因を決定するとき、Bobのウェアラブルデバイス904は、仮想アバタ1000の頭部姿勢および眼視線に基づいて、コーンキャスティングを実施することができる。例えば、コーンのパラメータは、アバタ1000の現在の眼方向、仮想アバタの1000頭部の水平角度または鉛直角度、頭部の速さ、または眼の速さに基づいて、生成されることができる。例えば、コーンキャスティングの間、仮想コーンが、仮想アバタ1000から複合現実環境の中に投射されてもよい(視錐3320によって示されるように)。仮想アバタが、その頭部または眼視線方向を移動させるにつれて、方向または移動(例えば、移動速さ)が、アバタの頭部または眼の移動および方向に従って調節されてもよい。ある実装では、コーンの水平角度または鉛直角度は、仮想アバタの性格および気質によって変調される一方、頭部の速さおよび現在の眼方向は、キャラクタの動画から決定されることができる。例えば、アバタ1000が、考え込みモードにある場合、アバタ1000は、環境3300の床を見下ろしていてもよい。別の実施例として、アバタが、積極的性格を有する場合、仮想アバタは、その頭部を頻繁に移動させ得る。
図33に示される実施例では、視錐3320は、物理的関心誘引オブジェクト3324、関心誘引エリア3336、ソーシャルトライアングル3334、および仮想関心誘引オブジェクト3314を捕捉することができる。ウェアラブルシステムは、これらの関心誘引オブジェクトおよび関心誘引エリアと関連付けられた関心誘引度値(例えば、図30Aおよび30Bを参照して説明される)を計算し、標的関心誘引誘発要因を決定することができる。例えば、ウェアラブルシステムは、その関心誘引誘発要因が最高関心誘引度値を有するとき、関心誘引誘発要因を標的関心誘引誘発要因として選択することができる。
ある実装では、ウェアラブルシステムは、アバタの視野(視錐3320によって決定され、表され得る)内のオブジェクトおよびエリアに関する関心誘引誘発要因のリストを維持する。関心誘引誘発要因が、アバタの視野内にない場合、関心誘引誘発要因は、リストから選抜されてもよい。例えば、仮想アバタが、その右を見るとき、物理的関心誘引オブジェクト3324は、視錐3320外に外れ得る一方、物理的関心誘引オブジェクト3322は、視錐3320の内側に移動し得る。その結果、物理的関心誘引オブジェクト3324の情報は、関心誘引誘発要因のリストから除去される一方、物理的関心誘引オブジェクト3322(アバタの視野外にあった)と関連付けられた情報は、関心誘引誘発要因のリストに追加されてもよい。物理的関心誘引オブジェクト3324は、物理的関心誘引オブジェクト3324が仮想アバタ1000の視野内にない場合でも、アバタの知識ベース内に留まってもよい。加えて、または代替として、オブジェクトが、アバタの視野外に出るにつれて、オブジェクトと関連付けられた関心誘引度値は、減少され、アバタがオブジェクトと相互作用するであろう減少された尤度を反映させてもよい。逆に言えば、オブジェクトが、アバタの視野の中に入るにつれて、オブジェクトと関連付けられた関心誘引度値は、増加され、アバタがオブジェクトと相互作用するであろう増加された尤度を反映させてもよい。
関心誘引誘発要因のリストは、環境3300内または視錐3320内のオブジェクト(実または仮想)の関心誘引度値に基づいて、ソートされてもよい。関心誘引度値は、オブジェクトの本来の関心誘引度-関心誘引度減衰に基づいて、計算されることができる。オブジェクトの本来の関心誘引度は、例えば、環境情報、関心誘引誘発要因と関連付けられた相互作用またはトリガイベント、オブジェクトの特性(例えば、移動するオブジェクトは、静的オブジェクトより高い関心誘引度値を有し得る)、アバタ(またはそのヒト対応者)の性格、視認者の特性または相互作用等のコンテキスト要因に基づいてもよい。例えば、関心誘引オブジェクトは、アバタ1000または視認者が、関心誘引オブジェクトと相互作用する場合、その関心誘引度値を上昇させ得る。別の実施例として、視認者が、発話している場合、視認者と関連付けられたソーシャルトライアングル3334は、増加された関心誘引度値を有し得る。ある実装では、本来の関心誘引度を増加または減少させるのではなく、これらのコンテキスト要因のうちの1つ以上のものはまた、本明細書に説明されるように、関心誘引度減衰を調節するためにも使用されることができる。
関心誘引度減衰は、関心誘引度値と関連付けられた減衰または増幅率と関連付けられることができる。関心誘引度減衰は、時間またはトリガイベントに基づくことができる。例えば、仮想書籍のページをフリップすることは、仮想書籍と関連付けられた関心誘引度減衰の減少を生じさせる(関心誘引度値の増加に匹敵する)、または関心誘引度減衰を減速させ得る。別の実施例として、環境内の爆発音は、爆発を有するエリアと関連付けられた関心誘引度値の急増を生じさせるであろう(本来の関心誘引度に加え)。
図34は、時間に基づく関心誘引度減衰の実施例を図示する。本図では、関心誘引度曲線3410は、軸3402(オブジェクト内の関心の量を表す)および軸3404(時間の経過を表す)に対してプロットされる。所与の時間における関心誘引度減衰率は、所与の時間における曲線3410の接線(例えば、曲線の傾き)であることができる。本関心誘引曲線3410は、異なるオブジェクト(またはエリア)に関して構成またはカスタマイズされてもよい。例えば、視認者と関連付けられたソーシャルトライアングルに関する関心誘引度曲線は、オブジェクトに関する関心誘引度曲線と異なり得、例えば、オブジェクトに関する減衰は、ソーシャルトライアングルに関する減衰より高速であって、ヒト(および仮想アバタ)が非ヒトオブジェクトよりも他のヒト(または他のアバタ)に関心を留める可能性がより高いという事実を反映させ得る。
図34に示されるように、オブジェクトの関心誘引度値は、経時的に低下する傾向にある。その結果、オブジェクトは、時間が経過するにつれて、仮想アバタの注意を誘引する可能性が低いであろう。いくつかの実施形態では、曲線3410は、関心誘引度値が0を下回らないであろうように構成されてもよい。
関心誘引度曲線3410の実施例は、経時的に減衰するが、いくつかの実装では、関心誘引度曲線3410はまた、経時的に増幅し得る。例えば、関心誘引誘発要因が、標的関心誘引誘発要因である場合、関心誘引度は、経時的に増幅し得る。例えば、ある人物が、アバタの視錐3320に進入し、人物と関連付けられた関心誘引度値の増加を生じさせ得る。人物は、次いで、発話を開始し得、これは、関心誘引度値を増加させる。人物は、発話しながらジェスチャを行い、関心誘引度値をさらに増加させ得る。いったん人物が、発話およびジェスチャを停止すると、関心誘引度値は、減少し始め得る。したがって、オブジェクト、ヒト、またはアバタに関する関心誘引度値は、経時的に、またはイベントの発生(例えば、発話の開始、笑顔等)に起因して、増加または減少し得る。関心誘引度曲線3410は、単独で、または組み合わせて、指数関数的、多項式、線形、べき乗、正弦波等の種々の数学的関数に基づいて、生成および調節されることができる。例えば、関心誘引度曲線の一部は、ある時間周期にわたって水平(例えば、傾き0である)であり得る。関心誘引度曲線の本部分は、非ゼロ傾きを伴う曲線の別の部分が先行する、またはそれが後に続く(例えば、正の傾きは、時間に伴う関心誘引度増加を示す、または負の傾きは、時間に伴う関心誘引度減少を示す)。
ある実装では、標的関心誘引誘発要因は、いったん決定されると、関心誘引度値に対するインクリメントを割り当てられ、ヒステリシスを追加することができ、これは、有利には、2つの関心誘引誘発要因間の急転換を低減または防止することができ(例えば、2つの関心誘引誘発要因が、類似関心誘引度値を有するとき)、仮想アバタを標的関心誘引誘発要因上に合焦させることができる。
(標的関心誘引誘発要因に基づくアバタ動画の実施例)
いったん関心誘引誘発要因が、標的関心誘引誘発要因として選択されると、関心誘引誘発要因の特性(例えば、関心誘引誘発要因のタイプ、関心誘引誘発要因と関連付けられた反応のタイプ等)は、潜在的動画および台詞等の大きな挙動から、感情応答、眼の注意、およびサッカード運動等のより小さな挙動まで、アバタの相互作用を決定することができる。例えば、標的関心誘引誘発要因が、音であるとき、視認者のウェアラブルシステムは、「何があったの?」と発する台詞をアバタの近傍に提示し、および/またはアバタを音の方向に向かって見ているように動画化することができる。別の実施例として、標的関心誘引誘発要因が、別の顔のソーシャルトライアングルである場合、ウェアラブルシステムは、アバタの眼移動をソーシャルトライアングル内のサッカード運動としてレンダリングすることによって、アバタの注意をソーシャルトライアングルに指向することができる。
サッカード運動は、サッカード率を通して調整されることができ、これは、アバタの眼視線があるサッカード点から別のサッカード点に切り替えられる頻度を制御することができる。アバタのサッカード眼球運動が切り替えられる時間および場所を決定するために、サンプルサッカード点が、サッカードタイミングのランダム化されたウィンドウから選択されることができ、いったんその時間が経過すると、新しいサッカード点が、選定されることができる。サッカード率は、例えば、仮想アバタの気質および感情等の仮想アバタの特性によって、変調されることができる。例えば、興奮している、または怒っていると、サッカード率を増加させ得る一方、退屈または無気力であると、サッカード率を減少させ得る。アバタに関するサッカード率は、ヒトに関するサッカード率を表し得る。例えば、サッカードは、約20ms~約200ms持続し得、約10度/秒~数百度/秒等の角速度を有し得る。
図35は、標的関心誘引誘発要因として選択されたオブジェクトと関連付けられたサッカード点を決定する実施例を図示する。本図は、関心誘引オブジェクト3500を示し、これは、標的関心誘引誘発要因であると決定されている。本実施例では、関心誘引オブジェクト3500は、最も関心を誘引するオブジェクトとも称され得る。
最も関心を誘引するオブジェクトは、サッカード点を保持するための多角形構造を含むことができる。最も関心を誘引するオブジェクトは、分析され、その上にサッカード点が存在し得る、ポリゴンのリストを識別することができる。本ポリゴンのリストは、仮想アバタおよびオブジェクトの位置および配向に基づいて決定されることができる。図35における実施例では、最も関心を誘引するオブジェクト3500は、サッカード点を保持するための6つの多角形構造(図35では三角形として示される、表面ポリゴンA-F)を含む。本実施例では、これらの多角形構造は、ヒトがオブジェクトの近傍の知覚可能表面を見る傾向にあるため、オブジェクト3500を視認するユーザに最近傍の表面上にある。しかしながら、ユーザが、関心誘引オブジェクト3500の他側に歩いて行く場合、仮想アバタのサッカード点と関連付けられたポリゴンのリストは、表面ポリゴンのうちの1つ以上のものが、もはや知覚可能ではなくなり得るため、異なり得る。
本ポリゴンのリストは、サッカード錐台(例えば、図33に示されるサッカード錐3310参照)にクリッピングされることができる。サッカード錐台は、複合現実環境内の視覚的錐台(例えば、図33に示される視錐3320参照)の空間のサブセットであることができる。サッカード錐台は、低減された水平または鉛直角度(例えば、視覚的錐台3320と比較して)を有することができ、アバタの眼視線方向上に心合されることができる。ある実装では、サッカード錐台と関連付けられたパラメータ(例えば、所与の時間におけるサッカード錐台の場所)は、本明細書に説明されるサッカード率変調と類似様式において変調されることができる。
いったん図35におけるポリゴンA-Fによって示されるように、クリッピングおよび三角測量されると、ポリゴンA-Fは、2次元の中に投影されることができる(図35に示される3Dビューから)。ポリゴンA-Fのうちのポリゴンは、ポリゴンの2Dエリアを使用して、ランダムに選択され、ランダム選択に加重することができる。例えば、ポリゴンAを選択する確率は、下記の式(4)に従って決定されることができる。
式中、エリアA、B、C、D、E、Fは、それぞれ、(2次元の中に投影されるような)ポリゴンA、B、C、D、E、Fのエリアを表す。ある実装では、各エリアは、加重と関連付けられることができ、これは、関心誘引オブジェクトの領域が、関心誘引オブジェクト上の他の領域と比較して、より多いまたはより少ない関心を誘引する状態となり得るように構成されることを可能にすることができる。
いったんポリゴンが、選択されると、そのポリゴンの表面上の点(例えば、世界フレームを基準とする点等)は、ランダムに選択され、サッカード点として返されることができる。本明細書に説明されるように、ウェアラブルシステムは、サッカード率(例えば、約10度/秒~数百度/秒)に従って、アバタの眼視線をあるサッカード点から別のサッカード点に移動させることによって、アバタの眼のサッカード運動を動画化することができる。サッカード点間の角度分離は、0.1度~30度等の範囲内であることができる。
ウェアラブルシステムは、選択されたサッカード点を使用して、点上に合焦するように、仮想アバタの眼姿勢を急速に調節することができる(例えば、眼の配向を調節することによって)。眼移動はまた、眼球間収束計算に基づいてもよく、これは、仮想アバタの動画を制御する、リグによってハンドリングされてもよい。
図36は、サッカード点に基づいてアバタを動画化するための眼姿勢および顔変換の実施例を図示する。図36は、眼3610および顔3600を示す。眼3610は、眼座標3612と関連付けられることができ、顔3600は、顔座標3602と関連付けられることができる。
ウェアラブルシステムは、顔に対する結果として生じる眼姿勢(例えば、選択されたサッカード点に基づいて決定されるように)を固有受容感覚システム内に記録することができる。固有受容感覚システムは、例えば、ユーザがアバタを見る必要なく、アバタの腕が上昇されるときの把握等、アバタの身体の任意の種類の知識を維持することができる。固有受容感覚システムはまた、例えば、頭部と胴体との間または頭部と眼との間の相対的回転等、異なる身体部分に対する回転のための式を保持することができ、これは、図38A-39を参照して説明される違和感曲線の一部であってもよい。固有受容感覚システムは、アバタの身体部分の相対的位置を維持するために、アバタのローカルフレームを基準としてもよい。固有受容感覚システムは、アバタ処理およびレンダリングシステム690のコンポーネントとして、例えば、解剖学的構造調節システム698の一部として実装されることができる。
図36に戻って参照すると、顔に対する結果として生じる眼姿勢は、眼/顔デルタとして計算されることができる。眼/顔デルタは、2つの角度、すなわち、水平角度と、鉛直角度とに分解されることができ、水平角度は、座標3612および3602に示されるx-軸およびz-軸に対する角度であることができ、鉛直角度は、座標3612および3602に示されるx-軸およびy-軸に対する角度であることができる。顔座標3602内の水平角度は、左から右(または右から左)へのアバタの頭部の方向転換の動画を駆動するために使用されることができる一方、顔座標3602内の鉛直角度は、見下げることから見上げること(または見上げることから見下げること)の頭部ピッチの動画を駆動するために使用されることができる。眼座標3602内の水平および鉛直角度は、眼3610を左または右を見ることまたは上または下に転動させることの動画を駆動するために使用されることができる。
図38A-39を参照してさらに説明されるように、眼姿勢および頭部姿勢の動画は、少なくとも部分的に、違和感曲線に基づいて、決定されることができ、これは、頭部と眼との間の相対的位置に起因して、生物学的違和感を表す値を低減または最小限にすることができる(アバタがヒトであるかのように)。例えば、アバタは、眼の位置が眼窩の縁に近すぎる場合、頭部を若干方向転換させ得る。
(環境刺激に基づくアバタレンダリングの例示的プロセス)
図37は、環境刺激に基づいてアバタをレンダリングする例示的プロセスを図示する。例示的プロセス3700は、仮想アバタの視認者のウェアラブルシステム200によって、例えば、図6Bを参照して説明される、アバタ処理およびレンダリングシステム690によって、実施されることができる。
ブロック3710では、ウェアラブルシステムは、環境内の複数の関心誘引誘発要因を決定することができる。ウェアラブルシステムは、アバタの頭部姿勢および眼視線方向に基づいて、そのような決定を行うことができる。例えば、ウェアラブルシステムは、視認者の環境内のオブジェクト、領域、音、光等を決定し、これらのうちの1つ以上のものが関心誘引オブジェクトまたは関心エリアであるかどうかを決定することができる。
関心誘引誘発要因は、個別の関心誘引度値と関連付けられることができる。ブロック3720では、ウェアラブルシステムは、複数の関心誘引誘発要因と関連付けられた関心誘引度値を計算(または調節)することができる。例えば、関心誘引オブジェクトまたは関心エリアと関連付けられたトリガイベントは、対応する関心誘引度値を上昇または減少させ得る。アバタの感情および気質もまた、ウェアラブルシステムに、別の関心誘引誘発要因より高い関心誘引度値を有するための関心誘引誘発要因を見出させ得る。さらに別の実施例として、オブジェクトまたは視認者の特性(またはそれとの相互作用)もまた、他の関心誘引誘発要因より高い関心誘引度値を有するためのいくつかの関心誘引誘発要因を生じさせ得る。例えば、視認者が発話している間、そのソーシャルトライアングルは、より高い関心誘引度値を有し得る、これは、アバタに、視認者のソーシャルトライアングルに目を向けさせることができる。ウェアラブルシステムは、アバタが視認者のソーシャルトライアングルを見ているとき、ソーシャルトライアングル内のサッカード眼球運動を動画化することができる。例えば、アバタのサッカード運動は、ソーシャルトライアングル内でランダムまたは準ランダムであり得る、または軌道を辿り得る(例えば、左眼から、右眼に向かって、鼻に向かって、次いで、左眼に戻る)。連続アバタサッカード眼球運動間のジャンプは、制約され得る。例えば、アバタの視線ベクトルが、人物の顎に向かって指向される場合、次の許容される眼視線ベクトルは、ソーシャルトライアングルのサイズのある割合(1未満)である、ソーシャルトライアングル内の位置に向かって指向され得る。前のジャンプと略平行な方向におけるサッカードジャンプは、より大きい変位を利用し得る一方、前のジャンプと略垂直な方向におけるサッカードジャンプは、より小さい変位を利用し得る。いくつかの実施形態では、サッカード周波数、ジャンプの角振幅の関数としてのサッカード眼球運動の角速度、および他のサッカードパラメータは、ヒトサッカード眼球運動の挙動に関してモデル化されることができる。
ブロック3730では、ウェアラブルシステムは、標的関心誘引誘発要因を決定することができる。ウェアラブルシステムは、環境内の複数の関心誘引誘発要因の中の関心誘引誘発要因を標的関心誘引誘発要因として選択することができる。ウェアラブルシステムは、個別の関心誘引誘発要因と関連付けられた関心誘引値に基づいて、選択を行うことができる。例えば、ウェアラブルシステムは、標的関心誘引誘発要因と最高関心誘引度値を有する関心誘引誘発要因を関連付けてもよい。
随意のブロック3732では、ウェアラブルシステムは、値の上昇を標的関心誘引誘発要因と関連付けられた関心誘引度値に提供することができる。これは、いくつかの実施形態では、アバタが、視認者にとって視覚的に破壊的な体験を生じさせ得るその相互作用を類似関心誘引度値を有する2つの関心誘引誘発要因間で切り替えることを防止するために生じ得る。
ブロック3740では、ウェアラブルシステムは、標的関心誘引誘発要因に応答するように、仮想アバタを動画化することができる。例えば、ウェアラブルシステムは、標的関心誘引誘発要因を見るまたはそれと相互作用するように、アバタの身体姿勢または眼視線を変化させることができる。ウェアラブルシステムはまた、標的関心誘引誘発要因のより近くにまたはそこからより離れるようにアバタを移動させることができる。
ブロック3750では、ウェアラブルシステムは、複数の関心誘引誘発要因の関心誘引度値の変化を監視することができる。関心誘引度値は、経時的に減衰し得る。関心誘引度値はまた、環境、オブジェクト、またはアバタまたは視認者の相互作用の変化に応答して、増加し得る。例えば、アバタは、最初に、視認者とアバタのヒト対応者との間のテレプレゼンスセッションの間、視認者を見ている場合がある。視認者は、その環境内で音楽の再生を開始してもよい。その結果、音楽源と関連付けられた関心誘引度値は、増加し得る。
ブロック3760では、ウェアラブルシステムは、新しい標的関心誘引誘発要因が存在するかどうかを決定することができる。該当しない場合、プロセス3700は、ブロック3750に戻り、ウェアラブルシステムは、関心誘引度値の変化を監視し続ける。標的関心誘引誘発要因の変化が存在する場合、プロセスは、ブロック3740に戻ることができ、仮想アバタは、新しい標的関心誘引誘発要因に応答することができる。ある実装では、ブロック3740に戻るのではなく、プロセス3700はまた、随意のブロック3732に戻ることができる。
(違和感曲線の実施例)
仮想アバタの現実的かつ生きているような動画を提供するために、ウェアラブルシステムは、アバタの姿勢を生きているように動画化することができる。例えば、ウェアラブルシステムは、アバタの背後の関心オブジェクトを見るように、アバタの頭部およびその身体を方向転換させ、アバタが、関心オブジェクトを見るように、単に、その頭部を180度方向転換させる(その身体を方向転換させずに)、非現実的状況を回避することができる。下記にさらに説明されるように、違和感曲線は、その身体の一部が隣接する身体部分に対して特定の身体姿勢へと回旋される場合にヒトが体験するであろう違和感を示す、値を生成するために使用されることができる。例えば、ヒトは、実質的違和感を伴わずに、約60~90度の範囲内でその頭部を方向転換させることができる。ヒトが、その頭部を、例えば、120度方向転換させようとする場合、そのような移動は、著しい違和感につながるであろう(生体力学的にとにかく可能であったとしても)。単に、頭部をあまりに大きく方向転換させようとする代わりに、ヒトは、眼視線方向の大角度変化を要求するオブジェクトを見るために、自然に、その頭部と併せて、その身体を方向転換させる。故に、本自然なヒト移動を模倣するために、潜在的アバタ移動に関する違和感レベル(例えば、違和感曲線から測定される)が、閾値に達する(例えば、単純頭部方向転換が大きすぎる)場合、アバタは、アバタの頭部と併せて、付加的アバタ身体部分(例えば、アバタの胴体)を移動させ、不自然な見た目の身体移動(例えば、180度の頭部方向転換等、実際のヒトにおける違和感を生じさせるであろうもの)を回避し得る。
ボーンフェザリング、非線形分画、または指数関数的分画は、アバタの姿勢または移動を実際の人物の自然な移動に模させるために適用され得る、技法の実施例である。しかしながら、これらの技法では、接地面に対する頭部の回転は、典型的には、身体の残りが頭部の移動のある割合を伴って移動するため、身体の残りの同時運動を決定する。例えば、アバタの頭部が、45度方向転換する必要がある場合、アバタの頭部は、接地面に対して45度方向転換することができ、身体は、45度の一部を方向転換させ得る。方向転換は、これらの技法における数式を使用して遂行されるため、アバタのシミュレートされた移動は、必ずしも、実際のヒト身体の微妙な非同時移動を反映させるとは限らない。加えて、これらの技法では、身体全体の移動は、単一数字(例えば、上記の実施例では、45度方向転換)からの単純計算であるため、同時である。
改良された技法を提供し、アバタのより現実的動画を提供するために、ウェアラブルシステム(例えば、解剖学的構造調節システム698)は、違和感曲線に従って、2つの隣接する身体部分のアバタの動画を調節することができる。違和感曲線は、例えば、2つの隣接する身体部分(例えば、アバタ胴体に対するアバタ頭部)間の相対的角度等、2つの隣接する身体部分間の動画のための境界を表すことができる。実施例として、仮想アバタの眼と頭部との間の相対的位置を統制する、1つの違和感曲線と、頭部と胴体との間の相対的位置を統制する、別個の違和感曲線等とが存在してもよい。本実施例では、胴体に関連して頭部を統制する、違和感曲線は、頭部の回転を胴体に対して最大90度に制限してもよい。90度境界を確立することによって、違和感曲線は、アバタの頭部を135度右に回転させる等の非現実的移動を低減または防止することができる。
有利には、いくつかの実施形態では、違和感曲線の使用は、2つの隣接する身体部分間の非同時移動を現実的に模倣し、アバタの自然な移動につながり、不気味の谷を表す、移動を回避することができる。2つの身体部分間の同時移動よりもむしろ、身体の第1の部分の姿勢に起因する違和感が、身体の第2の部分の後続移動を生じさせ得る(例えば、眼姿勢における違和感は、頭部姿勢の変化を生じさせ得る、または頭部姿勢における違和感は、胴体姿勢の変化を生じさせ得る)。その結果、第2の身体部分に対する第1の身体部分に関する別個の計算を考慮するために構築される自然な時間遅延が存在し、アバタの第1および第2の身体部分の非同時移動をもたらし得る。異なるタイプの違和感(例えば、極端に前方にもたれること対極端に後方にもたれること)は、異なる移動をもたらし得るため、別個の計算が、1つ以上の隣接する身体部分に対する身体部分のためにウェアラブルデバイスによって実施されてもよい。
図38Aおよび38Bは、頭部に関連した胴体の違和感曲線の実施例を図示する。図38Aにおける違和感曲線3800aは、仮想アバタが起立しているときの違和感曲線を図示する一方、図38Bにおける違和感曲線3800bは、仮想アバタが歩行しているときの違和感曲線を図示する。
図38Aおよび38Bに示されるグラフのx-軸3820は、胴体/頭部デルタ角度を表す。本デルタ角度は、アバタの頭部と胴体との間の相対的角度を表すことができる。グラフのy-軸3810は、0~1の違和感のレベルを示し、違和感は、アバタが位置を維持するために必要とされるエネルギーの量を表すことができる。違和感の他の値も、使用されることができ、例えば、0~100、離散レベル(例えば、A~Fの段階的なスケールであって、Aは、殆どまたは全く違和感を表さず、Fは、極限違和感を表す)等である。図38Aおよび38Bでは、0の違和感レベルは、エネルギーが特定の位置を維持するために要求されない(例えば、違和感または位置を維持するための物理的応力が全く存在しないであろう)一方、より高い違和感レベルは、維持するためにより多くのエネルギーを要求する(例えば、より多くの違和感が存在するであろう、またはより多くの物理的応力が位置を維持するために被られるであろう)ことを意味する。0の違和感レベルは、静置または中立位置における身体の自然な姿勢を反映させ得る。実施例として、ヒトの手は、安静時、若干曲げられ、これは、0の違和感レベルに対応し得る。
それぞれ、図38Aおよび図38Bの違和感曲線3800aおよび3800bは、頭部に関連した胴体のデルタ角度と関連付けられた違和感レベルをマッピングする。デルタ角度が、0から増加または減少するにつれて、違和感レベルは、適宜、上昇する。違和感曲線は、ばねベースの動画システムの中にフィードされることができ、違和感の大きさは、それらを継合するばねが存在するかのように、隣接する身体部分の移動を決定することができる。例えば、違和感の大きさが、ある胴体/頭部デルタ角度に起因して、閾値レベルに到達すると、ウェアラブルシステムは、胴体または頭部を自動的に移動させ、胴体と頭部との間の角度を低減させる(したがって、違和感を低減させる)ことができる。さらに、高違和感レベルは、違和感のレベルを低減させるために、胴体または頭部のより大きいまたはより高速の移動を生じさせ得る。
隣接する身体部分の移動間の時間遅延の実施例として、レンダリングシステムの目標が、その眼が100度右に向くように、アバタを移動させることである場合、レンダリングシステムは、単に、アバタの頭部を右に向かって移動させ始め得る。胴体/頭部デルタ角度は、増加し始め、(曲線3800a、3800bからの)違和感レベルもまた、増加し始めるであろう。いったん違和感レベルが、閾値に達する(例えば、0.5)と、レンダリングシステムは、アバタの胴体を同様に右に回転させ始め、これは、胴体/頭部デルタ角度の増加を低減させ、違和感レベルを閾値を下回って維持するであろう。視認者には、アバタの頭部が、最初に、右に方向転換し始め、その後、アバタの胴体が、アバタが標的を見ているようにレンダリングされるまで、右に向かって回転するように見える。したがって、本実施例では、レンダリングシステムは、自然かつヒトのようなアバタの移動を生成する。別の実施例として、アバタは、最初に、関心誘引誘発要因を見るためにその頭部を方向転換させ得る。しかしながら、関心誘引誘発要因の関心誘引度は、増加し得る(例えば、関心誘引誘発要因の変化または視認者との相互作用に起因して)。時間が経過するにつれて、アバタの頭部姿勢(例えば、関心誘引誘発要因を見るための頭部の方向転換)と関連付けられた違和感レベルは、増加し得、これは、違和感レベルを低減させながら、関心誘引誘発要因を見続けるように、アバタにその身体を方向転換させ得る。極限違和感につながり得る、相対的身体移動に関して、違和感閾値は、第1の身体部分の移動が、比較的急速に、第2の隣接する身体部分の移動につながるであろうように、より低い値に設定されることができる。相対的身体運動が、違和感なく、ヒトによって容易に実施される場合、違和感閾値は、1つのみの身体部分の移動が運動を遂行するために十分であり得るため、より高い値に設定されることができる。個々の違和感閾値は、レンダリングシステムによって使用される違和感曲線毎に設定されることができ、これらの違和感曲線(または閾値)は、下記にさらに説明されるように、調節可能、修正可能、または動的に変更可能であることができる。
違和感曲線は、仮想アバタの現在の気分またはモードに基づいて、交換または修正されることができる。図38Aおよび38Bに示されるように、違和感曲線は、仮想アバタの現在の相互作用に基づいて、異なり得る。図38Aにおける違和感レベルは、0の最小値を有し、デルタ角度が、0度からさらに離れるように増加または減少するにつれて、ゆっくりと上昇する。図38Aにおける違和感レベルは、アバタが起立している間、頭部に関連した胴体のデルタ角度が36度に到達すると、1の最大値に到達する。しかしながら、図38Bに示されるように、違和感レベルは、仮想アバタが歩行しているとき、より迅速に上昇する。図38Bに提示される実施例では、違和感レベルは、頭部に関連した胴体のデルタ角度が22度に到達すると、1の最大レベルに到達する。ある実装では、頭部に関連した胴体の違和感曲線は、したがって、仮想アバタがモードを起立から歩行に変化させるにつれて変化する。例えば、仮想アバタは、最初に、起立している場合があり、したがって、解剖学的構造調節システム698(図6に示される)は、違和感曲線3800aを適用し、仮想アバタの動画を調節することができる。しかしながら、仮想アバタは、歩行し始め得る。仮想アバタの挙動の本変化に基づいて、解剖学的構造調節システム698は、仮想アバタの頭部-胴体回転を動画化するために、違和感曲線3800bに切り替えることができる。
別の実施例として、違和感曲線に対する接線(例えば、傾き)は、仮想アバタが動揺しているとき、仮想アバタが平穏であるときより大きくあり得る。その結果、仮想アバタは、仮想アバタが動揺しているとき、平穏であるときより高速で閾値違和感レベルに到達し得る。
違和感曲線は、解剖学的構造調節システム698によって、数学的パラメータ化によって表されてもよい(例えば、数式、スプライン、ルックアップテーブル等)。違和感曲線(または違和感閾値)は、解剖学的構造調節システム698が、違和感がアバタ移動に存在するかどうかを容易に決定し、適宜、隣接するアバタ身体部分を調節し得る(または調節しない)ように、アバタ挙動(例えば、起立対歩行)、気分(例えば、動揺対平穏)等を反映させるために調節され得る、パラメータを含んでもよい。
違和感曲線に基づいてアバタの身体部分を動画化する例示的用途として、ウェアラブルシステムは、1つの鉛直角度調節動画(例えば、頭部の傾斜移動を動画化する)と、3つの水平角度調節動画とを利用することができる。3つの水平角度調節動画は、身体の一部の変化が、身体の別の部分の変化を生じさせ得、これが、ひいては、身体の第3の部分の変化を生じさせ得るように、ともに連鎖されることができる。本連鎖反応は、2つ以上の身体部分間の違和感レベルに基づくことができる(身体の一部の変化が、閾値を上回って違和感レベルを増加させる場合、近傍部分が、適宜、移動し、違和感レベルを低減させ得、違和感レベルのさらなる増加(例えば、別の閾値を上回る)が、第3の身体部分の移動をもたらし得るように)。
実施例として、水平調節角度連鎖では、眼移動は、頭部の左-右回転動画を駆動させることができ、これは、ひいては、胴体の左-右動画を駆動することができ、これは、ひいては、腰部の左-右動画回転を駆動することができる。本段落における実施例は、1つの鉛直角度調節動画と、3つの水平角度調節動画とを説明するが、任意の数の他の水平(または鉛直)動画が、本連鎖の中に挿入され得る(および任意の数の関連付けられた違和感曲線が、使用されることができる)。本明細書に説明される技法は、これらの数の水平または鉛直角度調節動画に限定されない。例えば、いくつかの実施形態は、1つのみの水平および1つの鉛直角度変化を含み、単純頭部方向転換を動画化してもよい一方、他の実施形態は、頭部方向転換を表すための水平回転および鉛直偏移と胴体の移動を表するための付加的水平回転とを含んでもよい。
ある実施形態では、挙動応答もまた、曲線に沿った点に挿入されることができる。例えば、違和感が高すぎる場合、アバタからの台詞が、トリガされることができる。例えば、アバタ移動が、十分に大きい違和感レベルにつながるであろう場合、アバタは、「痛い!」と発するようにレンダリングされてもよい。別の実施例として、別の標的関心誘引誘発要因を選定するためのアバタ挙動もまた、違和感が高すぎる場合、トリガされることができる。例えば、大頭部および身体回転を要求する、標的オブジェクトを見るように移動させるのではなく、アバタは、途中まで移動し、次いで、手を用いて、標的オブジェクトに対してジェスチャを行ってもよい。そのような組み合わせられた運動は、違和感レベルを適切な閾値を下回って保つことができ、有利には、実際のヒト挙動を模倣することができる。
(違和感曲線を用いたアバタ動画の例示的プロセス)
図39は、違和感曲線を用いて仮想アバタを動画化する例示的プロセスを図示する。例示的プロセス3900は、ウェアラブルシステム200(アバタの視認者のウェアラブルシステム等)またはウェアラブルシステム200の解剖学的構造調節システム698によって実施されることができる。
プロセスは、ブロック3910において、アバタの隣接する第2の身体部分に対する第1の身体部分の配向を決定することによって開始する。ある実装では、アバタの2つの身体部分の相対的位置を決定するために、ウェアラブルシステムは、固有受容感覚システムと通信することができ、これは、例えば、胴体に対する頭部の回転等、相互に対して身体の種々の部分の回転を追跡することができる。ある実装では、隣接する第2の身体部分に対する第1の身体部分の配向は、水平角度成分と、鉛直角度成分とに分解されてもよい。例えば、頭部方向転換は、胴体に関連して、右に向かって30度の水平角度と、上向きに15度の鉛直角度とに分解されてもよい。
ブロック3920では、ウェアラブルシステムは、アバタの環境または相互作用と関連付けられた違和感曲線にアクセスすることができる。例えば、違和感曲線は、図38Aおよび38Bを参照して説明されるように、仮想アバタの気分またはモードに応じて、自動的に選択されることができる。違和感曲線は、第1の身体部分と第2の身体部分との間の角度と、対応する角度に関する違和感レベルとを説明することができる。違和感曲線は、運動追跡に基づくデータの深層学習または回帰分析を使用して、自動的に生成される、またはヒト直感または特定の芸術スタイルに基づいて(例えば、漫画家によって)、手動で作成されることができる。
ブロック3930では、ウェアラブルシステムは、配向に基づいて、違和感レベルを決定することができる。例えば、ウェアラブルシステムは、第1の身体部分と第2の身体との間の角度を違和感曲線の中に入力し、角度と関連付けられた違和感レベルを計算することができる。
ブロック3940では、ウェアラブルシステムは、違和感レベルが閾値条件に達するかどうかを決定することができる。閾値条件は、アバタにその姿勢を変化させ得る。違和感レベルが、閾値条件を超えない場合、プロセス3900は、ブロック3960に移動し、ウェアラブルシステムは、アバタの環境または相互作用を監視する。違和感レベルが、閾値条件を超える場合、プロセス3900は、ブロック3950に移動する。
ブロック3950では、ウェアラブルシステムは、第1の身体部分または第2の身体部分の姿勢を調節することができる。図38Aおよび38Bを参照して説明されるように、ウェアラブルシステムは、閾値条件からの逸脱が大きいほど、アバタに、より高速で、またはより大きな程度で、その姿勢を変化させ得るように、ばねベースのアバタ動画システムを採用することができる。ある実装では、ウェアラブルシステムは、水平および鉛直角度成分を使用して、違和感曲線に従って、第2の身体部分に関連して第1の身体部分の動画を駆動することができる。例えば、水平角度は、違和感曲線に対応してもよい一方、鉛直角度は、別の違和感曲線に対応してもよい。アバタの最終姿勢または移動は、第1または第2の身体部分の水平および鉛直の両方における移動の組み合わせであってもよい。
身体部分の動画は、より自然かつ生きているような動画を生産するように、違和感曲線によって規定された限界によって境界されてもよい。例えば、頭部に関連して胴体の動画を統制する、違和感曲線は、頭部が胴体に関連して60度を上回って水平に回転することを禁止し得る。
ブロック3960では、ウェアラブルシステムは、アバタの環境または相互作用を監視する。例えば、ウェアラブルシステムは、関心誘引誘発要因の変化または視認者の姿勢を監視することができる。ウェアラブルシステムはまた、例えば、アバタの相互作用または気分の変化等の環境に対するアバタの応答を監視することができ、これは、環境または視認者の相互作用の変化に起因し得る。
ブロック3970では、ウェアラブルシステムが、環境または相互作用の変化を検出しない場合、プロセス3900は、ブロック3960にループバックする。そうでなければ、プロセス3900は、ブロック3920に移動し、ウェアラブルシステムは、アバタのモードまたは気分に適切な違和感曲線を決定することができる。例えば、新しい違和感曲線は、仮想アバタが椅子に着座した状態から部屋を横断して走っている状態に遷移するにつれて、アバタの頭部および胴体の動画を統制するために適用されてもよい。着座に関する違和感曲線は、頭部が胴体に関連して左および右に45度回転することを許可し得るが、新しい違和感曲線は、頭部が胴体に関連して20度を上回って回転しないように制限し、実際のヒトが、走っている間、真っ直ぐ前を見ている傾向にあるという事実を反映してもよい。
図39に示される例示的プロセスは、複数の身体部分を伴う移動のために適用されてもよい(例えば、脚部移動は、腰部移動を駆動することができ、これは、胴体移動を駆動することができる等となる)。
(付加的側面)
第1の側面では、仮想アバタを自動的にスケーリングするためのウェアラブルシステムであって、ユーザの環境を結像するように構成される、デバイスセンサと、ユーザの姿勢を測定するように構成される、姿勢センサと、仮想コンテンツを複合現実環境内に表示するように構成される、ディスプレイと、姿勢データを姿勢センサから受信し、少なくとも部分的に、姿勢データに基づいて、世界フレームを基準とする、ユーザの頭部位置を計算し、世界フレームは、ユーザの環境と関連付けられた基準フレームを含み、ユーザの環境内の世界フレームを基準とする主要な水平平面を決定し、主要な水平平面およびユーザの頭部位置に基づいて、ユーザの高さを計算し、少なくとも部分的に、ユーザの高さに基づいて、アバタの標的高さを計算し、標的高さに基づいて、アバタを自動的にスケーリングするし、ディスプレイに、アバタを標的高さに自動的にレンダリングさせるようにプログラムされる、ハードウェアプロセッサとを備える、ウェアラブルシステム。
第2の側面では、ユーザの高さを計算するために、ハードウェアプロセッサは、頭部位置と主要な水平平面との間でレイキャスティングを実施し、頭部位置と主要な水平平面との間の鉛直高低差に基づいて、ユーザの高さを計算するようにプログラムされる、側面1に記載のウェアラブルシステム。
第3の側面では、水平主要な平面は、その上にアバタがレンダリングされる、平面と関連付けられ、アバタの標的高さは、頭部位置と主要な水平平面との間の鉛直高低差である、側面2に記載のウェアラブルシステム。
第4の側面では、水平主要な平面は、その上にユーザが立っている、平面と関連付けられ、アバタの標的高さは、下記の式、すなわち、
に基づいて計算され、式中、AvatarHは、アバタの標的高さであって、UserHは、ユーザの高さであって、UserSupportPlaneHは、その上にユーザが位置する、主要な水平平面の高さを表し、AvatarSupportPlaneHは、その上にアバタがレンダリングされるべき平面の高さを表す、側面2または3に記載のウェアラブルシステム。
第5の側面では、主要な水平平面の高さと、その上にアバタがレンダリングされるべき平面の高さとは、主要な水平平面と、その上にアバタがレンダリングされるべき平面の高さとの下方にある、接地面平面を基準として測定される、側面4に記載のウェアラブルシステム。
第6の側面では、主要な水平平面を決定するために、ハードウェアプロセッサは、深度感知カメラによって入手された環境画像データに基づいて、3次元(3D)点群を生成し、メッシュアルゴリズムを適用し、表面をメッシュ群から抽出し、表面をユーザの環境を説明する3D多角形メッシュに変換し、3D多角形メッシュに基づいて、主要な水平平面を推定するようにプログラムされる、側面1-5のいずれか1項に記載のウェアラブルシステム。
第7の側面では、主要な平面を推定するために、ハードウェアプロセッサは、類似配向を伴う接続されたポリゴンのグループを検出するようにプログラムされる、側面6に記載のウェアラブルシステム。
第8の側面では、主要な水平平面を決定するために、ハードウェアプロセッサは、直接、デバイスセンサによって入手された環境画像に基づいて生成された3D点群から、水平配向における平面を抽出するようにプログラムされる、側面1-7のいずれか1項に記載のウェアラブルシステム。
第9の側面では、ハードウェアプロセッサはさらに、ユーザとアバタとの間の相対的高さの変化を検出し、変化に応答して、少なくとも部分的に、更新された標的高さに基づいて、アバタを動的にスケーリングするようにプログラムされる、側面1-8のいずれか1項に記載のウェアラブルシステム。
側面1-9のいずれかでは、デバイスセンサは、深度感知カメラを備えることができる、または姿勢センサは、慣性測定ユニットを備えることができる。
第10の側面では、仮想アバタを自動的にスケーリングするための方法であって、ユーザの姿勢データを受信するステップと、少なくとも部分的に、姿勢データに基づいて、ユーザの頭部位置を計算するステップと、ユーザの環境内の主要な水平平面を決定するステップと、主要な水平平面およびユーザの頭部位置に基づいて、ユーザの高さを計算するステップと、少なくとも部分的に、ユーザの高さに基づいて、アバタの標的高さを計算するステップと、標的高さに基づいて、アバタのサイズを調節するためのスケールを決定するステップとを含む、方法。
第11の側面では、ディスプレイに、仮想アバタを複合現実環境内の標的高さに自動的にレンダリングさせるステップをさらに含む、側面10に記載の方法。
第12の側面では、ユーザの高さを計算するステップは、ユーザの頭部位置からレイキャスティングを実施するステップと、頭部位置と主要な水平平面との間の鉛直高低差に基づいて、ユーザの高さを計算するステップとを含む、側面10または11に記載の方法。
第13の側面では、主要な水平平面は、その上にアバタがレンダリングされる、平面と関連付けられ、アバタの標的高さは、頭部位置と主要な水平平面との間の鉛直高低差である、側面12に記載の方法。
第14の側面では、主要な水平平面は、その上にユーザが立っている、平面と関連付けられ、アバタの標的高さは、下記の式、すなわち、
に基づいて計算され、式中、AvatarHは、アバタの標的高さであって、UserHは、ユーザの高さであって、UserSupportPlaneHは、その上にユーザが位置する、主要な水平平面の高さを表し、AvatarSupportPlaneHは、その上にアバタがレンダリングされるべき平面の高さを表す、側面12または13に記載の方法。
第15の側面では、主要な水平平面の高さと、その上にアバタがレンダリングされるべき平面の高さとは、主要な水平平面と、その上にアバタがレンダリングされるべき平面の高さとの下方にある、接地面平面を基準として測定される、側面14に記載の方法。
第16の側面では、主要な水平平面を決定するステップは、深度感知カメラによって入手された環境画像データに基づいて、3次元(3D)点群を生成するステップと、メッシュアルゴリズムを適用し、メッシュ群を形成する表面を抽出するステップと、表面をユーザの環境を説明する3D多角形メッシュに変換するステップと、3D多角形メッシュに基づいて、主要な水平平面を推定するステップとを含む、側面10-15のいずれか1項に記載の方法。
第17の側面では、主要な平面を推定するステップは、類似配向を伴う接続されたポリゴンのグループを検出するステップを含む、側面16に記載の方法。
第18の側面では、主要な水平平面を決定するステップは、直接、環境画像に基づいて生成された環境の3Dモデルから、水平配向における平面を抽出するステップを含む、側面10-17のいずれか1項に記載の方法。
第19の側面では、ユーザとアバタとの間の相対的高さの変化を検出するステップと、変化に応答して、少なくとも部分的に、更新されたスケールに基づいて、アバタを動的にサイズ変更するステップをさらに含む、側面10-18のいずれか1項に記載の方法。
第20の側面では、頭部位置および主要な水平平面は、世界フレームを基準として決定される、側面10-19のいずれか1項に記載の方法。
第21の側面では、ユーザ相互作用の意図を決定するためのウェアラブルデバイスであって、ユーザの環境とのユーザの相互作用データを入手するように構成される、デバイスセンサと、デバイスセンサから入手された相互作用データに基づいて、ユーザ相互作用を識別し、ユーザ相互作用を世界成分またはローカル成分のうちの少なくとも1つに分解し、世界成分は、ユーザの環境の世界フレームを基準とするアクションを含み、ローカル成分は、ユーザの身体のローカルフレームを基準とするアクションを含み、コンテキスト情報に基づいて、ユーザの相互作用と関連付けられた意図を決定し、意図、世界成分と関連付けられた情報、またはローカル成分と関連付けられた情報のうちの少なくとも1つを、別のウェアラブルデバイスに通信し、他のウェアラブルデバイスに、意図に基づいて、ユーザ相互作用を他のウェアラブルデバイスによってレンダリングされたユーザのアバタにマッピングさせるようにプログラムされる、ハードウェアプロセッサとを備える、ウェアラブルデバイス。
第22の側面では、ユーザ相互作用は、ユーザの環境またはユーザの環境内の関心オブジェクトとの相互作用のうちの少なくとも1つを含む、側面21に記載のウェアラブルデバイス。
第23の側面では、関心オブジェクトは、環境内の物理的オブジェクトまたは仮想オブジェクトを含む、側面22に記載のウェアラブルデバイス。
第24の側面では、関心オブジェクトは、別のユーザの仮想アバタである、側面23に記載のウェアラブルデバイス。
第25の側面では、ユーザ相互作用は、頭部姿勢、眼視線、または身体姿勢、またはユーザの環境内の移動のうちの少なくとも1つを介して実施される、側面21-24のいずれか1項に記載のウェアラブルデバイス。
第26の側面では、デバイスセンサは、慣性測定ユニット(IMU)、外向きに面したカメラ、または眼追跡カメラのうちの少なくとも1つを含む、側面21-25のいずれか1項に記載のウェアラブルデバイス。
第27の側面では、コンテキスト情報は、ユーザの環境内のオブジェクトのレイアウト、環境内のオブジェクトの場所、ユーザの位置、またはユーザの配向のうちの少なくとも1つを含む、側面21-26のいずれか1項に記載のウェアラブルデバイス。
第28の側面では、意図は、ユーザ相互作用の世界成分と関連付けられる、側面21-27のいずれか1項に記載のウェアラブルデバイス。
第29の側面では、ローカル成分と関連付けられた情報は、ユーザ相互作用のローカル成分の動画を含む、側面21-28のいずれか1項に記載のウェアラブルデバイス。
第30の側面では、遠隔ユーザ相互作用のために仮想アバタをレンダリングするための方法であって、第2のユーザのアバタがレンダリングされる、第1のユーザの環境と関連付けられたコンテキスト情報を決定するステップと、第2のユーザの環境内に生じた第2のユーザのユーザ相互作用と関連付けられる、第2のユーザの意図を決定するステップと、コンテキスト情報および第2のユーザの意図に基づいて、第1のユーザの世界フレームに対する第2のユーザのアバタの世界アクションを決定するステップと、第2のユーザの環境内で生じた第2のユーザのユーザ相互作用のローカル成分に基づいて、第2のユーザのアバタのローカルフレームに対する第2のユーザのアバタのローカルアクションを動画化するステップと、ディスプレイに、世界アクションおよびローカルアクションを含むアバタを、複合現実環境内にレンダリングさせるステップとを含む、方法。
第31の側面では、第2のユーザの意図を決定するステップは、意図データを第2のユーザのウェアラブルデバイスから受信するステップ、または第2のユーザの意図を第2のユーザのユーザ相互作用の相互作用データから決定するステップのうちの少なくとも1つを含む、側面30に記載の方法。
第32の側面では、第2のユーザの意図は、関心オブジェクトと相互作用する意図を含む、側面30または31に記載の方法。
第33の側面では、第2のユーザの意図は、第1のユーザに通信する、またはそれと相互作用する意図を含む、側面30-32のいずれか1項に記載の方法。
第34の側面では、ローカルアクションはさらに、ローカルアクションと関連付けられた第2のユーザの意図に基づいて動画化される、側面30-33のいずれか1項に記載の方法。
第35の側面では、ローカルアクションを動画化するステップは、ローカルアクションおよび第1のユーザの環境内のオブジェクトの結果としてのアバタの衝突検出を実施するステップを含む、側面30-34のいずれか1項に記載の方法。
第36の側面では、世界アクションは、少なくとも、第1のユーザの環境内の第2のユーザのアバタの移動または第2のユーザのアバタによる第1のユーザの環境内のオブジェクトとの相互作用を含む、側面30-35のいずれか1項に記載の方法。
第37の側面では、第1の環境内の第1のユーザの意図に基づいて、仮想アバタをレンダリングするシステムであって、第1の環境の環境情報を複数のセンサから抽出し、少なくとも部分的に、受信された環境情報に基づいて、複数の潜在的関心オブジェクトを識別し、少なくとも部分的に、受信された環境情報に基づいて、関心オブジェクトを決定し、決定は、ユーザから各潜在的関心オブジェクトに向かうベクトルおよびユーザから延在する通視線ベクトルを第1のユーザの真正面において外向きに延在させるステップと、関心加重値を各潜在的関心オブジェクトに割り当てるステップであって、潜在的関心オブジェクトの関心加重は、動的に変化し、環境情報の変化を反映させる、ステップと、潜在的関心オブジェクト毎に、全体的関心値を計算するステップであって、潜在的関心オブジェクトに関する関心値は、少なくとも部分的に、潜在的関心オブジェクトに関する関心加重値に基づく、ステップとを含み、関心オブジェクト情報を遠隔コンピューティングデバイスに通信し、関心オブジェクト情報は、少なくとも、関心オブジェクトを表す識別子を含み、通信される関心オブジェクト情報を遠隔コンピューティングデバイスから受信し、少なくとも部分的に、遠隔コンピューティングデバイスから受信された関心オブジェクト情報に基づいて、仮想アバタの位置または配向のうちの少なくとも1つを調節するようにプログラムされる、ハードウェアプロセッサと、少なくとも部分的に、受信された関心オブジェクト情報に基づいて、仮想アバタをレンダリングするプロセスを実行するための命令を記憶するように構成される、非一過性コンピュータ可読媒体とを備える、システム。
第38の側面では、環境情報は、ユーザの頭部姿勢または眼姿勢または複数の仮想オブジェクトの存在を含む、側面37に記載のシステム。
第39の側面では、複数のセンサは、ユーザの周囲の環境内の世界を観察する、外向きに面した結像システムと、ユーザの眼の移動を追跡し得る、内向きに面した結像システムとを含む、側面37または38に記載のシステム。
第40の側面では、関心オブジェクトの決定はさらに、潜在的関心オブジェクトと関連付けられたベクトルとユーザの通視線ベクトルとの間のドット積を計算するステップを含む、側面37-39のいずれか1項に記載のシステム。
第41の側面では、関心オブジェクトの決定は、ユーザの周囲の環境内の条件の変化が検出される度に生じ、条件の変化は、ユーザの姿勢の変化、環境内のユーザの位置の変化、潜在的関心オブジェクトの位置の変化を含む、側面37-40のいずれか1項に記載のシステム。
第42の側面では、関心オブジェクトの決定は、少なくとも部分的に、第1のユーザの頭部姿勢およびユーザの意味論的関心に基づく、側面37-41のいずれか1項に記載のシステム。
第43の側面では、関心オブジェクトの決定は、さらに、ユーザからユーザの通視線ベクトルの方向に向かってレイキャスティングを実施するステップを含む、側面42に記載のシステム。
第44の側面では、関心オブジェクト情報はさらに、潜在的関心オブジェクトと関連付けられたベクトルとユーザの通視線ベクトルとの間のオフセット角度を含む、側面37-43のいずれか1項に記載のシステム。
第45の側面では、仮想アバタの位置または配向のうちの少なくとも1つの調節は、関心オブジェクトの場所に面するように、潜在的関心オブジェクトと関連付けられたベクトルとユーザの通視線ベクトルとの間のオフセット角度だけ、仮想アバタの少なくとも一部を回転させるステップを含む、側面37-44のいずれか1項に記載のシステム。
第46の側面では、第1の環境内の第1のユーザの意図に基づいて、仮想アバタをレンダリングする方法であって、第1のユーザの姿勢データにアクセスするステップであって、姿勢データは、少なくとも、眼姿勢または頭部姿勢を含む、ステップと、少なくとも部分的に、第1のユーザの姿勢データに基づいて、第1のユーザの環境内の複数の潜在的関心オブジェクトを識別するステップと、少なくとも部分的に、第1のユーザの姿勢データに基づいて、第1のユーザの環境内の複数の潜在的関心オブジェクトから第1のユーザの関心オブジェクトを決定するステップと、関心オブジェクト情報を第2のユーザに通信するステップであって、関心オブジェクト情報は、少なくとも、関心オブジェクトを表す識別子を含む、ステップと、関心オブジェクト情報を第1のユーザから受信するステップと、第2の環境内の仮想アバタに対する第2の環境内の関心オブジェクトの場所を識別するステップと、少なくとも部分的に第2の環境内の仮想アバタに対する第2の環境内の関心オブジェクトの場所に基づいて、第2の環境内の仮想アバタの位置または配向のうちの少なくとも1つを調節するステップとを含む、方法。
第47の側面では、第1のユーザの姿勢データにアクセスするステップは、第1のユーザの周囲の環境内の世界を観察する、外向きに面した結像システムと、第1のユーザの眼の移動を追跡する、内向きに面した結像システムとによって行われる、側面46に記載の方法。
第48の側面では、関心オブジェクトを決定するステップは、ユーザから各潜在的関心オブジェクトに向かうベクトルおよびユーザから延在する通視線ベクトルをユーザの真正面において外向きに延在させるステップと、関心加重値を各潜在的関心オブジェクトに割り当てるステップであって、潜在的関心オブジェクトの関心加重は、動的に変化し、環境の変化を反映させるステップと、潜在的関心オブジェクト毎に、全体的関心値を計算するステップであって、潜在的関心オブジェクトに関する関心値は、少なくとも部分的に、潜在的関心オブジェクトに関する関心加重値に基づく、ステップとを含む、側面46または47に記載の方法。
第49の側面では、関心オブジェクトを決定するステップはさらに、潜在的関心オブジェクトと関連付けられたベクトルとユーザの通視線ベクトルとの間のドット積を計算するステップを含む、側面46-48のいずれか1項に記載の方法。
第50の側面では、関心オブジェクトを決定するステップは、ユーザの周囲の環境内の条件の変化が検出される度に生じ、条件の変化は、ユーザの姿勢の変化、環境内のユーザの位置の変化、潜在的関心オブジェクトの位置の変化を含む、側面46-49のいずれか1項に記載の方法。
第51の側面では、関心オブジェクトを決定するステップは、少なくとも部分的に、第1のユーザの頭部姿勢およびユーザの意味論的関心に基づく、側面46-50のいずれか1項に記載の方法。
第52の側面では、関心オブジェクトを決定するステップはさらに、ユーザからユーザの通視線ベクトルの方向に向かってレイキャスティングを実施するステップを含む、側面51に記載の方法。
第53の側面では、関心オブジェクト情報はさらに、潜在的関心オブジェクトと関連付けられたベクトルとユーザの通視線ベクトルとの間のオフセット角度を含む、側面46-52のいずれか1項に記載の方法。
第54の側面では、仮想アバタの位置または配向のうちの少なくとも1つを調節するステップは、関心オブジェクトの場所に面するように、潜在的関心オブジェクトと関連付けられたベクトルとユーザの通視線ベクトルとの間のオフセット角度だけ、仮想アバタを回転させるステップを含む、側面46-53のいずれか1項に記載の方法。
第55の側面では、コンテキスト情報に基づいて、アバタの相互作用を調節するためのウェアラブルシステムであって、仮想アバタを視認者の環境内にレンダリングするための複合現実ディスプレイと、環境内の複数の関心誘引誘発要因を決定し、複数の関心誘引誘発要因と関連付けられた関心誘引度値を計算し、少なくとも部分的に、複数の関心誘引誘発要因と関連付けられた関心誘引度値に基づいて、標的関心誘引誘発要因を決定し、複合現実ディスプレイに、アバタの動画をレンダリングさせ、標的関心誘引誘発要因に応答させるようにプログラムされる、ハードウェアプロセッサとを備える、ウェアラブルシステム。
第56の側面では、複数の関心誘引誘発要因は、関心誘引オブジェクトまたは関心エリアのうちの1つ以上のものを含む、側面55に記載のウェアラブルシステム。
第57の側面では、関心誘引オブジェクトは、ソーシャルトライアングルまたは視線ボックスを含む、側面56に記載のウェアラブルシステム。
第58の側面では、複数の関心誘引誘発要因と関連付けられた関心誘引度値のうちの少なくとも1つは、複数の関心誘引誘発要因のうちの少なくとも1つと関連付けられた本来の関心誘引度と、持続時間、環境内のトリガイベント、または視認者の相互作用のうちの少なくとも1つを含む、1つ以上の調節要因とに基づいて計算される、側面55-57のいずれか1項に記載のウェアラブルシステム。
第59の側面では、ハードウェアプロセッサはさらに、少なくとも部分的に、調節要因と関連付けられた値の更新に基づいて、複数の関心誘引誘発要因の関心誘引度値の変化を監視し、関心誘引誘発要因の関心誘引度値の変化が閾値条件に達することの決定に応答して、標的関心誘引誘発要因を別の関心誘引誘発要因に更新するようにプログラムされる、側面55-58のいずれか1項に記載のウェアラブルシステム。
第60の側面では、標的関心誘引誘発要因を決定するために、ハードウェアプロセッサは、複数の関心誘引誘発要因からの関心誘引誘発要因を標的関心誘引誘発要因として選択するようにプログラムされ、関心誘引誘発要因は、最高関心誘引度値を有する、側面55-59のいずれか1項に記載のウェアラブルシステム。
第61の側面では、ハードウェアプロセッサはさらに、関心誘引誘発要因が標的関心誘引誘発要因であることの決定に応じて、値の上昇を関心誘引誘発要因と関連付けられた関心誘引度値に提供するようにプログラムされる、側面55-60のいずれか1項に記載のウェアラブルシステム。
第62の側面では、標的関心誘引誘発要因は、関心誘引オブジェクトであって、標的関心誘引誘発要因に応答するようにアバタの動画をレンダリングするために、ハードウェアプロセッサは、少なくとも部分的に、関心誘引オブジェクトと関連付けられたサッカード点に基づいて、アバタに関するサッカード眼球運動を動画化するようにプログラムされる、側面55-61のいずれか1項に記載のウェアラブルシステム。
第63の側面では、所与の時間においてサッカード眼球運動を動画化するために、ハードウェアプロセッサは、サッカード点を保持するための関心誘引オブジェクト上の複数のポリゴンを決定し、複数のポリゴンの各ポリゴン上に到達するサッカード点と関連付けられた確率を計算し、ポリゴンと関連付けられた確率に基づいて、ポリゴンを選択し、ポリゴンの表面上の点をサッカード点としてランダムに選択し、サッカード点に合焦するようにアバタの眼姿勢を調節するようにプログラムされる、側面62に記載のウェアラブルシステム。
第64の側面では、確率は、複数のポリゴンの各ポリゴンと関連付けられた個別のエリアに基づいて計算される、側面63に記載のウェアラブルシステム。
第65の側面では、サッカード眼球運動を用いて、アバタを動画化する方法であって、アバタの環境内の関心誘引オブジェクトを識別するステップと、サッカード点を保持するために、関心誘引オブジェクト上の複数のポリゴンを決定するステップと、複数のポリゴンの各ポリゴン上に到達するサッカード点と関連付けられた確率を計算するステップと、ポリゴンと関連付けられた確率に基づいて、ポリゴンを選択するステップと、ポリゴンの表面上の点をサッカード点としてランダムに選択するステップと、アバタの眼姿勢を調節し、所与の時間にサッカード点上に合焦させるステップとを含む、方法。
第66の側面では、関心誘引オブジェクトは、ソーシャルトライアングルまたは視線ボックスを含む、側面65に記載の方法。
第67の側面では、関心誘引オブジェクトは、アバタの視野内のオブジェクトと関連付けられた関心誘引度値を計算することによって決定される、側面65または66に記載の方法。
第68の側面では、関心誘引度値は、時間の経過に伴って減衰する、側面67に記載の方法。
第69の側面では、サッカードタイミングのランダム化されたウィンドウが経過後、サッカード時間を再計算するステップをさらに含む、側面65-68のいずれか1項に記載の方法。
第70の側面では、複数のポリゴンは、アバタのサッカード錐台に基づいて決定される、側面65-69のいずれか1項に記載の方法。
第71の側面では、アバタの眼移動を動画化するために、ソーシャルトライアングルを識別するための方法であって、顔と関連付けられたソーシャルトライアングルのパラメータにアクセスするステップであって、ソーシャルトライアングルは、アバタが顔を見ているときのアバタの眼移動を動画化するために使用される、顔の領域を含む、ステップと、少なくとも部分的に、パラメータに基づいて、顔と関連付けられた第1の特徴および第2の特徴を識別するステップであって、第1の特徴または第2の特徴のうちの少なくとも1つは、複数のサブ特徴を含む、ステップと、少なくとも部分的に、第1および第2の特徴に基づいて、第1の頂点、第2の頂点、および第3の頂点を決定するステップと、第1、第2、および第3の頂点によって形成される、境界されたエリアを決定するステップと、境界されたエリアをソーシャルトライアングルとして割り当てるステップとを含む、方法。
第72の側面では、アバタの眼移動は、境界されたエリア内の点に限定される、側面71に記載の方法。
第73の側面では、第1の特徴は、第1の眼の一部の第1のサブ特徴と、第2の眼の一部の第2のサブ特徴とを含む、側面71または72に記載の方法。
第74の側面では、第2の特徴は、顎の一部または口の一部のうちの少なくとも1つを含む、側面71-73のいずれか1項に記載の方法。
第75の側面では、第1の特徴は、アバタをレンダリングするための頭部搭載型ディスプレイの少なくとも一部を含み、第1の頂点は、頭部搭載型ディスプレイの第1の端部を含み、第2の頂点は、頭部搭載型ディスプレイの第2の端部を含む、側面71-74のいずれか1項に記載の方法。
第76の側面では、重力ベクトルを計算するステップをさらに含み、第2の頂点は、第2の頂点を重力ベクトルから第1の頂点の直交距離に基づく場所に位置付けることによって抽出され、重力ベクトルは、第3の頂点と交差する、側面71-75のいずれか1項に記載の方法。
第77の側面では、違和感曲線を使用して、仮想アバタの動画を駆動するためのシステムであって、仮想アバタの隣接する第2の身体部分に対する仮想アバタの第1の身体部分の配向と、仮想アバタの隣接する第2の身体部分に対する第1の身体部分の運動を統制する、少なくとも1つの違和感曲線とを記憶するように構成される、非一過性コンピュータ可読媒体と、仮想アバタの隣接する第2の身体部分に対する仮想アバタの第1の身体部分の配向を決定し、隣接する第2の身体部分に対する第1の身体部分の運動を統制する、少なくとも1つの違和感曲線にアクセスし、少なくとも部分的に、少なくとも1つの違和感曲線に従って、仮想アバタの隣接する第2の身体部分に対する第1の身体部分の動画を駆動するようにプログラムされる、ハードウェアプロセッサとを備える、システム。第77の側面のいくつかの実施形態では、ハードウェアプロセッサは、動画を駆動するために、仮想エージェントを実行することができる。第77の側面のいくつかの実施形態では、動画を駆動するために、ハードウェアプロセッサは、違和感曲線から返される値を低減または最小限にするようにプログラムされる。第77の側面のいくつかの実施形態では、動画を駆動するために、ハードウェアプロセッサは、違和感曲線から返される値を閾値を下回って保つようにプログラムされる。
第78の側面では、ハードウェアプロセッサは、隣接する第2の身体部分に対する第1の身体部分の配向を水平角度成分または鉛直角度成分に分解し、水平角度成分または鉛直角度成分のうちの少なくとも1つに基づいて、隣接する第2の身体部分に対する動画を駆動するようにプログラムされる、側面77に記載のシステム。
第79の側面では、動画を駆動するために、ハードウェアプロセッサはさらに、第1の身体部分が第2の身体部分に対する配向にあるように、第1の身体部分または第2の身体部分を方向転換させ、少なくとも部分的に、違和感曲線に基づいて、ある持続時間後、違和感レベルを決定し、違和感レベルが閾値を超えることの決定に応答して、第1の身体部分が、低減された違和感レベルを有する、第2の身体部分に対する別の配向にあるように、第1の身体部分または第2の身体部分のいずれかを方向転換させるようにプログラムされる、側面77または78に記載のシステム。
第80の側面では、仮想アバタの動画は、違和感曲線から返される値を低減または最小限にするように駆動される、側面77-79のいずれか1項に記載のシステム。
第81の側面では、隣接する第2の身体部分に対する第1の身体部分の配向を追跡するように構成される、固有受容感覚システムをさらに備える、側面77-80のいずれか1項に記載のシステム。
第82の側面では、違和感曲線は、第1の身体部分と第2の身体部分との間の角度に対する違和感レベルを説明する、側面77-81のいずれか1項に記載のシステム。
第83の側面では、違和感曲線は、姿勢データの深層学習または回帰分析を使用して、自動的に生成される、側面77-82のいずれか1項に記載のシステム。
第84の側面では、隣接する第2の身体部分に対する第1の身体部分の動画は、移動が違和感曲線に関する違和感閾値を超える場合、禁止される、側面77-83のいずれか1項に記載のシステム。
第85の側面では、ハードウェアプロセッサはさらに、仮想アバタがレンダリングされた環境または仮想アバタの相互作用の変化に基づいて、仮想アバタの気分またはモードの変化を検出するようにプログラムされる、側面77-84のいずれか1項に記載のシステム。
第86の側面では、違和感曲線は、仮想アバタの現在の気分またはモードに基づいて修正される、側面85に記載のシステム。
第87の側面では、仮想アバタのモードまたは気分の変化の検出は、隣接する第2の身体部分に対する第1の身体部分の移動を統制する、新しい違和感曲線のアクセスを生じさせる、側面85または86に記載のシステム。
第88の側面では、仮想アバタのモードの変化は、環境内の仮想アバタの移動を含む、側面77-87のいずれか1項に記載のシステム。
第89の側面では、ハードウェアプロセッサはさらに、少なくとも1つの違和感曲線の値が閾値に達することを決定し、決定に応答して、付加的アバタ挙動の実施を生じさせるようにプログラムされる、側面77-88のいずれか1項に記載のシステム。
第90の側面では、付加的アバタ挙動は、音を発する、またはジェスチャを行うことを含む、側面89に記載のシステム。
第91の側面では、隣接する第2の身体部分に対する第1の身体部分の動画を駆動するために、ハードウェアプロセッサは、少なくとも1つの違和感曲線の第1の違和感閾値に到達するまで、第1の身体部分を移動させ、かつ第2の身体部分を移動させ、少なくとも1つの違和感曲線の値を第1の違和感閾値を下回って低減させるようにプログラムされる、側面77-90のいずれか1項に記載のシステム。
第92の側面では、ハードウェアプロセッサはさらに、仮想アバタの第3の身体部分を移動させ、少なくとも1つの違和感曲線の値を第2の違和感閾値を下回って低減させるようにプログラムされる、側面91に記載のシステム。
第93の側面では、違和感曲線を使用して、仮想アバタの動画を駆動する方法であって、仮想アバタの第2の身体部分に対する仮想アバタの第1の身体部分の配向を決定するステップと、第2の身体部分に対する第1の身体部分の運動を統制する、少なくとも1つの違和感曲線にアクセスするステップと、少なくとも部分的に、少なくとも1つの違和感曲線に従って、第2の身体部分に対する第1の身体部分の動画を駆動するステップとを含む、方法。仮想アバタの第2の身体部分は、仮想アバタの第1の身体部分に隣接し得る。
第94の側面では、隣接する第2の身体部分に対する第1の身体部分の配向を水平角度成分または鉛直角度成分に分解するステップと、少なくとも部分的に、水平角度成分または鉛直角度成分のうちの少なくとも1つに基づいて、隣接する第2の身体部分に対する動画を駆動するステップとをさらに含む、側面93に記載の方法。
第95の側面では、仮想アバタを動画化するステップは、違和感曲線から返される値を低減または最小限にするように駆動される、側面93または94に記載の方法。
第96の側面では、配向は、少なくとも部分的に、固有受容感覚システム内のデータに基づいて決定される、側面93-95のいずれか1項に記載の方法。
第97の側面では、固有受容感覚システムは、身体部分間の回転に関する違和感曲線および式をさらに記憶する、側面96に記載の方法。
第98の側面では、違和感曲線は、隣接する身体部分に対する身体部分の角度に対する違和感レベルを説明する、側面93-97のいずれか1項に記載の方法。
第99の側面では、違和感曲線は、アバタが第1の身体部分または第2の身体部分をある姿勢に維持するための労力のレベルを説明する、側面93-98のいずれか1項に記載の方法。
第100の側面では、違和感曲線は、姿勢データの深層学習または回帰分析を使用して自動的に生成される、側面93-99のいずれか1項に記載の方法。
第101の側面では、隣接する第2の身体部分に対する第1の身体部分を動画化するステップは、移動が違和感曲線に関する違和感閾値を超える場合、禁止される、側面93-100のいずれか1項に記載の方法。
第102の側面では、違和感曲線は、仮想アバタの現在の気分またはモードに基づいて修正される、側面93-101のいずれか1項に記載の方法。
第103の側面では、隣接する第2の身体に対する第1の身体部分の動画を駆動するステップは、少なくとも部分的に、少なくとも1つの違和感曲線の値に基づいて、第2の身体部分の運動と第1の身体部分の運動を連鎖させるステップを含む、側面93-102のいずれか1項に記載の方法。
第104の側面では、第2の身体部分の運動は、少なくとも1つの違和感曲線の値が閾値に達するまで、生じない、側面103に記載の方法。
(他の考慮点)
本明細書に説明される、および/または添付される図に描写されるプロセス、方法、およびアルゴリズムはそれぞれ、具体的かつ特定のコンピュータ命令を実行するように構成される、1つ以上の物理的コンピューティングシステム、ハードウェアコンピュータプロセッサ、特定用途向け回路、および/または電子ハードウェアによって実行される、コードモジュールにおいて具現化され、それによって完全または部分的に自動化され得る。例えば、コンピューティングシステムは、具体的コンピュータ命令とともにプログラムされた汎用コンピュータ(例えば、サーバ)または専用コンピュータ、専用回路等を含むことができる。コードモジュールは、実行可能プログラムにコンパイルおよびリンクされ得る、動的リンクライブラリ内にインストールされ得る、または解釈されるプログラミング言語において書き込まれ得る。いくつかの実装では、特定の動作および方法が、所与の機能に特有の回路によって実施され得る。
さらに、本開示の機能性のある実装は、十分に数学的、コンピュータ的、または技術的に複雑であるため、(適切な特殊化された実行可能命令を利用する)特定用途向けハードウェアまたは1つまたはそれを上回る物理的コンピューティングデバイスは、例えば、関与する計算の量または複雑性に起因して、または結果を実質的にリアルタイムで提供するために、機能性を実施する必要があり得る。例えば、動画またはビデオは、多くのフレームを含み、各フレームは、数百万のピクセルを有し得、具体的にプログラムされたコンピュータハードウェアは、商業的に妥当な時間量において所望の画像処理タスクまたは用途を提供するようにビデオデータを処理する必要がある。
コードモジュールまたは任意のタイプのデータは、ハードドライブ、ソリッドステートメモリ、ランダムアクセスメモリ(RAM)、読取専用メモリ(ROM)、光学ディスク、揮発性または不揮発性記憶装置、同一物の組み合わせ、および/または同等物を含む、物理的コンピュータ記憶装置等の任意のタイプの非一過性コンピュータ可読媒体上に記憶され得る。本方法およびモジュール(またはデータ)はまた、無線ベースおよび有線/ケーブルベースの媒体を含む、種々のコンピュータ可読伝送媒体上で生成されたデータ信号として(例えば、搬送波または他のアナログまたはデジタル伝搬信号の一部として)伝送され得、種々の形態(例えば、単一または多重化アナログ信号の一部として、または複数の離散デジタルパケットまたはフレームとして)をとり得る。開示されるプロセスまたはプロセスステップまたはアクションの結果は、任意のタイプの非一過性有形コンピュータ記憶装置内に持続的または別様に記憶され得る、またはコンピュータ可読伝送媒体を介して通信され得る。
本明細書に説明される、および/または添付される図に描写されるフロー図における任意のプロセス、ブロック、状態、ステップ、または機能性は、プロセスにおいて具体的機能(例えば、論理または算術)またはステップを実装するための1つまたはそれを上回る実行可能命令を含む、コードモジュール、セグメント、またはコードの一部を潜在的に表すものとして理解されたい。種々のプロセス、ブロック、状態、ステップ、または機能性は、組み合わせられる、再配列される、追加される、削除される、修正される、または別様に本明細書に提供される例証的実施例から変更されることができる。いくつかの実施形態では、付加的または異なるコンピューティングシステムまたはコードモジュールが、本明細書に説明される機能性のいくつかまたは全てを実施し得る。本明細書に説明される方法およびプロセスはまた、任意の特定のシーケンスに限定されず、それに関連するブロック、ステップ、または状態は、適切な他のシーケンスで、例えば、連続して、並行して、またはある他の様式で実施されることができる。タスクまたはイベントが、開示される例示的実施形態に追加される、またはそれから除去され得る。さらに、本明細書に説明される実装における種々のシステムコンポーネントの分離は、例証を目的とし、全ての実装においてそのような分離を要求するものとして理解されるべきではない。説明されるプログラムコンポーネント、方法、およびシステムは、概して、単一のコンピュータ製品においてともに統合される、または複数のコンピュータ製品にパッケージ化され得ることを理解されたい。多くの実装変形例が、可能である。
本プロセス、方法、およびシステムは、ネットワーク(または分散)コンピューティング環境において実装され得る。ネットワーク環境は、企業全体コンピュータネットワーク、イントラネット、ローカルエリアネットワーク(LAN)、広域ネットワーク(WAN)、パーソナルエリアネットワーク(PAN)、クラウドコンピューティングネットワーク、クラウドソースコンピューティングネットワーク、インターネット、およびワールドワイドウェブを含む。ネットワークは、有線または無線ネットワークまたは任意の他のタイプの通信ネットワークであり得る。
本開示のシステムおよび方法は、それぞれ、いくつかの革新的側面を有し、そのうちのいかなるものも、本明細書に開示される望ましい属性に単独で関与しない、またはそのために要求されない。上記に説明される種々の特徴およびプロセスは、相互に独立して使用され得る、または種々の方法で組み合わせられ得る。全ての可能な組み合わせおよび副次的組み合わせが、本開示の範囲内に該当することが意図される。本開示に説明される実装の種々の修正が、当業者に容易に明白であり得、本明細書に定義される一般原理は、本開示の精神または範囲から逸脱することなく、他の実装に適用され得る。したがって、請求項は、本明細書に示される実装に限定されることを意図されず、本明細書に開示される本開示、原理、および新規の特徴と一貫する最も広い範囲を与えられるべきである。
別個の実装の文脈において本明細書に説明されるある特徴はまた、単一の実装における組み合わせにおいて実装されることができる。逆に、単一の実装の文脈において説明される種々の特徴もまた、複数の実装において別個に、または任意の好適な副次的組み合わせにおいて実装されることができる。さらに、特徴がある組み合わせにおいて作用するものとして上記に説明され、さらに、そのようなものとして最初に請求され得るが、請求される組み合わせからの1つ以上の特徴は、いくつかの場合では、組み合わせから削除されることができ、請求される組み合わせは、副次的組み合わせまたは副次的組み合わせの変形例を対象とし得る。いかなる単一の特徴または特徴のグループも、あらゆる実施形態に必要または必須ではない。
とりわけ、「~できる(can)」、「~し得る(could)」、「~し得る(might)」、「~し得る(may)」、「例えば(e.g.)」、および同等物等、本明細書で使用される条件文は、別様に具体的に記載されない限り、または使用されるような文脈内で別様に理解されない限り、概して、ある実施形態がある特徴、要素、またはステップを含む一方、他の実施形態がそれらを含まないことを伝えることが意図される。したがって、そのような条件文は、概して、特徴、要素、および/またはステップが、1つまたはそれを上回る実施形態に対していかようにも要求されること、または1つまたはそれを上回る実施形態が、著者の入力または促しの有無を問わず、これらの特徴、要素、および/またはステップが任意の特定の実施形態において含まれる、または実施されるべきかどうかを決定するための論理を必然的に含むことを示唆することを意図されない。用語「~を備える」、「~を含む」、「~を有する」、および同等物は、同義語であり、非限定的方式で包括的に使用され、付加的要素、特徴、行為、動作等を除外しない。また、用語「または」は、その包括的意味において使用され(およびその排他的意味において使用されず)、したがって、例えば、要素のリストを接続するために使用されると、用語「または」は、リスト内の要素のうちの1つ、いくつか、または全てを意味する。加えて、本願および添付される請求項で使用されるような冠詞「a」、「an」、および「the」は、別様に規定されない限り、「1つ以上の」または「少なくとも1つ」を意味するように解釈されるべきである。
本明細書で使用されるように、項目のリスト「~のうちの少なくとも1つ」を指す語句は、単一の要素を含む、それらの項目の任意の組み合わせを指す。ある実施例として、「A、B、またはCのうちの少なくとも1つ」は、A、B、C、AおよびB、AおよびC、BおよびC、およびA、B、およびCを網羅することが意図される。語句「X、Y、およびZのうちの少なくとも1つ」等の接続文は、別様に具体的に記載されない限り、概して、項目、用語等がX、Y、またはZのうちの少なくとも1つであり得ることを伝えるために使用されるような文脈で別様に理解される。したがって、そのような接続文は、概して、ある実施形態が、Xのうちの少なくとも1つ、Yのうちの少なくとも1つ、およびZのうちの少なくとも1つがそれぞれ存在するように要求することを示唆することを意図されない。
同様に、動作は、特定の順序で図面に描写され得るが、これは、望ましい結果を達成するために、そのような動作が示される特定の順序で、または連続的順序で実施される、または全ての図示される動作が実施される必要はないと認識されるべきである。さらに、図面は、フローチャートの形態で1つ以上の例示的プロセスを図式的に描写し得る。しかしながら、描写されない他の動作も、図式的に図示される例示的方法およびプロセス内に組み込まれることができる。例えば、1つ以上の付加的動作が、図示される動作のいずれかの前に、その後に、それと同時に、またはその間に実施されることができる。加えて、動作は、他の実装において再配列される、または再順序付けられ得る。ある状況では、マルチタスクおよび並列処理が、有利であり得る。さらに、上記に説明される実装における種々のシステムコンポーネントの分離は、全ての実装におけるそのような分離を要求するものとして理解されるべきではなく、説明されるプログラムコンポーネントおよびシステムは、概して、単一のソフトウェア製品においてともに統合される、または複数のソフトウェア製品にパッケージ化され得ることを理解されたい。加えて、他の実装も、以下の請求項の範囲内である。いくつかの場合では、請求項に列挙されるアクションは、異なる順序で実施され、依然として、望ましい結果を達成することができる。