(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-07-25
(54)【発明の名称】人工現実感対話モードの統合
(51)【国際特許分類】
G06F 3/01 20060101AFI20230718BHJP
【FI】
G06F3/01 570
G06F3/01 510
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2022579982
(86)(22)【出願日】2021-06-24
(85)【翻訳文提出日】2023-02-10
(86)【国際出願番号】 US2021038826
(87)【国際公開番号】W WO2022005860
(87)【国際公開日】2022-01-06
(32)【優先日】2020-06-29
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】515046968
【氏名又は名称】メタ プラットフォームズ テクノロジーズ, リミテッド ライアビリティ カンパニー
【氏名又は名称原語表記】META PLATFORMS TECHNOLOGIES, LLC
(74)【代理人】
【識別番号】110002974
【氏名又は名称】弁理士法人World IP
(72)【発明者】
【氏名】スコーエン, ヘイデン
【テーマコード(参考)】
5E555
【Fターム(参考)】
5E555AA10
5E555AA12
5E555BA04
5E555BA38
5E555BB04
5E555BB38
5E555BC04
5E555BD01
5E555BE10
5E555CB65
5E555CB66
5E555CC01
5E555DA08
5E555FA00
(57)【要約】
本開示の態様は対話モードシステムのためのものであり、この対話モードシステムは、人工現実感環境における複数の対話モードを提供し、対話モード間の自動文脈特化移行を有している。対話モードは、対話モードシステムがどのように、人工現実感環境内における方向指示および移動を決定し、選択を行うことまたは他のアクションを実施することのための対話を行うかを、指定することができる。いくつかの実装形態では、対話モードシステムは、ノーハンド3DoFモード、ノーハンド6DoFモード、凝視・身振りモードおよびレイキャスティングモードを含む少なくとも4つの対話モードを制御することができる。対話モードシステムは、対話モードに対する対話モード文脈要素(例えばイネーブルされている構成要素、モード設定、照明または他の環境条件、現在の身体位置、等々)のマッピングを使用して、特定の対話モード間の移行を制御することができる。対話モードシステムはまた、現在の対話モードおよび対話モード移行のシグナリングのためのアフォーダンスを提供することができる。
【選択図】
図9
【特許請求の範囲】
【請求項1】
人工現実感システムにおけるユーザ入力を解釈するために対話モード間を自動的に移行するための方法であって、
ユーザ位置追跡入力が利用不可能であることを指示する第1の対話モード文脈を識別することと、
前記第1の対話モード文脈の識別に応答して、ノーハンド3自由度対話モードをイネーブルすることと、
ユーザ位置追跡入力が利用可能であること、および
手追跡入力が利用不可能であるか、または第1の追跡された手ポーズが手レディー状態と一致していないこと
を指示する第2の対話モード文脈を識別することと、
前記第2の対話モード文脈の識別に応答して、ノーハンド6自由度対話モードをイネーブルすることと、
第2の追跡された手ポーズが前記手レディー状態と一致していることを指示する第3の対話モード文脈を識別することと、
前記第3の対話モード文脈の識別に応答して、凝視・身振り対話モードをイネーブルすることと、
第3の追跡された手ポーズが光線状態と一致していることを指示する第4の対話モード文脈を識別することと、
前記第4の対話モード文脈の識別に応答して、レイキャスティング対話モードをイネーブルすることと
を含む、方法。
【請求項2】
前記対話モードのうちの少なくとも1つをイネーブルすることが、さらに、
周期的に生じるか、または
対話モード文脈要素の監視の結果として識別された対話モード文脈の変化に応答して生じる
対話モード変更トリガに応答する、請求項1に記載の方法。
【請求項3】
現在の対話モードから変更するユーザ命令の受取りに基づいてある対話モードへ移行することをさらに含む、請求項1に記載の方法。
【請求項4】
前記手レディー状態と一致している前記第2の追跡された手ポーズが、ユーザの掌が少なくとも閾値量だけ上に向いていると識別された手ポーズを含み、および/または前記光線状態と一致している前記第3の追跡された手ポーズが、前記ユーザの掌が少なくとも閾値量だけ下に向いていると識別された手ポーズを含む、請求項1に記載の方法。
【請求項5】
前記ノーハンド3自由度対話モードが、
少なくともユーザの頭の決定された配向に基づく方向のユーザ指示を受け取ることと、
ドウェルタイマーに基づいて、前記方向のユーザ指示のうちの1つに対するアクションのユーザ指示を受け取ることと
を含み、
前記ノーハンド3自由度対話モードである間、X軸、Y軸およびZ軸における前記ユーザの動きが、人工現実感環境におけるX軸、Y軸およびZ軸の視野の動きに自動的に変換されないか、または、
前記ノーハンド6自由度対話モードが、
少なくともユーザの頭の決定された配向に基づく方向のユーザ指示を受け取ることと、
ドウェルタイマーに基づいて、前記方向のユーザ指示のうちの1つに対するアクションのユーザ指示を受け取ることと、
X軸、Y軸およびZ軸における前記ユーザの動きを人工現実感環境におけるX軸、Y軸およびZ軸の視野の動きに変換することと
を含む、
請求項1に記載の方法。
【請求項6】
前記凝視・身振り対話モードが、
少なくともユーザの頭の決定された配向に基づき、かつ人工現実感環境に対する前記ユーザの頭の決定された位置に基づく、方向のユーザ指示を受け取ることであって、前記ユーザの頭の決定された位置が、X軸、Y軸およびZ軸に沿った前記ユーザの追跡された動きに基づく、方向のユーザ指示を受け取ることと、
前記ユーザの手の姿勢を追跡し、前記手の姿勢を指定されたアクションと突き合わせることにより、前記方向のユーザ指示のうちの1つに対するアクションのユーザ指示を受け取ることと
を含む、請求項1に記載の方法。
【請求項7】
前記レイキャスティング対話モードが、
少なくとも前記人工現実感システムによるレイキャストに基づく方向のユーザ指示を受け取ることであって、光線がユーザの少なくとも一方の手の追跡された位置に関連する場所からキャストされる、方向のユーザ指示を受け取ることと、
前記ユーザの手の姿勢を追跡し、前記手の姿勢を指定されたアクションと突き合わせることにより、前記光線に対するアクションのユーザ指示を受け取ることと
を含む、請求項1に記載の方法。
【請求項8】
前記ノーハンド3自由度対話モード、前記ノーハンド6自由度対話モード、および前記凝視・身振り対話モードの各々が凝視カーソルを含む視覚アフォーダンスを提供し、前記凝視カーソルが、ユーザの視野の中に示され、前記ユーザの頭の追跡された位置に少なくとも部分的に基づいて配置されるか、または、
前記ノーハンド3自由度対話モード、前記ノーハンド6自由度対話モード、および前記凝視・身振り対話モードの各々が凝視カーソルを含む視覚アフォーダンスを提供し、
前記凝視カーソルが、ユーザの視野の中に示され、前記ユーザの頭の追跡された位置に少なくとも部分的に基づいて、かつ前記ユーザの追跡された凝視方向に基づいて配置される、
請求項1に記載の方法。
【請求項9】
命令を記憶するコンピュータ可読記憶媒体であって、前記命令は、計算システムによって実行されると、前記計算システムに、請求項1から10のいずれか一項に記載の方法を実施すること、すなわち人工現実感システムにおけるユーザ入力を解釈するために対話モード間を移行するためのプロセスを実施することを行わせ、前記プロセスが、
手追跡入力が利用不可能であること、または第1の追跡された手ポーズが手レディー状態と一致していないことを指示する第1の対話モード文脈を識別することと、
前記第1の対話モード文脈の識別に応答して、ノーハンド対話モードをイネーブルすることと、
第2の追跡された手ポーズが前記手レディー状態と一致していることを指示する第2の対話モード文脈を識別することと、
前記第2の対話モード文脈の識別に応答して、凝視・身振り対話モードをイネーブルすることと、
第3の追跡された手ポーズが光線状態と一致していることを指示する第3の対話モード文脈を識別することと、
前記第3の対話モード文脈の識別に応答して、レイキャスティング対話モードをイネーブルすることと
を含む、コンピュータ可読記憶媒体。
【請求項10】
前記ノーハンド対話モードが、
少なくともユーザの頭の決定された配向に基づく方向のユーザ指示を受け取ることと、
ドウェルタイマーに基づいて、前記方向のユーザ指示のうちの1つに対するアクションのユーザ指示を受け取ることと
を含み、
ユーザ位置追跡入力が利用不可能である場合、前記ノーハンド対話モードは、X軸、Y軸およびZ軸における前記ユーザの動きを人工現実感環境におけるX軸、Y軸およびZ軸の視野の動きに変換せず、
ユーザ位置追跡入力が利用可能である場合、前記ノーハンド対話モードは、X軸、Y軸およびZ軸における前記ユーザの動きを人工現実感環境におけるX軸、Y軸およびZ軸の視野の動きに自動的に変換する、
請求項9に記載のコンピュータ可読記憶媒体。
【請求項11】
前記凝視・身振り対話モードが、ユーザの親指と1本の他の指との間に配置された前記ユーザの視野の中に示されている球を含む視覚アフォーダンスを提供し、
前記球が、前記ユーザの親指と前記他の指との間の決定された距離に従ってリサイズされ、または歪められたものとして示され、
前記レイキャスティング対話モードが、前記ユーザの親指と1本の他の指との間に配置された前記ユーザの視野の中に示されている形状を含む視覚アフォーダンスを提供し、
前記形状は、前記ユーザの親指と前記他の指との間の決定された距離に従ってリサイズされ、または歪められたものとして示される、
請求項9に記載のコンピュータ可読記憶媒体。
【請求項12】
前記手レディー状態と一致している前記第2の追跡された手ポーズが、ユーザの掌が上に向いていると識別された手ポーズを含む、請求項9に記載のコンピュータ可読記憶媒体。
【請求項13】
前記凝視・身振り対話モードが、少なくともユーザの頭の決定された配向に基づき、かつ人工現実感環境に対する前記ユーザの頭の決定された位置に基づく方向のユーザ指示を受け取ることであって、前記ユーザの頭の決定された位置がX軸、Y軸およびZ軸に沿った前記ユーザの追跡された動きに基づく、方向のユーザ指示を受け取ることと、
前記ユーザの手の姿勢を追跡し、前記手の姿勢を指定されたアクションと突き合わせることにより、前記方向のユーザ指示のうちの1つに対するアクションのユーザ指示を受け取ることと
を含む、請求項9に記載のコンピュータ可読記憶媒体。
【請求項14】
人工現実感システムにおけるユーザ入力を解釈するための計算システムであって、
1つまたは複数のプロセッサと、
命令を記憶する1つまたは複数のメモリと
を備え、前記命令は、前記1つまたは複数のプロセッサによって実行されると、前記計算システムに、請求項1から10のいずれか一項に記載の方法を実施すること、すなわち対話モード間を移行するためのプロセスを実施することを行わせ、前記プロセスが、
手追跡入力が利用不可能であること、または第1の追跡された手ポーズが手レディー状態と一致していないことを指示する第1の対話モード文脈を識別することと、
前記第1の対話モード文脈の識別に応答して、ノーハンド対話モードをイネーブルすることと、
第2の追跡された手ポーズが前記手レディー状態と一致していることを指示する第2の対話モード文脈を識別することと、
前記第2の対話モード文脈の識別に応答して、凝視・身振り対話モードをイネーブルすることと、
第3の追跡された手ポーズが光線状態と一致していることを指示する第3の対話モード文脈を識別することと、
前記第3の対話モード文脈の識別に応答して、レイキャスティング対話モードをイネーブルすることと、を含む、
計算システム。
【請求項15】
前記光線状態と一致している前記第3の追跡された手ポーズが、ユーザの掌が少なくとも閾値量だけ下に向いていると識別された手ポーズを含むか、または
前記ノーハンド対話モードおよび前記凝視・身振り対話モードが、凝視カーソルを含む視覚アフォーダンスを提供し、前記凝視カーソルが、前記ユーザの視野の中に示され、前記ユーザの頭の追跡された位置に少なくとも部分的に基づいて配置される、
請求項14に記載の計算システム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、人工現実感デバイスの文脈に応じて異なる対話モード間で切り換えることができる人工現実感環境を対象としている。
【背景技術】
【0002】
様々な人工現実感システムは、着用可能デバイス、外部ディスプレイおよびセンサを備えたシステム、パススルーシステム、等々の中で具体化することができる。これらの人工現実感システムのために多くの対話モードが作り出されており、それらの対話モードの各々は、典型的には、方向および/または位置を指示し、また、指示された方向および/または位置に関連して行動を取るための方法をユーザに提供している。例えばいくつかの対話モードは、ユーザによる3自由度の移動を許容し(「3DoF」-典型的には、ピッチ軸、ロール軸およびヨー軸における方向に指示を許容し、X軸、Y軸またはZ軸の動きはない)、一方、他の対話モードは6自由度の動きを許容する(「6DoF」-典型的には、ピッチ軸、ロール軸、ヨー軸、X軸、Y軸およびZ軸における動きを許容する)。いくつかの対話モードはコントローラを使用し、他の対話モードは手の位置および身振りを追跡し、さらに他の対話モードは頭の動きのみを追跡する。対話モードは、運動センサ、様々なタイプのカメラ、飛行時間センサ、タイマー、等々に基づいていてもよい。しかしながら対話モードのために利用することができるあらゆるオプションおよび可能な組合せにもかかわらず、多くの人工現実感システムは、特定の状況にのみ適合され、他の状況に対しては使用が困難であるか、あるいは適切ではない対話モードを使用している。例えばユーザは、複雑な対話を実施する場合に、ヘッドトラッキングのみの対話モードを使用すると失望することになる。さらに、ユーザは、単純な対話を実施する場合、または公衆設定における場合、コントローラまたは手追跡入力の使用を望まないこともしばしばである。一方、いくつかのシステムは複数の対話モードを使用しており、それらの対話モードは、モードを切り換えるために手動ユーザ選択を必要とすることがしばしばであり、あるいはそれらの対話モードは、現在の文脈に適した対話モードに自動的に切り換わらない。
【発明の概要】
【0003】
したがって本発明は、添付の特許請求の範囲による方法、コンピュータ可読記憶媒体および計算システムを対象としている。
【0004】
態様では、本発明は、人工現実感システムにおけるユーザ入力を解釈するために対話モード間を自動的に移行するための方法を対象としており、方法は、ユーザ位置追跡入力が利用不可能であることを指示する第1の対話モード文脈を識別するステップと、第1の対話モード文脈の識別に応答して、ノーハンド3自由度対話モードをイネーブルするステップと、ユーザ位置追跡入力が利用可能であり、また、手追跡入力が利用不可能であること、または第1の追跡された手ポーズが手レディー状態と一致していないことを指示する第2の対話モード文脈を識別するステップと、第2の対話モード文脈の識別に応答して、ノーハンド6自由度対話モードをイネーブルするステップと、第2の追跡された手ポーズが手レディー状態と一致していることを指示する第3の対話モード文脈を識別するステップと、第3の対話モード文脈の識別に応答して、凝視・身振り対話モードをイネーブルするステップと、第3の追跡された手ポーズが光線状態と一致していることを指示する第4の対話モード文脈を識別するステップと、第4の対話モード文脈の識別に応答して、レイキャスティング対話モードをイネーブルするステップとを含む。
【0005】
本発明による方法の実施形態では、複数の対話モードのうちの少なくとも1つをイネーブルするステップは、さらに、周期的に生じるか、または対話モード文脈要素の監視の結果として識別された対話モード文脈の変化に応答して生じる対話モード変更トリガに応答し得る。
【0006】
本発明による方法の実施形態では、方法は、現在の対話モードから変更するユーザ命令の受取りに基づいて対話モードへ移行するステップをさらに含むことができる。
【0007】
本発明による方法の実施形態では、手レディー状態と一致している第2の追跡された手ポーズは、少なくとも閾値量だけ上に向いているユーザの掌として識別された手ポーズを含むことができる。
【0008】
本発明による方法の実施形態では、光線状態と一致している第3の追跡された手ポーズは、少なくとも閾値量だけ下に向いているユーザの掌として識別された手ポーズを含むことができる。
【0009】
本発明による方法の実施形態では、ノーハンド3自由度対話モードは、ユーザの頭の決定された配向に少なくとも基づく方向のユーザ指示を受け取るステップと、ドウェルタイマーに基づいて、方向の複数のユーザ指示のうちの1つに対するアクションのユーザ指示を受け取るステップとを含むことができ、ノーハンド3自由度対話モードである間、X軸、Y軸およびZ軸におけるユーザの動きは、人工現実感環境におけるX軸、Y軸およびZ軸の視野の動きに自動的に変換されない。
【0010】
本発明による方法の実施形態では、ノーハンド6自由度対話モードは、ユーザの頭の決定された配向に少なくとも基づく方向のユーザ指示を受け取るステップと、ドウェルタイマーに基づいて、方向の複数のユーザ指示のうちの1つに対するアクションのユーザ指示を受け取るステップと、X軸、Y軸およびZ軸におけるユーザの動きを人工現実感環境におけるX軸、Y軸およびZ軸の視野の動きに変換するステップとを含むことができる。
【0011】
本発明による方法の実施形態では、凝視・身振り対話モードは、ユーザの頭の決定された配向に少なくとも基づき、また、人工現実感環境に対するユーザの頭の決定された位置に基づく方向のユーザ指示を受け取るステップであって、ユーザの頭の決定された位置は、X軸、Y軸およびZ軸に沿ったユーザの追跡された動きに基づく、ステップと、ユーザの手の姿勢を追跡し、かつ、手の姿勢を指定されたアクションと突き合わせることにより、方向の複数のユーザ指示のうちの1つに対するアクションのユーザ指示を受け取るステップとを含むことができる。
【0012】
本発明による方法の実施形態では、レイキャスティング対話モードは、人工現実感システムによるレイキャストに少なくとも基づく方向のユーザ指示を受け取るステップであって、光線はユーザの少なくとも一方の手の追跡された位置に対する場所からキャストされる、ステップと、ユーザの手の姿勢を追跡し、かつ、手の姿勢を指定されたアクションと突き合わせることにより、光線に対するアクションのユーザ指示を受け取るステップとを含むことができる。
【0013】
本発明による方法の実施形態では、ノーハンド3自由度対話モード、ノーハンド6自由度対話モード、および凝視・身振り対話モードの各々は、凝視カーソルを含む視覚アフォーダンスを提供することができ、凝視カーソルは、ユーザの頭の追跡された位置に少なくとも部分的に基づいて配置される、ユーザのための視野の中に示される。
【0014】
本発明による方法の実施形態では、ノーハンド3自由度対話モード、ノーハンド6自由度対話モード、および凝視・身振り対話モードの各々は、凝視カーソルを含む視覚アフォーダンスを提供することができ、また、凝視カーソルは、ユーザの頭の追跡された位置に少なくとも部分的に基づいて、また、ユーザの追跡された凝視方向に基づいて配置される、ユーザのための視野の中に示される。
【0015】
一態様では、本発明は、計算システムによって実行されると、その計算システムが上で説明した方法を実施する、すなわち人工現実感システムにおけるユーザ入力を解釈するために対話モード間を移行するためのプロセスを実施することになる命令を記憶するコンピュータ可読記憶媒体をさらに対象としており、プロセスは、手追跡入力が利用不可能であること、または第1の追跡された手ポーズが手レディー状態と一致していないことを指示する第1の対話モード文脈を識別するステップと、第1の対話モード文脈の識別に応答して、ノーハンド対話モードをイネーブルするステップと、第2の追跡された手ポーズが手レディー状態と一致していることを指示する第2の対話モード文脈を識別するステップと、第2の対話モード文脈の識別に応答して、凝視・身振り対話モードをイネーブルするステップと、第3の追跡された手ポーズが光線状態と一致していることを指示する第3の対話モード文脈を識別するステップと、第3の対話モード文脈の識別に応答して、レイキャスティング対話モードをイネーブルするステップとを含む。
【0016】
コンピュータ可読記憶媒体の実施形態では、ノーハンド対話モードは、ユーザの頭の決定された配向に少なくとも基づく方向のユーザ指示を受け取るステップと、ドウェルタイマーに基づいて、方向の複数のユーザ指示のうちの1つに対するアクションのユーザ指示を受け取るステップとを含むことができ、ユーザ位置追跡入力が利用不可能である場合、ノーハンド対話モードは、X軸、Y軸およびZ軸におけるユーザの動きを人工現実感環境におけるX軸、Y軸およびZ軸の視野の動きに変換せず、また、ユーザ位置追跡入力が利用可能である場合、ノーハンド対話モードは、X軸、Y軸およびZ軸におけるユーザの動きを人工現実感環境におけるX軸、Y軸およびZ軸の視野の動きに自動的に変換する。
【0017】
コンピュータ可読記憶媒体の実施形態では、凝視・身振り対話モードは、ユーザの親指と1本の他の指の間に配置されたユーザの視野の中に示されている球を含む視覚アフォーダンスを提供することができ、この球は、ユーザの親指と他の指の間の決定された距離に従ってリサイズされ、または歪められたものとして示すことも可能である。
【0018】
コンピュータ可読記憶媒体の実施形態では、レイキャスティング対話モードは、ユーザの親指と1本の他の指の間に配置されたユーザの視野の中に示されている形状を含む視覚アフォーダンスを提供することができ、この形状は、ユーザの親指と他の指の間の決定された距離に従ってリサイズされ、または歪められたものとして示すことも可能である。
【0019】
コンピュータ可読記憶媒体の実施形態では、手レディー状態と一致している第2の追跡された手ポーズは、上に向いているユーザの掌として識別された手ポーズを含むことができる。
【0020】
コンピュータ可読記憶媒体の実施形態では、凝視・身振り対話モードは、ユーザの頭の決定された配向に少なくとも基づき、また、人工現実感環境に対するユーザの頭の決定された位置に基づく方向のユーザ指示を受け取るステップであって、ユーザの頭の決定された位置は、X軸、Y軸およびZ軸に沿ったユーザの追跡された動きに基づく、ステップと、ユーザの手の姿勢を追跡し、かつ、手の姿勢を指定されたアクションと突き合わせることにより、方向の複数のユーザ指示のうちの1つに対するアクションのユーザ指示を受け取るステップとを含むことができる。
【0021】
一態様では、本発明は、人工現実感システムにおけるユーザ入力を解釈するための計算システムを対象としており、計算システムは、
1つまたは複数のプロセッサと、その1つまたは複数のプロセッサによって実行されると、計算システムが上で説明した方法を実施し、すなわち対話モード間を移行するためのプロセスを実施することになる命令を記憶する1つまたは複数のメモリとを備え、プロセスは、手追跡入力が利用不可能であること、または第1の追跡された手ポーズが手レディー状態と一致していないことを指示する第1の対話モード文脈を識別するステップと、第1の対話モード文脈の識別に応答して、ノーハンド対話モードをイネーブルするステップと、第2の追跡された手ポーズが手レディー状態と一致していることを指示する第2の対話モード文脈を識別するステップと、第2の対話モード文脈の識別に応答して、凝視・身振り対話モードをイネーブルするステップと、第3の追跡された手ポーズが光線状態と一致していることを指示する第3の対話モード文脈を識別するステップと、第3の対話モード文脈の識別に応答して、レイキャスティング対話モードをイネーブルするステップとを含む。
【0022】
計算システムの実施形態では、光線状態と一致している第3の追跡された手ポーズは、少なくとも閾値量だけ下に向いているユーザの掌として識別された手ポーズを含むことができる。
【0023】
計算システムの実施形態では、ノーハンド対話モードおよび凝視・身振り対話モードは、凝視カーソルを含む視覚アフォーダンスを提供することができ、凝視カーソルは、ユーザの頭の追跡された位置に少なくとも部分的に基づいて配置される、ユーザのための視野の中に示される。
【図面の簡単な説明】
【0024】
【
図1】本技術のいくつかの実装形態が動作し得るデバイスの概要を示すブロック図である。
【
図2A】本技術のいくつかの実装形態に使用することができる仮想現実感ヘッドセットを示す線図である。
【
図2B】本技術のいくつかの実装形態に使用することができる複合現実感ヘッドセットを示す線図である。
【
図3】本技術のいくつかの実装形態が動作し得る環境の概要を示すブロック図である。
【
図4】いくつかの実装形態における、開示される技術を使用しているシステムに使用することができる構成要素を示すブロック図である。
【
図5】本技術のいくつかの実装形態に使用される、指定された対話モードを切り換えるためのトリガを識別し、トリガされた対話モードをイネーブルするためのプロセスを示す流れ図である。
【
図7】ドウェルタイマーを有する例示的凝視カーソルを示す概念図である。
【
図8】手身振り選択を有する例示的凝視カーソルを示す概念図である。
【
図9】手身振り選択を有するレイキャスティング方向入力の例を示す概念図である。
【
図10A】ドウェルタイマーを有する目追跡ベース凝視カーソルを使用した、デバイス位置決めと対象選択の間の例示的対話を示す概念図である。
【
図10B】ドウェルタイマーを有する目追跡ベース凝視カーソルを使用した、デバイス位置決めと対象選択の間の例示的対話を示す概念図である。
【発明を実施するための形態】
【0025】
ここで紹介される技術は、添付の図面に関連して以下の詳細な説明を参照することによってより良好に理解することができ、添付の図面では、同様の参照数表示は、全く同じ要素または機能的に同様の要素を示している。
【0026】
本開示の態様は対話モードシステムのためのものであり、この対話モードシステムは、人工現実感環境における複数の対話モードを提供し、対話モード間の自動文脈特化移行を有している。対話モードは、対話モードシステムが(a)人工現実感環境内における方向指示および移動を決定し、また、(b)他のアクションを選択し、または実施するための対話を決定する方法を指定することができる。また、対話モードシステムは、現在の対話モードおよび対話モード移行のシグナリングのためのアフォーダンスを提供する。対話モードシステムは複数の対話モードを制御することができ、また、対話モードに対する対話モード文脈要素のマッピングを使用して、対話モード間の移行を制御することができる。ユーザは、手動でソフトウェア制御またはハードウェア制御を起動し、対話モード移行身振りを実施し、または他の明確なコマンドによって追加対話モード移行を同じくもたらすことができる。
【0027】
対話モード文脈要素は、例えばイネーブルされている、またはイネーブルされていない(ハードウェア制御またはソフトウェア制御を介して)ハードウェア構成要素;イネーブルされている、またはイネーブルされていないソフトウェアモジュール;現在のプライバシー、電力またはアクセス可能性設定;環境条件(例えば照明、表面タイプまたはマーカー可用性などの位置検出要素、領域ベースカメラ制限、決定された領域タイプ、周囲の人の人数または識別された特定の周囲の人、等々);現在の身体位置(例えば手が見えるかどうか、手配向、実施されている身振り);現在のコントローラ位置または状態、等々を含むことができる。
【0028】
対話モードシステムは、頭追跡、位置追跡、目追跡、手追跡、他のカメラベースシステム、ハードウェアコントローラ、同時局所化およびマッピング(SLAM)システムまたは他のデータ源などの様々なサブ-システムからの入力を統合することによって対話モード文脈を決定することができる。頭追跡サブ-システムは、例えば内部運動ユニット(IMU-以下で考察される)、ヘッドマウントデバイスによって放出される被追跡光、ユーザの頭の表現を捕獲することを対象としたカメラまたは他の外部センサ、またはそれらの組合せからのデータのうちの1つまたは複数に基づいてユーザの手の配向を識別することができる。位置追跡サブ-システムは、例えば着用可能デバイスによって放出される被追跡光、飛行時間センサ、従来のカメラデータおよび/または深度カメラデータ、IMUデータ、GPSデータに基づく環境マッピング、等々に基づいて、人工現実感環境内のユーザ位置を識別することができる。目追跡サブ-システムは、ユーザの片方の目または両方をモデル化し、しばしば、例えばユーザの目で反射した光の円(すなわち「グリント」)を捕獲する画像などの要素に基づいて、ユーザの窩とユーザの瞳孔の中心を結ぶ線に沿って凝視方向ベクトルを決定することにより、ヘッドマウントデバイスに対する凝視方向を識別することができる。手追跡サブ-システムは、例えば1つまたは複数のカメラからの、ユーザの片方の手または両方を描写している画像、および/または手袋、リング、リストバンド、等々などのユーザが着用しているデバイスからのセンサデータに基づいて、ユーザの手の位置、ポーズおよび/または動きを決定することができる。他のカメラシステムからの情報は、照明状態、環境マッピング、等々などの追加情報を集めることができる。これらのサブ-システムの各々は、結果データ(例えば頭配向、位置、目配向、手ポーズおよび位置、身体ポーズおよび位置、環境データ、マッピングデータ、等々)、ならびにサブ-システムの態様がイネーブルされているかどうか、およびサブ-システムが特定のタイプのデータへのアクセスを有しているかどうか(例えば特定のセットのカメラまたは他のセンサがイネーブルされているかどうか、電池レベル、関連する結果データに対する精度予測、等々)などのサブ-システムメタ-データを提供することができる。
【0029】
いくつかの実装形態では、対話モードシステムは、ノーハンド3DoFモード、ノーハンド6DoFモード、凝視・身振りモードおよびレイキャスティングモードを含む少なくとも4つの対話モードを制御することができる。ノーハンド3DoF対話モードは、ロール方向、ヨー方向およびピッチ方向を示す3自由度のみを追跡することができる(しかしながらユーザは、コントローラ上のジョイスティックなどの他の手段を介して、X位置、Y位置およびZ位置の動きを指示することができる)。3DoFにおける追跡は、要するに、人工現実感デバイスを原点とするベクトルとして方向付けられ、このベクトルは原点を取り囲んでいる球上の点まで展開しており、球上のその点はIMUデータに基づいて識別される。いくつかの実装形態では、ユーザの識別された凝視方向に基づいてベクトルを修正することができる。このベクトルに基づいて、目追跡を利用することができない視野の中心か、またはユーザの目が集束する、目追跡を利用することができる位置に従って配置される位置のいずれかで、ユーザの視野に「凝視カーソル」を提供することができる。ノーハンド3DoF対話モードにある間、対話モードシステムはドウェルタイマーを使用することができ、このドウェルタイマーは、方向ベクトルが一定の時間期間内に閾値変化しないとカウントダウンを開始し、方向ベクトルの閾値変化が検出されると、その時点でリセットされる。ドウェルタイマーがゼロまでカウントダウンすると、これはユーザアクションを指示し得る。このようなアクションは、ベクトル方向と相俟って、凝視カーソルによって指示されている対象の選択または他の駆動をもたらすことができる。本技術に従って構成された凝視カーソルおよびドウェルタイマーに関する追加詳細については、
図6および
図10ならびに関連する以下の説明を参照されたい。ノーハンド3DoF対話モードへの移行をトリガすることができる対話モード文脈要素は、位置追跡カメラがオフであり、さもなければ位置追跡カメラを利用することができない場合(例えば低電力モード、プライバシーモード、公衆モード、等々にある場合)、または照明状態が信頼性の高い位置であり、また、手追跡を遂行することができないような場合などの要素を含むことができる。
【0030】
ノーハンド6DoF対話モードは、ノーハンド6DoF対話モードシステムが凝視カーソルのための方向ベクトルを追跡するだけでなく、人工現実感環境内におけるユーザ位置の動きを同じく追跡する点を除き、ノーハンド3DoF対話モードと類似していてもよい。ノーハンド3DoF対話モードの場合と同様、ノーハンド6DoF対話モードにおけるアクションは、凝視カーソルを導くこと(これは、ここでは、ユーザが自身の方向および位置を変えることによって実施することができる)、およびドウェルタイマーを使用して、凝視カーソルに対するアクションを実施することを含むことができる。ノーハンド6DoF対話モードへの移行をトリガすることができる対話モード文脈要素は、位置追跡システムがイネーブルされていることの指示、しかしながら(a)手追跡システムはイネーブルされていないか、または手の位置を追跡するには照明状態が十分ではないこと、または(b)手「レディー状態」の検出が存在していないことのいずれかの指示を含むことができる。レディー状態は、ユーザの手が閾値位置より高いユーザの視野に存在する場合、および/またはユーザの手が特定の構成にある場合(例えば掌が上に向いている)に生じ得る。
【0031】
凝視・身振り対話モードは6DoF対話モードまたは3DoF対話モードのバージョンであり得、方向は凝視カーソルに基づいているが、アクションのためにドウェルタイマーを使用する代わりに(またはドウェルタイマーの使用に加えて)、ユーザは手身振りを使用してアクションを指示することができる。例えば手がユーザの視野の中に存在し、掌が上に向いている場合、親指と指で「つまむ」身振りをすることによってアクションを指示することができる。エアータップ、エアースワイプ、グラブまたは他の識別可能な運動または姿勢などの他の身振りを使用することも可能である。凝視・身振り対話モードへの移行をトリガすることができる対話モード文脈要素は、手追跡システムがイネーブルされていること、およびユーザの手がレディー状態にあることの識別を含むことができる。いくつかの実装形態では、凝視・身振り対話モードへの移行には、6DoFにおける動きのための位置追跡システムの可用性がさらに必要であり得る。凝視・身振り対話モードに関する追加詳細については
図8を参照されたい。
【0032】
レイキャスティング対話モードは、凝視カーソルをユーザの手から人工現実感環境の中へ展開する光線に置き換えることができる。例えば光線は、原点(例えば手の質量中心またはユーザの目、肩あるいは臀部)と制御点(例えばユーザの手に対する点)を結ぶ線に沿って指定することができる。凝視・身振り対話モードに使用される手身振りと同様の手身振りを使用してアクションを指示することができる。レイキャスティング対話モードへの移行をトリガすることができる対話モード文脈要素は、利用可能な手追跡システムおよびレイキャスティングポーズに存在するユーザの手(例えば(a)ユーザの視野の中の手、または閾値の上に配置された手、および(b)掌を下に向けて配置された手の両方)を含むことができる。レイキャスティング対話モードに関する追加詳細については、
図9および関連する以下の説明を参照されたい。
【0033】
いくつかの実装形態では、他の制御が上記対話モードのいずれかにおける方向決定および/または選択決定を強化し、または取って代わり得る。例えばユーザは、選択または他のアクションを指示するために、コントローラおよび/またはコントローラ上の押しボタンを使用して方向を指示することができ、対にされたデバイスを使用して方向またはアクションを指示することができる(例えば身振りをスワイプし、またはタッチスクリーン上でタップし、腕時計またはリング上などの容量センサ上でスクロールアクションを実施し、等々によって)。
【0034】
開示される技術の実施形態は人工現実感システムを含むことができ、または人工現実感システムと関連して実現することができる。人工現実感またはエキストラ現実感(XR)は、ユーザへの提示に先立っていくつかの方法で調整された現実感の形態であり、例えば仮想現実感(VR)、拡張現実感(AR)、複合現実感(MR)、混成現実感またはいくつかの組合せ、および/またはそれらの誘導物を含むことができる。人工現実感コンテントは、完全に生成されたコンテント、または捕獲されたコンテント(例えばリアルワールド写真)と組み合わされた生成済みコンテントを含むことができる。人工現実感コンテントは、ビデオフィードバック、音響フィードバック、触覚フィードバックまたはそれらのいくつかの組合せを含むことができ、それらのうちのいずれも単一チャネルで、または複数のチャネル(観察者に三次元効果をもたらす立体ビデオなど)で提供することができる。さらに、いくつかの実施形態では、人工現実感は、例えば人工現実感におけるコンテントを作り出すために使用される、および/または人工現実感に使用される(例えば人工現実感におけるアクティビティの実施に使用される)アプリケーション、製品、アクセサリ、サービスまたはそれらのいくつかの組合せと関連付けることができる。人工現実感コンテントを提供する人工現実感システムは、ホストコンピュータシステムに接続されたヘッドマウントディスプレイ(HMD)、独立型HMD、モバイルデバイスまたは計算システム、「洞窟」環境または他の投影システムを含む様々なプラットフォーム上で、あるいは一人または複数の観察者に人工現実感コンテントを提供することができる任意の他のハードウェアプラットフォーム上で実現することができる。
【0035】
本明細書において使用されている「仮想現実感」すなわち「VR」は、ユーザの視覚入力が計算システムによって制御される没頭経験を意味している。「拡張現実感」すなわち「AR」は、画像が計算システムを通過した後のリアルワールドの画像をユーザが見るシステムを意味している。例えば背面にカメラを備えたタブレットは、リアルワールドの画像を捕獲し、次に画像をタブレットのカメラとは反対側のスクリーンに表示することができる。タブレットは、画像がシステムを通過する際に、仮想対象を追加することなどによって画像を処理し、かつ、調整し、すなわち「拡張」することができる。「複合現実感」すなわち「MR」は、ユーザの目に入射する光が部分的に計算システムによって生成され、また、部分的にリアルワールドの対象で反射した光を構成するシステムを意味している。例えばMRヘッドセットは、パススルーディスプレイを備えたメガネとして形状化することができ、このメガネは、リアルワールドからの光による導波路の通過を許容し、導波路は、同時にMRヘッドセットのプロジェクターからの光を放出し、それによりMRヘッドセットは、ユーザが見ることができる実際の対象と混合された仮想対象を提示することができる。本明細書において使用されている「人工現実感」、「エキストラ現実感」すなわち「XR」は、VR、AR、MRのうちのいずれか、またはそれらの任意の組合せ、すなわち混成を意味することができる。
【0036】
既存のXRシステムは、レイキャスティング、エアータッピング、ドウェルタイマーおよび凝視カーソルなどの特徴を含む多くの対話モードを開発している。しかしながら既存のXRシステムは、これらの特徴を使用した対話モード間の自動移行を提供せず、対話モードの手動変更をユーザに要求し、特定のアプリケーションを使用して、全ての対話に対して同じ対話モードを使用するか、あるいは文脈に無関係に対話モードを指定するようにアプリケーションに要求するかのいずれかである。しかしながらこれは、現在の対話モードが現在の文脈に対して不適切である場合に問題をもたらし、例えば、条件が現在の対話モードの態様による適切な機能の発揮を許容しない場合(例えば対話モードが手検出に頼っており、その手が見えない場合、照明状態が乏しい場合、および/またはハードウェアが手ポーズの捕獲および解釈をイネーブルされていない場合)、別の対話モードが控えめであり、あるいはそれほどには性能利点を提供しない場合(例えばユーザの手がさもなければ占有されている場合、あるいは手身振りをすることが社会的に無作法である場合、デバイス電力が少なく、電力要求がより少ない対話モードを使用することが望ましい場合、等々)、または実施されるべき対話に対して現在の対話モードが次善の対話モードである場合(例えば現在の対話モードが時間指向ドウェルタイマーを使用しており、連続選択が実施されるべきである場合)に問題が生じる。
【0037】
本明細書において説明されている対話モードシステムおよびプロセスは、従来のXR対話技法に関わるこれらの問題を克服することが期待され、また、(a)より大きい機能性を提供し、その一方で既存のXRシステムにおける対話よりも自然で、かつ、直感的であること、(b)現在の電力および環境条件に一致した対話モードを選択することによって新しい有効性を提供すること、および(c)人工現実感対話をユーザおよび他の周囲の人に対してそれほどには直感的ではないようにすることが期待される。自然で直感的であるにもかかわらず、本明細書において説明されているシステムおよびプロセスは、従来の対象対話の類似物である代わりに、コンピュータ化された人工現実感システムに根付いている。例えば既存の対象対話技法は、本明細書において説明されている、様々なモード間を円滑に自動移行する対話モードのセットを提供していない。さらに、本明細書において説明されている対話モードシステムおよびプロセスは、追加状況、例えば現在の文脈では動作することができない対話モード、またはその対話モードではユーザが対話することができない対話モードを既存のXRシステムが提供している場合などにおける対話を利用可能にすることによって改善を提供する(例えば低照明状態の場合、またはユーザの手がさもなければ占有されている場合に、より適切な対話モードに切り換えることによって)。
【0038】
以下、いくつかの実装形態について、図を参照してより詳細に考察する。例えば
図1は、開示される技術のいくつかの実装形態が動作し得るデバイスの概要を示すブロック図である。デバイスは、識別された対話モード文脈における要素に基づくか、またはユーザ制御に応答して、対話モードを切り換える計算システム100のハードウェア構成要素を備えることができる。様々な実装形態では、計算システム100は、単一の計算デバイス103、または有線または無線チャネルを介して通信して処理を分散し、かつ、入力データを共有する複数の計算デバイス(例えば計算デバイス101、計算デバイス102および計算デバイス103)を含むことができる。いくつかの実装形態では、計算システム100は、外部処理またはセンサを必要とすることなく、コンピュータ生成経験またはコンピュータ拡張経験をユーザに提供することができる独立型ヘッドセットを含むことができる。他の実装形態では、計算システム100は、ヘッドセットおよびコア処理構成要素(コンソール、モバイルデバイスまたはサーバシステムなど)などの複数の計算デバイスを含むことができ、いくつかの処理操作がヘッドセット上で実施され、また、他の処理操作はコア処理構成要素にオフロードされる。例示的ヘッドセットについては、以下で、
図2Aおよび
図2Bに関連して説明される。いくつかの実装形態では、ヘッドセットデバイスに組み込まれたセンサのみで位置データおよび環境データを集めることができ、一方、他の実装形態では、複数の非ヘッドセット計算デバイスのうちの1つまたは複数は、環境データまたは位置データを追跡することができるセンサ構成要素を含むことができる。
【0039】
計算システム100は、1つまたは複数のプロセッサ110(例えば中央処理装置(CPU)、グラフィカル処理装置(GPU)、ホログラフィック処理装置(HPU)、等々)を含むことができる。プロセッサ110は、単一の処理装置であっても、あるいは1つのデバイス中の複数の処理装置または複数のデバイスにわたって分散された(例えば計算デバイス101~103のうちの2つ以上にわたって分散された)複数の処理装置であってもよい。
【0040】
計算システム100は、プロセッサ110にアクションを知らせる入力をプロセッサ110に提供する1つまたは複数の入力デバイス120を含むことができる。アクションは、入力デバイスから受け取った信号を解釈し、かつ、通信プロトコルを使用してその情報をプロセッサ110に通信するハードウェアコントローラによって仲介することができる。個々の入力デバイス120は、例えばマウス、キーボード、タッチスクリーン、タッチパッド、着用可能入力デバイス(例えば触覚手袋、ブレスレット、リング、イヤリング、ネックレス、腕時計、等々)、カメラ(または他の光ベース入力デバイス、例えば赤外線センサ)、マイクロホン、または他のユーザ入力デバイスを含むことができる。
【0041】
プロセッサ110は、例えばPCIバス、SCSIバスなどの内部バスまたは外部バスを使用して、または無線接続を使用して他のハードウェアデバイスに結合することができる。プロセッサ110は、ディスプレイ130などのデバイスのためのハードウェアコントローラと通信することができる。ディスプレイ130を使用して文章および図形を表示することができる。いくつかの実装形態では、ディスプレイ130は、入力デバイスがタッチスクリーンであるか、または目方向監視システムを装着しているような場合、ディスプレイの一部として入力デバイスを含む。いくつかの実装形態では、ディスプレイは入力デバイスとは別である。表示デバイスの例は、LCD表示スクリーン、LED表示スクリーン、投影されたホログラフィックすなわち拡張現実感ディスプレイ(ヘッドアップ表示デバイスまたはヘッドマウントデバイスなど)、等々である。他のI/Oデバイス140も、同じく、ネットワークチップまたはカード、ビデオチップまたはカード、音響チップまたはカードなどのプロセッサ、USB、ファイアワイヤまたは他の外部デバイス、カメラ、プリンタ、スピーカ、CD-ROMドライブ、DVDドライブ、ディスクドライブ、等々に結合することができる。
【0042】
計算システム100は、他の局所計算デバイスまたはネットワークノードと無線で、または配線ベースで通信することができる通信デバイスを含むことができる。通信デバイスは、例えばTCP/IPプロトコルを使用したネットワークを介して別のデバイスまたはサーバと通信することができる。計算システム100は、通信デバイスを利用して、操作を複数のネットワークデバイスにわたって分散することができる。
【0043】
プロセッサ110は、計算システム100の複数の計算デバイスのうちの1つに含めることができ、または計算システム100の複数の計算デバイス、または他の複数の外部デバイスにわたって分散させることができるメモリ150へのアクセスを有することができる。メモリは、揮発性または不揮発性記憶装置のための1つまたは複数のハードウェアデバイスを含み、また、リードオンリメモリおよび書込み可能メモリの両方を含むことができる。例えばメモリは、ランダムアクセスメモリ(RAM)、様々なキャッシュ、CPUレジスタ、リードオンリメモリ(ROM)、およびフラッシュメモリなどの書込み可能不揮発性メモリ、ハードドライブ、フロッピーディスク、CD、DVD、磁気記憶デバイス、テープドライブ、等々のうちの1つまたは複数を含むことができる。メモリは、基礎をなしているハードウェアから分離された伝搬信号ではなく、したがってメモリは非一時的である。メモリ150は、オペレーティングシステム162、対話モードシステム164および他のアプリケーションプログラム166などのプログラムおよびソフトウェアを記憶するプログラムメモリ160を含むことができる。メモリ150は、例えば対話モードの切換えをトリガするための対話モードへの対話モード文脈要素のマッピング、構成データ、設定、ユーザオプションまたは好み、等々を含むことができるデータメモリ170を同じく含むことができ、これらはプログラムメモリ160または計算システム100の任意の要素に提供することができる。
【0044】
いくつかの実装形態は、多くの他の計算システム環境または構成を使用して動作することができる。本技術と共に使用するのに適切であり得る計算システム、環境および/または構成の例には、それらに限定されないが、XRヘッドセット、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドデバイスまたはラップトップデバイス、セルラー電話、着用可能電子工学、ゲーミングコンソール、タブレットデバイス、多重プロセッサシステム、マイクロプロセッサ-ベースシステム、セット-トップボックス、プログラマブル消費者電子工学、ネットワークPC、ミニコンピュータ、メインフレームコンピュータ、上記システムまたはデバイスのうちのいずれかを含む分散計算環境、等々がある。
【0045】
図2Aは、いくつかの実施形態による仮想現実感ヘッドマウントディスプレイ(HMD)200の線図である。HMD200は、前面剛直ボディー205およびバンド210を含む。前面剛直ボディー205は、電子ディスプレイ245の1つまたは複数の電子表示要素、慣性運動ユニット(IMU-慣性測定ユニットとも呼ばれる)215、1つまたは複数の位置センサ220、ロケータ225および1つまたは複数の計算ユニット230を含む。位置センサ220、IMU215および計算ユニット230はHMD200の内部であってもよく、また、ユーザに見えなくてもよい。様々な実装形態では、IMU215、位置センサ220およびロケータ225は、リアルワールドおよび仮想環境におけるHMD200の動きおよび場所を3自由度(3DoF)または6自由度(6DoF)で追跡することができる。例えばロケータ225は、HMD200の周りの実際の対象上に光点を生成する赤外光ビームを放出することができる。別の例として、IMU215は、例えば1つまたは複数の加速度計、ジャイロスコープ、磁力計、他の非カメラ-ベースの位置、力または配向センサ、またはそれらの組合せを含むことができる。HMD200と統合された1つまたは複数のカメラ(図示せず)は光点を検出することができる。HMD200中の計算ユニット230は、検出された光点を使用してHMD200の位置および動きを捕外し、かつ、HMD200を取り囲んでいる実際の対象の形状および位置を識別することができる。
【0046】
電子ディスプレイ245は前面剛直ボディー205と統合することができ、また、計算ユニット230によって指令された画像光をユーザに提供することができる。様々な実施形態では、電子ディスプレイ245は単一の電子ディスプレイであっても、複数の電子ディスプレイであってもよい(例えばユーザの目毎に1つのディスプレイ)。電子ディスプレイ245の例には、液晶ディスプレイ(LCD)、有機発光ダイオード(OLED)ディスプレイ、能動マトリックス有機発光ダイオードディスプレイ(AMOLED)、1つまたは複数の量子ドット発光ダイオード(QOLED)サブ-ピクセルを含むディスプレイ、プロジェクターユニット(例えばmicroLED、LASER、等々)、いくつかの他のディスプレイ、またはそれらのいくつかの組合せがある。
【0047】
いくつかの実装形態では、HMD200は、パーソナルコンピュータ(PC)(図示せず)などのコア処理構成要素および/または1つまたは複数の外部センサ(図示せず)に結合することができる。外部センサは、IMU215および位置センサ220からの出力と相俟って、PCが使用することができるHMD200を監視し(例えばHMD200から放出される光を介して)、それによりHMD200の場所および動きを決定することができる。
【0048】
いくつかの実装形態では、HMD200は、ユーザが片方または両方の手に保持することができるコントローラ(図示せず)などの1つまたは複数の他の外部デバイスと通信することができる。コントローラは独自のIMUユニット、位置センサを有することができ、および/または他の光点を放出することができる。HMD200または外部センサはこれらのコントローラ光点を追跡することができる。HMD200中の計算ユニット230またはコア処理構成要素は、IMUおよび位置出力と相俟ってこの追跡を使用し、それによりユーザの手の位置および動きを監視することができる。コントローラは、入力および仮想対象との対話を提供するためにユーザが駆動することができる様々なボタンを同じく含むことができる。様々な実装形態では、HMD200は、目追跡ユニット、音響システム、様々なネットワーク構成要素、等々などの追加サブシステムを同じく含むことができる。いくつかの実装形態では、コントローラの代わりに、またはコントローラに追加して、HMD200の中またはHMD200の外部に含まれている1つまたは複数のカメラがユーザの手の位置およびポーズを監視し、それにより身振りおよび他の手ならびに身体運動を決定することができる。
【0049】
図2Bは、複合現実感HMD252およびコア処理構成要素254を含む複合現実感HMDシステム250の線図である。複合現実感HMD252およびコア処理構成要素254は、リンク256によって示されているように無線接続(例えば60GHzリンク)を介して通信することができる。他の実装形態では、複合現実感システム250には外部計算デバイスがなく、ヘッドセットのみを含むか、または複合現実感HMD252とコア処理構成要素254の間に他の有線または無線接続を含む。複合現実感HMD252はパススルーディスプレイ258およびフレーム260を含む。フレーム260は、光プロジェクター(例えばLASER、LED、等々)、カメラ、目追跡センサ、MEMS構成要素、ネットワーク化構成要素、等々などの様々な電子構成要素(図示せず)を収納することができる。
【0050】
プロジェクターは、媒体をユーザに表示するために、例えば光学素子を介してパススルーディスプレイ258に結合することができる。光学素子は、プロジェクターからの光をユーザの目に導くための、1つまたは複数の導波路アセンブリ、リフレクター、レンズ、ミラー、コリメーター、グレーティング、等々を含むことができる。画像データは、リンク256を介してコア処理構成要素254からHMD252へ伝送することができる。HMD252の中のコントローラは、画像データをプロジェクターからの光パルスに変換することができ、この光パルスは、出力光として光学素子を介してユーザの目に伝送することができる。この出力光はディスプレイ258を通過する光と混合することができ、それによりこの光出力は、あたかもリアルワールドに存在しているかの如くに出現する仮想対象を提示することができる。
【0051】
HMD200と同様、HMDシステム250も、運動および位置追跡ユニット、カメラ、光源、等々を含むことができ、それによりHMDシステム250は、例えば、3DoFまたは6DoFで自身を追跡し、ユーザの部位(例えば手、足、頭または他の身体部分)を追跡し、仮想対象をマップして、HMD252が移動する際に不動として出現させ、また、仮想対象を身振りおよび他のリアルワールド対象に反応させることができる。
【0052】
図3は、開示されている技術のいくつかの実装形態が動作し得る環境300の概要を示すブロック図である。環境300は1つまたは複数のクライアント計算デバイス305A~Dを含むことができ、クライアント計算デバイスの例は計算システム100を含むことができる。いくつかの実装形態では、クライアント計算デバイスのうちのいくつか(例えばクライアント計算デバイス305B)はHMD200またはHMDシステム250であってもよい。クライアント計算デバイス305は、サーバ計算デバイスなどの1つまたは複数の遠隔コンピュータへのネットワーク330を介した論理接続を使用して、ネットワーク化された環境で動作することができる。
【0053】
いくつかの実装形態では、サーバ310は、クライアント要求を受け取り、かつ、サーバ320A~Cなどの他のサーバを介してこれらの要求の遂行を調整するエッジサーバであってもよい。サーバ計算デバイス310および320は計算システム100などの計算システムを備えることができる。個々のサーバ計算デバイス310および320は単一のサーバとして論理的に表示されているが、これらのサーバ計算デバイスは、それぞれ、同じ場所または地理的に全く異なる物理的場所に配置された複数の計算デバイスを包含している分散計算環境であってもよい。
【0054】
クライアント計算デバイス305およびサーバ計算デバイス310および320は、それぞれ、他のサーバ/クライアントデバイスに対するサーバまたはクライアントとして作用することができる。サーバ310はデータベース315に接続することができる。サーバ320A~Cは、それぞれ対応するデータベース325A~Cに接続することができる。上で考察したように、個々のサーバ310または320は複数のサーバのグループに対応することができ、これらのサーバの各々はデータベースを共有することができ、または独自のデータベースを有することができる。データベース315および325は単一のユニットとして論理的に表示されているが、データベース315および325は、それぞれ、自身の対応するサーバ内に配置され得る、あるいは同じ場所または地理的に全く異なる物理的場所に配置され得る複数の計算デバイスを包含している分散計算環境であってもよい。
【0055】
ネットワーク330は、ローカルエリアネットワーク(LAN)、広域ネットワーク(WAN)、メッシュネットワーク、ハイブリッドネットワーク、または他の有線または無線ネットワークであってもよい。ネットワーク330は、インターネットまたは何らかの他の公衆または専用ネットワークであってもよい。クライアント計算デバイス305は、有線または無線通信などによって、ネットワークインタフェースを介してネットワーク330に接続することができる。サーバ310とサーバ320の間の接続は個別の接続として示されているが、これらの接続は、ネットワーク330または個別の公衆または専用ネットワークを含む任意の種類のローカル、広域、有線または無線ネットワークであってもよい。
【0056】
図4は、いくつかの実装形態における、開示されている技術を使用しているシステムに使用することができる構成要素400を示すブロック図である。構成要素400は、計算システム100の1つのデバイスの中に含めることができ、または計算システム100の複数のデバイスにわたって分散させることができる。構成要素400は、ハードウェア410、メディエータ420および複数の専用構成要素430を含む。上で考察したように、開示されている技術を実現するシステムは、処理ユニット412、作業用メモリ414、入力および出力デバイス416(例えばカメラ、ディスプレイ、IMUユニット、ネットワーク接続、等々)および記憶メモリ418を含む様々なハードウェアを使用することができる。様々な実装形態では、記憶メモリ418は、局所デバイス、遠隔記憶デバイスに対するインタフェースまたはそれらの組合せのうちの1つまたは複数であってもよい。例えば記憶メモリ418は、システムバスを介してアクセスすることができる1つまたは複数のハードドライブまたはフラッシュドライブであってもよく、またはクラウド記憶プロバイダ(記憶装置315または325の中などの)、または1つまたは複数の通信ネットワークを介してアクセスすることができる他のネットワーク記憶装置であってもよい。様々な実装形態では、構成要素400は、クライアント計算デバイス305などのクライアント計算デバイスの中で、またはサーバ計算デバイス310または320などのサーバ計算デバイス上で実現することができる。
【0057】
メディエータ420は、ハードウェア410と複数の専用構成要素430の間で資源を仲介する構成要素を含むことができる。例えばメディエータ420は、オペレーティングシステム、サービス、ドライバ、基本入力出力システム(BIOS)、コントローラ回路、または他のハードウェアシステムあるいはソフトウェアシステムを含むことができる。
【0058】
複数の専用構成要素430は、(a)識別された対話モード文脈における要素に基づいて、または(b)ユーザ制御に応答して、対話モードを切り換える操作を実施するように構成されたソフトウェアまたはハードウェアを含むことができる。複数の専用構成要素430は、モードセレクタ434、ノーハンド3DoFモードコントローラ436、ノーハンド6DoFモードコントローラ438、凝視・身振りモードコントローラ440、レイキャスティングモードコントローラ442、およびユーザインタフェースを提供し、データを転送し、また、複数の専用構成要素を制御するために使用することができる、インタフェース432などの構成要素およびAPIを含むことができる。いくつかの実装形態では、構成要素400は、複数の計算デバイスにわたって分散される計算システムの中であっても、または複数の専用構成要素430のうちの1つまたは複数を実行するサーバ-ベースアプリケーションに対するインタフェースであってもよい。個別の構成要素として描写されているが、これらの専用構成要素430は、論理的すなわち非物理的に異なる機能であってもよく、および/または1つまたは複数のアプリケーションのサブモジュールまたはコード-ブロックであってもよい。
【0059】
モードセレクタ434は、対話モードを切り換える状態を識別して、ユーザ対話の制御をノーハンド3DoFモードコントローラ436、ノーハンド6DoFモードコントローラ438、凝視・身振りモードコントローラ440またはレイキャスティングモードコントローラ442のうちの対応する1つに切り換えることができる。様々な実装形態では、モードセレクタ434は、対話モードの明確なユーザ選択に応答して、または対話モード文脈要素を対応する対話モードにマッピングすることによってこのような状態を識別することができる。マッピングは、例えば有用な追跡入力がない、という対話モード文脈要素をノーハンド3DoF対話モードにマップし、レディー状態の手の識別がない有用な追跡入力、という対話モード文脈要素をノーハンド6DoF対話モードにマップし、有用な追跡入力およびレディー状態の手の識別、という対話モード文脈要素を凝視・身振り対話モードにマップし、また、有用な追跡入力および光線状態の手、という対話モード文脈要素をレイキャスティング対話モードにマップすることができる。対話モード文脈要素またはユーザ選択に基づく対話モードの選択に関する追加詳細は、以下で、
図5のブロック502~510および552~562に関連して提供される。
【0060】
ノーハンド3DoFモードコントローラ436は、凝視カーソルを使用して方向が指示され、また、ドウェルタイマーを使用してアクションが指示されるユーザ対話を提供することができる。ノーハンド3DoFモードコントローラ436は、X軸、Y軸またはZ軸におけるユーザの動きをユーザの視野の変化に変換しない。ノーハンド3DoFモードコントローラ436は、メディエータ420を介してI/O416のIMUユニットとインタフェースして頭の位置を決定することができ、また、メディエータ420を介してI/O416の目トラッカーとインタフェースして目の凝視方向を決定することができ、それらの組合せが凝視カーソルの場所を指定することができる。ノーハンド3DoF対話モードに関する追加詳細は、以下で、
図5のブロック580に関連して提供される。
【0061】
ノーハンド6DoFモードコントローラ438は、凝視カーソルを使用して方向が指示され、また、ドウェルタイマーを使用してアクションが指示されるユーザ対話を提供することができる。ノーハンド6DoFモードコントローラ438は、メディエータ420を介してI/O416の位置追跡システムとインタフェースして、X軸、Y軸およびZ軸に沿ったユーザの動きを決定し、また、これらのユーザの動きをユーザの視野の変化に変換することができる。ノーハンド6DoFモードコントローラ438は、メディエータ420を介してI/O416のIMUユニットとインタフェースして頭の位置を決定することができ、また、メディエータ420を介してI/O416の目トラッカーとインタフェースして目の凝視方向を決定することができ、それらの組合せが凝視カーソルの場所を指定することができる。ノーハンド6DoF対話モードに関する追加詳細は、以下で、
図5のブロック582に関連して提供される。
【0062】
凝視・身振りモードコントローラ440は、凝視カーソルを使用して方向が指示され、また、手の身振りを使用してアクションが指示されるユーザ対話を提供することができる。凝視・身振りモードコントローラ440は、メディエータ420を介してI/O416の位置追跡システムとインタフェースして、X軸、Y軸およびZ軸に沿ったユーザの動きを決定し、また、これらのユーザの動きをユーザの視野の変化に変換することができる。凝視・身振りモードコントローラ440は、メディエータ420を介してI/O416のIMUユニットとインタフェースして頭の位置を決定することができ、また、メディエータ420を介してI/O416の目トラッカーとインタフェースして目の凝視方向を決定することができ、それらの組合せが凝視カーソルの場所を指定することができる。凝視・身振りモードコントローラ440は、メディエータ420を介して手追跡システムとさらにインタフェースして手の姿勢を識別することができ、凝視・身振りモードコントローラ440はそれをアクションに変換する。凝視・身振り対話モードに関する追加詳細は、以下で、
図5のブロック584に関連して提供される。
【0063】
レイキャスティングモードコントローラ442は、ユーザによって制御される光線を使用して方向が指示され、また、手の身振りを使用してアクションが指示されるユーザ対話を提供することができる。レイキャスティングモードコントローラ442は、メディエータ420を介してI/O416の位置追跡システムとインタフェースして、X軸、Y軸およびZ軸に沿ったユーザの動きを決定することができ、また、メディエータ420を介してI/O416のIMUユニットとインタフェースして頭の位置を決定することができ、レイキャスティングモードコントローラ442はそれらの組合せを使用して、ユーザの視野の変化を決定することができる。レイキャスティングモードコントローラ442は、メディエータ420を介して手追跡システムとさらにインタフェースして手の姿勢を識別することができ、レイキャスティングモードコントローラ442は、光線をキャスティングし、かつ、アクションを識別するために、識別した手の姿勢を制御点に変換する。レイキャスティング対話モードに関する追加詳細は、以下で、
図5のブロック584に関連して提供される。
【0064】
上で説明した
図1~
図4、および以下で考察される流れ図の各々に示されている構成要素は様々な方法で変更することができることは当業者には認識されよう。例えば論理の順序は配置し直すことができ、サブステップは同時に実施することができ、示されている論理は省略することができ、他の論理を含めることができる、等々である。いくつかの実装形態では、上で説明した複数の構成要素のうちの1つまたは複数は、以下で説明される複数のプロセスのうちの1つまたは複数を実行することができる。
【0065】
図5は、本技術のいくつかの実装形態に使用される、指定された対話モードを切り換えるためのトリガを識別し、トリガされた対話モードをイネーブルするためのプロセス500を示す流れ図である。プロセス500は、2つの可能開始点502および552を有するものとして描写されている。プロセス500は、対話モードを手動で切り換えるための明確なユーザコマンドが受け取られると、開始点552で開始することができる。このようなコマンドは、例えば物理的ボタンまたは人工現実感システムに含まれている他の制御を使用して、人工現実感システムによって表示される仮想制御(例えばユーザインタフェース要素)を使用して、音声コマンドを使用して、または対話モードを切り換えるためにマップされた身振りまたは他の入力を介して実施することができる。プロセス500は、周期的チェック(例えば1ms、5msまたは10ms毎に実施される)などの、対話モード変更トリガをチェックするための様々な指示に応答して、または対話モード文脈要素の変化の検出に応答して開始点502で開始することができる。いくつかの実装形態では、変化するとプロセス500が実施されることになる要素は、現在の対話モードに応じて異なってもよい。例えば対話モードシステムが低電力状態にあるために現在の対話モードがノーハンド3DoFモードである場合、照明状態が変化してもモード変更チェックをトリガせず、一方、現在の対話モードが手の位置の捕獲をカメラに要求するレイキャスティングモードである場合、照明状態が変化するとモード変更チェックをトリガすることになる。
【0066】
プロセス500は、ブロック502からブロック504へ進行することができる。ブロック504で、プロセス500は、位置を追跡し、また、手を追跡するための有用な入力がないかどうかを決定することができる。これらのシステムのうちの1つのために使用されたカメラ、または機械学習モデルなどの対応する処理構成要素がイネーブルされていない場合(例えば対話モードシステムが低電力であるか、またはプライバシーモードである、これらのシステムが未だ初期化されていない、等々のために)、またはこれらのシステムのうちの1つのための十分な品質の画像を捕獲するには照明状態が不十分である場合、位置を追跡し、また、手を追跡するための有用な入力が存在しないことがあり得る。いくつかの実装形態では、手または位置追跡は、手追跡システムのための着用可能手袋、リングおよび/またはブレスレット、あるいは位置追跡システムのための飛行時間センサまたはGPSデータなどのカメラ以外のシステムに基づくことができ、また、有用な手追跡入力の決定は、これらのシステムがイネーブルされているかどうか、また、手ポーズおよびユーザ位置を決定するための十分な情報を受け取るかどうかに基づくことができる。このような有用な追跡入力が存在しない場合、プロセス500はブロック580を継続することができる。このような有用な追跡入力が存在する場合、プロセス500はブロック506を継続することができる。
【0067】
ブロック580で、プロセス500はノーハンド3DoF対話モードをイネーブルすることができる。ノーハンド3DoF対話モードでは、床に平行に、または垂直に(すなわちX軸、Y軸およびZ軸)移動しているユーザは、人工現実感環境における対応する動きをもたらさないが(このような動きはコントローラ上のジョイスティックまたは方向パッドなどの他の制御を使用して実施することができるが)、ユーザは、例えば凝視カーソルを使用して、人工現実感環境の様々な位置における点へ自身の頭を移動させることによって方向を指示することができる。いくつかの実装形態では、凝視カーソル位置は、頭追跡(例えばピッチ、ロールおよびヨーの動きを指示するIMUデータを介した)、および目追跡(例えばユーザの凝視の方向を決定するためにカメラがユーザの目の画像を捕獲する)の両方に基づくことができる。ノーハンド3DoF対話モードにおけるいくつかの事例では、アクションは、凝視カーソルが少なくとも時間の閾値量に対する閾値量を超えて移動しないと(例えばユーザの凝視が少なくとも1秒の間、比較的固定された状態を維持していると)、カウントダウン(例えば3秒から)を開始するドウェルタイマーを使用して実施することができる。いくつかの実装形態では、アクションは、その代わりに、または追加して、コントローラ上のボタンを押すことによって、UI制御(すなわち「ソフト」ボタン)を起動することによって、音声コマンドを使用することによって、等々などの他の方法で指示することができる。いくつかの実装形態では、アクションは、次に、凝視カーソルに対して実施することができ、例えばシステムは、凝視カーソルが向けられている1つまたは複数の対象に対してデフォルトアクションを実施する。いくつかの実装形態では、凝視カーソルおよび/またはユーザの凝視方向の指示は、ユーザがノーハンド3DoF対話モード(または以下で考察されるノーハンド6DoF対話モード)にあることを指示し、また、ユーザが凝視カーソルを使用して選択するのを補助するための視覚アフォーダンスとしてユーザの視野に表示することができる。凝視カーソルおよびドウェルタイマーに関する追加詳細は、以下で、
図6、
図7および
図10に関連して提供される。ブロック580で対話モードがイネーブルされると、プロセス500はブロック590で終了することができる。
【0068】
ブロック506で、プロセス500は、手がレディー状態にあることが識別されていない間、位置情報を利用することができるかどうかを決定することができる。位置決めシステムがイネーブルされ、また、位置決めシステムがユーザの動きを6DoFで決定するのに十分なデータを受け取っていると、位置情報を利用することができる。様々な実装形態では、このような位置決めシステムは、人工現実感システムの着用可能部分に取り付けられたシステム(「インサイド-アウト追跡」)、または身体位置を追跡するためにユーザに向けられる外部センサ(「アウトサイド-イン追跡」)を含むことができる。さらに、これらのシステムは、人工現実感システムによって放出される光(例えば赤外線)の符号化された複数の点などの1つまたは複数の技術を使用することができ、また、これらの点の動きを追跡するためにカメラを使用し、捕獲した画像の特徴を識別し、かつ、フレーム全体にわたるそれらの相対的な動き(例えば「運動ベクトル」)を追跡し、捕獲した画像中のユーザの複数の部分を識別し、かつ、それらの部分の動きを追跡し(例えば「骨格追跡」)、環境中の対象から飛行時間センサ読値を獲得し、全地球測位システム(GPS)データを取得し、複数のセンサを使用して三角測量を実施し、等々を実施することができる。十分なデータが存在しているかどうかの決定は、位置追跡システムがイネーブルされているかどうか(例えばプライバシーモード、低電力モード、公衆モード、ドントディターブモード、等々ではこのようなシステムを不能にすることができる)、また、このようなシステムがユーザの位置を適切に決定することができるかどうか(ユーザ位置の適切な決定は、これらのシステムのうちのいくつかが例えば低照明状態にあって、光点を照らすための十分な表面が近傍に存在しない、環境マッピングが未だ生じていない、ユーザが捕獲デバイスのフレーム外である、等々の場合、場合によっては不可能である)を決定することを含むことができる。
【0069】
手は、手追跡システムがイネーブルされ、現在の手の姿勢がレディー状態の手の姿勢と一致している場合、レディー状態にあるものとして識別することができる。手追跡システムは、例えば、ユーザの手の画像を獲得し、かつ、解釈するカメラ(例えば訓練されたモデルを使用して)、またはユーザの手の姿勢として解釈することができる測値を獲得する手袋、リングまたはブレスレットなどの着用可能デバイスなどの様々な技術を含むことができる。可能なレディー状態の手の姿勢の例には、ユーザの掌が実質的に上に向いている場合(例えば少なくとも閾値量だけ空に向かって回転している場合)、ユーザの指が一定の量だけ広がっている場合、特定の指が接触している場合(例えば親指と人差し指)、ユーザの手が特定の角度だけ水平線を越えて傾いている場合、ユーザが握りこぶしを作っている場合、等々がある。いくつかの実装形態では、手レディー状態には、手がユーザの視野に存在していること、特定の閾値より上に上がっていること(例えば臀部の高さより上であること)が必要であり、またはユーザの肘が少なくとも特定の量だけ曲がっていることが必要であり得る。手レディー状態に関する追加詳細は、以下で、
図8に関連して提供される。いくつかの実装形態では、ブロック506は、手が、以下で、ブロック508および510に関連して考察される光線状態などの別の対話モードにマップされた状態にはないかどうかを同じく決定することができる。位置情報が利用可能であり、また、手がレディー状態にあるとして識別されていない(すなわち別の対話モードマップ状態である)場合、プロセス500はブロック582を継続することができ、さもなければプロセス500はブロック508を継続することができる。
【0070】
ブロック582で、プロセス500はノーハンド6DoF対話モードをイネーブルすることができる。ノーハンド6DoF対話モードは、床に平行に、また、垂直に(すなわちX軸、Y軸およびZ軸に沿って)動くユーザの動きが検出され、かつ、人工現実感環境における観点動きに変換される点を除き、上で説明したノーハンド3DoF対話モードと同様の対話を提供することができる。観点動きおよび頭および/または目追跡を使用して凝視カーソルを配置することができる。ノーハンド3DoF対話モードの場合と同様、ノーハンド6DoF対話モードにおけるアクションは、ドウェルタイマーおよび/または他のユーザ制御(例えば物理的ボタンまたはソフトボタン、音声コマンド、等々)を使用して実施することができ、これらのアクションは凝視カーソルに対して実施することができる。ブロック582で対話モードがイネーブルされると、プロセス500はブロック590で終了することができる。
【0071】
ブロック508で、プロセス500は、上で考察したように手がレディー状態にあるかどうかを決定することができる。手がレディー状態にある場合、プロセス500はブロック584を継続することができ、手がレディー状態にない場合、プロセス500はブロック510を継続することができる。
【0072】
ブロック584で、プロセス500は凝視・身振り対話モードをイネーブルすることができる。凝視・身振り対話モードは、上で考察したように凝視カーソルを含むことができる。いくつかの実装形態では、凝視・身振り対話モードは、常に位置追跡を使用して、リアルワールドの中を移動することによって人工現実感環境におけるユーザによる自身の位置の制御を許容し、一方、他の事例では、位置追跡は、凝視・身振り対話モードのためにイネーブルしても、しなくてもよい。ブロック584で位置追跡がイネーブルされると、ユーザによって6DoFで凝視カーソルを制御することができ、また、ブロック584で位置追跡がイネーブルされない場合、ユーザによって3DoFで凝視カーソルを制御することができる。ドウェルタイマーは、凝視・身振り対話モードではイネーブルしても、しなくてもよい。
【0073】
手追跡がイネーブルされ、また、手がレディー状態にある場合、凝視・身振り対話モードは、ユーザ身振りに基づいてアクションをイネーブルすることができる。例えばユーザが自身の親指と人差し指を一緒にするなどの特定の身振りを実施すると、デフォルトアクションを実施することができる。いくつかの実装形態では、異なるアクションを異なる身振りにマップすることができる。例えばユーザが自身の親指と人差し指を一緒にすると、第1のアクションを実施することができ、また、ユーザが自身の親指と中指を一緒にすると、第2のアクションを実施することができる。凝視・身振り対話モードは、スワイプ身振り、エアータップ身振り、グリップ身振り、指展伸身振り、指カール身振り、等々などの多くの異なる身振りのうちの1つまたは複数を使用することができる。いくつかの事例では、視覚アフォーダンスを使用して、凝視・身振り対話モードがイネーブルされていること、および/または身振りが認識されていることをユーザに信号発信することができる。例えば手レディー状態は、ユーザの掌が実質的に上に向いていることであってもよく、また、凝視・身振り対話モードのための視覚アフォーダンスは、球をユーザの親指と人差し指の間に置くこと(
図8参照)を含むことができる。これは、いずれも、凝視・身振り対話モードがイネーブルされ、これらの指の間のつまみ身振りに対するフィードバックを提供していることをユーザに信号発信することができる(例えばユーザがこれらの指を一緒にする際に、球を歪ませるか、またはリサイズすることによって)。ユーザの手の動きのトレースを示し、実施することができる異なるアクションのインジケータを個々の指の先の近くに置き、または指によって他の手からタップさせることができる一方の手首にインジケータを示すことなどによって他の視覚アフォーダンスを使用することも可能である。視覚アフォーダンスを使用した凝視・身振り対話モードに関する追加詳細は、以下で、
図8に関連して提供される。ブロック584で対話モードがイネーブルされると、プロセス500はブロック590で終了することができる。
【0074】
ブロック510で、プロセス500は、ユーザの手が光線状態にあるかどうかを決定することができる。ブロック506および508に関連して上で説明したプロセスと同様、この決定は、手追跡がイネーブルされているかどうか、手の姿勢を決定するための十分なデータが存在しているかどうか、および/または片方または両方の手が見えているかどうか、閾値より上に上がっているかどうか、またはユーザの肘が閾値量を超えて曲がっていることを決定することを含むことができる。光線状態の識別は、ユーザの片方または両方の手がレイキャスティングを実施するためにマップされたポーズにあることを決定することを同じく含むことができる。このようなポーズの例は、ユーザの手が回転し、掌が実質的に下に向いている(例えば少なくとも閾値量だけ床に向かって回転している)こと、指(例えば人差し指)が伸びていること、特定の指が接触していること(例えば親指、中指および薬指)、等々を含むことができる。ユーザの手が光線状態にあるとして識別される場合、プロセス500はブロック586を継続することができる。ユーザの手が光線状態にはないとして識別される場合、プロセス500は、現在の対話モードへの変更を実施せず、ブロック590を継続して終了することができる。
【0075】
ブロック586で、プロセス500はレイキャスティング対話モードをイネーブルすることができる。レイキャスティング対話モードにより、ユーザは、湾曲した、または直線の線分、円錐、角錐、円筒、球、またはその位置がユーザによって導かれる別の幾何学(ユーザの少なくとも片方の手の位置に基づくことがしばしばである)であってもよい「光線」を使用して選択することができる。レイキャスティングに関する追加詳細は、参照によりその全体が本明細書に組み込まれている米国特許出願第16/578,221に提供されている。例えば光線は、ユーザの人差し指の先とユーザの親指の先の間の第1の点から展開している、その第1の点を、ユーザの親指と人差し指の間のユーザの掌のピボット点における第2の点と結ぶ線に沿った線であってもよい。凝視・身振り対話モードの場合と同様、様々な実装形態では、レイキャスティング対話モードは、常に位置追跡を使用して、リアルワールドにおけるX軸、Y軸およびZ軸に沿って移動することによって人工現実感環境におけるユーザによる自身の位置の制御を許容し、一方、他の事例では、位置追跡はイネーブルしても、しなくてもよい。いずれの事例においても、レイキャスティング対話モードにより、ユーザは、単一の位置(3DoFにおける)からの、またはユーザが人工現実感環境の周りを移動する際の(6DoFにおける)、ユーザによるレイキャストに基づいて選択することができる。レイキャスティング対話モードでは、ユーザは、例えばつまみ、エアータップ、グラブ、等々などの身振りをすることにより、光線および/または光線が交差する対象に関連してアクションを実施することができる。すべての対話モードの場合と同様、いくつかの実装形態では、例えばコントローラまたはソフトボタン、音声コマンド、等々を使用して他のアクションを同じく実施することができる。いくつかの実装形態では、レイキャスティング対話モードは、光線が放射するユーザの指の先の間の点に、ある形(例えば涙滴形)の視覚アフォーダンスを含むことができる。いくつかの実装形態では、この形は、ユーザが身振りをすると、リサイズし、歪ませ、さもなければ変化させることができる。例えばユーザが自身の親指の先と指先を近づけると、その涙滴形を圧縮することができる。視覚アフォーダンスを使用したレイキャスティング対話モードに関する追加詳細は、以下で、
図9に関連して提供される。ブロック586で対話モードがイネーブルされると、プロセス500はブロック590で終了することができる。
【0076】
既に言及したように、いくつかの実装形態では、プロセス500は、ブロック502の代わりにブロック552で開始することができる。これは、例えばユーザが対話モードを手動で移行するための指示を提供すると生じ得る。様々な実装形態では、この指示は、物理的制御、ソフト制御を起動し、コマンドを話し、身振りを実施することによって実施することができ、あるいは特定の対話モードまたは対話モードを介したサイクリングにマップされた何らかの他のコマンドによって実施することができる。この指示はブロック554で受け取ることができる。ブロック556で、プロセス500は、その対話モード変更指示がノーハンド3DoF対話モードに対応しているかどうか(例えばその対話モード変更指示がそのモードにマップされているか、またはモードのサイクルにおける現在のモードから次のモードであるかどうか)を決定することができる。その対話モード変更指示がノーハンド3DoF対話モードに対応している場合、プロセス500はブロック580(上で考察した)を継続し、その対話モード変更指示がノーハンド3DoF対話モードに対応していない場合、プロセス500はブロック558を継続する。ブロック558で、プロセス500は、その対話モード変更指示がノーハンド6DoF対話モードに対応しているかどうか(例えばその対話モード変更指示がそのモードにマップされているか、またはモードのサイクルにおける現在のモードから次のモードであるかどうか)を決定することができる。その対話モード変更指示がノーハンド6DoF対話モードに対応している場合、プロセス500はブロック582(上で考察した)を継続し、その対話モード変更指示がノーハンド6DoF対話モードに対応していない場合、プロセス500はブロック560を継続する。ブロック560で、プロセス500は、その対話モード変更指示が凝視・身振り対話モードに対応しているかどうか(例えばその対話モード変更指示がそのモードにマップされているか、またはモードのサイクルにおける現在のモードから次のモードであるかどうか)を決定することができる。その対話モード変更指示が凝視・身振り対話モードに対応している場合、プロセス500はブロック584(上で考察した)を継続し、その対話モード変更指示が凝視・身振り対話モードに対応していない場合、プロセス500はブロック562を継続する。ブロック562で、プロセス500は、その対話モード変更指示がレイキャスティング対話モードに対応しているかどうか(例えばその対話モード変更指示がそのモードにマップされているか、またはモードのサイクルにおける現在のモードから次のモードであるかどうか)を決定することができる。その対話モード変更指示がレイキャスティング対話モードに対応している場合、プロセス500はブロック586(上で考察した)を継続し、その対話モード変更指示がレイキャスティング対話モードに対応していない場合、プロセス500は対話モード変更を実施せず、ブロック590を継続して終了することができる。
【0077】
図6は、凝視カーソル606を有する例600を示す概念図である。凝視カーソル606は、少なくともユーザの頭の位置によって制御され、また、いくつかの実装形態ではユーザの目の凝視方向によってさらに制御される選択機構である。例600は、ユーザの視野608をさらに含み、この視野608は、ユーザが自身の人工現実感デバイス602を通して見ることができる視野である。視野608は、ユーザによって見られる、人工現実感デバイス602によって視野608の中に投影された凝視カーソル606を含む。凝視カーソル606は、線604によって示されている方向に沿っていてもよい(この線はユーザに表示することができ、あるいはユーザに表示することができなくてもよい)。線604が目追跡に基づいていない場合、線604は、ユーザの頭の冠状面に対して直角であってもよく、また、ユーザの目と目の間の点と交差することができる。通常、目追跡が存在していない場合、凝視カーソル606はユーザの視野608の中心に存在することになる。いくつかの実装形態では、凝視カーソル606は、ユーザの追跡された目凝視方向にさらに基づくことができる。目追跡事例では、ユーザの視野608はユーザの頭の位置に基づく領域であるが、視野608内の凝視カーソル606の位置は、ユーザの凝視の方向および/または視野の中の、ユーザが見ている点の決定に基づいて制御することができる。いくつかの実装形態では、凝視カーソル606は、ユーザから指定された距離、ユーザの決定された焦点面、または線604が交差する最も近い対象(実または仮想)の上に出現させることができる。凝視カーソルの別の例は、
図10Aおよび
図10Bに関連して提供される。
【0078】
図7は、ドウェルタイマー702を有する例700を示す概念図である。ドウェルタイマー702は、閾値時間(例えば1秒)内に凝視カーソル606が閾値量を超えて移動しないと開始する(例えば線604が3度を超えて移動しないと開始する)、設定された量の時間(例えば3秒、4秒、等々)のためのものであってもよい。ドウェルタイマーは、ドウェルタイマーが時間切れになる前に凝視カーソル606が閾値量を超えて移動するとリセットすることができる。いくつかの実装形態では、ドウェルタイマー702は、ドウェルタイマーが時間切れになるとデフォルトアクションを取ることができる対象(例えば対象704)に凝視カーソル606が向けられたときだけ開始する。いくつかの事例では、ドウェルタイマーが開始すると、凝視カーソル606の周りのリングなどの視覚アフォーダンスを示すことができ、ドウェルタイマーの残りの時間の百分率に応じてリングの百分率で色が変化し、あるいは影付けされる。
【0079】
図8は、凝視カーソル606を有する例800を示す概念図であり、手身振り選択をさらに利用している。例800では、ユーザの手802がユーザの視野608および掌-アップポーズにあることに基づく、ユーザの手802がレディー状態にあることの決定に応答して、凝視・身振り対話モードがイネーブルされている。この凝視・身振り対話モードでは、ユーザは、引き続いて凝視カーソル606(
図6参照)を使用して方向を指示する。しかしながらドウェルタイマー702(
図7)を使用してアクションを実施する代わりに、ユーザは、自身の親指と人差し指の間のつまみ身振りを実施してアクションをトリガすることができる。線806によって示されているように、このようなつまみアクションは凝視カーソル606に関連して解釈される。例えばデフォルトアクションが対象を選択することである場合、凝視カーソル606が対象704の上に存在しているため、ユーザがつまみ身振りを実施すると、対象704が選択される。凝視・身振り対話モードをイネーブルする際に、視覚アフォーダンスが、ユーザの視野608の中に、ユーザの手802の上の親指と人差し指の間の球804として表示されている。ユーザが自身の親指と人差し指を一緒にし始めると、つまみ身振りの一部が認識されていることをユーザに指示するために、球804を圧縮して楕円体にすることができる。
【0080】
図9は、手身振り選択を有するレイキャスティング方向入力を使用した例900を示す概念図である。例900では、ユーザの手802がユーザの視野608および掌ダウンポーズにあることに基づく、ユーザの手802が光線状態にあることの決定に応答して、レイキャスティング対話モードがイネーブルされている。このレイキャスティング対話モードでは、ユーザの親指と人差し指の間の点から光線902がキャストされる。ユーザは、自身の親指と人差し指の間のつまみ身振りを実施してアクションをトリガすることができる。このようなつまみアクションは、光線が交差する1つまたは複数の対象(例えば対象704)に関連して解釈される。例えばデフォルトアクションが対象を選択することである場合、光線902が対象704と交差しているため、ユーザがつまみ身振りを実施すると、対象704が選択される。レイキャスティング対話モードをイネーブルする際に、第1の視覚アフォーダンスが、ユーザの視野608の中に、ユーザの手802の上の親指と人差し指の間の涙滴形906として表示されている。ユーザが自身の親指と人差し指を一緒にし始めると、つまみ身振りの一部が認識されていることをユーザに指示するために、涙滴906を圧縮することができる。同じくレイキャスティング対話モードをイネーブルする際に、光線902の線および線902が対象と交差する点904を示す視覚アフォーダンスが表示される。
【0081】
図10Aおよび
図10Bは、ドウェルタイマーを有する目追跡ベース凝視カーソルを使用した、デバイス位置決めと対象選択の間の対話を使用した例1000および1050を示す概念図である。例1000は、光をユーザの目に投影してユーザが視野1014を見るようにする導波路レンズ1004Aおよび1004Bを有する人工現実感メガネ1002を含む。いくつかの実施形態では、人工現実感メガネ1002は、
図2Bを参照して上で考察したメガネ252と同様であってもよい。視野1014のための人工現実感環境における方向は、人工現実感メガネ1002の頭追跡ユニット1016によって制御される。頭追跡ユニット1016は、例えば、人工現実感メガネ1002が人工現実感環境におけるカメラ位置に変換され、その位置からコンテントを表示するために、ジャイロスコープ、磁力計および加速度計を使用して人工現実感メガネ1002の方向および動きを決定することができる。例1000では、視野1014は仮想対象1012A、1012Bおよび1012Cを表示している。人工現実感メガネ1002は目追跡モジュール1006を含み、目追跡モジュール1006は、カメラおよびユーザの目の上のグリントを照明する光源(例えば赤外線光)を含み、ユーザの目の像を撮り、また、訓練された機械学習モデルを使用して画像を凝視方向に解釈する(線1008によって示されている。)凝視カーソル1010は目凝視方向線1008の端部に存在している。例1000では、ユーザは視野1014の中心に視線を向け、凝視カーソル1010を視野1014の中心に配置している。
【0082】
例1050では、ユーザは、矢印1058によって示されているように自身の頭を左側に移動させている。この動きは頭追跡ユニット1016によって追跡されており、視野1014が左側へシフトし、そのために仮想対象1012A、1012Bおよび1012Cが視野1014の右側へシフトしている。また、ユーザは、自身の凝視を視野1014の中心から視野1014の左下隅へ同じく移行させている。目凝視のこの変化は、線1008によって示されているように目追跡ユニット1006によって追跡されている。したがって凝視カーソル1010は仮想対象1012Cの上に存在している。ユーザが自身の凝視を1秒にわたって対象1012Cの上に保持すると、ドウェルタイマー1052が3秒からカウントダウンを開始する。このカウントダウンは視覚アフォーダンス1054および1056を介してユーザに示され、影が付けられているリングの部分1056は、ドウェルタイマーの残りの時間の量に対応している。ドウェルタイマーがゼロに達すると、人工現実感メガネ1002は対象1012Cを選択するデフォルトアクションを取り、対象1012C上の凝視カーソル1010がリセットされる。
【0083】
本明細書における、「実装形態」(例えば「いくつかの実装形態」、「様々な実装形態」、「一実装形態」、「実装形態」等々)に対する参照は、実装形態に関連して説明されている特定の特徴、構造または特性は、本開示の少なくとも1つの実装形態に含まれていることを意味している。本明細書の様々な場所におけるこれらの語句の出現は、必ずしもそれらのすべてが同じ実装形態を参照しているわけではなく、また、他の実装形態を相互に排他する個別の実装形態または代替実装形態でもない。さらに、いくつかの実装形態によって示すことができ、また、他の実装形態では示すことができない様々な特徴が説明されている。同様に、いくつかの実装形態に対する要求事項であってもよいが、他の実装形態に対する要求事項ではない様々な要求事項が説明されている。
【0084】
本明細書において使用されているように、閾値を超えている、は、比較下にあるアイテムに対する値が指定された他の値より大きいこと、比較下にあるアイテムが最も大きい値を有する特定の指定された数のアイテムの間に存在していること、または比較下にあるアイテムが指定された一番高い百分率値内の値を有していることを意味している。本明細書において使用されているように、閾値未満である、は、比較下にあるアイテムに対する値が指定された他の値より小さいこと、比較下にあるアイテムが最も小さい値を有する特定の指定された数のアイテムの間に存在していること、または比較下にあるアイテムが指定された一番低い百分率値内の値を有していることを意味している。本明細書において使用されているように、閾値内である、は、比較下にあるアイテムに対する値が2つの指定された他の値の間であること、比較下にあるアイテムが中間の指定された数のアイテムの間に存在していること、または比較下にあるアイテムが中間の指定された百分率値内の値を有していることを意味している。高い、または重要ではない、などの相対用語は、他に定義されていない限り、値を割り当てること、およびその値を確立された閾値に対して比較する方法を決定することとして理解することができる。例えば「高速接続を選択する」という語句は、閾値より速いその接続速度に対応して割り当てられた値を有する接続を選択することを意味するものと理解することができる。
【0085】
上記技術の様々な態様は、手追跡システムを使用して実施されるものとして説明されている。個々の事例において、これらの技術は、手追跡の代わりにコントローラ追跡を使用することができる。例えば手身振りを決定するために、または光線をキャスティングするための原点のために手追跡システムが使用される場合、コントローラの追跡された位置をその代わりに使用することができる。
【0086】
本明細書において使用されているように、「または」という語は、一組のアイテムのあらゆる可能順列を意味している。例えば「A、BまたはC」という語句は、A;B;C;AおよびB;AおよびC;BおよびC;A、BおよびCのうちのいずれか、またはAおよびA;B、BおよびC;A、A、B、CおよびC等々などの任意のアイテムのうちの複数などの、A、B、C、またはそれらの任意の組合せのうちの少なくとも1つを意味している。
【0087】
本主題は、構造的特徴および/または方法論的行為に特化された言語で記述されているが、添付の特許請求の範囲で定義されている本主題は、必ずしも上で説明した特定の特徴または行為に限定されないことを理解されたい。特定の実施形態および実装形態は、本明細書においては例証の目的で説明されているが、実施形態および実装形態の範囲を逸脱することなく、様々な修正を加えることができる。上で説明した特定の特徴および行為は、以下の特許請求の範囲を実現するための例示的形態として開示されている。したがって実施形態および実装形態は、添付の特許請求の範囲による制限を除き、限定されない。
【0088】
上で言及した任意の特許、特許出願および他の参考文献は、参照により本明細書に組み込まれている。態様は、上で説明した様々な参考文献のシステム、機能および概念を使用し、それによりさらに他の実装形態を提供するために、必要に応じて修正することができる。参照によって組み込まれている書類における供述または主題が、本出願の供述または主題と抵触する場合、本出願が制御することになる。
【国際調査報告】