本開示は、いくつかの実施形態による、コンピュータ生成拡張現実(XR)体験をユーザに提供するユーザインタフェースに関する。
本明細書に記載するシステム、方法、及びGUIは、複数の方法で仮想/拡張現実環境とのユーザインタフェース相互作用を改善する。
いくつかの実施形態では、コンピュータシステムは、ユーザがユーザインタフェース要素に注目していない間、視覚的に強調抑制したユーザインタフェース要素を表示する。ユーザインタフェース要素は、ユーザが物理的環境内で動き回るときに強調抑制されたままであり、ユーザがユーザインタフェース要素に注目しているという判定に従って、ユーザインタフェース要素は、もはや視覚的に強調抑制されず、三次元環境のユーザの現在のビューに基づいて、三次元環境内のポジションでユーザのために表示される。
いくつかの実施形態では、三次元環境内にユーザインタフェース要素を表示するコンピュータシステムが提供され、ユーザインタフェース要素の表示は、ユーザが三次元環境のユーザの現在のビューを変更するにつれて(例えば、物理的環境を動き回ることによって)、ユーザに追従するように更新される。ユーザインタフェース要素は、最初は、ユーザのビューが変化しても、ユーザのビューが閾値量を超えて変化するまで移動しない。ユーザのビューが閾値量を超えて変化した後、ユーザインタフェース要素はユーザに追従する(例えば、ユーザの動きよりも遅い動きの速度で、ユーザを追従するのが遅れる)。
図1~図6は、XR体験をユーザに提供するための例示的なコンピュータシステムを説明する。図7A~図7Jのユーザインタフェースはそれぞれ、図8~9のプロセスを示すために使用される。
以下に説明するプロセスは、改善された視覚、音声、及び/又は触覚フィードバックをユーザに提供すること、操作を実行するために必要な入力の数を減らすこと、追加の表示されたコントロールによってユーザインタフェースを雑然とさせることなく追加の制御オプションを提供すること、更なるユーザ入力を必要とせずに一連の条件が満たされたときに操作を実行すること、及び/又は追加の技術を含む様々な技術によって、デバイスの操作性を向上させ、ユーザとデバイスのインタフェースをより効率的にする(例えば、ユーザが適切な入力を提供するのを支援し、デバイスを操作/相互作用するときにユーザの誤りを低減することによって)。これらの技術はまた、ユーザがデバイスをより迅速かつ効率的に使用することを可能にすることによって、電力使用量を低減し、デバイスのバッテリ寿命を改善する。
いくつかの実施形態では、図1に示されるように、XR体験は、コンピュータシステム101を含む動作環境100を介してユーザに提供される。コンピュータシステム101は、コントローラ110(例えば、ポータブル電子デバイス又はリモートサーバのプロセッサ)と、表示生成コンポーネント120(例えば、ヘッドマウントデバイス(HMD)、ディスプレイ、プロジェクタ、及び/又はタッチスクリーン)と、1つ以上の入力デバイス125(例えば、アイトラッキングデバイス130、ハンドトラッキングデバイス140、他の入力デバイス150)と、1つ以上の出力デバイス155(例えば、スピーカ160、触知出力ジェネレータ170、及び他の出力デバイス180)と、1つ以上のセンサ190(例えば、画像センサ、光センサ、深度センサ、触覚センサ、向きセンサ、近接センサ、温度センサ、ロケーションセンサ、運動センサ、及び/又は速度センサ)と、任意選択的に1つ以上の周辺デバイス195(例えば、家電製品、及び/又はウェアラブルデバイス)と、を含む。いくつかの実施形態では、入力デバイス125、出力デバイス155、センサ190、及び周辺デバイス195のうちの1つ以上は、(例えば、ヘッドマウントデバイス又はハンドヘルドデバイス内で)表示生成コンポーネント120と統合される。
XR体験を説明するとき、ユーザが感知することができる、及び/又は(例えば、XR体験を生成するコンピュータシステムに、コンピュータシステム101に提供される様々な入力に対応するオーディオ、視覚、及び/又は触覚フィードバックを生成させる、XR体験を生成するコンピュータシステム101によって検出された入力を用いて)ユーザが相互作用することができる、いくつかの関連するが、別個の環境に個別的に言及するために様々な用語が使用される。以下は、これらの用語のサブセットである。
物理的環境:物理的環境とは、人々が電子システムの助けなしに、感知及び/又は相互作用することができる物理的世界を指す。物理的な公園などの物理的環境には、物理的な木々、物理的な建物、及び物理的な人々などの物理的物品が挙げられる。人々は、視覚、触覚、聴覚、味覚、及び嗅覚などを介して、物理的環境を直接感知し、及び/又はそれと相互作用することができる。
拡張現実:これと対照的に、拡張現実(extended reality、XR)環境は、人々が電子システムを介して感知及び/又は相互作用する、全体的又は部分的に模倣された環境を指す。XRでは、人物の身体運動のサブセット又はその表現が追跡され、それに応じて、XR環境内でシミュレートされた1つ以上の仮想オブジェクトの1つ以上の特性が、少なくとも1つの物理学の法則でふるまうように調節される。例えば、XRシステムは、人の頭部の回転を検出し、それに応じて、そのようなビュー及び音が物理的環境においてどのように変化するかと同様の方法で、人に提示されるグラフィカルコンテンツ及び音場を調整することができる。状況によっては(例えば、アクセシビリティの理由から)、XR環境における仮想オブジェクト(単数又は複数)の特性(単数又は複数)に対する調整は、身体運動の表現(例えば、音声コマンド)に応じて行われてもよい。人は、視覚、聴覚、触覚、味覚、及び嗅覚を含むこれらの感覚のうちのいずれか1つを使用して、XRオブジェクトを感知し、かつ/又はXRオブジェクトと相互作用してもよい。例えば、人物は、3D空間において点音源の知覚を提供する、3D又は空間的広がりを有するオーディオ環境を作り出すオーディオオブジェクトを感知し、かつ/又はそれと相互作用することができる。別の例では、オーディオオブジェクトによって、コンピュータ生成オーディオを含めて、又は含めずに、物理的環境から周囲音を選択的に組み込むオーディオ透過性が可能になり得る。いくつかのXR環境では、人物は、オーディオオブジェクトのみを感知し、かつ/又はそれと相互作用してもよい。
XRの例としては、仮想現実及び複合現実が挙げられる。
仮想現実:仮想現実(VR)環境とは、1つ以上の感覚について、コンピュータ生成感覚入力に全面的に基づくように設計された模倣環境を指す。VR環境は、人物が感知かつ/又は相互作用することができる複数の仮想オブジェクトを含む。例えば、木、建物、及び人々を表すアバターのコンピュータ生成画像は、仮想オブジェクトの例である。人物は、コンピュータ生成環境内に人物が存在することのシミュレーションを通じて、かつ/又はコンピュータ生成環境内での人物の物理的移動のサブセットのシミュレーションを通じて、VR環境における仮想オブジェクトを感知し、かつ/又はそれと相互作用することができる。
複合現実:複合現実(MR)環境とは、コンピュータ生成感覚入力に全面的に基づくように設計されたVR環境とは対照的に、コンピュータ生成感覚入力(例えば、仮想オブジェクト)を含むことに加えて、物理的環境からの感覚入力又はその表現を組み込むように設計された模倣環境を指す。仮想の連続体上では、複合現実環境は、一方の端部における完全な物理的環境と、他方の端部における仮想現実環境との間であるがこれらを含まない、任意の場所である。いくつかのMR環境では、コンピュータ生成感覚入力は、物理的環境からの感覚入力の変化に応じ得る。また、MR環境を提示するためのいくつかの電子システムは、仮想オブジェクトが現実のオブジェクト(すなわち、物理的環境からの物理的物品又はその表現)と相互作用することを可能にするために、物理的環境に対するロケーション及び/又は配向を追跡してもよい。例えば、システムは、仮想の木が物理的な地面に対して静止して見えるように、移動を考慮することができる。
複合現実の例としては、拡張現実及び拡張仮想が挙げられる。
拡張現実:拡張現実(AR)環境とは、1つ以上の仮想オブジェクトが物理的環境上又はその表現上に重ね合わされた模倣環境を指す。例えば、AR環境を提示するための電子システムは、人物が物理的環境を直接見ることができる透明又は半透明のディスプレイを有してもよい。システムは、透明又は半透明のディスプレイに仮想オブジェクトを提示するように構成されていてもよく、それによって、人物はシステムを使用して、物理的環境の上に重ね合わされた仮想オブジェクトを知覚する。あるいは、システムは、不透明ディスプレイと、物理的環境の表現である、物理的環境の画像又はビデオをキャプチャする1つ以上の撮像センサとを有してもよい。システムは、画像又はビデオを仮想オブジェクトと合成し、その合成物を不透明ディスプレイ上に提示する。人物はこのシステムを使用して、物理的環境を、物理的環境の画像又はビデオによって間接的に見て、物理的環境に重ね合わされた仮想オブジェクトを知覚する。本明細書で使用するとき、不透明ディスプレイ上に示される物理的環境のビデオは、「パススルービデオ」と呼ばれ、システムが、1つ以上の画像センサ(単数又は複数)を使用して、物理的環境の画像をキャプチャし、不透明ディスプレイ上にAR環境を提示する際にそれらの画像を使用することを意味する。更に代替的に、システムが仮想オブジェクトを、例えば、ホログラムとして物理的環境の中に、又は物理的表面に投影するプロジェクションシステムを有してもよく、それによって、人物はシステムを使用して、物理的環境に重ね合わされた仮想オブジェクトを知覚する。拡張現実環境はまた、物理的環境の表現がコンピュータ生成感覚情報によって変換される模倣環境を指す。例えば、パススルービデオを提供する際に、システムは、1つ以上のセンサ画像を、撮像センサがキャプチャした透視図とは別の選択された透視図(例えば、視点)を面付けするように変形してもよい。別の例として、物理的環境の表現を、その一部をグラフィカルに修正(例えば、拡大)することによって変形してもよく、それにより、修正された部分を、元のキャプチャ画像を表すが非写実的な、改変版にすることもできる。更なる例として、物理的環境の表現は、その一部をグラフィカルに除去又は不明瞭化することによって変形されてもよい。
拡張仮想:拡張仮想(AV)環境とは、仮想環境又はコンピュータ生成環境が物理的環境から1つ以上の感覚入力を組み込んだ模倣環境を指す。感覚入力は、物理的環境の1つ以上の特性の表現であり得る。例えば、AVの公園には仮想の木及び仮想の建物があり得るが、顔がある人々は、物理的な人々が撮られた画像から写実的に再現される。別の例として、仮想オブジェクトは、1つ以上の撮像センサによって撮像された物理的物品の形状又は色を採用してもよい。更なる例として、仮想オブジェクトは、物理的環境における太陽のポジションと一致する影を採用することができる。
ハードウェア:人物が様々なXR環境を感知し、及び/又はそれと相互作用することを可能にする、多くの異なるタイプの電子システムが存在する。例としては、ヘッドマウントシステム、プロジェクションベースシステム、ヘッドアップディスプレイ(heads-up displays、HUD)、統合表示機能を有する車両ウィンドシールド、統合表示機能を有する窓、(例えば、コンタクトレンズと同様に)人物の目の上に配置されるように設計されたレンズとして形成されたディスプレイ、ヘッドホン/イヤフォン、スピーカアレイ、入力システム(例えば、触覚フィードバックを有する又は有さない、装着型コントローラ又はハンドヘルドコントローラ)、スマートフォン、タブレット、及びデスクトップ/ラップトップコンピュータ、が挙げられる。ヘッドマウントシステムは、1つ以上のスピーカ(単数又は複数)及び一体型不透明ディスプレイを有してもよい。あるいは、ヘッドマウントシステムは、外部の不透明ディスプレイ(例えば、スマートフォン)を受容するように構成されていてもよい。ヘッドマウントシステムは、物理的環境の画像若しくはビデオをキャプチャするための1つ以上の撮像センサ、及び/又は物理的環境のオーディオをキャプチャするための1つ以上のマイクロフォンを組み込んでいてもよい。ヘッドマウントシステムは、不透明ディスプレイではなく、透明又は半透明のディスプレイを有してもよい。透明又は半透明のディスプレイは、画像を表す光が人物の目に向けられる媒体を有してもよい。ディスプレイは、デジタル光投影、OLED、LED、uLED、液晶オンシリコン、レーザスキャン光源、又はこれらの技術の任意の組み合わせを利用することができる。媒体は、光導波路、ホログラム媒体、光結合器、光反射器、又はこれらの任意の組み合わせであってもよい。一実施形態では、透明又は半透明のディスプレイは、選択的に不透明になるように構成されていてもよい。プロジェクションベースシステムは、グラフィカル画像を人物の網膜上に投影する網膜投影技術を採用することができる。プロジェクションシステムはまた、仮想オブジェクトを、例えば、ホログラムとして、又は物理的表面として物理的環境に投影するように構成されてもよい。いくつかの実施形態では、コントローラ110は、ユーザのXR体験を管理及び調整するように構成される。いくつかの実施形態では、コントローラ110は、ソフトウェア、ファームウェア、及び/又はハードウェアの好適な組み合わせを含む。コントローラ110については、図2を参照して以下により詳細に記載する。いくつかの実施形態では、コントローラ110は、シーン105(例えば、物理的設定/環境)に対してローカル又はリモートであるコンピューティングデバイスである。例えば、コントローラ110は、シーン105内に位置するローカルサーバである。別の例では、コントローラ110は、シーン105の外側に位置するリモートサーバ(例えば、クラウドサーバ、中央サーバ、及び/又は別のサーバ)である。いくつかの実施形態では、コントローラ110は、1つ以上の有線又は無線通信チャネル144(例えば、BLUETOOTH、IEEE802.11x、IEEE802.16x、IEEE802.3xなど)を介して、表示生成コンポーネント120(例えば、HMD、ディスプレイ、プロジェクタ、及び/又はタッチスクリーン)と通信可能に結合される。別の例では、コントローラ110は、表示生成コンポーネント120(例えば、HMD、又はディスプレイ及び1つ以上のプロセッサを含むポータブル電子デバイス)、入力デバイス125のうちの1つ以上、出力デバイス155のうちの1つ以上、センサ190のうちの1つ以上、及び/又は周辺デバイス195のうちの1つ以上の筐体(例えば、物理的ハウジング)内に含まれる、又は上記のうちの1つ以上と同じ物理的筐体又は支持構造を共有する。
いくつかの実施形態では、表示生成コンポーネント120は、XR体験(例えば、XR体験の少なくとも視覚的コンポーネント)をユーザに提供するように構成される。いくつかの実施形態では、表示生成コンポーネント120は、ソフトウェア、ファームウェア、及び/又はハードウェアの好適な組み合わせを含む。表示生成コンポーネント120について、図3を参照して以下により詳細に説明する。いくつかの実施形態では、コントローラ110の機能は、表示生成コンポーネント120によって提供される、及び/又は表示生成コンポーネント120と組み合わされる。
いくつかの実施形態によれば、表示生成コンポーネント120は、ユーザがシーン105内に仮想的及び/又は物理的に存在している間に、XR体験をユーザに提供する。
いくつかの実施形態では、表示生成コンポーネントは、ユーザの身体の一部(例えば、自身の頭部及び/又は自身の手)に装着される。したがって、表示生成コンポーネント120は、XRコンテンツを表示するために提供された1つ以上のXRディスプレイを含む。例えば、様々な実施形態では、表示生成コンポーネント120は、ユーザの視野を包囲する。いくつかの実施形態では、表示生成コンポーネント120は、XRコンテンツを提示するように構成されたハンドヘルドデバイス(スマートフォン又はタブレットなど)であり、ユーザは、ユーザの視野に向けられるディスプレイ及びシーン105に向けられるカメラを備えたデバイスを保持する。いくつかの実施形態では、ハンドヘルドデバイスは、任意選択的に、ユーザの頭部に装着された筐体内に配置される。いくつかの実施形態では、ハンドヘルドデバイスは、任意選択的に、ユーザの前の支持体(例えば、三脚)上に配置される。いくつかの実施形態では、表示生成コンポーネント120は、ユーザが表示生成コンポーネント120を着用又は保持しない状態でXRコンテンツを提示するように構成されたXRチャンバ、筐体、又は部屋である。XRコンテンツ(例えば、ハンドヘルドデバイス又は三脚上のデバイス)を表示するための1つのタイプのハードウェアを参照して説明される多くのユーザインタフェースは、XRコンテンツ(例えば、HMD又は他のウェアラブルコンピューティングデバイス)を表示するための別のタイプのハードウェア上に実施され得る。例えば、ハンドヘルド又は三脚搭載デバイスの前の空間内で起こる相互作用に基づいてトリガされるXRコンテンツとの相互作用を示すユーザインタフェースは、相互作用がHMDの前の空間で発生し、XRコンテンツの応答がHMDを介して表示されるHMDと同様に実施され得る。同様に、物理的環境(例えば、シーン105又はユーザの身体の一部(例えば、ユーザの目(単数又は複数)、頭部、又は手))に対するハンドヘルド又は三脚搭載デバイスの移動に基づいてトリガされたXRコンテンツとの相互作用を示すユーザインタフェースは、物理的環境(例えば、シーン105又はユーザの身体の一部(例えば、ユーザの目(単数又は複数)、頭部、又は手))に対するHMDの移動によって移動が引き起こされるHMDと同様に実施され得る。
動作環境100の関連する特徴が図1に示されているが、当業者は、本明細書に開示される例示的な実施形態のより適切な態様を曖昧にしないように、簡潔化のための様々な他の特徴が示されていないことを、本開示から理解されよう。
図2は、いくつかの実施形態による、コントローラ110の一例のブロック図である。特定の特徴が示されているが、当業者は、本明細書に開示される実施形態のより適切な態様を曖昧にしないよう、簡潔にするために様々な他の特徴が示されていないことを、本開示から理解されよう。そのため、非限定的な例として、いくつかの実施形態では、コントローラ110は、1つ以上の処理ユニット202(例えば、マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、グラフィック処理ユニット(GPU)、中央処理ユニット(CPU)、処理コアなど)、1つ以上の入出力(I/O)デバイス206、1つ以上の通信インタフェース208(例えば、ユニバーサルシリアルバス(USB)、FIREWIRE、THUNDERBOLT、IEEE 802.3x、IEEE 802.11x、IEEE 802.16x、グローバル移動通信システム(GSM)、符号分割多元接続(CDMA)、時分割多元接続(TDMA)、グローバル測位システム(GPS)、赤外線(IR)、BLUETOOTH、ZIGBEE、又は同様のタイプのインタフェース)、1つ以上のプログラミング(例えば、I/O)インタフェース210、メモリ220、並びにこれら及び様々な他のコンポーネントを相互接続するための1つ以上の通信バス204を含む。
いくつかの実施形態では、1つ以上の通信バス204は、システムコンポーネント間の通信を相互接続及び制御する回路を含む。いくつかの実施形態では、1つ以上のI/Oデバイス206は、キーボード、マウス、タッチパッド、ジョイスティック、1つ以上のマイクロフォン、1つ以上のスピーカ、1つ以上の画像センサ、1つ以上のディスプレイなどのうちの少なくとも1つを含む。
メモリ220は、ダイナミックランダムアクセスメモリ(dynamic random-access memory、DRAM)、スタティックランダムアクセスメモリ(static random-access memory、SRAM)、ダブルデータレートランダムアクセスメモリ(double-data-rate random-access memory、DDRRAM)、又は他のランダムアクセスソリッドステートメモリデバイスなどの高速ランダムアクセスメモリを含む。いくつかの実施形態では、メモリ220は、1つ以上の磁気ディスク記憶デバイス、光ディスク記憶デバイス、フラッシュメモリデバイス、又はその他の不揮発性ソリッドステート記憶デバイスなどの不揮発性メモリを含む。メモリ220は、1つ以上の処理ユニット202から遠隔に位置する1つ以上の記憶デバイスを任意選択的に含む。メモリ220は、非一時的コンピュータ可読記憶媒体を含む。いくつかの実施形態では、メモリ220、又はメモリ220の非一時的コンピュータ可読記憶媒体は、任意選択のオペレーティングシステム230及びXR体験モジュール240を含む、以下のプログラム、モジュール、及びデータ構造、又はそれらのサブセットを記憶する。
オペレーティングシステム230は、様々な基本システムサービスを処理する命令、及びハードウェア依存タスクを実行する命令を含む。いくつかの実施形態では、XR体験モジュール240は、1人以上のユーザに対する1つ以上のXR体験(例えば、1人以上のユーザに対する単一のXR体験、又は1人以上のユーザのそれぞれのグループに対する複数のXR体験)を管理及び調整するように構成されている。そのために、様々な実施形態では、XR体験モジュール240は、データ取得ユニット242と、トラッキングユニット244と、調整ユニット246と、データ送信ユニット248とを含む。
いくつかの実施形態では、データ取得ユニット242は、少なくとも図1の表示生成コンポーネント120、並びに任意選択的に入力デバイス125、出力デバイス155、センサ190、及び/又は周辺デバイス195のうちの1つ以上からデータ(例えば、提示データ、相互作用データ、センサデータ、及び/又はロケーションデータ)を取得するように構成される。その目的で、様々な実施形態では、データ取得ユニット242は、そのための命令及び/又は論理、並びにそのためのヒューリスティックス及びメタデータを含む。
いくつかの実施形態では、トラッキングユニット244は、シーン105をマッピングし、図1のシーン105に対して、かつ任意選択的に、入力デバイス125、出力デバイス155、センサ190、及び/又は周辺デバイス195のうちの1つ以上に対して、少なくとも表示生成コンポーネント120のポジション/ロケーションを追跡するように構成される。そのために、様々な実施形態では、トラッキングユニット244は、そのための命令及び/又は論理、並びにそのためのヒューリスティックス及びメタデータを含む。いくつかの実施形態では、トラッキングユニット244は、ハンドトラッキングユニット245及び/又はアイトラッキングユニット243を含む。いくつかの実施形態では、ハンドトラッキングユニット245は、図1のシーン105に対する、表示生成コンポーネント120に対する、かつ/又はユーザの手に対して定義された座標系に対する、ユーザの手の1つ以上の部分のポジション/ロケーション、及び/又はユーザの手の1つ以上の部分の運動を追跡するように構成される。ハンドトラッキングユニット245は、図4に関して以下でより詳細に説明される。いくつかの実施形態では、アイトラッキングユニット243は、シーン105に対する(例えば、物理的環境及び/又はユーザ(例えば、ユーザの手)に対する)、又は表示生成コンポーネント120を介して表示されたXRコンテンツに対する、ユーザの視線(又は、より広範にはユーザの目、顔、又は頭部)のポジション及び移動を追跡するように構成される。アイトラッキングユニット243は、図5に関して以下でより詳細に説明される。
いくつかの実施形態では、調整ユニット246は、表示生成コンポーネント120によって、並びに任意選択的に、出力デバイス155及び/又は周辺デバイス195のうちの1つ以上によって、ユーザに提示されるXR体験を管理及び調整するように構成される。その目的で、様々な実施形態において、調整ユニット246は、そのための命令及び/又は論理、並びにそのためのヒューリスティックス及びメタデータを含む。
いくつかの実施形態では、データ送信ユニット248は、データ(例えば、提示データ、及び/又はロケーションデータ)を少なくとも表示生成コンポーネント120、並びに任意選択的に、入力デバイス125、出力デバイス155、センサ190、及び/又は周辺デバイス195のうちの1つ以上に送信するように構成される。その目的で、様々な実施形態では、データ送信ユニット248は、そのための命令及び/又は論理、並びにそのためのヒューリスティックス及びメタデータを含む。
データ取得ユニット242、トラッキングユニット244(例えば、アイトラッキングユニット243及びハンドトラッキングユニット245を含む)、調整ユニット246、及びデータ送信ユニット248が、単一のデバイス(例えば、コントローラ110)上に存在するものとして示されているが、他の実施形態では、データ取得ユニット242、トラッキングユニット244(例えば、アイトラッキングユニット243及びハンドトラッキングユニット245を含む)、調整ユニット246、及びデータ送信ユニット248の任意の組み合わせが、別個のコンピューティングデバイス内に配置されてもよいことを理解されたい。
更に、図2は、本明細書に記載される実施形態の構造概略とは対照的に、特定の実施形態に存在し得る様々な特徴の機能を説明することをより意図している。当業者によって認識されるように、別々に示された事項を組み合わせることができ、また、一部の事項は分離することができる。例えば、図2に別々に示すいくつかの機能モジュールは、単一のモジュール内に実現することができ、単一の機能ブロックの様々な機能は、様々な実施形態では1つ以上の機能ブロックによって実行することができる。モジュールの実際の数、並びに特定の機能の分割及びそれらの間にどのように機能が割り当てられるかは、実装形態によって異なり、いくつかの実施形態では、特定の実装形態のために選択されたハードウェア、ソフトウェア、及び/又はファームウェアの特定の組み合わせに部分的に依存する。
図3は、いくつかの実施形態による、表示生成コンポーネント120の一例のブロック図である。特定の特徴が示されているが、当業者は、本明細書に開示される実施形態のより適切な態様を曖昧にしないよう、簡潔にするために様々な他の特徴が示されていないことを、本開示から理解されよう。その目的で、非限定的な例として、いくつかの実施形態では、HMD120には、1つ以上の処理ユニット302(例えば、マイクロプロセッサ、ASIC、FPGA、GPU、CPU、処理コアなど)、1つ以上の入出力(I/O)デバイス及びセンサ306、1つ以上の通信インタフェース308(例えば、USB、FIREWIRE、THUNDERBOLT、IEEE 802.3x、IEEE 802.11x、IEEE 802.16x、GSM、CDMA、TDMA、GPS、赤外線、BLUETOOTH、ZIGBEE、及び/又は同様のタイプのインタフェース)、1つ以上のプログラミング(例えば、I/O)インタフェース310、1つ以上のXRディスプレイ312、1つ以上の任意選択の内向き及び/又は外向き画像センサ314、メモリ320、並びにこれら及び様々な他のコンポーネントを相互接続するための1つ以上の通信バス304、が含まれる。
いくつかの実施形態では、1つ以上の通信バス304は、システムコンポーネント間の通信を相互接続及び制御する回路を含む。いくつかの実施形態では、1つ以上のI/Oデバイス及びセンサ306は、慣性測定装置(IMU)、加速度計、ジャイロスコープ、温度計、1つ以上の生理的センサ(例えば、血圧モニタ、心拍数モニタ、血液酸素センサ、及び/又は血糖センサ)、1つ以上のマイクロフォン、1つ以上のスピーカ、触覚エンジン、1つ以上の深度センサ(例えば、構造化光、飛行時間など)などのうちの少なくとも1つを含む。
いくつかの実施形態では、1つ以上のXRディスプレイ312は、ユーザにXR体験を提供するように構成される。いくつかの実施形態では、1つ以上のXRディスプレイ312は、ホログラフィック、デジタル光処理(DLP)、液晶ディスプレイ(LCD)、液晶オンシリコン(LCoS)、有機発光電界効果トランジスタ(OLET)、有機発光ダイオード(OLED)、表面伝導型電子放射素子ディスプレイ(SED)、電界放射ディスプレイ(FED)、量子ドット発光ダイオード(QD-LED)、MEMS、及び/又は同様のディスプレイタイプに相当する。いくつかの実施形態では、1つ以上のXRディスプレイ312は、回折、反射、偏光、ホログラフィックなどの、導波管ディスプレイに相当する。例えば、HMD120は、単一のXRディスプレイを含む。別の実施例では、HMD120は、ユーザの各目用のXRディスプレイを含む。いくつかの実施形態では、1つ以上のXRディスプレイ312は、MR又はVRコンテンツを提示することができる。いくつかの実施形態では、1つ以上のXRディスプレイ312は、MR又はVRコンテンツを提示することができる。
いくつかの実施形態では、1つ以上の画像センサ314は、ユーザの目を含むユーザの顔の少なくとも一部分に対応する画像データを取得するように構成される(及び、アイトラッキングカメラと称する場合がある)。いくつかの実施形態では、1つ以上の画像センサ314は、ユーザの手(単数又は複数)及び任意選択的にユーザの腕(単数又は複数)の少なくとも一部分に対応する画像データを取得するように構成される(及び、ハンドトラッキングカメラと称される場合がある)。いくつかの実施形態では、1つ以上の画像センサ314は、HMD120が存在しない場合に、ユーザが視認するシーンに対応する画像データを取得するように前方を向くように構成される(及び、シーンカメラと称される場合がある)。1つ以上の任意選択的な画像センサ314は、(例えば、相補型金属酸化膜半導体(CMOS)画像センサ若しくは電荷結合デバイス(CCD)画像センサを備えた)1つ以上のRGBカメラ、1つ以上の赤外線(IR)カメラ、1つ以上のイベントベースのカメラ、及び/又は同様のもの、を含むことができる。
メモリ320は、DRAM、SRAM、DDR RAM、又は他のランダムアクセスソリッドステートメモリデバイスなどの、高速ランダムアクセスメモリを含む。いくつかの実施形態では、メモリ320は、1つ以上の磁気ディスク記憶デバイス、光ディスク記憶デバイス、フラッシュメモリデバイス、又はその他の不揮発性ソリッドステート記憶デバイスなどの不揮発性メモリを含む。メモリ320は、1つ以上の処理ユニット302から遠隔に位置する1つ以上の記憶デバイスを任意選択的に含む。メモリ320は、非一時的コンピュータ可読記憶媒体を含む。いくつかの実施形態では、メモリ320、又はメモリ320の非一時的コンピュータ可読記憶媒体は、任意選択のオペレーティングシステム330及びXR提示モジュール340を含む、以下のプログラム、モジュール、及びデータ構造、又はそれらのサブセットを記憶する。
オペレーティングシステム330は、様々な基本システムサービスを処理する命令、及びハードウェア依存タスクを実行する命令を含む。いくつかの実施形態では、XR提示モジュール340は、1つ以上のXRディスプレイ312を介してXRコンテンツをユーザに提示するように構成される。その目的で、様々な実施形態では、XR提示モジュール340は、データ取得ユニット342、XR提示ユニット344、XRマップ生成ユニット346、及びデータ送信ユニット348を含む。
いくつかの実施形態では、データ取得ユニット342は、少なくとも図1のコントローラ110からデータ(例えば、提示データ、相互作用データ、センサデータ、及び/又はロケーションデータ)を取得するように構成される。その目的で、様々な実施形態では、データ取得ユニット342は、そのための命令及び/又は論理、並びにそのためのヒューリスティックス及びメタデータを含む。
いくつかの実施形態では、XR提示ユニット344は、1つ以上のXRディスプレイ312を介してXRコンテンツを提示するように構成される。その目的で、様々な実施形態では、XR提示ユニット344は、そのための命令及び/又は論理、並びにそのためのヒューリスティックス及びメタデータを含む。
いくつかの実施形態では、XRマップ生成ユニット346は、メディアコンテンツデータに基づいて、XRマップ(例えば、複合現実シーンの3Dマップ又はコンピュータ生成オブジェクトを配置して拡張現実を生成することができる物理的環境のマップ)を生成するように構成されている。その目的で、様々な実施形態では、XRマップ生成ユニット346は、そのための命令及び/又は論理、並びにそのためのヒューリスティックス及びメタデータを含む。
いくつかの実施形態では、データ送信ユニット348は、少なくともコントローラ110、及び任意選択的に入力デバイス125、出力デバイス155、センサ190、及び/又は周辺デバイス195のうちの1つ以上にデータ(例えば、提示データ、及び/又はロケーションデータ)を伝送するように構成される。その目的で、様々な実施形態では、データ送信ユニット348は、そのための命令及び/又は論理、並びにそのためのヒューリスティックス及びメタデータを含む。
データ取得ユニット342は、XR提示ユニット344、XRマップ生成ユニット346、及びデータ送信ユニット348は、単一のデバイス(例えば、図1の表示生成コンポーネント120)上に存在するものとして示されているが、他の実施形態では、データ取得ユニット342、XR提示ユニット344、XRマップ生成ユニット346、及びデータ送信ユニット348の任意の組み合わせが、別個のコンピューティングデバイス内に配置されてもよいことを理解されたい。
更に、図3は、本明細書に記載される実施形態の構造概略とは対照的に、特定の実装形態に存在し得る様々な特徴の機能を説明することをより意図している。当業者によって認識されるように、別々に示された事項を組み合わせることができ、また、一部の事項は分離することができる。例えば、図3に別々に示すいくつかの機能モジュールは、単一のモジュール内に実現することができ、単一の機能ブロックの様々な機能は、様々な実施形態では1つ以上の機能ブロックによって実行することができる。モジュールの実際の数、並びに特定の機能の分割及びそれらの間にどのように機能が割り当てられるかは、実装形態によって異なり、いくつかの実施形態では、特定の実装形態のために選択されたハードウェア、ソフトウェア、及び/又はファームウェアの特定の組み合わせに部分的に依存する。
図4は、ハンドトラッキングデバイス140の例示的な実施形態の概略図である。いくつかの実施形態では、ハンドトラッキングデバイス140(図1)は、図1のシーン105に対する(例えば、ユーザを囲む物理的環境の一部に対する、表示生成コンポーネント120に対する、又はユーザの一部(例えば、ユーザの顔、目、又は頭部)に対する、及び/又はユーザの手に対して定義された座標系に対する)ユーザの手の1つ以上の部分のポジション/ロケーション、及び/又は、ユーザの手の1つ以上の部分の動きを追跡するように、ハンドトラッキングユニット245(図2)によって制御される。いくつかの実施形態では、ハンドトラッキングデバイス140は、表示生成コンポーネント120の一部である(例えば、ヘッドマウントデバイスに埋め込まれる、又はヘッドマウントデバイスに取り付けられる)。いくつかの実施形態では、ハンドトラッキングデバイス140は、表示生成コンポーネント120とは別個である(例えば、別個のハウジング内に位置する、又は別個の物理的支持構造に取り付けられる)。
いくつかの実施形態では、ハンドトラッキングデバイス140は、人間のユーザの少なくとも手406を含む三次元シーン情報をキャプチャする画像センサ404(例えば、1つ以上のIRカメラ、3Dカメラ、深度カメラ、及び/又はカラーカメラ)を含む。画像センサ404は、指及びそれらのそれぞれのポジションを区別するのを可能にするのに十分な解像度で手画像をキャプチャする。画像センサ404は、典型的には、ユーザの身体の他の部分の画像、又は身体の全ての画像をキャプチャし、ズーム機能又は高倍率を有する専用センサのいずれかを有して、所望の解像度で手の画像をキャプチャすることができる。いくつかの実施形態では、画像センサ404はまた、手406の2Dカラービデオ画像及びシーンの他の要素をキャプチャする。いくつかの実施形態では、画像センサ404は、シーン105の物理的環境をキャプチャする他の画像センサと併せて使用される、又はシーン105の物理的環境をキャプチャする画像センサとして機能する。いくつかの実施形態では、画像センサ404は、画像センサ又はその一部の視野が使用されて、画像センサによってキャプチャされた手の移動がコントローラ110への入力として処理される相互作用空間を定義するように、ユーザ又はユーザの環境に対して位置決めされる。
いくつかの実施形態では、画像センサ404は、3Dマップデータ(及び場合によってはカラー画像データ)を含むフレームのシーケンスをコントローラ110に出力し、これにより、マップデータから高レベル情報を抽出する。この高レベル情報は、典型的には、アプリケーションプログラムインタフェース(API)を介して、コントローラ上で実行されるアプリケーションに提供され、それに応じて表示生成コンポーネント120を駆動する。例えば、ユーザは、自分の手408を移動させて自分の手の姿勢を変化させることによって、コントローラ110上で実行されるソフトウェアと対話することができる。
いくつかの実施形態では、画像センサ404は、手406を含むシーン上にスポットパターンを投影し、投影されたパターンの画像をキャプチャする。いくつかの実施形態では、コントローラ110は、パターンのスポットの横方向シフトに基づいて、三角測量によって(ユーザの手の表面上の点を含む)シーン内の点の3D座標を計算する。このアプローチは、ユーザが任意の種類のビーコン、センサ、又は他のマーカを保持又は着用する必要がないという点で有利である。これは、画像センサ404からの特定の距離で、所定の基準面に対するシーン内の点の深度座標を与える。本開示では、画像センサ404は、シーン内の点の深度座標が画像センサによって測定されたzコンポーネントに対応するように、直交する一連のx、y、z軸を定義すると想定される。あるいは、ハンドトラッキングデバイス440は、単一又は複数のカメラ又は他のタイプのセンサに基づいて、立体撮像又は飛行時間測定などの他の3Dマッピング方法を使用することができる。
いくつかの実施形態では、ハンドトラッキングデバイス140は、ユーザが手(例えば、手全体又は1本以上の指)を移動させている間、ユーザの手を含む深度マップの時間シーケンスをキャプチャし処理する。画像センサ404及び/又はコントローラ110内のプロセッサ上で動作するソフトウェアは、3Dマップデータを処理して、これらの深度マップ内の手のパッチ記述子を抽出する。ソフトウェアは、各フレームにおける手の姿勢を推定するために、以前の学習プロセスに基づいて、これらの記述子をデータベース408に記憶されたパッチ記述子と照合する。姿勢は、典型的には、ユーザの手関節及び指先の3Dロケーションを含む。
ソフトウェアはまた、ジェスチャを識別するために、シーケンス内の複数のフレームにわたって手及び/又は指の軌道を解析することができる。本明細書に記載される姿勢推定機能は、運動追跡機能とインターリーブされてもよく、それにより、パッチベースの姿勢推定が2つ(又はそれより多く)のフレーム毎に1回のみ実行される一方、追跡は残りのフレームにわたって発生する姿勢の変化を発見するために使用される。姿勢、運動、及びジェスチャ情報は、上述のAPIを介して、コントローラ110上で実行されるアプリケーションプログラムに提供される。このプログラムは、例えば、姿勢及び/又はジェスチャ情報に応じて、表示生成コンポーネント120上に提示された画像を移動させ修正する、又は他の機能を実行することができる。
いくつかの実施形態では、ジェスチャは、エアジェスチャを含む。エアジェスチャは、ユーザがデバイス(例えば、コンピュータシステム101、1つ以上の入力デバイス125、及び/又は、ハンドトラッキングデバイス140)の一部である入力要素に触れることなく(又はそれとは無関係に)検出されるジェスチャであり、絶対的な基準(例えば、地面に対するユーザの腕の角度、又は地面に対するユーザの手の距離)に対するユーザの身体の動き、ユーザの身体の別の部分(例えば、ユーザの肩に対するユーザの手の移動、ユーザの一方の手のユーザの別の手に対する移動、及び/又はユーザの指の、別の指若しくはユーザの手の一部に対する移動)に対するユーザの身体の動き、及び/又はユーザの身体の一部(例えば、所定の量及び/又は速さによる所定の姿勢での手の移動を含むタップジェスチャ、又は所定の速度又はユーザの身体の一部の回転量を含むシェイクジェスチャ)の絶対的な動きを含む、空中にあるユーザの身体の一部(例えば、頭部、1つ以上の腕、1つ以上の手、1つ以上の指、及び/又は1つ以上の脚)の検出された動きに基づく。
いくつかの実施形態では、本明細書に記載の様々な例及び実施形態で使用される入力ジェスチャは、いくつかの実施形態に係る、XR環境(例えば、仮想又は複合現実環境)と相互作用するための他の指(単数又は複数)又はユーザの手の部分(単数又は複数)に対するユーザの指(単数又は複数)の移動によって実行されるエアジェスチャを含む。いくつかの実施形態では、エアジェスチャは、ユーザがデバイスの一部である入力要素に触れることなく(又はデバイスの一部である入力要素から独立して)検出されるジェスチャであり、絶対的な基準に対するユーザの身体の動き(例えば、地面に対するユーザの腕の角度、又は地面に対するユーザの手の距離)、ユーザの身体の別の部分に対するユーザの身体の動き(例えば、ユーザの肩に対するユーザの手の動き、ユーザの一方の手に対するユーザの他方の手の移動、及び/又はユーザの手の別の指若しくは部分に対するユーザの指の移動)、及び/又は、ユーザの身体の一部の絶対的な動き(例えば、所定の量及び/又は速さによる所定のポーズでの手の移動を含むタップジェスチャ、又はユーザの身体の一部の所定の速さ又は量の回転を含むシェイクジェスチャ)を含む、ユーザの身体の一部の検出された動きに基づく。
入力ジェスチャがエアジェスチャ(例えば、タッチスクリーン上に表示されたユーザインタフェース要素との接触、又はユーザインタフェース要素にカーソルを移動させるためのマウス又はトラックパッドとの接触など、どのユーザインタフェース要素がユーザ入力のターゲットであるかに関する情報をコンピュータシステムに提供する入力デバイスとの物理的接触がない場合)であるいくつかの実施形態では、ジェスチャは、ユーザ入力のターゲット(例えば、以下で説明するように、直接入力の場合)を決定するためにユーザの注意(例えば、視線)を考慮に入れる。したがって、エアジェスチャを含む実装形態では、入力ジェスチャは、例えば、以下でより詳細に説明するように、ピンチ及び/又はタップ入力を実行するためのユーザの指(単数又は複数)及び/又は手の移動と組み合わせて(例えば、同時)ユーザインタフェース要素に対する検出された注意(例えば、視線)である。
いくつかの実施形態では、ユーザインタフェースオブジェクトに向けられた入力ジェスチャは、ユーザインタフェースオブジェクトを参照して直接的又は間接的に実行される。例えば、ユーザ入力は、三次元環境(例えば、ユーザの現在の視点に基づいて決定されるように、)におけるユーザインタフェースオブジェクトのポジションに対応するポジションでユーザの手で入力ジェスチャを実行したことに応じて、ユーザインタフェースオブジェクトに対して直接実行される。いくつかの実施形態では、入力ジェスチャは、ユーザインタフェースオブジェクトに対するユーザの注意(例えば、視線)を検出しながら、ユーザの手のポジションが三次元環境におけるユーザインタフェースオブジェクトのポジションに対応するポジションにない間に入力ジェスチャを実行するユーザに従って、ユーザインタフェースオブジェクトに対して間接的に実行される。例えば、直接入力ジェスチャの場合、ユーザは、ユーザインタフェースオブジェクトの表示ポジション(例えば、オプションの外縁又はオプションの中央部分から測定して、0.5cm、1cm、5cm、又は0~5cmの距離内)に対応するポジション又はその付近でジェスチャを開始することによって、ユーザの入力をユーザインタフェースオブジェクトに向けることができる。間接的な入力ジェスチャの場合、ユーザは、ユーザインタフェースオブジェクトに注意を払うことによって(例えば、ユーザインタフェースオブジェクトを注視することによって)ユーザの入力をユーザインタフェースオブジェクトに向けることができ、オプションに注意を払いながら、ユーザは、入力ジェスチャを開始する(例えば、コンピュータシステムによって検出可能な任意のポジションで)(例えば、ユーザインタフェースオブジェクトの表示ポジションに対応しないポジションで)。
いくつかの実施形態では、本明細書に記載の様々な例及び実施形態で使用される入力ジェスチャ(例えば、エアジェスチャ)は、いくつかの実施形態に係る、仮想又は複合現実環境と相互作用するためのピンチ入力及びタップ入力を含む。例えば、後述するピンチ入力やタップ入力は、エアジェスチャとして行われる。
いくつかの実施形態では、ピンチ入力は、ピンチジェスチャ、ロングピンチジェスチャ、ピンチアンドドラッグジェスチャ、又はダブルピンチジェスチャのうちの1つ以上を含むエアジェスチャの一部である。例えば、エアジェスチャであるピンチジェスチャは、互いに接触するように手の2本以上の指を動かすこと、すなわち、任意選択的に、互いに接触した直後の(例えば、0~1秒以内)中断を含む。エアジェスチャであるロングピンチジェスチャは、互いに接触している中断を検出する前に、少なくとも閾値時間量(例えば、少なくとも1秒)にわたって互いに接触するように手の2本以上の指を動かすことを含む。例えば、ロングピンチジェスチャは、ユーザがピンチジェスチャ(例えば、2つ以上の指が接触している場合、)を保持することを含み、ロングピンチジェスチャは、2本以上の指の間の接触の中断が検出されるまで継続する。いくつかの実施形態では、エアジェスチャであるダブルピンチジェスチャは、互いに直接(例えば、既定の期間内に)連続して検出される2つ(例えば、又はそれより多く)のピンチ入力(例えば、同じ手で実行される)を含む。例えば、ユーザは、第1のピンチ入力を実行し(例えば、ピンチ入力又はロングピンチ入力)、第1のピンチ入力を解放し(例えば、2つ以上の指の間の接触を破壊する)、第1のピンチ入力を解放した後、既定の期間(例えば、1秒以内又は2秒以内)内に第2のピンチ入力を実行する。
いくつかの実施形態では、エアジェスチャであるピンチアンドドラッグジェスチャは、ユーザの手のポジションを第1のポジション(例えば、ドラッグの開始ポジション)から第2のポジション(例えば、抗力の終了ポジション)に変化させるドラッグ入力に関連して(例えば、その後に)実行されるピンチジェスチャ(例えば、ピンチジェスチャ又はロングピンチジェスチャ)を含む。いくつかの実施形態では、ユーザは、ドラッグ入力を実行しながらピンチジェスチャを維持し、(例えば、第2のポジションにおいて)ドラッグジェスチャを終了するためにピンチジェスチャ(例えば、2本以上の指を開く)を解放する。いくつかの実施形態では、ピンチ入力及びドラッグ入力は、同じ手(例えば、ユーザは、2本以上の指をつまんで互いに接触し、ドラッグジェスチャで空中の第2のポジションに同じ手を移動させる)によって実行される。いくつかの実施形態では、ピンチ入力はユーザの第1の手によって実行され、ドラッグ入力はユーザの第2の手によって実行される(例えば、ユーザの第2の手は、ユーザがユーザの第1の手でピンチ入力を継続する間に空中で第1のポジションから第2のポジションに移動する)。いくつかの実施形態では、エアジェスチャである入力ジェスチャは、ユーザの両手の双方を使用して実行される入力(例えば、ピンチ入力及び/又はタップ入力)を含む。例えば、入力ジェスチャは、互いに関連して(例えば、既定の期間と同時に、又は既定の期間内に)行われる2つ(例えば、又はそれより多く)のピンチ入力を含む。例えば、ユーザの第1の手を使用して実行される第1のピンチジェスチャ(例えば、ピンチ入力、ロングピンチ入力、又はピンチ及びドラッグ入力)と、第1の手を使用してピンチ入力を実行することに関連して、他方の手(例えば、ユーザの両手の第2の手)を使用して第2のピンチ入力を実行する。いくつかの実施形態では、ユーザの両手の間の移動(例えば、ユーザの両手の間の距離又は相対的な向きを増加及び/又は減少させるために)。
いくつかの実施形態では、エアジェスチャとして実行されるタップ入力(例えば、ユーザインタフェース要素に向けられる)は、ユーザインタフェース要素に向かうユーザの指の移動(単数又は複数)、任意選択的にユーザの指(単数又は複数)をユーザインタフェース要素に向かって伸ばした状態でのユーザの手のユーザインタフェース要素に向かう移動、ユーザの指の下方への動き(例えば、マウスクリック動作又はタッチスクリーン上のタップを模倣する)、又はユーザの手の他の既定の移動を含む。いくつかの実施形態では、エアジェスチャとして実行されるタップ入力は、ユーザの視点から離れて、及び/又は移動の終了が続くタップ入力のターゲットであるオブジェクトに向かって指又は手のタップジェスチャの移動を実行する指又は手の移動特性に基づいて検出される。いくつかの実施形態では、タップジェスチャ(例えば、ユーザの視点から離れる、及び/又はタップ入力の対象であるオブジェクトに向かう移動の終了、指又は手の移動方向の反転、及び/又は指又は手の移動の加速方向の反転)を実行する指又は手の移動特性の変化に基づいて、移動の終了が検出される。
いくつかの実施形態では、ユーザの注意は、(任意選択で、他の条件を必要とせずに)三次元環境の一部に向けられた視線の検出に基づいて、三次元環境の一部に向けられていると判定される。いくつかの実施形態では、ユーザの注意が三次元環境の一部に向けられていることをデバイスが判定するために、ユーザの視点が三次元環境の一部から距離閾値内にある間に、少なくとも閾値持続時間(例えば、滞留時間)、視線が三次元環境の一部に向けられていることを必要とすること、及び/又は視線が三次元環境の一部に向けられていることを必要とすることなどの1つ以上の追加の条件を伴う三次元環境の一部に向けられた視線の検出に基づいて、ユーザの注意が三次元環境の一部に向けられていると判定され、追加の条件のうちの1つが満たされていない場合、デバイスは、三次元環境のうちの視線が向けられている部分に注意が向けられていないと判定する(例えば、1つ以上の追加の条件が満たされるまで)。
いくつかの実施形態では、ユーザ又はユーザの一部の準備完了状態構成の検出は、コンピュータシステムによって検出される。手の準備完了状態構成の検出は、ユーザが、手によって実行される1つ以上のエアジェスチャ入力(例えば、ピンチ、タップ、ピンチ及びドラッグ、ダブルピンチ、ロングピンチ、又は本明細書に説明される他のエアジェスチャ)を使用して、コンピュータシステムと対話する準備をしている可能性が高いというインジケーションとして、コンピュータシステムによって使用される。例えば、手の準備完了状態は、手が所定の手形状(例えば、親指と1本以上の指が伸ばされて間隔を空けてピンチ若しくはグラブジェスチャを行う準備ができているプレピンチ形状、又は1本以上の指が伸ばされて掌がユーザから離れる方向を向いているプレタップ)を有するか否か、手がユーザの視点に対して所定のポジションにあるか否か(例えば、ユーザの頭部の下、ユーザの腰の上、身体から少なくとも15cm、20cm、25cm、30cm、又は50cmだけ伸ばされている)、及び/又は手が特定の方法で移動したか否か(例えば、ユーザの腰の上、ユーザの頭部の下のユーザの正面の領域に向かって移動したか、又はユーザの身体若しくは脚から離れたか)に基づいて決定される。いくつかの実施形態では、準備完了状態は、ユーザインタフェースの対話要素が注意(例えば、視線)入力に応じるかどうかを判定するために使用される。
いくつかの実施形態では、ソフトウェアは、例えばネットワーク上で、コントローラ110に電子形態でダウンロードされてもよい、又はその代わりに、光学、磁気、若しくは電子メモリ媒体などの、実体的非一時的媒体に提供されてもよい。いくつかの実施形態では、データベース408は、同様に、コントローラ110に関連付けられたメモリに記憶される。代替的又は追加的に、コンピュータの記載された機能の一部又は全ては、カスタム又は半カスタム集積回路又はプログラム可能なデジタル信号プロセッサ(DSP)などの専用のハードウェアに実装されてもよい。コントローラ110は、例として、画像センサ440からの別個のユニットとして図4に示されているが、コントローラの処理機能の一部又は全部は、好適なマイクロプロセッサ及びソフトウェアによって、又はハンドトラッキングデバイス402のハウジング内の専用回路によって、又は他の方法で画像センサ404に関連付けることができる。いくつかの実施形態では、これらの処理機能のうちの少なくともいくつかは、(例えば、テレビセット、ハンドヘルドデバイス、又はヘッドマウントデバイスにおいて)表示生成コンポーネント120と統合された好適なプロセッサによって、又はゲームコンソール又はメディアプレーヤなどの任意の他の適切なコンピュータ化されたデバイスを用いて実行されてもよい。画像センサ404の感知機能は、同様に、センサ出力によって制御されるコンピュータ又は他のコンピュータ化された装置に統合することができる。
図4は、いくつかの実施形態による、画像センサ404によってキャプチャされた深度マップ410の概略図を更に含む。深度マップは、上述したように、それぞれの深度値を有するピクセルのマトリックスを含む。手406に対応するピクセル412は、このマップで背景及び手首からセグメント化されている。深度マップ410内の各ピクセルの輝度は、深度値、すなわち、画像センサ404からの測定されたz距離に反比例し、深度が上昇するにつれて階調が濃くなる。コントローラ110は、人間の手の特性を有する画像のコンポーネント(すなわち、隣接ピクセル群)を識別及びセグメント化するために、これらの深度値を処理する。これらの特性は、例えば、深度マップのシーケンスの全体サイズ、形状、フレームからフレームへの動きを含むことができる。
図4はまた、いくつかの実施形態による、コントローラ110が手406の深度マップ410から最終的に抽出する手骨格414を概略的に示す。図4では、骨格414は、元の深度マップからセグメント化された手の背景416に重畳される。いくつかの実施形態では、手(例えば、指関節、指先、掌の中心、及び/又は手首に接続する手の終端)、及び任意選択的に手に接続された手首又は腕上の主要な特徴点が、手骨格414上で識別され配置される。いくつかの実施形態では、複数の画像フレーム上にわたるこれらの主要な特徴点のロケーション及び移動がコントローラ110によって使用されて、いくつかの実施形態により、手によって実行される手ジェスチャ又は手の現在の状態を判定する。
図5は、アイトラッキングデバイス130(図1)の例示的な実施形態を示す。いくつかの実施形態では、アイトラッキングデバイス130は、シーン105に対する、又は表示生成コンポーネント120を介して表示されたXRコンテンツに対する、ユーザの視線のポジション及び移動を追跡するように、アイトラッキングユニット243(図2)によって制御される。いくつかの実施形態では、アイトラッキングデバイス130は、表示生成コンポーネント120と統合される。例えば、いくつかの実施形態では、表示生成コンポーネント120がヘッドセット、ヘルメット、ゴーグル、又は眼鏡などのヘッドマウントデバイス、又はウェアラブルフレームに配置されたハンドヘルドデバイスである場合、ヘッドマウントデバイスは、ユーザによる視聴のためのXRコンテンツを生成するコンポーネント及びXRコンテンツに対するユーザの視線を追跡するためのコンポーネントの両方を含む。いくつかの実施形態では、アイトラッキングデバイス130は、表示生成コンポーネント120とは別個である。例えば、表示生成コンポーネントがハンドヘルドデバイス又はXRチャンバである場合、アイトラッキングデバイス130は、任意選択的に、ハンドヘルドデバイス又はXRチャンバとは別個のデバイスである。いくつかの実施形態では、アイトラッキングデバイス130は、ヘッドマウントデバイス又はヘッドマウントデバイスの一部である。いくつかの実施形態では、ヘッドマウントアイトラッキングデバイス130は、任意選択的に、頭部に装着されている表示生成コンポーネント又は頭部に装着されていない表示生成コンポーネントと共に使用される。いくつかの実施形態では、アイトラッキングデバイス130は、ヘッドマウントデバイスではなく、任意選択的に、ヘッドマウント表示生成コンポーネントと組み合わせて使用される。いくつかの実施形態では、アイトラッキングデバイス130は、ヘッドマウントデバイスではなく、任意選択的に、非ヘッドマウント表示生成コンポーネントの一部である。
いくつかの実施形態では、表示生成コンポーネント120は、ユーザの目の前に左及び右の画像を含むフレームを表示して、3D仮想ビューをユーザに提供するディスプレイ機構(例えば、左右の目近傍ディスプレイパネル)を使用する。例えば、ヘッドマウント表示生成コンポーネントは、ディスプレイとユーザの目との間に位置する左右の光学レンズ(本明細書では接眼レンズと称される)を含んでもよい。いくつかの実施形態では、表示生成コンポーネントは、表示のためにユーザの環境のビデオをキャプチャする1つ以上の外部ビデオカメラを含んでもよい、又はそれに結合されてもよい。いくつかの実施形態では、ヘッドマウント表示生成コンポーネントは、ユーザが物理的環境を直接視認し、透明又は半透明ディスプレイ上に仮想オブジェクトを表示することができる透明又は半透明のディスプレイを有してもよい。いくつかの実施形態では、表示生成コンポーネントは、仮想オブジェクトを物理的環境に投影する。仮想オブジェクトは、例えば、物理的表面上に、又はホログラフとして投影され、それによって、個人は、システムを使用して、物理的環境の上に重ね合わされた仮想オブジェクトを観察することができる。そのような場合、左右の目のための別個のディスプレイパネル及び画像フレームが必要とされない場合がある。
図5に示されるように、いくつかの実施形態では、視線トラッキングデバイス130は、少なくとも1つのアイトラッキングカメラ(例えば、赤外線(IR)又は近IR(NIR)カメラ)、並びに光(例えば、IR又はNIR光)をユーザの目に向けて発する照明源(例えば、LEDのアレイ若しくはリングなどのIR又はNIR光源)を含む。アイトラッキングカメラは、ユーザの目に向けられて、光源からの反射IR又はNIR光を目から直接受信してもよく、又は代替的に、ユーザの目と、視覚的光が通過することを可能にしながら目からアイトラッキングカメラにIR又はNIR光を反射させるディスプレイパネルとの間に配置される「ホット」ミラーに向けられてもよい。視線トラッキングデバイス130は、任意選択的に、ユーザの目の画像を(例えば、1秒当たり60~120フレーム(fps)でキャプチャされるビデオストリームとして)キャプチャし、画像を解析して、視線トラッキング情報を生成し、視線トラッキング情報をコントローラ110に通信する。いくつかの実施形態では、ユーザの両目は、それぞれのアイトラッキングカメラ及び照明源によって別々に追跡される。いくつかの実施形態では、ユーザの片目のみが、個別のアイトラッキングカメラ及び照明源によって追跡される。
いくつかの実施形態では、アイトラッキングデバイス130は、デバイス固有の較正プロセスを使用して較正されて、特定の動作環境100用のアイトラッキングデバイスのパラメータ、例えば、LED、カメラ、ホットミラー(存在する場合)、接眼レンズ、及びディスプレイスクリーンの3D幾何学的関係及びパラメータを判定する。デバイス固有の較正プロセスは、AR/VR機器のエンドユーザへの配送前に、工場又は別の施設で実行されてもよい。デバイス固有の較正プロセスは、自動較正プロセスであってもよく、又は手動較正プロセスであってもよい。ユーザ固有の較正プロセスは、特定のユーザの目パラメータ、例えば、瞳孔ロケーション、中心視覚ロケーション、光軸、視軸、目間隔などの推定を含んでもよい。いくつかの実施形態によれば、いったんアイトラッキングデバイス130についてデバイス固有及びユーザ固有のパラメータが判定されると、アイトラッキングカメラによってキャプチャされた画像は、グリント支援方法を使用して処理され、ディスプレイに対するユーザの現在の視覚軸及び視点を判定することができる。
図5に示されるように、アイトラッキングデバイス130(例えば、130A又は130B)は、接眼レンズ(単数又は複数)520と、アイトラッキングが行われるユーザの顔の側に配置された少なくとも1つのアイトラッキングカメラ540(例えば、赤外線(IR)又は近IR(NIR)カメラ)と光(例えば、IR又はNIR光)をユーザの目(単数又は複数)592に向かって発する照明源530(例えば、NIR発光ダイオード(LED)のアレイ若しくはリングなどのIR又はNIR光源)とを含む視線トラッキングシステムと、を含む。アイトラッキングカメラ540は、ユーザの目(単数又は複数)592とディスプレイ510(例えば、ヘッドマウントディスプレイの左若しくは右側のディスプレイパネル、又はハンドヘルドデバイスのディスプレイ、及び/又はプロジェクタ)との間に位置し、(例えば、図5の上部に示されるように)可視光を透過させながら、目(単数又は複数)592からのIR又はNIR光を反射するミラー550に向けられてもよく、あるいは、(例えば、図5の下部に示されるように)反射された目(単数又は複数)592からのIR又はNIR光を受光するようにユーザの目(単数又は複数)592に向けられてもよい。
いくつかの実施形態では、コントローラ110は、AR又はVRフレーム562(例えば、左及び右のディスプレイパネルの左及び右のフレーム)をレンダリングし、フレーム562をディスプレイ510に提供する。コントローラ110は、様々な目的のために、例えば、表示のためにフレーム562を処理する際に、アイトラッキングカメラ540からの視線トラッキング入力542を使用する。コントローラ110は、任意選択的に、グリント支援方法又は他の適切な方法を使用して、アイトラッキングカメラ540から得られた視線トラッキング入力542に基づいて、ディスプレイ510上のユーザの視点を推定する。視線トラッキング入力542から推定された視点は、任意選択的に、ユーザが現在見ている方向を判定するために使用される。
以下、ユーザの現在の視線方向のいくつかの可能な使用事例について説明するが、これは限定することを意図するものではない。例示的な使用例として、コントローラ110は、判定されたユーザの視線方向に基づいて、仮想コンテンツを異なってレンダリングすることができる。例えば、コントローラ110は、周辺領域においてよりもユーザの現在の視線方向から判定された中心視覚領域において、より高い解像度で仮想コンテンツを生成してもよい。別の例として、コントローラは、ユーザの現在の視線方向に少なくとも部分的に基づいて、ビュー内の仮想コンテンツを位置決め又は移動させてもよい。別の例として、コントローラは、ユーザの現在の視線方向に少なくとも部分的に基づいて、ビュー内に特定の仮想コンテンツを表示してもよい。ARアプリケーションにおける別の例示的な使用事例として、コントローラ110は、XR体験の物理的環境をキャプチャして、判定された方向に焦点を合わせるように外部カメラを方向付けることができる。次いで、外部カメラの自動焦点機構は、ユーザが現在ディスプレイ510上で見ている環境内のオブジェクト又は表面に焦点を合わせることができる。別の例示的な使用事例として、接眼レンズ520は集束可能なレンズであってもよく、視線トラッキング情報がコントローラによって使用されて、ユーザが現在見ている仮想オブジェクトが、ユーザの目592の収束に一致するために適切な両目連動を有するように接眼レンズ520の焦点を調整する。コントローラ110は、視線トラッキング情報を活用して、ユーザが見ている近接オブジェクトが正しい距離で現れるように接眼レンズ520を方向付けて焦点を調整することができる。
いくつかの実施形態では、アイトラッキングデバイスは、ウェアラブルハウジングに取り付けられた、ディスプレイ(例えば、ディスプレイ510)、2つの接眼レンズ(例えば、接眼レンズ(単数又は複数)520)、アイトラッキングカメラ(例えば、アイトラッキングカメラ(単数又は複数)540)、及び光源(例えば、光源530(例えば、IR LED又はNIR LED))を含むヘッドマウントデバイスの一部である。光源は、ユーザの目(単数又は複数)592に向かって光(例えば、IR又はNIR光)を発する。いくつかの実施形態では、光源は、図5に示されるように、各レンズの周りにリング又は円状に配置されてもよい。いくつかの実施形態では、8つの光源530(例えば、LED)が、一例として各レンズ520の周りに配置される。しかしながら、より多くの又はより少ない光源530が使用されてもよく、光源530の他の配置及びロケーションが用いられてもよい。
いくつかの実施形態では、ディスプレイ510は、可視光範囲内の光を発し、IR又はNIR範囲内の光を発さないため、視線トラッキングシステムにノイズを導入しない。アイトラッキングカメラ(単数又は複数)540のロケーション及び角度は、例として与えられ、限定することを意図するものではないことに留意されたい。いくつかの実施形態では、単一のアイトラッキングカメラ540がユーザの顔の各側に位置する。いくつかの実施形態では、2つ以上のNIRカメラ540をユーザの顔の各側に使用することができる。いくつかの実施形態では、より広い視野(FOV)を有するカメラ540と狭いFOVを有するカメラ540が、ユーザの顔の各側に使用されてもよい。いくつかの実施形態では、1つの波長(例えば、850nm)で動作するカメラ540と異なる波長(例えば、940nm)で動作するカメラ540とが、ユーザの顔の各側に使用されてもよい。
図5に示すような視線トラッキングシステムの実施形態は、例えば、拡張現実(例えば、仮想現実、及び/又は複合現実を含む)アプリケーションに使用されて、拡張現実(例えば、仮想現実、拡張現実、及び/又は拡張仮想を含む)の体験をユーザに提供することができる。
図6は、いくつかの実施形態による、グリント支援視線追跡パイプラインを示す。いくつかの実施形態では、視線追跡パイプラインは、グリント支援視線追跡システム(例えば、図1及び図5に示されるようなアイトラッキングデバイス130)によって実現される。グリント支援視線トラッキングシステムは、追跡状態を維持することができる。当初、追跡状態はオフ又は「いいえ」である。追跡状態にあるとき、グリント支援視線トラッキングシステムは、現フレームを解析する際に前のフレームからの先行情報を使用して、現フレーム内の瞳孔輪郭及びグリントを追跡する。追跡状態にない場合、グリント支援視線トラッキングシステムは、現フレーム内の瞳孔及びグリントを検出しようとし、それに成功した場合、追跡状態を「はい」に初期化し、追跡状態で次のフレームに続く。
図6に示されるように、視線追跡カメラは、ユーザの左目及び右目の左右の画像をキャプチャすることができる。次いで、キャプチャされた画像は、610で開始される処理のために視線トラッキングパイプラインに入力される。要素600に戻る矢印によって示されるように、視線トラッキングシステムは、例えば、毎秒60~120フレームの速度で、ユーザの目の画像をキャプチャし続けることができる。いくつかの実施形態では、キャプチャされた画像の各セットが、処理のためにパイプラインに入力されてもよい。しかしながら、いくつかの実施形態、又はいくつかの条件下では、全てのキャプチャされたフレームがパイプラインによって処理されるわけではない。
610で、現在のキャプチャされた画像について、追跡状態がはいである場合、この方法は要素640に進む。610で、追跡状態がいいえである場合、620に示されるように、画像が解析されて、画像内のユーザの瞳孔及びグリントを検出する。630で、瞳孔とグリントが正常に検出される場合、方法は要素640に進む。正常に検出されない場合、方法は要素610に戻り、ユーザの目の次の画像を処理する。
640において、要素410から進む場合、以前のフレームからの前の情報に部分的に基づいて瞳孔及びグリントを追跡するために、現在のフレームが分析される。640で、要素630から進む場合、現フレーム内の検出された瞳孔及びグリントに基づいて、追跡状態が初期化される。要素640での処理の結果は、追跡又は検出の結果が信頼できることを確認するためにチェックされる。例えば、結果は、瞳孔及び視線推定を実行するための十分な数のグリントが現フレームで正常に追跡又は検出されるかどうかを判定するためにチェックすることができる。650で、結果が信頼できない場合、追跡状態はいいえに設定され、方法は要素610に戻り、ユーザの目の次の画像を処理する。650で、結果が信頼できる場合、方法は要素670に進む。670で、追跡状態は、はいに設定され(まだはいではない場合)、瞳孔及びグリント情報が要素680に渡されて、ユーザの視点を推定する。
図6は、特定の実施で使用され得るアイトラッキング技術の一例として機能することを意図している。当業者によって認識されるように、現在存在するか、又は将来開発される他のアイトラッキング技術は、様々な実施形態によるXR体験をユーザに提供するためにコンピュータシステム101において、本明細書に記載されるグリント支援アイトラッキング技術の代わりに、又はそれと組み合わせて使用することができる。
本開示では、コンピュータシステムとの相互作用に関して、様々な入力方法が説明される。一例が1つの入力デバイス又は入力方法を使用して提供され、別の例が別の入力デバイス又は入力方法を使用して提供される場合、各例は、別の例に関して記載された入力デバイス又は入力方法と互換性があり得、任意選択的にそれらを利用することを理解されたい。同様に、様々な出力方法が、コンピュータシステムとの相互作用に関して説明される。一例が1つの出力デバイス又は出力方法を使用して提供され、別の例が別の出力デバイス又は出力方法を使用して提供される場合、各例は、別の例に関して記載された出力デバイス又は出力方法と互換性があり得、任意選択的にそれらを利用することを理解されたい。同様に、様々な方法が、コンピュータシステムを介した仮想環境又は複合現実環境との相互作用に関して説明される。一例が仮想環境との相互作用を使用して提供され、別の例が複合現実環境を使用して提供される場合、各例は、別の例に関して説明された方法と互換性があり得、任意選択的にそれらを利用することを理解されたい。したがって、本開示は、各例示的な実施形態の説明における実施形態の全ての特徴を網羅的に列挙することなく、複数の例の特徴の組み合わせである実施形態を開示する。
ユーザインタフェース及び関連するプロセス
ここで、ユーザインタフェース(「UI」)の実施形態、及び、表示生成コンポーネント、1つ以上の入力デバイス、及び(任意選択的に)1つ又は複数のカメラを備えた、ポータブル多機能デバイス又はヘッドマウントデバイスなどのコンピュータシステムにおいて実行され得る関連プロセスに注目する。
図7A~図7Jは、表示生成コンポーネント(例えば、表示生成コンポーネント7100、又は表示生成コンポーネント120)を介して表示される三次元環境と、三次元環境に向けられたユーザ入力及び/又は他のコンピュータシステム及び/又はセンサから受信された入力によって引き起こされる三次元環境において発生する相互作用とを示す。いくつかの実施形態では、入力は、仮想オブジェクトによって占有される領域内で検出されるユーザの視線によって、及び/又は仮想オブジェクトの領域に対応する物理的環境内のロケーションで行われるハンドジェスチャによって、三次元環境内の仮想オブジェクトに向けられる。いくつかの実施形態では、入力は、仮想オブジェクトが入力焦点を有する間(例えば、仮想オブジェクトが同時に及び/又は以前に検出された視線入力によって選択されている間、同時に及び/又は以前に検出されたポインタ入力によって選択されている間、同時に及び/又は以前に検出されたジェスチャ入力によって選択されている間)に実行されるハンドジェスチャによって、三次元環境内の仮想オブジェクトに向けられる(例えば、任意選択的に、三次元環境内の仮想オブジェクトの領域から独立した物理的環境内のロケーションで)。いくつかの実施形態では、入力は、仮想オブジェクトのポジションに焦点セレクタオブジェクト(例えば、ポインタオブジェクト又はセレクタオブジェクト)を配置した入力デバイスによって、三次元環境内の仮想オブジェクトに向けられる。いくつかの実施形態では、入力は、他の手段(例えば、音声及び/又は制御ボタン)を介して三次元環境内の仮想オブジェクトに向けられる。いくつかの実施形態では、入力は、ユーザの手の動き(例えば、手全体の動き、個別の姿勢での手全体の動き、手の別の部分に対する手の1つの部分の動き、及び/又は2つの手の間の相対的な動き)及び/又は物理的オブジェクトに対する操作(例えば、タッチ、スワイプ、タップ、開く、向かって移動する、及び/又は相対的に移動する)による物理的オブジェクト又は物理的オブジェクトに対応する仮想オブジェクトの表現を対象とする。いくつかの実施形態では、コンピュータシステムは、センサ(例えば、画像センサ、温度センサ、バイオメトリックセンサ、運動センサ、及び/又は近接センサ)からの入力及びコンテキスト条件(例えば、ロケーション、時間、及び/又は環境内の他人の存在)に従って、三次元環境内の表示をいくらか変更する(例えば、追加の仮想コンテンツを表示する、又は既存の仮想コンテンツの表示を停止する、及び/又は視覚的コンテンツを表示する異なる没入レベル間で遷移する)。いくつかの実施形態では、コンピュータシステムは、(例えば、共有コンピュータ生成体験、共有仮想環境、又は通信セッションの共有仮想若しくは拡張現実環境において)コンピュータ生成環境をコンピュータシステムのユーザと共有している他のユーザによって使用される他のコンピュータからの入力に従って、三次元環境の表示を変更する(例えば、追加の仮想コンテンツを表示する、既存の仮想コンテンツの表示を停止する、又は視覚的コンテンツを表示する様々な没入レベル間で遷移する)。いくつかの実施形態では、コンピュータシステムは、他の人及びオブジェクトの動き、並びにコンピュータシステムの関連動作をトリガするための認識されたジェスチャ入力として品質が高くない可能性があるユーザの動きを検出するセンサからの入力に従って、三次元環境のいくつかの変化(例えば、ユーザインタフェース、仮想表面、ユーザインタフェースオブジェクト、及び/又は仮想風景の動き、変形、視覚特性の変化などを表示すること)を表示する。
いくつかの実施形態では、本明細書に記載の表示生成コンポーネントを介して表示される三次元環境は、物理的環境の表現なしに三次元環境内の異なる仮想ポジションに仮想オブジェクト及びコンテンツを含む仮想三次元環境である。いくつかの実施形態では、三次元環境は、物理的環境の1つ以上の物理的態様(例えば、壁、床、表面のポジション及び向き、重力の方向、時刻、及び/又は物理的オブジェクト間の空間的関係)によって制約される三次元環境内の異なる仮想ポジションに仮想オブジェクトを表示する複合現実環境である。いくつかの実施形態では、三次元環境は、物理的環境の表現を含む拡張現実環境である。いくつかの実施形態では、物理的環境の表現は、物理的環境内の異なる物理的オブジェクトと表面との間の空間的関係が三次元環境内の物理的オブジェクトと表面との表現間の空間的関係によって反映されるように、三次元環境内の異なるポジションにある物理的オブジェクトと表面とのそれぞれの表現を含む。いくつかの実施形態では、仮想オブジェクトが三次元環境内の物理的オブジェクト及び表面の表現のポジションに対して配置されると、それらは、物理的環境内の物理的オブジェクト及び表面と対応する空間的関係を有するように見える。いくつかの実施形態では、コンピュータシステムは、ユーザ入力及び/又はコンテキスト条件に基づいて、異なるタイプの環境を表示することの間で遷移する(例えば、異なる没入レベルでコンピュータ生成環境又は体験を提示すること、又は仮想コンテンツからの、及び物理的環境の表現からの音声/視覚感覚入力の相対的プロミネンスを調整することとの間で遷移する)。
いくつかの実施形態では、表示生成コンポーネントは、物理的環境の表現が表示されるパススルー部分を含む。いくつかの実施形態では、表示生成コンポーネントのパススルー部分は、ユーザ視野を取り囲み、視野内の物理的環境の少なくとも一部を明らかにする表示生成コンポーネントの透明又は半透明(例えば、シースルー)部分である。例えば、パススルー部分は、半透明(例えば、不透明度の50%、40%、30%、20%、15%、10%、又は5%未満)又は透明にされたヘッドマウントディスプレイ又はヘッドアップディスプレイの一部であり、それによって、ユーザは、ヘッドマウントディスプレイを取り外したり、ヘッドアップディスプレイから離れたりすることなく、それを通してユーザを取り囲む現実世界を見ることができる。いくつかの実施形態では、パススルー部分は、仮想又は複合現実環境を表示するときに半透明又は透明から完全に不透明に徐々に遷移する。いくつかの実施形態では、表示生成コンポーネントのパススルー部分は、1つ以上のカメラ(例えば、モバイルデバイスの又はヘッドマウントディスプレイと関連付けられた背面カメラ(単数又は複数)、又は画像データをコンピュータシステムに供給する他のカメラ)によってキャプチャされた物理的環境の少なくとも一部の画像又はビデオのライブフィードを表示する。いくつかの実施形態では、1つ以上のカメラは、直接ユーザの目の前に(例えば、表示生成コンポーネントのユーザに対して、表示生成コンポーネントの後に)ある物理的環境の一部に向けられる。いくつかの実施形態では、1つ以上のカメラは、直接ユーザの目の前にない(例えば、異なる物理的環境にある、又はユーザの側方又は後方にある)物理的環境の一部に向けられる。
いくつかの実施形態では、物理的環境(例えば、仮想現実環境、複合現実環境、又は拡張現実環境内のポジション)内の1つ以上の物理的オブジェクトのロケーションに対応するポジションに仮想オブジェクトを表示するとき、仮想オブジェクトのうちの少なくともいくつかは、カメラのライブビューの一部(例えば、ライブビュー内にキャプチャされた物理的環境の一部)の代わりに表示される(例えば、その表示を置換する)。いくつかの実施形態では、仮想オブジェクト及びコンテンツのうちの少なくともいくつかは、物理的環境内の物理的表面又は空き空間上に投影され、表示生成コンポーネントのパススルー部分を通じて可視である(例えば、物理的環境のカメラビューの一部として、又は表示生成コンポーネントの透明若しくは半透明の部分を通じて可視である)。いくつかの実施形態では、仮想オブジェクト及び仮想コンテンツのうちの少なくともいくつかは、ディスプレイの一部分に重なるように表示され、表示生成コンポーネントの透明又は半透明部分を介して可視である物理的環境の少なくとも一部分のビューを遮断する。
いくつかの実施形態では、表示生成コンポーネントは、三次元環境に対する三次元環境の現在表示されているビューの視点の仮想ポジションを変更するためのユーザ入力又は動きに従って、三次元環境の異なるビューを表示する。いくつかの実施形態では、三次元環境が仮想環境である場合、視点は、物理的環境におけるユーザの頭、胴体、及び/又は表示生成コンポーネントの動きを必要とすることなく、ナビゲーション又は動き要求(例えば、空中ハンドジェスチャ、及び/又は手の別の部分に対する手の1つの部分の動きによって実行されるジェスチャ)に従って移動する。いくつかの実施形態では、(例えば、ユーザが表示生成コンポーネントを保持すること、又はHMDを装着することによる)物理的環境に対するユーザの頭部及び/若しくは胴体の移動、並びに/又はコンピュータシステムの表示生成コンポーネント若しくは他のロケーション感知要素の移動などは、三次元環境に対する視点の対応する移動(例えば、対応する移動方向、移動距離、移動速度、及び/又は向きの変化を伴う)を引き起こし、三次元環境の現在表示されているビュー内の対応する変化をもたらす。いくつかの実施形態では、仮想オブジェクトが視点に対して予め設定された空間的関係を有する(例えば、視点に固定される)場合、三次元環境に対する視点の動きは、視野内の仮想オブジェクトのポジションが維持されている間(例えば、仮想オブジェクトはヘッドロックされていると言われる)、三次元環境に対する仮想オブジェクトの動きを引き起こす。いくつかの実施形態では、仮想オブジェクトは、ユーザに対してボディロックされ、ユーザが物理的環境内で全体として移動する(例えば、コンピュータシステムの表示生成コンポーネント及び/又は他のロケーション感知コンポーネントを携帯又は装着する)ときに三次元環境に対して移動するが、ユーザの頭部(例えば、物理的環境内のユーザの固定ロケーションの周りを回転するコンピュータシステムの表示生成コンポーネント及び/又は他のロケーション感知コンポーネント)の動きのみに応じて三次元環境内では移動しない。いくつかの実施形態では、仮想オブジェクトは、任意選択的に、ユーザの手又は手首などのユーザの別の部分にロックされ、物理的環境内のユーザの部分の動きに従って三次元環境内で動き、仮想オブジェクトのポジションと三次元環境内のユーザの部分の仮想ポジションとの間の予め設定された空間的関係を維持する。いくつかの実施形態では、仮想オブジェクトは、表示生成コンポーネントによって提供される視野の予め設定された部分にロックされ、視野の変化を引き起こさないユーザの動きにかかわらず、視野の動きに従って、三次元環境内で動く。
いくつかの実施形態では、図7B~図7Jに示されるように、三次元環境のビューは、ユーザの手(単数又は複数)、腕(単数又は複数)、及び/又は手首(単数又は複数)の表現(単数又は複数)を含まないことがある。いくつかの実施形態では、ユーザの手(複数可)、腕(複数可)、及び/又は手首(複数可)の表現(複数可)は、三次元環境のビューに含まれる。いくつかの実施形態では、ユーザの手(単数又は複数)、腕(単数又は複数)、及び/又は手首(単数又は複数)の表現(単数又は複数)は、表示生成コンポーネントを介して提供される物理的環境の表現の一部として、三次元環境のビューに含まれる。いくつかの実施形態では、表現は、物理的環境の表現の一部ではなく、個別にキャプチャされ(例えば、ユーザの手(単数又は複数)、腕(単数又は複数)、及び手首(単数又は複数)に向かう1つ以上のカメラによって)、三次元環境の現在表示されているビューとは無関係に三次元環境に表示される。いくつかの実施形態では、表現(単数又は複数)は、コンピュータシステム(単数又は複数)の1つ以上のカメラによってキャプチャされたカメラ画像、又は様々なセンサによってキャプチャされた情報に基づく腕(単数又は複数)、手首(単数又は複数)、及び/又は手(単数又は複数)の様式化されたバージョンを含む。いくつかの実施形態では、表現(単数又は複数)は、物理的環境の表現の一部の表示を置換する、その一部に重なる、又はその一部のビューを遮断する。いくつかの実施形態では、表示生成コンポーネントが物理的環境のビューを提供せず、完全に仮想環境(例えば、カメラビューがない、及び透明なパススルー部分がない)を提供する場合、ユーザの一方又は双方の腕、手首、及び/又は手のリアルタイム視覚表現(例えば、スタイル化表現又はセグメント化されたカメラ画像)は、任意選択的に、依然として仮想環境に表示される。いくつかの実施形態では、ユーザの手の表現が三次元環境のビュー内に提供されない場合、ユーザの手に対応するポジションは、任意選択的に、例えば、物理的環境内のユーザの手のロケーションに対応する三次元環境内のポジションにおける仮想コンテンツの外観の変化によって(例えば、半透明性及び/又はシミュレートされた反射率の変化を通じて)、三次元環境内に示される。いくつかの実施形態では、ユーザの手又は手首のロケーションに対応する三次元環境内の仮想ポジションが、表示生成コンポーネントを介して提供される現在の視野の外側にある間に、ユーザの手又は手首の表現は、三次元環境の現在表示されているビューの外側にあり、ユーザの手又は手首の表現は、ユーザの手又は手首のロケーションに対応する仮想ポジションが、表示生成コンポーネント、ユーザの手又は手首、ユーザの頭部、及び/又はユーザ全体などの動きに起因して現在の視野内で移動されることに応じて、三次元環境のビュー内で可視にされる。
図7A~図7Jは、いくつかの実施形態による、三次元環境において表示されるユーザインタフェースオブジェクトとのユーザ相互作用を示すブロック図である。いくつかの実施形態では、ユーザインタフェースオブジェクトのうちの1つ以上は、三次元環境内の所定のゾーン内に提供され、所定のゾーン内に配置されたユーザインタフェースオブジェクトは、三次元環境内のユーザに追従するが、所定のゾーン外に配置されたユーザインタフェースオブジェクトは、三次元環境内のユーザに追従しない(例えば、所定のゾーン外に配置されたユーザインタフェースオブジェクトは、三次元環境に固定される)。いくつかの例におけるユーザインタフェースオブジェクトに関して図7A~図7J(及び図8~図9)において説明される挙動は、説明において別段の定めがない限り、様々な実施形態に従って、他の例におけるユーザインタフェースオブジェクトに適用可能である。
図7A~図7Jは、第1の表示生成コンポーネント(例えば、表示生成コンポーネント7100又は別の表示生成コンポーネント)と通信している例示的なコンピュータシステム(例えば、デバイス101又は別のコンピュータシステム)を示す。いくつかの実施形態では、第1の表示生成コンポーネントは、ヘッドアップディスプレイである。いくつかの実施形態では、第1の表示生成コンポーネントは、ヘッドマウントディスプレイ(HMD)である。いくつかの実施形態では、第1の表示生成コンポーネントは、スタンドアロンディスプレイ、タッチスクリーン、プロジェクタ、又は別のタイプのディスプレイである。いくつかの実施形態では、コンピュータシステムは物理的環境におけるユーザの手の動き、ユーザの身体全体の動き、及び/又はユーザの頭部の動きを検出するカメラ又は他のセンサ及び入力デバイスを含む1つ以上の入力デバイスと通信する。いくつかの実施形態では、1つ以上の入力デバイスは、ユーザの動き、並びにユーザの手、顔、及び身体全体などの現在の姿勢、向き、及びポジションを検出する。いくつかの実施形態では、1つ以上の入力デバイスは、ユーザの視線のロケーション及び動きを検出するアイトラッキングコンポーネントを含む。いくつかの実施形態では、第1の表示生成コンポーネント、並びに任意選択的に、1つ以上の入力デバイス及びコンピュータシステムは、物理的環境内でユーザの頭部と共に移動及び回転し、ユーザの視点を第1の表示生成コンポーネントを介して提供される三次元環境に変化させる、ヘッドマウントデバイス(例えば、HMD又はゴーグルのペア)の一部である。いくつかの実施形態では、第1の表示生成コンポーネントは、ユーザの頭部又はユーザの身体全体と共に移動又は回転しないが、任意選択的に、第1の表示生成コンポーネントに対するユーザの頭部又は身体の動きに従って、ユーザの視点を三次元環境に変化させる、ヘッドアップディスプレイである。いくつかの実施形態では、第1の表示生成コンポーネントは、任意選択で、ユーザの手によって、物理的環境に対して、又はユーザの頭部に対して移動及び回転され、ユーザの頭部若しくは顔に対する、又は物理的環境に対する第1の表示生成コンポーネントの移動に従って、ユーザの視点を三次元環境に変更する。
図7A~図7Eは、物理的環境7000内のユーザ7002(例えば、ユーザの視点)に対するロケーションに対応する三次元環境内のそれぞれのポジションにおいて、ユーザインタフェースオブジェクト7104(例えば、ユーザインタフェースオブジェクト7104-1~7104-3はユーザインタフェースオブジェクト7104のインスタンスである)を表示することを示すブロック図である。
例えば、図7Aは、表示生成コンポーネント7100と相互作用するユーザ7002を含む物理的環境7000を示す。以下に説明する例では、ユーザ7002は、2つの手、すなわち手7020及び手7022の一方又は両方を使用して、コンピュータシステムに入力又は命令を提供する。以下で説明される例のうちのいくつかでは、コンピュータシステムはまた、ユーザによってコンピュータシステムに提供される入力の一部として、ユーザの左手7020に接続される、ユーザの左腕7028などのユーザの腕のポジション又は移動を使用する。物理的環境7000は、物理的オブジェクト7014と、物理的壁7004及び7006とを含む。物理的環境7000は、物理的床7008を更に含む。
図7Bに示されるように、コンピュータシステム(例えば、表示生成コンポーネント7100)は、三次元環境のビュー(例えば、環境7000’、仮想三次元環境、拡張現実環境、物理的環境のパススルービュー、又は物理的環境のカメラビュー)を表示する。いくつかの実施形態では、三次元環境は、物理的環境7000の表現のない仮想三次元環境である。いくつかの実施形態では、三次元環境は、物理的環境7000に対応するセンサデータによって拡張される仮想環境である複合現実環境である。いくつかの実施形態では、三次元環境は、1つ以上の仮想オブジェクト(例えば、ユーザインタフェースオブジェクト7104)と、表示生成コンポーネント7100を囲む物理的環境の少なくとも一部の表現(例えば、壁の表現7004’、7006’、床の表現7008’、及び物理的オブジェクトの表現7014’)とを含む、拡張現実環境である。例えば、いくつかの実施形態では、物理的環境の表現は、物理的環境のカメラビューを含む。いくつかの実施形態では、物理的環境の表現は、表示生成コンポーネントの透明又は半透明部分を通じた物理的環境のビューを含む。いくつかの実施形態では、物理的オブジェクトの表現7014’は、ユーザが物理的環境内で移動するにつれて、表現7014’が三次元環境内のそのポジションに維持される(例えば、ユーザの現在のビューが、物理的オブジェクトの表現7014’が固定される三次元環境の部分を含むときにのみ表示される)ように、三次元環境にロック(例えば、固定)される。
図7C~図7Eは、表示生成コンポーネント7100を使用して表示される三次元環境7000’内の様々なオブジェクト(例えば、物理的環境内の物理的オブジェクト及び/又は仮想オブジェクト)にユーザが注目している例を示す。例えば、図7Cは、ユーザがユーザインタフェースオブジェクト7104-1に注目している(例えば、注視している)間のユーザの視点からの第1のビューを示す。例えば、ユーザの注目は、ユーザの目からの破線によって表される。いくつかの実施形態では、コンピュータシステムは、ユーザの視線及び/又はユーザの頭部ポジションを判定するセンサデータに基づいて、ユーザが三次元環境のそれぞれの部分(例えば、オブジェクト)に注目していると判定する。コンピュータシステムは、ユーザが現在注目している三次元環境の部分を決定するために、様々なセンサデータを使用することが可能であることが理解されるであろう。
いくつかの実施形態では、ユーザインタフェースオブジェクト7104-1は、ユーザの視線及び/又はユーザの手の1つ以上によるジェスチャ(例えば、エアジェスチャ)を介して、ユーザによって選択可能な複数の選択可能なユーザインタフェースオプション(例えば、ボタン)を含むパネルを含む。いくつかの実施形態では、ユーザは、どの選択可能なユーザインタフェースオプションがパネル(例えば、ユーザインタフェースオブジェクト7104-1)に含まれるかを制御(例えば、修正)する。例えば、ユーザは、パネルに含まれる選択されたアプリケーションアイコン、設定、コントロール、及び/又は他のオプションが、ユーザによって容易にアクセス可能であるように、パネル内に表示される特定のアプリケーションアイコン、設定、コントロール、及び/又は他のオプションを選択する(例えば、以下でより詳細に説明するように、ユーザが物理的環境内で移動するときにパネルがユーザに追従するので、ユーザは、ユーザが物理的環境内で移動してもパネルと相互作用することが可能になる)。
図7Dは、ユーザがオブジェクト7014’(例えば、物理的環境7000内の物理的オブジェクト7014の表現である)に注目している様子を示す。ユーザがユーザインタフェースオブジェクト7104-1に注目していないことに応じて(例えば、図7Cに示されるように)、ユーザインタフェースオブジェクト7104-1は、ユーザインタフェースオブジェクト7104-2に更新され、ユーザインタフェースオブジェクト7104-2は、ユーザインタフェースオブジェクト7104-1の視覚的に強調抑制したバージョンとして表示される(例えば、影付きの塗りつぶしによって示されるように)。いくつかの実施形態では、ユーザインタフェースオブジェクト7104-2は、ユーザインタフェースオブジェクト7104-1の視覚特性に対してフェードした視覚特性で表示され、ユーザインタフェースオブジェクト7104-1は、ユーザがユーザインタフェースオブジェクト7104-1に注目している間、変更されていない(例えば、フェードしていない)視覚特性で表示される。いくつかの実施形態では、ユーザインタフェースオブジェクト7104-2は、三次元環境7000’に表示される他のオブジェクト(例えば、仮想オブジェクト及び/又は物理的オブジェクト)に対してフェードした視覚特性で表示される。例えば、物理的オブジェクトの表現7014’は視覚的に強調抑制されない(例えば、修正されない)が、ユーザインタフェースオブジェクト7104-2は視覚的に強調抑制される。いくつかの実施形態では、ユーザインタフェースオブジェクトは、ユーザインタフェースオブジェクト7104-2をぼかすこと、ユーザインタフェースオブジェクト7104-2のサイズを減少させること、ユーザインタフェースオブジェクト7104-2の不透明度を減少させること、ユーザインタフェースオブジェクト7104-2の半透明性を増加させること、ユーザインタフェースオブジェクト7104-2の表示を完全に停止すること、又はユーザインタフェースオブジェクト7104-2を強調抑制するようにする視覚効果の組み合わせ(例えば、同時にフェード及びぼかし)によって、視覚的に抑えられる。
いくつかの実施形態では、図7E~図7Gに示されるように、ユーザがユーザインタフェースオブジェクト7104(例えば、ユーザインタフェースオブジェクト7104-3、ユーザインタフェースオブジェクト7104-4、及びユーザインタフェースオブジェクト7104-5)に注目していない間、ユーザインタフェースオブジェクト7104は、(例えば、図7E~図7Fの影付き塗りつぶしによって示されるように)視覚的デエンファシスを伴って表示され続ける。いくつかの実施形態では、ユーザがユーザインタフェースオブジェクトに注目していない間(例えば、ユーザがユーザインタフェースオブジェクトに注目していない時間量が増加するにつれて)、ユーザインタフェースオブジェクト7104の視覚的デエンファシスは増加する。例えば、ユーザが最初にユーザインタフェースオブジェクト7104-1からユーザの注目をそらしたことに応じて、ユーザインタフェースオブジェクト7104-2は、第1の量だけフェードされて表示される(例えば、ユーザインタフェースオブジェクトの不透明度が第1の量だけ減少され、及び/又はユーザインタフェースオブジェクトの半透明度が第1の量だけ増加される)。いくつかの実施形態では、所定の時間量(例えば、0.1、0.2、0.5、1、2、又は5秒)の後、ユーザインタフェースオブジェクト7104-3(図7E)は、第1の量よりも大きい第2の量だけフェードされて表示される(例えば、ユーザインタフェースオブジェクト7104-3は、ユーザインタフェースオブジェクト7104-2よりも大きい量の視覚的デエンファシスを伴って表示される)。
いくつかの実施形態では、視覚的デエンファシスの量は、ユーザがオブジェクトからユーザの注目をそらす速度及び/又は量(例えば、角度の変化の量及び/又は距離の量)に少なくとも部分的に基づいて決定される。例えば、ユーザがユーザインタフェースオブジェクト7104-1から素早く(例えば、第1の速度で)目を離したことに応じて、ユーザインタフェースオブジェクト7104-2は、第1の量だけ視覚的に強調抑制される。ユーザがユーザインタフェースオブジェクト7104-1からより遅く(例えば、第1の速度より遅い第2の速度で)目を離した(及び/又は向きを変えた)ことに応じて、ユーザインタフェースオブジェクト7104-2は、第1の量より小さい第2の量だけ強調抑制される。いくつかの実施形態では、視覚的デエンファシスの量は、ユーザインタフェースオブジェクト7104-1とユーザの現在の注目が三次元環境内にある場所との間の変化(例えば、距離の変化及び/又は角度の変化)の量に基づく(例えば、ユーザの動き/注目の変化の速度に基づくことに加えて、又はその代わりに)。例えば、ユーザがユーザインタフェースオブジェクト7104-1に近い(例えば、5cm以内、又は10cm以内、又は所定の近接性基準を満たす)エリアにユーザの注目を移動させる場合、ユーザインタフェースオブジェクトは、ユーザがユーザインタフェースオブジェクト7104-1から遠く離れた(例えば、5cm超、又は10cm超)エリアにユーザの注目を移動させる場合よりも少ない量だけ、視覚的に強調抑制される。したがって、ユーザがユーザインタフェースオブジェクト7104-1からユーザの注目を移動させると、ユーザインタフェースオブジェクト7104-2の表示は、ユーザの動き及び/又はユーザの注目の変化の1つ以上の特性に従って更新される。
いくつかの実施形態では、図7E~図7Hに示すように、ユーザが三次元環境7000’内で移動すると(例えば、ユーザが物理的環境7000の周りを移動することに対応して)、ユーザがユーザインタフェースオブジェクト7104に注目していない間、ユーザインタフェースオブジェクト7104は、視覚的デエンファシスを伴って表示され続ける(又は表示されない)。いくつかの実施形態では、ユーザインタフェースオブジェクト7104は、以下でより詳細に説明するように、ユーザが物理的環境内で移動する(例えば、ユーザインタフェースオブジェクト7104がユーザに追従する)につれて、三次元環境内の様々なポジションに表示される。
いくつかの実施形態では、ユーザインタフェースオブジェクト7104は、図7Hに示すように、ユーザがユーザインタフェースオブジェクト7104に注目していることをコンピュータシステムが検出するまで、視覚的デエンファシスを伴って表示され続ける。例えば、ユーザがユーザインタフェースオブジェクト7104-6に注目していることを検出したことに応じて、ユーザインタフェースオブジェクトは、視覚的デエンファシスなしで表示される(例えば、ユーザインタフェースオブジェクト7104-6は、図7Cのユーザインタフェースオブジェクト7104-1と同じ視覚特性で表示される)。いくつかの実施形態では、ユーザがユーザインタフェースオブジェクト7104-6に注目していることを検出したことに応じて、ユーザインタフェースオブジェクト7104-6は、ユーザインタフェースオブジェクト7104-6がユーザインタフェースオブジェクト7104-1のユーザに対する(例えば、以前の)相対的ポジション(例えば、ユーザが物理的環境内で移動する前の、ユーザに対するユーザインタフェースオブジェクトの初期ポジション)と同じユーザに対する相対的ポジションを有するように、三次元環境内のポジションに表示される。
図7E~図7Hは、ユーザ7002が物理的環境7000内で移動する際に、三次元環境内の様々なポジションに表示されるユーザインタフェースオブジェクト7104を示すブロック図である。三次元環境におけるユーザインタフェースオブジェクト7104のポジションの変更は、上述したユーザインタフェースオブジェクト7104の視覚的デエンファシスと併せて(例えば、同時に)実行されることが可能であることが理解されよう。
いくつかの実施形態では、図7Eに示されるように、ユーザ(及びユーザの現在の視点)は、物理的環境内で移動し(例えば、ユーザは、第1の量の距離だけ右に移動する)、ユーザが物理的環境内で移動することに応じて、表示生成コンポーネント7100上に表示されるビューは、物理的環境内のユーザの移動を反映する三次元環境の現在のビューを含むように更新される(例えば、リアルタイムで)。例えば、ユーザが図7Eにおいて(例えば、図7Dにおけるビューに対して)右に移動するにつれて、物理的オブジェクトの表現7014’は、(図7Dにおけるユーザのビューの右端に表示されている物理的オブジェクトの表現7014’と比較して)図7Eにおけるユーザの現在のビューにおいてより中心にあるように表示される。
いくつかの実施形態では、ユーザが物理的環境内で移動している間、ユーザインタフェースオブジェクト7104-3は、最初は(例えば、三次元環境内の他の表示他の表示オブジェクトに対して)三次元環境内の同じポジションに維持される。例えば、図7Dにおいて、ユーザインタフェースオブジェクト7104-2は、その右端がオブジェクト7014’の表現の左端と(例えば、垂直に)位置合わせされて表示される。図7Eにおいてユーザが第1の量だけ移動したことに応じて、ユーザインタフェースオブジェクト7104-3は、オブジェクト7014’の表現に対して三次元環境内の同じポジションに表示され続ける。例えば、ユーザインタフェースオブジェクト7104-3は、最初は三次元環境に固定されているように見える。一部の実施形態では、ユーザインタフェースオブジェクト7104-2(例えば、及びユーザインタフェースオブジェクト7104-3)は、ユーザが物理的環境内で(例えば、距離の、向き及び/又はポジションの変化の)閾値量未満移動する(例えば、ユーザによる第1の移動量が閾値量未満である)のに応じて、三次元環境内の他のオブジェクトに対して三次元環境内の同じポジションに維持される。一部の実施形態では、ユーザインタフェースオブジェクト7104-2(例えば、及びユーザインタフェースオブジェクト7104-3)は、ユーザの動きの第1の所定の期間の間、三次元環境内の他のオブジェクトに対して三次元環境内の同じポジションに維持される。例えば、ユーザインタフェースオブジェクト7104-2は、物理的環境内で移動するユーザの最初の2秒間(例えば、0.5秒間、又は4秒間)、三次元環境内の同じポジションに表示される。
一部の実施形態では、ユーザが閾値量を超えて(例えば、閾値距離を超えて、向き及び/若しくはポジションの変化の閾値量を超えて、並びに/又は第1の所定期間よりも長い期間にわたって)移動した後、ユーザインタフェースオブジェクト7104-4は、その初期ポジション(例えば、ユーザが移動を開始する前)とは異なる三次元環境内のポジションに表示されるように更新される。例えば、ユーザインタフェースオブジェクト7104-3は、更新されることなく、図7Fのユーザの現在のビューから消える。したがって、ユーザインタフェースオブジェクト7104-4は、ユーザの現在のビュー内に留まるように、三次元環境において表示される他のオブジェクトに対して移動される(例えば、ユーザインタフェースオブジェクト7104-4は、その全体が、ユーザが物理的環境において移動するにつれて表示されたままである)。したがって、ユーザインタフェースオブジェクト7104-4は、三次元環境に固定されず、代わりに、ユーザの現在の視点に固定される。
一部の実施形態では、表示生成コンポーネント7100は、図7Fに示されるユーザインタフェースオブジェクト7104-4のポジションへのアニメーション化された動き(例えば、漸進的かつ連続的な動き)を有するユーザインタフェースオブジェクト7104-3を表示する。いくつかの実施形態では、ユーザインタフェースオブジェクト7104-3を移動させている間、ユーザインタフェースオブジェクト7104-3は、上述のように視覚的に強調抑制される。いくつかの実施形態では、ユーザインタフェースオブジェクト7104-3~7104-4は、ユーザが物理的環境内で移動する際に、ユーザインタフェースオブジェクトがユーザに追従しているかのように表示される(例えば、ユーザインタフェースオブジェクト7104が、ユーザの各個別の現在のビューにおいて、その全体が表示されたままであるように)。いくつかの実施形態では、ユーザインタフェースオブジェクト7104-3がユーザインタフェースオブジェクト7104-4のポジションを更新するとき、ユーザインタフェースオブジェクト7104-4のポジションへのユーザインタフェースオブジェクト7104-3の移動速度は、物理的環境におけるユーザの移動速度よりも遅い移動速度として表示される。例えば、ユーザインタフェースオブジェクトは、ユーザに追従する際に遅延され(例えば、2秒後にユーザに追従し始めるだけである)、物理的環境におけるユーザの動きの速度(例えば、ユーザの現在の視点に対する変化率)よりも三次元環境内でより遅く移動するように表示される。したがって、ユーザインタフェースオブジェクトは、ユーザが物理的環境内で移動するにつれて、ユーザに遅れて見える。
図7Gは、ユーザが物理的環境内で(例えば、図7D~図7Fに対して)移動し続けることを示す。図7Gは、ユーザが物理的環境において右に(例えば、上述したのと同じ方向に)移動し続けるときの、物理的環境におけるユーザ(例えば、及び表示生成コンポーネント7100)の追加の横方向移動(例えば、左右の移動)を示す。図7Gは、(例えば、図7Gの下向き矢印によって示されるような)垂直方向におけるユーザの姿勢(例えば、向き)の動きを更に示す。例えば、ユーザは、(例えば、図7Gの床7008’の表現のより多くを含むように)ユーザの現在の視点を下方に(例えば、同時に)移動させながら、物理的環境において右に移動する。一部の実施形態では、ユーザインタフェースオブジェクト7104-5は、ユーザが物理的環境内で移動するにつれて移動するように(例えば、ユーザよりも遅い速度で)更新される。例えば、ユーザは、図7Eに対して図7Gにおいてより右に移動し、ユーザインタフェースオブジェクト7104も、ユーザの移動速度より遅い速度で図7E~図7Gの間を右に(例えば、ユーザと共に)移動するように表示される。例えば、ユーザインタフェースオブジェクト7104が図7E~図7Gにおけるユーザの現在の視点の上部中央部分に表示され続ける(例えば、ユーザと同じ速度で移動するユーザインタフェースオブジェクト7104を示す)代わりに、ユーザインタフェースオブジェクト7104は、ユーザが移動している間、移動が遅れているように見える。
いくつかの実施形態では、ユーザが動きの閾値量を超えて移動した(例えば、ユーザインタフェースオブジェクト7104が初期ポジションから更新ポジションに移動してユーザの現在のビュー内に留まった)後、ユーザインタフェースオブジェクト7104は、ユーザが物理的環境内で移動し続けるにつれて、三次元環境内でユーザに追従し続ける。一部の実施形態では、ユーザインタフェースオブジェクト7104は、ユーザに対して(例えば、ユーザの身体の一部に対して、及び/又はユーザの現在の視点に対して)同じ空間的関係を維持するために、三次元環境内の異なるポジションに移動される(例えば、ユーザが物理的環境内で移動するにつれて)。例えば、ユーザインタフェースオブジェクト7104は、ユーザの現在のビューの所定の部分内(例えば、ユーザの現在のビューの左上隅)及び/又はユーザの現在のビューから所定の距離離れて(例えば、ユーザから腕の長さの範囲内)留まるようにユーザに追従し続ける。
ユーザの視点は、任意選択的に、物理的環境内で横方向に表示生成コンポーネント7100を移動させること、表示生成コンポーネント7100の相対角度(例えば、姿勢)を変更すること、及び/又はユーザの頭部の姿勢(例えば、向き)を変更すること(例えば、表示生成コンポーネントがユーザによって装着されたHMDであるときなど、ユーザが床7008に向かって見下ろすとき)の任意の組み合わせによって更新される。特定の方向及び/又は向き(例えば、右方向及び/又は下方向)における物理的環境内のユーザの移動の本明細書に説明される実施例は、物理的環境内のユーザの移動の非限定的実施例である。例えば、ユーザの他の動き(例えば、左方向、上方向、並びに/又は異なる方向及び/若しくは姿勢の組み合わせ)は、ユーザインタフェースオブジェクトを同様の挙動で表示させる(例えば、ユーザインタフェースオブジェクトは、三次元環境のユーザの現在の視点内で移動して、ユーザの動きに追従する(任意選択的に、遅延及び/又はずれを伴う))。
いくつかの実施形態では、図7Hに示すように、ユーザが物理的環境内で(例えば、距離、姿勢及び/又は向きの)閾値量を超えて移動した後、ユーザインタフェースオブジェクト7104-6は、ユーザ(例えば、ユーザの身体及び/又はユーザの視点)に対して定義される三次元環境のユーザの現在のビュー内のポジションに再表示される。例えば、図7Cにおいて、ユーザインタフェースオブジェクト7104-1は、最初に、ユーザの現在の視点に対して定義される三次元環境内のポジションに表示される。例えば、ユーザインタフェースオブジェクト7104-1は、ユーザから所定の距離(例えば、知覚される深度)に、かつユーザに対する高さに(例えば、ユーザの現在の視点の上部に、又はユーザが真っ直ぐ前を見ているときにユーザの視点の上方の所定の角度(例えば、45度)に)表示される。いくつかの実施形態では、ユーザが物理的環境内で移動している間、ユーザが閾値量だけ移動する前に、ユーザインタフェースオブジェクトは、ユーザの現在のビュー内で移動されて、図7E~図7Gを参照して説明した遅延追従(lazy follow)挙動で現れ、ユーザが少なくとも閾値量だけ移動した後(例えば、図7Hに示すように)、ユーザインタフェースオブジェクト7104-6は、図7Cで説明したユーザの現在の視点に対して定義された同じポジションで再表示される。いくつかの実施形態では、ユーザの現在の視点に対して定義された同じポジションは、ユーザの快適な視聴距離内にある所定のゾーンに対応する。
いくつかの実施形態では、上述のユーザインタフェースオブジェクト7104の遅延及びずれ挙動(例えば、本明細書では遅延追従挙動とも呼ばれる)は、ユーザインタフェースオブジェクト7104が複数の所定のゾーンのうちの1つに追加されることに従って実行される。例えば、ユーザインタフェースオブジェクト7104-1の初期ポジションは、複数の所定のゾーンのうちの第1のゾーン内に設定され、複数の所定のゾーンのうちの1つ内に配置された(例えば、固定された)ユーザインタフェースオブジェクトは、本明細書で説明される遅延追従挙動に従って更新される。いくつかの実施形態では、ユーザ7002は、ユーザインタフェースオブジェクトを様々なゾーンに移動させ、これらのオブジェクトをゾーンから移動させることもできる(例えば、個別のユーザインタフェースオブジェクトが所定のゾーンのうちの1つの中に配置されていない間、遅延追従挙動がもはや適用されないように)。いくつかの実施形態では、ユーザがユーザインタフェースオブジェクトを選択している間、複数の所定のゾーンが強調表示されて(例えば、各個別のゾーンの輪郭を用いて)、ユーザインタフェースオブジェクトが遅延追従挙動を有するようにするために、ユーザがユーザインタフェースオブジェクトをどこに配置できるかをユーザに示す。
いくつかの実施形態では、所定のゾーンは、三次元環境の予め定義された部分(例えば、予め定義された形状)をカバーする。例えば、所定のゾーンは、その長さ、幅、深さ、及び/又は形状(例えば、境界)によって定義される三次元環境内のポジションを占有する。例えば、第1の所定のゾーンは、第1の深さ(例えば、又は深さの範囲)に位置付けられ(例えば、占有し)、第1の幅、長さ、及び/又は高さを有する。いくつかの実施形態では、第1の所定のゾーンは、三次元形状、又は任意選択で二次元形状(例えば、二次元窓又はドック)に対応する三次元環境の一部を占有する。例えば、第1の所定のゾーンは、三次元環境内の所定のポジションにある立方体である(例えば、ユーザインタフェースオブジェクトを所定のポジションの立方体内に移動させることは、ユーザインタフェースオブジェクトを第1の所定のゾーン内に移動させることである)。
いくつかの実施形態では、ユーザインタフェースオブジェクト7104は、ユーザがユーザの頭を動かしている間、物理的環境においてユーザの身体を動かすことなく消える。いくつかの実施形態では、ユーザがユーザの身体(例えば、胴体及び頭部)を動かしている間、ユーザインタフェースオブジェクトは表示され続ける(例えば、視覚的に強調抑制した特性を有する)。例えば、ユーザがユーザのロケーションを変更する(例えば、物理的環境内の第1のロケーションから第2のロケーションに移動する)ことなく、かつ/又はユーザがユーザの胴体を移動させる(例えば、ユーザの身体の向きを変更する)ことなく、ユーザがユーザの頭部を回転させる(例えば、三次元環境のユーザの現在のビューを更新する)場合、ユーザインタフェースオブジェクト7104は、三次元環境内の第1のポジションから第2のポジションに移動するようにアニメーション化されない。代わりに、ユーザインタフェースオブジェクト7104は、ユーザの移動中に表示されず、ユーザの頭部移動が停止する(例えば、ユーザの頭部の新しいポジションに所定の期間留まる)ことに応じて(例えば、ユーザが第2のポジションで所定の期間静止しているときに)再表示される。
いくつかの実施形態では、ユーザは、図7Iに示されるように、ユーザインタフェースオブジェクト7104-4と相互作用することが更に可能にされる。例えば、ユーザインタフェースオブジェクト7104-7は、複数の選択可能オブジェクト(例えば、アプリケーションアイコン、コントロールセンタ内のコントロール、設定、及び/又はボタン)を含むパネルである。いくつかの実施形態では、複数の選択可能オブジェクトのうちの第1の選択可能オブジェクトに向けられたユーザ入力(例えば、ユーザの視線及び/又はエアジェスチャ)を検出したことに応じて、第1の選択可能オブジェクトが強調表示される(例えば、ハイライトされる、輪郭が描かれる、拡大される、又は他の選択可能オブジェクトに対して区別される)。
いくつかの実施形態において、複数の選択可能オブジェクトは、三次元環境における没入型体験のための1つ以上のコントロールを含む。例えば、ユーザインタフェースオブジェクト7104-7は、三次元環境内のユーザを完全な仮想体験に没入させるための再生及び/又は一時停止コントロールを含み、没入のレベルを変更する(例えば、三次元環境内の物理的環境からのパススルーコンテンツをより多く又はより少なく表示する)ためのオプションをユーザに提供する。例えば、三次元環境において没入型体験を再生及び/又は一時停止するためのコントロールが表示される。いくつかの実施形態では、三次元環境におけるより高いレベルの没入は、仮想オブジェクトの表示、仮想壁紙の表示、仮想照明の表示などの追加の仮想特徴を含む。したがって、ユーザは、三次元環境に表示される仮想コンテンツの量に対するパススルーコンテンツとして、物理的環境のどれだけが三次元環境に表示されるかを制御することができる。
例えば、図7Jに示すように、ユーザ入力(例えば、ユーザの手7020を使用するハンドジェスチャ、又は手と視線とを組み合わせたジェスチャ)に応じて、ユーザは、ユーザインタフェースオブジェクトをユーザの現在のビューに対して三次元環境内の異なるポジションに移動させることができる(例えば、ユーザインタフェースオブジェクト7104-8は、図7Jにおいてユーザの現在のビューの左下に表示される)。一部の実施形態では、ユーザインタフェースオブジェクト7104-8の新たなポジションは、複数の所定のゾーンのうちの所定のゾーン内にある(例えば、ユーザインタフェースオブジェクト7104-8は、ユーザが物理的環境内で移動する際に遅延追従挙動を有し続ける)。例えば、ユーザは、ユーザインタフェースオブジェクト7104-8を第1の所定のゾーンから第2の所定のゾーンに再配置する。いくつかの実施形態では、ユーザインタフェースオブジェクトが第2の所定のゾーンに移動された後、ユーザが物理的環境内で(例えば、動きの閾値量を超えて)移動した後、ユーザインタフェースオブジェクトは、ユーザの現在のビュー内で第2の所定のゾーンのユーザに対するポジションに表示されたままであるように、三次元環境内で移動される。
一部の実施形態では、ユーザがユーザインタフェースオブジェクトを所定のゾーンの近くに(例えば、閾値距離内に)位置決めしたことに応じて(例えば、ユーザがユーザインタフェースオブジェクトを選択して三次元環境内で移動させるにつれてゾーンが強調表示されている間)、ユーザインタフェースオブジェクト7104は所定のゾーンにスナップする(例えば、ユーザがユーザインタフェースオブジェクトを所定のゾーン内に配置することを確認するのに従って)。例えば、ユーザがユーザインタフェースオブジェクトを所定のゾーンの十分近くに再配置したことに応じて、コンピュータシステムは、所定のゾーンにスナップされたユーザインタフェースオブジェクトを自動的に表示する(例えば、ユーザインタフェースオブジェクトを所定のゾーンと完全に位置合わせするのをユーザに要求することなく、ユーザはピンチ及び/又はドラッグジェスチャを解放して、ユーザインタフェースオブジェクトを定位置に落とす(例えば、そしてスナップする))。いくつかの実施形態では、ユーザインタフェースオブジェクトが所定のゾーン内の定位置にスナップすることに従って、コンピュータシステムは、音声及び/又は触覚指示を出力する。
いくつかの実施形態又はいくつかの状況において、ユーザインタフェースオブジェクト7104-8の新たなポジションは、複数の所定のゾーンのうちの所定のゾーン内にない。一部の実施形態では、ユーザインタフェースオブジェクト7104が所定のゾーン内に配置されない(例えば、ユーザがユーザインタフェースオブジェクトを所定のゾーンに対応しない三次元環境内のポジションに再配置する)場合、ユーザインタフェースオブジェクト7104-8は、ユーザが物理的環境内で移動する際に、遅延追従挙動を有し続けることはない(例えば、ユーザインタフェースオブジェクト7104-8は、ユーザが移動すると、ユーザの現在のビュー内に留まるようにポジションを変更する代わりに、世界固定(world-locked)されるように三次元環境内に固定される)。
いくつかの実施形態では、ユーザは、ユーザから所定の距離内にユーザインタフェースオブジェクトを再配置することのみが可能である。例えば、ユーザインタフェースオブジェクトは、ユーザの腕の届く範囲内のポジションに配置される。いくつかの実施形態では、ユーザインタフェースオブジェクトは、ユーザから所定の距離外(例えば、ユーザから腕の距離を超える)のポジションに配置することができない。例えば、ユーザが、ユーザから所定の距離よりもユーザから遠い三次元環境内のポジションにユーザインタフェースオブジェクトを再配置したことに応じて、コンピュータシステムは、ユーザにエラー警告を提供する(例えば、ユーザが、ユーザから所定の距離よりも遠いポジションにユーザインタフェースオブジェクトを配置することを許可しない)。いくつかの実施形態では、ユーザが、ユーザから所定の距離よりもユーザから遠い三次元環境内のポジションにユーザインタフェースオブジェクトを再配置することに応じて、コンピュータシステムは、ユーザがオブジェクトをそのポジションに配置することを可能にするが、ユーザインタフェースオブジェクトが、そのポジションに配置されたときに、三次元環境内でユーザに追従しないという警告(例えば、テキスト表示)を提供する(例えば、ユーザから所定の距離よりも遠いポジションにオブジェクトを配置することは、ユーザインタフェースオブジェクトが、ユーザが物理的環境内で移動するときにユーザと同じ相対空間的関係を維持するように移動しないように、オブジェクトを三次元環境に固定する)。
いくつかの実施形態では、図7Jに示すように、ユーザは、ユーザインタフェースオブジェクト7104-8のサイズを変更することもできる。例えば、ユーザ入力(例えば、第1の手によるピンチジェスチャ)は、(例えば、ユーザインタフェースオブジェクト7104-8のサイズ変更アフォーダンス上の)ユーザインタフェースオブジェクト7104-8に向けられ、ユーザインタフェースオブジェクト7104-8は、ユーザがサイズ変更アフォーダンスをユーザインタフェースオブジェクトから外向きにドラッグすること(例えば、ユーザインタフェースオブジェクトを拡大するため)、又はサイズ変更アフォーダンスをユーザインタフェースオブジェクトの中心に向かって内向きにドラッグすること(例えば、ユーザインタフェースオブジェクトのサイズを縮小するため)に従って、サイズが拡大及び/又は縮小される。いくつかの実施形態では、ユーザは、(例えば、ジェスチャを行うために両手を使用して)両手ジェスチャを行うことが可能にされる。例えば、ユーザの第1の手で(例えば、ピンチジェスチャで)ユーザインタフェースオブジェクトを選択した後、ユーザは、ユーザインタフェースオブジェクトのサイズをそれぞれ減少及び/又は増加させるために、ユーザの他方の手をユーザの第1の手に近づける及び/又はユーザの第1の手から遠ざける(例えば、ユーザインタフェースオブジェクトをつまむ)ことができる。いくつかの実施形態では、本明細書に記載される各種実施例及び実施形態で使用される入力ジェスチャ(例えば、図7A~図7J、及び図8~図9に関する)は、任意選択的に、いくつかの実施形態によると、仮想又は複合現実環境と相互作用するために、ジェスチャの直前又は最中)に動作を実行するためにユーザの手全体又は腕をそれらの自然なロケーション(単数又は複数)及び姿勢(単数又は複数)から離れるように大きく移動させることを任意選択的に必要とすることなく、ユーザの指(単数又は複数)を他の指(単数又は複数)又はユーザの手の一部(単数又は複数)に対して移動させることによって実行される離散の小さな運動ジェスチャを含む。
いくつかの実施形態では、入力ジェスチャは、センサシステム(例えば、図1のセンサ190、図3の画像センサ314)によってキャプチャされるデータ及び信号を解析することによって検出される。いくつかの実施形態では、センサシステムは、1つ以上の撮像センサ(例えば、モーションRGBカメラ、赤外線カメラ、及び/又は深度カメラの1つ以上のカメラ)を含む。例えば、1つ以上の撮像センサは、表示生成コンポーネント(例えば、図1、図3、及び図4の表示生成コンポーネント120又は7100(例えば、ディスプレイ及びタッチ感知面として機能するタッチスクリーンディスプレイ、立体ディスプレイ、及び/又はパススルー部分を有するディスプレイ))を含むコンピュータシステム(例えば、図1のコンピュータシステム101(例えば、ポータブル電子デバイス又はHMD))のコンポーネントである、又は上記コンピュータシステムにデータを提供する。いくつかの実施形態では、1つ以上の撮像センサは、デバイスのディスプレイとは反対側のデバイスの側に1つ以上の後面カメラを含む。いくつかの実施形態では、入力ジェスチャは、ヘッドマウントシステムのセンサシステム(例えば、ユーザの左目の左画像及びユーザの右目の右画像を提供する立体ディスプレイを含むVRヘッドセット)によって検出される。例えば、ヘッドマウントシステムのコンポーネントである1つ以上のカメラは、ヘッドマウントシステムの前側及び/又は下側に取り付けられている。いくつかの実施形態では、1つ以上の撮像センサは、撮像センサがヘッドマウントシステム及び/又はヘッドマウントシステムのユーザの画像をキャプチャするように、ヘッドマウントシステムが使用される空間に配置される(例えば、部屋内の様々なロケーションでヘッドマウントシステムの周りに配列される)。いくつかの実施形態では、入力ジェスチャは、ヘッドアップデバイス(例えば、ヘッドアップディスプレイ、グラフィックを表示する能力を有する自動車フロントガラス、グラフィックを表示する能力を有する窓、グラフィックを表示する能力を有するレンズ)のセンサシステムによって検出される。例えば、1つ以上の撮像センサは、自動車の内面に取り付けられる。いくつかの実施形態では、センサシステムは、1つ以上の深度センサ(例えば、センサアレイ)を含む。例えば、1つ以上の深度センサは、1つ以上の光ベースの(例えば、赤外線)センサ及び/又は1つ以上の音響ベースの(例えば、超音波)センサを含む。いくつかの実施形態では、センサシステムは、光エミッタ(例えば、赤外線エミッタ)及び/又は音声エミッタ(例えば、超音波エミッタ)などの1つ以上の信号エミッタを含む。例えば、光(例えば、所定パターンを有する赤外光エミッタアレイからの光)が手(例えば、手7102)に投射されている間、光の照明下の手の画像が1つ以上のカメラによってキャプチャされ、キャプチャされた画像が手のポジション及び/又は構成を判定するために解析される。タッチ感知面又は他の直接接触機構又は近接ベースの機構の信号を使用することと対照的に、手に向けられた画像センサからの信号を使用して入力ジェスチャを判定することで、ユーザは、特定の入力デバイス又は入力領域によって課せられる制約を経験せずに、手で入力ジェスチャを提供するときに、大きな運動を実行するか、又は相対的に静止状態を保つかを自由に選択することができる。
いくつかの実施形態では、タップ入力は、任意選択的に、ユーザの手の人差し指上の(例えば、親指に隣接する人差し指の側部上の)親指のタップ入力を示す。いくつかの実施形態では、人差し指の側部から親指を持ち上げる必要なく、タップ入力が検出される。いくつかの実施形態では、タップ入力は、親指の下方移動の後に親指の上方移動が続き、親指が閾値時間未満、人差し指の側部と接触しているという判定に従って検出される。いくつかの実施形態では、タップホールド入力は、親指が上昇ポジションからタッチダウンポジションまで移動し、少なくとも第1の閾値時間(例えば、タップ時間閾値又はタップ時間閾値よりも長い別の時間閾値)、タッチダウンポジションに留まるという判定に従って検出される。いくつかの実施形態では、コンピュータシステムは、人差し指上の親指によるタップホールド入力を検出するために、手全体が、少なくとも第1の閾値時間、あるロケーションで実質的に静止したままであることを必要とする。いくつかの実施形態では、タッチホールド入力は、手が実質的に静止したままであることを必要とせずに検出される(例えば、親指が人差し指の側部に置かれている間、手全体が移動することができる)。いくつかの実施形態では、タップホールドラッグ入力は、親指が人差し指の側部にタッチし、親指が人差し指の側部に静止している間に手全体が移動するときに検出される。
いくつかの実施形態では、フリックジェスチャは、任意選択的に、人差し指を横切る親指の移動(例えば、人差し指の掌側から後側への)プッシュ又はフリック入力を示す。いくつかの実施形態では、親指の伸長移動は、例えば、親指による上方フリック入力のように、人差し指の側部から離れる上方移動を伴う。いくつかの実施形態では、人差し指は、親指が前方及び上方に移動する間、親指の方向と反対方向に移動する。いくつかの実施形態では、逆フリック入力は、伸長ポジションから後退ポジションに移動する親指によって実行される。いくつかの実施形態では、人差し指は、親指が後方及び下方に移動する間、親指の方向と反対方向に移動する。
いくつかの実施形態では、スワイプジェスチャは、任意選択的に、人差し指に沿った(例えば、親指に隣接する人差し指の側部又は掌の側部に沿った)親指の移動によるスワイプ入力である。いくつかの実施形態では、人差し指は、任意選択的に、伸長状態(例えば、実質的に直線)又は屈曲状態である。いくつかの実施形態では、人差し指は、スワイプ入力ジェスチャで親指が移動する間、伸長状態と屈曲状態との間を移動する。
いくつかの実施形態では、様々な指の異なる指骨は、異なる入力に対応する。様々な指(例えば、人差し指、中指、薬指、及び任意選択的に小指)の様々な指骨にわたる親指のタップ入力は、任意選択的に、異なる動作にマッピングされる。同様に、いくつかの実施形態では、異なるプッシュ又はクリック入力が、異なる指及び/又は指の異なる部分を横切る親指によって実行されて、個別のユーザインタフェース接触で異なる動作をトリガすることができる。同様に、いくつかの実施形態では、異なる指に沿って、及び/又は異なる方向に(例えば、指の遠位端又は近位端に向かって)親指によって実行される異なるスワイプ入力が、それぞれのユーザインタフェースコンテキストで異なる動作をトリガする。
いくつかの実施形態では、コンピュータシステムは、タップ入力、フリック入力、及びスワイプ入力を、親指の移動のタイプに基づいて異なるタイプの入力として処理する。いくつかの実施形態では、コンピュータシステムは、所与の入力タイプ(例えば、タップ入力タイプ、フリック入力タイプ、及び/又はスワイプ入力タイプ)の異なるサブ入力タイプ(例えば、近位、中間、遠位サブタイプ、又は人差し指、中指、薬指、若しくは小指サブタイプ)として親指によってタップ、タッチ、又はスワイプされる異なる指ロケーションを有する入力を処理する。いくつかの実施形態では、移動する指(例えば、親指)によって実行される移動量、及び/又は指の移動に関連付けられる他の移動の尺度(例えば、速度、初期速度、終了速度、持続時間、方向、及び/又は移動パターン)が使用されて、指入力によってトリガされる動作に定量的に影響を与える。
いくつかの実施形態では、コンピュータシステムは、タップスワイプ入力(例えば、親指が他の指へのタッチダウン後に、指の側部に沿ってスワイプする)、タップフリック入力(例えば、親指が他の指へのタッチダウン後に、掌の側部から指の後部まで指を横切ってフリックする)、ダブルタップ入力(例えば、ほぼ同じロケーションでの指の側部上の2連続タップ)などの、親指による一連の移動を組み合わせた組み合わせ入力タイプを認識する。
いくつかの実施形態では、ジェスチャ入力は、親指の代わりに人差し指によって実行される(例えば、人差し指が親指上でタップ又はスワイプを実行するか、又は親指及び人差し指が互いに向かって動いてピンチジェスチャを実行する)。いくつかの実施形態では、手首の移動(例えば、水平方向又は垂直方向での手首のフリック)は、指の移動入力の直前、直後(例えば、閾値時間内)、又は同時に実行されて、手首の移動による修正入力のない指の移動入力と比較して、現在のユーザインタフェースコンテキストで追加の動作、異なる動作、又は修正された動作をトリガする。いくつかの実施形態では、ユーザの顔に面するユーザの掌で実行される指入力ジェスチャは、ユーザの顔と反対に面するユーザの掌で実行される指入力ジェスチャとは異なるタイプのジェスチャとして処理される。例えば、ユーザに面するユーザの掌で実行されるタップジェスチャは、ユーザの顔と反対に面するユーザの掌で実行されるタップジェスチャに応答して実行される動作(例えば、同じ動作)と比較して、プライバシー保護が追加(又は低減)された動作を実行する。
1つのタイプの指入力を使用して、本開示で提供される実施例において動作タイプをトリガすることができるが、他の実施形態では、同じタイプの動作をトリガするために、他のタイプの指入力が任意選択的に使用される。
図7A~図7Jに関する追加の説明は、以下の図8~図9に関して記載された方法800及び900を参照して以下に提供される。
図8は、いくつかの実施形態による、ユーザがユーザインタフェース要素に注目していない間に、三次元環境においてユーザインタフェース要素を視覚的に強調抑制する方法800のフローチャートである。
いくつかの実施形態では、方法800は、第1の表示生成コンポーネント(例えば、図1、図3、及び図4の表示生成コンポーネント120)(例えば、ヘッドアップディスプレイ、ディスプレイ、タッチスクリーン、及び/又はプロジェクタ)と、1つ以上のセンサなどの1つ以上の入力デバイス(例えば、ユーザの手に置いて下方を向くカメラ(例えば、カラーセンサ、赤外線センサ、及び他の深度感知カメラ)又はユーザの頭部から前方に向くカメラ)とを含む、コンピュータシステム(例えば、図1のコンピュータシステム101)で実行される。いくつかの実施形態では、方法800は、非一時的コンピュータ可読記憶媒体に記憶され、コンピュータシステム101の1つ以上のプロセッサ202(例えば、図1Aの制御ユニット110)など、コンピュータシステムの1つ以上のプロセッサによって実行される命令によって統御される。方法800のいくつかの動作は、任意選択的に、組み合わされ、かつ/又はいくつかの動作の順序は、任意選択的に、変更される。
いくつかの実施形態では、コンピュータシステムは、第1の表示生成コンポーネント(例えば、第1の表示生成コンポーネントは、ヘッドアップディスプレイ、ヘッドマウントディスプレイ(HMD)、ディスプレイ、タッチスクリーン、及び/又はプロジェクタである)及び1つ以上の入力デバイス(例えば、カメラ、コントローラ、タッチ感知面、ジョイスティック、ボタン、手袋、時計、モーションセンサ、及び/又は向きセンサ)と通信する。いくつかの実施形態では、第1の表示生成コンポーネントは、図7A~図7Jに関して説明された第1の表示生成コンポーネント7100である。いくつかの実施形態では、コンピュータシステムは、第1の表示生成コンポーネントと同じハウジングに囲まれた1つ以上のプロセッサ及びメモリと、1つ以上の入力デバイスのうちの少なくともいくつかと、を有する統合デバイスである。いくつかの実施形態では、コンピュータシステムは、第1の表示生成コンポーネント及び/又は1つ以上の入力デバイスとは別個の1つ以上のプロセッサ及びメモリを含むコンピューティングコンポーネント(例えば、サーバ、スマートフォン又はタブレットデバイスなどのモバイル電子デバイス、ウォッチ、リストバンド、又はイヤフォンなどのウェアラブルデバイス、デスクトップコンピュータ、及び/又はラップトップコンピュータ)を含む。いくつかの実施形態では、第1の表示生成コンポーネント及び1つ以上の入力デバイスは、同じハウジング内に統合され、かつ同じハウジングに囲まれている。方法800の特徴の多くは、いくつかの実施形態に従って、図7A~7Jに関して説明される。
方法800は、ユーザがユーザインタフェース要素に注目していないとき、視覚的に強調抑制したユーザインタフェース要素を表示することに関する。ユーザインタフェース要素は、ユーザが物理的環境内で動き回るときに強調抑制されたままであり、ユーザがユーザインタフェース要素に注目しているとき、ユーザインタフェース要素は、もはや強調抑制されず、三次元環境のユーザの現在のビューに基づいて、三次元環境内のポジションでユーザのために表示される。ユーザがユーザインタフェースオブジェクトに注目しているか否かに基づいて、及びユーザの現在の視点に基づいて、ユーザインタフェースオブジェクトの表示ロケーションを自動的に強調抑制する及び変更することにより、ユーザが三次元環境の異なる部分に注意を移す際にリアルタイムの視覚フィードバックが提供される。改善された視覚的フィードバックをユーザに提供することにより、システムの操作性を向上させ、(例えば、システムを操作する/システムと相互作用するときに適切な入力を提供するようにユーザを支援し、ユーザの誤りを削減することによって)ユーザ-システムインタフェースをより効率的にし、加えて、ユーザがシステムをより迅速かつ効率的に使用できるようにすることによって、電力使用量を削減し、システムのバッテリ寿命を改善する。
コンピュータシステムは、第1の表示生成コンポーネントを介して、三次元環境の第1のビューに第1のユーザインタフェースオブジェクトを表示する(802)。一部の実施形態では、第1のユーザインタフェースオブジェクトは、所定のレイアウトの1つ以上のユーザインタフェースオブジェクトを含む(例えば、ユーザインタフェースオブジェクト7104-1は、ユーザインタフェースオブジェクト7104-1内に表示された1つ以上のユーザインタフェースオブジェクトを含む)。
第1のユーザインタフェースオブジェクトを表示している間、コンピュータシステムは、1つ以上の入力デバイスを介して、ユーザが第1のユーザインタフェースオブジェクトに関する注目基準を満たしているか否か(例えば、ユーザが視線検出基準及び/又は頭部ポジション基準を満たしているか否かを判定することなどによって、ユーザが第1のユーザインタフェースオブジェクトに注目しているか否か)を検出する(804)。例えば、図7C及び図7Dを参照して上述したように、いくつかの実施形態では、コンピュータシステムは、ユーザがユーザインタフェースオブジェクト7104-1に注目しているか(例えば、ユーザの目からユーザインタフェースオブジェクト7104-1への破線によって示されるように)、又はユーザがユーザインタフェースオブジェクト7104-2に注目していないか(例えば、ユーザの目から物理的オブジェクトの表現7014’への破線によって示されるように)を検出する。
ユーザが第1のユーザインタフェースオブジェクトに関する注目基準を満たさないことを検出することに応じて(例えば、ユーザは、第1のユーザインタフェースオブジェクトに注目していない)、コンピュータシステムは、修正された外観で第1のユーザインタフェースを表示し(806)、修正された外観で第1のユーザインタフェースオブジェクトを表示することは、三次元環境内の1つ以上の他のオブジェクト(例えば、実オブジェクト、又は仮想オブジェクト)に対して第1のユーザインタフェースオブジェクトを強調抑制することを含む。例えば、図7Dを参照して上述したように、コンピュータシステムは、ユーザが第1のユーザインタフェースオブジェクトに注目していない間、視覚的に第1のユーザインタフェースオブジェクト7104-2の強調抑制する(例えば、不透明度を低減し、及び/又はぼかしを増大させる)。
修正された外観で第1のユーザインタフェースオブジェクトを表示している間に、コンピュータシステムは、1つ以上の入力デバイスを介して、物理的環境に対するユーザの視点の第1の動きを検出する(808)。例えば、図7D-7Hを参照して説明されるように、ユーザは、物理的環境内でユーザのロケーションを移動させる。いくつかの実施形態では、ユーザのロケーション(及び現在の視点)は、任意選択的に、物理的環境におけるユーザのポジション(例えば、三次元空間における)と、物理的環境内のユーザの姿勢/向きとの両方を含む。いくつかの実施形態では、物理的環境は三次元環境に対応し(例えば、物理的環境の少なくとも一部はパススルーコンテンツとして表示される)、物理的環境におけるユーザの向き及び/又はポジションの変化は、三次元環境のユーザの現在のビューを更新する。いくつかの実施形態では、第1の動きは、ユーザが注目基準を満たすかどうかをコンピュータシステムが判定する(例えば、又は新たな判定を行う)前に、移動基準を満たさなければならない(例えば、ユーザは、物理的環境内の以前のポジションから少なくとも閾値量移動しなければならない、及び/又はユーザは、物理的環境内のユーザの胴体(例えば、ユーザの頭部だけでなく)を移動しなければならない)。任意選択的に、物理的環境におけるユーザの姿勢及び/又は向きの変化は、移動基準を満たすことができる。
物理的環境に対するユーザの視点の第1の動きを検出した後(例えば、視点の第1の動きの検出に従って、又はそれに応じて)、コンピュータシステムは、図7Hを参照して説明したように、ユーザが第1のユーザインタフェースオブジェクトに関する注目基準を満たしている(例えば、ユーザが第1のユーザインタフェースオブジェクトに注目している)ことを検出する(810)。
ユーザが注目基準を満たすことを検出したことに応じて、コンピュータシステムは、三次元環境の第1のビューとは異なる三次元環境の第2のビューに第1のユーザインタフェースオブジェクトを表示し(812)、三次元環境の第2のビューに第1のユーザインタフェースオブジェクトを表示することは、第1のユーザインタフェースオブジェクトが修正された外観で表示されたときよりも、三次元環境内の1つ以上の他のオブジェクト(例えば、現実又は仮想オブジェクト)に対して第1のユーザインタフェースオブジェクトを強調する外観で第1のユーザインタフェースオブジェクトを表示することを含む。例えば、図7Hを参照して説明したように、第1のユーザインタフェースオブジェクトは、(例えば、図7Dの三次元環境におけるそのポジションと比較して)三次元環境における異なるポジションに表示されるが、物理的環境におけるユーザの現在の視点(例えば、ロケーション及び/又はポジション)に対応する第1のアンカーポジションに対する第1の空間的関係を有し続ける。更に、図7Hに示されるように、ユーザインタフェースオブジェクト7104-6は、ユーザがユーザインタフェースオブジェクト7104-6を見ていることに応じて、もはや視覚的に強調抑制されない(ユーザがユーザインタフェースオブジェクトに注目していない間のように)。したがって、いくつかの実施形態では、第1のユーザインタフェースオブジェクトは、ユーザが物理的環境内で移動するにつれてユーザに追従するように表示される。
いくつかの実施形態では、第1のユーザインタフェースオブジェクトは、物理的環境におけるユーザの身体のロケーションに対応する三次元環境における第1のアンカーポジションに対する第1の空間的関係を有する。例えば、第1のユーザインタフェースオブジェクトは、ユーザの胴体、手、頭、又はユーザの身体の他の部分に対して同じ一般的なロケーションに維持される(例えば、又はロックされる)。いくつかの実施形態では、第1の空間的関係は、ユーザの視点の動きの前後で維持される。例えば、図7C及び図7Hを参照して説明したように、ユーザの視点とユーザインタフェースオブジェクト7104-1及び7104-6のインスタンスとの間の第1の空間的関係は、ユーザが物理的環境内で移動する前後で維持される。ユーザの視点が変化しても(例えば、ユーザが物理的環境の周りを移動するにつれてユーザの現在の視点を変化させることによって)、ユーザの身体の一部に対して同じ一般的なロケーションに維持される(例えば、又はロックされる)ポジションにある特定のユーザインタフェースオブジェクトを自動的に表示することは、ユーザが物理的環境の周りを移動するにつれてリアルタイム視覚フィードバックを提供し、それによって、改善された視覚フィードバックをユーザに提供する。
いくつかの実施形態では、物理的環境に対するユーザの視点の第1の動きを検出した後に、コンピュータシステムは、第1のユーザインタフェースオブジェクトの表示を三次元環境内の同じアンカーポジションに維持する(例えば、時間閾値が満たされるまで)。いくつかの実施形態では、第1のユーザインタフェースオブジェクトは、最初に、ユーザの視点が移動する間、三次元環境内の同じロケーションに維持される。いくつかの実施形態では、ユーザの視点が閾値距離を超えて移動すると、及び/又はユーザの視点が閾値時間にわたって移動する(例えば、ユーザが移動して停止するが、初期視点に戻らない)と、ユーザインタフェースオブジェクトは、図7E~図7Hを参照して説明したように、三次元環境内で移動する。いくつかの実施形態では、ユーザインタフェースオブジェクトの移動速度は、ユーザの視点の動き速度よりも遅い。ユーザの視点が変化しても(例えば、ユーザが物理的環境の周りを移動するにつれてユーザの現在の視点を変化させることによって)、三次元環境に対して同じ一般的なロケーションに維持される(例えば、又はロックされる)ポジションにある特定のユーザインタフェースオブジェクトを自動的に表示することは、ユーザが物理的環境の周りを移動するにつれてリアルタイム視覚フィードバックを提供し、それによって、改善された視覚フィードバックをユーザに提供する。
いくつかの実施形態では、物理的環境に対するユーザの視点の第1の動きを検出した後、第1の動きが時間閾値を満たす(例えば、ユーザが少なくとも時間閾値の間移動する、又はユーザが移動して時間閾値の間第2の視点に留まった)という判定に従って、コンピュータシステムは、図7Hを参照して上述したように、三次元環境内の第1のユーザインタフェースオブジェクトをユーザの視点に対して同じポジション(例えば、ユーザの視点の動き前と同じポジション)に移動させる。ユーザが所定の時間量よりも長く物理的環境内を移動した(例えば、及び/又は所定の時間量にわたって三次元環境内の異なるポジションに留まった)後に、特定のユーザインタフェースオブジェクトを三次元環境内で移動しているものとして自動的に表示することは、ユーザが物理的環境内を移動する際にリアルタイム視覚フィードバックを提供し、それにより、改善された視覚フィードバックをユーザに提供する。
いくつかの実施形態では、コンピュータシステムは、三次元環境において第1のユーザインタフェースオブジェクトを再配置する(例えば、固定する)ためのユーザ入力を受信する。いくつかの実施形態では、三次元環境において第1のユーザインタフェースオブジェクトを再配置するための入力を受信することに応じて、コンピュータシステムは、例えば、図7Jを参照して上記で説明したように、入力に従って、三次元環境における個別のポジションに第1のユーザインタフェースオブジェクトを再配置する。いくつかの実施形態では、入力に従って第1のユーザインタフェースオブジェクトを三次元環境内の個別のポジションに再配置した後、コンピュータシステムは、ユーザの視点を変更するための入力を検出し、ユーザの視点を変更するための入力を検出したことに応じて、コンピュータシステムは、ユーザの視点を変更するための入力に従って、ユーザの視点を変更し、ユーザの現在の視点から三次元環境において第1のユーザインタフェースオブジェクトを表示することは、第1のユーザインタフェースオブジェクトが第1の所定のゾーン内に配置されているという判定に従って、物理的環境におけるユーザの視点のロケーションに対応する三次元環境における第1のアンカーポジションに対する第1の空間的関係を有する個別のポジションにおいて、第1のユーザインタフェースオブジェクトを表示する(例えば、第1のユーザインタフェースオブジェクトが第1の所定のゾーン内に位置する間、物理的環境に対するユーザの視点の動きを検出した後に、個別のポジションに第1のユーザインタフェースオブジェクトを表示する)ことと、第1のユーザインタフェースオブジェクトが第1の所定のゾーン(例えば、複数の所定のゾーンのうちの任意の所定のゾーン)内に配置されていないという判定に従って、物理的環境におけるユーザの身体のロケーションに対応しない三次元環境内の同じアンカーポジションに、第1のユーザインタフェースオブジェクトの表示を維持することと、を含む。例えば、図7C~図7Hを参照して上述したように、第1の所定のゾーンは、ユーザが物理的環境内で移動する際にユーザの視点に従うゾーンである。いくつかの実施形態では、第1の所定のゾーンは、遅延を伴ってユーザの視点に従う(例えば、第1の所定のゾーンは、ユーザの移動速度よりも遅い速度で移動する)。例えば、第1の所定のゾーンは、最初に、ユーザの視点が閾値量だけ(例えば、少なくとも閾値量だけ)移動するまで、及び/又はユーザの視点が閾値時間量の間(例えば、少なくとも閾値時間量の間)移動するまで、ユーザの視点と共に移動しない。いくつかの実施形態では、第1の所定のゾーンは、本明細書では遅延追従ゾーンと呼ばれる。ユーザが特定のユーザインタフェースオブジェクトをゾーンに固定することを可能にし、ゾーン内に配置されたユーザインタフェースオブジェクトは、ユーザが物理的環境の周りを移動するときであっても、三次元環境においてユーザに自動的に追従し、ゾーン内に配置されたユーザインタフェースオブジェクトを、そうでなければ、三次元環境内のユーザに自動的に追従しないように三次元環境に固定される、ゾーン外に配置されたユーザインタフェースオブジェクトと区別することにより、ユーザが物理的環境において移動するときにリアルタイムの視覚フィードバックを提供し、それによって、改善された視覚フィードバックをユーザに提供する。
いくつかの実施形態では、第1の所定のゾーンは、三次元環境内の複数の所定のゾーンから選択され、第1の所定のゾーンは、ユーザの視点のロケーションに対応する三次元環境内の第1のアンカーポジションに対する第1の空間的関係を有し、複数の所定のゾーンのうちの第2の所定のゾーンは、ユーザの視点のロケーションに対応する三次元環境内の第2のアンカーポジションに対する第2の空間的関係(例えば、第1の所定のゾーンの第1の空間的関係とは異なる)を有する。例えば、図7Jを参照して説明したように、ユーザは、ユーザインタフェース要素を複数の所定のゾーンのいずれかに再配置することが可能であり、各所定のゾーンは、ユーザの現在の視点に対して異なる相対空間配置を有する。いくつかの実施形態では、所定のゾーン内に配置されたユーザインタフェースオブジェクトは、ユーザの視点の動きに従う(例えば、遅延追従挙動を伴う)。いくつかの実施形態では、第1の所定のゾーンは、ユーザに対する三次元環境のユーザの現在のビュー内の第1のポジションに表示され、第1のポジションは、ユーザの移動の前後に維持され、第2の所定のゾーンは、ユーザに対する三次元環境のユーザの現在のビュー内の第2のポジションに表示され、第2のポジションは、ユーザの移動の前後に維持される。各ゾーンがユーザの現在のビューに対して異なる相対ポジションを有する、三次元環境内の複数のゾーンのいずれかの中に配置される特定のユーザインタフェースオブジェクトのアンカーを変更するオプションをユーザに提供することにより、ユーザが見るのに最も快適又は便利なポジションに特定のユーザインタフェースオブジェクトを配置することが容易になり、ユーザがユーザインタフェースオブジェクトをどこに配置するかを選択するとき、及びユーザが物理的環境内で移動するときにリアルタイムの視覚フィードバックを提供し、それによって、改善された視覚フィードバックをユーザに提供する。
いくつかの実施形態では、ユーザが第1のユーザインタフェースオブジェクトを再配置するためのユーザ入力を開始したことを検出したことに応じて、コンピュータシステムは、第1の所定のゾーンを表示し、第1のユーザインタフェースオブジェクトを第1の所定のゾーンに再配置するためのユーザ入力を検出している間、第1の所定のゾーンに対する視覚的指示の表示を維持する。いくつかの実施形態では、コンピュータシステムは、任意選択的に、第1のユーザインタフェースオブジェクトを再配置するためのユーザ入力をもはや検出しないことに応じて(例えば、ユーザ入力の終了に応じて)、第1の所定のゾーンについての視覚的指示の表示を停止する。いくつかの実施形態では、コンピュータシステムは、複数の所定のゾーンのうちの所定のゾーンの各々について視覚的指示を表示する。いくつかの実施形態では、コンピュータシステムは、第1のユーザインタフェースオブジェクトが遅延追従挙動を有する(例えば、第1のユーザインタフェースオブジェクトが遅延追従ゾーン内にある間、第1のユーザインタフェースオブジェクトがユーザの視点に追従する(例えば、遅延を伴って))ように、ユーザが第1のユーザインタフェースオブジェクトをどこに配置(例えば、ドラッグアンドドロップ、又はプロップ)できるかを知るように、遅延追従ゾーン(単数又は複数)の輪郭を提供する。例えば、図7Jを参照して説明されるように、コンピュータシステムは、任意選択的に、所定のゾーンの輪郭を提供する。各ゾーンがユーザの現在のビューに対して異なる相対ポジションを有する、三次元環境内の複数のゾーンの輪郭を自動的に表示することは、ユーザが特定のユーザインタフェースオブジェクトを固定するゾーンを選択することを容易にし、ユーザインタフェースオブジェクトがゾーン内に配置されるときにユーザが物理的環境内で移動するにつれてユーザインタフェースオブジェクトがユーザに追従し、ユーザが見るのに最も快適又は便利な三次元環境内のどこにユーザインタフェースオブジェクトを配置すべきかをユーザがより容易に決定することを可能にし、それによって改善された視覚フィードバックをユーザに提供する。
いくつかの実施形態では、第1のユーザインタフェースオブジェクトに関する注目基準は、視線基準を含む。例えば、コンピュータシステムは、1つ以上のカメラ及び/又は他のセンサを使用して、図7Cを参照して上述したように、ユーザが第1のユーザインタフェースオブジェクトを注視している(例えば、見ている及び/又は注目している)か否かを判定する。ユーザがユーザインタフェースオブジェクトを注視しているかどうかを検出することによってユーザが特定のユーザインタフェースオブジェクトに注目しているかどうかを自動的に判定し、ユーザがユーザインタフェースオブジェクトを注視しているときにユーザからの追加の入力を必要とせずにユーザインタフェースオブジェクトの表示を自動的に更新することは、ユーザが複雑なメニュー階層をナビゲートすることを必要とせずにユーザに追加の制御を提供し、それによって追加のユーザ入力を必要とせずに改善された視覚フィードバックをユーザに提供する。
いくつかの実施形態では、第1のユーザインタフェースオブジェクトに関する注目基準は、物理的環境におけるユーザの頭部のポジションについての基準を含む。例えば、ユーザの頭部が物理的環境内で(例えば、姿勢、向き、及び/又はポジションで)移動すると、コンピュータシステムは、図7Cを参照して上述したように、ユーザの頭部が第1のユーザインタフェースオブジェクトに対して特定の姿勢、向き、及び/又はポジションにあるかどうかを判定する。ユーザからの追加の入力を必要とせずに、ユーザの頭部が特定のポジションにあるかどうかを検出することによってユーザがあるユーザインタフェースオブジェクトに注目しているかどうかを自動的に判定し、ユーザの頭部が特定のポジションにあるときにユーザインタフェースオブジェクトの表示を自動的に更新することは、ユーザが複雑なメニュー階層をナビゲートすることを必要とせずにユーザに追加の制御を提供し、それによって、追加のユーザ入力を必要とせずに改善された視覚フィードバックをユーザに提供する。
一部の実施形態では、コンピュータシステムは、第1のユーザインタフェースオブジェクトの少なくとも一部に表示された第1のアフォーダンスに向けられたピンチ入力(例えば、互いに接触するための、又は互いから接触を断つための手の2本以上の指の動きを含むピンチ入力)と、それに続くピンチ入力を実行した手の動きとを検出(例えば、受信)し、手の動きに応じて、手の動きに従って第1のユーザインタフェースオブジェクトのサイズを変更する。例えば、ユーザは、図7Jを参照して説明したように、第1のユーザインタフェースオブジェクトをサイズ変更することができる。いくつかの実施形態では、ピンチ入力を実行した手の動きはドラッグジェスチャである(例えば、ピンチアンドドラッグジェスチャは片手で実行される)。例えば、ピンチジェスチャは、ユーザの手のポジションを第1のポジション(例えば、ドラッグの開始ポジション)から第2のポジション(例えば、ドラッグの終了ポジション)に変化させるドラッグ入力と併せて(例えば、その後に)、手の2本以上の指を互いに接触させ、又は互いから接触を断つ動きを含む。いくつかの実施形態では、ユーザは、ドラッグ入力を実行しながらピンチジェスチャを維持し、(例えば、第2のポジションにおいて)ドラッグジェスチャを終了するためにピンチジェスチャ(例えば、2本以上の指を開く)を解放する。例えば、ピンチ入力は、第1のアフォーダンスを選択し、ユーザは、選択されると、アフォーダンスを第1のユーザインタフェースオブジェクトの中央部分から離れるようにドラッグし(例えば、第1のユーザインタフェースオブジェクトのサイズを増加させるために)、及び/又はアフォーダンスを第1のユーザインタフェースオブジェクトの中央部分に向かってドラッグする(例えば、第1のユーザインタフェースオブジェクトのサイズを減少させるために)ことができる。一部の実施形態では、第1のアフォーダンスは、第1のユーザインタフェースオブジェクトの角に表示される(例えば、第1のアフォーダンスはサイズ変更アフォーダンスである)。一部の実施形態では、ユーザは、第1のアフォーダンスをピンチし(例えば、アフォーダンスを選択するために)、第1のアフォーダンスをピンチしている同じ手で、第1のユーザインタフェースオブジェクトの角を、三次元環境内の第1のポジションから第2のポジションにドラッグする。例えば、ユーザは、アフォーダンスを外向きにドラッグして第1のユーザインタフェースオブジェクトを拡大するか、又は第1のユーザインタフェースオブジェクトの角を内向きにドラッグして第1のユーザインタフェースオブジェクトのサイズを縮小する。いくつかの実施形態では、手の動きは、ユーザがピンチ入力を実行している2本以上の指の間の距離を変更することを含む。例えば、ユーザは、ユーザインタフェースオブジェクトのサイズを減少させるためにユーザの親指と人差し指とを互いに近づけ、ユーザインタフェースオブジェクトのサイズを増加させるためにピンチジェスチャを開く(例えば、2本の指(例えば、ユーザの親指と人差し指)の間の距離を増加させる)。別の例では、ユーザの手全体の動きは、ユーザの手の動きの方向に応じて、ユーザインタフェースオブジェクトのサイズを増加又は減少させる。一部の実施形態では、ピンチ入力は、第1のアフォーダンスに直接的に向けられる(例えば、ユーザが第1のアフォーダンスに対応するポジションでピンチ入力を実行する)か、又はピンチ入力は、第1のアフォーダンスに間接的に向けられる(例えば、ユーザが第1のアフォーダンスを注視しながらピンチ入力を実行し、ピンチ入力を実行している間のユーザの手のポジションは、第1のアフォーダンスに対応するポジションではない)。例えば、ユーザは、第1のアフォーダンス又はその付近でジェスチャを開始することにより、ユーザの入力を第1のアフォーダンスに向けることができる(例えば、第1のアフォーダンスの外縁部又は第1のアフォーダンスの中央部分から測定して、0.5cm、1cm、5cm、又は0~5cmの距離内)。いくつかの実施形態では、ユーザは更に、第1のアフォーダンスに注意を払う(例えば、第1のアフォーダンスを注視する)ことによって、ユーザの入力を第1のアフォーダンスに向けることが可能であり、第1のアフォーダンスに注目しながら、ユーザはジェスチャを開始する(例えば、コンピュータシステムによって検出可能な任意のポジションで)。例えば、ユーザが第1のアフォーダンスに注目している場合、ジェスチャは、第1のアフォーダンス又はその近くのポジションで開始される必要はない。ユーザインタフェースオブジェクトの角をつまむこと、又はユーザインタフェースオブジェクトを注視している間にピンチ入力を実行することなどによって、ユーザがピンチ入力を実行することを可能にし、ユーザの同じ手でユーザの手をユーザインタフェースオブジェクトに対してドラッグして(例えば、ピンチ入力を実行し続けながら)オブジェクトのサイズを拡大又は縮小することによって、ユーザインタフェースオブジェクトのサイズを自動的に更新することは、ユーザが複雑なメニュー階層をナビゲートすることを必要とせずにユーザに追加の制御を提供し、ユーザインタフェースオブジェクトを選択し(例えば、ピンチ入力を用いて)、ユーザの手を三次元環境内の異なるポジションにドラッグしてサイズを適宜変更することによって、ユーザがユーザインタフェースオブジェクトを直観的にサイズ変更することを可能にし、それによって改善された視覚フィードバックをユーザに提供する。
いくつかの実施形態では、コンピュータシステムは、第1の手によるピンチ入力と、第1のユーザインタフェースオブジェクトに向けられた第2の手によるピンチ入力と、それに続く、第1の手と第2の手との間の距離の変化とを受信する(例えば、検出する)。いくつかの実施形態では、第1の手と第2の手との間の距離の変化に応じて、コンピュータシステムは、第1のユーザインタフェースオブジェクトのサイズを、第1の手と第2の手との間の距離の変化に従って変更する。例えば、ユーザは、両手ジェスチャである入力(例えば、ピンチアンドドラッグ入力)を実行する。ユーザは、ユーザの第1の手でユーザインタフェースオブジェクトをピンチし、(例えば、ユーザの第1の手でピンチ入力を維持しながら)ユーザは、ユーザの第2の手でピンチ入力を実行し、ユーザインタフェースオブジェクトのサイズを減少させるためにユーザの第2の手をユーザの第1の手に近づけ(例えば、ドラッグ入力を使用して)、ユーザインタフェースオブジェクトのサイズを増加させるためにユーザの第2の手をユーザの第1の手から遠ざける。一部の実施形態では、ピンチアンドドラッグ入力はまた、第1のユーザインタフェースオブジェクトを三次元環境内で移動させる(例えば、図7Jを参照して説明したように、第1のユーザインタフェースオブジェクトが異なる所定のゾーンにドラッグされるとき)。一部の実施形態では、第1の手で実行されるピンチ入力は、第1のユーザインタフェースオブジェクトに直接向けられる(例えば、ユーザは、第1のユーザインタフェースオブジェクトに対応するポジションでピンチ入力を実行する)か、又はピンチ入力は、第1のユーザインタフェースオブジェクトに間接的に向けられる(例えば、ユーザは、第1のユーザインタフェースオブジェクトを注視しながらピンチ入力を実行し、ピンチ入力を実行している間のユーザの手のポジションは、第1のユーザインタフェースオブジェクトに対応するポジションではない)。例えば、ユーザは、第1のユーザインタフェースオブジェクト又はその付近でジェスチャを開始することにより、ユーザの入力を第1のユーザインタフェースオブジェクトに向けることができる(例えば、第1のユーザインタフェースオブジェクトの外縁部又は第1のユーザインタフェースオブジェクトの中央部分から測定して、0.5cm、1cm、5cm、又は0~5cmの距離内)。いくつかの実施形態では、ユーザは更に、第1のユーザインタフェースオブジェクトに注意を払う(例えば、第1のユーザインタフェースオブジェクトを注視する)ことによって、ユーザの入力を第1のユーザインタフェースオブジェクトに向けることが可能であり、第1のユーザインタフェースオブジェクトに注目しながら、ユーザはジェスチャを開始する(例えば、コンピュータシステムによって検出可能な任意のポジションで)。例えば、ユーザが第1のユーザインタフェースオブジェクトに注目している場合、ジェスチャは、第1のユーザインタフェースオブジェクト又はその近くのポジションで開始される必要はない。いくつかの実施形態では、第2の手によるピンチ入力も、直接的又は間接的に検出することができる(例えば、ピンチ入力は、第1のユーザインタフェースオブジェクト又はその付近のポジションで開始されるか、又はユーザが第1のユーザインタフェースオブジェクトに注目している間に任意のポジションで開始される)。いくつかの実施形態では、第1の手によるピンチ入力が検出された後、第1の手によるピンチ入力が維持されている間、第2の手によるピンチ入力が任意のポジションで検出される。例えば、第1のユーザインタフェースオブジェクトが選択されている間(例えば、第1の手によるピンチ入力を使用して)、第2の手によるピンチ入力は、任意のポジションで検出される(例えば、ユーザが第1のユーザインタフェースオブジェクトに注目しているか否かに関わらず)。一部の実施形態では、ユーザは、(例えば、ジェスチャの組み合わせを使用して)三次元環境において第1のユーザインタフェースオブジェクトのサイズ変更及び再配置(例えば、移動)を同時に行う。例えば、ユーザは、(例えば、ユーザインタフェースオブジェクトを三次元環境内の別のポジションにドラッグすることによって)ユーザインタフェースオブジェクトを再配置するために(例えば、ユーザの第2の手で)ドラッグ入力を提供しながら、第1のユーザインタフェースオブジェクトをサイズ変更するために、上述のピンチ入力を提供する。ユーザが両手を使用することを可能にし、各手がユーザのサイズを自動的に更新し、各手がユーザインタフェースオブジェクトの角などの部分を選択し(例えば、つまむ)、ユーザインタフェースオブジェクトの部分が選択されている間のユーザの両手間の距離の変化に基づいてユーザインタフェースオブジェクトをサイズ変更することは、ユーザがユーザインタフェースオブジェクトを直観的にサイズ変更して、ユーザの手の間の距離を増加させることによってサイズを増加させ、又はユーザの手の間の距離を減少させることによってサイズを減少させ、それによって改善された視覚フィードバックをユーザに提供することができるように、ユーザが複雑なメニュー階層をナビゲートすることを必要とせずに、ユーザに追加の制御を提供する。
いくつかの実施形態では、第1のユーザインタフェースオブジェクトを、三次元環境内の1つ以上の他のオブジェクトに対して強調抑制することは、第1のユーザインタフェースオブジェクトを、三次元環境内の1つ以上の他の仮想オブジェクトに対して強調抑制することを含む。例えば、図7Dを参照して説明したように、アプリケーション(例えば、アプリケーションウィンドウ、アプリケーションオブジェクト)、ユーザインタフェースオブジェクト(例えば、アフォーダンス及び/又はコントロール)、仮想環境(例えば、没入型体験)などを含む1つ以上の他の仮想オブジェクトは、視覚的に強調抑制されない(例えば、変更されないままである)が、第1のユーザインタフェースオブジェクトは視覚的に強調抑制される。ユーザが特定のユーザインタフェースオブジェクトに注目していないときに、他の表示された仮想コンテンツに対して特定のユーザインタフェースオブジェクトを視覚的に強調抑制することによって特定のユーザインタフェースオブジェクトの表示を自動的に更新することは、ユーザが三次元環境内の異なる仮想コンテンツに注目しているときにリアルタイムの視覚フィードバックを提供し、それによって、改善された視覚フィードバックをユーザに提供する。
いくつかの実施形態では、第1のユーザインタフェースオブジェクトを、三次元環境内の1つ以上の他のオブジェクトに対して強調抑制することは、第1のユーザインタフェースオブジェクトを、物理的環境内の1つ以上の物理的オブジェクトの表現に対して強調抑制することを含む。例えば、図7Dを参照して説明したように、物理的環境内の1つ以上の物理的オブジェクトは、視覚的に強調抑制されることなくパススルーコンテンツ(例えば、物理的オブジェクトの表現7014’)として三次元環境内に表示される一方で、第1のユーザインタフェースオブジェクト7104-2は視覚的に強調抑制される。ユーザが特定のユーザインタフェースオブジェクトに注目していないときに、三次元環境内に表示される物理的環境からの他の現実世界コンテンツに対して特定のユーザインタフェースオブジェクトを視覚的に強調抑制することによって特定のユーザインタフェースオブジェクトの表示を自動的に更新することは、ユーザが三次元環境内に表示される現実及び/又は仮想コンテンツに注目しているときにリアルタイム視覚フィードバックを提供し、それによって、改善された視覚フィードバックをユーザに提供する。
いくつかの実施形態では、第1のユーザインタフェースオブジェクトは、複数の選択可能なユーザインタフェースオブジェクトを含む。例えば、図7Iを参照して説明したように、ユーザは、ユーザインタフェースオブジェクト7104-7内に表示された1つ以上の選択可能なユーザインタフェースオブジェクトと相互作用することが可能である。一部の実施形態では、選択可能なユーザインタフェースオブジェクトは、注視及び/又はエアジェスチャを使用して選択可能なアフォーダンスである。一部の実施形態では、第1のユーザインタフェースオブジェクトは、複数の選択可能オブジェクトを有するパネル(例えば、メニュー)を含む。いくつかの実施形態では、複数の選択可能ユーザインタフェースオブジェクトからの第1の選択可能ユーザインタフェースオブジェクトは、アプリケーションアイコンであり、ユーザがアプリケーションアイコンを選択することに応じて、コンピュータシステムは、アプリケーションアイコンに対応するアプリケーションのためのアプリケーションウィンドウを開く(例えば、起動する)。いくつかの実施形態では、複数の選択可能なユーザインタフェースオブジェクトからの第1の選択可能なユーザインタフェースオブジェクトは、三次元環境の設定(例えば、音量レベル、輝度レベル、及び/又は没入レベル)を調整するためのコントロールであり、ユーザが三次元環境の設定を調整するためのコントロールを選択することに応じて、コンピュータシステムは、ユーザ選択に従って設定を調整する。ユーザが複数のコントロールに向けられたジェスチャを注視及び/又は実行することによって選択することができる複数のコントロールを自動的に表示することは、ユーザが複雑なメニュー階層をナビゲートすることを必要とせずに、表示されたユーザインタフェースオブジェクト内でユーザによって容易にアクセスされる(例えば、ユーザが物理的環境内で移動するときでもユーザに追従する)追加のコントロールをユーザに提供し、それによって、追加のユーザ入力を必要とせずに改善された視覚フィードバックをユーザに提供する。
いくつかの実施形態では、コンピュータシステムは、三次元環境の没入レベルを制御するための1つ以上のユーザインタフェースオブジェクトを表示し、三次元環境の没入レベルを増加させるための1つ以上のユーザインタフェースオブジェクトのうちの第1のユーザインタフェースオブジェクトに向けられたユーザ入力に応じて、三次元環境に追加の仮想コンテンツを表示する(例えば、任意選択的に、パススルーコンテンツの表示を停止する)。一部の実施形態では、三次元環境の没入レベルを減少させるための1つ以上のユーザインタフェースオブジェクトのうちの第2のユーザインタフェースオブジェクトに向けられたユーザ入力の検出に応じて、コンピュータシステムは、物理的環境に対応する追加コンテンツを表示する(例えば、任意選択的に、仮想コンテンツ(例えば、1つ以上の仮想オブジェクト)の表示を停止する)。例えば、ユーザは、物理的環境のどれだけが三次元環境においてパススルーコンテンツとして表示されるかを制御することが可能である(例えば、完全没入型体験の間、物理的環境のいずれも表示されない(例えば、三次元環境において表される))。いくつかの実施形態では、図7Iを参照して説明される1つ以上のユーザインタフェースオブジェクトは、三次元環境において没入型体験を再生及び/又は一時停止するためのコントロールを含む。いくつかの実施形態では、1つ以上のユーザインタフェースオブジェクトは、ユーザが物理的環境を動き回る際に1つ以上のユーザインタフェースオブジェクトがユーザに追従するように、第1のユーザインタフェースオブジェクト内に(例えば、遅延追従ゾーン内に)表示される。ユーザが物理的環境に対して三次元環境の没入型体験を制御することを可能にする複数のコントロールを自動的に表示することは、ユーザが複雑なメニュー階層をナビゲートすることを必要とせずにユーザのための追加のコントロールを提供し、それにより、ユーザは、物理的環境からのどれだけのコンテンツが三次元環境において表示されるかを容易に制御することができ、ユーザが三次元環境における没入レベルを変更することを要求するときにリアルタイムの視覚フィードバックをユーザに提供し、それにより、追加のユーザ入力を必要とせずに改善された視覚フィードバックをユーザに提供する。
いくつかの実施形態では、三次元環境内の1つ以上の他のオブジェクトに対して第1のユーザインタフェースオブジェクトを強調抑制する量は、ユーザの検出された視線と、第1のユーザインタフェースオブジェクトとの間の角度に(例えば、少なくとも部分的に)基づく。例えば、角度は、ユーザの視点がユーザの真正面にあるときに「0」として定義され、ユーザの視点が第1のユーザインタフェースオブジェクトに対して(左、右、上、又は下に)移動するにつれて、角度は、ユーザの視点が第1のユーザインタフェースオブジェクトから離れるにつれて増加する。例えば、第1のユーザインタフェースオブジェクトは、ユーザの視線が第1のユーザインタフェースオブジェクトから離れて追跡されるにつれて、よりフェードし/ぼける。一部の実施形態では、第1のユーザインタフェースオブジェクトのデエンファシスの量は、ユーザの視点と第1のユーザインタフェースオブジェクトとの間の角度の変化の量に比例する(例えば、線形に、又は他の方法で)(例えば、ユーザの視点が角度を増加させるにつれて、デエンファシスが増加する)。ユーザの現在のビューとユーザインタフェースオブジェクトとの間の知覚される角度に基づいて量を変化させることによって特定のユーザインタフェースオブジェクトを視覚的に強調抑制することによって特定のユーザインタフェースオブジェクトの表示を自動的に更新することは、ユーザの現在のビュー角度がユーザインタフェースオブジェクトから遠く離れるにつれてユーザインタフェースオブジェクトがより焦点が合っていないように見え、三次元環境のユーザの現在のビューが変化するにつれてリアルタイム視覚フィードバックを提供し、ユーザインタフェースオブジェクトに対するユーザの動きのより大きな認識をユーザに提供し、それによって改善された視覚フィードバックをユーザに提供する。
いくつかの実施形態では、三次元環境内の1つ以上の他のオブジェクトに対して第1のユーザインタフェースオブジェクトを強調抑制する量は、ユーザの視点の第1の動きの速度に(例えば、少なくとも部分的に)基づく。例えば、ユーザの視点が速く移動するほど(例えば、頭を素早く回すほど)、第1のユーザインタフェースオブジェクトのデエンファシスが大きくなる。一部の実施形態では、第1のユーザインタフェースオブジェクトのデエンファシスの量は、ユーザの視点の動き速度及び/又は移動方向に比例(例えば、線形又は非線形)する(例えば、図7D~図7Gを参照して上述したように、より速い移動はより多くのデエンファシスを引き起こし、より遅い移動はより少ないデエンファシスを引き起こす)。ユーザが物理的環境内でどれだけ速く移動しているかに基づいて特定のユーザインタフェースオブジェクトを視覚的に強調抑制することによって特定のユーザインタフェースオブジェクトの表示を自動的に更新して、ユーザが物理的環境内で速く移動すればするほどオブジェクトがよりフェードして見えるようにすると、ユーザが三次元環境内で異なる速度で移動するときにリアルタイムの視覚フィードバックが提供され、それによって改善された視覚フィードバックがユーザに提供される。
いくつかの実施形態では、第1のユーザインタフェースオブジェクトは、ユーザの動きに従って三次元環境内で動く。例えば、第1のユーザインタフェースオブジェクトは、図7C及び図7Hを参照して説明されるように、ユーザが移動するときにユーザの視点に対して同じポジションに現れるように、ユーザの視点に対してあるポジションに固定される。ユーザが物理的環境内とユーザの視点との間の同じ相対的空間的関係を維持しながら、ユーザが物理的環境内を移動する間にユーザの現在の視点に従うように三次元環境内で特定のユーザインタフェースオブジェクトを自動的に移動させることは、ユーザが物理的環境内を移動する際にリアルタイム視覚フィードバックを提供し、ユーザが物理的環境内を移動する際であってもユーザインタフェースオブジェクトを見てユーザインタフェースオブジェクトと相互作用することができるようにユーザインタフェースオブジェクトを都合のよいポジションに表示し、それによって改善された視覚フィードバックをユーザに提供する。
いくつかの実施形態では、物理的環境に対するユーザの視点の第1の動きの直前及び直後に、三次元環境における第1のユーザインタフェースオブジェクトの個別の特徴的なポジションは、物理的環境におけるユーザの視点のロケーションに対応する三次元環境における第1のアンカーポジションに対して第1の空間的関係を有する。例えば、図7Cを参照して説明したように、ユーザインタフェースオブジェクト7104-1は、(図7E~図7Gにおいて)ユーザが移動する前に(例えば、ユーザの視点に対して)個別の特徴的なポジションに表示され、(例えば、ユーザが物理的環境において移動を停止した後に)図7Hのユーザインタフェースオブジェクト7104-6と同じ個別の特徴的なポジションに再表示される。ユーザが物理的環境内で移動してユーザの視点を変更しても、三次元環境内の特定のユーザインタフェースオブジェクトをユーザの現在の視点に対して同じポジションに自動的に維持することは、ユーザが物理的環境内で移動してもユーザがユーザインタフェースオブジェクトを見て相互作用することができるように、ユーザが物理的環境内で移動してもリアルタイムの視覚フィードバックを提供し、それによって、改善された視覚フィードバックをユーザに提供する。
図8における動作について説明された特定の順序は単なる例であり、説明された順序は、動作を実行することができる唯一の順序であることを示すことを意図するものではないことを理解されたい。当業者であれば、本明細書に記載される動作を再順序付けるための様々な方法を認識するであろう。また、本明細書で説明される他の方法(例えば、方法900)に関して本明細書で説明される他のプロセスの詳細もまた、図8に関して上述された方法800と類似の方式で適用可能であることに留意されたい。例えば、方法900を参照して上述したジェスチャ、入力、物理的オブジェクト、ユーザインタフェースオブジェクト、移動、基準、三次元環境、表示生成コンポーネント、物理的オブジェクトの表現、仮想オブジェクト、及び/又はアニメーションは、任意選択的に、本明細書に記載される他の方法(例えば、方法800)を参照して本明細書に記載されるジェスチャ、入力、物理的オブジェクト、ユーザインタフェースオブジェクト、移動、基準、三次元環境、表示生成コンポーネント、物理的オブジェクトの表現、仮想オブジェクト、及び/又はアニメーションの特性のうちの1つ以上を有する。簡潔にするために、それらの詳細はここでは繰り返さない。
図9は、いくつかの実施形態による、ユーザが三次元環境のユーザの現在のビューを変更するにつれて、ユーザに追従するように三次元環境におけるユーザインタフェース要素の表示を更新する方法900のフローチャートである。
いくつかの実施形態では、方法900は、第1の表示生成コンポーネント(例えば、図1、図3、及び図4の表示生成コンポーネント120)(例えば、ヘッドアップディスプレイ、ディスプレイ、タッチスクリーン、及び/又はプロジェクタ)と、1つ以上のセンサなどの1つ以上の入力デバイス(例えば、ユーザの手に置いて下方を向くカメラ(例えば、カラーセンサ、赤外線センサ、及び他の深度感知カメラ)又はユーザの頭部から前方に向くカメラ)とを含む、コンピュータシステム(例えば、図1のコンピュータシステム101)で実行される。いくつかの実施形態では、方法900は、非一時的コンピュータ可読記憶媒体に記憶され、コンピュータシステム101の1つ以上のプロセッサ202(例えば、図1Aの制御ユニット110)など、コンピュータシステムの1つ以上のプロセッサによって実行される命令によって統御される。方法900のいくつかの動作は、任意選択的に、組み合わされ、かつ/又はいくつかの動作の順序は、任意選択的に、変更される。
いくつかの実施形態では、コンピュータシステムは、第1の表示生成コンポーネント(例えば、第1の表示生成コンポーネントは、ヘッドアップディスプレイ、ヘッドマウントディスプレイ(HMD)、ディスプレイ、タッチスクリーン、及び/又はプロジェクタである)及び1つ以上の入力デバイス(例えば、カメラ、コントローラ、タッチ感知面、ジョイスティック、ボタン、手袋、時計、モーションセンサ、及び/又は向きセンサ)と通信する。いくつかの実施形態では、第1の表示生成コンポーネントは、図7A~図7Jに関して説明された第1の表示生成コンポーネント7100である。いくつかの実施形態では、コンピュータシステムは、第1の表示生成コンポーネントと同じハウジングに囲まれた1つ以上のプロセッサ及びメモリと、1つ以上の入力デバイスのうちの少なくともいくつかと、を有する統合デバイスである。いくつかの実施形態では、コンピュータシステムは、第1の表示生成コンポーネント及び/又は1つ以上の入力デバイスとは別個の1つ以上のプロセッサ及びメモリを含むコンピューティングコンポーネント(例えば、サーバ、スマートフォン又はタブレットデバイスなどのモバイル電子デバイス、ウォッチ、リストバンド、又はイヤフォンなどのウェアラブルデバイス、デスクトップコンピュータ、及び/又はラップトップコンピュータ)を含む。いくつかの実施形態では、第1の表示生成コンポーネント及び1つ以上の入力デバイスは、同じハウジング内に統合され、かつ同じハウジングに囲まれている。方法900の特徴の多くは、いくつかの実施形態に従って、図7A~7Jに関して説明される。
方法900は、三次元環境内にユーザインタフェース要素を表示することに関し、ユーザインタフェース要素の表示は、ユーザが三次元環境のユーザの現在のビューを変更するにつれて(例えば、物理的環境を動き回ることによって)、ユーザに追従するように更新される。ユーザインタフェース要素は、最初は、ユーザのビューが変化しても、ユーザのビューが閾値量を超えて変化するまで移動しない。ユーザのビューが閾値量を超えて変化した後、ユーザインタフェース要素はユーザに追従する(例えば、ユーザの動きよりも遅い動きの速度で、ユーザを追従するのが遅れる)。ユーザの現在の視点が物理的環境内で移動しているユーザから変化するにつれてユーザに追従するようにユーザインタフェースオブジェクトの表示ロケーションを自動的に変更することは、ユーザが物理的環境内で移動するにつれてリアルタイム視覚フィードバックを提供する。改善された視覚的フィードバックをユーザに提供することにより、システムの操作性を向上させ、(例えば、システムを操作する/システムと相互作用するときに適切な入力を提供するようにユーザを支援し、ユーザの誤りを削減することによって)ユーザ-システムインタフェースをより効率的にし、加えて、ユーザがシステムをより迅速かつ効率的に使用できるようにすることによって、電力使用量を削減し、システムのバッテリ寿命を改善する。
コンピュータシステムは、第1の表示生成コンポーネントを介して、三次元環境の第1のビュー内の第1のユーザインタフェースオブジェクトを、三次元環境内の第1のポジション、及びユーザの個別の部分に対する(例えば、三次元環境のユーザの現在の視点に対する)第1の空間配置で表示する(902)。例えば、図7Cを参照して説明したように、ユーザインタフェースオブジェクト7104-1は、物理的環境におけるユーザの現在ポジションに対する第1の空間配置で最初に表示される。
第1のユーザインタフェースオブジェクトを表示している間に、コンピュータシステムは、1つ以上の入力デバイスを介して、物理的環境における第1のロケーションから第2のロケーションへのユーザの視点の動きを検出する(904)。例えば、ユーザのロケーションは、任意選択的に、物理的環境におけるユーザの三次元ポジション(例えば、座標)に関連する情報、並びに物理的環境におけるユーザの姿勢及び/又は向きに関連する情報を含む。一部の実施形態では、ユーザの視点の動きを検出することは、物理的環境内の胴体の動きを検出することを含む(例えば、第1のユーザインタフェースオブジェクトは、ユーザの身体に対して同じ一般的なポジションに維持される)。例えば、図7E-7Gを参照して説明されるように、ユーザは、物理的環境内で移動し、それは、三次元環境のユーザの現在のビューを変化させる。
第1のロケーションから第2のロケーションへのユーザの視点の動きを検出したことに応じて(906)、第1のロケーションから第2のロケーションへのユーザの視点の動きが移動の閾値量(例えば、ユーザの角度(向き)の変化の閾値量及び/又は距離の閾値量)を満たさないという判定に従って、コンピュータシステムは、(例えば、第1のユーザインタフェースがもはやユーザの個別の部分に対する第1の空間配置を有していなくても)第1のユーザインタフェースオブジェクトの表示を三次元環境内の第1のポジションに維持する(908)。例えば、図7Eに示すように、ユーザが物理的環境内で最初に移動するとき(例えば、動きの閾値量を満たさない)、ユーザインタフェースオブジェクト7104-3は、三次元環境内の同じポジションに固定(例えば、ロック)されたままである。
第1のロケーションから第2のロケーションへのユーザの視点の動きの検出に応じて(906)、第1のロケーションから第2のロケーションへのユーザの視点の動きが動きの閾値量を満たすとの判定に従って(910)、コンピュータシステムは、第1のユーザインタフェースオブジェクトを三次元環境内の第1のポジションに表示することを停止し(912)、第1のユーザインタフェースオブジェクトを、三次元環境内の第2のポジションであって、三次元環境内の第2のポジションは、ユーザの個別の部分に対する第1の空間配置を有する、三次元環境内の第2のポジションに表示する(914)。例えば、ユーザインタフェースオブジェクトのポジションは、三次元環境内で変化する(例えば、ユーザインタフェースオブジェクトは、三次元環境内のポジションに固定されない)が、ユーザが少なくとも閾値量移動した後、ユーザに対して同じ相対ポジションに留まる。例えば、図7C及び図7Hを参照して説明されるように、図7Hにおいて動きの閾値量が満たされた後、ユーザに対する第1のユーザインタフェースオブジェクト(例えば、図7Cに示される)のデフォルトポジションが復元される。
いくつかの実施形態では、三次元環境内の第1のポジションに第1のユーザインタフェースオブジェクトの表示を維持している間(例えば、第1のポジションは三次元環境内の固定ポジションである)、コンピュータシステムは、ユーザの視点の動きが動きの閾値量を満たすことを検出する。いくつかの実施形態では、ユーザの視点の動きが動きの閾値量を満たすことに応じて、コンピュータシステムは、三次元環境において第1のユーザインタフェースオブジェクトを第1のポジションから第2のポジションに移動させる(例えば、その移動をアニメーション化する)。例えば、図7Dを参照して説明されるように、最初に、ユーザは、動きの閾値量未満だけ移動し、ユーザインタフェースオブジェクトは、ユーザが動きの閾値量を満たす前に、物理的環境において固定された同じ第1のポジションに維持される(例えば、図7Hに示されるように)。次いで(例えば、動きの量が動きの閾値量を満たすという判定に従って)、コンピュータシステムは、ユーザインタフェースオブジェクトを三次元環境内の第2のポジションに移動させる。ユーザが閾値量を超えて移動した後にユーザと共に移動するユーザインタフェースオブジェクトを表示する前に、ユーザが物理的環境を動き回っても、三次元環境に対して最初にロックされたポジションにユーザインタフェースオブジェクトを自動的に表示することは、ユーザが物理的環境を動き回っても、ユーザインタフェースオブジェクトがユーザから閾値距離未満離れて維持されるようにリアルタイム視覚フィードバックを提供し(例えば、ユーザがユーザインタフェースオブジェクトの初期ポジションから少なくとも閾値量だけ離れて移動した後、及び/又はユーザの視点が閾値量だけ変化した後、ユーザインタフェースオブジェクトがユーザに追従するため)、それにより、改善された視覚フィードバックをユーザに提供する。
いくつかの実施形態では、第1のユーザインタフェースオブジェクトを、三次元環境内の第2のポジションに表示している間に、コンピュータシステムは、1つ以上の入力デバイスを介して、物理的環境内の第2のロケーションから第3のロケーションへのユーザの視点の動きを検出する。いくつかの実施形態では、第2のロケーションから第3のロケーションへのユーザの視点の動きを検出したことに応じて、第2のロケーションから第3のロケーションへのユーザの視点の動きが移動の第2の閾値量(例えば、第1のロケーションから第2のロケーションへの移動と同じ及び/又は異なる動きの閾値量)を満たさないという判定に従って、コンピュータシステムは、(例えば、第1のユーザインタフェースがもはやユーザの個別の部分に対する第1の空間配置を有していなくても)三次元環境内の第2のポジションに第1のユーザインタフェースオブジェクトの表示を維持する。いくつかの実施形態では、第2のロケーションから第3のロケーションへのユーザの視点の動きが第2の動きの閾値量を満たすとの判定に従って、コンピュータシステムは、第1のユーザインタフェースオブジェクトを三次元環境内の第2のポジションに表示することを停止し、第1のユーザインタフェースオブジェクトを三次元環境内の第3のポジションであって、三次元環境内の第3のポジションは、ユーザ(例えば、第3のロケーション)の個別の部分(例えば、第3のロケーション)に対する第1の空間配置を有する、三次元環境内の第3のポジションに表示する。例えば、ユーザインタフェースオブジェクトは、ユーザが物理的環境内でその後移動する(例えば、連続的に又は散発的に移動し続ける)場合であっても、図7D~図7Hを参照して説明した遅延追従挙動を有し続ける。ユーザの現在の視点が物理的環境内で移動しているユーザに従って、変化するにつれてユーザに追従するようにユーザインタフェースオブジェクトの表示ロケーションを自動的に変更することは、ユーザが物理的環境内で移動するにつれてリアルタイム視覚フィードバックを提供する。
いくつかの実施形態では、第1のユーザインタフェースオブジェクトを三次元環境内で第1のポジションから第2のポジションに移動させる間、コンピュータシステムは、第1のユーザインタフェースオブジェクトを、三次元環境内の1つ以上の他のオブジェクトに対して視覚的に強調抑制する。例えば、図7E~図7Gに示すように、ユーザが移動している間、ユーザインタフェースオブジェクト7104-3~7104-5は、三次元環境において視覚的に強調抑制される。ユーザが物理的環境を動き回っている間に、他の表示されたコンテンツに対して特定のユーザインタフェースオブジェクトを視覚的に強調抑制することによって特定のユーザインタフェースオブジェクトの表示を自動的に更新することは、ユーザが三次元環境内を動き回っているときにリアルタイムの視覚フィードバックを提供し、ユーザが動いている(かつユーザインタフェースオブジェクトと相互作用していない)間にユーザインタフェースオブジェクト目立たなくすることによってユーザに対する視覚的負荷の量(例えば、ユーザの注目散漫のレベル)を低減し、それによって改善された視覚フィードバックをユーザに提供する。
いくつかの実施形態では、第1のユーザインタフェースオブジェクトを視覚的に強調抑制することは、図7D~図7Eを参照して上述したように、不透明度が低減された第1のユーザインタフェースオブジェクトを表示することを含む。例えば、第1のユーザインタフェースオブジェクトが視覚的に強調抑制されている間(例えば、ユーザが移動している間)、第1のユーザインタフェースオブジェクトは、三次元環境に表示された他のオブジェクトに対してより半透明に見える(例えば、フェードする)。ユーザが物理的環境を動き回っている間に、他の表示されたコンテンツに対する特定のユーザインタフェースオブジェクトの不透明度を低減することによって特定のユーザインタフェースオブジェクトの表示を自動的に更新することは、ユーザが三次元環境内を動き回っているときにリアルタイム視覚フィードバックを提供し、ユーザが動いている(例えば、ユーザインタフェースオブジェクトと相互作用していない)間に、目立たないようにユーザインタフェースオブジェクトを表示することによってユーザに対する視覚負荷の量(例えば、ユーザの注目散漫のレベル)を低減し、それによって、改善された視覚フィードバックをユーザに提供する。
いくつかの実施形態では、第1のユーザインタフェースオブジェクトを視覚的に強調抑制することは、図7D~図7Eを参照して上述したように、ぼやけた視覚効果で第1のユーザインタフェースオブジェクトを表示することを含む。例えば、第1のユーザインタフェースオブジェクトは、(例えば、ユーザが移動している間)三次元環境に表示される他のオブジェクトに対してぼやけて見える。ユーザが物理的環境を動き回っている間に、他の表示されたコンテンツに対する特定のユーザインタフェースオブジェクトをぼかすことによって特定のユーザインタフェースオブジェクトの表示を自動的に更新することは、ユーザが三次元環境内を動き回っているときにリアルタイム視覚フィードバックを提供し、ユーザが動いている(例えば、ユーザインタフェースオブジェクトと相互作用していない)間に強調抑制したユーザインタフェースオブジェクトを表示することによってユーザに対する視覚負荷の量(例えば、ユーザの注目散漫のレベル)を低減し、それによって、改善された視覚フィードバックをユーザに提供する。
いくつかの実施形態では、ユーザが第1のユーザインタフェースオブジェクトに関する注目基準を満たさないという判定に従って、コンピュータシステムは、図7Dを参照して説明したように、三次元環境内の1つ以上の他のオブジェクトに対して第1のユーザインタフェースオブジェクトを視覚的に強調抑制する。ユーザが特定のユーザインタフェースオブジェクトに注目していないときに、他の表示されたコンテンツに対して特定のユーザインタフェースオブジェクトを視覚的に強調抑制することによって特定のユーザインタフェースオブジェクトの表示を自動的に更新することは、ユーザが三次元環境内の異なる仮想コンテンツに注目しているときにリアルタイム視覚フィードバックを提供し、ユーザがユーザインタフェースオブジェクトに注目していない間に他のコンテンツに対して目立たないようにユーザインタフェースオブジェクトを表示することによってユーザに対する視覚負荷の量(例えば、又は注目散漫のレベル)を低減し、それによって、改善された視覚フィードバックをユーザに提供する。
いくつかの実施形態では、第1のユーザインタフェースオブジェクトに関する注目基準は、図7Dを参照して上述したように、視線基準を含む。例えば、ユーザが少なくとも閾値時間量にわたって第1のユーザインタフェースオブジェクトを注視した(例えば、見た)という判定に従って、ユーザは視線基準を満たす。ユーザがユーザインタフェースオブジェクトを注視しているかどうかを検出することによってユーザが特定のユーザインタフェースオブジェクトに注目しているかどうかを自動的に判定し、ユーザがユーザインタフェースオブジェクトを注視しているときにユーザからの追加の入力を必要とせずにユーザインタフェースオブジェクトの表示を自動的に更新することは、ユーザが複雑なメニュー階層をナビゲートすることを必要とせずにユーザに追加の制御を提供し、それによって追加のユーザ入力を必要とせずに改善された視覚フィードバックをユーザに提供する。
いくつかの実施形態では、第1のユーザインタフェースオブジェクトに関する注目基準は、図7Dを参照して上述したように、物理的環境におけるユーザの頭部のポジションに関する基準を含む。例えば、ユーザの頭部のポジションに関する基準は、ユーザの現在の頭部ポジションが所定の頭部ポジションと一致するという判定、及び/又はユーザの頭部ポジションが少なくとも閾値時間量の間所定の頭部ポジションに留まっているという判定に従って満たされる。ユーザからの追加の入力を必要とせずに、ユーザの頭部が特定のポジションにあるかどうかを検出することによってユーザがあるユーザインタフェースオブジェクトに注目しているかどうかを自動的に判定し、ユーザの頭部が特定のポジションにあるときにユーザインタフェースオブジェクトの表示を自動的に更新することは、ユーザが複雑なメニュー階層をナビゲートすることを必要とせずにユーザに追加の制御を提供し、それによって、追加のユーザ入力を必要とせずに改善された視覚フィードバックをユーザに提供する。
いくつかの実施形態では、第1のユーザインタフェースオブジェクトの視覚的デエンファシスの量は、ユーザの視点の動きの速度に(例えば、少なくとも部分的に)基づく。例えば、第1のユーザインタフェースオブジェクトは、ユーザが物理的環境内でより速く移動するにつれて、フェードするように見え(例えば、低減された不透明度で表示される)、及び/又はよりぼやけて見える。いくつかの実施形態では、視覚的デエンファシスは段階的であり(例えば、第1のユーザインタフェースオブジェクトは、ある期間にわたってよりフェードして見える)、その結果、ユーザがより長い期間にわたって移動するにつれて、視覚的デエンファシスの量が増加する。いくつかの実施形態では、段階的デエンファシス中の視覚デエンファシスの量の割合は、ユーザの視点の動き速度に基づく(例えば、視覚デエンファシスの量の割合は、ユーザの移動速度に比例する)。例えば、ユーザの視点の動き速度の増加は、フェード及び/又はぼかしの量の増加をもたらす。ユーザが物理的環境を動き回る間、ユーザがより速く動くほど、特定のユーザインタフェースオブジェクトがより強調抑制されて見えるように、ユーザの動きの速度に基づいて決定される視覚的デエンファシスの量で、他の表示されたコンテンツに対して特定のユーザインタフェースオブジェクトを視覚的に強調抑制することによって、特定のユーザインタフェースオブジェクトの表示を自動的に更新することは、ユーザが異なる速度で三次元環境を動き回るときに、リアルタイムの視覚フィードバックを提供し、それによって、改善された視覚フィードバックをユーザに提供する。
いくつかの実施形態では、第1のユーザインタフェースオブジェクトを表示している間、コンピュータシステムは、三次元環境の第1のビュー内の第4のポジションに第2のユーザインタフェースオブジェクト(例えば、仮想オブジェクト、アプリケーション、又は物理的オブジェクトの表現7014’などの物理的オブジェクトの表現)を表示し、第4のポジションは、三次元環境内のロケーションに対する第2の空間配置を有する。例えば、第2のユーザインタフェースオブジェクトは、ユーザの視点が移動するときに第2のユーザインタフェースオブジェクトが移動しない(例えば、三次元環境内の同じポジションに維持される)ように、オブジェクト又は三次元環境の一部に固定される。三次元環境に対してロックされたポジションに1つ以上のユーザインタフェースオブジェクトを自動的に表示することは、ユーザが三次元環境を動き回っても、ユーザが動くにつれてユーザに追従する特定の他のユーザインタフェースオブジェクトをロックすることなく、ユーザが物理的環境を動き回ってもリアルタイムの視覚フィードバックを提供し、その結果、ユーザは、三次元環境内でロックされたユーザインタフェース要素が三次元環境に対してどこに位置するかを知り、ユーザは、三次元環境内の固定されたロケーションに戻ることによってロックされたユーザインタフェース要素を見る又はそれと相互作用することができ、それによって改善された視覚フィードバックをユーザに提供する。
いくつかの実施形態では、第1のユーザインタフェースオブジェクトを表示している間、コンピュータシステムは、三次元環境の第1のビュー内の第5のポジションに第3のユーザインタフェースオブジェクトを表示し、第3のユーザインタフェースオブジェクトは、ユーザの個別の部分に対して(例えば、ユーザの身体の一部(例えば、頭部、胴体)に対して、又はユーザの視点に対して)第3の空間配置を有する。例えば、第3のユーザインタフェースオブジェクトはユーザの手に固定され、ユーザが物理的環境内で移動すると、第3のユーザインタフェースオブジェクトはユーザの手に固定されたポジションに表示される(例えば、ユーザが三次元環境のユーザの現在のビュー内になるようにユーザの手を上げることに応じて表示される)。ユーザが三次元環境の周りを移動しても、ユーザが移動する際に特定の他のユーザインタフェースオブジェクトをユーザの身体部分にロックすることなく、ユーザの身体部分に対して同じ一般的なロケーションに維持される(例えば、又はロックされる)ポジションに1つ以上のユーザインタフェースオブジェクトを自動的に表示することは、ユーザが物理的環境の周りを移動する際にリアルタイムの視覚フィードバックを提供し、それによって改善された視覚フィードバックをユーザに提供する。
いくつかの実施形態では、第1のユーザインタフェースオブジェクトを三次元環境内の第6のポジションに再配置するユーザ入力を検出したことに応じて、コンピュータシステムは、第1のユーザインタフェースオブジェクトを三次元環境内の第6のポジションに移動させ、第6のポジションは、ユーザの個別の部分に対する第4の空間配置を有し、第1のユーザインタフェースオブジェクトについて、第1のユーザインタフェースオブジェクトのユーザの個別の部分に対する第1の空間配置を、ユーザの個別の部分に対する第4の空間配置に更新する。例えば、図7Jを参照して説明したように、第1のユーザインタフェースオブジェクト7104-8は、ユーザに対して異なる空間配置を有する異なるゾーンに配置され(例えば、再配置され、固定される)(例えば、ユーザの正面に直接)(例えば、ユーザの胴体、ユーザの頭部、ユーザの視点)、新しいゾーンは、ユーザの一部から異なる角度及び/又は距離で定義された左隅にある(例えば、第4の空間配置)。いくつかの実施形態では、第4の空間配置を有するように第1のユーザインタフェースオブジェクトを更新した後、動きの閾値量を満たすユーザの視点の動きに応じて、第1のユーザインタフェースオブジェクトは、ユーザの個別の部分に対して第4の空間配置で維持される(例えば、上述の遅延追従挙動を有し続ける)。ユーザが、ユーザの現在のビューに対して異なる空間的関係を有するように特定のユーザインタフェースオブジェクトのアンカーポジションを変更することを可能にして、ユーザの現在のビューが変化しても、特定のユーザインタフェースオブジェクトがユーザの現在のビューに対して同じポジションに維持されるようにすると、ユーザが物理的環境内で移動する際にリアルタイムの視覚フィードバックが提供され、ユーザが見るのに最も快適又は便利なポジションに特定のユーザインタフェースオブジェクトをユーザが配置することが容易になり、それによって改善された視覚フィードバックがユーザに提供される。
いくつかの実施形態では、三次元環境内の第6のポジションは、ユーザから所定の距離内にあり、第1のユーザインタフェースオブジェクトを三次元環境内の第7のポジションに再配置するためのユーザ入力を検出することに応じて、コンピュータシステムは、第1のユーザインタフェースオブジェクトを第7のポジションに移動させ、三次元環境内の第7のポジションは、ユーザから所定の距離を超え、第7のポジションにおいて、第1のユーザインタフェースオブジェクトは、三次元環境の一部に固定される。例えば、ユーザは、所定のゾーンのいずれかの外側にある三次元空間内のポジションに第1のユーザインタフェースオブジェクトを配置することが可能である。一部の実施形態では、第1のユーザインタフェースオブジェクトが三次元環境に固定されるように(例えば、そのポジションがユーザの現在の視点から独立しており、ユーザが三次元環境のユーザの現在の視点を移動させている間に第1のユーザインタフェースオブジェクトがユーザの個別の部分に対する個別の空間的関係を維持しないように)、ユーザが第1のユーザインタフェースオブジェクトを三次元環境内のポジション(例えば、第7のポジション)に配置したという判定に従って、第1のユーザインタフェースオブジェクトは、もはや遅延追従挙動を有さない。一部の実施形態では、ユーザが第1のユーザインタフェースオブジェクトを、ユーザから所定の距離の外側(例えば、ユーザの腕の届く範囲の外側)にある第7のポジションに配置したことに応じて、テキスト表示が表示されて、オブジェクトが第7のポジションに配置されている間、第1のユーザインタフェースオブジェクトが遅延追従行動を有さないことを示す。いくつかの実施形態では、第6のポジションは、所定の距離を超える距離にあることはできない。例えば、第6のポジションは、ユーザインタフェースオブジェクトが第6のポジションに配置されている間、ユーザインタフェースオブジェクトが遅延追従挙動を有し続けるために、ユーザの腕の届く範囲内にある(例えば、所定のゾーンがユーザの腕の届く範囲内にある)。ユーザから所定の距離内(例えば、腕の届く範囲内)にあるユーザの現在のビューに対して異なる空間的関係を有するように特定のユーザインタフェースオブジェクトのアンカーを変更するオプションをユーザに自動的に提供する一方で、ユーザが他のユーザインタフェースオブジェクトを三次元環境に固定されたポジション(例えば、所定の距離を超えたポジション)に配置(例えば、再配置)することを可能にすることにより、ユーザがユーザにとって最も快適又は便利なエリアにオブジェクトを配置することを可能にし、ユーザが物理的環境内を移動する際にリアルタイムの視覚フィードバックを提供し、それによって改善された視覚フィードバックをユーザに提供する。
いくつかの実施形態では、第1のユーザインタフェースオブジェクトを、三次元環境内の第8のポジションに再配置するためのユーザ入力を検出している間に、コンピュータシステムは、1つ以上の所定のゾーンについての視覚的指示を表示する。いくつかの実施形態では、第8のポジションであって、第8のポジションはユーザの個別の部分に対して第5の空間配置を有する、第8のポジションが、1つ以上の所定のゾーンのうちの所定のゾーン内にあるという判定に従って、ユーザの視点の動きを検出したことに応じて、コンピュータシステムは、第1のユーザインタフェースオブジェクトを、ユーザの個別の部分に対して第5の空間配置を有する三次元環境内の第9のポジションに表示する。いくつかの実施形態では、第8のポジションが1つ以上の所定のゾーンのうちの所定のゾーン内にないという判定に従って、ユーザの視点の動きを検出したことに応じて、コンピュータシステムは、第1のユーザインタフェースオブジェクトの表示を、三次元環境内の第8のポジションに維持する。例えば、図7Jを参照して説明されるように、ユーザが第1のユーザインタフェースオブジェクトを所定のゾーンの外側に再配置する場合、第1のユーザインタフェースオブジェクトは、もはや遅延追従挙動を有さない(例えば、ユーザインタフェースオブジェクトは、三次元環境に固定され、もはや第1のユーザインタフェースオブジェクトをユーザの個別の部分に対して第1の空間配置を有するものとして維持しない)。例えば、所定のゾーンのいずれかの外側に配置されるユーザインタフェースオブジェクトは、ユーザの視点が移動するにつれて、ユーザの視点に追従しない(例えば、所定のゾーンの外側に配置されるユーザインタフェースオブジェクトは、三次元環境に固定される)。いくつかの実施形態では、図7Jを参照して説明されるように、コンピュータシステムは、所定のゾーン(例えば、遅延追従ゾーン)の輪郭(例えば、又は他の視覚的指示)を表示する。いくつかの実施形態では、所定のゾーンのいずれかに配置されるユーザインタフェースオブジェクトは、ユーザの視点が移動するにつれて、ユーザの視点に追従する。一部の実施形態では、所定のゾーンの視覚的指示は、ユーザが第1のユーザインタフェースオブジェクトを移動させている間に(例えば、ユーザが第1のユーザインタフェースオブジェクトを再配置するためのジェスチャを開始したことに応じて)表示される。各ゾーンがユーザの現在のビューに対して異なる相対ポジションを有する、三次元環境内の複数のゾーンの輪郭を自動的に表示することは、ユーザが特定のユーザインタフェースオブジェクトを固定するゾーンを選択することを容易にし、ユーザインタフェースオブジェクトがゾーン内に配置されるときにユーザが物理的環境内で移動するにつれてユーザインタフェースオブジェクトがユーザに追従し、ユーザが見るのに最も快適又は便利な三次元環境内のどこにユーザインタフェースオブジェクトを配置すべきかをユーザがより容易に決定することを可能にし、それによって改善された視覚フィードバックをユーザに提供する。
いくつかの実施形態では、第1のユーザインタフェースオブジェクトを、第6のポジションに再配置するためのユーザ入力を検出したことに応じて、第1のユーザインタフェースオブジェクトは、三次元環境内の第6のポジションにスナップする。例えば、図7Jを参照して説明したように、ユーザインタフェースオブジェクトを第6のポジションにスナップすることは、第1のユーザインタフェースオブジェクトを第6のポジションに再配置するためのユーザ入力を検出している間に、第1のユーザインタフェースオブジェクトが第6のポジションから所定の閾値距離内に移動したという判定に従って、(例えば、ユーザが第1のユーザインタフェースオブジェクトを第6のポジションに向かってドラッグし続けることなく)ユーザインタフェースオブジェクトを第6のポジションに自動的に移動させることを含む。一部の実施形態では、第1のユーザインタフェースオブジェクトを第6のポジションから(例えば、所定のゾーンから)移動させるユーザ入力に応じて、第1のユーザインタフェースオブジェクトは、ユーザ入力が第6のポジションから動きの閾値量を超えて移動するまで、第6のポジションに表示されたままである。一部の実施形態では、第1のユーザインタフェースオブジェクトが第6のポジションにスナップすることに応じて、触覚及び/又は音声指示が提供される(例えば、第1のユーザインタフェースオブジェクトを第6のポジションに表示している間に同時に)。例えば、ユーザ入力は、(例えば、任意選択的に、ユーザの手のポジションを第1のポジション(例えば、ドラッグの開始ポジション)から第2のポジション(例えば、ドラッグの終了ポジション)に変更するドラッグ入力と併せて(例えば、その後に))、手の2本以上の指を互いに接触させるか、又は互いから接触を断つ動きを含むピンチジェスチャ(例えば、又はピンチアンドドラッグジェスチャ)である。いくつかの実施形態では、ユーザは、ドラッグ入力を実行しながらピンチジェスチャを維持し、(例えば、第2のポジションにおいて)ドラッグジェスチャを終了するためにピンチジェスチャ(例えば、2本以上の指を開く)を解放する。例えば、ピンチ入力は、第1のユーザインタフェースオブジェクトを選択し、ユーザは、選択されると、第1のユーザインタフェースオブジェクトをドラッグして、第1のユーザインタフェースオブジェクトを第6のポジション(例えば、ユーザインタフェースオブジェクトが第6のポジションにスナップされる前の第6のポジションの近く)に再配置することができる。一部の実施形態では、ピンチ入力は、第1のユーザインタフェースオブジェクトに直接向けられる(例えば、ユーザは、第1のユーザインタフェースオブジェクトに対応するポジションでピンチ入力を実行する)か、又はピンチ入力は、第1のユーザインタフェースオブジェクトに間接的に向けられる(例えば、ユーザは、第1のアフォーダンスを注視しながらピンチ入力を実行し、ピンチ入力を実行している間のユーザの手のポジションは、第1のユーザインタフェースオブジェクトに対応するポジションではない)。例えば、ユーザは、第1のユーザインタフェースオブジェクト又はその付近でジェスチャを開始することにより、ユーザの入力を第1のユーザインタフェースオブジェクトに向けることができる(例えば、第1のユーザインタフェースオブジェクトの外縁部又は第1のユーザインタフェースオブジェクトの中央部分から測定して、0.5cm、1cm、5cm、又は0~5cmの距離内)。いくつかの実施形態では、ユーザは更に、第1のユーザインタフェースオブジェクトに注意を払う(例えば、第1のユーザインタフェースオブジェクトを注視する)ことによって、ユーザの入力を第1のユーザインタフェースオブジェクトに向けることが可能であり、第1のユーザインタフェースオブジェクトに注目しながら、ユーザはジェスチャを開始する(例えば、コンピュータシステムによって検出可能な任意のポジションで)。例えば、ユーザが第1のユーザインタフェースオブジェクトに注目している場合、ジェスチャは、第1のユーザインタフェースオブジェクト又はその近くのポジションで開始される必要はない(例えば、ユーザは、第1のユーザインタフェースオブジェクトを注視しながらドラッグジェスチャを実行する)。ユーザがスナップポジションの所定の距離内にユーザインタフェースオブジェクトを再配置することに応じてユーザインタフェースオブジェクトを自動的にスナップし、ユーザがユーザインタフェースオブジェクトをスナップポジションの上に正確に位置合わせすることを必要とせずにユーザインタフェースオブジェクトが所定のスナップポジションに移動され、ユーザがユーザインタフェースオブジェクトを再配置する際にリアルタイムの視覚フィードバックをユーザに提供し、ユーザインタフェースオブジェクトがスナップポジションに正常に再配置されたことを確認する視覚的指示を提供し、それによって改善された視覚フィードバックをユーザに提供する。
いくつかの実施形態では、コンピュータシステムは、三次元環境の没入レベルを制御するための1つ以上のユーザインタフェースオブジェクトを表示する。いくつかの実施形態では、三次元環境の没入レベルを増加させるための1つ以上のユーザインタフェースオブジェクトのうちの第1のユーザインタフェースオブジェクトに向けられたユーザ入力に応じて、コンピュータシステムは、三次元環境内に追加の仮想コンテンツを表示する(例えば、及び任意選択的に、パススルーコンテンツの表示を停止又は低減する)。一部の実施形態では、三次元環境の没入レベルを減少させるための1つ以上のユーザインタフェースオブジェクトのうちの第2のユーザインタフェースオブジェクトに向けられたユーザ入力の検出に応じて、コンピュータシステムは、物理的環境に対応する追加コンテンツを表示する(例えば、追加のパススルーコンテンツを表示し、任意選択的に、仮想コンテンツ(例えば、1つ以上の仮想オブジェクト)の表示を停止又は低減する)。いくつかの実施形態では、1つ以上のユーザインタフェースオブジェクトは、三次元環境において没入型体験を再生及び/又は一時停止するためのコントロールを含む。例えば、ユーザは、物理的環境のどれだけが三次元環境においてパススルーコンテンツとして表示されるかを制御することが可能である(例えば、完全没入型体験の間、物理的環境のいずれも表示されない(例えば、そうでなければ、三次元環境において表される))。例えば、ユーザ入力は、タップ入力(例えば、エアジェスチャ又はピンチジェスチャ)であり、これは、任意選択的に、ユーザの手の人差し指の上(例えば、親指に隣接する人差し指の側の上)での親指のタップ入力である。いくつかの実施形態では、人差し指の側部から親指を持ち上げる必要なく、タップ入力が検出される。例えば、ユーザは、第1のユーザインタフェースオブジェクトに向けられたタップ入力を実行して、三次元環境の没入レベルを増加させる。一部の実施形態では、ユーザ入力は、第1のユーザインタフェースオブジェクトに直接向けられる(例えば、ユーザは、第1のユーザインタフェースオブジェクトに対応するポジションでタップ入力を実行する)か、又はユーザ入力は、第1のユーザインタフェースオブジェクトに間接的に向けられる(例えば、ユーザは、第1のアフォーダンスを注視しながらタップ入力を実行し、タップ入力を実行している間のユーザの手のポジションは、第1のユーザインタフェースオブジェクトに対応するポジションではない)。例えば、ユーザは、第1のユーザインタフェースオブジェクト又はその付近でジェスチャを開始することにより、ユーザの入力を第1のユーザインタフェースオブジェクトに向けることができる(例えば、第1のユーザインタフェースオブジェクトの外縁部又は第1のユーザインタフェースオブジェクトの中央部分から測定して、0.5cm、1cm、5cm、又は0~5cmの距離内)。いくつかの実施形態では、ユーザは更に、第1のユーザインタフェースオブジェクトに注意を払う(例えば、第1のユーザインタフェースオブジェクトを注視する)ことによって、ユーザの入力を第1のユーザインタフェースオブジェクトに向けることが可能であり、第1のユーザインタフェースオブジェクトに注目しながら、ユーザはジェスチャを開始する(例えば、コンピュータシステムによって検出可能な任意のポジションで)。例えば、ユーザが第1のユーザインタフェースオブジェクトに注目している場合、ジェスチャは、第1のユーザインタフェースオブジェクト又はその近くのポジションで開始される必要はない。ユーザが物理的環境に対して三次元環境の没入型体験を制御することを可能にする複数のコントロールを自動的に表示することは、ユーザが複雑なメニュー階層をナビゲートすることを必要とせずにユーザのための追加のコントロールを提供し、それにより、ユーザは、物理的環境からのどれだけのコンテンツが三次元環境において表示されるかを容易に制御することができ、ユーザが三次元環境における没入レベルを変更することを要求するときにリアルタイムの視覚フィードバックをユーザに提供し、それにより、追加のユーザ入力を必要とせずに改善された視覚フィードバックをユーザに提供する。
いくつかの実施形態では、コンピュータシステムは、三次元環境の体験を制御するための1つ以上のユーザインタフェースオブジェクトを表示する。いくつかの実施形態では、1つ以上のユーザインタフェースオブジェクトのうちの第1のユーザインタフェースオブジェクトに向けられたユーザ入力に応じて、コンピュータシステムは、三次元環境においてコンテンツを変更する(例えば、第1のコンテンツを再生又は一時停止する)第1の動作を実行する。いくつかの実施形態では、1つ以上のユーザインタフェースオブジェクトのうちの第2のユーザインタフェースオブジェクトに向けられたユーザ入力を検出したことに応じて、コンピュータシステムは、第1の動作とは異なる第2の動作を三次元環境において実行する(例えば、第2のコンテンツを一時停止又は再生する)。いくつかの実施形態では、1つ以上のユーザインタフェースオブジェクトは、三次元環境において没入型体験を再生及び/又は一時停止するためのコントロールを含む。例えば、コンピュータシステムは、ユーザが第1のユーザインタフェースオブジェクトを選択したことに応じて、(第1のタイプの仮想体験に対応する)第1のタイプの仮想壁紙を三次元環境に表示する。ユーザが第2のユーザインタフェースオブジェクトを選択することに応じて、コンピュータシステムは、仮想照明効果を有する三次元環境を表示する。例えば、ユーザ入力は、タップ入力(例えば、エアジェスチャ又はピンチジェスチャ)であり、これは、任意選択的に、ユーザの手の人差し指の上(例えば、親指に隣接する人差し指の側の上)での親指のタップ入力である。いくつかの実施形態では、人差し指の側部から親指を持ち上げる必要なく、タップ入力が検出される。例えば、ユーザは、第1のユーザインタフェースオブジェクトに向けられたタップ入力を実行して、三次元環境に表示される仮想コンテンツを再生(例えば、又は一時停止)する。一部の実施形態では、ユーザ入力は、第1のユーザインタフェースオブジェクトに直接向けられる(例えば、ユーザは、第1のユーザインタフェースオブジェクトに対応するポジションでタップ入力を実行する)か、又はユーザ入力は、第1のユーザインタフェースオブジェクトに間接的に向けられる(例えば、ユーザは、第1のアフォーダンスを注視しながらタップジェスチャを実行し、タップ入力を実行している間のユーザの手のポジションは、第1のユーザインタフェースオブジェクトに対応するポジションではない)。例えば、ユーザは、第1のユーザインタフェースオブジェクト又はその付近でジェスチャを開始することにより、ユーザの入力を第1のユーザインタフェースオブジェクトに向けることができる(例えば、第1のユーザインタフェースオブジェクトの外縁部又は第1のユーザインタフェースオブジェクトの中央部分から測定して、0.5cm、1cm、5cm、又は0~5cmの距離内)。いくつかの実施形態では、ユーザは更に、第1のユーザインタフェースオブジェクトに注意を払う(例えば、第1のユーザインタフェースオブジェクトを注視する)ことによって、ユーザの入力を第1のユーザインタフェースオブジェクトに向けることが可能であり、第1のユーザインタフェースオブジェクトに注目しながら、ユーザはジェスチャを開始する(例えば、コンピュータシステムによって検出可能な任意のポジションで)。例えば、ユーザが第1のユーザインタフェースオブジェクトに注目している場合、ジェスチャは、第1のユーザインタフェースオブジェクト又はその近くのポジションで開始される必要はない。したがって、ユーザインタフェースオブジェクトは、三次元環境における仮想体験のための種々の仮想コンテンツを変更する(例えば、表示する、又は表示を停止する)ための制御に対応する。いくつかの実施形態では、再生制御ユーザインタフェースオブジェクトを選択することに応じて、仮想体験のための仮想コンテンツが表示され、一時停止制御ユーザインタフェースオブジェクトを選択することに応じて、仮想体験のための仮想コンテンツの表示が停止される。ユーザが物理的環境に対して三次元環境の没入型体験を制御することを可能にする複数のコントロールを自動的に表示することは、ユーザが複雑なメニュー階層をナビゲートすることを必要とせずにユーザのための追加のコントロールを提供し、それにより、ユーザは、物理的環境からのどれだけのコンテンツが三次元環境において表示されるかを容易に制御することができ、ユーザが三次元環境における没入レベルを変更することを要求するときにリアルタイムの視覚フィードバックをユーザに提供し、それにより、追加のユーザ入力を必要とせずに改善された視覚フィードバックをユーザに提供する。
いくつかの実施形態では、ユーザの視点の動きが動きの閾値量を満たすことに応じて、ユーザの身体(例えば、胴体、頭部、又は手)が物理的環境内で移動するという判定に従って、コンピュータシステムは、第1のユーザインタフェースオブジェクトを三次元環境内で第1のポジションから第2のポジションに移動させる。いくつかの実施形態では、ユーザの頭部が物理的環境内で第1の頭部ポジションから第2の頭部ポジションに移動する(例えば、ユーザの身体の動きを検出することなく(例えば、頭部回転のみを検出する))という判定に従って、コンピュータシステムは、三次元環境内の第1のポジションに第1のユーザインタフェースオブジェクトを表示することを停止し、(例えば、第1のポジションに第1のユーザインタフェースオブジェクトを表示することを停止した後に)三次元環境内の第2のポジションに第1のユーザインタフェースオブジェクトを表示する(例えば、動きをアニメーション化することなく)。いくつかの実施形態では、ユーザの頭部はまた、第1のユーザインタフェースオブジェクトが三次元環境内の第2のポジションに表示される前に、少なくとも閾値時間量(例えば、1秒、2秒、10秒、又は0.5~10秒の時間量)の間、第2の頭部ポジションに留まらなければならない。いくつかの実施形態では、ユーザが物理的環境内でユーザの身体(例えば、胴体、頭部、又は手)を動かすことに応じて、第1のユーザインタフェースオブジェクトは表示され続け、ユーザの身体の動きと共に動くようにアニメーション化されるが、ユーザの視点を変更するユーザの頭部の回転(例えば、ユーザの身体を動かさずに)を検出することに応じて、ユーザインタフェースオブジェクトは消え、(頭部が新しい視点に向いたままであるとき)新しい視点で再表示される。いくつかの実施形態では、方法800及び図7C~図7Hを参照して上述したように、ユーザの頭部が第1の頭部ポジションから第2の頭部ポジションに移動したと判定することは、ユーザが第1のユーザインタフェースオブジェクトに関する注目基準を満たさないことを検出することを含み、ユーザが第1のユーザインタフェースオブジェクトに関する注目基準を満たさないことを検出したことに応じて、第1のユーザインタフェースオブジェクトは、修正された外観で表示される(例えば、フェードされる、もはや表示されない、又は他の方法で視覚的に強調抑制する)。一部の実施形態では、三次元環境内の第2のポジションに第1のユーザインタフェースオブジェクトを表示することは、(例えば、図7Hを参照して説明したように)ユーザが第1のユーザインタフェースオブジェクトに関する注目基準を満たしていることを検出したことに応じて実行される。ユーザの胴体を動かすことなくユーザの頭部が動くときに三次元環境において特定のユーザインタフェースオブジェクトを表示することなく、ユーザの胴体が物理的環境において動く間に、三次元環境において特定のユーザインタフェースオブジェクトを動くように自動的に表示することは、ユーザが物理的環境内で動くときにリアルタイムの視覚フィードバックを提供し、それによって、改善された視覚フィードバックをユーザに提供する。
いくつかの実施形態では、動きが閾値量を満たすとの判定の後、第1のユーザインタフェースオブジェクトは、ユーザの視点が物理的環境に対して動くにつれて、三次元環境内の複数のそれぞれのポジションに表示され、複数のそれぞれのポジションのうちの第1のポジションにおいて、第1のユーザインタフェースオブジェクトは、ユーザの個別の部分に対する第1の空間配置を有し(例えば、有し続け)、複数の個別のポジションのうちの第2のポジションにおいて、第1のユーザインタフェースオブジェクトは、ユーザの個別の部分に対する第1の空間配置を有する(例えば、有し続ける)。例えば、三次元環境における複数の個別のポジションは、三次元環境内の任意の数のロケーションに適用される(例えば、第1のユーザインタフェースオブジェクトは、ユーザの個別の部分に対する第1の空間配置を維持するために、ユーザの現在の視点内にある三次元環境の任意の部分に表示されるように有効化される)。したがって、ユーザが物理的環境内で移動すると、第1のユーザインタフェースオブジェクトは、ユーザが移動するにつれて第1のユーザインタフェースオブジェクトが三次元環境内で連続的に移動しているかのように見えるように、三次元環境内の様々なポジションに表示されることが可能になる。例えば、図7E~図7Gでは、ユーザインタフェースオブジェクトは、ユーザが物理的環境内で移動し続けるにつれて追加のポジションに表示される。ユーザがユーザインタフェースオブジェクト内とユーザの視点との間の同じ空間的関係を維持しながら、ユーザが物理的環境内を移動する間にユーザの現在の視点に従うように三次元環境内で特定のユーザインタフェースオブジェクトを自動的に移動させることは、ユーザが物理的環境内を移動する際にリアルタイム視覚フィードバックを提供し、それによって改善された視覚フィードバックをユーザに提供する。
図9における動作について説明された特定の順序は単なる例であり、説明された順序は、動作を実行することができる唯一の順序であることを示すことを意図するものではないことを理解されたい。当業者であれば、本明細書に記載される動作を再順序付けるための様々な方法を認識するであろう。また、本明細書で説明される他の方法(例えば、方法800)に関して本明細書で説明される他のプロセスの詳細もまた、図9に関して上述された方法900と類似の方式で適用可能であることに留意されたい。例えば、方法900を参照して上述したジェスチャ、入力、物理的オブジェクト、ユーザインタフェースオブジェクト、移動、基準、三次元環境、表示生成コンポーネント、物理的オブジェクトの表現、仮想オブジェクト、及び/又はアニメーションは、任意選択的に、本明細書に記載される他の方法(例えば、方法800)を参照して本明細書に記載されるジェスチャ、入力、物理的オブジェクト、ユーザインタフェースオブジェクト、移動、基準、三次元環境、表示生成コンポーネント、物理的オブジェクトの表現、仮想オブジェクト、及び/又はアニメーションの特性のうちの1つ以上を有する。簡潔にするために、それらの詳細はここでは繰り返さない。
図8及び図9を参照して上述した動作は、任意選択的に、図1~図6に示すコンポーネントにより実施される。いくつかの実施形態では、方法800及び900の態様及び/又は動作は、これらの方法の間で交換、置換、及び/又は追加されてもよい。簡潔にするために、それらの詳細はここでは繰り返さない。
更に、1つ以上のステップが満たされている1つ以上の条件を条件とする本明細書に記載の方法では、記載の方法は、繰り返しの過程にわたって、本方法のステップが条件とする条件の全てが本方法の異なる繰り返しで満たされるように、複数の繰り返しで繰り返されることができることを理解されたい。例えば、ある方法が、条件が満たされた場合に第1のステップを実行し、条件が満たされなかった場合に第2のステップを実行することを必要とする場合、当業者であれば、条件が満たされ、満たされなくなるまで、請求項に記載のステップが、特定の順序で繰り返されることを理解するであろう。したがって、満たされた1つ以上の条件に依存する1つ以上のステップで説明される方法は、方法に記載された各条件が満たされるまで繰り返される方法として書き換えられることができる。しかしながら、これは、システム又はコンピュータ可読媒体が、対応する1つ以上の条件の充足に基づいて条件付き動作を実行するための命令を含み、したがって、方法のステップが条件付きである全ての条件が満たされるまで、方法のステップを明示的に繰り返すことなく偶発性が満たされたか否かを判定することができる、システム又はコンピュータ可読媒体の請求項には必要とされない。当業者はまた、条件付きステップを有する方法と同様に、システム又はコンピュータ可読記憶媒体が、条件付きステップの全てが実行されたことを確実にするために必要な回数だけ方法のステップを繰り返すことができることを理解するであろう。
上記は、説明を目的として、特定の実施形態を参照して記述されている。しかしながら、上記の例示的な論考は、網羅的であること、又は開示される厳密な形態に本発明を限定することを意図するものではない。上記の教示を考慮して、多くの修正及び変形が可能である。本発明の原理及びその実際的な応用を最良の形で説明し、それによって他の当業者が、想到される特定の用途に適した様々な変更で本発明及び様々な記載された実施形態を最良の形で使用することを有効化するために、これらの実施形態を選択し記載した。