拡張現実環境は、現実が、物理的世界で利用できない追加情報をユーザに提供する補足情報で拡張される環境である。拡張現実環境と相互作用する(例えば、補足情報にアクセスするために)従来の方法は、多くの場合、意図された結果を達成するために、別個の多数の入力(例えば、一連のジェスチャ及びボタン押圧など)を必要とする。更に、従来の入力方法は、多くの場合、範囲内に限定される(例えば、コンピュータシステムのタッチ感知ディスプレイのサイズによって)。本明細書の実施形態は、ユーザが(例えば、コンピュータシステムの移動とコンピュータシステムの入力デバイス(例えば、タッチスクリーンディスプレイ)上の接触の移動との組み合わせに基づいて仮想ユーザインタフェースオブジェクトの外観を調整することによって、及びコンピュータシステムの1つ以上のカメラによってキャプチャされたライブ画像に、拡張現実環境の仮想環境設定に基づいて選択されるフィルタをリアルタイムで適用することによって)拡張現実環境と相互作用するための直感的な方法を提供する。
加えて、仮想/拡張現実環境との従来の相互作用は、一般に、単一の視点(例えば、デバイスを装着/保持しているユーザの視点から)に限定される。本明細書の実施形態は、仮想ユーザインタフェースオブジェクトの視点からの(例えば、拡張現実環境内の自動車又は人の視点からの)仮想現実環境内の(例えば、物理的オブジェクトの)仮想モデルのシミュレートされたビューを提示することによって、仮想/拡張現実環境を体験するための、より没入型かつ直感的な方法を提供する。
本明細書に記載するシステム、方法、及びGUIは、複数の方法で仮想/拡張現実環境とのユーザインタフェース相互作用を改善する。例えば、それらは、拡張現実環境を表示し、異なる入力に応じて、拡張現実環境及び/又は内部のオブジェクトの外観を調整すること、拡張現実環境内の仮想モデルを閲覧することと、仮想モデル内のオブジェクトの視点からの仮想モデルのシミュレートされたビューを閲覧することとの間で遷移すること、並びに仮想ユーザインタフェースオブジェクトの3次元操作をより容易にする。
以下、図1A〜図1B、図2、及び図3A〜3Cは、例示的なデバイスの説明を提供する。図4A〜図4B、図5A1〜図5A40、図5B1〜図5B41、図5C1〜図5C30、図5D1〜図5D14、図5E1〜図5E32、及び図5F1〜図5F17は、いくつかの実施形態に係る、表示されたシミュレートされた環境内の仮想ユーザインタフェースオブジェクトと相互作用する複数のユーザのためのシステム及びユーザインタフェースの例を示し、いくつかの実施形態に係る、拡張現実環境を表示することと、異なる入力に応じて、拡張現実環境の外観及び/又は拡張現実環境内のオブジェクトの外観を調整することと、拡張現実環境内の仮想モデルを閲覧することと仮想モデル内のオブジェクトの視点からの仮想モデルのシミュレートされたビューを閲覧することとの間で遷移することと、仮想ユーザインタフェースオブジェクトの3次元操作と、を含む、拡張現実環境及び仮想現実環境と相互作用するための例示的なユーザインタフェースを示す。図6A〜図6Dは、いくつかの実施形態に係る、拡張現実環境内の仮想ユーザインタフェースオブジェクトの外観を調整する方法のフロー図を示す。図7A〜図7Cは、いくつかの実施形態に係る、拡張現実環境内のコンピュータシステムの1つ以上のカメラによってキャプチャされたライブ画像にフィルタを適用する方法のフロー図を示す。図8A〜図8Cは、いくつかの実施形態に係る、拡張現実環境内の仮想モデルを閲覧することと、仮想モデル内のオブジェクトの視点からの仮想モデルのシミュレートされたビューを閲覧することとの間で遷移する方法のフロー図を示す。図9A〜図9Eは、いくつかの実施形態に係る、仮想ユーザインタフェースオブジェクトの3次元操作の方法のフロー図を示す。図10A〜図10Eは、いくつかの実施形態に係る、表示されたシミュレートされた環境の閲覧モード間を遷移する方法のフロー図を示す。図11A〜図11Cは、いくつかの実施形態に係る、第1のコンピュータシステムによって表示されるシミュレートされた環境内の第2のコンピュータシステムの閲覧視点のインジケーションを更新する方法のフロー図を示す。図12A〜図12Dは、いくつかの実施形態に係る、挿入カーソルの配置の方法のフロー図を示す。図13A〜図13Eは、いくつかの実施形態に係る、安定動作モードで拡張現実環境を表示する方法のフロー図を示す。
図5A1〜図5A40、図5B1〜図5B41、図5C1〜図5C30、図5D1〜図5D14、図5E1〜図5E32、及び図5F1〜図5F17のユーザインタフェースを使用して、図6A〜図6D、図7A〜図7C、図8A〜図8C、図9A〜図9E、図10A〜図10E、図11A〜図11C、図12A〜図12D、及び図13A〜図13Eのプロセスを示す。
例示的なデバイス
ここで、添付図面に実施例が示される実施形態への詳細な参照が行われる。以下の詳細な説明では、説明される様々な実施形態の完全な理解を提供するために数多くの具体的な詳細が記載されている。しかしながら、記載されている様々な実施形態は、これらの具体的な詳細を伴わずとも実践し得ることが、当業者には明らかであろう。他の例では、周知の方法、手順、構成要素、回路、及びネットワークは、実施形態の態様を不必要に不明瞭にしないよう詳細には説明されていない。
本明細書では、第1、第2などの用語は、いくつかの実施例で、様々な要素を説明するために使用されるが、これらの要素は、それらの用語によって限定されるべきではないことも理解されるであろう。これらの用語は、ある要素を別の要素と区別するためにのみ使用される。例えば、説明されている様々な実施形態の範囲から逸脱することなく、第1の接触は、第2の接触と称することができ、同様に、第2の接触は、第1の接触と称し得る。第1の接触及び第2の接触は両方とも接触であるが、文脈がそうではないことを明確に示さない限り、それらは同じ接触ではない。
本明細書に記載する様々な実施形態の説明で使用される術語は、特定の実施形態を説明することのみを目的とし、限定的であることは意図されていない。記載する様々な実施形態の説明及び添付の特許請求の範囲では、単数形の「a(1つ、一)」、「an(1つ、一)」、及び「the(その、この)」は、文脈上別途明白に記載しない限り、複数形も同様に含むことが意図される。また、本明細書で使用されるとき、用語「及び/又は」は、関連する列挙された項目のうちの1つ以上のいずれか及び全ての考えられる組み合わせを指し、かつこれを含むことを理解されたい。用語「includes(含む)」、「including(含む)」、「comprises(含む、備える)」、及び/又は「comprising(含む、備える)」は、本明細書で使用する場合、述べられた特徴、整数、ステップ、動作、要素、及び/又は構成要素の存在を指定するが、1つ以上の他の特徴、整数、ステップ、動作、要素、構成要素、及び/又はそれらのグループの存在又は追加を除外しないことが更に理解されるであろう。
本明細書に記載される場合、用語「if(〜の場合)」は、任意選択で、文脈に依存して「when(〜のとき)」、「upon(〜すると)」、「in response to determining(〜と判定したことに応じて)」、又は「in response to detecting(〜を検出したことに応じて)」を意味するものと解釈される。同様に、「〜と判定された場合(if it is determined)」又は「[記載の状態又はイベント]が検出された場合(if [a stated condition or event] is detected)」という語句は、任意選択的に、文脈に応じて、「〜と判定したとき(upon determining)」若しくは「〜と判定したことに応じて(in response to determining)」、又は「[記載の状態又はイベント]を検出したとき(upon detecting [the stated condition or event])」若しくは「[記載の状態又はイベント]を検出したことに応じて(in response to detecting [the stated condition or event])」を意味すると解釈される。
仮想/拡張現実のためのコンピュータシステムは、仮想/拡張現実環境を生成する電子デバイスを含む。電子デバイス、そのようなデバイス用のユーザインタフェース、及びそのようなデバイスを使用する関連するプロセスの実施形態が説明される。いくつかの実施形態では、デバイスは、PDA機能及び/又は音楽プレーヤ機能などの他の機能も含む、携帯電話などのポータブル通信デバイスである。ポータブル多機能デバイスの例示的な実施形態は、Cupertino、CaliforniaのApple Inc.からのiPhone(登録商標)、iPod Touch(登録商標)、及びiPad(登録商標)デバイスを含むが、これらに限定されない。タッチ感知面(例えば、タッチスクリーンディスプレイ及び/又はタッチパッド)を有するラップトップ又はタブレットコンピュータなどの他のポータブル電子デバイスが任意選択で使用される。いくつかの実施形態では、デバイスは、ポータブル通信デバイスではなく、タッチ感知面(例えば、タッチスクリーンディスプレイ及び/又はタッチパッド)を有し、1つ以上のカメラも含む又はそれと通信している、デスクトップコンピュータであることも理解されたい。
以下の説明では、ディスプレイ及びタッチ感知面を有する(かつ/又はそれらと通信している)電子デバイスを含むコンピュータシステムを説明する。しかしながら、コンピュータシステムは、物理キーボード、マウス、ジョイスティック、ワンドコントローラ、及び/又はユーザの手などのユーザの1つ以上の特徴の位置を追跡するカメラなどの、1つ以上の他の物理ユーザインタフェースデバイスを任意選択的に含むことを理解されたい。
デバイスは、典型的には、ゲームアプリケーション、メモ取りアプリケーション、描画アプリケーション、プレゼンテーションアプリケーション、ワードプロセッシングアプリケーション、スプレッドシートアプリケーション、電話アプリケーション、ビデオ会議アプリケーション、電子メールアプリケーション、インスタントメッセージングアプリケーション、トレーニングサポートアプリケーション、写真管理アプリケーション、デジタルカメラアプリケーション、デジタルビデオカメラアプリケーション、ウェブブラウジングアプリケーション、デジタル音楽プレーヤアプリケーション、及び/又はデジタルビデオプレーヤアプリケーションのうちの1つ以上などの、様々なアプリケーションをサポートする。
本デバイス上で実行される様々なアプリケーションは、タッチ感知面などの、少なくとも1つの共通の物理ユーザインタフェースデバイスを、任意選択的に使用する。タッチ感知面の1つ以上の機能、並びにデバイスによって表示される対応する情報は、アプリケーションごとに、及び/又はそれぞれのアプリケーション内で、任意選択的に、調整及び/又は変更される。このように、デバイスの共通の物理アーキテクチャ(タッチ感知面など)は、任意選択的に、ユーザにとって直観的かつ透過的なユーザインタフェースを備える様々なアプリケーションをサポートする。
ここで、タッチ感知ディスプレイを備えるポータブルデバイスの実施形態に注意を向ける。図1Aは、いくつかの実施形態に係る、タッチ感知ディスプレイシステム112を有するポータブル多機能デバイス100を示すブロック図である。タッチ感知ディスプレイシステム112は、便宜上「タッチスクリーン」と呼ばれる場合があり、単にタッチ感知ディスプレイと呼ばれる場合もある。デバイス100は、メモリ102(任意選択で、1つ以上のコンピュータ可読記憶媒体を含む)、メモリコントローラ122、1つ以上の処理ユニット(CPU)120、周辺機器インタフェース118、RF回路108、音声回路110、スピーカ111、マイクロフォン113、入出力(I/O)サブシステム106、その他の入力又は制御デバイス116、及び外部ポート124を含む。デバイス100は、(例えば、1つ以上のカメラの一部として)1つ以上の光センサ164を任意選択的に含む。デバイス100は任意選択で、デバイス100(例えば、デバイス100のタッチ感知ディスプレイシステム112などのタッチ感知面)上の接触の強度を検出する1つ以上の強度センサ165を含む。デバイス100は、任意選択で、デバイス100上で触知出力を生成する(例えば、デバイス100のタッチ感知ディスプレイシステム112又はデバイス300のタッチパッド355などのタッチ感知面上で触知出力を生成する)1つ以上の触知出力生成器163を含む。これらの構成要素は、任意選択的に、1つ以上の通信バス又は信号ライン103を介して通信する。
本明細書及び特許請求の範囲で使用されるように、用語「触知出力」は、ユーザの触覚でユーザによって検出されることになる、デバイスの従前の位置に対するそのデバイスの物理的変位、デバイスの構成要素(例えば、タッチ感知面)の、そのデバイスの別の構成要素(例えば、筐体)に対する物理的変位、又は、デバイスの質量中心に対する構成要素の変位を指す。例えば、デバイス又はデバイスの構成要素が、タッチに敏感なユーザの表面(例えば、ユーザの手の指、手のひら、又は他の部分)に接触している状況では、物理的変位によって生成された触知出力は、そのデバイス又はデバイスの構成要素の物理的特性の認識される変化に相当する触感として、ユーザによって解釈されることになる。例えば、タッチ感知面(例えば、タッチ感知ディスプレイ又はトラックパッド)の移動は、ユーザによって、物理アクチュエータボタンの「ダウンクリック」又は「アップクリック」として、任意選択的に解釈される。いくつかの場合、ユーザの動作により物理的に押された(例えば、変位された)タッチ感知面に関連付けられた物理アクチュエータボタンの移動がないときでさえ、ユーザは「ダウンクリック」又は「アップクリック」などの触感を感じる。別の例として、タッチ感知面の移動は、タッチ感知面の平滑度に変化がない場合であっても、ユーザによって、そのタッチ感知面の「粗さ」として、任意選択的に解釈又は感知される。そのようなユーザによるタッチの解釈は、ユーザの個人的な感覚認知に左右されるが、大多数のユーザに共通する、多くのタッチの感覚認知が存在する。従って、触知出力が、ユーザの特定の感覚認知(例えば、「アップクリック」「ダウンクリック」、「粗さ」)に対応するものと記述される場合、別途記載のない限り、生成された触知出力は、典型的な(又は、平均的な)ユーザの記述された感覚認知を生成するデバイス、又はデバイスの構成要素の物理的変位に対応する。触知出力を使用して触覚フィードバックをユーザに提供することで、デバイスの操作性が向上し、ユーザデバイスインタフェースがより効率的になり(例えば、デバイスを操作する/デバイスと相互作用するとき、ユーザが適切な入力を提供するのを助け、ユーザの誤りを低減させることによって)、加えて、ユーザがデバイスをより迅速かつ効率的に使用することを可能にすることによって、電力使用を低減させ、デバイスの電池寿命を改善する。
デバイス100は、ポータブル多機能デバイスの一例に過ぎず、デバイス100は、任意選択的に、示されているものよりも多くの構成要素又は少ない構成要素を有するものであり、任意選択的に、2つ以上の構成要素を組み合わせるものであり、又は、任意選択的に、それらの構成要素の異なる構成若しくは配置を有するものであることを理解されたい。図1Aに示す様々な構成要素は、1つ以上の信号処理回路及び/又は特定用途向け集積回路を含む、ハードウェア、ソフトウェア、ファームウェア、又はそれらの組み合わせで実装される。
メモリ102は、任意選択的に、高速ランダムアクセスメモリを含み、また任意選択的に、1つ以上の磁気ディスク記憶デバイス、フラッシュメモリデバイス、又は他の不揮発性ソリッドステートメモリデバイスなどの不揮発性メモリを含む。CPU(単数又は複数)120及び周辺機器インタフェース118などのデバイス100の他の構成要素によるメモリ102へのアクセスは任意選択で、メモリコントローラ122により制御される。
周辺機器インタフェース118が使用され、デバイスの入力及び出力周辺機器を、CPU(単数又は複数)120及びメモリ102と結合することができる。1つ以上のプロセッサ120は、メモリ102に記憶された様々なソフトウェアプログラム及び/又は命令セットを動作させる、又は実行して、デバイス100のための様々な機能を実行し、データを処理する。
いくつかの実施形態では、周辺機器インタフェース118、CPU(単数又は複数)120、及びメモリコントローラ122は任意選択で、チップ104などの単一チップ上で実装される。いくつかの他の実施形態では、それらは別々のチップ上に任意選択的に実装される。
RF(radio frequency)(無線周波数)回路108は、電磁信号とも呼ばれるRF信号を送受信する。RF回路108は、電気信号を電磁信号に、又は電磁信号を電気信号に変換し、電磁信号を介して通信ネットワーク及び他の通信デバイスと通信する。RF回路108は、任意選択的に、これらの機能を実行するための周知の回路を含み、それらの回路としては、限定するものではないが、アンテナシステム、RF送受信機、1つ以上の増幅器、同調器、1つ以上の発振器、デジタル信号プロセッサ、CODECチップセット、加入者識別モジュール(subscriber identity module、SIM)カード、メモリなどが挙げられる。RF回路108は、任意選択的に、ワールドワイドウェブ(World Wide Web、WWW)とも呼ばれるインターネット、イントラネット、並びに/又はセルラー電話ネットワーク、無線ローカルエリアネットワーク(local area network、LAN)及び/若しくはメトロポリタンエリアネットワーク(metropolitan area network、MAN)などの無線ネットワークなどのネットワークと、また他のデバイスと、無線通信によって通信する。無線通信は任意選択で、移動通信のためのグローバルシステム(Global System for Mobile Communications、GSM)、拡張データGSM環境(Enhanced Data GSM Environment、EDGE)、高速ダウンリンクパケット接続(high-speed downlink packet access、HSDPA)、高速アップリンクパケット接続(high-speed uplink packet access、HSUPA)、Evolution,Data−Only(EV−DO)、HSPA、HSPA+、デュアルセルHSPA(Dual-Cell HSPA、DC−HSPDA)、ロングタームエボリューション(long term evolution、LTE)、近距離無線通信(near field communication、NFC)、広帯域符号分割多元接続(wideband code division multiple access、W−CDMA)、符号分割多元接続(code division multiple access、CDMA)、時分割多元接続(time division multiple access、TDMA)、Bluetooth、Wireless Fidelity(Wi−Fi)(例えば、IEEE 802.11a、IEEE 802.11ac、IEEE 802.11ax、IEEE 802.11b、IEEE 802.11g、及び/若しくはIEEE 802.11n)、ボイスオーバーインターネットプロトコル(voice over Internet Protocol、VoIP)、Wi−MAX、電子メールのためのプロトコル(例えば、インターネットメッセージアクセスプロトコル(Internet message access protocol、IMAP)及び/若しくはポストオフィスプロトコル(post office protocol、POP))、インスタントメッセージング(例えば、拡張可能メッセージング及びプレゼンスプロトコル(extensible messaging and presence protocol、XMPP)、インスタントメッセージング及びプレゼンス利用拡張向けセッション開始プロトコル(Session Initiation Protocol for Instant Messaging and Presence Leveraging Extensions、SIMPLE)、インスタントメッセージング及びプレゼンスサービス(Instant Messaging and Presence Service、IMPS))、並びに/又はショートメッセージサービス(Short Message Service、SMS)、あるいは本文書の出願日現在までにまだ開発されていない通信プロトコルを含む任意の他の適切な通信プロトコルを含むが、それらに限定されない、複数の通信規格、通信プロトコル、及び通信技術のうちのいずれかを使用する。
オーディオ回路110、スピーカ111、及びマイクロフォン113は、ユーザとデバイス100との間のオーディオインタフェースを提供する。オーディオ回路110は、周辺機器インタフェース118からオーディオデータを受信し、このオーディオデータを電気信号に変換し、この電気信号をスピーカ111に伝送する。スピーカ111は、電気信号を人間の可聴音波に変換する。また、オーディオ回路110は、マイクロフォン113によって音波から変換された電気信号を受信する。オーディオ回路110は、電気信号をオーディオデータに変換し、このオーディオデータを処理のために周辺機器インタフェース118に伝送する。オーディオデータは、任意選択的に、周辺機器インタフェース118によって、メモリ102及び/若しくはRF回路108から取得され、かつ/又はメモリ102及び/若しくはRF回路108に伝送される。いくつかの実施形態では、音声回路110は、更にヘッドセットジャック(例えば、212、図2)も含む。ヘッドセットジャックは、オーディオ回路110と、出力専用ヘッドホン又は出力(例えば片耳又は両耳用のヘッドホン)及び入力(例えばマイクロフォン)の両方を有するヘッドセットなどの着脱可能なオーディオ入出力周辺機器との間のインタフェースを提供する。
I/Oサブシステム106は、タッチ感知ディスプレイシステム112及びその他の入力又は制御デバイス116などのデバイス100上の入出力周辺機器を周辺機器インタフェース118と結合する。I/Oサブシステム106は、任意選択的に、ディスプレイコントローラ156、光センサコントローラ158、強度センサコントローラ159、触覚フィードバックコントローラ161、及び他の入力若しくは制御デバイスのための1つ以上の入力コントローラ160を含む。1つ以上の入力コントローラ160は、その他の入力又は制御デバイス116から電気信号を受信し、それらへ電気信号を送信する。その他の入力又は制御デバイス116は任意選択で、物理的ボタン(例えば、プッシュボタン、ロッカボタンなど)、ダイヤル、スライダスイッチ、ジョイスティック、クリックホイールなどを含む。いくつかの代替的実施形態では、入力コントローラ(単数又は複数)160は任意選択で、キーボード、赤外線ポート、USBポート、スタイラス、及び/又はマウスなどのポインタデバイスのうちのいずれかと結合される(又は、いずれにも結合されない)。1つ以上のボタン(例えば、208、図2)は、任意選択で、スピーカ111及び/又はマイクロフォン113の音量制御のためのアップ/ダウンボタンを含む。1つ以上のボタンは、任意選択で、プッシュボタン(例えば、206、図2)を含む。
タッチ感知ディスプレイシステム112は、デバイスとユーザの間の入力インタフェース及び出力インタフェースを提供する。ディスプレイコントローラ156は、タッチ感知ディスプレイシステム112から電気信号を受信し、及び/又はタッチ感知ディスプレイシステム112へ電気信号を送信する。タッチ感知ディスプレイシステム112は、ユーザに視覚出力を表示する。この視覚出力は、グラフィック、テキスト、アイコン、ビデオ、及びそれらの任意の組み合わせ(総称して「グラフィック」)を任意選択的に含む。いくつかの実施形態では、視覚出力の一部又はすべては、ユーザインタフェースオブジェクトに対応する。本明細書で使用されるように、用語「アフォーダンス」は、ユーザ−対話形式のグラフィカルユーザインタフェースオブジェクト(例えば、グラフィカルユーザインタフェースオブジェクトに向かって方向付けられた入力に応答するように構成されているグラフィカルユーザインタフェースオブジェクト)を指す。ユーザ対話形式のグラフィカルユーザインタフェースオブジェクトの例は、ボタン、スライダ、アイコン、選択可能メニュー項目、スイッチ、ハイパーリンク、又はその他のユーザインタフェース制御を含むが、それらに限定されない。
タッチ感知ディスプレイシステム112は、触覚及び/又は触知の接触に基づくユーザからの入力を受け付けるタッチ感知面、センサ、又はセンサのセットを有する。(メモリ102内の任意の関連するモジュール及び/又は命令セットとともに)タッチ感知ディスプレイシステム112及びディスプレイコントローラ156は、タッチ感知ディスプレイシステム112上の接触(及び、接触の任意の移動又は中断)を検出し、検出された接触をタッチ感知ディスプレイシステム112上で表示されるユーザインタフェースオブジェクト(例えば、1つ以上のソフトキー、アイコン、ウェブページ、又は画像)との相互作用に変換する。いくつかの実施形態では、タッチ感知ディスプレイシステム112とユーザとの間の接触点は、ユーザの指又はスタイラスに対応する。
タッチ感知ディスプレイシステム112は任意選択で、LCD(liquid crystal display)(液晶ディスプレイ)技術、LPD(light emitting polymer display)(発光ポリマディスプレイ)技術、又はLED(light emitting diode)(発光ダイオード)技術を使用するが、他の実施形態では、他のディスプレイ技術が使用される。タッチ感知ディスプレイシステム112及びディスプレイコントローラ156は任意選択で、容量技術、抵抗性技術、赤外線技術、及び表面音響波技術、並びに、タッチ感知ディスプレイシステム112との1つ以上の接触点を判定するためのその他の近接センサアレイ又は他の要素を含むが、これらに限定されない、現在既知の又は後に開発される複数のタッチ感知技術のうちのいずれかを使用して、接触及びその任意の移動又は中断を検出する。いくつかの実施形態では、Cupertino、CaliforniaのApple Inc.からのiPhone(登録商標)、iPod Touch(登録商標)、及びiPad(登録商標)などにおいて見られるような、投影型相互キャパシタンス検知技術が使用される。
タッチ感知ディスプレイシステム112は任意選択で、100dpiを超えるビデオ解像度を有する。いくつかの実施形態では、タッチスクリーンの映像解像度は、400dpiを超える(例えば、500dpi、800dpi、又はより高い)。ユーザは任意選択で、スタイラス、指などの任意の適切な物体又は付属物を使用して、タッチ感知ディスプレイシステム112と接触する。いくつかの実施形態では、ユーザインタフェースは、指に基づく接触及びジェスチャで機能するように設計されるが、これらは、タッチスクリーン上での指の接触面積がスタイラスの接触面積よりも大きいことに起因して、スタイラスに基づく入力よりも精度が低い場合がある。いくつかの実施形態では、デバイスは、指に基づく粗い入力を、ユーザによって所望されているアクションを実行するための、正確なポインタ/カーソルの位置又はコマンドに変換する。
いくつかの実施形態では、タッチスクリーンに加えて、デバイス100は、任意選択的に、特定の機能をアクティブ化又は非アクティブ化するためのタッチパッド(図示せず)を含む。いくつかの実施形態では、タッチパッドは、タッチスクリーンとは異なり、視覚出力を表示しない、装置のタッチ感知エリアである。タッチパッドは任意選択で、タッチ感知ディスプレイシステム112と分離したタッチ感知面、又はタッチスクリーンによって形成されたタッチ感知面の延長である。
デバイス100は、また、様々なコンポーネントに電力を供給する電力システム162を含む。電力システム162は、任意選択的に、電力管理システム、1つ以上の電源(例えば、バッテリ、交流(AC))、再充電システム、停電検出回路、電力コンバータ又はインバータ、電力状態インジケータ(例えば、発光ダイオード(LED))、並びにポータブルデバイス内での電力の生成、管理、及び分配に関連付けられた任意の他の構成要素を含む。
デバイス100はまた、(例えば、1つ以上のカメラの一部として)1つ以上の光センサ164を任意選択的に含む。図1Aは、I/Oサブシステム106内の光センサコントローラ158と結合された光センサを示す。光センサ(単数又は複数)164は、任意選択で、電荷結合デバイス(charge-coupled device、CCD)又は相補的金属酸化膜半導体(complementary metal-oxide semiconductor、CMOS)フォトトランジスタを含む。光センサ(単数又は複数)164は、1つ以上のレンズを通じて投影された、環境からの光を受信し、画像を表すデータに光を変換する。撮像モジュール143(カメラモジュールとも呼ばれる)と連携して、光センサ(単数又は複数)164は任意選択で、静止画像及び/又はビデオをキャプチャする。いくつかの実施形態では、タッチスクリーンを静止画像及び/又はビデオ画像取得のためのビューファインダとして使用することができるように、光センサは、デバイスの前面上のタッチ感知ディスプレイシステム112の反対である、デバイス100の背面上に配置される。いくつかの実施形態では、ユーザの画像が取得されるように(例えば、自撮りのため、ユーザがタッチスクリーン上で他のビデオ会議参加者を見ている間のビデオ会議のためなど)、別の光センサがデバイスの前面に配置される。
また、デバイス100は、任意選択的に、1つ以上の接触強度センサ165を含む。図1Aは、I/Oサブシステム106内の強度センサコントローラ159と結合された接触強度センサを示す。接触強度センサ(単数又は複数)165は、1つ以上のピエゾ抵抗ひずみゲージ、電気容量式力センサ、電気力センサ、圧電力センサ、光学力センサ、容量式タッチ感知面、又は他の強度センサ(例えば、タッチ感知面上の接触の力(若しくは圧力)を測定するために使用されるセンサ)を任意選択で含む。接触強度センサ(単数又は複数)165は、環境から接触強度情報(例えば、圧力情報又は圧力情報のためのプロキシ)を受信する。いくつかの実施形態では、少なくとも1つの接触強度センサは、タッチ感知面(例えばタッチ感知ディスプレイシステム112)と並置される、又はそれに近接している。いくつかの実施形態では、少なくとも1つの接触強度センサは、デバイス100の前面上に位置するタッチスクリーンディスプレイシステム112の反対である、デバイス100の背面上に配置される。
また、デバイス100は、任意選択的に、1つ以上の近接センサ166を含む。図1Aは、周辺機器インタフェース118と結合された近接センサ166を示す。代わりに、近接センサ166は、I/Oサブシステム106内の入力コントローラ160と結合される。いくつかの実施形態では、多機能デバイスがユーザの耳の近くに配置されるとき(例えば、ユーザが電話通話を行っているとき)、近接センサは、タッチ感知ディスプレイシステム112をターンオフ及び無効にする。
また、デバイス100は、任意選択的に、1つ以上の触知出力生成器163を含む。図1Aは、I/Oサブシステム106内の触覚フィードバックコントローラ161と結合され触知出力生成器を示す。いくつかの実施形態では、触知出力生成器(単数又は複数)163は、スピーカ若しくは他のオーディオ構成要素などの1つ以上の電気音響デバイス、及び/又はモータ、ソレノイド、電気活性ポリマー、圧電アクチュエータ、静電アクチュエータ、若しくは他の触知出力生成構成要素(例えば、デバイス上で電気信号を触知出力に変換する構成要素)などの、エネルギを線形の動きに変換する電気機械デバイスを含む。触知出力生成器(単数又は複数)163は、触覚フィードバックモジュール133から触知フィードバック生成命令を受信し、デバイス100のユーザが感知できる触知出力をデバイス100上に生成する。いくつかの実施形態では、少なくとも1つの触知出力生成器は、タッチ感知面(例えば、タッチ感知ディスプレイシステム112)に配置されているか、又はそれに近接しており、任意選択的に、タッチ感知面を垂直方向(例えば、デバイス100の表面の内/外)に、又は水平方向(例えば、デバイス100の表面と同じ平面内の前後)に動かすことによって、触知出力を生成する。いくつかの実施形態では、少なくとも1つの触知出力生成器センサは、デバイス100の前面上に位置するタッチ感知ディスプレイシステム112の反対である、デバイス100の背面上に配置される。
デバイス100はまた、デバイスの位置(例えば、姿勢)に関する情報を得るための、1つ以上の加速度計167、ジャイロスコープ168、及び/又は磁気計169(例えば、慣性測定ユニット(inertial measurement unit、IMU)の一部として)を、任意選択的に含む。図1Aは、周辺機器インタフェース118に結合された、センサ167、168、及び169を示す。あるいは、センサ167、168、及び169は、I/Oサブシステム106内の入力コントローラ160に、任意選択的に結合される。いくつかの実施形態では、情報は、1つ以上の加速度計から受信されたデータの分析に基づいて、縦長ビュー又は横長ビュー内でタッチスクリーンディスプレイ上に表示される。デバイス100は、デバイス100の場所に関する情報を得るためのGPS(若しくはGLONASS又は他の全地球的航法システム)受信機(図示せず)を任意選択的に含む。
いくつかの実施形態では、メモリ102に記憶されたソフトウェア構成要素は、オペレーティングシステム126、通信モジュール(又は、命令セット)128、接触/動きモジュール(又は、命令セット)130、グラフィックモジュール(又は、命令セット)132、触覚フィードバックモジュール(又は、命令セット)133、テキスト入力モジュール(又は、命令セット)134、全地球測位システム(Global Positioning System)(GPS)モジュール(又は、命令セット)135、及びアプリケーション(又は、命令セット)136を含む。更に、いくつかの実施形態では、図1A及び図3に示されるように、メモリ102は、デバイス/グローバル内部状態157を記憶する。デバイス/グローバル内部状態157は、現在アクティブ状態のアプリケーションがある場合に、どのアプリケーションがアクティブであるかを示す、アクティブアプリケーション状態、どのアプリケーション、ビュー、又は他の情報がタッチ感知ディスプレイシステム112の様々な領域を占有しているかを示す表示状態、デバイスの様々なセンサ及びその他の入力又は制御デバイス116から取得される情報を含むセンサ状態、並びにデバイスの位置及び/又は姿勢に関する位置及び/若しくは位置情報、のうちの1つ以上を含む。
オペレーティングシステム126(例えば、iOS、Android、Darwin、RTXC、LINUX、UNIX、OS X、WINDOWS、又はVxWorksなどの組み込みオペレーティングシステム)は、全体的なシステムタスク(例えば、メモリ管理、記憶デバイス制御、電力管理など)を制御及び管理するための様々なソフトウェア構成要素及び/又はドライバを含み、様々なハードウェア構成要素とソフトウェア構成要素の間の通信を促進する。
通信モジュール128は、1つ以上の外部ポート124を介して他のデバイスとの通信を容易にし、RF回路108及び/又は外部ポート124が受信したデータを処理するための様々なソフトウェア構成要素をも含む。外部ポート124(例えばユニバーサルシリアルバス(Universal Serial Bus、USB)、FIREWIRE(登録商標)など)は、直接的に、又はネットワーク(例えばインターネット、無線LANなど)を介して間接的に、他のデバイスに連結するように適合されている。いくつかの実施形態では、外部ポートは、Cupertino、CaliforniaのApple Inc.からのいくつかのiPhone(登録商標)、iPod Touch(登録商標)、及びiPad(登録商標)デバイス内で使用される30ピンコネクタと同一若しくは類似した、及び/又は互換性のあるマルチピン(例えば、30ピン)コネクタである。いくつかの実施形態では、外部ポートは、Cupertino、CaliforniaのApple Inc.からのいくつかのiPhone(登録商標)、iPod Touch(登録商標)、及びiPad(登録商標)デバイスにおいて使用されるLightningコネクタと同一若しくは類似した、及び/又は互換性のあるLightningコネクタである。いくつかの実施形態では、外部ポートは、Cupertino、CaliforniaのApple Inc.からのいくつかの電子デバイス内で使用されるUSB Type−Cコネクタと同一若しくは類似した、かつ/又は互換性のあるUSB Type−Cコネクタである。
接触/動きモジュール130は任意選択で、タッチ感知ディスプレイシステム112との接触(ディスプレイコントローラ156と連携して)、及び他のタッチ感知デバイスとの接触(例えば、タッチパッド又は物理クリックホイール)を検出する。接触/動きモジュール130は、接触が発生したかを判定すること(例えば、指ダウンイベントを検出する)、接触の強度を判定すること(例えば、接触の力若しくは圧力、又は接触の力若しくは圧力に代替するもの)、接触の移動があるかを判定すること及びタッチ感知面を横切る移動を追跡すること(例えば、1つ以上の指のドラッグイベントを検出する)、及び接触が停止したかどうかを判定すること(例えば、指アップイベント又は接触の中断を検出する)などの、接触の検出(例えば、指又はスタイラスによる)に関連する様々な動作を実行するためのソフトウェア構成要素を含む。接触/動きモジュール130は、タッチ感知面から接触データを受信する。一連の接触データによって表される、接触点の移動を判定することは、任意選択的に、接触点の速さ(大きさ)、速度(大きさ及び方向)、及び/又は加速度(大きさ及び/又は方向の変化)を判定することを含む。これらの動作は、任意選択で、単一の接触(例えば、1本の指の接触又はスタイラスの接触)又は複数の同時接触(例えば、「マルチタッチ」/複数の指の接触)に適用される。いくつかの実施形態では、接触/動きモジュール130及びディスプレイコントローラ156は、タッチパッド上の接触を検出する。
接触/動きモジュール130は、任意選択的に、ユーザによるジェスチャ入力を検出する。タッチ感知面上の異なるジェスチャは、異なる接触パターンを有する(例えば検出される接触の動き、タイミング、及び/又は強度が異なる)。従って、ジェスチャは、任意選択的に、特定の接触パターンを検出することによって検出される。例えば、指のタップジェスチャを検出することは、フィンガダウンイベントを検出し、続いて(例えば、アイコンの位置での)そのフィンガダウンイベントと同一の位置(又は、実質的に同一の位置)でのフィンガアップ(リフトオフ)イベントを検出することを含む。別の実施例として、タッチ感知面上の指のスワイプジェスチャを検出することは、フィンガダウンイベントを検出し、続いて1つ以上の指のドラッグイベントを検出し、その後、フィンガアップ(リフトオフ)イベントを検出することを含む。同様に、タップ、スワイプ、ドラッグ、及び他のジェスチャは、任意選択で、スタイラスに対して、スタイラスに対する特定の接触パターンを検出することにより、検出される。
いくつかの実施形態では、指のタップジェスチャを検出することは、指ダウンイベントを検出することと指アップイベントを検出することとの間の時間の長さに依存するが、指ダウンイベントを検出することと指アップイベントを検出することとの間の指の接触の強度とは関連しない。いくつかの実施形態では、タップジェスチャは、タップの間の指の接触の強度が、軽い押圧又は深い押圧強度閾値などの所与の強度閾値を満たす(名目上の接触検出強度閾値よりも大きい)かに関わらず、指ダウンイベントと指アップイベントの間の時間の長さが予め定められた値よりも短い(例えば、0.1、0.2、0.3、0.4又は0.5秒よりも短い)との判定に従って検出される。従って、指のタップジェスチャは、特定の入力基準が満たされるために、接触の特性強度が所与の強度閾値を満たすことを必要としない特定の入力基準を満たすことができる。明確にするために、タップジェスチャにおける指の接触は一般的に、指ダウンイベントを検出するために、それを下回ると接触が検出されない名目上の接触検出強度閾値を満たす必要がある。同様の分析は、スタイラスによるタップジェスチャ又は他の接触を検出することに適用される。デバイスがタッチ感知面上をホバリングする指又はスタイラスの接触を検出することが可能なケースでは、名目上の接触検出強度閾値は任意選択で、指又はスタイラスとタッチ感知面の間の物理的接触に対応しない。
同様の方式で、同一の概念が他のタイプのジェスチャに適用される。例えば、スワイプジェスチャ、ピンチジェスチャ、デピンチジェスチャ、及び/又は長い押圧ジェスチャは任意選択で、ジェスチャに含まれる接触の強度と関係しない、又は認識されるためにジェスチャを実行する接触が強度閾値に到達することを必要としないのいずれかである基準を満たすことに基づいて検出される。例えば、スワイプジェスチャは、1つ以上の接触の移動量に基づいて検出され、ピンチジェスチャは、相互に向かう2つ以上の接触の移動に基づいて検出され、デピンチジェスチャは、相互に離れる2つ以上の接触の移動に基づいて検出され、長い押圧ジェスチャは、閾値移動量よりも小さいタッチ感知面上の接触の期間に基づいて検出される。従って、特定のジェスチャ認識基準が満たされるために、接触(単数又は複数)の強度が対応する強度閾値を満たすことを特定のジェスチャ認識基準が必要としないという記述は、ジェスチャにおける接触(複数可)が対応する強度閾値に到達しない場合に特定のジェスチャ認識基準が満たされることが可能であること、及びジェスチャにおける接触のうちの1つ以上が対応する強度閾値に到達する、又は強度閾値を超える状況で満たされることも可能であることを意味する。いくつかの実施形態では、タップジェスチャは、接触が所定の期間の間にそれぞれの強度閾値を上回るか又は下回るかに関わらず、指ダウンイベント及び指アップイベントが所定の期間内で検出されたという判定に基づいて検出され、スワイプジェスチャは、接触が接触の移動の終わりにそれぞれの強度閾値を上回る場合でさえ、接触の移動が所定の大きさよりも大きいという判定に基づいて検出される。ジェスチャの検出がジェスチャを実行する接触の強度によって影響される実施態様でさえ(例えば、接触の強度が強度閾値を上回るときにデバイスが長い押圧をより素早く検出し、又は接触の強度がより高いときにデバイスがタップ入力の検出に遅れる)、接触が特定の強度閾値に到達しない状況でジェスチャを認識する基準を満たすことができる限り(例えば、ジェスチャを認識するために要する時間量が変化する場合でさえ)、それらのジェスチャの検出は、接触が特定の強度閾値に到達することを必要としない。
接触強度閾値、期間閾値、及び移動閾値は、一部の状況では、同一の入力要素又は領域に方向付けられる2つ以上の異なるジェスチャを区別するためのヒューリスティックを作成するために、様々な異なる組み合わせで組み合わされ、それによって、同一の入力要素との複数の異なる相互作用がより豊かなセットのユーザ相互作用及び応答を提供するように有効化される。特定のジェスチャ認識基準が満たされるために、接触(単数又は複数)の強度が対応する強度閾値を満たすことをジェスチャ認識基準の特定のセットが必要としない記述は、ジェスチャが対応する強度閾値を上回る強度を有する接触を含むときに満たされる基準を有する他のジェスチャを識別するための他の強度依存ジェスチャ認識基準の同時評価を排除しない。例えば、いくつかの状況では、第1のジェスチャ認識基準が満たされるために、接触(単数又は複数)の強度が対応する強度閾値を満たすことを必要としない第1のジェスチャのための第1のジェスチャ認識基準は、対応する強度閾値に到達する接触(複数可)に依存する第2のジェスチャのための第2のジェスチャ認識基準との競争関係にある。そのような競争では、ジェスチャは任意選択で、第2のジェスチャのための第2のジェスチャ認識基準が最初に満たされる場合に、第1のジェスチャのための第1のジェスチャ認識基準を満たすものとして認識されない。例えば、接触が所定の移動量を移動する前に接触が対応する強度閾値に到達する場合、スワイプジェスチャではなく深い押圧ジェスチャが検出される。逆に、接触が対応する強度閾値に到達する前に接触が所定の移動量を移動する場合、深い押圧ジェスチャではなくスワイプジェスチャが検出される。そのような状況でさえ、第1のジェスチャのための第1のジェスチャ認識基準は、第1のジェスチャ認識基準が満たされるために、接触(単数又は複数)の強度が対応する強度閾値を満たすことをなおも必要としないが、これは、ジェスチャの終わりまで接触が対応する強度閾値を下回ったままであった場合(例えば、対応する強度閾値を上回る強度まで増加しない接触を有するスワイプジェスチャ)、ジェスチャは、スワイプジェスチャとして第1のジェスチャ認識基準によって認識されているからである。そのようにして、特定のジェスチャ認識基準が満たされるために、接触(単数又は複数)の強度が対応する強度閾値を満たすことを必要としない特定のジェスチャ認識基準は、(A)いくつかの状況では、強度閾値(例えば、タップジェスチャのための)に関して接触の強度を無視し、及び/又は(B)いくつかの状況では、特定のジェスチャ認識基準が入力に対応するジェスチャ(例えば、認識のための深い押圧ジェスチャと競争する長い押圧ジェスチャのための)を認識する前に、強度依存ジェスチャ認識基準の競争するセット(例えば、深い押圧ジェスチャのための)が強度依存ジェスチャに対応するものとして入力を認識する場合、特定のジェスチャ認識基準(例えば、長い押圧ジェスチャのための)が機能しないという意味で、強度閾値に関して接触の強度になおも依存している。
加速度計167、ジャイロスコープ168、及び/又は磁気計169と連動して、姿勢モジュール131は、特定の座標系内のデバイスの姿勢(例えば、ロール、ピッチ、及び/又はヨー)などの、デバイスに関する姿勢情報を任意選択的に検出する。姿勢モジュール131は、デバイスの位置の検出及びデバイスの姿勢の変化の検出に関係する、様々な動作を実行するためのソフトウェア構成要素を含む。
グラフィックモジュール132は、表示されるグラフィックの視覚的影響(例えば、輝度、透明度、彩度、コントラスト、又は他の視覚特性)を変更するための構成要素を含む、タッチ感知ディスプレイシステム112又は他のディスプレイ上でグラフィックをレンダリング及び表示するための様々な既知のソフトウェア構成要素を含む。本明細書で使用される場合、用語「グラフィック」は、テキスト、ウェブページ、アイコン(ソフトキーを含むユーザインタフェースオブジェクトなど)、デジタル画像、ビデオ、及びアニメーションなどを含むがこれらに限定されない、ユーザに対して表示することができるいずれかのオブジェクトを含む。
いくつかの実施形態では、グラフィックモジュール132は、使用されることになるグラフィックを表すデータを記憶する。各グラフィックには、任意選択的に、対応するコードが割り当てられる。グラフィックモジュール132は、アプリケーションなどから、必要に応じて、座標データ及び他のグラフィック特性データと共に、表示されることとなるグラフィックを指定する1つ以上のコードを受信し、次にディスプレイコントローラ156に出力するスクリーンの画像データを生成する。
触覚フィードバックモジュール133は、デバイス100とのユーザ相互作用に応じて、触知出力生成器(単数又は複数)163を使用してデバイス100上の1つ以上の位置において触知出力を作成する命令(例えば、触覚フィードバックコントローラ161によって使用される命令)を生成する様々なソフトウェア構成要素を含む。
テキスト入力モジュール134は、任意選択で、グラフィックモジュール132の構成要素であり、様々なアプリケーション(例えば、連絡先137、電子メール140、IM141、ブラウザ147、及びテキスト入力を必要とする任意の他のアプリケーション)でテキストを入力するためのソフトキーボードを提供する。
GPSモジュール135は、デバイスの位置を判定し、この情報を、様々なアプリケーションで使用するために(例えば、位置に基づく電話発信で使用するために電話138へ、写真/ビデオのメタデータとしてカメラ143へ、並びに、気象ウィジェット、地域のイエローページウィジェット、及びマップ/ナビゲーションウィジェットなどの、位置に基づくサービスを提供するアプリケーションへ)提供する。
仮想/拡張現実モジュール145は、拡張現実機能、いくつかの実施形態では、仮想現実機能を実装するアプリケーション136に、仮想現実論理及び/又は拡張現実論理を提供する。仮想/拡張現実モジュール145は、1つ以上のカメラの視野の少なくとも一部分の表現への、仮想ユーザインタフェースオブジェクトなどの仮想コンテンツの重ね合わせを容易にする。例えば、仮想/拡張現実モジュール145からの支援により、1つ以上のカメラの視野の少なくとも一部分の表現は、対応する物理的オブジェクトを含んでもよく、仮想ユーザインタフェースオブジェクトは、1つ以上のカメラの視野内の対応する物理的オブジェクトに基づいて判定される、表示された拡張現実環境、又はコンピュータシステムの少なくとも一部分の姿勢(例えば、ユーザインタフェースをコンピュータシステムのユーザに表示するために使用される表示デバイスの姿勢)に基づいて判定される、仮想現実環境内の位置に表示されてもよい。
アプリケーション136は、任意選択的に、以下のモジュール(又は命令セット)又はそれらのサブセット若しくはスーパーセットを含む。
●連絡先モジュール137(時には、アドレス帳又は連絡先リストとも呼ぶ)、
●電話モジュール138、
●ビデオ会議モジュール139、
●電子メールクライアントモジュール140、
●インスタントメッセージング(IM)モジュール141、
●トレーニングサポートモジュール142、
●静止画像及び/又はビデオ画像用のカメラモジュール143、
●画像管理モジュール144、
●ブラウザモジュール147、
●カレンダモジュール148、
●気象ウィジェット149−1、株価ウィジェット149−2、計算機ウィジェット149−3、アラーム時計ウィジェット149−4、辞書ウィジェット149−5、及びユーザによって取得された他のウィジェット、並びにユーザ作成ウィジェット149−6のうちの1つ以上を任意選択的に含む、ウィジェットモジュール149、
●ユーザ作成ウィジェット149−6を作成するためのウィジェットクリエータモジュール150、
●検索モジュール151、
●任意選択的にビデオプレーヤモジュール及び音楽プレーヤモジュールから構成されている、ビデオ及び音楽プレーヤモジュール152、
●メモモジュール153、
●マップモジュール154、及び/又は
●オンラインビデオモジュール155。
任意選択的にメモリ102に記憶される他のアプリケーション136の例としては、他のワードプロセッシングアプリケーション、他の画像編集アプリケーション、描画アプリケーション、プレゼンテーションアプリケーション、JAVA(登録商標)対応アプリケーション、暗号化、デジタル著作権管理、音声認識、及び音声複製が挙げられる。
タッチ感知ディスプレイシステム112、ディスプレイコントローラ156、接触モジュール130、グラフィックモジュール132、及びテキスト入力モジュール134とともに、連絡先モジュール137は、(例えば、メモリ102又はメモリ370内の連絡先モジュール137のアプリケーション内部状態192に記憶される)アドレス帳又は連絡先リストを管理するための実行可能命令を含み、それには、アドレス帳に名前(単数又は複数)を加えること、アドレス帳から名前(単数又は複数)を削除すること、電話番号(単数又は複数)、電子メールアドレス(単数又は複数)、住所(単数又は複数)、又は他の情報を名前に関連付けること、画像を名前に関連付けること、名前を分類して並べ替えること、電話番号及び/又は電子メールアドレスを提供して、電話138、ビデオ会議139、電子メール140、又はIM141による通信を開始及び/若しくは促進すること、などが含まれる。
RF回路108、音声回路110、スピーカ111、マイクロフォン113、タッチ感知ディスプレイシステム112、ディスプレイコントローラ156、接触モジュール130、グラフィックモジュール132、及びテキスト入力モジュール134と連携して、電話モジュール138は、電話番号に対応する一連の文字を入力し、アドレス帳137内の1つ以上の電話番号にアクセスし、入力されている電話番号を変更し、それぞれの電話番号をダイヤルし、会話を実行し、会話が完了したときに切断し又は電話を切る実行可能命令を含む。上述のように、無線通信は、任意選択で、複数の通信規格、プロトコル、及び技術のうちのいずれかを使用する。
RF回路108、音声回路110、スピーカ111、マイクロフォン113、タッチ感知ディスプレイシステム112、ディスプレイコントローラ156、光センサ(単数又は複数)164、光センサコントローラ158、接触モジュール130、グラフィックモジュール132、テキスト入力モジュール134、連絡先リスト137、及び電話モジュール138と連携して、ビデオ会議モジュール139は、ユーザの命令に従って、ユーザと1人以上の他の参加者の間のビデオ会議を開始し、行い、終了する実行可能命令を含む。
RF回路108、タッチ感知ディスプレイシステム112、ディスプレイコントローラ156、接触モジュール130、グラフィックモジュール132、及びテキスト入力モジュール134と連携して、電子メールクライアントモジュール140は、ユーザの指示に応じて、電子メールを作成し、送信し、受信し、管理する実行可能命令を含む。画像管理モジュール144と連動して、電子メールクライアントモジュール140は、カメラモジュール143で撮影された静止画像又はビデオ画像を有する電子メールの作成及び送信を非常に容易にする。
RF回路108、タッチ感知ディスプレイシステム112、ディスプレイコントローラ156、接触モジュール130、グラフィックモジュール132、及びテキスト入力モジュール134と連携して、インスタントメッセージモジュール141は、インスタントメッセージに対応する一連の文字を入力し、前に入力された文字を修正し、それぞれのインスタントメッセージを送信し(例えば、電話ベースのインスタントメッセージのためのショートメッセージサービス(SMS)若しくはマルチメディアメッセージサービス(Multimedia Message Service、MMS)プロトコルを使用して、又はインターネットベースのインスタントメッセージのためのXMPP、SIMPLE、Apple Push Notification Service(APNs)、若しくはIMPSを使用して)、インスタントメッセージを受信し、受信したインスタントメッセージを見る実行可能命令を含む。いくつかの実施形態では、送信及び/又は受信されたインスタントメッセージは任意選択で、MMS及び/又は拡張メッセージングサービス(Enhanced Messaging Service、EMS)でサポートされるような、グラフィック、写真、音声ファイル、ビデオファイル、及び/又は他の添付ファイルを含む。本明細書で使用される場合、「インスタントメッセージ」は、電話ベースのメッセージ(例えば、SMS又はMMSを使用して送信されたメッセージ)及びインターネットベースのメッセージ(例えば、XMPP、SIMPLE、APNs、又はIMPSを使用して送信されたメッセージ)の両方を指す。
RF回路108、タッチ感知ディスプレイシステム112、ディスプレイコントローラ156、接触モジュール130、グラフィックモジュール132、テキスト入力モジュール134、GPSモジュール135、マップモジュール154、並びにビデオ及び音楽プレーヤモジュール152と連携して、トレーニングサポートモジュール142は、トレーニングを作成し(例えば、時間、距離、及び/又はカロリー消費目標を有する)、(スポーツデバイス及びスマートウォッチ内の)トレーニングセンサと通信し、トレーニングセンサデータの受信、トレーニングをモニタするために使用されるセンサの較正、トレーニングのための音楽を選択して再生する、並びに、トレーニングデータを表示し、記憶し、送信する、実行可能命令を含む。
タッチ感知ディスプレイシステム112、ディスプレイコントローラ156、光センサ(単数又は複数)164、光センサコントローラ158、接触モジュール130、グラフィックモジュール132、及び画像管理モジュール144とともに、カメラモジュール143は、静止画像又はビデオ(ビデオストリームを含む)をキャプチャしてメモリ102にそれらを記憶する、静止画像又はビデオの特性を変更する、及び/又はメモリ102から静止画像若しくはビデオを削除する、実行可能命令を含む。
タッチ感知ディスプレイシステム112、ディスプレイコントローラ156、接触モジュール130、グラフィックモジュール132、テキスト入力モジュール134、及びカメラモジュール143とともに、画像管理モジュール144は、静止画像及び/又はビデオ画像を配置し、変更し(例えば、編集し)、又はその他の方式で操作し、ラベルを付け、削除し、提示し(例えば、デジタルスライドショー又はアルバム内で)、並びに記憶する、実行可能命令を含む。
RF回路108、タッチ感知ディスプレイシステム112、ディスプレイシステムコントローラ156、接触モジュール130、グラフィックモジュール132、及びテキスト入力モジュール134とともに、ブラウザモジュール147は、ウェブページ又はそれらの一部、並びにウェブページにリンクされた添付ファイル及び他のファイルの、検索、リンク付け、受信、及び表示を含め、ユーザの命令に従って、インターネットをブラウズする、実行可能命令を含む。
RF回路108、タッチ感知ディスプレイシステム112、ディスプレイシステムコントローラ156、接触モジュール130、グラフィックモジュール132、テキスト入力モジュール134、電子メールクライアントモジュール140、及びブラウザモジュール147とともに、カレンダモジュール148は、ユーザの命令に従って、カレンダ及びカレンダに関連付けられたデータ(例えば、カレンダ項目、するべきことのリストなど)を作成、表示、変更、及び記憶する、実行可能命令を含む。
RF回路108、タッチ感知ディスプレイシステム112、ディスプレイシステムコントローラ156、接触モジュール130、グラフィックモジュール132、テキスト入力モジュール134、及びブラウザモジュール147とともに、ウィジェットモジュール149は、任意選択で、ユーザによってダウンロードされ使用されるミニアプリケーション(例えば、気象ウィジェット149−1、株価ウィジェット149−2、計算機ウィジェット149−3、アラーム時計ウィジェット149−4、及び辞書ウィジェット149−5)、又はユーザによって作成されるミニアプリケーション(例えば、ユーザ作成ウィジェット149−6)である。いくつかの実施形態では、ウィジェットは、HTML(Hypertext Markup Language;ハイパーテキストマークアップ言語)ファイル、CSS(Cascading Style Sheets;カスケーディングスタイルシート)ファイル、及びJavaScript(登録商標)ファイルを含む。いくつかの実施形態では、ウィジェットは、XML(Extensible Markup Language:拡張可能マークアップ言語)ファイル及びJavaScriptファイル(例えば、Yahoo!ウィジェット)を含む。
RF回路108、タッチ感知ディスプレイシステム112、ディスプレイシステムコントローラ156、接触モジュール130、グラフィックモジュール132、テキスト入力モジュール134、及びブラウザモジュール147と連携して、ウィジェットクリエータモジュール150は、ウィジェットを作成する(例えば、ウェブページのユーザ指定部分をウィジェットに変える)実行可能命令を含む。
タッチ感知ディスプレイシステム112、ディスプレイシステムコントローラ156、接触モジュール130、グラフィックモジュール132、及びテキスト入力モジュール134と連携して、検索モジュール151は、ユーザの命令に従って、1つ以上の検索基準(例えば、1つ以上のユーザ指定の検索語句)と一致する、メモリ102内のテキスト、音楽、サウンド、画像、ビデオ、及び/又は他のファイルを検索する実行可能命令を含む。
タッチ感知ディスプレイシステム112、ディスプレイシステムコントローラ156、接触モジュール130、グラフィックモジュール132、音声回路110、スピーカ111、RF回路108、及びブラウザモジュール147と連携して、ビデオ及び音楽プレーヤモジュール152は、MP3又はAACファイルなどの1つ以上のファイル形式で記憶された記録された音楽又は他のサウンドファイルをユーザがダウンロード及び再生することを可能にする実行可能命令、並びにビデオを表示し、提示し、又はその他の方式で再生する(例えば、タッチ感知ディスプレイシステム112上で、又は無線で若しくは外部ポート124を介して接続された外部のディスプレイ上で)実行可能命令を含む。いくつかの実施形態では、デバイス100は、任意選択的に、iPod(Apple社の商標)などのMP3プレーヤの機能を含む。
タッチ感知ディスプレイシステム112、ディスプレイコントローラ156、接触モジュール130、グラフィックモジュール132、及びテキスト入力モジュール134と連携して、メモモジュール153は、ユーザの命令に従って、メモ、するべきことのリストなどを作成及び管理する実行可能命令を含む。
RF回路108、タッチ感知ディスプレイシステム112、ディスプレイシステムコントローラ156、接触モジュール130、グラフィックモジュール132、テキスト入力モジュール134、GPSモジュール135、及びブラウザモジュール147と連携して、マップモジュール154は、ユーザの命令に従って、地図及び地図と関連付けられたデータ(例えば、運転方向、特定の位置における又はその近くの店舗及び対象となる他の地点についてのデータ、並びに位置に基づく他のデータ)を受信し、表示し、変更し、記憶する実行可能命令を含む。
タッチ感知ディスプレイシステム112、ディスプレイシステムコントローラ156、接触モジュール130、グラフィックモジュール132、音声回路110、スピーカ111、RF回路108、テキスト入力モジュール134、電子メールクライアントモジュール140、及びブラウザモジュール147と連携して、オンラインビデオモジュール155は、ユーザがH.264などの1つ以上のファイル形式のオンラインビデオにアクセスし、閲覧し、受信し(例えば、ストリーミング及び/又はダウンロードにより)、再生し(例えば、タッチスクリーン112上で、又は無線で若しくは外部ポート124を介して接続された外部のディスプレイ上で)、特定のオンラインビデオへのリンクを有する電子メールを送信し、別の方法で管理することを可能にする実行可能命令を含む。いくつかの実施形態では、特定のオンラインビデオへのリンクを送信するために、電子メールクライアントモジュール140ではなく、インスタントメッセージングモジュール141が使用される。
上記特定されたモジュール及びアプリケーションの各々は、上記説明された1つ以上の機能、並びに本出願で説明される方法(例えば、コンピュータにより実行される方法、及び本明細書で説明される他の情報処理方法)を実行する実行可能な命令セットに対応する。それらのモジュール(すなわち、命令セット)は、別々のソフトウェアプログラム、手順、又はモジュールとして実装される必要はなく、よって、それらのモジュールの様々なサブセットは、任意選択で、様々な実施形態において、組み合わされ、又はその他の方式で再配置される。いくつかの実施形態では、メモリ102は、任意選択的に、上記で特定したモジュール及びデータ構造のサブセットを記憶する。更に、メモリ102は、上記で説明されていない追加のモジュール及びデータ構造を任意選択的に記憶する。
いくつかの実施形態では、デバイス100は、そのデバイスにおける所定の機能のセットの動作がタッチスクリーン及び/又はタッチパッドのみを通じて実行されるデバイスである。デバイス100が動作するための主要な入力コントロールデバイスとしてタッチスクリーン及び/又はタッチパッドを使用することにより、任意選択的に、デバイス100上の物理的な入力コントロールデバイス(プッシュボタン、ダイヤルなど)の数が削減される。
タッチスクリーン及び/又はタッチパッドを通じてのみ実行される所定の機能のセットは、任意選択的に、ユーザインタフェース間のナビゲーションを含む。いくつかの実施形態では、タッチパッドは、ユーザによってタッチされたときに、デバイス100上に表示される任意のユーザインタフェースから、メインメニュー、ホームメニュー、又はルートメニューにデバイス100をナビゲートする。そのような実施形態では、「メニューボタン」は、タッチ感知面を使用して実装される。いくつかの他の実施形態では、メニューボタンは、タッチ感知面の代わりに、物理プッシュボタン又はその他の物理入力コントロールデバイスである。
図1Bは、いくつかの実施形態に係る、イベント処理のための例示的な構成要素を示すブロック図である。いくつかの実施形態では、メモリ102(図1Aにおける)又は370(図3A)は、イベントソート部170(例えば、オペレーティングシステム126内)及びそれぞれのアプリケーション136−1(例えば、上述したアプリケーション136、137〜155、380〜390のいずれか)を含む。
イベントソート部170は、イベント情報を受信し、イベント情報が配信されるアプリケーション136−1及びアプリケーション136−1のアプリケーションビュー191を判定する。イベントソート部170は、イベントモニタ171及びイベントディスパッチャモジュール174を含む。いくつかの実施形態では、アプリケーション136−1は、アプリケーションがアクティブ又は実行中のとき、タッチ感知ディスプレイシステム112上で表示される現在のアプリケーションビュー(単数又は複数)を示す、アプリケーション内部状態192を含む。いくつかの実施形態では、デバイス/グローバル内部状態157は、どのアプリケーション(単数又は複数)が現在アクティブであるかを判定するためにイベントソート部170によって使用され、アプリケーション内部状態192は、イベント情報が配信されるアプリケーションビュー191を決定するためにイベントソート部170によって使用される。
いくつかの実施形態では、アプリケーション内部状態192は、アプリケーション136−1が実行を再開するときに使用される再開情報、アプリケーション136−1によって表示されている又は表示される準備ができている情報を示すユーザインタフェース状態情報、ユーザがアプリケーション136−1の以前の状態又はビューに戻ることを可能にする状態待ち行列、及びユーザが行った以前のアクションのリドゥ/アンドゥ待ち行列のうちの1つ以上などの追加の情報を含む。
イベントモニタ171は、周辺機器インタフェース118からイベント情報を受信する。イベント情報は、サブイベント(例えば、マルチタッチジェスチャの一部としての、タッチ感知ディスプレイシステム112上のユーザのタッチ)についての情報を含む。周辺機器インタフェース118は、I/Oサブシステム106、又は近接センサ166、加速度計(単数又は複数)167、及び/若しくは(オーディオ回路110を介した)マイクロフォン113などのセンサから受信する情報を伝送する。周辺機器インタフェース118がI/Oサブシステム106から受信する情報は、タッチ感知ディスプレイシステム112又はタッチ感知面からの情報を含む。
いくつかの実施形態では、イベントモニタ171は、所定の間隔で周辺機器インタフェース118に要求を送信する。それに応じて、周辺機器インタフェース118は、イベント情報を伝送する。他の実施形態では、周辺機器インタフェース118は、重要なイベント(例えば、予め定められたノイズ閾値を上回り、及び/又は予め定められた期間よりも長い入力を受信すること)が存在するときのみ、イベント情報を送信する。
いくつかの実施形態では、イベントソート部170はまた、ヒットビュー判定モジュール172及び/又はアクティブイベント認識部判定モジュール173を含む。
ヒットビュー判定モジュール172は、タッチ感知ディスプレイシステム112が2つ以上のビューを表示するとき、1つ以上のビュー内のどこにおいてサブイベントが発生したかを判定するためのソフトウェア手順を提供する。ビューは、ユーザがディスプレイ上で見ることができる制御装置及び他の要素から構成されている。
アプリケーションに関連付けられたユーザインタフェースの別の態様は、本明細書ではアプリケーションビュー又はユーザインタフェースウィンドウと呼ばれることもあるビューのセットであり、その中で情報が表示され、タッチに基づくジェスチャが生じる。タッチが検出される(それぞれのアプリケーションの)アプリケーションビューは、任意選択的に、アプリケーションのプログラム階層又はビュー階層内のプログラムレベルに対応する。例えば、タッチが検出される最下位レベルビューは、任意選択的に、ヒットビューと呼ばれ、また、適切な入力として認識されるイベントのセットは、任意選択的に、タッチによるジェスチャを開始する初期タッチのヒットビューに少なくとも部分的に基づいて決定される。
ヒットビュー判定モジュール172は、タッチに基づくジェスチャのサブイベントに関連する情報を受信する。アプリケーションが階層状に構成された複数のビューを有するときには、ヒットビュー判定モジュール172は、サブイベントを処理すべき階層内の最下位のビューとして、ヒットビューを特定する。ほとんどの状況では、ヒットビューは、開始するサブイベント(すなわち、イベント又は潜在的なイベントを形成する一連のサブイベントにおける最初のサブイベント)が発生する最下位レベルのビューである。ヒットビューがヒットビュー判定モジュールによって特定されると、ヒットビューは典型的には、それがヒットビューとして特定された同一のタッチ又は入力元に関連する全てのサブイベントを受信する。
アクティブイベント認識部判定モジュール173は、ビュー階層内のどのビュー(単数又は複数)がサブイベントの特定のシーケンスを受信すべきかを判定する。いくつかの実施形態では、アクティブイベント認識部判定モジュール173は、ヒットビューのみがサブイベントの特定のシーケンスを受け付けるべきであると判定する。他の実施形態では、アクティブイベント認識部判定モジュール173は、サブイベントの物理位置を含む全てのビューがアクティブに関わりがあるビューであると判定し、従って、全てのアクティブに関わりがあるビューが、サブイベントの特定のシーケンスを受信すべきであると判定する。他の実施形態では、タッチサブイベントが1つの特定のビューに関連するエリアに完全に限定された場合でも、階層内の上位のビューは、依然としてアクティブに関わりがあるビューであり続ける。
イベントディスパッチャモジュール174は、イベント情報をイベント認識部(例えばイベント認識部180)にディスパッチする。アクティブイベント認識部判定モジュール173を含む実施形態において、イベントディスパッチャモジュール174は、アクティブイベント認識部判定モジュール173により判定されたイベント認識部にイベント情報を配信する。いくつかの実施形態では、イベントディスパッチャモジュール174は、それぞれのイベント受信部モジュール182によって取得されたイベント情報をイベント待ち行列に記憶する。
いくつかの実施形態では、オペレーティングシステム126は、イベントソート部170を含む。代替として、アプリケーション136−1がイベントソート部170を含む。更に他の実施形態では、イベントソート部170は、独立型のモジュール、又は接触/動きモジュール130などの、メモリ102に記憶された別のモジュールの一部である。
いくつかの実施形態では、アプリケーション136−1は、それぞれがアプリケーションのユーザインタフェースのそれぞれのビュー内で発生するタッチイベントを処理する命令を含む、複数のイベント処理部190及び1つ以上のアプリケーションビュー191を含む。アプリケーション136−1の各アプリケーションビュー191は、1つ以上のイベント認識部180を含む。典型的には、それぞれのアプリケーションビュー191は、複数のイベント認識部180を含む。他の実施形態では、イベント認識部180のうちの1つ以上は、ユーザインタフェースキット(図示せず)又はアプリケーション136−1が方法及び他の特性を継承する上位レベルのオブジェクトなどの、別個のモジュールの一部である。いくつかの実施形態では、対応するイベント処理部190は、データ更新部176、オブジェクト更新部177、GUI更新部178及び/又はイベントソート部170から受信されたイベントデータ179、のうちの1つ以上を含む。イベント処理部190は任意選択で、アプリケーション内部状態192を更新するために、データ更新部176、オブジェクト更新部177、又はGUI更新部178を利用し、又は呼び出す。代わりに、アプリケーションビュー191のうちの1つ以上は、1つ以上のそれぞれのイベント処理部190を含む。また、いくつかの実施形態では、データ更新部176、オブジェクト更新部177及びGUI更新部178のうちの1つ以上は、対応するアプリケーションビュー191に含まれる。
それぞれのイベント認識部180は、イベントソート部170からイベント情報(例えば、イベントデータ179)を受信し、イベント情報からイベントを特定する。イベント認識部180は、イベント受信部182及びイベント比較部184を含む。いくつかの実施形態では、イベント認識部180はまた、メタデータ183及びイベント配信命令188(任意選択的にサブイベント配信命令を含む)の少なくともサブセットも含む。
イベント受信部182は、イベントソート部170からイベント情報を受信する。イベント情報は、サブイベントについての情報、例えば、タッチ又はタッチの移動についての情報を含む。サブイベントに応じて、イベント情報はまた、サブイベントの位置などの追加の情報を含む。サブイベントがタッチの動きに関わるとき、イベント情報はまた任意選択的に、サブイベントの速さ及び方向を含む。いくつかの実施形態では、イベントは、1つの向きから別の向きへの(例えば、縦向きから横向きへ、又はその逆の)デバイスの回転を含み、イベント情報は、デバイスの現在の向き(デバイスの姿勢とも呼ぶ)についての対応する情報を含む。
イベント比較部184は、イベント情報を、定義済みのイベント又はサブイベントの定義と比較し、その比較に基づいて、イベント又はサブイベントを判定するか、あるいはイベント又はサブイベントの状態を判定若しくは更新する。いくつかの実施形態では、イベント比較部184は、イベント定義186を含む。イベント定義186は、例えばイベント1(187−1)及びイベント2(187−2)などのイベント(例えば所定のサブイベントのシーケンス)の定義を含む。いくつかの実施形態では、イベント187におけるサブイベントは、例えば、タッチの始め、タッチの終わり、タッチの移動、タッチの中止、及び複数のタッチを含む。一例では、イベント1(187−1)についての定義は、表示されたオブジェクト上のダブルタップである。ダブルタップは、例えば、表示されたオブジェクト上の予め定められた段階についての第1のタッチ(タッチの始め)、予め定められた段階についての第1のリフトオフ(タッチの終わり)、表示されたオブジェクト上の予め定められた段階についての第2のタッチ(タッチの始め)、及び予め定められた段階についての第2のリフトオフ(タッチの終わり)を含む。別の例では、イベント2(187−2)の定義は、表示されたオブジェクト上のドラッグである。ドラッグは、例えば、表示されたオブジェクト上の予め定められた段階についてのタッチ(又は、接触)、タッチ感知ディスプレイシステム112を横切るタッチの移動、及びタッチのリフトオフ(タッチの終わり)を含む。いくつかの実施形態では、イベントはまた、1つ以上の関連付けられたイベント処理部190に関する情報を含む。
いくつかの実施形態では、イベント定義187は、それぞれのユーザインタフェースオブジェクトについてのイベントの定義を含む。いくつかの実施形態では、イベント比較部184は、どのユーザインタフェースオブジェクトがサブイベントに関連付けられているかを判定するヒットテストを実行する。例えば、3つのユーザインタフェースオブジェクトがタッチ感知ディスプレイシステム112上で表示されるアプリケーションビューにおいて、タッチ感知ディスプレイシステム112上でタッチが検出されたとき、イベント比較部184は、3つのユーザインタフェースオブジェクトのうちのどれがタッチ(サブイベント)と関連付けられているかを判定するためにヒットテストを実行する。表示された各オブジェクトが、対応するイベント処理部190に関連付けられている場合、イベント比較部は、ヒットテストの結果を用いて、どのイベント処理部190をアクティブ化すべきかを判定する。例えば、イベント比較部184は、ヒットテストをトリガするサブイベント及びオブジェクトと関連付けられたイベント処理部を選択する。
いくつかの実施形態では、それぞれのイベント187の定義は、一連のサブイベントがイベント認識部のイベントタイプに対応するかどうかが判定されるまで、イベント情報の配信を遅らせる遅延アクションも含む。
それぞれのイベント認識部180が一連のサブイベントがイベント定義186のいずれのイベントとも一致しないと判断した場合には、それぞれのイベント認識部180は、イベント不可能、イベント失敗、又はイベント終了の状態になり、その後は、タッチによるジェスチャの後続のサブイベントを無視する。この状況では、ヒットビューについてアクティブのままである他のイベント認識部があれば、そのイベント認識部は、進行中のタッチによるジェスチャのサブイベントの追跡及び処理を続行する。
いくつかの実施形態では、対応するイベント認識部180は、イベント配信システムがどのようにサブイベント配信を実行すべきかをアクティブに関与しているイベント認識部に示す構成可能なプロパティ、フラグ、及び/又はリストを有するメタデータ183を含む。いくつかの実施形態では、メタデータ183は、イベント認識部が互いにどのように相互作用するか、又はイベント認識部が互いにどのように相互作用することができるようになっているかを示す構成可能なプロパティ、フラグ、及び/又はリストを含む。いくつかの実施形態では、メタデータ183は、サブイベントがビュー階層又はプログラム階層における多様なレベルに配信されるかを示す構成可能なプロパティ、フラグ、及び/又はリストを含む。
いくつかの実施形態では、それぞれのイベント認識部180は、イベントの1つ以上の特定のサブイベントが認識されるときに、イベントと関連付けられたイベント処理部190をアクティブ化する。いくつかの実施形態では、それぞれのイベント認識部180は、イベントと関連付けられたイベント情報をイベント処理部190に配信する。イベント処理部190をアクティブ化することは、それぞれのヒットビューにサブイベントを送信する(及び、送信を延期する)こととは別個である。いくつかの実施形態では、イベント認識部180は、認識したイベントと関連付けられたフラグを投入し、そのフラグと関連付けられたイベント処理部190は、そのフラグを捕らえ、既定のプロセスを実行する。
いくつかの実施形態では、イベント配信命令188は、イベント処理部をアクティブ化することなくサブイベントについてのイベント情報を配信するサブイベント配信命令を含む。代わりに、サブイベント配信命令は、一連のサブイベントと関連付けられたイベント処理部に、又はアクティブに関与しているビューにイベント情報を配信する。一連のサブイベント又はアクティブに関与しているビューと関連付けられたイベント処理部は、イベント情報を受信し、所定の処理を実行する。
いくつかの実施形態では、データ更新部176は、アプリケーション136−1で使用されるデータを作成及び更新する。例えば、データ更新部176は、連絡先モジュール137で使用される電話番号を更新するか、又はビデオ及び音楽プレーヤモジュール152で使用されるビデオファイルを記憶する。いくつかの実施形態では、オブジェクト更新部177は、アプリケーション136−1で使用されるオブジェクトを作成及び更新する。例えば、オブジェクト更新部177は、新たなユーザインタフェースオブジェクトを作成するか、又はユーザインタフェースオブジェクトの位置を更新する。GUI更新部178は、GUIを更新する。例えば、GUI更新部178は、表示情報を準備し、タッチ感知ディスプレイ上に表示するために表示情報をグラフィックモジュール132に送る。
いくつかの実施形態では、イベント処理部(単数又は複数)190は、データ更新部176、オブジェクト更新部177、及びGUI更新部178を含むか又はそれらへのアクセスを有する。いくつかの実施形態では、データ更新部176、オブジェクト更新部177、及びGUI更新部178は、それぞれのアプリケーション136−1又はアプリケーションビュー191の単一モジュールに含まれる。他の実施形態では、それらは、2つ以上のソフトウェアモジュールに含まれる。
タッチ感知ディスプレイ上のユーザのタッチのイベント処理に関する前述の記載は、入力デバイスを用いて多機能デバイス100を動作させるための他の形態のユーザ入力にも適用されるが、そのすべてがタッチスクリーン上で開始されるわけではないことを理解されたい。例えば、キーボードの単一又は複数の押圧若しくは保持と任意選択的に連携される、マウスの移動及びマウスボタンの押圧、タッチパッド上のタップ、ドラッグ、スクロールなどの接触の移動、ペンスタイラス入力、1つ以上のカメラによって取得されたビデオ画像のリアルタイム解析に基づく入力、デバイスの移動、口頭による命令、検出された目の動き、バイオメトリック入力、並びに/又はそれらの任意の組み合わせを、任意選択的に、認識するイベントを定義するサブイベントに対応する入力として利用する。
図2は、いくつかの実施形態に係る、タッチスクリーン(例えば、タッチ感知ディスプレイシステム112、図1A)を有するポータブル多機能デバイス100を示す。タッチスクリーンは、任意選択的に、ユーザインタフェース(user interface、UI)200内に1つ以上のグラフィックを表示する。これらの実施形態、並びに後述する実施形態では、ユーザは、例えば、1本以上の指202(図には、正確な縮尺率では描かれていない)又は1つ以上のスタイラス203(図には、正確な縮尺率では描かれていない)を用いて、グラフィック上でジェスチャを行うことにより、グラフィックのうちの1つ以上を選択することが可能になる。いくつかの実施形態では、1つ以上のグラフィックの選択は、ユーザが、その1つ以上のグラフィックとの接触を中断する場合に実施される。いくつかの実施形態では、ジェスチャは、1回以上のタップ、1回以上のスワイプ(左から右へ、右から左へ、上向きに及び/若しくは下向きに)、並びに/又は、デバイス100と接触した指のローリング(右から左へ、左から右へ、上向きに及び/若しくは下向きに)を、任意選択で含む。いくつかの実装形態又は状況では、グラフィックとの不測の接触は、そのグラフィックを選択するものではない。例えば、選択に対応するジェスチャがタップである場合、アプリケーションアイコンの上をスイープするスワイプジェスチャは、任意選択的に、対応するアプリケーションを選択するものではない。
デバイス100は、任意選択で、「ホーム」又はメニューボタン204などの1つ以上の物理的ボタンも含む。前述のように、メニューボタン204は、任意選択で、デバイス100上で任意選択的に実行される、アプリケーションのセットにおける任意のアプリケーション136にナビゲートするために使用される。あるいは、いくつかの実施形態では、メニューボタンは、タッチスクリーンディスプレイ上で表示されるGUI内のソフトキーとして実装される。
いくつかの実施形態では、デバイス100は、タッチスクリーンディスプレイ、メニューボタン204(ホームボタン204と呼ばれる場合がある)、デバイスへの電源供給のオン/オフ及びデバイスのロックのためのプッシュボタン206、音量調節ボタン(単数又は複数)208、加入者識別モジュール(SIM)カードスロット210、ヘッドセットジャック212、ドッキング/充電用外部ポート124を含む。プッシュボタン206は、任意選択的に、ボタンを押し下げて、所定の期間にわたってボタンを押し下げた状態に保持することによって、デバイスの電源をオン/オフするため、ボタンを押し下げて、所定の期間が経過する前にボタンを解放することによって、デバイスをロックするため、及び/又はデバイスをロック解除する、若しくはロック解除プロセスを開始するために、使用される。いくつかの実施形態では、デバイス100は、マイクロフォン113を通して、一部の機能をアクティブ化又は非アクティブ化するための口頭入力をも受け入れる。デバイス100はまた任意選択で、タッチ感知ディスプレイシステム112上の接触の強度を検出する1つ以上の接触強度センサ165、及び/又はデバイス100のユーザに対する触知出力を生成する1つ以上の触知出力生成器163を含む。
図3Aは、いくつかの実施形態に係る、ディスプレイ及びタッチ感知面を有する例示的な多機能デバイスのブロック図である。デバイス300は、ポータブル型である必要はない。いくつかの実施形態では、デバイス300は、ゲームシステム、ラップトップコンピュータ、デスクトップコンピュータ、タブレットコンピュータ、マルチメディア再生デバイス、ナビゲーションデバイス、教育的デバイス(子供の学習玩具など)、ゲームシステム、又は制御デバイス(例えば、家庭用又は業務用コントローラ)である。デバイス300は、典型的には、1つ以上の処理ユニット(CPU)310と、1つ以上のネットワーク又は他の通信インタフェース360と、メモリ370と、及びこれらの構成要素を相互接続するための1つ以上の通信バス320とを含む。通信バス320は、任意選択的に、システム構成要素間の通信を相互接続及び制御する回路(チップセットと呼ばれることもある)を含む。デバイス300は、任意選択的にタッチスクリーンディスプレイであるディスプレイ340を含む、入出力(input/output、I/O)インタフェース330を含む。I/Oインタフェース330は、任意選択で、キーボード及び/又はマウス(又は、他のポインティングデバイス)350、並びにタッチパッド355、(例えば、図1Aを参照して上記説明された触知出力生成器(単数又は複数)163と同様の)デバイス300上で触知出力を生成するための触知出力生成器357、センサ359(例えば、光センサ、加速度センサ、近接センサ、タッチ感知センサ、及び/又は図1Aを参照して上記説明された接触強度センサ(単数又は複数)165と同様の接触強度センサ)をも含む。メモリ370は、DRAM、SRAM、DDR RAM、又は他のランダムアクセスソリッドステートメモリデバイスなどの高速ランダムアクセスメモリを含み、任意選択で、1つ以上の磁気ディスク記憶デバイス、光ディスク記憶デバイス、フラッシュメモリデバイス、又は他の不揮発性ソリッドステート記憶デバイスなどの不揮発性メモリを含む。メモリ370は、CPU310からリモートに位置する1つ以上の記憶デバイスを任意選択的に含む。いくつかの実施形態では、メモリ370は、ポータブル多機能デバイス100(図1A)のメモリ102に記憶されたプログラム、モジュール、及びデータ構造に類似するプログラム、モジュール、及びデータ構造、又はそれらのサブセットを記憶する。更に、メモリ370は任意選択で、ポータブル多機能デバイス100のメモリ102に存在しない追加のプログラム、モジュール、及びデータ構造を記憶する。例えば、デバイス300のメモリ370は任意選択で、描画モジュール380、プレゼンテーションモジュール382、ワードプロセッシングモジュール384、ウェブサイト作成モジュール386、ディスクオーサリングモジュール388、及び/又はスプレッドシートモジュール390を記憶するが、ポータブル多機能デバイス100(図1A)のメモリ102は、任意選択で、それらのモジュールを記憶しない。
上記特定された図3Aにおける要素の各々は、任意選択で、前に言及したメモリデバイスのうちの1つ以上に記憶される。上記で特定されたモジュールの各々は、上記で説明された機能を実行する命令セットに対応する。上記で特定されたモジュール又はプログラム(例えば、命令セット)は、別個のソフトウェアプログラム、手順、又はモジュールとして実装される必要はなく、従って、これらのモジュールの様々なサブセットは、任意選択で、様々な実施形態において組み合わされる、又は他の方法で再構成される。いくつかの実施形態では、メモリ370は、任意選択で、上記で特定されたモジュール及びデータ構造のサブセットを記憶する。更に、メモリ370は、上記で説明されていない追加のモジュール及びデータ構造を任意選択的に記憶する。
図3B〜図3Dは、いくつかの実施形態に係る、例示的なコンピュータシステム301のブロック図である。
いくつかの実施形態では、コンピュータシステム301は、以下のものを含む、及び/又はそれらと通信している。
●入力デバイス(単数又は複数)(302及び/又は307、例えば、タッチ感知式リモートコントロールなどのタッチ感知面、若しくは表示生成コンポーネントとしても機能するタッチスクリーンディスプレイ、マウス、ジョイスティック、ワンドコントローラ、及び/又はユーザの手などのユーザの1つ以上の特徴の位置を追跡するカメラ)、
●仮想/拡張現実論理303(例えば、仮想/拡張現実モジュール145)、
●仮想ユーザインタフェース要素をユーザに表示するための表示生成コンポーネント(単数又は複数)(304及び/又は308、例えば、ディスプレイ、プロジェクタ、ヘッドアップディスプレイなど)、
●デバイスの視野の画像、例えば、仮想ユーザインタフェース要素の配置を判定し、デバイスの姿勢を判定し、及び/又はカメラ(単数又は複数)が位置する物理的環境の一部分を表示するために使用される画像をキャプチャするためのカメラ(単数又は複数)(例えば、305及び/又は311)、
●物理的環境に対するデバイスの姿勢及び/又はデバイスの姿勢の変化を判定するための姿勢センサ(単数又は複数)(例えば、306及び/又は311)。
いくつかのコンピュータシステム(例えば、図3Bの301−a)では、入力デバイス(単数又は複数)302、仮想/拡張現実論理303、表示生成コンポーネント(単数又は複数)304、カメラ(単数又は複数)305、及び姿勢センサ(単数又は複数)306は全て、コンピュータシステム(例えば、スマートフォン又はタブレットなどの図1A〜図1Bのポータブル多機能デバイス100又は図3のデバイス300)に統合される。
いくつかのコンピュータシステム(例えば、301−b)では、統合された入力デバイス(単数又は複数)302、仮想/拡張現実論理303、表示生成コンポーネント(単数又は複数)304、カメラ(単数又は複数)305、及び姿勢センサ(単数又は複数)306に加えて、コンピュータシステムはまた、タッチ感知面、ワンド、リモートコントロールなどの別個の入力デバイス(単数又は複数)307、並びに/又は物理的環境上に仮想オブジェクトを重ね合わせる仮想現実ヘッドセット若しくは拡張現実眼鏡などの別個の表示生成コンポーネント(単数又は複数)308などの、コンピュータシステムとは別個の追加のデバイスと通信している。
いくつかのコンピュータシステム(例えば、図3Cの301−c)では、入力デバイス(単数又は複数)307、表示生成コンポーネント(単数又は複数)309、カメラ(単数又は複数)311、及び/又は姿勢センサ(単数又は複数)312は、コンピュータシステムとは別個であり、かつコンピュータシステムと通信している。いくつかの実施形態では、コンピュータシステム301内の構成要素、及びコンピュータシステムと通信している構成要素の他の組み合わせが使用される。例えば、いくつかの実施形態では、表示生成コンポーネント(単数又は複数)309、カメラ(単数又は複数)311、及び姿勢センサ(単数又は複数)312は、コンピュータシステムと統合された又はコンピュータシステムと通信しているのいずれかであるヘッドセットに組み込まれる。
いくつかの実施形態では、図5A1〜図5A40及び図5B1〜図5B41を参照して後述する動作の全ては、仮想/拡張現実論理303を有する単一のコンピューティングデバイス(例えば、図3Bを参照して後述するコンピュータシステム301−a)上で実行される。しかしながら、しばしば、異なる複数のコンピューティングデバイスが一緒にリンクされて、図5A1〜図5A40及び図5B1〜図5B41を参照して後述する動作を実行する(例えば、仮想/拡張現実論理303を有するコンピューティングデバイスは、ディスプレイ450を有する別個のコンピューティングデバイス及び/又はタッチ感知面451を有する別個のコンピューティングデバイスと通信する)ことを理解されたい。これらの実施形態のいずれかでは、図5A1〜図5A40及び図5B1〜図5B41を参照して後述するコンピューティングデバイスは、仮想/拡張現実論理303を含むコンピューティングデバイス(単数又は複数)である。加えて、各種実施形態では、仮想/拡張現実論理303は、別個の複数のモジュール又はコンピューティングデバイスの間で分割されてもよいことを理解されたい。しかしながら、本明細書の説明の目的のために、仮想/拡張現実論理303は、実施形態の他の態様を不必要に不明瞭にしないように、単一のコンピューティングデバイス内に存在するものとして主に言及される。
いくつかの実施形態では、仮想/拡張現実論理303は、解釈された入力を受信し、これらの解釈された入力に応じて、その後グラフィカルユーザインタフェースをディスプレイ上で更新するために使用される、解釈された入力に従ってグラフィカルユーザインタフェースを更新するための命令を生成する、1つ以上のモジュール(例えば、図1Bを参照してより詳細に上述したような1つ以上のオブジェクト更新部177及び1つ以上のGUI更新部178を含む1つ以上のイベント処理部190)を含む。いくつかの実施形態では、(例えば、図1A及び図3の接触動きモジュール130によって)検出され、(例えば、図1Bのイベント認識部180によって)認識され、かつ/又は(例えば、図1Bのイベントソート部170によって)配信された入力に対する解釈された入力は、ディスプレイ上のグラフィカルユーザインタフェースを更新するために使用される。いくつかの実施形態では、解釈された入力は、コンピューティングデバイスにおけるモジュールによって生成される(例えば、コンピューティングデバイスは、未加工の接触入力データからジェスチャを識別するように、未加工の接触入力データを受信する)。いくつかの実施形態では、解釈された入力の一部又は全ては、解釈された入力としてコンピューティングデバイスによって受信される(例えば、タッチ感知面451を含むコンピューティングデバイスは、未加工の接触入力データからジェスチャを識別するように、未加工の接触入力データを処理し、仮想/拡張現実論理303を含むコンピューティングデバイスにジェスチャを示す情報を送信する)。
いくつかの実施形態では、ディスプレイ及びタッチ感知面の両方が、仮想/拡張現実論理303を含むコンピュータシステム(例えば、図3Bの301−a)と統合される。例えば、コンピュータシステムは、統合されたディスプレイ(例えば、図3の340)及びタッチパッド(例えば、図3の355)を有するデスクトップコンピュータ又はラップトップコンピュータであってもよい。別の例として、コンピューティングデバイスは、タッチスクリーン(例えば、図2の112)を有するポータブル多機能デバイス100(例えば、スマートフォン、PDA、タブレットコンピュータなど)であってもよい。
いくつかの実施形態では、タッチ感知面は、コンピュータシステムと統合され、ディスプレイは、仮想/拡張現実論理303を含むコンピュータシステムと統合されない。例えば、コンピュータシステムは、統合されたタッチパッド(例えば、図3の355)が別個のディスプレイ(例えば、コンピュータモニタ、テレビなど)に(有線又は無線接続を介して)接続された、デバイス300(例えば、デスクトップコンピュータ又はラップトップコンピュータ)であってもよい。別の例として、コンピュータシステムは、タッチスクリーン(例えば、図2の112)が別個のディスプレイ(例えば、コンピュータモニタ、テレビなど)に(有線又は無線接続を介して)接続された、ポータブル多機能デバイス100(例えば、スマートフォン、PDA、タブレットコンピュータなど)であってもよい。
いくつかの実施形態では、ディスプレイは、コンピュータシステムと統合され、タッチ感知面は、仮想/拡張現実論理303を含むコンピュータシステムと統合されない。例えば、コンピュータシステムは、統合されたタッチディスプレイ(例えば、図3の340)が別個のタッチ感知面(例えば、遠隔のタッチパッド、ポータブル多機能デバイスなど)に(有線又は無線接続を介して)接続された、デバイス300(例えば、デスクトップコンピュータ、ラップトップコンピュータ、一体型セットトップボックスを有するテレビ)であってもよい。別の例として、コンピュータシステムは、タッチスクリーン(例えば、図2の112)が別個のタッチ感知面(例えば、遠隔のタッチパッド、遠隔のタッチパッドとして機能するタッチスクリーンを有する別のポータブル多機能デバイスなど)に(有線又は無線接続を介して)接続された、ポータブル多機能デバイス100(例えば、スマートフォン、PDA、タブレットコンピュータなど)であってもよい。
いくつかの実施形態では、ディスプレイ又はタッチ感知面のいずれもが、仮想/拡張現実論理303を含むコンピュータシステム(例えば、図3Cの301−c)と統合されない。例えば、コンピュータシステムは、別個のタッチ感知面(例えば、遠隔のタッチパッド、ポータブル多機能デバイスなど)及び別個のディスプレイ(例えば、コンピュータモニタ、テレビなど)に(有線又は無線接続を介して)接続された、独立型コンピューティングデバイス300(例えば、セットトップボックス、ゲームコンソールなど)であってもよい。
いくつかの実施形態では、コンピュータシステムは、一体型オーディオシステム(例えば、ポータブル多機能デバイス100内のオーディオ回路110及びスピーカ111)を有する。いくつかの実施形態では、コンピューティングデバイスは、コンピューティングデバイスとは別個のオーディオシステムと通信している。いくつかの実施形態では、オーディオシステム(例えば、テレビユニット内に統合されたオーディオシステム)は、別個のディスプレイと統合される。いくつかの実施形態では、オーディオシステム(例えば、ステレオシステム)は、コンピュータシステム及びディスプレイとは別個の独立型システムである。
ここで、ポータブル多機能デバイス100上で任意選択的に実装されるユーザインタフェース(「UI」)の実施形態に着目する。
図4Aは、いくつかの実施形態に係る、ポータブル多機能デバイス100上のアプリケーションのメニューのための例示的なユーザインタフェースを示す。同様のユーザインタフェースは、デバイス300上に任意選択的に実装される。いくつかの実施形態では、ユーザインタフェース400は、以下の要素、又はそれらのサブセット若しくはスーパーセットを含む。
●セルラー信号及びWi−Fi信号などの無線通信(単数又は複数)のための信号強度インジケータ(単数又は複数)、
●時間、
●Bluetooth(登録商標)インジケータ、
●バッテリ状態インジケータ、
●以下のような、頻繁に使用されるアプリケーションのアイコンを有するトレイ408、
○不在着信又はボイスメールメッセージの数のインジケータ414を任意選択的に含む、「電話」とラベル付けされた、電話モジュール138のアイコン416、
○未読電子メールの数のインジケータ410を任意選択的に含む、「メール」とラベル付けされた、電子メールクライアントモジュール140のアイコン418、
○「ブラウザ」とラベル付けされた、ブラウザモジュール147のアイコン420、また、
○「音楽」とラベル付けされたビデオ及び音楽プレーヤモジュール152のアイコン422、また、
●以下のような、他のアプリケーションのアイコン、
○「メッセージ」とラベル付けされた、IMモジュール141のアイコン424、
○「カレンダ」とラベル付けされた、カレンダモジュール148のアイコン426、
○「写真」とラベル付けされた、画像管理モジュール144のアイコン428、
○「カメラ」とラベル付けされた、カメラモジュール143のアイコン430、
○「オンラインビデオ」とラベル付けされた、オンラインビデオモジュール155のアイコン432、
○「株価」とラベル付けされた、株価ウィジェット149−2のアイコン434、
○「マップ」とラベル付けされた、マップモジュール154のアイコン436、
○「天気」とラベル付けされた、気象ウィジェット149−1のアイコン438、
○「時計」とラベル付けされた、アラーム時計ウィジェット149−4のアイコン440、
○「トレーニングサポート」とラベル付けされた、トレーニングサポートモジュール142のアイコン442、
○「メモ」とラベル付けされた、メモモジュール153のアイコン444、また、
○デバイス100及びその様々なアプリケーション136に対する設定へのアクセスを提供する「設定」のラベル付きの設定アプリケーション又はモジュールのためのアイコン446。
図4Aに示されたアイコンのラベルは単なる例に過ぎないことに留意されたい。例えば、他のラベルが任意選択的に、様々なアプリケーションアイコンに使用される。いくつかの実施形態では、それぞれのアプリケーションアイコンに関するラベルは、それぞれのアプリケーションアイコンに対応するアプリケーションの名前を含む。いくつかの実施形態では、特定のアプリケーションアイコンのラベルは、その特定のアプリケーションアイコンに対応するアプリケーションの名前とは異なる。
図4Bは、ディスプレイ450とは別個のタッチ感知面451(例えば、タブレット又はタッチパッド355、図3A)を有するデバイス(例えば、デバイス300、図3A)上の例示的なユーザインタフェースを示す。以下の実施例のうちの多くはタッチスクリーンディスプレイ112上の入力(タッチ感知面とディスプレイとが組み合わされている場合)を参照して与えられるが、いくつかの実施形態では、デバイスは、図4Bに示すように、ディスプレイと分離したタッチ感知面上の入力を検出する。いくつかの実施形態では、タッチ感知面(例えば、図4Bにおける451)は、ディスプレイ(例えば、450)上の主軸(例えば、図4Bにおける453)に対応する主軸(例えば、図4Bにおける452)を有する。それらの実施形態によれば、デバイスは、ディスプレイ上のそれぞれの位置に対応する位置(例えば、図4Bにおいて、460は468に対応し、462は470に対応する)におけるタッチ感知面451との接触(例えば、図4Bにおける460及び462)を検出する。このように、タッチ感知面がディスプレイと分離しているとき、タッチ感知面(例えば、図4Bにおける451)上でデバイスによって検出されたユーザ入力(例えば、接触460及び462、及びそれらの移動)は、多機能デバイスのディスプレイ(例えば、図4Bにおける450)上でユーザインタフェースを操作するためにデバイスによって使用される。同様の方法が、本明細書に記載の他のユーザインタフェースに任意選択的に使用されることを理解されたい。
加えて、以下の実施例は、主に指入力(例えば、指の接触、指のタップジェスチャ、指のスワイプジェスチャなど)を参照して与えられるが、いくつかの実施形態では、それらの指の入力のうちの1つ以上は、別の入力デバイスからの入力(例えば、マウスに基づく入力又はスタイラス入力)と置換されることを理解されたい。例えば、スワイプジェスチャは、(例えば、接触の代わりの)マウスクリックに続けた、(例えば、接触の移動の代わりの)スワイプの経路に沿ったカーソルの移動によって、任意選択的に置き換えられる。別の例として、タップジェスチャは、任意選択的に、カーソルがタップジェスチャの位置の上に位置する間はマウスクリックと置き換えられる(例えば、接触を検出して、それに続いて接触の検出を停止する代わりに)。同様に、複数のユーザ入力が同時に検出されるとき、複数のコンピュータマウスが、任意選択的に、同時に使用され、又はマウス及び指の接触が、任意選択的に、同時に使用されることを理解されたい。
本明細書で使用される「フォーカスセレクタ」という用語は、ユーザが相互作用しているユーザインタフェースの現在の部分を示す入力要素を指す。カーソル又は他のロケーションマーカを含むいくつかの実装形態では、カーソルは、カーソルが特定のユーザインタフェース要素(例えば、ボタン、ウィンドウ、スライダ、又は他のユーザインタフェース要素)の上にある間に、タッチ感知面(例えば、図3Aにおけるタッチパッド355、又は図4Bにおけるタッチ感知面451)上で入力(例えば、押圧入力)が検出されると、特定のユーザインタフェース要素が検出された入力に従って調整されるように、「フォーカスセレクタ」として機能する。タッチスクリーンディスプレイ上のユーザインタフェース要素との直接的な相互作用を有効化するタッチスクリーンディスプレイ(例えば、図1Aにおけるタッチ感知ディスプレイシステム112、又は図4Aにおけるタッチスクリーン)を含むいくつかの実装形態では、タッチスクリーン上で検出された接触は、入力(例えば、接触による押圧入力)がタッチスクリーンディスプレイ上で特定のユーザインタフェース要素(例えば、ボタン、ウィンドウ、スライダ、又は他のユーザインタフェース要素)の位置において検出されると、特定のユーザインタフェース要素が検出された入力に従って調製されるように、「フォーカスセレクタ」として機能する。いくつかの実装では、タッチスクリーンディスプレイ上の対応するカーソルの移動又は接触の移動なしに、(例えば、タブキー又は矢印キーを使ってフォーカスを1つのボタンから別のボタンに移動させることにより)フォーカスが、ユーザインタフェースの1つの領域からユーザインタフェースの別の領域に移動される。これらの実装形態では、フォーカスセレクタは、ユーザインタフェースの種々の領域間でのフォーカスの移動に従って移動する。フォーカスセレクタによってとられる具体的な形態とは関わりなく、フォーカスセレクタは一般的に、ユーザインタフェースとのユーザの意図した相互作用を通信するために(例えば、ユーザが相互作用することを意図しているユーザインタフェースの要素をデバイスに示すことによって)、ユーザによって制御されるユーザインタフェース要素(又は、タッチスクリーンディスプレイ上の接触)である。例えば、タッチ感知面(例えば、タッチパッド又はタッチスクリーン)上で押圧入力が検出されている間の、対応のボタンの上のフォーカスセレクタ(例えば、カーソル、接触、又は選択ボックス)の位置は、その対応のボタンを(そのデバイスのディスプレイ上に示される他のユーザインタフェース要素ではなく)アクティブ化することをユーザが意図していることを示すものである。いくつかの実施形態では、フォーカスインジケータ(例えば、カーソル又は選択インジケータ)は、1つ以上の入力デバイスから受信した入力によって影響を受けることになるユーザインタフェースの現在の部分を示すように、表示デバイスを介して表示される。
いくつかの実施形態では、デバイスによって検出された入力へのデバイスの応答は、入力中の接触強度に基づく基準に依存する。例えば、いくつかの「軽い押圧」入力の場合、入力中の第1の強度閾値を超える接触の強度は第1の応答をトリガする。いくつかの実施形態では、デバイスによって検出された入力へのデバイスの応答は、入力中の接触強度と時間ベースの基準の両方を含む基準に依存する。例えば、いくつかの「深い押圧」入力の場合、軽い押圧用の第1の強度閾値より大きい入力中の第2の強度閾値を超える接触の強度は、第1の強度閾値を満たすことと第2の強度閾値を満たすこととの間に遅延時間が経過した場合のみ、第2の応答をトリガする。この遅延時間は典型的には、時間が200ms(ミリ秒)よりも短い(例えば、第2の強度閾値の大きさに依存して、40ms、100ms、又は120msであり、遅延時間は第2の強度閾値が増大するにつれて増大する)。この遅延時間は、深い押圧入力の偶発的な認識を回避することを支援する。別の例として、いくつかの「深い押圧」入力の場合、第1の強度閾値が満たされた時間の後に発生する感度が低下した期間が存在する。感度が低下した期間の間、第2の強度閾値は増大する。第2の強度閾値のこの一時的な増大も、偶発的な深い押圧入力を回避するのに役立つ。他の深い押圧入力の場合、深い押圧入力の検出に対する応答は、時間ベースの基準に依存しない。
いくつかの実施形態では、入力強度閾値及び/又は対応する出力のうちの1つ以上は、ユーザ設定、接触の動き、入力タイミング、実行しているアプリケーション、強度が加わる速度、同時入力の数、ユーザ履歴、環境要因(例えば、周囲ノイズ)、フォーカスセレクタの位置などの、1つ以上の要因に基づいて変化する。例示的な要因が、米国特許出願公開第14/399,606号及び第14/624,296号に記載されており、それらは参照により全体が本明細書に組み込まれている。
例えば、図4Cは、経時的なタッチ入力476の強度に部分的に基づいて、経時的に変化する動的な強度閾値480を示す。動的な強度閾値480は、2つの成分、タッチ入力476が最初に検出されたときから既定の遅延時間p1後に経時的に減衰する第1の成分474、及び経時的にタッチ入力476の強度の跡を辿る第2の成分478の合計である。第1の成分474の最初の高い強度閾値は、タッチ入力476が十分な強度を提供する場合に即時の「深い押圧」応答を更に可能にしながら、「深い押圧」応答の偶発的トリガを削減する。第2の成分478は、タッチ入力の段階的な強度変動によって「深い押圧」応答の意図しないトリガを削減する。いくつかの実施形態では、タッチ入力476が動的な強度閾値480を満たすとき(例えば、図4Cにおけるポイント481において)、「深い押圧」応答がトリガされる。
図4Dは、別の動的な強度閾値486(例えば、強度閾値ITD)を示す。図4Dはまた、2つの他の強度閾値、第1の強度閾値ITH及び第2の強度閾値ITLを示す。図4Dにおいて、タッチ入力484が時間p2の前に第1の強度閾値ITH及び第2の強度閾値ITLを満たすが、時間482において遅延時間p2が経過するまでは応答が提供されない。また、図4Dでは、動的強度閾値486は、予め定義された遅延時間p1が時間482から経過した後(第2の強度閾値ITLと関連付けられた応答がトリガされたとき)の時間488において開始する減衰で、経時的に減衰する。このタイプの動的強度閾値は、第1の強度閾値ITH又は第2の強度閾値ITLなど、より低い強度閾値と関連付けられた応答のトリガの直後に又はそれと同時に、動的強度閾値ITDと関連付けられた応答を偶発的にトリガすることを減少させる。
図4Eは、更に別の動的な強度閾値492(例えば、強度閾値ITD)を示す。図4Eにおいて、強度閾値ITLと関連付けられた応答は、タッチ入力490が最初に検出されるときから遅延時間p2が経過した後にトリガされる。同時に、動的な強度閾値492は、タッチ入力490が最初に検出されたときから既定の遅延時間p1が経過した後に減衰する。そのため、タッチ入力490を解放することなしに、タッチ入力490の強度の増大がその後に続く、強度閾値ITLに関連付けられた応答をトリガした後のタッチ入力490の強度の減少は、タッチ入力490の強度が別の強度閾値、例えば、強度閾値ITLを下回るときでも、(例えば、時間494において)強度閾値ITDに関連付けられた応答をトリガすることができる。
ユーザインタフェース及び関連するプロセス
ここで、表示生成コンポーネント(例えば、ディスプレイ、プロジェクタ、ヘッドアップディスプレイなど)と、1つ以上のカメラ(例えば、カメラの視野内にあるコンテンツの少なくとも一部分のライブプレビューを連続的に提供し、かつ任意選択的に、カメラの視野内のコンテンツをキャプチャする画像フレームの1つ以上のストリームを含むビデオ出力を生成するビデオカメラ)と、1つ以上の入力デバイス(例えば、タッチ感知式リモートコントロールなどのタッチ感知面、若しくは表示生成コンポーネントとしても機能するタッチスクリーンディスプレイ、マウス、ジョイスティック、ワンドコントローラ、及び/又はユーザの手などのユーザの1つ以上の特徴の位置を追跡するカメラ)と、任意選択的に、1つ以上の姿勢センサと、任意選択的に、タッチ感知面との接触の強度を検出する1つ以上のセンサと、任意選択的に、1つ以上の触知出力生成器と、を含む(かつ/又はそれらと通信している)コンピュータシステム(例えば、ポータブル多機能デバイス100又はデバイス300)上に実装することができる、ユーザインタフェース(「UI」)及び関連するプロセスの実施形態に注意を向ける。
図5A1〜図5A40は、いくつかの実施形態に係る、拡張現実環境を表示し、異なる入力に応じて、拡張現実環境の外観及び/又は拡張現実環境内のオブジェクトの外観を調整し、並びに、拡張現実環境内の仮想モデルを閲覧することと、仮想モデル内のオブジェクトの視点からの仮想モデルのシミュレートされたビューを閲覧することとの間で遷移するための、例示的なユーザインタフェースを示す。これらの図におけるユーザインタフェースは、図6A〜図6D、図7A〜図7C、及び図8A〜図8Cにおけるプロセスを含む、後述するプロセスを例示するために使用される。説明の便宜上、実施形態のいくつかは、タッチ感知ディスプレイシステム112を有するデバイス上で実行される操作を参照して議論される。同様に、類似の動作は、任意選択的に、フォーカスインジケータとともに、ヘッドセット5008のディスプレイ上に図に示すユーザインタフェースを表示している間に、入力デバイス5010のタッチ感知面上の接触を検出したことに応じて、ヘッドセット5008とタッチ感知面を有する別個の入力デバイス5010とを有するコンピュータシステム(例えば、図5A2に示すような)上で実行される。
図5A1〜図5A27は、いくつかの実施形態に係る、拡張現実環境を表示し、異なる入力に応じて、拡張現実環境の外観及び/又は拡張現実環境内のオブジェクトの外観を調整するための例示的なユーザインタフェースを示す。
図5A1及び図5A2は、図5A3〜図5A40に関して説明するユーザインタフェースが使用される状況を示す。
図5A1は、ユーザ5002、テーブル5004、及び物理的建築モデル5006が位置する物理的空間を示す。ユーザ5002は、デバイス100を保持して、デバイス100のディスプレイを介して(例えば、図1A、図4A、図5A4に示すような、デバイス100の、「タッチスクリーンディスプレイ112」、「タッチスクリーン112」、「ディスプレイ112」、又は「タッチ感知ディスプレイ112」と呼ばれることがある、タッチ感知ディスプレイシステム112上で)物理的建築モデル5006を閲覧する。デバイス100の1つ以上のカメラ(デバイス100の「カメラ」と呼ばれることもある)は、物理的空間内の1つ以上の物理的オブジェクト(例えば、物理的空間の部屋の壁紙5007、テーブル5004など)を含む、カメラの視野内にあるコンテンツのライブプレビューを連続的に提供する。デバイス100は、物理的オブジェクト(例えば、物理的建築モデル5006)及び1つ以上の仮想オブジェクト(例えば、物理的建築モデル5006をカバーする建物の仮想モデル、仮想の木など)を含む、カメラの視野の少なくとも一部分の表現を含む拡張現実環境を表示し、ユーザ5002は、デバイス100のタッチスクリーンディスプレイを使用して、拡張現実環境と相互作用する。
図5A2は、ユーザ5002が、ヘッドセット5008及びタッチ感知面を有する別個の入力デバイス5010を含むコンピュータシステムを使用して物理的建築モデル5006を閲覧する、代替的方法を示す。この実施例では、ヘッドセット5008は、拡張現実環境を表示し、ユーザ5002は、別個の入力デバイス5010を使用して、拡張現実環境と相互作用する。いくつかの実施形態では、デバイス100は、別個の入力デバイス5010として使用される。いくつかの実施形態では、別個の入力デバイス5010は、タッチ感知式リモートコントロール、マウス、ジョイスティック、ワンドコントローラなどである。いくつかの実施形態では、別個の入力デバイス5010は、ユーザの手などのユーザ5002の1つ以上の特徴の位置及び移動を追跡する1つ以上のカメラを含む。
図5A3及び図5A4は、デバイス100のタッチスクリーン112上に表示された拡張現実環境のビューを示す。図5A3は、ユーザ5002の視点からの、テーブル5004及び物理的建築モデル5006に対するデバイス100の位置を示す。図5A4は、図5A3からより接近したデバイス100のビューを示す。デバイス100は、デバイス100のカメラによってキャプチャされたときの物理的空間のライブビュー及び仮想ユーザインタフェースオブジェクト(仮想建築モデル5012)を含む、拡張現実環境を表示する。ここで、仮想建築モデル5012は、カメラの視野内の物理的建築モデル5006に取り付けられる、又はそれをカバーするように見える(例えば、物理建築モデル5006を拡張現実環境内で置き換える)、物理的建築モデル5006の3次元仮想モデルである。表示された拡張現実環境はまた、カメラの視野内の物理的オブジェクトに対応しない仮想オブジェクト(例えば、仮想の木、仮想の茂み、仮想の人、及び仮想の自動車)、及びカメラの視野内にある物理的オブジェクト(例えば、壁紙5007)も含む。いくつかの実施形態では、デバイス100は、(例えば、図5A25〜図5A27に関して後述するように)拡張現実環境と相互作用するための1つ以上のボタン(例えば、ボタン5014、ボタン5016、及びボタン5018、仮想ボタン又は表示されたボタンと呼ばれることがある)を表示する。
図5A5及び図5A6は、ユーザ5002がテーブル5004の前面から(例えば、図5A3に示すように)テーブル5004の側面に(例えば、図5A5に示すように)移動した後の、デバイス100のタッチスクリーン112上に表示される拡張現実環境の異なるビューを示す。図5A5は、ユーザ5002の視点からの、テーブル5004及び物理的建築モデル5006に対するデバイス100の位置を示す。図5A6は、図5A5からより接近したデバイス100のビューを示す。図5A5及び図5A6に示すように、仮想建築モデル5012は、物理的建築モデル5006に固定されたままであり、仮想建築モデル5012のビューは、物理的建築モデル5006の位置、形状、及び/又は向きがカメラの視野内で変化するにつれて、変化する。
図5A7〜図5A14は、タッチスクリーン112上の接触の移動とデバイス100の移動との組み合わせに基づいて、拡張現実環境内の仮想建築モデル5012の外観を調整することを示す。参照ボックス5019は、ユーザ5002の視点からの、テーブル5004及び物理的建築モデル5006に対するデバイス100の位置を示す。
図5A7では、デバイス100は、デバイス100がテーブル5004及び物理的建築モデル5006に対して第1の位置にある(例えば、参照ボックス5019に示すように)ときの拡張現実環境を表示する。図5A8では、デバイス100は、仮想建築モデル5012上の入力を(例えば、仮想建築モデル5012の屋根上の接触5020−aによるタッチ入力を検出することによって)検出する。図5A9〜図5A11では、入力を検出し続けている間に(例えば、接触5020がタッチスクリーン112上で維持されている間に)、デバイス100は、物理的建築モデル5006に対する入力の移動(例えば、接触5020によるドラッグジェスチャ)を検出し、物理的建築モデル5006に対する入力の移動の大きさに従って、仮想建築モデル5012の外観を調整する(例えば、仮想建築モデルから仮想屋根5012−aを持ち上げる)。図5A9では、接触5020−bが比較的少量移動したとき、仮想屋根5012−aは、対応する少量だけ持ち上げられる。図5A10では、接触5020−cがより大きな量移動したとき、仮想屋根5012−aは、対応するより大きな量だけ持ち上げられる。いくつかの実施形態では、図5A11に示すように、仮想屋根5012−aが持ち上がり続けるにつれて、仮想建築モデル5012の床は、持ち上がり、伸長する(例えば、仮想の第1の床5012−d、仮想の第2の床5012−c、及び仮想の第3の床5012−bを示す)。図5A9〜図5A11に示すように、接触5020が上に移動するにつれて、デバイス100は、仮想屋根5012−a上の初期接触点の表示を接触5020の位置に維持するように、仮想建築モデル5012の表示を更新する。
図5A12及び図5A13では、接触5020−dがタッチスクリーン112上に維持され、かつ静止したままでいる間に、デバイス100は、物理的空間内のデバイス100の移動(例えば、図5A12の参照ボックス5019に示すような物理的建築モデル5006に対してより低い第1の位置から、図5A13の参照ボックス5019に示すような物理的建築モデル5006に対してより高い第2の位置への移動5022)を検出する。(物理的空間内のデバイス100の移動からの)入力の移動に応じて、デバイス100は、移動の大きさに従って仮想屋根5012−aを更に持ち上げることによって、仮想建築モデル5012の外観を調整する。いくつかの実施形態では、図5A13に示すように、仮想モデル5012の外観が移動の大きさに従って調整されると、仮想屋根5012−aの静止状態の最大限界を越える位置に仮想屋根5012−aが表示される。
図5A14では、デバイス100は、入力を検出することを停止し(例えば、接触5020がリフトオフする)、静止状態の最大限界に対応する位置に仮想屋根5012−aを表示する。いくつかの実施形態では、デバイス100は、(例えば、図5A13の)静止状態の最大限界を越えた位置の仮想屋根5012−aから(例えば、図5A14の)静止状態の最大限界に対応する位置への(例えば、図5A13から図5A14への)アニメーション化された遷移を表示する。
図5A15及び図5A16は、タッチスクリーン112上で入力が検出されない(例えば、タッチスクリーン112上で接触によるタッチ入力が検出されない)ときの、物理的空間内のデバイス100の移動(例えば、移動5024)を示す。入力が検出されないため、デバイス100の移動は、仮想建築モデル5012の外観を調整することなく、(例えば、図5A15の参照ボックス5019に示すような)物理的建築モデル5006に対してより低い第1の位置から(例えば、図5A16の参照ボックス5019に示すような)物理的建築モデル5006に対してより高い第2の位置まで、デバイス100のカメラの視野を変化させる。
図5A15及び図5A16とは対照的に、図5A17及び図5A18は、タッチスクリーン112上で入力が検出された(例えば、接触5026−aによるタッチ入力がタッチスクリーン112上で検出された)ときの、物理的空間内のデバイス100の移動(例えば、移動5028)を示す。入力を検出し続けている間に(例えば、接触5026−aがタッチスクリーン112上に維持され、かつ静止したままでいる間に)、デバイス100は、(図5A17の参照ボックス5019に示すような物理的建築モデル5006に対してより低い第1の位置から、図5A18の参照ボックス5019に示すような物理的建築モデル5006に対してより高い第2の位置への)物理的空間内のデバイス100の移動を検出する。(物理的空間内のデバイス100の移動からの)入力の移動に応じて、デバイス100は、移動の大きさに従って仮想屋根5012−aを持ち上げることによって、仮想建築モデル5012の外観を調整する。
図5A19及び図5A20では、入力を検出し続けている間に(例えば、接触5026がタッチスクリーン112上で維持されている間に)、デバイス100は、物理的建築モデル5006に対する入力の移動(例えば、接触5026によるドラッグジェスチャ)を検出し、物理的建築モデル5006に対する入力の移動の大きさに従って、仮想建築モデル5012の外観を調整する(例えば、仮想建築モデル5012から仮想屋根5012−aを更に持ち上げる)。いくつかの実施形態では、図5A20に示すように、仮想屋根5012−aが持ち上がり続けるにつれて、仮想建築モデル5012の床は、持ち上がり、伸長する(例えば、第1の床5012−d、第2の床5012−c、及び第3の床5012−bを示す)。
図5A17〜図5A20に示すように、入力が上に移動するにつれて(入力の移動が、接触(例えば、接触5026−a)がタッチスクリーン112上で維持され、かつ静止したままでいる間のデバイス100の移動によるものであろうとなかろうと、又は入力の移動が、デバイス100が物理的空間内で実質的に静止して保持されている間のタッチスクリーン112を横切る接触の移動によるものであろうとなかろうと)、デバイス100は、仮想屋根5012−a上の初期接触点の表示を接触5026の位置に維持するように、仮想建築モデル5012の表示を更新する。
図5A21〜図5A24は、拡張現実環境内の時間を通してナビゲートする入力に応じて、拡張現実環境の仮想環境設定(例えば、時刻)を変更することを示す。図5A21〜図5A24では、デバイス100は、仮想環境設定を変更する入力(例えば、接触5030による左から右へのスワイプジェスチャ)を検出し、それに応じて、デバイス100は、拡張現実環境内の時刻を変更する(例えば、仮想建築モデル5012の外観を調整し、仮想建築モデル5012によって不明瞭化されていないカメラの視野の表現の部分にフィルタを適用することによって)。図5A21では、拡張現実環境内の時刻は、仮想建築モデル5012の影、及びオブジェクの右への仮想オブジェクト(例えば、仮想の木、仮想の茂み、仮想の人、及び仮想の自動車)の影により、午前である。接触5030が左から右に移動するにつれて、拡張現実環境内の時刻は、午前から夜に変化する(例えば、入力の移動の速度及び/又は距離に従って)(例えば、図5A21の午前から図5A22の正午に、図5A23の午後に、図5A24の夜に変化する)。いくつかの実施形態では、デバイス100は、仮想シーンの外観を調整することに加えて、仮想シーンによって不明瞭化されていないライブビューの部分に(例えば、壁紙5007に)フィルタを適用する。例えば、図5A24では(例えば、仮想環境設定が夜間モードに変更されたとき)、夜間モードの仮想シーンの外観を調整することに加えて(例えば、第2の陰影パターンによって示される)、異なるフィルタが壁紙5007に適用される(例えば、第1の陰影パターンによって示される)。
図5A25〜図5A27は、異なる仮想環境が仮想ユーザインタフェースオブジェクトを探索するための異なる相互作用に関連付けられている、仮想ユーザインタフェースオブジェクト(例えば、仮想建築モデル5012)に対する異なる仮想環境(例えば、風景ビュー、内部ビュー、昼間/夜間ビューなどの既定の仮想環境)間で切り替える入力(例えば、表示されたボタン上のタップ入力)に応じて、拡張現実環境の仮想環境設定を変更することを示す。図5A25では、風景ボタン5014が選択され、仮想建築モデル5012の風景ビューが表示される(例えば、仮想の木、仮想の茂み、仮想の人、及び仮想の自動車とともに)。図5A26及び図5A27では、デバイス100は、接触5032によるタップジェスチャなどの内部ボタン5016上の入力を検出し、それに応じて、仮想建築モデル5012の内部ビューを表示する(例えば、仮想の木、仮想の茂み、仮想の人、及び仮想の自動車はないが、代わりに仮想の第1の床5012−d、仮想の第2の床5012−c、仮想の第3の床5012−b、及び仮想屋根5012−aを有する仮想建築モデル5012の展開されたビューを示す)。いくつかの実施形態では、仮想環境設定が(例えば、内部ビューに)変更されると、周囲の物理的環境は、ぼかされる(例えば、フィルタを使用して)。例えば、図5A27には示されていないが、いくつかの実施形態では、仮想環境設定が内部ビューに変更されると、壁紙5007がぼかされる。
図5A28〜図5A40は、いくつかの実施形態に係る、拡張現実環境内の仮想モデルを閲覧することと、仮想モデル内のオブジェクトの視点からの仮想モデルのシミュレートされたビューを閲覧することとの間で遷移するための例示的なユーザインタフェースを示す。
図5A28は、図5A4と同様に、デバイス100のカメラによってキャプチャされたときの物理的空間のライブビュー、仮想建築モデル5012、仮想車両5050、及び仮想の人5060を含む、デバイス100のタッチスクリーン112上に表示された拡張現実環境のビューを示す。加えて、図5A28の参照ボックス5019は、(例えば、図5A1及び図5A2に示すような)ユーザ5002の視点からの、テーブル5004及び物理的建築モデル5006に対するデバイス100の位置を示す。
図5A29〜図5A31は、図5A28からの遷移を示す。具体的には、図5A29〜図5A31は、拡張現実環境のビュー(例えば、図5A28に示す)から仮想モデル内の仮想車両5050の視点からの仮想モデルのシミュレートされたビューへの遷移を示す。
図5A29は、車両5050に対応する位置で検出された入力5052(例えば、デバイス100のタッチスクリーン112上のタップジェスチャ、又はフォーカスインジケータとともに別個の入力デバイスを使用した選択)を示す。
図5A30及び図5A31は、入力5052を検出したことに応じて表示された、拡張現実環境のビューから車両5050の視点からの仮想モデルのシミュレートされたビューへの遷移を示す。具体的には、図5A30は、図5A29に示すビューから車両5050からの(例えば、車両5050内のドライバ又は乗員などの人の視点からの)シミュレートされた視点ビューへのアニメーション化された遷移の間にデバイス100上に示されるビューを示し、図5A31は、車両5050からのシミュレートされた視点ビューを示す。
いくつかの実施形態では、拡張現実環境のビューからシミュレートされた視点ビューへの遷移は、アニメーション化された遷移を含む。任意選択的に、遷移は、拡張現実環境を閲覧する位置から車両5050の位置(例えば、車両5050内の人の位置)への飛行のアニメーションを含む。例えば、図5A30は、ユーザがデバイス100を移動しなかったとしても、図5A29のユーザの位置と車両5050の位置との間(例えば、アニメーション化された遷移を通る途中)の位置からの仮想モデルのビューを示す(例えば、図5A30の参照ボックス5019に示すような物理的建築モデル5006に対するデバイス100の位置は、図5A29と同じである)。
いくつかの実施形態では、デバイス100(例えば、デバイス100のカメラ)の視野の部分は、車両5050からの視点ビューへのアニメーション化された遷移の間に表示され続ける。例えば、図5A30に示すように、壁紙5007及びテーブル5004の縁部は、シミュレートされた視点ビューへのアニメーション化された遷移の間に表示される(例えば、図5A29のユーザの位置と車両5050の位置との間の、図5A30に示すビューに対応する位置から見たかのように)。いくつかの実施形態では、カメラの視野は、車両5050の視点ビューへのアニメーション化された遷移の間に表示されることを停止する(例えば、壁紙5007及びテーブル5004の縁部は、アニメーション化された遷移の間に表示されず、任意選択的に、仮想モデルの対応する部分が代わりに表示される)。
図5A31では、車両5050からのシミュレートされた視点ビューはまた、車両5050(例えば、シミュレートされた視点ビューが表示される仮想オブジェクト)の移動(例えば、移動の方向)を制御するための方向矢印(上、下、左、及び右)を含むコントロール5054も示す。図5A31に示す実施例では、上矢印5056は、車両5050の前方移動を制御する。従って、いくつかの実施形態では、ユーザは、対応する仮想オブジェクト(例えば、車両5050)の移動を制御することができ、一方で、その仮想オブジェクトの視点からのシミュレートされたビューが表示される。いくつかの実施形態では、ユーザは、拡張現実環境のビューが表示されている間に、仮想モデル内の対応する仮想オブジェクト(例えば、仮想車両5050及び/又は仮想の人5060)の移動を制御することができない。例えば、いくつかの実施形態では、ユーザは、図5A28の拡張現実環境のビュー内の車両5050の移動を制御することができない。いくつかの実施形態では、拡張現実環境のビュー(例えば、図5A28)が表示されている間に、車両5050は、仮想モデル内で自律的に移動する。
図5A32及び図5A33は、図5A31からの遷移を示す。具体的には、図5A32及び図5A33は、仮想モデル内の車両5050のユーザに制御された移動を示す。図5A32は、コントロール5054の上矢印5056(図5A31に示す)に対応する位置で検出された入力5058を示す。上矢印5056上の入力5058に応じて、車両5050は、仮想モデル内で前方に移動する。従って、図5A33は、仮想モデル内の車両5050の前方移動に対応する、仮想モデルの更新されたシミュレートされた視点ビューが表示されることを示す。例えば、図5A33の更新されたシミュレートされた視点ビューでは、仮想建築モデル5012は、より見えなくなり、人5060は、図5A32よりも接近して見える。
図5A34及び図5A35は、図5A33からの遷移を示す。具体的には、図5A34及び図5A35は、車両5050の視点からの仮想モデルのシミュレートされたビューから仮想の人5060の視点からの仮想モデルのシミュレートされたビューへの遷移を示す。図5A34は、人5060に対応する位置で検出された入力5062を示す。図5A35は、入力5062を検出したことに応じて表示された、人5060の視点からの仮想モデルのシミュレートされたビューを示す。いくつかの実施形態では、デバイス100は、車両5050からのシミュレートされた視点ビューと人5060からのシミュレートされた視点ビューとの間のアニメーション化された遷移を表示する(例えば、ユーザが車両5050の(例えば、車両5050内の)位置から人5060の位置まで移動しているかのように)。
図5A36及び図5A37は、図5A35からの遷移を示す。具体的には、図5A36及び図5A37は、(例えば、物理的空間内の)デバイス100の移動に応じて、人5060(例えば、選択された仮想オブジェクト)の視点からの仮想モデルのビューを変更することを示す。
図5A36は、左に向かうデバイス100の移動及びz軸周りのデバイス100の回転を示す矢印5064を示す(例えば、それにより、デバイス100の右縁部がユーザにより接近して移動し、デバイス100の左縁部がユーザからより遠く離れて移動する)。図5A37は、デバイス100の移動を検出したことに応じて表示された、人5060の視点からの仮想モデルの更新されたシミュレートされた視点ビューを示す。図5A37の更新されたシミュレートされた視点ビューは、図5A36の人の位置に対して人5060が左に向かって移動し右に向かってわずかに人の頭を回転させた場合の仮想モデルのビューに対応する。図5A37の参照ボックス5019は、デバイス100が矢印5064によって示すように移動された後の、物理的建築モデル5006に対するデバイス100の新たな位置を示す。
いくつかの実施形態では、コントロール5054(例えば、図5A31に示すが、図5A35、図5A36には示されない)は、人5060の視点からのシミュレートされたビューを表示している間に表示され、それにより、人5060の視点からのシミュレートされたビューが表示されている間に(例えば、図5A35)、ユーザは、コントロール5054上の矢印を使用して仮想モデル内の人5060の移動を制御することができる。
図5A38〜図5A40は、図5A37からの遷移を示す。具体的には、図5A38〜図5A40は、図5A37に示すシミュレートされた視点ビューから拡張現実環境のビューに戻る遷移を示す。
図5A38は、入力5066を示す。5A38に示す実施例では、入力5066は、(例えば、仮想モデルのシミュレートされた視点ビューの最小ズームレベルからの)ピンチジェスチャである。いくつかの実施形態では、入力5066は、仮想モデル内の「空の」位置(例えば、芝生の部分などの、シミュレートされた視点ビューが利用できない位置)上のジェスチャ(例えば、タップ)である。いくつかの実施形態では、入力5066は、拡張現実環境を表示する、又は再表示するためのアフォーダンス(例えば、シミュレートされた視点ビューを出るための「X」などのアイコン)上のジェスチャ(例えば、タップ)である。
図5A39及び図5A40は、入力5066を検出したことに応じて表示される、人5060の視点からの仮想モデルのシミュレートされたビューから拡張現実環境のビューへの遷移を示す。具体的には、図5A39は、図5A38に示すビューから拡張現実環境のビューへのアニメーション化された遷移の間にデバイス100上に示されるビューを示し、図5A40は、拡張現実環境のビューを示す。いくつかの実施形態では、シミュレートされた視点ビューから拡張現実環境のビューへの遷移は、仮想オブジェクトの位置(シミュレートされた視点ビューが示される)から拡張現実環境を閲覧する位置への飛行のアニメーションを任意選択的に含む、アニメーション化された遷移を含む。
デバイス100が図5A38〜図5A40では物理的建築モデル5006に対して図5A28〜図5A30とは異なる位置にあるため、図5A40に示すような拡張現実のビューは、デバイス100の新しい位置に対応し、図5A28に示すものとは異なる。同様に、図5A39は、ユーザがデバイス100を移動しなかったとしても、図5A38の人5060の位置と図5A40のユーザの位置との間(例えば、アニメーション化された遷移を通る途中)の位置からの仮想モデルのビューを示す(例えば、参照ボックス5019に示すような物理的建築モデル5006に対するデバイス100の位置は、図5A38〜図5A40のそれぞれにおいて同じである)。
図5A29〜図5A31を参照して上述したシミュレートされた視点ビューへのアニメーション化された遷移と同様に、いくつかの実施形態では、シミュレートされた視点ビューから拡張現実環境のビューへのアニメーション化された遷移の間に、デバイス100(例えば、デバイス100のカメラ)の視野の部分は見える。例えば、図5A39に示すように、壁紙5007は、シミュレートされた視点ビューからのアニメーション化された遷移の間に表示される(例えば、人5060の位置と図5A40のユーザの位置との間の、図5A39に示すビューに対応する位置から見たかのように)。いくつかの実施形態では、カメラの視野は、拡張現実環境のビューへのアニメーション化された遷移の間に表示されることを停止する(例えば、壁紙5007は、アニメーション化された遷移の間に表示されず、任意選択的に、仮想モデルの対応する部分が代わりに表示される)。
図5B1〜図5B41は、いくつかの実施形態に係る、仮想ユーザインタフェースオブジェクトの3次元操作のためのシステム及びユーザインタフェースの例を示す。これらの図におけるユーザインタフェースは、図6A〜図6D、図7A〜図7C、及び図8A〜図8Cにおけるプロセスを含む、後述するプロセスを例示するために使用される。説明の便宜上、実施形態のいくつかは、タッチ感知ディスプレイシステム112を有するデバイス上で実行される操作を参照して議論される。同様に、類似の動作は、任意選択的に、フォーカスインジケータとともに、ヘッドセット5008のディスプレイ上に図に示すユーザインタフェースを表示している間に、入力デバイス5010のタッチ感知面上の接触を検出したことに応じて、ヘッドセット5008とタッチ感知面を有する別個の入力デバイス5010とを有するコンピュータシステム(例えば、図5B2に示すような)上で実行される。
図5B1〜図5B4は、図5B5〜図5B41に関して説明するユーザインタフェースが使用される状況を示す。
図5B1は、ユーザ5202及びテーブル5204が位置する物理的空間5200を示す。デバイス100は、ユーザ5202によってユーザの手5206に保持される。基準マット5208は、テーブル5204上に位置する。
図5B2は、デバイス100のディスプレイ112上に表示された仮想3次元空間のビューを示す。基準マット5208は、デバイス100の1つ以上のカメラ(例えば、光センサ164)(以下、「カメラ」と呼び、デバイス100の1つ以上のカメラを示す)の視野内にある。ディスプレイ112は、物理的基準マット5208aの表示されたバージョン5208bを含む、カメラによってキャプチャされたときの物理的空間5200のライブビューを示す。仮想ユーザインタフェースオブジェクト(仮想ボックス5210)は、ディスプレイ112上に表示された仮想3次元空間内に表示される。いくつかの実施形態では、仮想ボックス5210は、基準マット5208bに固定され、それにより、基準マットの表示されたビュー5208bが物理的空間5200内の基準マット5208aの移動に応じて変化するにつれて、仮想ボックス5210のビューが変化する(例えば、図5B2〜図5B3に示すように)。同様に、仮想ボックス5210のビューは、表示されたバージョン5208bのビューが基準マット5208aに対するデバイス100の移動に応じて変化するにつれて、変化する。
図5B3では、基準マット5208は、回転されており、それにより、基準マット5208aのより長い辺がデバイス100に隣接している(図5B2では、基準マット5208aのより短い辺は、デバイス100に隣接していた)。図5B2から図5B3への基準マットの表示されたバージョン5208bの回転は、物理的空間5200内の基準マット5208aの回転の結果として生じる。
図5B3及び図5B4では、デバイス100は、基準マット5208aに接近して移動している。結果として、基準マットの表示されたバージョン5208b及び仮想ボックス5210のサイズは、増大している。
図5B5〜図5B41は、デバイス100のより大きなビューを示して、ディスプレイ112上に表示されたユーザインタフェースの全ビューを提供し、ユーザの手5206を示さない。
図5B5は、ディスプレイ112上に表示された、仮想ユーザインタフェースオブジェクトを作成及び調整するためのユーザインタフェースを示す。ユーザインタフェースは、アバター5212と、(例えば、仮想現実表示モードと拡張現実表示モードとの間でトグルするための)トグル5214と、(例えば、ディスプレイ112によって表示される仮想3次元空間に新しいオブジェクト5216を追加するための)新規オブジェクトコントロール5216と、(例えば、仮想オブジェクトの色を選択するための)利用可能な色に対応する多数のコントロールを含む色選択パレット5218と、(例えば、仮想3次元空間から仮想ユーザインタフェースオブジェクトを除去するための)削除コントロール5220と、を含む。図5B5では、トグル5214は、現在の表示モードが拡張現実表示モードであることを示す(例えば、ディスプレイ112は、仮想ボックス5210、及びデバイス100のカメラによってキャプチャされたときの物理的空間5200のビューを表示している)。図5B37〜図5B39は、仮想現実表示モードを示す。図5B37〜図5B39では、トグル5214の外観は、変更されて、仮想現実表示モードがアクティブであること(及びトグル5214での入力が仮想現実表示モードから拡張現実表示モードへの遷移を引き起こすことになること)を示す。
図5B6〜図5B17は、仮想ボックス5210の移動を引き起こす入力を示す。
図5B6では、接触5222(例えば、タッチ感知ディスプレイ112との接触)による入力(例えば、選択及び移動の入力)が、仮想ボックス5210の第1の表面5224上で検出される。仮想ボックス5210の表面が選択されると、仮想ボックス5210の移動は、選択された表面に平行な平面内の移動に制限される。仮想ボックス5210の第1の表面5224を選択する接触5222の検出に応じて、移動投影5226が仮想ボックス5210から延びて示されて、仮想ボックス5210の移動平面(例えば、仮想ボックス5210の選択された第1の表面5224に平行な移動の平面)を示す。
図5B6及び図5B7では、接触5222は、矢印5228によって示す方向にタッチ感知ディスプレイ112の表面に沿って移動している。接触5222の移動に応じて、仮想ボックス5210は、矢印5228によって示す方向に移動投影5226によって示す平面内で移動している。図5B7及び図5B8では、接触5222は、矢印5230によって示す方向にタッチ感知ディスプレイ112の表面に沿って移動している。接触5222の移動に応じて、仮想ボックス5210は、矢印5230によって示す方向に移動投影5226によって示す平面内で移動している。図5B9では、接触5222は、タッチ感知ディスプレイ112からリフトオフしており、移動投影5226は、もはや表示されない。
図5B10では、接触5232による入力(例えば、選択及び移動の入力)が、仮想ボックス5210の第2の表面5234上で検出される。仮想ボックス5210の第2の表面5234を選択する接触5232の検出に応じて、移動投影5236が仮想ボックス5210から延びて示されて、仮想ボックス5210の移動平面(例えば、仮想ボックス5210の選択された第2の表面5234に平行な移動の平面)を示す。
図5B10及び図5B11では、接触5232は、矢印5238によって示す方向にタッチ感知ディスプレイ112の表面に沿って移動している。接触5232の移動に応じて、仮想ボックス5210は、矢印5238によって示す方向に移動投影5236によって示す平面内で移動している。表示された基準マット5208bの上にホバリングしているように仮想ボックス5210が上方に移動すると、仮想ボックス5210の影5240が表示されて、仮想ボックス5210がホバリングしていることを示す。
図5B11及び図5B12では、接触5232は、矢印5242によって示す方向にタッチ感知ディスプレイ112の表面に沿って移動している。接触5232の移動に応じて、仮想ボックス5210は、矢印5242によって示す方向に移動投影5236によって示す平面内で移動している。図5B13では、接触5232は、タッチ感知ディスプレイ112からリフトオフしており、移動投影5236は、もはや表示されない。
図5B14では、接触5233による入力(例えば、選択及び移動の入力)が、仮想ボックス5210の第1の表面5224上で検出される。仮想ボックス5210の第1の表面5224を選択する接触5233の検出に応じて、移動投影5237が仮想ボックス5210から延びて示されて、仮想ボックス5210の移動平面(例えば、仮想ボックス5210の選択された第1の表面5224に平行な移動の平面)を示す。
図5B14及び図5B15では、接触5233は、矢印5239によって示す方向にタッチ感知ディスプレイ112の表面に沿って移動している。接触5233の移動に応じて、仮想ボックス5210は、矢印5238によって示す方向に移動投影5237によって示す平面内で移動している。図5B10及び図5B11に示す接触5232の移動は、図5B14及び図5B15に示す接触5233の移動と同じ方向である。仮想ボックス5210の第2の表面5234が選択されている間に接触5232の移動が生じるため、図5B10及び図5B11の仮想ボックス5210の移動平面は、仮想ボックス5210の第1の表面5224が選択されている間に接触5233の移動が生じる、図5B14及び図5B15の仮想ボックス5210の移動平面とは異なる。このように、入力の同じ移動方向を有する選択及び移動の入力は、選択された仮想ボックス5210の表面に応じて、仮想ボックス5210の異なる移動を引き起こす。
図5B15及び図5B16では、接触5233は、矢印5243によって示す方向にタッチ感知ディスプレイ112の表面に沿って移動している。接触5233の移動に応じて、仮想ボックス5210は、矢印5243によって示す方向に移動投影5237によって示す平面内で移動している。図5B17では、接触5233は、タッチ感知ディスプレイ112からリフトオフしており、移動投影5237は、もはや表示されない。
図5B18〜図5B21は、仮想ボックス5210のサイズ変更を引き起こす入力を示す。
図5B18では、接触5244による入力(例えば、サイズ変更入力)が、仮想ボックス5210の第1の表面5224上で検出される。いくつかの実施形態では、接触がサイズ変更時間閾値を上回って増加する期間にわたって仮想オブジェクトの表面に対応する位置に留まるとき、接触のその後の移動(及び/又はデバイス100の移動)は、仮想オブジェクトのサイズ変更を引き起こす。図5B19では、接触5244は、サイズ変更時間閾値を上回って増加した期間にわたって仮想ボックス5210の第1の表面5224と接触したままであり、サイズ変更投影5246が示されて、接触5244の後続の移動に応じて仮想ボックス5210がサイズ変更されることになる軸(選択された第1の表面5224に垂直である)を示す。
図5B19及び図5B20では、接触5244は、矢印5248によって示す経路に沿って移動している。接触5244の移動に応じて、仮想ボックス5210のサイズは、矢印5248によって示す方向にサイズ変更投影5246によって示す軸に沿って増大している。図5B21では、接触5244は、タッチ感知ディスプレイ112からリフトオフしており、投影5246は、もはや表示されない。
図5B22〜図5B27は、挿入カーソルを使用した、オブジェクト挿入カーソルの配置及び仮想ボックスの配置を示す。
図5B22では、接触5250による入力(例えば、タップ入力)が、物理的基準マット5208aの表示されたバージョン5208bに対応する位置で検出される。接触5250の検出に応じて、接触5250に対応するディスプレイ112上の位置に、挿入カーソル5252が表示され、図5B23では、接触5250は、タッチ感知ディスプレイ112からリフトオフしており、挿入カーソル5252が示される。いくつかの実施形態では、挿入カーソル5252は、所定の期間後に表示されることを停止する。図5B24では、挿入カーソル5252は、表示されることを停止しており、(図5B23に示すような)挿入カーソル5252が示されていた位置とは異なる位置で、接触5254による入力(例えば、タップ入力)が検出される。接触5254の検出に応じて、接触5254に対応するディスプレイ112上の位置に、新しい挿入カーソル5256が表示される。図5B25では、接触5254は、タッチ感知ディスプレイ112からリフトオフしており、挿入カーソル5256が示される。
図5B26では、挿入カーソル5256は、表示されることを停止しており、(図5B25に示すような)挿入カーソル5256が示されていた位置に対応する位置で、接触5258による入力(例えば、タップ入力)が検出される。挿入カーソルが配置されていた位置での接触5258の検出に応じて、新しい仮想ユーザインタフェースオブジェクト(仮想ボックス5260)が、接触5258に対応する位置にディスプレイ112上で表示される。図5B27では、接触5258は、タッチ感知ディスプレイ112からリフトオフしている。
図5B28〜図5B31は、デバイス100の移動による仮想ボックス5260のサイズ変更を示す。
図5B28では、タッチ感知ディスプレイ112との接触5262による入力(例えば、サイズ変更入力)が、仮想ボックス5260の表面5264上で検出される。図5B29では、接触5262は、サイズ変更時間閾値を上回って増加した期間にわたって仮想ボックス5260の表面5264と接触したままであり、サイズ変更投影5266が示されて、デバイス100の後続の移動に応じて仮想ボックス5260がサイズ変更されることになる軸(選択された表面5264に垂直である)を示す。図5B29及び図5B30では、デバイス100は、接触5262がタッチ感知ディスプレイ112と接触したままである間に、矢印5268によって示す経路に沿って移動する。デバイス100の移動に応じて、仮想ボックス5260のサイズは、図5B30に示すように、サイズ変更投影5266によって示す軸に沿って増大する。図5B31では、接触5262は、タッチ感知ディスプレイ112からリフトオフしており、サイズ変更投影5266は、もはや表示されない。
図5B32〜図5B35は、新規オブジェクトコントロール5216を使用した、新しい仮想オブジェクトの挿入を示す。
図5B32では、接触5270による入力(例えば、タップ入力)が、物理的基準マット5208aの表示されたバージョン5208b上の位置で検出される。接触5270の検出に応じて、接触5270に対応するディスプレイ112上の位置に、挿入カーソル5272が表示される。図5B33では、接触5270は、タッチ感知ディスプレイ112からリフトオフしており、挿入カーソル5272が示される。図5B34では、挿入カーソル5272は、表示されることを停止しており、タッチ感知ディスプレイ112との接触5274による入力(例えば、タップ入力)が、新規オブジェクトコントロール5216に対応する位置で検出される。図5B35では、新規オブジェクトコントロール5216での入力に応じて(例えば、挿入カーソル5272の配置の後に)、新しい仮想ユーザインタフェースオブジェクト(仮想ボックス5276)が、挿入カーソル5272が示されていた位置に対応する位置にディスプレイ112上で表示される。
図5B36及び図5B37は、拡張現実表示モードから仮想現実表示モードへの遷移を引き起こすピンチズーム入力を示す。図5B39及び図5B40は、仮想現実表示モードから拡張現実表示モードに戻るためのトグル5214での入力を示す。
図5B36では、タッチ感知ディスプレイ112との接触5278及び5280が同時に検出される。図5B36及び図5B37に示すように、接触5278及び5280が矢印5282及び5284それぞれによって示す経路に沿って同時に移動されるピンチジェスチャが検出される。ピンチジェスチャを検出したことに応じて、仮想ボックス5210、5260、及び5276の表示がズームされる(例えば、ズームアウトされ、それにより、仮想ボックス5210、5260、及び5276の表示されたサイズがより小さくなる)。いくつかの実施形態では、ズームするためのジェスチャは、拡張現実表示モードから仮想現実表示モードへの遷移を引き起こす(例えば、ボックスのズームされたビューは、もはやデバイス100のカメラの視野と位置が合っていないため)。いくつかの実施形態では、仮想現実表示モードでは、デバイス100のカメラの視野内の物理的オブジェクト(例えば、基準マット5208)は、表示されることを停止する、又は物理的オブジェクトのうちの1つ以上の仮想(レンダリングされた)バージョンが表示される。
いくつかの実施形態では、仮想現実表示モードでは、デバイス100によって表示された仮想オブジェクトは、デバイス100の座標系にロックされる。図5B37及び図5B38では、デバイス100の位置は、変化している。デバイス100が仮想現実表示モードにあるため、仮想ボックス5210、5260、及び5276の位置は、デバイス100の変更された位置に応じて変化していない。
図5B39では、接触5286による入力(例えば、タップ入力)がトグル5214に対応する位置で検出される。接触5286による入力に応じて、仮想現実表示モードから拡張現実表示モードへの遷移が引き起こされる。図5B40は、接触5286による入力に応じて拡張現実表示モードへの遷移後に、ディスプレイ112上に表示されたユーザインタフェースを示す。遷移は、デバイス100のカメラの視野を再表示すること(例えば、基準マットの表示されたビュー5208bを再表示すること)を含む。いくつかの実施形態では、遷移は、仮想ボックス5210、5260、及び5276の表示をズームすること(例えば、ズームインすること)を含む(例えば、デバイス100のカメラの視野とボックスを再位置合わせするために)。
いくつかの実施形態では、拡張現実表示モードでは、デバイス100によって表示された仮想オブジェクトは、物理的空間5200及び/又は物理的空間5200内の物理的オブジェクト(例えば、基準マット5208)にロックされる。図5B40及び図5B41では、デバイス100の位置は、変化している。デバイス100が拡張現実表示モードにあるため、仮想ボックス5210、5260、及び5276は、基準マット5208aにロックされ、ディスプレイ112上の仮想ボックスの位置は、デバイス100の変更された位置に応じて変更される。
図5C1〜図5C30は、いくつかの実施形態に係る、表示されたシミュレートされた環境の閲覧モード間を遷移するためのシステム及びユーザインタフェースの例を示す。これらの図におけるユーザインタフェースは、図10A〜図10Eにおけるプロセスを含む、後述するプロセスを例示するために使用される。説明の便宜上、実施形態のいくつかは、タッチ感知ディスプレイシステム112を有するデバイス上で実行される操作を参照して議論される。同様に、類似の動作は、任意選択的に、フォーカスインジケータとともに、ヘッドセット5008のディスプレイ上に図に示すユーザインタフェースを表示している間に、入力デバイス5010のタッチ感知面上の接触を検出したことに応じて、ヘッドセット5008とタッチ感知面を有する別個の入力デバイス5010とを有するコンピュータシステム(例えば、図5A2に示すような)上で実行される。
図5C1及び図5C2は、図5C3〜図5C30に関して説明するユーザインタフェースが使用される状況を示す。
図5C1は、ユーザ及びテーブル5204が位置する物理的空間5200を示す。デバイス100は、ユーザによってユーザの手5206に保持される。基準マット5208は、テーブル5204上に位置する。シミュレートされた環境のビューは、デバイス100のディスプレイ112上に表示される。基準マット5208は、デバイス100の1つ以上のカメラ(例えば、光センサ164)(以下、「カメラ」と呼び、デバイス100の1つ以上のカメラを示す)の視野内にある。ディスプレイ112は、物理的基準マット5208aの表示されたバージョン5208bを含む、カメラによってキャプチャされたときの物理的空間5200のライブビューを示す。2つの仮想ユーザインタフェースオブジェクト(第1の仮想ボックス5302及び第2の仮想ボックス5304)は、ディスプレイ112上に表示されたシミュレートされた環境内に表示される。第1の閲覧モード(例えば、拡張現実閲覧モード)では、仮想ボックス5302及び5304は、基準マット5208bに固定され、それにより、物理的空間5200内の基準マット5208aの移動に応じて、基準マットの表示されたビュー5208bが変化するにつれて、仮想ボックス5302及び5304のビューが変化する(例えば、仮想ボックス5302及び5304と、基準マット5208aを含む物理的環境との間で固定された空間的関係が維持される)。同様に、第1の閲覧モードでは、仮想ボックス5302及び5304のビューは、基準マット5208aに対するデバイス100の移動に応じて変化する。
図5C2では、デバイス100は、基準マット5208aに接近して移動している。結果として、基準マットの表示されたバージョン5208b並びに仮想ボックス5302及び5304のサイズは、増大している。
図5C3〜図5C30は、デバイス100のより大きなビューを示して、ディスプレイ112上に表示されたユーザインタフェースの全ビューを提供し、ユーザの手5206を示さない。ユーザインタフェースの特徴は、図5B5に関して更に上述している。
図5C4〜図5C6は、仮想ボックスが拡張現実閲覧モードで表示されている間に仮想ボックス5302を移動させるための入力ジェスチャ(上方向スワイプ及び下方向スワイプを含む)を示す。図5C4〜図5C6に関して説明した入力ジェスチャは、モード変更基準を満たすジェスチャ(例えば、拡張現実閲覧モードから仮想現実閲覧モードに閲覧モードを変更するための)ではないため、仮想ボックス5302及び5304のビューは、図5C7及び図5C8に示すように、デバイス100のその後の移動に応じて変化する(例えば、それにより、仮想ボックス5302及び5304と、基準マット5208aを含む物理的環境との間で固定された空間的関係が維持される)。
モード変更基準を満たさないジェスチャの別の例は、(例えば、図5B18〜図5B21に関して上述したような)サイズ変更ジェスチャである。
図5C4では、接触5306による入力(例えば、選択及び移動の入力)が、仮想ボックス5302の表面5308上で検出される。仮想ボックス5302の表面5308を選択する接触5306の検出に応じて、移動投影5310が仮想ボックス5302から延びて示されて、仮想ボックス5302の移動平面(例えば、仮想ボックス5302の選択された表面5308に平行な移動の平面)を示す。
図5C4及び図5C5では、接触5306は、矢印5312によって示す方向にタッチ感知ディスプレイ112の表面に沿って移動する。接触5306の移動に応じて、仮想ボックス5302は、矢印5312によって示す方向に移動投影5310によって示す平面内で移動している。表示された基準マット5208bの上にホバリングしているように仮想ボックス5302が上方に移動すると、仮想ボックス5302の影5314が表示されて、仮想ボックス5210がホバリングしていることを示す。
図5C5及び図5C6では、接触5306は、矢印5316によって示す方向にタッチ感知ディスプレイ112の表面に沿って移動する。接触5306の移動に応じて、仮想ボックス5302は、矢印5316によって示す方向に移動投影5310によって示す平面内で移動している。図5C7では、接触5306は、タッチ感知ディスプレイ112からリフトオフしており、移動投影5310は、もはや表示されない。
図5C7及び図5C8は、矢印5318によって示す経路に沿ったデバイス100の移動を示す。デバイス100が移動されると、デバイス100であるように表示された仮想ボックス5302及び5304の位置は、ディスプレイ112上で変化する(例えば、それにより、仮想ボックス5302及び5304と、デバイス100の物理的環境内の基準マット5208aとの間で固定された空間的関係が維持される)。
図5C9〜図5C10は、モード変更基準を満たす(例えば、拡張現実閲覧モードから仮想現実閲覧モードへの閲覧モードの変更を引き起こす)入力ジェスチャ(ピンチジェスチャ)を示す。
図5C9では、タッチ感知ディスプレイ112で接触5320及び5324が検出される。図5C9〜図5C11では、接触5320は、矢印5322によって示す経路に沿って移動し、接触5324は、矢印5324によって示す経路に沿って移動する。接触5320と接触5324との間の距離を減少させる接触5320及び5324の同時移動に応じて、仮想ボックス5302及び5304を含むシミュレートされた環境の表示されたビューは、ズームアウトされる(例えば、それにより、仮想ボックス5302及び5304のサイズがディスプレイ112上で増大する)。ズーム入力が受信されると、拡張現実閲覧モードから仮想現実閲覧モードへの遷移が引き起こされる。遷移の間に行なわれる遷移アニメーションは、物理的環境の表示されたビューの漸進的なフェードアウトを含む。例えば、デバイス100の1つ以上のカメラによってキャプチャされたときの、テーブル5204の表示されたビュー及び基準マット5208aの表示されたビュー5208bは、漸進的にフェードアウトする(例えば、図5C10及び図5C11に示すように)。遷移アニメーションは、仮想基準グリッド5328の仮想グリッドラインの漸進的なフェードインを含む(例えば、図5C11及び図5C12に示すように)。遷移の間に、(例えば、仮想現実表示モードと拡張現実表示モードとの間でトグルするための)トグル5214の外観は、現在の閲覧モードを示すように変更される(例えば、図5C10及び図5C11に示すように)。接触5320及び5324のリフトオフの後で、シミュレートされた環境内の仮想ボックス5302及び5304は、移動し続け、サイズが減少する(例えば、シミュレートされた環境の変化は、入力ジェスチャの終了後の移動を引き起こす「運動量」を有し続ける)。
図5C12及び図5C13では、デバイス100は、矢印5330によって示す経路に沿って移動される。図5C9〜図5C11に関して説明したピンチズーム入力ジェスチャが拡張現実閲覧モードから仮想現実閲覧モードへの変更を引き起こしたため、仮想ボックス5302及び5304の位置は、デバイス100の移動に応じて変化しない(例えば、仮想現実閲覧モードでは、仮想ボックス5302及び5304と物理的環境との間で固定された空間的関係は維持されない)。
図5C13及び図5C14では、デバイス100は、矢印5332によって示す経路に沿って移動される。
図5C15〜図5C18は、シミュレートされた環境が仮想現実閲覧モードで表示されている間に、デバイス100上に表示されたシミュレートされた環境内に仮想ボックスを挿入するための入力を示す。
図5C15では、タッチ感知ディスプレイ112上で接触5334による入力(例えば、タップ入力)が検出される。接触5334の検出に応じて、図5C16に示すように、接触5334に対応するディスプレイ112上の位置に、挿入カーソル5336が表示される。図5C17では、挿入カーソル5336は、表示されることを停止しており、接触5338による入力(例えば、タップ入力)が、新規オブジェクトコントロール5216に対応する位置で検出される。図5C18では、新規オブジェクトコントロール5216での入力に応じて(例えば、挿入カーソル5336の配置の後に)、新しい仮想ユーザインタフェースオブジェクト(仮想ボックス5340)が、挿入カーソル5336が示されていた位置に対応する位置に表示される。
図5C19及び図5C20は、シミュレートされた環境が仮想現実閲覧モードで表示されている間に、デバイス100上に表示されたシミュレートされた環境内の仮想ユーザインタフェースオブジェクトを操作するための入力を示す。
図5C19では、接触5342による入力(例えば、選択及び移動の入力)が、仮想ボックス5340の表面5344上で検出される。仮想ボックス5340の表面5344を選択する接触5342の検出に応じて、移動投影5348が仮想ボックス5340から延びて示されて、仮想ボックス5340の移動平面(例えば、仮想ボックス5340の選択された表面5344に平行な移動の平面)を示す。図5194〜図5C20では、接触5342は、矢印5346によって示す方向にタッチ感知ディスプレイ112の表面に沿って移動する。接触5342の移動に応じて、仮想ボックス5340は、矢印5346によって示す方向に移動投影5348によって示す平面内で移動している。
図5C21では、接触5342は、タッチ感知ディスプレイ112からリフトオフしており、移動投影5384は、もはや表示されない。
図5C22及び図5C23は、シミュレートされた環境の視点を変更するための入力ジェスチャ(例えば、回転ジェスチャ)を示す。
図5C22では、タッチ感知ディスプレイ112で接触5350が検出される。図5C22及び図5C23では、接触5350は、矢印5352によって示す経路に沿って移動する。接触5350が移動すると、シミュレートされた環境が回転する。図5C23では、仮想基準グリッド5328並びに仮想ボックス5302、5304、及び5340の位置は、接触5350による入力に応じて回転している。
図5C24及び図5C25では、デバイス100は、矢印5354によって示す経路に沿って移動される。図5C24及び図5C25でディスプレイ112上に表示されたシミュレートされた環境が仮想現実閲覧モードで表示されているため、ディスプレイ112上の仮想ボックス5302及び5304の位置は、デバイス100の移動に応じて変化しない。
図5C26及び図5C27は、仮想現実閲覧モードから拡張現実閲覧モードへの閲覧モードの変更を引き起こす入力ジェスチャ(デピンチジェスチャ)を示す。
図5C26では、タッチ感知ディスプレイ112で接触5356及び5360が検出される。図5C26及び図5C27では、接触5356は、矢印5358によって示す経路に沿って移動し、接触5360は、矢印5362によって示す経路に沿って移動する。接触5356と接触5360との間の距離を増加させる接触5356及び5360の同時移動に応じて、仮想ボックス5302、5304、及び5340を含むシミュレートされた環境の表示されたビューは、ズームインされる(例えば、それにより、仮想ボックス5302、5304、及び5340のサイズがディスプレイ112上で増大する)。ズーム入力が受信されると、仮想現実閲覧モードから拡張現実閲覧モードへの遷移が引き起こされる。遷移の間に行なわれる遷移アニメーションは、仮想基準グリッド5328の漸進的なフェードアウトを含む(例えば、図5C26及び図5C27に示すように)。遷移アニメーションは、物理的環境のビューの漸進的なフェードインを含む。例えば、デバイス100の1つ以上のカメラによってキャプチャされたときのテーブル5204及び基準マット5208aは、ディスプレイ112上で漸進的に見えるようになる(例えば、図5C28〜図5C30に示すように)。遷移の間に、トグル5214の外観は、現在の閲覧モードを示すように変更される(例えば、図5C27及び図5C28に示すように)。接触5356及び5360のリフトオフの後に、シミュレートされた環境内の仮想ボックス5302、5304、及び5340は、図5C28〜図5C30に示すように、(例えば、仮想ボックス5302及び5304と基準マット5208aとの間の元の空間が復元されるまで)サイズが増加し、移動し、回転し続ける。
いくつかの実施形態では、仮想現実閲覧モードがアクティブであった間に追加された仮想ボックス5340は、図5C30に示すように、代替現実閲覧モードで見える。
いくつかの実施形態では、仮想現実閲覧モードから拡張現実閲覧モードへの閲覧モードの変更は、トグル5214に対応する位置での接触による入力(例えば、タップ入力)に応じて行なわれる。例えば、トグル5214に対応する位置で検出されたタップ入力に応じて、(例えば、図5C26に示すような)仮想現実閲覧モードを表示することから(例えば、図5C30に示すような)拡張現実閲覧モードへの遷移が行なわれる。いくつかの実施形態では、遷移の間に、5C26〜5C30に示すアニメーションと同じ又は類似の遷移アニメーションが表示される。
図5D1〜図5D14は、いくつかの実施形態に係る、第1のコンピュータシステムによって表示されるシミュレートされた環境内の第2のコンピュータシステムの閲覧視点のインジケーションを更新するためのシステム及びユーザインタフェースの例を示す。これらの図におけるユーザインタフェースは、図11A〜図11Cにおけるプロセスを含む、後述するプロセスを例示するために使用される。説明の便宜上、実施形態のいくつかは、タッチ感知ディスプレイシステム112を有するデバイス上で実行される操作を参照して議論される。同様に、類似の動作は、任意選択的に、フォーカスインジケータとともに、ヘッドセット5008のディスプレイ上に図に示すユーザインタフェースを表示している間に、入力デバイス5010のタッチ感知面上の接触を検出したことに応じて、ヘッドセット5008とタッチ感知面を有する別個の入力デバイス5010とを有するコンピュータシステム(例えば、図5A2に示すような)上で実行される。
図5D1及び図5D2は、図5D3〜図5D14に関して説明するユーザインタフェースが使用される状況を示す。
図5D1は、2人のユーザ5402及び5408並びにテーブル5414が位置する物理的空間5400を示す。第1のデバイス5406(例えば、デバイス100)は、第1のユーザ5402によって第1のユーザの手5404に保持される。第2のデバイス5412(例えば、デバイス100)は、第2のユーザ5408によって第2のユーザの手5410に保持される。基準マット5416aは、テーブル5414上に位置する。
図5D2は、デバイス5406のディスプレイ5148(例えば、ディスプレイ112)上に表示された仮想3次元空間のビューを示す。基準マット5416は、デバイス5406の1つ以上のカメラ(例えば、光センサ164)(以下、「カメラ」と呼び、デバイス5406の1つ以上のカメラを示す)の視野内にある。ディスプレイ5148は、物理的基準マット5416aの表示されたバージョン5416bを含む、カメラによってキャプチャされたときの物理的空間5400のライブビューを示す。シミュレートされた環境内の仮想ユーザインタフェースオブジェクト(仮想ボックス5420)がディスプレイ5418上に表示される。いくつかの実施形態では、仮想ボックス5420は、基準マット5416bに固定され、それにより、基準マット5416aに対するデバイス100の移動に応じて基準マットの表示されたバージョン5416bのビューが変化するにつれて、仮想ボックス5420のビューが変化する。ユーザインタフェースの特徴は、図5B5に関して更に上述している。
図5D3〜図5D11は、テーブル5414に対する第1のデバイス5406及び第2のデバイス5412の物理的空間5400内の向きを示す下位図「a」(例えば、図5D3aに示すような)、第1のデバイス5412のユーザインタフェースを示す下位図「b」(例えば、図5D3bに示すような)、並びに第2のデバイス5412のユーザインタフェースを示す下位図「c」(例えば、図5D3cに示すような)を含む。ユーザインタフェースの全ビューを提供するために、図5D3〜図5D11のユーザインタフェースは、デバイスを保持している手を示さない。また、明確にするために、図5D3〜図5D11のユーザインタフェースは、ユーザ5402及び5408の身体を示さない。デバイス5406のカメラの視野内にあるユーザ5408の身体の任意の部分は、典型的にはデバイス5406上に表示されたユーザインタフェース内に見えることになる(しかし、ユーザの身体のビューは、仮想ユーザインタフェースオブジェクト又は他のユーザインタフェース要素によって遮られることがある)ことを理解されたい。例えば、図5D2では、ユーザ5408の身体及び手は、デバイス5409によって表示されたユーザインタフェース内に見える。
図5D3及び図5D4は、第2のデバイス5412の移動を示す。
図5D3aでは、第2のデバイス5412は、テーブル5414に対して第1の位置(例えば、テーブルの左奥側に隣接する位置)に表示されている。
図5D3bでは、デバイス5406のユーザインタフェースは、デバイス5406に対応するキーアバター5424とデバイス5412に対応するキーアバター5426とを含む、アバターキー5422を含む。アバターキー5422は、キーアバター5424に対応する名前(「Me」)及びキーアバター5426に対応する名前(「Zoe」)を含む。アバターキーに示すキーアバターは、例えば、シミュレートされた環境内のアバター5428がユーザ「Zoe」のデバイス5412に対応することをデバイス5406のユーザが理解するのを助けるための、可視環境内に示されるアバター(例えば、アバター5428)へのガイドを提供する(例えば、シミュレートされた環境内のアバター5428が、キーアバター5426と一致する猫アイコンであるため)。
デバイス5406のユーザインタフェース上に表示されるシミュレートされた環境は、デバイス5406の視点から示される仮想ボックス5420及び物理的基準マット5416aの表示されたビュー5416bを含む。デバイス5412の閲覧視点は、閲覧視点インジケータ5432によって示される。閲覧視点インジケータ5432は、アバター5428から発して示されている。シミュレートされた環境では、デバイス5412の表現5430(例えば、デバイス5406のカメラによってキャプチャされたときのデバイス5412のビュー及び/又はデバイス5412のレンダリングされたバージョン)が示される。
図5D3cでは、デバイス5412のユーザインタフェースは、デバイス5412に対応するキーアバター5436とデバイス5406に対応するキーアバター5468とを含む、アバターキー5434を含む。アバターキー5434は、キーアバター5436に対応する名前(「Me」)及びキーアバター5438に対応する名前(「Gabe」)を含む。アバターキーに示すキーアバターは、例えば、シミュレートされた環境内のアバター5440がユーザ「Gabe」のデバイス5406に対応することをデバイス5412のユーザが理解するのを助けるための、可視環境内に示されるアバター(例えば、アバター5440)へのガイドを提供する(例えば、シミュレートされた環境内のアバター5440が、キーアバター5438と一致する笑顔アイコンであるため)。
図5D4aでは、第2のデバイス5412は、図5D3aに示すテーブル5414に対して第1の位置からテーブル5414に対して第2の位置(例えば、テーブルの左手前側に隣接する位置)に移動している。図5D4bでは、デバイス5406のユーザインタフェースは、図5D3bから変化した位置における(アバター5428及びデバイスの表現5430によって示される)デバイス5412を示す。デバイス5412の閲覧視点の変化は、図5D3bから図5D4bへの閲覧視点インジケータ5432の異なる角度によって示される。デバイス5412の移動はまた、図5D3cのデバイス5412のユーザインタフェース内から図5D4cへの、変更されたビューの表示された基準マット5416b及び仮想ボックス5420によって示される。
図5D5〜図5D7は、デバイス5412による仮想ボックス5420の選択及び移動を示す。
図5D5cでは、接触5446による入力(例えば、選択及び移動の入力)が、仮想ボックス5420の表面に対応する位置で第2のデバイス5412のタッチスクリーンディスプレイ上で検出される。仮想ボックス5420の表面を選択する接触5446の検出に応じて、移動投影5448が仮想ボックス5420から延びて示されて、仮想ボックス5420の移動平面(例えば、仮想ボックス5420の選択された表面に平行な移動の平面)を示す。
図5D5bでは、相互作用インジケータ5452が示されて、第2のデバイス5412が仮想ボックス5420と相互作用していることを第1のデバイス5406のユーザに示す。相互作用インジケータ5452は、アバター5428に対応する位置から仮想ボックス5420に対応する位置まで延びる。インジケーションインジケータ5452が仮想ボックス5420と交わる位置に制御ハンドル5454が示されている。
図5D5c〜図5D6cでは、接触5446は、矢印5450によって示す方向にデバイス5412のタッチ感知ディスプレイに沿って移動する。接触5446の移動に応じて、仮想ボックス5420は、矢印5450によって示す方向に移動投影5448によって示す平面内で移動している。
図5D5b〜図5D6bでは、仮想ボックス5420が第2のデバイス5412で検出された移動入力によって移動されると、第1のデバイス5406のユーザインタフェースは、相互作用インジケータ5452及び制御ハンドル5454の移動を示す(例えば、相互作用インジケータ5452と仮想ボックス5420との間の接続を維持するため)。
図5D7cでは、接触5446は、デバイス5412のタッチ感知ディスプレイデバイスからリフトオフしており、移動投影5448は、もはや表示されない。図5D7bでは、相互作用インジケータ5452及び制御ハンドル5454は、もはや表示されない(デバイス5412が仮想ボックス5420と相互作用していないため)。
図5D8〜図5D11は、デバイス5412による仮想ボックス5420のサイズ変更を示す。
図5D8cでは、接触5456による入力(例えば、サイズ変更入力)が、仮想ボックス5420の表面に対応する位置で第2のデバイス5412のタッチスクリーンディスプレイ上で検出される。
図5D8bでは、第1のデバイス5406のユーザインタフェース上に相互作用インジケータ5462及び制御ハンドル5464が示されて、第2のデバイス5412が仮想ボックス5420と相互作用していることを示す。
図5D9cでは、接触5456がサイズ変更時間閾値を上回って増加する期間にわたって仮想ボックス5420の表面に対応する位置に留まった後に、サイズ変更投影5458が示されて、接触5456の後続の移動に応じて仮想ボックス5420がサイズ変更されることになる軸(仮想ボックス5420の選択された表面に対して垂直である)を示す。
図5D9a〜図5D10aは、仮想ボックス5420をサイズ変更するために、(接触5456が第2のデバイス5412のタッチスクリーンディスプレイと接触している間に)上方に移動する第2のデバイス5412を示す。デバイス5412の移動に応じて、仮想ボックス5420のサイズは、第2のデバイス5412が移動した方向にサイズ変更投影5458によって示す軸に沿って増大している。
図5D11cでは、接触5456は、タッチ感知ディスプレイ112からリフトオフしており、投影5458は、もはや表示されない。
図5D12〜図5D14に示すように、同じ物理的空間内にいないユーザは、シミュレートされた環境内のオブジェクトを閲覧し、協働して操作することができる。例えば、第1の物理的空間内のユーザは、第1の物理的基準マット(例えば、5416a)の表示されたバージョンに固定された仮想ユーザインタフェースオブジェクト(例えば、仮想ボックス5420)を閲覧し、遠隔位置の異なるユーザは、第2の物理的基準マット(例えば、5476a)の表示されたバージョンに固定された同じ仮想ユーザインタフェースオブジェクトを閲覧する。
図5D12aは、図5D1に示したように、2人のユーザ5402及び5408並びにテーブル5414が位置する第1の物理的空間5400を示す。図5D12bは、第3のユーザ5472及びテーブル5474が位置する、第1の物理的空間5400とは別個の第2の物理的空間5470を示す。第3のデバイス5478(例えば、デバイス100)は、第3のユーザ5472によって保持されている。基準マット5476aは、テーブル5474上に位置する。第3のユーザ5472のデバイス5478は、第1のユーザ5408のデバイス5412及び第2のユーザ5402のデバイス5404によって表示される同じシミュレートされた環境を表示する。
図5D13aは、図5D12aに関して説明したような第1の物理的空間5400を示し、図5D13bは、図5D12bに関して説明したような第2の物理的空間5470を示す。
図5D13cでは、第1のデバイス5406のユーザインタフェースは、第3のデバイス5478に対応するキーアバター5480(「Stan」用の)を含むアバターキー5422を含む。第3のデバイス5478に対応するアバター5482(キーアバター5480によって示すような)は、物理的基準マット5476aに対するデバイス5478の位置に対応する物理的基準マット5416aの表示されたバージョン5416bに対する位置に、5406によって表示されたシミュレートされた環境内に示される。デバイス5478の閲覧視点は、閲覧視点インジケータ5486によって示される。デバイス5478の表現5484(例えば、デバイスのレンダリングされたバージョン)は、デバイス5406によって表示されたシミュレートされた環境内に示される。
図5D13dに示すように、第2のデバイス5412のユーザインタフェースはまた、第3のデバイス5478に対応するアバター5482、デバイス5478の閲覧視点を示す閲覧視点インジケータ5486、及びデバイス5478の表現5484を表示する。
図5D14aは、図5D12aに関して説明したような第1の物理的空間5400を示し、図5D14bは、図5D12bに関して説明したような第2の物理的空間5470を示す。
図5D14cは、第3のデバイス5478のユーザインタフェースを示す。図5D14cでは、仮想ボックス5420は、物理的基準マット5476aの表示されたビュー5476bに固定されて示されている。第1のデバイス5406に対応するアバター5488は、物理的基準マット5416aに対する第1のデバイス5406の位置に対応する物理的基準マット5476aの表示されたバージョン5476bに対する位置に、第3のデバイス5478によって表示されたシミュレートされた環境内に示される。第1のデバイス5406の閲覧視点は、閲覧視点インジケータ5490によって示される。第1のデバイス5406の表現5490(例えば、第1のデバイスのレンダリングされたバージョン)は、第3のデバイス5476によって表示されたシミュレートされた環境内に示される。第2のデバイス5412に対応するアバター5494は、物理的基準マット5416aに対する第2のデバイス5412の位置に対応する物理的基準マット5476aの表示されたバージョン5476bに対する位置に、シミュレートされた環境内に示される。第2のデバイス5412の閲覧視点は、閲覧視点インジケータ5498によって示される。第2のデバイス5412の表現5496(例えば、第2のデバイスのレンダリングされたバージョン)は、第3のデバイス5476によって表示されたシミュレートされた環境内に示される。
図5E1〜図5E32は、いくつかの実施形態に係る、挿入カーソルの配置のためのシステム及びユーザインタフェースの例を示す。これらの図のユーザインタフェースは、図12A〜12Dのプロセスを含めた、以下で説明されるプロセスを例示するために使用される。説明の便宜上、実施形態のいくつかは、タッチ感知ディスプレイシステム112を有するデバイス上で実行される操作を参照して議論される。同様に、類似の動作は、任意選択的に、フォーカスインジケータとともに、ヘッドセット5008のディスプレイ上に図に示すユーザインタフェースを表示している間に、入力デバイス5010のタッチ感知面上の接触を検出したことに応じて、ヘッドセット5008とタッチ感知面を有する別個の入力デバイス5010とを有するコンピュータシステム(例えば、図5A2に示すような)上で実行される。
図5E1〜図5E3は、図5E4〜図5E32に関して説明するユーザインタフェースが使用される状況を示す。
図5E1は、ユーザ5202及びテーブル5204が位置する物理的空間5200を示す。デバイス100は、ユーザ5202によってユーザの手5206に保持される。基準マット5208は、テーブル5204上に位置する。
図5E2は、デバイス100のディスプレイ112上に表示された仮想3次元空間のビューを示す。基準マット5208は、デバイス100の1つ以上のカメラ(例えば、光センサ164)(以下、「カメラ」と呼び、デバイス100の1つ以上のカメラを示す)の視野内にある。ディスプレイ112は、物理的基準マット5208aの表示されたバージョン5208bを含む、カメラによってキャプチャされたときの物理的空間5200のライブビューを示す。
図5E3では、デバイス100は、基準マット5208aに接近して移動している。結果として、基準マットの表示されたバージョン5208bのサイズは、増大している。
図5E4〜図5E32は、デバイス100のより大きなビューを示して、ディスプレイ112上に表示されたユーザインタフェースの全ビューを提供し、ユーザの手5206を示さない。
図5E5及び図5E6は、第1の位置に挿入カーソルの配置を引き起こす入力を示す。
図5E5では、接触5502による入力(例えば、タップ入力)が、物理的基準マット5208aの表示されたバージョン5208b上の第1の位置で検出される。図5E6では、接触5502は、タッチ感知ディスプレイ112からリフトオフしており、挿入カーソル5504が、接触5502が検出された位置に示される。
図5E7及び図5E8は、第2の位置に挿入カーソルの配置を引き起こす入力を示す。図5E7では、接触5506による入力(例えば、タップ入力)が、挿入カーソル5504が表示された位置とは異なる位置で検出される。図5E8では、接触5506は、タッチ感知ディスプレイ112からリフトオフしており、挿入カーソル5508が、接触5506が検出された位置に示される。
図5E9及び図5E10は、仮想ユーザインタフェースオブジェクトの挿入を引き起こす入力を示す。図5E9では、接触5510による入力(例えば、タップ入力)が、挿入カーソル5508の位置に対応する位置で検出される。挿入カーソルが配置されていた位置での接触5510の検出に応じて、仮想ユーザインタフェースオブジェクト(第1の仮想ボックス5512)は、接触5510に対応する位置にディスプレイ112上で表示され、挿入カーソル5508は、基準マット5208aの表示されたビュー5208b上のその以前の位置から第1の仮想ボックス5512の表面5514に移動される。いくつかの実施形態では、影5522が表示される(例えば、シミュレートされた光は、第1の仮想ボックス5512によって影を投じさせる)。
図5E11及び図5E12は、追加の仮想ユーザインタフェースオブジェクトの挿入を引き起こす仮想ユーザインタフェースオブジェクト(第1の仮想ボックス5512)の表面で検出された入力を示す。図5E11では、接触5516による入力(例えば、タップ入力)が、挿入カーソル5516が表面5514上に位置している間に、第1の仮想ボックス5512の表面5514上の位置で検出される。接触5516による入力の検出に応じて、新しい仮想ユーザインタフェースオブジェクト(第2の仮想ボックス5518)は、接触5510に対応する位置にディスプレイ112上で表示され、挿入カーソル5508は、第1の仮想ボックス5512の表面5514から第2の仮想ボックス5518の表面5520に移動される。影5522の長さは、増大される(それにより、影は、第1の仮想ボックス5512及び新たに追加された第2の仮想ボックス5518によって投じられたように見える)。
図5E12及び図5E13は、物理的基準マット5208の回転を示す。例えば、ユーザ5202は、基準マット5208の位置及び/又は向きを手動で変更する。物理的基準マット5208aが回転すると、仮想ボックス5512及び5518並びに影5522は、回転する(仮想ボックス5512及び5518が物理的基準マット5208aの表示されたビュー5208bに固定されているため)。
図5E14〜図5E16は、デバイス100の移動を示す。例えば、デバイス100を保持しているユーザ5202は、デバイスの位置及び/又は向きを変更する。図5E14及び図5E15では、デバイス100が移動すると、仮想ボックス5512及び5518並びに影5522は、移動する(仮想ボックス5512及び5518が物理的基準マット5208aの表示されたビュー5208bに固定されているため)。同様に、図5E15及び図5E16では、デバイス100が移動すると、仮想ボックス5512及び5518並びに影5522が移動する。
図5E17及び図5E18は、仮想ボックス5518上の挿入カーソル5526の位置を変更する入力を示す。図5E17では、挿入カーソル5526が仮想ボックス55182の表面5520上に位置している間に、接触5524による入力(例えば、タップ入力)が仮想ボックス5518の表面5528で検出される。図5E18では、接触5524は、タッチ感知ディスプレイ112からリフトオフしており、挿入カーソル5508は、仮想ボックス5518の表面5520から仮想ボックス5518の表面5528に移動される。
図5E19及び図5E20は、第3の仮想ボックス5532の挿入を引き起こす第2の仮想ボックス5518の表面で検出された入力を示す。図5E19では、接触5530による入力(例えば、タップ入力)が、挿入カーソル5526が表面5268上に位置している間に、第2の仮想ボックス5518の表面5528上の位置で検出される。接触5530による入力の検出に応じて、第3の仮想ボックス5532は、接触5530に対応する位置にディスプレイ112上で表示され、挿入カーソル5526は、第2の仮想ボックス5518の表面5528から第3の仮想ボックス5532の表面5526に移動される。影5522の形状は、変更される(それにより、影は、第1の仮想ボックス5512、第2の仮想ボックス5518、及び新たに追加された第3の仮想ボックス5532によって投じられたように見える)。
図5E21及び図5E22は、仮想ボックス5532上の挿入カーソル5538の位置を変更する入力を示す。図5E21では、挿入カーソル5526が仮想ボックス5532の表面5534上に位置している間に、接触5536による入力(例えば、タップ入力)が仮想ボックス5532の表面5538で検出される。図5E22では、接触5536は、タッチ感知ディスプレイ112からリフトオフしており、挿入カーソル5526は、仮想ボックス5518の表面5534から仮想ボックス5532の表面5538に移動される。
図5E23及び図5E24は、新規オブジェクトコントロール5216を使用した、新しい仮想ユーザインタフェースオブジェクトの挿入を示す。
図5E23では、挿入カーソル5526が仮想ボックス5532の表面5538にある間に、接触5542による入力(例えば、タップ入力)が、新規オブジェクトコントロール5216に対応するディスプレイ112上の位置で検出される。図5E24では、新規オブジェクトコントロール5216に対応する位置での入力に応じて、第4の仮想ボックス5546が、挿入カーソル5526が示されていた位置に対応する位置にディスプレイ112上で表示され、挿入カーソル5526は、仮想ボックス5532の表面5538から第4の仮想ボックス5546の表面5548に移動される。
図5E25〜図5E27は、第4の仮想ボックス5546の移動を引き起こす入力を示す。
図5E25では、接触5550による入力(例えば、選択及び移動の入力)が、第4の仮想ボックス5546の表面5556上で検出される。第4の仮想ボックス5546の表面5556を選択する接触5550の検出に応じて、移動投影5552が仮想ボックス5546から延びて示されて、第4の仮想ボックス5546の移動平面(例えば、仮想ボックス5546の選択された表面5556に平行な移動の平面)を示す。
図5E25及び図5E26では、接触5550は、矢印5554によって示す方向にタッチ感知ディスプレイ112の表面に沿って移動している。接触5550の移動に応じて、第4の仮想ボックス5546は、矢印5554によって示す方向に移動投影5552によって示す平面内で移動している。図5E27では、接触5550は、タッチ感知ディスプレイ112からリフトオフしており、移動投影5552は、もはや表示されない。
図5E28〜図5E32は、第4の仮想ボックス5546のサイズ変更を引き起こす入力を示す。
図5E28では、接触5258による入力(例えば、サイズ変更入力)が、第4の仮想ボックス5546の表面5556に対応する位置でタッチスクリーンディスプレイ112上で検出される。
図5E29では、接触5255がサイズ変更時間閾値を上回って増加する期間にわたって第4の仮想ボックス5546の表面5556に対応する位置に留まった後に、サイズ変更投影5560が示されて、接触5558の後続の移動に応じて仮想ボックス5546がサイズ変更されることになる軸(仮想ボックス5546の選択された表面に対して垂直である)を示す。
図5E30及び図5E31では、接触5558は、矢印5562によって示す経路に沿って、タッチスクリーンディスプレイ112にわたって移動する。接触5558の移動に応じて、仮想ボックス5548のサイズは、接触5558の移動の方向にサイズ変更投影5560によって示す軸に沿って増大している。
図5E32では、接触5558は、タッチ感知ディスプレイ112からリフトオフしており、投影5560は、もはや表示されない。
図5F1〜図5F17は、いくつかの実施形態に係る、安定動作モードで拡張現実環境を表示するためのシステム及びユーザインタフェースの例を示す。これらの図におけるユーザインタフェースは、図13A〜図13Eにおけるプロセスを含む、後述するプロセスを例示するために使用される。説明の便宜上、実施形態のいくつかは、タッチ感知ディスプレイシステム112を有するデバイス上で実行される操作を参照して議論される。同様に、類似の動作は、任意選択的に、フォーカスインジケータとともに、ヘッドセット5008のディスプレイ上に図に示すユーザインタフェースを表示している間に、入力デバイス5010のタッチ感知面上の接触を検出したことに応じて、ヘッドセット5008とタッチ感知面を有する別個の入力デバイス5010とを有するコンピュータシステム(例えば、図5A2に示すような)上で実行される。
図5F1及び図5F2は、図5F3〜図5F17に関して説明するユーザインタフェースが使用される状況を示す。
図5F1は、ユーザ5202及びテーブル5204が位置する物理的空間5200を示す。デバイス100は、ユーザ5202によってユーザの手5206に保持される。オブジェクト(物理的ボックス5602)は、テーブル5204上に位置する。
図5F2は、デバイス100のディスプレイ112によって表示された拡張現実環境を示す。テーブル5204(物理的空間内のテーブルに言及するときは5204aとして参照する)及び物理的ボックス5602は、デバイス100の1つ以上のカメラ(例えば、光センサ164)(以下、「カメラ」と呼び、デバイス100の1つ以上のカメラを示す)の視野内にある。ディスプレイ112は、テーブル5204aの表示されたバージョン5204bと、デバイス100のカメラによって検出されたときの物理的ボックス5602に対応するシミュレートされた環境内の位置に表示されたレンダリングされた仮想ボックス5604とを含む、カメラによってキャプチャされたときの物理的空間5200のライブビューを示す。
図5F3〜図5F17は、テーブル5204a及び物理的ボックス5602に対するデバイス100の物理的空間5200内の向きを示す下位図「a」(例えば、図5F3aに示すような)、並びにデバイス100のユーザインタフェースを示す下位図「b」(例えば、図5F3bに示すような)を含む。また、明確にするために、図5F3〜図5F18は、デバイス100のより大きなビューを示して、ディスプレイ112上に表示されたユーザインタフェースの全ビューを提供し、ユーザの手5206を示さない。
図5F3a〜図5F4aは、非安定動作モードで拡張現実環境がデバイス100によって表示されている間に(図5F3b〜図5F4bに示すように)行なわれる、テーブル5204a及び物理的ボックス5602に対するデバイス100の移動を示す。図5F3aに示すように、デバイス100がテーブル5204aに対して第1の位置にあるとき、物理的オブジェクト5602のレンダリングされたバージョン5604は、図5F3bに示すユーザインタフェース内に完全に見える。図5F4aでは、デバイス100は、テーブル5204aに対して第2の位置に移動されており、物理的オブジェクト5602のレンダリングされたバージョン5604は、図5F4bに示すユーザインタフェース内に部分的に見えるだけである。非安定動作モードでは、デバイス100が移動すると、仮想ボックス5604のビューは、仮想ボックス5604と物理的ボックス5602との間の固定された空間的関係を維持するように変化し、デバイス100のカメラの視野の表示された表現(例えば、表示されたテーブル5204bを含む)は、デバイスの移動に基づいて更新される。
図5F5〜図5F8は、デバイスに安定動作モードで拡張現実環境を表示させる入力(例えば、デピンチズームアウト入力)を示す。
図5F5では、デバイス100は、テーブル5204に対して第1の位置にある。図5F6では、タッチ感知ディスプレイ112で接触5606及び5608が検出される(図5F6bに示すように)。図5F6b〜図5F7bに示すように、接触5606は、矢印5610によって示す経路に沿って移動し、接触5608は、矢印5612によって示す経路に沿って移動する。接触5606と接触5608との間の距離を増加させる接触5606及び5608の同時移動に応じて、仮想ボックス5604を含む表示された拡張現実環境は、ズームインされる(例えば、それにより、仮想ボックス5604のサイズがディスプレイ112上で増大する)。仮想ボックス5604は、ズーム入力に応じて再レンダリングされる(例えば、図5F8bのより大きい仮想ボックス5604は、図5F5bのより小さい仮想ボックス5604と同じ解像度を有する)。いくつかの実施形態では、ディスプレイ112上に表示されたデバイス100のカメラの視野(例えば、テーブル5204aの表示されたビュー5204b)は、ズーム入力に応じて変更されない(図5F5b〜図5F8bに示すように)。ズーム入力が受信されると、非安定動作モードから安定動作モードへの遷移が行なわれる。図5F8では、接触5606及び5608は、タッチスクリーンディスプレイ112からリフトオフしている。
いくつかの実施形態では、デバイスが安定動作モードで拡張現実環境を表示している間に、デバイスの移動がデバイスカメラの視野を越えて仮想ユーザインタフェースオブジェクトを延ばさせると、仮想ユーザインタフェースオブジェクトの一部分は、表示されることを停止する。図5F8及び図5F9は、仮想ユーザインタフェースオブジェクト5304の一部分が表示されることを停止させる、デバイス100が安定動作モードにある間のデバイス100の移動を示す。図5F8a〜図5F9aは、安定動作モードで拡張現実環境がデバイス100によって表示されている間に(図5F8b〜図5F9bに示すように)行なわれる、テーブル5204a及び物理的ボックス5602に対するデバイス100の移動を示す。図5F8aに示すように、デバイス100がテーブル5204aに対して第1の位置にあるとき、ズームされた、物理的オブジェクト5602のレンダリングされたバージョン5604は、図5F8bに示すユーザインタフェース内に完全に見える。図5F9aでは、デバイス100は、テーブル5204aに対して第2の位置に移動しており、それにより、仮想ボックス5604のビューを更新して、仮想ボックス5604と物理的ボックス5602との間の固定された空間的関係を維持することにより、仮想ボックス5604をデバイス100のカメラの視野を越えて延ばさせる。結果として、デバイス100のカメラの視野を越えて延びる仮想ボックス5064の部分は、表示されない。
いくつかの実施形態では、デバイスが安定動作モードで拡張現実環境を表示しており、かつデバイスの移動が仮想ユーザインタフェースオブジェクトをデバイスカメラの視野を越えて延ばさせている間に、拡張現実環境は、ズームアウトされ、それにより、仮想ユーザインタフェースオブジェクトは、完全に表示される。例えば、図5F9bから図5F10bまで、仮想ボックス5604を含む表示された拡張現実環境は、ズームアウトしており、それにより、仮想ボックス5604は、完全に表示される。
いくつかの実施形態では、安定動作モードで、仮想ボックス5604のビューを更新して、仮想ボックス5604と物理的ボックス5602との間の固定された空間的関係を維持することにより、仮想ボックス5604をデバイス100のカメラの視野を越えて延ばさせると、仮想ボックス5604は、デバイスカメラの視野を越えて延びる仮想ボックス5064の部分に対応する位置のプレースホルダ画像とともに表示される。図5F10bでは、物理的オブジェクト5602のレンダリングされたバージョン5604は、デバイスカメラの視野を越えて延びる仮想ボックス5064の部分に対応する位置のプレースホルダ画像5614(余白)とともに表示される。例えば、プレースホルダ画像5614は、カメラの視野を越えている拡張現実環境内の位置に表示され、従って、プレースホルダ画像5614によって占有されているスペース内に表示されることになるカメラデータは利用可能でない。
図5F10及び図5F11は、(図5F8及び図5F3に示すデバイス100の位置に戻る)デバイス100の移動を示す。
図5F11a〜図5F12aは、(例えば、テーブル5204a及び物理的オブジェクト5602から離れて後退し、それにより、デバイス100は、より大きく見える)デバイス100の移動を示す。図5F12bでは、図5F11a〜図5F12aに示す移動の結果として、仮想オブジェクト5604のサイズは、図5F11bの仮想オブジェクト5604のサイズから減少している。説明の目的でこの移動を図5F11a〜図5F12aに示し(それにより、安定モードでの図5F12bの仮想オブジェクト5604のサイズは、非安定モードでの図5F3bの仮想オブジェクト5604のサイズと同じである)、安定動作モードと非安定動作モードでの拡張現実環境の更新の端的な比較を提供する。
図5F12a〜図5F13aは、安定動作モードで拡張現実環境がデバイス100によって表示されている間に行なわれる、テーブル5204a及び物理的ボックス5602に対するデバイス100の移動を示す。図5F12aに示すように、デバイス100がテーブル5204aに対して第1の位置にあるとき、物理的オブジェクト5602のレンダリングされたバージョン5604は、図5F12bに示すユーザインタフェース内に完全に見える。図5F13aでは、デバイス100は、テーブル5204aに対して第2の位置に移動されており、物理的オブジェクト5602のレンダリングされたバージョン5604は、図5F13bに示すユーザインタフェース内に部分的に見えるだけである。いくつかの実施形態では、安定動作モードでは、デバイス100が移動すると、仮想ボックス5604のビューは、仮想ボックス5604と物理的ボックス5602との間の固定された空間的関係を維持するように変化し、(例えば、表示されたテーブル5204bを含む)デバイス100のカメラの視野の表示された表現は、非安定モードで生じる変化量未満の量だけ変化する(例えば、デバイス100が安定動作モードにある間の図5F12bから図5F13bの表示されたテーブル5204bの移動量は、デバイス100が非安定動作モードにある間の図5F4bから図5F5bへの表示されたテーブル5204bの移動量未満である)。
図5F14〜図5F16は、非安定動作モードから安定動作モードに遷移するための安定化トグル5616での入力を示す。図5F15bでは、接触5618による入力(例えば、タップ入力)が安定化トグル5616に対応するタッチスクリーンディスプレイ112上の位置で検出される。接触5618による入力に応じて、安定化トグル5616の外観は、図5F16bに示すように、変更されて(例えば、トグルは、非陰影状態から陰影状態に変化する)、非安定動作モードから安定動作モードへの遷移が行なわれたことを示す。
図5F16a〜図5F17aは、安定動作モードで拡張現実環境がデバイス100によって表示されている間に行なわれる(図5F16a〜図5F17aに示すように)、テーブル5204a及び物理的ボックス5602に対するデバイス100の移動を示す。図5F16aに示すように、デバイス100がテーブル5204aに対して第1の位置にあるとき、物理的オブジェクト5602のレンダリングされたバージョン5604は、図5F16bに示すユーザインタフェース内に完全に見える。図5F17aでは、デバイス100は、テーブル5204aに対して第2の位置に移動されており、物理的オブジェクト5602のレンダリングされたバージョン5604は、図5F17bに示すユーザインタフェース内に部分的に見えるだけである。安定動作モードでは、デバイス100が移動すると、仮想ボックス5604のビューは、仮想ボックス5604と物理的ボックス5602との間の固定された空間的関係を維持するように変化し、(例えば、表示されたテーブル5204bを含む)デバイス100のカメラの視野の表示された表現は、非安定モードで生じる変化量未満の量だけ変化する(例えば、デバイス100が安定動作モードにある間の図5F15bから図5F16bの表示されたテーブル5204bの移動量は、デバイス100が非安定動作モードにある間の図5F4bから図5F5bへの表示されたテーブル5204bの移動量未満である)。
図6A〜図6Dは、いくつかの実施形態に係る、拡張現実環境内の仮想ユーザインタフェースオブジェクトの外観を調整する方法600を示すフロー図である。方法600は、表示生成コンポーネント(例えば、ディスプレイ、プロジェクタ、ヘッドアップディスプレイなど)と、1つ以上のカメラ(例えば、カメラの視野内にあるコンテンツの少なくとも一部分のライブプレビューを連続的に提供し、かつ任意選択的に、カメラの視野内のコンテンツをキャプチャする画像フレームの1つ以上のストリームを含むビデオ出力を生成するビデオカメラ)と、入力デバイス(例えば、タッチ感知式リモートコントロールなどのタッチ感知面、若しくは表示生成コンポーネントとしても機能するタッチスクリーンディスプレイ、マウス、ジョイスティック、ワンドコントローラ、及び/又はユーザの手などのユーザの1つ以上の特徴の位置を追跡するカメラ)と、を有するコンピュータシステム(例えば、ポータブル多機能デバイス100、図1A、デバイス300、図3A、又は、ヘッドセット5008及び入力デバイス5010を含むマルチコンポーネントコンピュータシステム、図5A2)において実行される。いくつかの実施形態では、入力デバイス(例えば、タッチ感知面を有する)及び表示生成コンポーネントは、タッチ感知ディスプレイに統合される。図3B及び図3Dに関して上述したように、いくつかの実施形態では、方法600は、表示生成コンポーネント、1つ以上のカメラ、1つ以上の入力デバイス、及び任意選択的に1つ以上の姿勢センサなどのそれぞれの構成要素が、それぞれ、コンピュータシステム301に含まれる、又はコンピュータシステム301と通信しているのいずれかである、コンピュータシステム301(例えば、コンピュータシステム301−a、301−b、又は301−c)で実行される。
いくつかの実施形態では、表示生成コンポーネントは、タッチスクリーンディスプレイであり、入力デバイス(例えば、タッチ感知面を有する)は、表示生成コンポーネント上にある、又はそれと統合されている。いくつかの実施形態では、表示生成コンポーネントは、入力デバイスとは別個である(例えば、図4B及び図5A2に示すように)。方法600の一部の動作が任意選択的に組み合わされ、かつ/又は、一部の動作の順序が任意選択的に変更される。
説明の便宜上、実施形態のいくつかは、タッチ感知ディスプレイシステム112及び1つ以上の一体型カメラを有するコンピュータシステム上(例えば、タッチスクリーン112を有するデバイス100上)で実行される動作を参照して説明する。しかしながら、類似の動作は、任意選択的に、ヘッドセット5008のディスプレイ上に図に示すユーザインタフェースを表示している間に、入力デバイス5010のタッチ感知面上の接触を検出したことに応じて、ヘッドセット5008とタッチ感知面を有する別個の入力デバイス5010とを有するコンピュータシステム(例えば、図5A2に示すような)上で実行される。同様に、類似の動作は、任意選択的に、コンピュータシステムの1つ以上の他の構成要素(例えば、入力デバイス)とは別個に(例えば、ヘッドセット内に)実装される1つ以上のカメラを有するコンピュータシステム上で実行され、いくつかのそのような実施形態では、「コンピュータシステムの移動」は、コンピュータシステムの1つ以上のカメラの移動、又はコンピュータシステムと通信する1つ以上のカメラの移動に対応する。
後述するように、方法600は、コンピュータシステムの移動(例えば、コンピュータシステムの1つ以上のカメラの移動)と、コンピュータシステムの入力デバイス(例えば、タッチスクリーンディスプレイ)上の接触の移動との組み合わせに基づいて、拡張現実環境(例えば、物理的世界で利用可能でない、ユーザに追加情報を提供する補足情報で、現実が拡張される)内の(コンピュータシステムのディスプレイ上の)仮想ユーザインタフェースオブジェクトの外観を調整することに関する。いくつかの実施形態では、仮想ユーザインタフェースオブジェクトの外観を調整することにより、ユーザが拡張現実環境内で補足情報にアクセスすることを可能にする。コンピュータシステムの移動とコンピュータシステムの入力デバイス上の接触の移動との組み合わせに基づいて仮想ユーザインタフェースオブジェクトの外観を調整することにより、ユーザが仮想ユーザインタフェースオブジェクトの外観を調整するための直感的な方法を提供し(例えば、コンピュータシステムの移動のみ、入力デバイス上の接触の移動のみ、又はコンピュータシステムの移動と接触の移動との組み合わせで、ユーザが仮想ユーザインタフェースオブジェクトの外観を調整することを可能にすることにより)、ユーザがユーザに利用可能な調整の範囲を拡張することを可能にし(例えば、接触又はコンピュータシステムの1つ以上のカメラが所望の方向に更に移動することができない場合でも、ユーザが仮想ユーザインタフェースオブジェクトの外観を調整し続けることを可能にすることによって)、それにより、デバイスの操作性を向上させ、ユーザ−デバイスインタフェースをより効率的にし(例えば、デバイスを操作するときに意図された結果を達成するために必要なステップの数を削減し、デバイスを操作する/デバイスと相互作用するときのユーザの誤りを削減することによって)、加えて、ユーザがデバイスをより素早くかつ効率的に使用することを可能にすることによって、電力使用を削減し、デバイスのバッテリ寿命を改善する。
コンピュータシステム(例えば、デバイス100、図5A7)は、表示生成コンポーネント(例えば、タッチスクリーン112、図5A7)を介して(例えば、図5A7に示すように)拡張現実環境を表示する(602)。拡張現実環境を表示することは、対応する物理的オブジェクト(例えば、建物の3次元モデル、印刷されたパターンを有する一枚の紙、壁又は他の物理的オブジェクト上のポスター、表面上に置かれた像など)(例えば、物理的建築モデル5006、図5A1)を含む1つ以上のカメラの視野の少なくとも一部分の表現であって、表現は、1つ以上のカメラの視野のコンテンツが変化するにつれて更新される(例えば、表現は、1つ以上のカメラの視野の少なくとも一部分のライブプレビューであり、対応する物理的オブジェクトは、カメラの視野内に含まれ、かつ見える)表現と、1つ以上のカメラの視野の表現内の対応する位置にある対応する仮想ユーザインタフェースオブジェクト(例えば、建物の3次元モデルの仮想屋根、印刷されたパターンを有する一枚の紙によって表された表面上に駐車された仮想の自動車、ポスターに重ね合わされた対話型ロゴ、像の外形をカバーする仮想3次元マスクなど)(例えば、仮想建築モデル5012、図5A7)であって、対応する仮想ユーザインタフェースオブジェクト(例えば、仮想建築モデル5012、図5A7)は、1つ以上のカメラの視野内の対応する物理的オブジェクト(例えば、物理的建築モデル5006)に基づいて決定される位置を有する、対応する仮想ユーザインタフェースオブジェクトと、を同時に表示することを含む(604)。例えば、いくつかの実施形態では、対応する仮想ユーザインタフェースオブジェクトは、1つ以上のカメラの視野内の対応する物理的オブジェクトに取り付けられるように見える、又はそれをカバーするように見える、グラフィカルオブジェクト又は2次元若しくは3次元仮想オブジェクトである(例えば、仮想建築モデル5012は、物理建築モデル5006をカバーするように見える3次元仮想オブジェクトである、図5A7)。対応する仮想ユーザインタフェースオブジェクトの位置及び/又は向きは、1つ以上のカメラの視野内の物理的オブジェクトの位置、形状、及び/又は向きに基づいて決定される(例えば、図5A3及び図5A5に示すように)。拡張現実環境を表示している間に(606)、コンピュータシステムは、対応する仮想ユーザインタフェースオブジェクトに対応する位置(例えば、タッチスクリーンディスプレイ若しくはタッチ感知式リモートコントロール上の位置、又はカーソルが対応する仮想ユーザインタフェースオブジェクトの位置にある間のワンド若しくはユーザの手の移動)で入力を検出する(例えば、タッチスクリーンディスプレイ又はタッチ感知式リモートコントロール上の接触によるタッチ入力を検出することによってなど、入力デバイス上の入力を検出する)(例えば、デバイス100は、仮想建築モデル5012の仮想屋根上の接触5020−aを検出する、図5A8)。
入力を検出し続けている間に(608)(例えば、接触がタッチスクリーンディスプレイ上又はタッチ感知式リモートコントロール上で維持されている間など、接触が入力デバイス上で維持されている間に)(例えば、接触5020がタッチスクリーン112上で維持されている間に、図5A9〜図5A13)、コンピュータシステムは、1つ以上のカメラの視野内の対応する物理的オブジェクトに対する入力の移動を検出する(例えば、図5A9〜図5A13に示すように)。いくつかの実施形態では、入力の移動は、任意選択的に、コンピュータシステム(例えば、デバイス100)が物理的空間内で実質的に静止して保持されている間の、タッチスクリーンディスプレイを横切る、又はタッチ感知式リモートコントロールのタッチ感知面を横切る接触の移動を含む(例えば、図5A8〜図5A11に示すように)。いくつかの実施形態では、入力の移動は、任意選択的に、接触がタッチスクリーンディスプレイ又はタッチ感知式リモートコントロール上で維持され、かつ静止したままでいる間の、物理的空間内のカメラを含むデバイスの移動を含む(例えば、図5A17及び図5A18に示すように)。いくつかの実施形態では、入力の移動は、任意選択的に、同時に起こる、タッチスクリーンディスプレイ又はタッチ感知式リモートコントロールを横切る接触の移動、及び物理的空間内のカメラを含むデバイスの移動を含む。いくつかの実施形態では、コンピュータシステムの移動は、仮想現実ディスプレイヘッドセットなどの移動などのマルチコンポーネントコンピュータシステムの構成要素の移動を含む(例えば、図5A2に示すように)。加えて、入力を検出し続けている間に、かつ1つ以上のカメラの視野内の対応する物理的オブジェクトに対する入力の移動を検出したことに応じて、デバイスは、対応する物理的オブジェクトに対する入力の移動の大きさに従って、対応する仮想ユーザインタフェースオブジェクトの外観を調整する(例えば、仮想ユーザインタフェースオブジェクトの全て又は一部(単数又は複数)を拡大する、縮小する、伸張する、一緒に押し込む、拡張する、及び/又は一緒に押すことによって)。例えば、接触が建築モデルの仮想屋根の上で検出され、次いでタッチスクリーンディスプレイを横切って移動するとき、仮想屋根は、カメラの視野のライブプレビュー内の建築モデルから離れるように持ち上げられ(例えば、図5A8〜図5A11に示すように)、タッチスクリーンディスプレイ上で接触が維持されており、かつデバイスが全体として物理的空間内の建築モデルに対して移動されている間に、仮想屋根の移動は、タッチスクリーンディスプレイ上の接触の位置、並びに物理的空間内の対応する物理的オブジェクトに対するデバイスの位置及び向きの両方に基づいて決定される(例えば、カメラの視野のライブプレビュー内に示される対応する物理的オブジェクトの位置に基づいて決定されるように)(例えば、図5A11〜図5A13に示すように)。
別の例として、対応する物理的オブジェクト(例えば、印刷されたパターンを有するテーブル面又は一枚の紙)上に仮想モデルが構築される(例えば、図5B1〜図5B41に関して更に詳細に説明したような)ブロック構築アプリケーションでは、ブロック上で接触(例えば、接触5262、図5B28)が検出され(例えば、ブロック上の長い押圧入力に応じて)、かつコンピュータシステムが、どのようにブロックがスケーリングするかのガイドを表示すると(例えば、サイズ変更投影5266を使用して示すように、図5B29)、ブロック上で接触が維持され、かつデバイスが全体としてブロックに対して移動されている間に(例えば、図5B28〜図5B30に示すように)、ブロックのスケーリング(例えば、ガイドの方向へのブロックの伸張)は、タッチスクリーンディスプレイ上の接触の位置(例えば、ブロックキューブの特定の側面又は面上の)、並びに物理的空間内の対応する物理的オブジェクトに対するデバイスの位置及び向きの両方に基づいて決定される(例えば、カメラの視野のライブプレビュー内に示される対応する物理的オブジェクトの位置に基づいて決定されるように)。
いくつかの実施形態では、対応する物理的オブジェクトに対する入力の移動の大きさに従って、対応する仮想ユーザインタフェースオブジェクト(例えば、仮想建築モデル5012、図5A8〜図5A13)の外観を調整することは、対応する物理的オブジェクトに対する入力の移動の大きさが第1の大きさ(例えば、移動の相対的により大きい大きさ)であるとの判定に従って、第1の調整により対応する仮想ユーザインタフェースオブジェクトの外観を調整すること(例えば、より大きな相対移動量は、より大きい調整を引き起こす)(例えば、図5A10に示すように、図5A9と比較して)と、対応する物理的オブジェクトに対する入力の移動の大きさが、第1の大きさとは別個の第2の大きさ(例えば、移動の相対的により小さい大きさ)であるとの判定に従って、第1の調整とは別個の第2の調整により対応する仮想ユーザインタフェースオブジェクトの外観を調整すること(例えば、より小さい相対移動量は、より小さい調整を引き起こす)(例えば、図5A9に示すように、図5A10と比較して)と、を含む(610)。入力の移動の大きさが第1の大きさであるときに、対応する仮想ユーザインタフェースオブジェクトを第1の調整により調整すること(例えば、より大きい相対移動量は、より大きな調整を引き起こす)、及び入力の移動の大きさが第2の大きさであるときに、対応する仮想ユーザインタフェースオブジェクトを第2の調整により調整すること(例えば、より小さい相対移動量は、より小さい調整を引き起こす)により、ユーザに提供される視覚的フィードバックを改善し(例えば、コンピュータシステムをユーザ入力に対してより反応するように見せることにより)、デバイスの操作性を向上させ、ユーザ−デバイスインタフェースをより効率的にし(例えば、ユーザが必要な入力により意図された結果を達成するのを支援し、デバイスを操作する/デバイスと相互作用するときのユーザの誤りを削減することによって)、加えて、ユーザがデバイスをより素早くかつ効率的に使用することを可能にすることによって、電力使用を削減し、デバイスのバッテリ寿命を改善する。
いくつかの実施形態では、対応する仮想ユーザインタフェースオブジェクト(例えば、仮想建築モデル5012、図5A3〜図5A6)は、調整することの前及び後に、1つ以上のカメラの視野内の対応する物理的オブジェクト(例えば、物理的建築モデル5006)に固定される(612)。例えば、いくつかの実施形態では、対応する仮想ユーザインタフェースオブジェクトは、1つ以上のカメラの視野内の対応する物理的オブジェクトをカバーするように見え、1つ以上のカメラの視野内の物理的オブジェクトの位置及び/又は向きが変化すると、対応する仮想ユーザインタフェースオブジェクトの位置及び/又は向きは、それに応じて変化する(例えば、図5A3〜図5A6に示すように)。いくつかの実施形態では、対応する仮想ユーザインタフェースオブジェクトは、調整することの一部又は全ての間(例えば、図5A3から図5A5への遷移の間)、1つ以上のカメラの視野内の対応する物理的オブジェクトに固定される。対応する仮想ユーザインタフェースオブジェクトを対応する物理的オブジェクトに固定することにより、ユーザに提供される視覚的フィードバックを改善し(例えば、コンピュータシステムをユーザ入力に対してより反応するように見せることにより)、デバイスの操作性を向上させ、ユーザ−デバイスインタフェースをより効率的にし(例えば、ユーザが必要な入力により意図された結果を達成するのを支援し、デバイスを操作する/デバイスと相互作用するときのユーザの誤りを削減することによって)、加えて、ユーザがデバイスをより素早くかつ効率的に使用することを可能にすることによって、電力使用を削減し、デバイスのバッテリ寿命を改善する。
いくつかの実施形態では、対応する仮想ユーザインタフェースオブジェクトの外観は、入力の移動が、入力デバイス上の入力の移動(例えば、入力デバイスが物理的空間内で実質的に静止して保持されている間の入力デバイスのタッチスクリーンディスプレイ又はタッチ感知面を横切る接触の移動)(例えば、図5A9〜図5A11に示すような)、対応する物理的オブジェクトに対する1つ以上のカメラの移動(例えば、接触が入力デバイスのタッチスクリーンディスプレイ又はタッチ感知面上で維持され、かつ静止したままでいる間の物理的空間内のカメラを含むコンピュータシステムの移動)(例えば、図5A11〜図5A13に示すような)、又は入力デバイス上の入力の移動と対応する物理的オブジェクトに対する1つ以上のカメラの移動との組み合わせ(例えば、同時に起こる、入力デバイスのタッチスクリーンディスプレイ又はタッチ感知面を横切る接触の移動、及び物理的空間内のカメラを含むコンピュータシステムの移動)に起因するかに関わらず、1つ以上のカメラの視野内の対応する物理的オブジェクトに対する入力の移動を検出したことに応じて、調整される(614)。入力の移動のしかたに関わらず仮想ユーザインタフェースオブジェクトの外観を調整すること(例えば、入力デバイス上の入力の移動のみ、物理的オブジェクトに対するカメラの移動のみ、又は入力及びカメラの移動の組み合わせにより、ユーザが仮想ユーザインタフェースオブジェクトの外観を調整することを可能にすることによって)により、ユーザが仮想ユーザインタフェースオブジェクトの外観を調整するための直感的な方法を提供し、ユーザに提供される視覚的フィードバックを改善し(例えば、コンピュータシステムをユーザ入力に対してより反応するように見せることにより)、デバイスの操作性を向上させ、ユーザ−デバイスインタフェースをより効率的にし(例えば、ユーザが必要な入力により意図された結果を達成するのを支援し、デバイスを操作する/デバイスと相互作用するときのユーザの誤りを削減することによって)、加えて、ユーザがデバイスをより素早くかつ効率的に使用することを可能にすることによって、電力使用を削減し、デバイスのバッテリ寿命を改善する。
いくつかの実施形態では、対応する物理的オブジェクトに対する入力の移動は、対応する物理的オブジェクトに対する1つ以上のカメラの視野の移動(例えば、物理的空間内のカメラを含むコンピュータシステムの移動の結果としての)(例えば、図5A11〜図5A13に示すような)、及び入力デバイス上の入力の移動(例えば、入力デバイスのタッチスクリーンディスプレイ又はタッチ感知面を横切る接触の移動)(例えば、図5A8〜図5A11に示すような)に基づく(616)。コンピュータシステムの移動及び接触の移動によって、ユーザが対応する物理的オブジェクトに対して入力を移動させることを可能にすることにより、ユーザが入力を移動させるための直感的な方法を提供し、ユーザに提供されるフィードバックを改善し(例えば、コンピュータシステムをユーザ入力に対してより反応するように見せることにより)、デバイスの操作性を向上させ、ユーザ−デバイスインタフェースをより効率的にし(例えば、ユーザが必要な入力により意図された結果を達成するのを支援し、デバイスを操作する/デバイスと相互作用するときのユーザの誤りを削減することによって)、加えて、ユーザがデバイスをより素早くかつ効率的に使用することを可能にすることによって、電力使用を削減し、デバイスのバッテリ寿命を改善する。
いくつかの実施形態では、対応する物理的オブジェクトに対する入力の移動は、入力デバイス上の入力の移動(例えば、入力デバイスが物理的空間内で実質的に静止して保持されている間の入力デバイスのタッチスクリーンディスプレイ又はタッチ感知面を横切る接触の移動)に基づき(618)(例えば、図5A8〜図5A11に示すように)、コンピュータシステムは、対応する物理的オブジェクトに対する入力の移動の大きさに従って、対応する仮想ユーザインタフェースオブジェクトの外観を調整した後に(例えば、図5A11に示すように)、対応する物理的オブジェクトに対する1つ以上のカメラの視野の移動(例えば、移動5022、図5A12)を検出し、対応する物理的オブジェクトに対する1つ以上のカメラの視野の移動を検出したことに応じて、対応する物理的オブジェクトに対する1つ以上のカメラの視野の移動の大きさに従って、対応する仮想ユーザインタフェースオブジェクトの外観を調整し続ける(例えば、同じ方法で)(例えば、図5A13に示すように)。いくつかの実施形態では、対応する仮想ユーザインタフェースオブジェクトの外観を調整することは、対応する仮想ユーザインタフェースオブジェクトの一部を移動させることを含み、移動は、仮想ユーザインタフェースオブジェクト上での接触ドラッグによって開始され、移動は、デバイスを全体として移動させることによって継続される(例えば、図5A8〜図5A13に示すように)。例えば、建物の3次元モデルの仮想屋根の上で接触が検出され、かつ接触がタッチスクリーンディスプレイを横切って(例えば、上向き方向に)移動するとき、仮想屋根は、表示された拡張現実環境内の建築モデルから持ち上げられる(例えば、図5A8〜図5A11に示すように)。仮想屋根が持ち上げられた後に、デバイスが全体として物理的空間内の建築モデルに対して(例えば、上向き方向に)移動されると、仮想屋根は、持ち上がり続ける(例えば、図5A11〜図5A13に示すように)(及び任意選択的に、建築モデルの床は、持ち上がり、伸長する)。いくつかの実施形態では、入力の移動の大きさに従って対応する仮想ユーザインタフェースオブジェクトの外観を調整し、次いで、1つ以上のカメラの視野の移動の大きさに従って対応する仮想ユーザインタフェースオブジェクトの外観を調整し続けることにより、接触がタッチスクリーンディスプレイ上で所望の方向に更により遠くに移動することができない場合であっても(例えば、タッチがタッチスクリーンディスプレイの縁部又はその付近にあり、かつタッチの更なる移動がタッチスクリーンディスプレイの縁部から外れてタッチを移動させることになるため)、ユーザが対応する仮想ユーザインタフェースオブジェクトの外観を調整し続けることを可能にする。例えば、仮想屋根では、接触がタッチスクリーンディスプレイの上縁部に接近するが、ユーザが依然として屋根を持ち上げ続けることを望む場合、ユーザは、接触がタッチスクリーンディスプレイ上で更により高く移動することができない場合であっても、デバイス又はカメラを移動させることにより、そのように調整し続けることができる(例えば、図5A8〜図5A13に示すように)。入力の移動の大きさに従って対応する仮想ユーザインタフェースオブジェクトの外観を調整し、次いで、1つ以上のカメラの視野の移動の大きさに従って対応する仮想ユーザインタフェースオブジェクトの外観を調整し続けることにより、ユーザがユーザに利用可能な調整の範囲を拡張することを可能にし(例えば、接触がタッチスクリーンディスプレイ上の所望の方向に更により遠くに移動することができない場合でも、ユーザがコンピュータシステムの移動により対応する仮想ユーザインタフェースオブジェクトの外観を調整し続けることを可能にする)、それにより、デバイスの操作性を向上させ、ユーザ−デバイスインタフェースをより効率的にし(例えば、デバイスを操作するときに意図された結果を達成するために必要なステップの数を削減し、デバイスを操作する/デバイスと相互作用するときのユーザの誤りを削減することによって)、加えて、ユーザがデバイスをより素早くかつ効率的に使用することを可能にすることによって、電力使用を削減し、デバイスのバッテリ寿命を改善する。
いくつかの実施形態では、対応する物理的オブジェクトに対する入力の移動は、対応する物理的オブジェクトに対する1つ以上のカメラの視野の移動(例えば、入力デバイスのタッチスクリーンディスプレイ又はタッチ感知面上で接触が維持され、かつ静止したままでいる間の、物理的空間内の、コンピュータシステムの1つ以上のカメラ、又はコンピュータシステムと通信する1つ以上のカメラの移動の結果としての)に基づき(620)(例えば、図5A17及び図5A18に示すように)、コンピュータシステムは、対応する物理的オブジェクトに対する入力の移動の大きさに従って、対応する仮想ユーザインタフェースオブジェクトの外観を調整した後に(例えば、図5A18に示すように)、入力デバイス上の入力の移動(例えば、入力デバイスが物理的空間内で実質的に静止して保持されている間の入力デバイスのタッチスクリーンディスプレイ又はタッチ感知面を横切る(以前に静止していた)接触の移動)を検出し(例えば、図5A19及び図5A20に示すように)、入力デバイス上の入力の移動を検出したことに応じて、入力デバイス上の入力の移動の大きさに従って、(例えば、同じ方法で)対応する仮想ユーザインタフェースオブジェクトの外観を調整し続ける(例えば、図5A20に示すように)。いくつかの実施形態では、対応する仮想ユーザインタフェースオブジェクトの外観を調整することは、対応する仮想ユーザインタフェースオブジェクトの一部を移動させること(例えば、仮想屋根5012−aを移動させること、図5A17〜図5A20)であって、移動は、仮想ユーザインタフェースオブジェクト上の(静止した)接触タッチによって開始される、ことと、デバイスを全体として移動させること(例えば、図5A17及び図5A18に示すように)であって、移動は、仮想ユーザインタフェースオブジェクト上の接触ドラッグによって継続される(例えば、図5A19及び図5A20に示すように)、ことと、を含む。例えば、建物の3次元モデルの仮想屋根の上で接触が検出され、かつデバイスが全体として物理的空間内の建築モデルに対して(例えば、上向き方向に)移動されると、仮想屋根は、カメラの視野のライブプレビュー内の建築モデルから持ち上げられる(例えば、図5A17及び図5A18に示すように)。仮想屋根が持ち上げられた後に、(以前に静止していた)接触がタッチスクリーンディスプレイを横切って(例えば、上向き方向に)移動すると、仮想屋根は、持ち上がり続ける(及び任意選択的に、建築モデルの床は、持ち上がり、伸長する)(例えば、図5A19及び図5A20に示すように)。1つ以上のカメラの視野の移動の大きさに従って対応する仮想ユーザインタフェースオブジェクトの外観を調整し、次いで、入力デバイス上の入力の移動の大きさに従って対応する仮想ユーザインタフェースオブジェクトの外観を調整し続けることにより、ユーザがユーザに利用可能な調整の範囲を拡張することを可能にし(例えば、コンピュータシステム(又はコンピュータシステムの、若しくはコンピュータシステムと通信する1つ以上のカメラ)が所望の方向に更により遠くに移動することができない場合でも、ユーザが入力デバイスにより対応する仮想ユーザインタフェースオブジェクトの外観を調整し続けることを可能にする)、それにより、デバイスの操作性を向上させ、ユーザ−デバイスインタフェースをより効率的にし(例えば、デバイスを操作するときに意図された結果を達成するために必要なステップの数を削減し、デバイスを操作する/デバイスと相互作用するときのユーザの誤りを削減することによって)、加えて、ユーザがデバイスをより素早くかつ効率的に使用することを可能にすることによって、電力使用を削減し、デバイスのバッテリ寿命を改善する。
いくつかの実施形態では、対応する仮想ユーザインタフェースオブジェクトに対応する位置で入力を検出することは、対応する仮想ユーザインタフェースオブジェクト上の第1の接触点で入力を検出することを含み(622)、コンピュータシステム(例えば、デバイス100)は、入力の位置に対応する位置の対応する仮想ユーザインタフェースオブジェクト上の第1の接触点の表示を維持するように、対応する仮想ユーザインタフェースオブジェクトの表示を更新する(例えば、仮想ユーザインタフェースオブジェクトがタッチスクリーンデバイス上に表示されているとき、デバイスは、入力の移動が、入力デバイス上の入力の移動(例えば、入力デバイスが物理的空間内で実質的に静止して保持されている間の入力デバイスのタッチスクリーンディスプレイ又はタッチ感知面を横切る接触の移動)(例えば、図5A8〜図5A11に示すような)、対応する物理的オブジェクトに対する1つ以上のカメラの移動(例えば、接触が入力デバイスのタッチスクリーンディスプレイ又はタッチ感知面上で維持され、かつ静止したままでいる間の物理的空間内のカメラを含むコンピュータシステムの移動)(例えば、図5A11〜図5A13に示すような)、又は入力デバイス上の入力の移動と対応する物理的オブジェクトに対する1つ以上のカメラの移動との組み合わせ(例えば、同時に起こる、入力デバイスのタッチスクリーンディスプレイ又はタッチ感知面を横切る接触の移動、及び物理的空間内のカメラを含むコンピュータシステムの移動)に起因するかに関わらず、仮想ユーザインタフェースオブジェクトをユーザの指の下に保持するように、対応する仮想ユーザインタフェースオブジェクトを更新する)。例えば、(例えば、ユーザの指による)接触が建物の3次元モデルの仮想屋根「上」で検出される(例えば、建物の3次元モデルの仮想屋根が表示されている位置でタッチスクリーン112上で検出される)と、タッチスクリーンディスプレイ上の移動、及びコンピュータシステムの移動は、同期されて、仮想屋根上の同じ点に接触を維持する(例えば、接触がタッチスクリーンディスプレイを横切って上向き方向に移動するにつれて、仮想屋根は、持ち上がり、ユーザの指の下に留まる、デバイスが全体として物理的空間内の建築モデルに対して上向き方向に移動されるにつれて、仮想屋根は、持ち上がり、ユーザの指の下に留まる、接触の移動とデバイス全体としての移動との組み合わせに基づいて、仮想屋根は、(例えば、上昇又は下降して)ユーザの指の下に留まる)(例えば、図5A8〜図5A13に示すように)。入力の位置に対応する位置に対応する仮想ユーザインタフェースオブジェクト上の接触点の表示を維持することにより、ユーザに提供される視覚的フィードバックを改善し(例えば、コンピュータシステムをユーザ入力に対してより反応するように見せることにより)、デバイスの操作性を向上させ、ユーザ−デバイスインタフェースをより効率的にし(例えば、ユーザが必要な入力により意図された結果を達成するのを支援し、デバイスを操作する/デバイスと相互作用するときのユーザの誤りを削減することによって)、加えて、ユーザがデバイスをより素早くかつ効率的に使用することを可能にすることによって、電力使用を削減し、デバイスのバッテリ寿命を改善する。
いくつかの実施形態では、対応する物理的オブジェクトに対する入力の移動は、コンピュータシステムの移動(例えば、物理的空間内の1つ以上のカメラを含むコンピュータシステムの移動)を含み(624)(例えば、図5A17に示すように)、コンピュータシステムの移動は、1つ以上のカメラの視野内の1つ以上の基準点が1つ以上のカメラによってキャプチャされた連続画像間で変化していること(例えば、1つ以上のカメラの視野内の変化した場所又は位置)を示す画像解析(例えば、連続した画像フレームの比較及び画像内で識別されたオブジェクトの追跡)から導出される。いくつかの実施形態では、画像解析は、コンピュータシステムによって実行される。いくつかの実施形態では、画像解析は、カメラの視野内の3つ以上の基準点を追跡することを含む。いくつかの実施形態では、古い基準点が1つ以上のカメラの視野から外れて移動すると、新しい基準点が特定される。いくつかの実施形態では、コンピュータシステムの移動は、コンピュータシステムの慣性測定ユニット(IMU)を使用して導出される代わりに、画像解析から導出される。いくつかの実施形態では、コンピュータシステムの移動は、コンピュータシステムのIMUの1つ以上の要素(例えば、加速度計、ジャイロスコープ、及び/又は磁力計)を使用することに加えて、画像解析から導出される。画像解析からコンピュータシステムの移動を検出することにより、ユーザに提供されるフィードバックを改善し(例えば、コンピュータシステムをユーザ入力に対してより反応するように見せることにより)、デバイスの操作性を向上させ、ユーザ−デバイスインタフェースをより効率的にし(例えば、ユーザが必要な入力により意図された結果を達成するのを支援し、デバイスを操作する/デバイスと相互作用するときのユーザの誤りを削減することによって)、加えて、ユーザがデバイスをより素早くかつ効率的に使用することを可能にすることによって、電力使用を削減し、デバイスのバッテリ寿命を改善する。
いくつかの実施形態では、対応する仮想ユーザインタフェースオブジェクトの外観を調整することは、対応する仮想ユーザインタフェースオブジェクトの少なくとも一部分を移動させることを含み(626)、対応する仮想ユーザインタフェースオブジェクトの移動は、対応する物理的オブジェクトの物理的形状に基づく(例えば、物理的モデルの形状に基づく)。例えば、いくつかの実施形態では、対応する物理的オブジェクトは、3次元ハイウェイモデルであり、対応する仮想ユーザインタフェースオブジェクトは、仮想の自動車である。この実施例では、仮想自動車の外観を調整することは、3次元ハイウェイモデル上で仮想自動車を移動させることを含み、仮想の自動車の移動は、3次元ハイウェイモデルの物理的形状に基づく(例えば、仮想自動車は、3次元ハイウェイモデルのランプ上を移動する)。別の例として、いくつかの実施形態では、対応する物理的オブジェクトは、物理的建築モデル(例えば、物理的建築モデル5006、図5A1)であり、対応する仮想ユーザインタフェースオブジェクトは、仮想建築モデル(例えば、仮想建築モデル5012、図5A8)であり、対応する仮想ユーザインタフェースオブジェクトの外観を調整することは、対応する仮想ユーザインタフェースオブジェクトの少なくとも一部分(例えば、仮想屋根5012−a、図5A9)を移動させることを含む。対応する仮想ユーザインタフェースオブジェクトを対応する物理的オブジェクトの物理的形状に基づいて移動させることにより、ユーザに提供されるフィードバックを改善し(例えば、コンピュータシステムをユーザ入力に対してより反応するように見せることにより)、デバイスの操作性を向上させ、ユーザ−デバイスインタフェースをより効率的にし(例えば、ユーザが必要な入力により意図された結果を達成するのを支援し、デバイスを操作する/デバイスと相互作用するときのユーザの誤りを削減することによって)、加えて、ユーザがデバイスをより素早くかつ効率的に使用することを可能にすることによって、電力使用を削減し、デバイスのバッテリ寿命を改善する。
いくつかの実施形態では、対応する仮想ユーザインタフェースオブジェクトの外観を調整することは、対応する仮想ユーザインタフェースオブジェクトの少なくとも一部分を移動させることを含み(628)、対応する仮想ユーザインタフェースオブジェクトの移動は、同時に起こる、1つ以上のタッチ入力(例えば、入力デバイス上のスワイプ入力)の移動及びコンピュータシステムの移動に基づく。例えば、いくつかの実施形態では、建物の3次元モデルの仮想屋根の外観を調整することは、仮想屋根の少なくとも一部分を移動させることを含み、仮想屋根の移動は、同時に起こる、(例えば、上向き方向の)タッチスクリーンディスプレイを横切って移動する接触の移動及び(例えば、上向き方向の)物理的空間内の建築モデルに対するデバイス全体としての移動に基づく(例えば、図5A17及び図5A18のデバイス移動5028が、図5A19及び図5A20の接触5026の移動と同時に起こった場合)。別の例として、いくつかの実施形態では、仮想自動車の移動は、同時に起こる、3次元ハイウェイモデルのランプ上で仮想自動車をドラッグする移動、及びデバイスが移動しているためのディスプレイ上のモデル自体の移動に基づく。ユーザが、同時に起こるタッチ入力の移動及びコンピュータシステムの移動によって対応する仮想ユーザインタフェースオブジェクトを移動させることを可能にすることにより、ユーザが対応する仮想ユーザインタフェースオブジェクトを移動させるための直感的な方法を提供し、ユーザに提供されるフィードバックを改善し(例えば、コンピュータシステムをユーザ入力に対してより反応するように見せることにより)、デバイスの操作性を向上させ、ユーザ−デバイスインタフェースをより効率的にし(例えば、ユーザが必要な入力により意図された結果を達成するのを支援し、デバイスを操作する/デバイスと相互作用するときのユーザの誤りを削減することによって)、加えて、ユーザがデバイスをより素早くかつ効率的に使用することを可能にすることによって、電力使用を削減し、デバイスのバッテリ寿命を改善する。
いくつかの実施形態では、対応する仮想ユーザインタフェースオブジェクトの外観を調整することは、対応する仮想ユーザインタフェースオブジェクトの静止状態の最大限界を越えて、対応する仮想ユーザインタフェースオブジェクトの少なくとも一部分を移動させること(例えば、図5A13に示すように、仮想屋根5012−aをその静止状態の最大限界を越えて移動させること)(例えば、入力デバイスのタッチスクリーンディスプレイ又はタッチ感知面を横切る接触の移動、対応する物理的オブジェクトに対する1つ以上のカメラの移動、又は入力デバイス上の接触の移動と対応する物理的オブジェクトに対する1つ以上のカメラの移動との組み合わせに基づいて)を含み(630)、コンピュータシステムは、入力を検出し続けている間に、対応する物理的オブジェクトに対する入力の移動の大きさに従って、対応する仮想ユーザインタフェースオブジェクトの静止状態の最大限界を越える位置に、対応する仮想ユーザインタフェースオブジェクトを表示し(例えば、図5A13に示すように)、入力を検出することを停止し(例えば、図5A13の接触5020−dのリフトオフ)、入力を検出することを停止したことに応じて、対応する仮想ユーザインタフェースオブジェクトの静止状態の最大限界に対応する位置に、対応する仮想ユーザインタフェースオブジェクトを表示する(例えば、図5A14に示すように)。いくつかの実施形態では、これは、静止状態の最大限界を越える位置での対応する仮想ユーザインタフェースオブジェクトから静止状態の最大限界に対応する位置へのアニメーション化された遷移を表示すること(例えば、図5A13の位置の仮想屋根5012−aから図5A14の位置の仮想屋根5012−aへのアニメーション化された遷移を表示すること)を含む。いくつかの実施形態では、対応する仮想ユーザインタフェースオブジェクトが入力の移動に基づいてその最大静止状態の最も遠い範囲を越えて移動する場合、対応する仮想ユーザインタフェースオブジェクトは、入力がリフトオフすると、その最大静止状態に戻る(例えば、アニメーション化された遷移で)。例えば、3次元建築モデルの仮想屋根が、3次元建築モデル上に直接静止して、建築モデルの上に12インチまでホバリングして表示されることができる場合(例えば、仮想屋根の静止状態が建築モデルから0〜12インチである)、ユーザが仮想屋根を建築モデルの上に15インチ持ち上げる場合、ユーザ入力がリフトオフすると、仮想屋根は、建築モデルの上に12インチまで戻る。入力の移動の大きさに従って対応する仮想ユーザインタフェースオブジェクトを移動させ(対応する仮想ユーザインタフェースオブジェクトの静止状態の最大限界を越える場合でも)、次いで、入力がリフトオフすると、その最大静止状態に戻る対応する仮想ユーザインタフェースオブジェクトを表示することにより、ユーザに提供されるフィードバックを改善し(例えば、コンピュータシステムをユーザ入力に対してより反応するように見せることにより)、デバイスの操作性を向上させ、ユーザ−デバイスインタフェースをより効率的にし(例えば、ユーザが必要な入力により意図された結果を達成するのを支援し、デバイスを操作する/デバイスと相互作用するときのユーザの誤りを削減することによって)、加えて、ユーザがデバイスをより素早くかつ効率的に使用することを可能にすることによって、電力使用を削減し、デバイスのバッテリ寿命を改善する。
いくつかの実施形態では、表示された拡張現実環境は、1つ以上のカメラの視野内の物理的オブジェクトに対応しない1つ以上の仮想オブジェクト(例えば、建物の物理的モデルの置き換えである仮想ビルの前を走行している仮想自動車)(例えば、図5A4に示す拡張現実環境内の仮想の木、仮想の茂み、仮想の人、及び仮想自動車)、1つ以上のカメラの視野内にある1つ以上の物理的オブジェクト(例えば、建物の物理的モデルが置かれているテーブル)(例えば、テーブル5004及び壁紙5007、図5A4)、及び、対応する1つ以上の物理的オブジェクトの少なくとも一部分を置き換える、1つ以上のカメラの視野内にある1つ以上の物理的オブジェクトの1つ以上の3次元仮想モデル(例えば、仮想建築モデル5012、図5A4)(例えば、建物の物理的モデルの置き換え)(例えば、対応する3次元仮想モデルが対応するそれぞれの物理的マーカ上に投影される)を含む(632)。いくつかの実施形態では、1つ以上のカメラの視野内のそれぞれの物理的オブジェクトの対応する3次元仮想モデルは、対応するそれぞれの物理的オブジェクトの一部分(だが全てではない)を置き換える(例えば、像の頭部の3次元仮想モデルは、1つ以上のカメラの視野内の物理的像の頭部の一部分を置き換え、例えば、頭部の1/4の内部断面を示す)。いくつかの実施形態では、1つ以上のカメラの視野内のそれぞれの物理的オブジェクトの対応する3次元仮想モデルは、対応するそれぞれの物理的オブジェクトの全てを置き換える(例えば、建物の3次元仮想モデルは、1つ以上のカメラの視野内の建物の物理的モデル全体を置き換える)(例えば、仮想建築モデル5012は、拡張現実環境内の物理的建築モデル5006全体を置き換える、図5A4)。いくつかの実施形態では、表示された拡張現実環境は、異なる層内に上記の3つ全て(例えば、純粋な仮想オブジェクト、物理的オブジェクト、及び物理的オブジェクトの3次元仮想モデル)を含む。例えば、いくつかの実施形態では、表示された拡張現実環境は、エジプトピラミッド(例えば、像が元々表示されていた環境を示す純粋な仮想オブジェクト)を有する仮想環境内の像の頭部の3次元仮想モデル(例えば、像の内部断面を示す像の頭部の3次元仮想モデル)を有する博物館内の像(例えば、1つ以上のカメラの視野内の物理的オブジェクト)を含む。
いくつかの実施形態では、表示された拡張現実環境は、上記のサブセットを含む(例えば、1つ以上のカメラの視野内にある1つ以上の物理的オブジェクト、及び1つ以上の物理的オブジェクトの1つ以上の3次元仮想モデルを含むが、1つ以上の純粋な仮想オブジェクトを含まない)。例えば、博物館内の像の上記の例を使用して、いくつかの実施形態では、表示された拡張現実環境は、像の頭部の3次元仮想モデルを有する博物館内の像を含むが、任意の純粋な仮想オブジェクトを含まない。別の例として、いくつかの実施形態では、表示された拡張現実環境は、仮想屋外環境(例えば、建物を囲む仮想の木、建物の前を走行する仮想自動車、又は建物の周囲を歩いている仮想の人々などの仮想オブジェクトを有する)内の、建物の少なくとも一部の3次元仮想モデル(例えば、建物の内部ビューを示す建物の一部分の3次元仮想モデル)を有するテーブル又はプラットフォーム上の建物の物理的3次元モデル(例えば、1つ以上のカメラの視野内の物理的オブジェクト)を含む。建物の物理的3次元モデルが視野内で移動すると(例えば、建築モデルの物理的世界内の移動の結果として、及び/又はコンピュータシステムの移動の結果として、例えば、ユーザが物理的建築モデルの異なる側に歩き回ることによってコンピュータシステムを移動させると)(例えば、図5A3〜図5A6に示すように)、建物の物理的3次元モデルの1つ以上の3次元仮想モデルは、それに応じて移動する。例えば、ユーザが建物の異なる側に移動すると、建物の内部ビューを示す建物の一部分の3次元仮想モデルは、変化して、1つ以上のカメラの視野内の物理的オブジェクトの更新されたビューに対応する。仮想オブジェクト、物理的オブジェクト、及び物理的オブジェクトの3次元仮想モデルを有する拡張現実環境を表示することにより、ユーザに情報を提供する補足情報(1つ以上の仮想オブジェクト及び1つ以上の3次元仮想モデルを有する)とともに現実的なビュー(1つ以上のカメラの視野内にある1つ以上の物理的オブジェクトを有する)を提供し、それによって、デバイスの操作性を向上させ(例えば、ユーザが1つ以上のカメラの視野内にある1つ以上の物理的オブジェクトに関する補足情報に容易にアクセスすることを可能にすることによって)、ユーザ−デバイスインタフェースをより効率的にし(例えば、ユーザが必要な入力により意図された結果を達成するのを支援し、デバイスを操作する/デバイスと相互作用するときのユーザの誤りを削減することによって)、加えて、ユーザがデバイスをより素早くかつ効率的に使用することを可能にすることによって、電力使用を削減し、デバイスのバッテリ寿命を改善する。
いくつかの実施形態では、対応する物理的オブジェクトは、異なる角度から認識可能である3次元マーカであり、対応する仮想ユーザインタフェースオブジェクトは、1つ以上のカメラのカメラアングルに基づいて、(例えば、表示された拡張現実環境内の)対応する物理的オブジェクトに重ね合わされた3次元仮想モデルである(634)。いくつかの実施形態では、1つ以上のカメラのカメラアングルは、対応する物理的オブジェクトに対する1つ以上のカメラの向きに対応する。例えば、表示された拡張現実環境が像の頭部の3次元仮想モデルを有する博物館内の像を含む、上記の例を使用して、1つ以上のカメラのカメラアングルが、1つ以上のカメラの視野内に像の前面を含むように配置されるとき、表示された拡張現実環境は、像の前面及び像の頭部の前面の3次元仮想モデルを含む。カメラアングルが変化し(例えば、デバイスのユーザが1つ以上のカメラの視野内の像を閲覧している間に博物館内の像の周りを歩くと)、かつ1つ以上のカメラのカメラアングルが1つ以上のカメラの視野内に像の背面を含むように配置されると、表示された拡張現実環境は、像の背面及び像の頭部の背面の3次元仮想モデルを含む。対応する物理的オブジェクトが視野内で移動すると(例えば、対応する物理的オブジェクトの物理的世界内の移動の結果として、及び/又は、1つ以上のカメラの視野内の対応する物理的オブジェクトの移動を引き起こすコンピュータシステムの移動の結果として)、対応する物理的オブジェクトに重ね合わされた3次元仮想モデルは、それに応じて移動する(例えば、変化して、対応する物理的オブジェクトに追従する)。例えば、表示された拡張現実環境が建物内部を示す建物の一部分の3次元仮想モデルを有するテーブル上の物理的3次元建築モデル(例えば、テーブル5004上の物理的建築モデル5006、図5A1)を含む上記の例を使用して、物理的3次元建築モデルが移動すると(例えば、1つ以上のカメラの視野内で)(例えば、ユーザ5002が図5A3に示すような位置から図5A5に示すような位置まで歩くと)、物理的3次元建築モデルに重ね合わされた建物の3次元仮想モデルは、それに応じて移動する(例えば、ユーザが1つ以上のカメラの視野内の建物を閲覧している間に物理的3次元建築モデルの周囲を歩くと(例えば、物理的3次元建築モデルの前面から物理的3次元建築モデルの側面まで)、3次元仮想モデルは、変化して、ユーザの新しい位置からの1つ以上のカメラの視野内の建物の内部を表示する(例えば、物理的3次元建築モデルの前面の内部を表示することから、物理的3次元建築モデルの側面の内部を表示することに))。1つ以上のカメラのカメラアングルに基づいて対応する物理的オブジェクトに3次元仮想モデルを重ね合わせることにより、ユーザに提供されるフィードバックを改善し(例えば、コンピュータシステムをユーザ入力に対してより反応するように見せることにより)、デバイスの操作性を向上させ、ユーザ−デバイスインタフェースをより効率的にし(例えば、ユーザが必要な入力により意図された結果を達成するのを支援し、デバイスを操作する/デバイスと相互作用するときのユーザの誤りを削減することによって)、加えて、ユーザがデバイスをより素早くかつ効率的に使用することを可能にすることによって、電力使用を削減し、デバイスのバッテリ寿命を改善する。
図6A〜図6Dにおける動作について説明された特定の順序は単なる例であり、説明された順序は、動作を実行することができる唯一の順序であることを示すことを意図するものではないことを理解されたい。当業者であれば、本明細書に記載される動作を再順序付けるための様々な方法を認識するであろう。加えて、本明細書に記載される他の方法(例えば、方法700、800、900、1000、1100、1200、及び1300)に関して本明細書に記載される他のプロセスの詳細はまた、図6A〜図6Dに関して上記した方法600にも、類似の様式で適用可能であることに留意されたい。例えば、方法600に関連して上述した接触、ジェスチャ、ユーザインタフェースオブジェクト、強度閾値、フォーカスインジケータ、及び/又はアニメーションは、任意選択的に、本明細書に記載の他の方法(例えば、方法700、800、900、1000、1100、1200、及び1300)に関連して本明細書に記載の接触、ジェスチャ、ユーザインタフェースオブジェクト、強度閾値、フォーカスインジケータ、及び/又はアニメーションの特性のうちの1つ以上を有する。簡潔にするために、それらの詳細はここでは繰り返さない。
図7A〜図7Cは、いくつかの実施形態に係る、拡張現実環境内のコンピュータシステムの1つ以上のカメラによってキャプチャされたライブ画像にフィルタを適用する方法700を示すフロー図である。方法700は、表示生成コンポーネント(例えば、ディスプレイ、プロジェクタ、ヘッドアップディスプレイなど)と、1つ以上のカメラ(例えば、カメラの視野内にあるコンテンツの少なくとも一部分のライブプレビューを連続的に提供し、かつ任意選択的に、カメラの視野内のコンテンツをキャプチャする画像フレームの1つ以上のストリームを含むビデオ出力を生成するビデオカメラ)と、入力デバイス(例えば、タッチ感知式リモートコントロールなどのタッチ感知面、若しくは表示生成コンポーネントとしても機能するタッチスクリーンディスプレイ、マウス、ジョイスティック、ワンドコントローラ、及び/又はユーザの手などのユーザの1つ以上の特徴の位置を追跡するカメラ)と、を有するコンピュータシステム(例えば、ポータブル多機能デバイス100、図1A、デバイス300、図3A、又は、ヘッドセット5008及び入力デバイス5010を含むマルチコンポーネントコンピュータシステム、図5A2)において実行される。いくつかの実施形態では、入力デバイス(例えば、タッチ感知面を有する)及び表示生成コンポーネントは、タッチ感知ディスプレイに統合される。図3B〜図3Dに関して上述したように、いくつかの実施形態では、方法700は、表示生成コンポーネント、1つ以上のカメラ、1つ以上の入力デバイス、及び任意選択的に1つ以上の姿勢センサなどのそれぞれの構成要素が、それぞれ、コンピュータシステム301に含まれる、又はコンピュータシステム301と通信しているのいずれかである、コンピュータシステム301で実行される。
いくつかの実施形態では、表示生成コンポーネントは、タッチスクリーンディスプレイであり、入力デバイス(例えば、タッチ感知面を有する)は、表示生成コンポーネント上にある、又はそれと統合されている。いくつかの実施形態では、表示生成コンポーネントは、入力デバイスとは別個である(例えば、図4B及び図5A2に示すように)。方法700の一部の動作が任意選択的に組み合わされ、かつ/又は、一部の動作の順序が任意選択的に変更される。
説明の便宜上、実施形態のいくつかは、タッチ感知ディスプレイシステム112を有するコンピュータシステム上(例えば、タッチスクリーン112を有するデバイス100上)で実行される動作を参照して説明する。しかしながら、類似の動作は、任意選択的に、ヘッドセット5008のディスプレイ上に、図に示すユーザインタフェースを表示している間に、入力デバイス5010のタッチ感知面上の接触を検出したことに応じて、ヘッドセット5008とタッチ感知面を有する別個の入力デバイス5010とを有するコンピュータシステム(例えば、図5A2に示すような)上で実行される。
後述するように、方法700は、拡張現実環境(例えば、物理的世界で利用可能ではない、ユーザに追加情報を提供する補足情報で、現実が拡張される)内のコンピュータシステムの1つ以上のカメラの視野の表現(例えば、1つ以上のカメラの視野のライブプレビュー)にフィルタを適用することに関し、フィルタは、拡張現実環境の仮想環境設定に基づいて選択される。1つ以上のカメラによってキャプチャされたライブ画像にリアルタイムでフィルタを適用することにより、ユーザが拡張現実環境と相互作用するための直感的な方法を提供し(例えば、ユーザが拡張現実環境の仮想環境設定(例えば、時刻、シーン/環境など)を容易に変更することを可能にすることによって)、ユーザが仮想環境設定になされた変更をリアルタイムで見ることを可能にし、それにより、デバイスの操作性を向上させ、ユーザ−デバイスインタフェースをより効率的にし(例えば、デバイスを操作するときに、意図された結果を達成するために必要とされるステップの数を削減し、デバイスを操作する/デバイスと相互作用するときのユーザの誤りを削減することによって)、加えて、ユーザがデバイスをより素早くかつ効率的に使用することを可能にすることによって、電力使用を削減し、デバイスのバッテリ寿命を改善する。加えて、物理的環境のビューの外観を変更することにより、仮想モデルが配置された物理的環境に関する情報をユーザに依然として提供しながら、仮想モデルをより見えるようにする(例えば、非常に明るい背景上の暗いモデルと比較して)。
コンピュータシステム(例えば、デバイス100、図5A21)は、表示生成コンポーネント(例えば、タッチスクリーン112、図5A21)を介して(例えば、図5A21に示すように)拡張現実環境を表示する(702)。拡張現実環境を表示することは、対応する物理的オブジェクト(例えば、建物の3次元モデル、印刷されたパターンを有する一枚の紙、壁又は他の物理的オブジェクト上のポスター、表面上に置かれた像など)(例えば、物理的建築モデル5006、図5A1)を含む1つ以上のカメラの視野の少なくとも一部分の表現であって、表現は、1つ以上のカメラの視野のコンテンツが変化するにつれて更新される(例えば、表現は、1つ以上のカメラの視野の少なくとも一部分のライブプレビューであり、対応する物理的オブジェクトは、カメラの視野内に含まれ、かつ見える)表現と、1つ以上のカメラの視野の表現内の対応する位置にある、対応する仮想ユーザインタフェースオブジェクト(例えば、建物の3次元モデルの仮想屋根、印刷されたパターンを有する一枚の紙によって表された表面上に駐車された仮想の自動車、ポスターに重ね合わされた対話型ロゴ、像の外形をカバーする仮想3次元マスクなど)(例えば、仮想建築モデル5012、図5A21)であって、対応する仮想ユーザインタフェースオブジェクトは、1つ以上のカメラの視野内の対応する物理的オブジェクトに基づいて決定される位置を有する、対応する仮想ユーザインタフェースオブジェクトと、を同時に表示することを含む(704)。例えば、いくつかの実施形態では、対応する仮想ユーザインタフェースオブジェクトは、1つ以上のカメラの視野内の対応する物理的オブジェクトに取り付けられるように見える、又はそれをカバーするように見える、グラフィカルオブジェクト又は2次元若しくは3次元仮想オブジェクトである(例えば、仮想建築モデル5012は、物理建築モデル5006をカバーするように見える3次元仮想オブジェクトである、図5A21)。対応する仮想ユーザインタフェースオブジェクトの位置及び/又は向きは、1つ以上のカメラの視野内の物理的オブジェクトの位置、形状、及び/又は向きに基づいて決定される(例えば、図5A3及び図5A5に示すように)。拡張現実環境を表示している間に、コンピュータシステムは、拡張現実環境の仮想環境設定(例えば、時刻、照明角度、ストーリーなど)を変更する入力(例えば、図5A21〜図5A24に示すような、拡張現実環境内で時間を通してナビゲートするスワイプ入力)を検出する(706)(例えば、図5A25〜図5A27に示すように、1つ以上のカメラの視野内にある対応する物理的オブジェクトに対応する複数の表示設定間で異なる表示設定を選択する)。仮想環境設定を変更する入力を検出したことに応じて、コンピュータシステムは(708)、拡張現実環境の仮想環境設定になされた変更に従って、対応する仮想ユーザインタフェースオブジェクトの外観を調整し、1つ以上のカメラの視野の表現の少なくとも一部分(例えば、対応する仮想ユーザインタフェースオブジェクトによって不明瞭化されていない1つ以上のカメラの視野の表現の部分)にフィルタを適用し、フィルタは、仮想環境設定になされた変更に基づいて選択される(例えば、全体的なカラーフィルタを適用してシーンを暗くする(例えば、図5A24に示すように)、仮想の太陽の方向に基づいて対応する物理的オブジェクト及び仮想オブジェクトの両方に影を追加する(例えば、図5A21〜図5A23に示すように)、選択されたストーリー(例えば、履歴ビュー、建設、ビューの一日など)に基づいて追加の仮想オブジェクトをシーンに追加する(及び/又はシーンから仮想オブジェクトを除去する)(例えば、図5A25〜図5A27に示すように)、並びに画像出力がカメラの視野のライブプレビュー内に表示される前にカメラの画像出力の色温度、輝度、コントラスト、鮮明度、透明度などを変更する)。
いくつかの実施形態では、1つ以上のカメラの視野の表現の少なくとも一部分にフィルタを適用することは、対応する仮想ユーザインタフェースオブジェクトの外観調整に加えて、拡張現実環境の外観調整を引き起こす(710)。いくつかの実施形態では、フィルタは、対応する仮想ユーザインタフェースオブジェクトによって不明瞭化されていない1つ以上のカメラの視野の表現の部分に適用される(例えば、図5A24では、フィルタは、仮想シーンによって不明瞭化されていない壁紙5007に適用される)。例えば、建設ビューが選択されると、仮想屋根を除去して(例えば、対応する仮想ユーザインタフェースオブジェクトの外観を調整する)、物理的建築モデルの内部を示すことができ(例えば、図5A27に示すように)、建設中の建物の内部を示す仮想シーンが、物理的建築モデルのライブプレビューに重ね合わされ、周囲の物理的環境は、ぼかされる(例えば、フィルタを使用して)。タイムラプスアニメーションが数日の期間にわたる建設を示して表示されると、光フィルタが仮想シーンによって不明瞭化されていないライブプレビューの部分に適用され、それにより、それらの日全体にわたる照明変化が、ライブプレビューにも含まれる建築モデルを囲む物理的オブジェクトに適用される(例えば、壁紙5007も夜間モードで暗くされる、図5A24)。いくつかの実施形態では、フィルタは、対応する仮想ユーザインタフェースオブジェクトを含む拡張現実環境に適用される。例えば、いくつかの実施形態では、全体的なカラーフィルタが、対応する仮想ユーザインタフェースオブジェクトによって占有される部分を含む、1つ以上のカメラの視野の表現全体に適用される。対応する仮想ユーザインタフェースオブジェクトの外観を調整することに加えて、拡張現実環境の外観を調整することにより、ユーザに提供される視覚的フィードバックを改善し(例えば、コンピュータシステムをユーザ入力に対してより反応するように見せることにより)、デバイスの操作性を向上させ、ユーザ−デバイスインタフェースをより効率的にし(例えば、ユーザが必要な入力により意図された結果を達成するのを支援し、デバイスを操作する/デバイスと相互作用するときのユーザの誤りを削減することによって)、加えて、ユーザがデバイスをより素早くかつ効率的に使用することを可能にすることによって、電力使用を削減し、デバイスのバッテリ寿命を改善する。
いくつかの実施形態では、仮想環境設定は、夜間モードに変更され(712)、1つ以上のカメラの視野の表現の少なくとも一部分にフィルタを適用することは、1つ以上のカメラによってキャプチャされた画像(又は一連の画像)の輝度を低減することと、1つ以上のカメラによってキャプチャされた画像(又は一連の画像)にカラーフィルタを適用することと、を含む(例えば、図5A24に示すように)。いくつかの実施形態では、1つ以上のカメラによってキャプチャされた画像に適用されるフィルタは、動作(726)に関して後述するように、画像出力が1つ以上のカメラの視野のライブプレビュー内に表示される前に(例えば、1つ以上のカメラによってキャプチャされた画像が拡張現実環境内に表示される前に)適用される。夜間モード用のフィルタを適用することにより(例えば、輝度を低減し、カラーフィルタを適用することによって)、ユーザに提供される視覚的フィードバックを改善し(例えば、コンピュータシステムをユーザ入力に対してより反応するように見せることにより)、デバイスの操作性を向上させ、ユーザ−デバイスインタフェースをより効率的にし(例えば、デバイスを操作するときに意図された結果を達成するために必要とされるステップの数を削減し、デバイスを操作する/デバイスと相互作用するときのユーザの誤りを削減することによって)、加えて、ユーザがデバイスをより素早くかつ効率的に使用することを可能にすることによって、電力使用を削減し、デバイスのバッテリ寿命を改善する。
いくつかの実施形態では、仮想環境設定を変更する入力は、拡張現実環境内で時間を通してナビゲートするスワイプ入力(例えば、左から右に又は右から左に)である(714)。例えば、いくつかの実施形態では、ユーザが入力デバイス上で左から右にスワイプすると、拡張現実環境内の時刻は、昼間から夜に変化する(例えば、スワイプ入力の移動の速度及び/又は距離に従って)(例えば、図5A21〜図5A24に示すように)。ユーザがスワイプ入力を使用して拡張現実環境内で時間を通してナビゲートすることを可能にすることにより、ユーザが仮想環境設定を変更する直感的方法を提供し、ユーザに提供されるフィードバックを改善し(例えば、コンピュータシステムをユーザ入力に対してより反応するように見せることにより)、デバイスの操作性を向上させ、ユーザ−デバイスインタフェースをより効率的にし(例えば、デバイスを操作するときに意図された結果を達成するために必要とされるステップの数を削減し、デバイスを操作する/デバイスと相互作用するときのユーザの誤りを削減することによって)、加えて、ユーザがデバイスをより素早くかつ効率的に使用することを可能にすることによって、電力使用を削減し、デバイスのバッテリ寿命を改善する。
いくつかの実施形態では、仮想環境設定を変更する入力を検出することは、仮想環境設定を変更するための入力の移動を検出することを含み(716)、拡張現実環境の仮想環境設定になされた変更に従って、対応する仮想ユーザインタフェースオブジェクトの外観を調整することは、仮想環境設定を変更するための入力の移動に従って、対応する仮想ユーザインタフェースオブジェクトの外観を漸進的に調整することを含み、1つ以上のカメラの視野の表現の少なくとも一部分にフィルタを適用することは、仮想環境設定を変更するための入力の移動に従って、フィルタを漸進的に適用することを含む(例えば、図5A21〜図5A24に示すように)。例えば、いくつかの実施形態では、フィルタは、入力の移動に基づいて漸進的に適用され、対応する仮想ユーザインタフェースオブジェクトの外観は、入力の移動(例えば、タッチ感知面上の接触の移動、ワンドの移動、又はコンピュータシステムのカメラのビュー内のユーザの手の移動)(例えば、タッチスクリーン112上の接触5030の移動、図5A21〜図5A24)の速度及び/又は距離に基づいて漸進的に調整される。仮想環境設定を変更するための入力の移動に従って、仮想ユーザインタフェースオブジェクトの外観を漸進的に調整し、フィルタを漸進的に適用することにより、ユーザに提供される視覚的フィードバックを改善し(例えば、コンピュータシステムをユーザ入力に対してより反応するように見せることにより)、デバイスの操作性を向上させ、ユーザ−デバイスインタフェースをより効率的にし(例えば、デバイスを操作するときに意図された結果を達成するために必要とされるステップの数を削減し、デバイスを操作する/デバイスと相互作用するときのユーザの誤りを削減することによって)、加えて、ユーザがデバイスをより素早くかつ効率的に使用することを可能にすることによって、電力使用を削減し、デバイスのバッテリ寿命を改善する。
いくつかの実施形態では、対応する仮想ユーザインタフェースオブジェクトは、拡張現実環境内の対応する物理的オブジェクトに影を投じる(718)。例えば、いくつかの実施形態では、建物の3次元モデルの仮想屋根は、建物の3次元モデルに影を投じる。時刻又は照明角度が変更されると(例えば、仮想環境設定を変更することによって)、対応する仮想ユーザインタフェースオブジェクトによって対応する物理的オブジェクトに投じられた影は、それに応じて変化する。例えば、図5A21〜図5A23に示すように、時刻が変更されると、仮想建築モデル5012によって投じられた影は、それに応じて変化する。拡張現実環境内で(例えば、物理的オブジェクトに投じられた)影とともに仮想ユーザインタフェースオブジェクトを表示することにより、ユーザに提供される視覚的フィードバックを改善し(例えば、拡張現実環境をより現実的にし、ユーザが仮想環境設定を変更するときにコンピュータシステムをユーザ入力に対してより反応するように見せることにより)、デバイスの操作性を向上させ、ユーザ−デバイスインタフェースをより効率的にし(例えば、デバイスを操作する/デバイスと相互作用するときのユーザの誤りを削減することによって)、加えて、ユーザがデバイスをより素早くかつ効率的に使用することを可能にすることによって、電力使用を削減し、デバイスのバッテリ寿命を改善する。
いくつかの実施形態では、対応する物理的オブジェクトは、拡張現実環境内の対応する仮想ユーザインタフェースオブジェクトに影を投じる(720)。例えば、いくつかの実施形態では、建物の3次元モデルは、建物の隣に駐車された仮想自動車に影を投じる。時刻又は照明角度が変更されると(例えば、仮想環境設定を変更することによって、又は物理的オブジェクトの移動により)、対応する物理的オブジェクトによって対応する仮想ユーザインタフェースオブジェクトに投じられた影は、それに応じて変化する。例えば、いくつかの実施形態では、拡張現実環境内の時刻が正午(例えば、拡張現実環境内のオブジェクトの対応する影が比較的小さいとき)から午前又は午後(例えば、拡張現実環境内のオブジェクトの対応する影がより長いとき)に変化すると、対応する物理的オブジェクトによって対応する仮想ユーザインタフェースオブジェクトに投じられた影は、それに応じて変化する(例えば、時刻が午前から正午に変化するにつれて、影はより小さく/短くなり、時刻が正午から午後に変化するにつれて、影はより大きく/長くなる)。いくつかの実施形態では、対応する物理的オブジェクトの3次元仮想モデルを使用して、対応する物理的オブジェクトの影が拡張現実環境内のどこにあるべきかを判定する。図5A21〜図5A24では、仮想建築モデル5012は、物理的建築モデル5006を完全にカバーしているが、物理的建築モデル5006の一部分が露出していた場合、物理的建築モデル5006のその部分は、拡張現実環境内で時刻が変更されると、同様の影を投じることになる。拡張現実環境内で(例えば、仮想ユーザインタフェースオブジェクトに投じられた)影とともに物理的オブジェクトを表示することにより、ユーザに提供される視覚的フィードバックを改善し(例えば、拡張現実環境をより現実的にし、ユーザが仮想環境設定を変更するときにコンピュータシステムをユーザ入力に対してより反応するように見せることにより)、デバイスの操作性を向上させ、ユーザ−デバイスインタフェースをより効率的にし(例えば、デバイスを操作する/デバイスと相互作用するときのユーザの誤りを削減することによって)、加えて、ユーザがデバイスをより素早くかつ効率的に使用することを可能にすることによって、電力使用を削減し、デバイスのバッテリ寿命を改善する。
いくつかの実施形態では、対応する物理的オブジェクトの移動(例えば、対応する物理的オブジェクトの物理的世界内の移動の結果として、及び/又は1つ以上のカメラの視野内の対応する物理的オブジェクトの移動を引き起こすコンピュータシステムの移動の結果として)(例えば、第1の位置(例えば、図5A3に示すような)から第2の位置(例えば、図5A5に示すような)へのユーザ5002の移動は、拡張現実環境内の対応する仮想ユーザインタフェースオブジェクトの外観の1つ以上の変化を引き起こす(722)(例えば、仮想建築モデル5012のビューを前面ビューから側面ビューに変更する、図5A3〜図5A6)。いくつかの実施形態では、対応する物理的オブジェクトが移動すると、周囲光源が対応する物理的オブジェクトに対して異なる角度にあるため、対応する物理的オブジェクトの移動は、対応する物理的オブジェクトに、対応する仮想ユーザインタフェースオブジェクトに異なるように影を投じさせる(例えば、図5A3〜図5A6に示すように)。物理的オブジェクトの移動に応じて拡張現実環境内の仮想ユーザインタフェースオブジェクトの外観を変更することにより、ユーザに提供される視覚的フィードバックを改善し(例えば、コンピュータシステムをユーザ入力に対してより反応するように見せることにより)、デバイスの操作性を向上させ、ユーザ−デバイスインタフェースをより効率的にし(例えば、デバイスを操作する/デバイスと相互作用するときのユーザの誤りを削減することによって)、加えて、ユーザがデバイスをより素早くかつ効率的に使用することを可能にすることによって、電力使用を削減し、デバイスのバッテリ寿命を改善する。
いくつかの実施形態では、コンピュータシステムの移動は、1つ以上のカメラの視野の少なくとも一部分の表現(例えば、ライブプレビュー)及び対応する仮想ユーザインタフェースオブジェクトの外観に適用される視覚効果の1つ以上の変化を引き起こす(724)。例えば、対応する物理的オブジェクトが物理的3次元建築モデルである場合、ユーザが物理的3次元建築モデルの異なる側に歩くことによってコンピュータシステムを移動させると、照明の角度が変化し、これにより、ライブプレビュー及び任意の仮想ユーザインタフェースオブジェクトに適用される視覚効果の変化を引き起こす(例えば、物理的3次元建築モデルによって、及び1つ以上の仮想オブジェクトによって投じられた影が変化する)(例えば、図5A3〜図5A6に示すように)。コンピュータシステムの移動に応じて、ライブプレビューに適用される視覚効果を変更し、仮想ユーザインタフェースオブジェクトの外観を変更することにより、ユーザに提供される視覚的フィードバックを改善し(例えば、コンピュータシステムをユーザ入力に対してより反応するように見せることにより)、デバイスの操作性を向上させ、ユーザ−デバイスインタフェースをより効率的にし(例えば、デバイスを操作する/デバイスと相互作用するときのユーザの誤りを削減することによって)、加えて、ユーザがデバイスをより素早くかつ効率的に使用することを可能にすることによって、電力使用を削減し、デバイスのバッテリ寿命を改善する。
いくつかの実施形態では、1つ以上のカメラの視野の表現の少なくとも一部分にフィルタを適用することは、1つ以上のカメラによってキャプチャされた画像が表示生成コンポーネントに送信される前に、画像(又は一連の画像)(例えば、1つ以上のカメラの視野内にあるコンテンツの少なくとも一部分のライブプレビュー)にフィルタを適用することを含む(726)(例えば、図5A21〜図5A24に示すように)。画像がディスプレイに送信される前に、カメラによってキャプチャされた画像にフィルタを適用することにより、仮想環境設定になされた変更のリアルタイムビューを提供し、ユーザに提供される視覚的フィードバックを改善し(例えば、コンピュータシステムをユーザ入力に対してより反応するように見せることにより)、デバイスの操作性を向上させ、ユーザ−デバイスインタフェースをより効率的にし(例えば、デバイスを操作する/デバイスと相互作用するときのユーザの誤りを削減することによって)、加えて、ユーザがデバイスをより素早くかつ効率的に使用することを可能にすることによって、電力使用を削減し、デバイスのバッテリ寿命を改善する。
いくつかの実施形態では、仮想環境設定を変更する入力は、仮想ユーザインタフェースオブジェクトの異なる仮想環境間で切り替える入力(例えば、スワイプ入力又はボタン上のタップ入力)(例えば、ボタン5016上の接触5032によるタップ入力、図5A26)であり(728)、異なる仮想環境は、仮想ユーザインタフェースオブジェクトを探索するための異なる相互作用に関連付けられる(例えば、第1の仮想環境から第2の仮想環境へ)(例えば、図5A25〜図5A27に示すように、風景ビューから内部ビューへ)。いくつかの実施形態では、同じ仮想ユーザインタフェースオブジェクトの異なる仮想環境は、既定の仮想環境である(例えば、図5A25〜図5A27に示すような、風景、内部、及び昼間/夜間)。例えば、異なる仮想環境ストーリーは、履歴ビュー、建設ビュー、一日ビュー、建物探索ビューなどを含み、建設ビューは、左から右へのスワイプとともに時間を通して進み、建物の建設の異なる段階を示し、一方、建物探索ビューは、上方向スワイプ入力に応じて、建物の建築設計の詳細なビューを表示する。ユーザが異なる仮想環境間で切り替える(例えば、スワイプ入力又はボタン上のタップ入力で)ことを可能にすることにより、ユーザが仮想環境設定を変更する容易かつ直感的な方法を提供し、ユーザに提供されるフィードバックを改善し(例えば、コンピュータシステムをユーザ入力に対してより反応するように見せることにより)、デバイスの操作性を向上させ、ユーザ−デバイスインタフェースをより効率的にし(例えば、デバイスを操作するときに意図された結果を達成するために必要とされるステップの数を削減し、デバイスを操作する/デバイスと相互作用するときのユーザの誤りを削減することによって)、加えて、ユーザがデバイスをより素早くかつ効率的に使用することを可能にすることによって、電力使用を削減し、デバイスのバッテリ寿命を改善する。
いくつかの実施形態では、第1の仮想環境設定(例えば、建設ビューなどの第1の仮想環境ストーリー)が選択されているとの判定に従って、コンピュータシステムは、拡張現実環境内に仮想オブジェクトの第1のセットを表示し(730)、第2の仮想環境設定(例えば、一日ビューなどの第2の仮想環境ストーリー)が選択されているとの判定に従って、コンピュータシステムは、拡張現実環境内に、仮想オブジェクトの第1のセットとは別個の仮想オブジェクトの第2のセットを表示する。いくつかの実施形態では、仮想環境設定の選択に基づいて、仮想オブジェクトの異なるセットが表示される。例えば、いくつかの実施形態では、建築ビューでは、木又は人々が表示されず、一日ビューでは、木及び人々が表示される。図5A25〜図5A27に示すように、例えば、風景ビューでは、仮想の木、仮想の人、及び仮想自動車が表示され(例えば、図5A25に)、内部ビューでは、木又は人々又は自動車が表示されない(例えば、図5A27に)。仮想環境設定の選択に基づいて仮想オブジェクトの異なるセットを表示することにより、ユーザに提供されるフィードバックを改善し(例えば、コンピュータシステムをユーザ入力に対してより反応するように見せることにより)、デバイスの操作性を向上させ、ユーザ−デバイスインタフェースをより効率的にし(例えば、デバイスを操作するときに意図された結果を達成するために必要とされるステップの数を削減し、デバイスを操作する/デバイスと相互作用するときのユーザの誤りを削減することによって)、加えて、ユーザがデバイスをより素早くかつ効率的に使用することを可能にすることによって、電力使用を削減し、デバイスのバッテリ寿命を改善する。
図7A〜図7Cにおける動作について説明された特定の順序は単なる例であり、説明された順序は、動作を実行することができる唯一の順序であることを示すことを意図するものではないことを理解されたい。当業者であれば、本明細書に記載される動作を再順序付けるための様々な方法を認識するであろう。加えて、本明細書に記載される他の方法(例えば、方法600、800、900、1000、1100、1200、及び1300)に関して本明細書に記載される他のプロセスの詳細はまた、図7A〜図7Cに関して上記した方法700にも、類似の様式で適用可能であることに留意されたい。例えば、方法700に関連して上述した接触、ジェスチャ、ユーザインタフェースオブジェクト、強度閾値、フォーカスインジケータ、及び/又はアニメーションは、任意選択的に、本明細書に記載の他の方法(例えば、方法600、800、900、1000、1100、1200、及び1300)に関連して本明細書に記載の接触、ジェスチャ、ユーザインタフェースオブジェクト、強度閾値、フォーカスインジケータ、及び/又はアニメーションの特性のうちの1つ以上を有する。簡潔にするために、それらの詳細はここでは繰り返さない。
図8A〜図8Cは、いくつかの実施形態に係る、拡張現実環境内の仮想モデルを閲覧することと、仮想モデル内のオブジェクトの視点からの仮想モデルのシミュレートされたビューを閲覧することとの間で遷移する方法800を示すフロー図である。方法800は、表示生成コンポーネント(例えば、ディスプレイ、プロジェクタ、ヘッドアップディスプレイなど)と、1つ以上のカメラ(例えば、カメラの視野内にあるコンテンツの少なくとも一部分のライブプレビューを連続的に提供し、かつ任意選択的に、カメラの視野内のコンテンツをキャプチャする画像フレームの1つ以上のストリームを含むビデオ出力を生成するビデオカメラ)と、入力デバイス(例えば、タッチ感知式リモートコントロールなどのタッチ感知面、若しくは表示生成コンポーネントとしても機能するタッチスクリーンディスプレイ、マウス、ジョイスティック、ワンドコントローラ、及び/又はユーザの手などのユーザの1つ以上の特徴の位置を追跡するカメラ)と、を有するコンピュータシステム(例えば、ポータブル多機能デバイス100、図1A、デバイス300、図3、又は、ヘッドセット5008及び入力デバイス5010を含むマルチコンポーネントコンピュータシステム、図5A2)において実行される。いくつかの実施形態では、入力デバイス(例えば、タッチ感知面を有する)及び表示生成コンポーネントは、タッチ感知ディスプレイに統合される。図3B〜図3Dに関して上述したように、いくつかの実施形態では、方法800は、表示生成コンポーネント、1つ以上のカメラ、1つ以上の入力デバイス、及び任意選択的に1つ以上の姿勢センサなどのそれぞれの構成要素が、それぞれ、コンピュータシステム301に含まれる、又はコンピュータシステム301と通信しているのいずれかである、コンピュータシステム301で実行される。
いくつかの実施形態では、表示生成コンポーネントは、タッチスクリーンディスプレイであり、入力デバイス(例えば、タッチ感知面を有する)は、表示生成コンポーネント上にある、又はそれと統合されている。いくつかの実施形態では、表示生成コンポーネントは、入力デバイスとは別個である(例えば、図4B及び図5A2に示すように)。方法800の一部の動作が任意選択的に組み合わされ、かつ/又は、一部の動作の順序が任意選択的に変更される。
説明の便宜上、実施形態のいくつかは、タッチ感知ディスプレイシステム112を有するコンピュータシステム上(例えば、タッチスクリーン112を有するデバイス100上)で実行される動作を参照して説明する。しかしながら、類似の動作は、任意選択的に、ヘッドセット5008のディスプレイ上に、図に示すユーザインタフェースを表示している間に、入力デバイス5010のタッチ感知面上の接触を検出したことに応じて、ヘッドセット5008とタッチ感知面を有する別個の入力デバイス5010とを有するコンピュータシステム(例えば、図5A2に示すような)上で実行される。
後述するように、方法800は、拡張現実環境(例えば、物理的世界で利用可能ではない追加情報をユーザに提供する補足情報で、現実が拡張される)内に仮想ユーザインタフェースオブジェクトとともに仮想モデル(例えば、物理的オブジェクトの)を提示すること(デバイス100などのコンピュータシステムのディスプレイ上に、図5A28)、並びにコンピュータシステムの移動及び/又はコンピュータシステムへの検出された入力(例えば、タッチ感知面上の接触)に応じて、仮想ユーザインタフェースオブジェクトの視点からの仮想モデルのシミュレートされたビューを提示すること(例えば、仮想現実環境内に)に関する。いくつかの実施形態では、ユーザが拡張現実環境内の仮想モデルを閲覧することを可能にすることにより、ユーザに仮想モデルに関する補足情報へのアクセスを提供する。いくつかの実施形態では、ユーザが仮想現実環境内の異なる視点から仮想モデルを視覚化することを可能にすることにより、仮想モデルを体験するための、より没入型かつ直感的な方法をユーザに提供する。ユーザが物理的オブジェクトに関する補足情報にアクセスすることを可能にすること、並びに没入型かつ直感的な閲覧体験を提供することにより、デバイスの操作性を向上させ、ユーザ−デバイスインタフェースをより効率的にし(例えば、デバイスを操作する/デバイスと相互作用するときのユーザの混乱及び誤りを削減することによって)、加えて、ユーザがデバイスをより素早くかつ効率的に使用することを可能にすることによって、電力使用を削減し、デバイスのバッテリ寿命を改善する。
コンピュータシステム(例えば、デバイス100、図5A28)は、表示生成コンポーネントを介して、拡張現実環境(例えば、図5A28及び図5A29に示す拡張現実環境)を表示する(802)。拡張現実環境を表示することは、対応する物理的オブジェクト(例えば、建物の3次元モデル、印刷されたパターンを有する一枚の紙、壁又は他の物理的オブジェクト上のポスター、表面上に置かれた像など)を含む1つ以上のカメラの視野の少なくとも一部分の表現であって、表現は、1つ以上のカメラの視野のコンテンツが変化するにつれて更新される(例えば、表現は、1つ以上のカメラの視野の少なくとも一部分のライブプレビューであり、対応する物理的オブジェクトは、カメラの視野内に含まれ、かつ見える)表現と、1つ以上のカメラの視野の表現内の対応する位置に表示された仮想モデル内の第1の仮想ユーザインタフェースオブジェクト(例えば、3次元建築モデルのレンダリングされた3次元モデル、印刷されたパターンを有する一枚の紙によって表される表面上に配置された建物の仮想3次元モデル、ポスターを有する壁又は物理的オブジェクトの反対側の別の壁又は物理的オブジェクトのレンダリングされた仮想モデルに取り付けられた仮想カメラ、仮想モデルの付近(例えば、建物の仮想モデルの隣、又は表面上に置かれた像の仮想モデルの隣)に立っている仮想の人など)であって、第1の仮想ユーザインタフェースオブジェクトは、1つ以上のカメラの視野内の対応する物理的オブジェクトに基づいて決定される位置を有する、第1の仮想ユーザインタフェースオブジェクトと、を同時に表示することを含む(804)。例えば、いくつかの実施形態では、第1の仮想ユーザインタフェースオブジェクトは、1つ以上のカメラの視野内の対応する物理的オブジェクトに取り付けられるように見える、又はそれをカバーするように見える、グラフィカルオブジェクト又は2次元若しくは3次元仮想オブジェクトである。対応する仮想ユーザインタフェースオブジェクトの位置及び/又は向きは、1つ以上のカメラの視野内の物理的オブジェクトの位置、形状、及び/又は向きに基づいて決定される。例えば、図5A28を参照して上述したように、拡張現実環境を表示することは、壁紙5007及びテーブル5004の縁部(単数又は複数)、並びにまたカメラの視野内にある、物理的建築モデル5006(図5A2に示すような)を含む、カメラの視野の一部分の表現と、仮想車両5050である第1の仮想ユーザインタフェースオブジェクトと、を同時に表示することを含む。拡張現実環境を表示している間に(例えば、第1の仮想ユーザインタフェースオブジェクトが、1つ以上のカメラの視野の少なくとも一部分に重ね合わされた状態で)、コンピュータシステムは、第1の仮想ユーザインタフェースオブジェクトの選択に対応する第1の入力(例えば、第1の仮想ユーザインタフェースオブジェクト上のタップ、又はカーソルによる第1の仮想ユーザインタフェースオブジェクトの選択など)を検出する(806)。例えば、図5A29を参照して上述したように、デバイス100は、車両5050の選択に対応する入力5052を検出する。第1の仮想ユーザインタフェースオブジェクト(例えば、車両5050、図5A29)の選択に対応する第1の入力(例えば、入力5052、図5A29)を検出したことに応じて、コンピュータシステムは、仮想モデル内の第1の仮想ユーザインタフェースオブジェクトの視点からの仮想モデルのシミュレートされた視野を表示する(808)(例えば、図5A31に示し、図5A31を参照して上述したように)(及び任意選択的に、動作810を参照して本明細書に記載されるように、1つ以上のカメラの視野の表現を表示することを停止する)。例えば、ユーザが物理的3次元建築モデル(例えば、物理的建築モデル5006、図5A1)のレンダリングされた3次元モデル(例えば、図5A29に示す仮想モデル)内の仮想自動車(例えば、車両5050、図5A29)を選択すると、デバイスは、仮想自動車の視点からのレンダリングされた3次元建築モデルのビューを表示する(例えば、ユーザが仮想自動車内の人(例えば、ドライバ)の視点から建築モデルを見ているかのように)。いくつかの実施形態では、コンピュータシステムはまた、カメラの視野の表現及び第1の仮想ユーザインタフェースオブジェクトを表示することを停止することを含めて、拡張現実環境を表示することを停止する。別の実施例では、表面上に置かれた像の仮想モデルの隣に立っている仮想の人の上でタップすると、デバイスは、仮想の人を表示することを停止し、像の仮想モデルの隣に立っている仮想の人の視点からの像の仮想モデルを表示する。
いくつかの実施形態では、第1の仮想ユーザインタフェースオブジェクトの選択に対応する第1の入力を検出したことに応じて、コンピュータシステムは、1つ以上のカメラの視野の表現(例えば、コンピュータシステムが第1の仮想オブジェクトの視点からの仮想モデルのビューを表示することに切り替えたときに、第1の入力を検出する前に表示されていた1つ以上のカメラの視野内のコンテンツ)を表示することを停止する(810)(例えば、図5A30を参照して上述したように、壁紙5007及び/又はテーブル5004の縁部を表示することを停止する)。(例えば、仮想現実環境内の)選択された仮想ユーザインタフェースオブジェクトの視点から仮想モデルを閲覧することに遷移するときに、カメラ(単数又は複数)の視野内にあるものを表示することを停止することにより、ユーザがもはやARモードにはないことを示し、ユーザが仮想モデル及び仮想環境に集中することを可能にする、より没入型の閲覧体験をユーザに提供する。仮想モデルのより没入型かつ直感的な閲覧体験をユーザに提供することにより、デバイスの操作性を向上させ、ユーザ−デバイスインタフェースをより効率的にし(例えば、デバイスを操作する/デバイスと相互作用するときのユーザの混乱及び誤りを削減することによって)、加えて、ユーザがデバイスをより素早くかつ効率的に使用することを可能にすることによって、電力使用を削減し、デバイスのバッテリ寿命を改善し、並びに背景ユーザインタフェースをキャプチャし、シミュレートするために必要とされるエネルギ及び処理リソースを削減する。
いくつかの実施形態では、拡張現実環境を表示している間に1つ以上のカメラの視野を変更する、コンピュータシステムの少なくとも一部分の移動(例えば、1つ以上のカメラ又は入力デバイスなどのコンピュータシステムの1つ以上の構成要素の移動)を検出したことに応じて、コンピュータシステムは、1つ以上のカメラの視野の表現を更新する(812)。例えば、図5A15及び図5A16を参照して上述したように、デバイス100は、デバイス100の移動に応じて、デバイス100のカメラの視野を変更する。カメラ(単数又は複数)の視野を変更する移動に応じて、拡張現実環境内に表示されているものを更新することにより、表示されているものと、物理的世界内のコンピュータシステム(又はより具体的には、カメラ(単数又は複数))の配置に基づいてユーザが見ることを期待することになるものとの間の一貫性を提供し、従って、ユーザに提供される視覚的フィードバックを改善する(例えば、コンピュータシステムをユーザ入力及びカメラ位置/方向に対してより反応するように見せることによって)。より直感的な閲覧体験をユーザに提供することにより、デバイスの操作性を向上させ、ユーザ−デバイスインタフェースをより効率的にし(例えば、デバイスを操作する/デバイスと相互作用するときのユーザの混乱及び誤りを削減することによって)、加えて、ユーザがデバイスをより素早くかつ効率的に使用することを可能にすることによって、電力使用を削減し、デバイスのバッテリ寿命を改善する。
いくつかの実施形態では、拡張現実環境を表示している間に、1つ以上のカメラの視野のコンテンツの視点を変更するコンピュータシステムの少なくとも一部分の移動(例えば、1つ以上のカメラ又は入力デバイスなどのコンピュータシステムの構成要素の移動)を検出したことに応じて、コンピュータシステムは、視野のコンテンツの視点の変更に従って、1つ以上のカメラの視野の表現及び仮想モデルを更新する(814)(例えば、コンピュータシステムは、画像解析を使用して、物理的オブジェクトに対する1つ以上のカメラの更新された向きを判定し、判定された向きを使用して、表現を更新する)。例えば、図5A3〜図5A6を参照して上述したように、デバイス100は、ユーザ5002が第1の視点を有する第1の位置から(例えば、図5A3及び図5A4に示すようなテーブル5004の前面から)第2の視点を有する第2の位置に(例えば、図5A5及び図5A6に示すようなテーブル5004の側面から)移動すると、拡張現実の異なるビューを表示する。カメラ(単数又は複数)の視点を変更する移動に応じて、拡張現実環境内に表示されているものを更新することにより、表示されているものと、物理的世界内のコンピュータシステム(又はより具体的には、カメラ(単数又は複数))の配置に基づいてユーザが見ることを期待することになるものとの間の一貫性を提供し、ユーザに提供される視覚的フィードバックを改善する(例えば、コンピュータシステムをユーザ入力及びカメラ位置/方向に対してより反応するように見せることによって)。より直感的な閲覧体験をユーザに提供することにより、デバイスの操作性を向上させ、ユーザ−デバイスインタフェースをより効率的にし(例えば、デバイスを操作する/デバイスと相互作用するときのユーザの混乱及び誤りを削減することによって)、加えて、ユーザがデバイスをより素早くかつ効率的に使用することを可能にすることによって、電力使用を削減し、デバイスのバッテリ寿命を改善する。
いくつかの実施形態では、第1の仮想ユーザインタフェースオブジェクトの選択に対応する第1の入力を検出したことに応じて、コンピュータシステムは、拡張現実環境から仮想モデル内の第1の仮想ユーザインタフェースオブジェクトの視点からの仮想モデルのシミュレートされた視野へのアニメーション化された遷移(例えば、表示されているような拡張現実環境のビューを有する初期位置からシミュレートされた視野を有する仮想モデル内の第1のユーザインタフェースオブジェクトの位置に移動する(例えば、飛行する)閲覧者の視点からのアニメーション)を表示する(816)。例えば、図5A29〜図5A31を参照して上述したように、デバイス100は、拡張現実環境(図5A29)から車両505の視点からの仮想モデルのシミュレートされた視野(図5A31)へのアニメーション化された遷移を表示する。拡張現実環境のビューと(例えば、仮想現実環境内の)仮想ユーザインタフェースオブジェクトの視点からの仮想モデルのシミュレートされたビューとの間のアニメーション化された遷移(例えば、飛行のアニメーション)を表示することにより、ビュー間のより滑らかな遷移をユーザに提供し、ユーザが状況を維持することを支援しながら、物理的世界(又は物理的世界に対応する拡張現実環境)から仮想現実環境に入る印象をユーザに与える。その閲覧体験に入る及び出るより滑らかな遷移を伴うより没入型の閲覧体験をユーザに提供し、ユーザが閲覧体験中に状況を維持することを支援することにより、デバイスの操作性を向上させ、ユーザ−デバイスインタフェースをより効率的にし(例えば、デバイスを操作する/デバイスと相互作用するときのユーザの混乱及び誤りを削減することによって)、加えて、ユーザがデバイスをより素早くかつ効率的に使用することを可能にすることによって、電力使用を削減し、デバイスのバッテリ寿命を改善する。
いくつかの実施形態では、仮想モデル内の第1の仮想ユーザインタフェースオブジェクトの視点からの仮想モデルのシミュレートされた視野を表示している間に、コンピュータシステムは、拡張現実環境を表示する要求(例えば、拡張現実環境に戻るためのアフォーダンスの選択などの、又は仮想モデルの関連する視点ビューを有さない仮想モデル内の位置の選択などの、仮想現実環境を出る要求)に対応する第2の入力を検出し(818)、拡張現実環境を表示する要求に対応する第2の入力に応じて、コンピュータシステムは、仮想モデルのシミュレートされた視野から拡張現実環境へのアニメーション化された遷移(例えば、シミュレートされた視野を有する仮想モデル内の第1のユーザインタフェースオブジェクトの位置から拡張現実環境のビューを有する位置に移動する(例えば、飛行する)閲覧者の視点からのアニメーション)を表示し、拡張現実環境を表示する。例えば、図5A37〜図5A40を参照して上述したように、人5060の視点からのシミュレートされた視野を表示している間に(図5A37)、デバイス100は、拡張現実環境を表示する要求に対応する入力5066を検出し(図5A38)、それに応じて、拡張現実環境へのアニメーション化された遷移を表示する(図5A39〜図5A40)。(例えば、仮想現実環境内の)仮想ユーザインタフェースオブジェクトの視点からの、仮想モデルのシミュレートされたビューと拡張現実環境のビューとの間のアニメーション化された遷移(例えば、飛行のアニメーション)を表示することにより、ビュー間のより滑らかな遷移をユーザに提供し、ユーザが状況を維持することを支援しながら、仮想現実環境を出て物理的世界(又は物理的世界に対応する拡張現実環境)に戻る印象をユーザに与える。その閲覧体験に入る及び出るより滑らかな遷移を伴うより没入型かつ直感的な閲覧体験をユーザに提供し、ユーザが閲覧体験中に状況を維持することを支援することにより、デバイスの操作性を向上させ、ユーザ−デバイスインタフェースをより効率的にし(例えば、デバイスを操作する/デバイスと相互作用するときのユーザの混乱及び誤りを削減することによって)、加えて、ユーザがデバイスをより素早くかつ効率的に使用することを可能にすることによって、電力使用を削減し、デバイスのバッテリ寿命を改善する。
いくつかの実施形態では、第2の入力に応じて拡張現実環境を表示することは、第2の入力を検出した後に1つ以上のカメラの視野に従って拡張現実環境を表示することを含む(820)(例えば、第1の入力を検出してから1つ以上のカメラの視野が変化した場合、表示された拡張現実環境は、第2の入力に応じて異なるビューから示されることになる)。例えば、図5A39から図5A40を参照して上述したように、図40のカメラの視野は、入力5050(シミュレートされた視点ビューに切り替えるための)が検出されたときの図28のカメラの視野から変化している。従って、図40の拡張現実環境は、(拡張現実環境のビューに戻るための)入力5066に応じて異なるビューから示されている。仮想現実環境から拡張現実環境に戻るときに拡張現実環境内に表示されているものを更新することにより、表示されているものと、ユーザが拡張現実ビューに戻る時点の物理的世界内のコンピュータシステム(又はより具体的には、カメラ(単数又は複数))の配置に基づいてユーザが見ることを期待することになるものとの間の一貫性を提供し、従って、ユーザに提供される視覚的フィードバックを改善する(例えば、コンピュータシステムをユーザ入力及びカメラ位置/方向に対してより反応するように見せることによって)。より直感的な閲覧体験をユーザに提供することにより、デバイスの操作性を向上させ、ユーザ−デバイスインタフェースをより効率的にし(例えば、デバイスを操作する/デバイスと相互作用するときのユーザの混乱及び誤りを削減することによって)、加えて、ユーザがデバイスをより素早くかつ効率的に使用することを可能にすることによって、電力使用を削減し、デバイスのバッテリ寿命を改善する。
いくつかの実施形態では、第2の入力を検出した後の1つ以上のカメラの視野は、第1の入力が検出されたときの1つ以上のカメラの視野とは異なる(822)(例えば、1つ以上のカメラの視野は、図5A28及び図5A40並びに動作820を参照して本明細書に記載されているように、仮想現実環境に切り替える直前に表示されていた(又はその表現が表示されていた)視野から変化している)。仮想現実環境から拡張現実環境に戻るときに拡張現実環境内に表示されているものを更新することにより、表示されているものと、ユーザが拡張現実ビューに戻る時点の物理的世界内のコンピュータシステム(又はより具体的には、カメラ(単数又は複数))の配置に基づいてユーザが見ることを期待することになるものとの間の一貫性を提供する。具体的には、拡張現実環境に戻った時点のカメラ(単数又は複数)の視野が、ユーザが拡張現実環境を出て仮想現実環境に入る直前のカメラ(単数又は複数)の以前の視野とは異なる場合、ユーザは、拡張現実環境に戻った時点で表示される異なる視野を見ることを当然期待することがある。そのように、戻った時点で拡張現実環境の異なるビューを提示することにより、ユーザに提供される視覚フィードバックを改善する(例えば、コンピュータシステムをユーザ入力及びカメラ位置/方向により反応するように見せることによって)。より直感的な閲覧体験をユーザに提供することにより、デバイスの操作性を向上させ、ユーザ−デバイスインタフェースをより効率的にし(例えば、デバイスを操作する/デバイスと相互作用するときのユーザの混乱及び誤りを削減することによって)、加えて、ユーザがデバイスをより素早くかつ効率的に使用することを可能にすることによって、電力使用を削減し、デバイスのバッテリ寿命を改善する。
いくつかの実施形態では、第1の仮想ユーザインタフェースオブジェクトは、コンピュータシステムのユーザからの入力とは無関係に、仮想モデル内で移動する(824)。いくつかの実施形態では、第1の仮想ユーザインタフェースオブジェクトは、拡張現実環境内で独立して移動する。例えば、仮想の人が(例えば、拡張現実環境内の)仮想モデル内で自律的に歩き回るとき、コンピュータシステムのユーザは、仮想モデル内の仮想の人の移動に対して制御を有さない(例えば、図5A31を参照して本明細書に記載されるように)。(例えば、拡張現実環境内で)ユーザ入力とは無関係に、仮想モデル内の仮想ユーザインタフェースオブジェクトの移動を表示することにより、仮想ユーザインタフェースオブジェクトが拡張現実環境内で自律的に移動するように見える、より直感的な閲覧体験をユーザに提示する。より直感的な閲覧体験をユーザに提供することにより、デバイスの操作性を向上させ、ユーザ−デバイスインタフェースをより効率的にし(例えば、デバイスを操作する/デバイスと相互作用するときのユーザの混乱及び誤りを削減することによって)、加えて、ユーザがデバイスをより素早くかつ効率的に使用することを可能にすることによって、電力使用を削減し、デバイスのバッテリ寿命を改善する。
いくつかの実施形態では、仮想モデル内の第1の仮想ユーザインタフェースオブジェクトの視点からの仮想モデルのシミュレートされた視野を表示している間に、第1の仮想ユーザインタフェースオブジェクトは、コンピュータシステムのユーザからの1つ以上の入力に応じて仮想モデル内で移動する(826)。いくつかの実施形態では、仮想モデル内の仮想の人又は仮想車両の視点からの仮想モデルを閲覧している間に、ユーザは、仮想モデル内の仮想の人又は車両の移動(例えば、移動の方向及び/又は速度)を制御する。例えば、ユーザは、仮想モデルの環境内でどこを仮想の人が歩く(例えば、図5A35〜図5A37を参照して本明細書に記載されるように)、又はどこを仮想車両が走行する(例えば、図5A31〜図5A33を参照して本明細書に記載されるように)かを制御してもよい。ユーザが(例えば、仮想現実環境内で)仮想モデル内の仮想ユーザインタフェースオブジェクトを移動させることを可能にすることにより、ユーザが仮想モデル内に存在しているかのように、ユーザが仮想モデルに関する追加情報にアクセスすることを可能にする、より没入型の閲覧体験をユーザに提供し、ユーザに提供される視覚的フィードバックを改善する(例えば、コンピュータシステムをユーザ入力に対してより反応するように見せることによって)。より没入型の閲覧体験及び改善された視覚的フィードバックをユーザに提供することにより、デバイスの操作性を向上させ、ユーザ−デバイスインタフェースをより効率的にし(例えば、デバイスを操作する/デバイスと相互作用するときのユーザの混乱及び誤りを削減することによって)、加えて、ユーザがデバイスをより素早くかつ効率的に使用することを可能にすることによって、電力使用を削減し、デバイスのバッテリ寿命を改善する。
いくつかの実施形態では、シミュレートされた視野を表示している間に、コンピュータシステムは、コンピュータシステムの少なくとも一部分の移動(例えば、1つ以上のカメラ又は入力デバイスなどのコンピュータシステムの1つ以上の構成要素の移動)を検出し(828)、コンピュータシステムの移動を検出したことに応じて、コンピュータシステムの移動に従って、第1の仮想ユーザインタフェースオブジェクトの視点からの仮想モデルのシミュレートされた視野を変更する。いくつかの実施形態では、仮想現実環境内のシミュレートされた視野は、コンピュータシステム又はコンピュータシステムの1つ以上の構成要素の姿勢(例えば、向き及び/又は位置)の変化に従って更新される。例えば、ユーザがコンピュータシステムを上方に持ち上げる場合、シミュレートされた視野は、仮想モデル内の仮想の人が自身の頭部を上方を見るように持ち上げたかのように、更新される。コンピュータシステムの姿勢の変化は、任意選択的に、ジャイロスコープ、磁力計、慣性測定ユニット、及び/又は1つ以上のカメラの視野内のオブジェクトに基づいてデバイスの移動を検出するデバイスの1つ以上のカメラに基づいて判定される。例えば、図5A35〜図5A37を参照して上述したように、左に向かうデバイス100の移動及びデバイス100の回転に応じて、人5060の視点からの仮想モデルの表示されたシミュレートされた視点ビューが更新される。コンピュータシステムの移動に応じて仮想ユーザインタフェースオブジェクトの視点から仮想現実環境内に表示されているものを変更することにより、ユーザが仮想モデル内に存在しているかのように、ユーザが仮想モデルに関する追加情報にアクセスすることを可能にする、より没入型の閲覧体験をユーザに提供し、ユーザに提供される視覚的フィードバックを改善する(例えば、コンピュータシステムをユーザ入力に対してより反応するように見せることによって)。より没入型の閲覧体験及び改善された視覚的フィードバックをユーザに提供することにより、デバイスの操作性を向上させ、ユーザ−デバイスインタフェースをより効率的にし(例えば、デバイスを操作する/デバイスと相互作用するときのユーザの混乱及び誤りを削減することによって)、加えて、ユーザがデバイスをより素早くかつ効率的に使用することを可能にすることによって、電力使用を削減し、デバイスのバッテリ寿命を改善する。
いくつかの実施形態では、仮想モデル内の第1の仮想ユーザインタフェースオブジェクトの視点からの仮想モデルのシミュレートされた視野(例えば、図5A33に示すような車両5050の視点からのシミュレートされたビュー)を表示している間に、コンピュータシステムは、仮想モデル内の第2の仮想ユーザインタフェースオブジェクト(例えば、仮想モデル内の仮想の人又は仮想車両)(例えば、人5060、図5A34)の選択に対応する第3の入力(例えば、入力5062、図5A34)を検出し(830)、第2の仮想ユーザインタフェースオブジェクトの選択に対応する第3の入力を検出したことに応じて、仮想モデル内の第2の仮想ユーザインタフェースオブジェクトの視点からの仮想モデルの第2のシミュレートされた視野(例えば、図5A35に示すような人5060の視点からのシミュレートされたビュー)を表示する(例えば、かつ仮想モデル内の第1の仮想ユーザインタフェースオブジェクトの視点からの仮想モデルのシミュレートされた視野を表示することを停止する)。ユーザが仮想モデル内の複数の仮想ユーザインタフェースオブジェクトの視点から仮想モデルを閲覧することを可能にし、ユーザがそのビューの対応する仮想ユーザインタフェースオブジェクトを選択することによって、様々な視点ビュー間で切り替えることを可能にすることにより、ユーザが仮想モデル内に存在しているかのように、ユーザが複数の視点から仮想モデルに関する追加情報にアクセスすることを可能にする、より没入型の閲覧体験をユーザに提供し、ユーザに提供される視覚的フィードバックを改善する(例えば、コンピュータシステムをユーザ入力に対してより反応するように見せることによって)。より没入型の閲覧体験及び改善された視覚的フィードバックをユーザに提供することにより、デバイスの操作性を向上させ、ユーザ−デバイスインタフェースをより効率的にし(例えば、デバイスを操作する/デバイスと相互作用するときのユーザの混乱及び誤りを削減することによって)、加えて、ユーザがデバイスをより素早くかつ効率的に使用することを可能にすることによって、電力使用を削減し、デバイスのバッテリ寿命を改善する。
いくつかの実施形態では、仮想モデル内の第1の仮想ユーザインタフェースオブジェクトの視点からの仮想モデルのシミュレートされた視野(例えば、図5A37に示すような人5060の視点からのシミュレートされたビュー)を表示している間に、コンピュータシステムは、関連するシミュレートされた視野を表示することができる仮想ユーザインタフェースオブジェクト以外の仮想モデル内の位置の選択に対応する第4の入力を検出し(832)(例えば、入力5066を参照して本明細書に記載されるように、図5A38)、第4の入力を検出したことに応じて、拡張現実環境(例えば、図5A40に示すような拡張現実環境のビュー)を再表示する(例えば、かつ仮想モデル内の第1の仮想ユーザインタフェースオブジェクトの視点からの仮想モデルのシミュレートされた視野を表示することを停止する)。いくつかの実施形態では、仮想モデル内のいくつかの仮想ユーザインタフェースオブジェクトは、それらのオブジェクトの視点からシミュレートされた視野を表示することができるものである。いくつかの実施形態では、いくつかの仮想ユーザインタフェースオブジェクトを含む仮想モデル内の他の位置は、関連するシミュレートされた視野を有さない、又はそれらの視点からのシミュレートされた視野の表示を可能にせず、いくつかの実施形態では、ユーザは、そのような位置又はオブジェクトを選択して、仮想現実環境を出て、拡張現実環境を再表示することができる。例えば、仮想の人の選択は、仮想の人の視点からのシミュレートされた視野の表示をもたらし、芝の部分の選択は、仮想現実環境から出ること及び拡張現実環境の再表示をもたらす。いくつかの実施形態では、デバイスは、「出口」ボタン若しくはアフォーダンスの選択に応じて、又はタッチ感知面の縁部から開始する縁部スワイプジェスチャなどのジェスチャ、若しくは少なくとも所定の量だけ互いに向かう2つ以上の接触の移動を含むピンチジェスチャに応じて、拡張現実環境を再表示し、仮想モデル内の第1の仮想ユーザインタフェースオブジェクトの視点からの仮想モデルのシミュレートされた視野を表示することを停止する。対応する視点ビューが表示されない仮想モデル内の位置を選択することによって、仮想現実環境から拡張現実環境にユーザが戻ることを可能にすることにより、更なる入力又は追加の表示されたコントロールを必要とせずに、拡張現実環境に遷移して戻る直感的かつ端的な方法をユーザに提供する。動作を実行するために必要な入力の数を削減し、追加の表示されるコントロールによりユーザインタフェースを雑然とさせることなく、追加の制御オプションを提供することにより、デバイスの操作性を向上させ、ユーザ−デバイスインタフェースをより効率的にし(例えば、デバイスを操作する/デバイスと相互作用するときのユーザの混乱及び誤りを削減することによって)、加えて、ユーザがデバイスをより素早くかつ効率的に使用することを可能にすることによって、電力使用を削減し、デバイスのバッテリ寿命を改善する。
図8A〜8Cにおける動作について説明された特定の順序は単なる例であり、説明された順序は、動作を実行することができる唯一の順序であることを示すことを意図するものではないことを理解されたい。当業者であれば、本明細書に記載される動作を再順序付けるための様々な方法を認識するであろう。加えて、本明細書に記載される他の方法(例えば、方法600、700、900、1000、1100、1200、及び1300)に関して本明細書に記載される他のプロセスの詳細はまた、図8A〜図8Cに関して上記した方法800にも、類似の様式で適用可能であることに留意されたい。例えば、方法800に関連して上述した接触、ジェスチャ、ユーザインタフェースオブジェクト、強度閾値、フォーカスインジケータ、及び/又はアニメーションは、任意選択的に、本明細書に記載の他の方法(例えば、方法600、700、900、1000、1100、1200、及び1300)に関連して本明細書に記載の接触、ジェスチャ、ユーザインタフェースオブジェクト、強度閾値、フォーカスインジケータ、及び/又はアニメーションの特性のうちの1つ以上を有する。簡潔にするために、それらの詳細はここでは繰り返さない。
図9A〜図9Eは、いくつかの実施形態に係る、仮想ユーザインタフェースオブジェクトの3次元操作の方法900を示すフロー図である。方法900は、表示生成コンポーネント(例えば、ディスプレイ、プロジェクタ、ヘッドアップディスプレイなど)と、入力デバイス(例えば、タッチ感知式リモートコントロールなどのタッチ感知面、若しくは表示生成コンポーネントとしても機能するタッチスクリーンディスプレイ、マウス、ジョイスティック、ワンドコントローラ、及び/又はユーザの手などのユーザの1つ以上の特徴の位置を追跡するカメラ)と、任意選択的に、1つ以上のカメラ(例えば、カメラの視野内にあるコンテンツの少なくとも一部分のライブプレビューを連続的に提供し、かつ任意選択的に、カメラの視野内のコンテンツをキャプチャする画像フレームの1つ以上のストリームを含むビデオ出力を生成するビデオカメラ)と、任意選択的に、1つ以上の姿勢センサと、任意選択的に、タッチ感知面との接触の強度を検出する1つ以上のセンサと、任意選択的に、1つ以上の触知出力生成器と、を含む(かつ/又はそれらと通信している)コンピュータシステム(例えば、ポータブル多機能デバイス100、図1A、デバイス300、図3A、又は、ヘッドセット5008及び入力デバイス5010を含むマルチコンポーネントコンピュータシステム、図5A2)において実行される。いくつかの実施形態では、入力デバイス(例えば、タッチ感知面を有する)及び表示生成コンポーネントは、タッチ感知ディスプレイに統合される。図3B〜図3Dに関して上述したように、いくつかの実施形態では、方法900は、表示生成コンポーネント、1つ以上のカメラ、1つ以上の入力デバイス、及び任意選択的に1つ以上の姿勢センサなどのそれぞれの構成要素が、それぞれ、コンピュータシステム301に含まれる、又はコンピュータシステム301と通信しているのいずれかである、コンピュータシステム301(例えば、コンピュータシステム301−a、301−b、又は301−c)で実行される。
いくつかの実施形態では、表示生成コンポーネントは、タッチスクリーンディスプレイであり、入力デバイス(例えば、タッチ感知面を有する)は、表示生成コンポーネント上にある、又はそれと統合されている。いくつかの実施形態では、表示生成コンポーネントは、入力デバイスとは別個である(例えば、図4B及び図5A2に示すように)。方法900の一部の動作が任意選択的に組み合わされ、かつ/又は、一部の動作の順序が任意選択的に変更される。
説明の便宜上、実施形態のいくつかは、タッチ感知ディスプレイシステム112及び1つ以上の一体型カメラを有するコンピュータシステム上(例えば、タッチスクリーン112を有するデバイス100上)で実行される動作を参照して説明する。しかしながら、類似の動作は、任意選択的に、ヘッドセット5008のディスプレイ上に図に示すユーザインタフェースを表示している間に、入力デバイス5010のタッチ感知面上の接触を検出したことに応じて、ヘッドセット5008とタッチ感知面を有する別個の入力デバイス5010とを有するコンピュータシステム(例えば、図5A2に示すような)上で実行される。同様に、類似の動作は、任意選択的に、コンピュータシステムの1つ以上の他の構成要素(例えば、入力デバイス)とは別個に(例えば、ヘッドセット内に)実装される1つ以上のカメラを有するコンピュータシステム上で実行され、いくつかのそのような実施形態では、「コンピュータシステムの移動」は、コンピュータシステムの1つ以上のカメラの移動、又はコンピュータシステムと通信する1つ以上のカメラの移動に対応する。
後述するように、方法900は、仮想ユーザインタフェースオブジェクトの一部分の選択及び2次元での入力の移動に基づいて、拡張現実環境(例えば、物理的世界で利用可能ではない、ユーザに追加情報を提供する補足情報で、現実が拡張される)内の、本明細書で仮想オブジェクトとも呼ばれる、仮想ユーザインタフェースオブジェクトの外観を(コンピュータシステムのディスプレイ上で)調整することに関する。仮想ユーザインタフェースオブジェクトの一部分の選択及び2次元での入力の移動に基づいて仮想ユーザインタフェースオブジェクトの外観を調整すること(例えば、仮想ユーザインタフェースオブジェクトを移動させること、又は仮想ユーザインタフェースオブジェクトのサイズを調整すること)により、ユーザが仮想ユーザインタフェースオブジェクトの外観を調整するための直感的な方法を提供し(例えば、入力デバイス上の接触の移動又はリモートコントロールの移動を介して)、それによって、デバイスの操作性を向上させ、ユーザ−デバイスインタフェースをより効率的にし(例えば、表示されたユーザインタフェースを追加のコントロールで雑然とさせるのではなく、ユーザが仮想ユーザインタフェースオブジェクトと直接相互作用することを可能にすることによって)、加えて、ユーザがデバイスをより素早くかつ効率的に使用することを可能にすることによって、電力使用を削減し、デバイスのバッテリ寿命を改善する。
コンピュータシステム(例えば、デバイス100、図5B2)は、表示生成コンポーネント(例えば、ディスプレイ112、図5B2)を介して、仮想3次元空間内に第1の仮想ユーザインタフェースオブジェクト(例えば、ユーザインタフェースオブジェクト5210、図5B2)を表示する(902)。例えば、いくつかの実施形態では、第1の仮想ユーザインタフェースオブジェクトは、コンピュータシステムに結合された1つ以上のカメラの視野内の物理的オブジェクト(例えば、基準マット5208a、図5B2)に取り付けられる又はそれをカバーするように見える、2次元又は3次元仮想オブジェクトである。第1の仮想ユーザインタフェースオブジェクト5210の位置及び/又は向きは、任意選択的に、1つ以上のカメラの視野内の物理的オブジェクト5208aの位置、形状、及び/又は向きに基づいて決定される。
仮想3次元空間内に第1の仮想ユーザインタフェースオブジェクト5210を表示している間に(904)、コンピュータシステムは、入力デバイスを介して、第1の仮想ユーザインタフェースオブジェクト5210の対応する部分の選択及び2次元での第1の入力の移動(例えば、平面タッチ感知面を横切る接触の移動、又はリモートコントロールの周囲の3次元物理的空間の直交する2つの次元の移動成分を含むリモートコントロールの移動)を含む第1の入力を検出する。
例えば、図5B6に示すように、接触5222による入力は、仮想ユーザインタフェースオブジェクト5210の上面を選択し(仮想ボックス5210の移動平面を示す移動投影5226によって示すように)、接触5222は、矢印5228によって示すように、タッチ感知面112を横切って2次元で移動する。
別の実施例では、図5B10に示すように、接触5232による入力は、仮想ユーザインタフェースオブジェクト5210の前面を選択し(移動投影5236によって示すように)、接触5232は、矢印5238によって示すように、タッチ感知面112を横切って2次元で移動する。
図5B18〜図5B20に示す別の実施例では、接触5244による入力は、仮想ユーザインタフェースオブジェクト5210の上面を選択し(接触の後続の移動に応じて仮想ボックス5210がサイズ変更されることになる軸を示すサイズ変更投影5246によって示すように)、接触5244は、矢印5248によって示すように、タッチ感知面112を横切って2次元で移動する。
図5B28〜図5B30に示す別の実施例では、接触5262による入力は、仮想ユーザインタフェースオブジェクト5260の前面を選択し(仮想ボックス5260がサイズ変更されることになる軸を示すサイズ変更投影5266によって示すように)、デバイス100は、矢印5268によって示すように、2次元で移動する。
2次元での第1の入力の移動を含む第1の入力を検出したことに応じて(906)、第1の仮想ユーザインタフェースオブジェクトの対応する部分が第1の仮想ユーザインタフェースオブジェクトの第1の部分(例えば、図5B6に示すような仮想ユーザインタフェースオブジェクト5210の上面などの立方体オブジェクトの第1の側面)であるとの判定に従って、コンピュータシステムは、2次元での第1の入力の移動(例えば、矢印5228によって示すような、図5B6)及び選択された第1の仮想ユーザインタフェースオブジェクトの第1の部分に基づいて決定された第1の方向に、(例えば、サイズ変更、平行移動、及び/又は傾斜させることによって)第1の仮想ユーザインタフェースオブジェクトの外観を調整する。第1の方向の第1の仮想ユーザインタフェースオブジェクトの調整は、仮想3次元空間の2次元の第1のセット内の移動に制約される(例えば、移動投影5226によって示すように)。第1の仮想ユーザインタフェースオブジェクト5210の対応する部分が、第1の仮想ユーザインタフェースオブジェクトの第1の部分とは別個の第1の仮想ユーザインタフェースオブジェクトの第2の部分(例えば、図5B10に示すような仮想ユーザインタフェースオブジェクト5210の前面などの立方体オブジェクトの第1の側面の隣の又はそれと反対側の立方体オブジェクトの第2の側面)であるとの判定に従って、コンピュータシステムは、第1の方向とは異なる第2の方向に、(例えば、サイズ変更、平行移動、及び/又は傾斜させることによって)第1の仮想ユーザインタフェースオブジェクトの外観を調整する。第2の方向は、2次元での第1の入力の移動(例えば、矢印5238によって示すような、図5B10)、及び選択された第1の仮想ユーザインタフェースオブジェクトの第2の部分に基づいて決定される。第2の方向の第1の仮想ユーザインタフェースオブジェクト5210の調整は、仮想3次元空間の2次元の第1のセットとは異なる仮想3次元空間の2次元の第2のセット内の移動に制約される(例えば、移動投影5236によって示すように)。例えば、第1の方向及び第2の方向のそれぞれの方向の第1の仮想ユーザインタフェースオブジェクト5210の外観になされる調整量は、選択された第1の仮想ユーザインタフェースオブジェクトの対応する部分に従って選択される、仮想3次元空間の少なくとも1つの次元に制約される(例えば、移動投影によって示すように)。いくつかの実施形態では、仮想3次元空間内の立方体オブジェクトの移動は、立方体オブジェクトの選択された側面の平面に制約される(例えば、図5B6〜図5B8及び図5B10及び図5B11によって示すように)。いくつかの実施形態では、立方体オブジェクトの押し出しは、立方体オブジェクトの選択された側面の平面に垂直な方向に制約される(例えば、図5B19及び図5B20及び図5B29及び図5B30に示すように)。いくつかの実施形態では、第1の仮想ユーザインタフェースオブジェクトが選択されている間に、第1の仮想ユーザインタフェースオブジェクトの選択の視覚的インジケーションが表示される。例えば、第1の仮想ユーザインタフェースオブジェクトの縁部に沿った1つ以上の線が強調表示され(例えば、移動投影5226及び5236によって示すように)、及び/又は第1の仮想ユーザインタフェースオブジェクトが強調表示される。いくつかの実施形態では、コンピュータシステムは、第1の仮想ユーザインタフェースオブジェクトの対応する部分の選択及び2次元での第1の入力の移動を含む複数の入力を検出し、複数の入力は、第1の仮想ユーザインタフェースオブジェクトの対応する部分が、第1の仮想ユーザインタフェースオブジェクトの第1の部分である少なくとも1つの入力と、第1の仮想ユーザインタフェースオブジェクトの対応する部分が、第1の仮想ユーザインタフェースオブジェクトの第2の部分である少なくとも1つの入力と、を含む。
いくつかの実施形態では、第1の部分は、第1の仮想ユーザインタフェースオブジェクトの第1の側面(例えば、上面5224、図5B6)であり(908)、第2の部分は、第1の仮想ユーザインタフェースオブジェクトの第2の側面(例えば、前面5234、図5B10)であり、第1の側面は、第2の側面に平行ではない(例えば、第1の側面は、第2の側面に垂直である)。仮想ユーザインタフェースオブジェクトの選択された部分がオブジェクトの第1の側面、又はオブジェクトの第2の側面(第1の側面に平行ではない)であるかに応じて、仮想ユーザインタフェースの外観を異なるように調整することにより、ユーザが第1の仮想ユーザインタフェースオブジェクトの外観を調整するための直感的な方法を提供する(例えば、ユーザが特定の平面内で又は特定の軸に沿って第1の仮想ユーザインタフェースオブジェクトの外観を調整することを可能にすることによって)。ユーザが第1の仮想ユーザインタフェースオブジェクトを調整することを可能にすることにより(例えば、第1の仮想ユーザインタフェースオブジェクトの選択された部分との直接相互作用により)、追加の表示されたコントロールによりユーザインタフェースを雑然とさせることを回避し、それにより、デバイスの操作性を向上させ、ユーザ−デバイスインタフェースをより効率的にし、加えて、ユーザがデバイスをより素早くかつ効率的に使用することを可能にすることによって、電力使用を削減し、デバイスのバッテリ寿命を改善する。
いくつかの実施形態では、第1の仮想ユーザインタフェースオブジェクトの外観を調整することは、第1の仮想ユーザインタフェースオブジェクトの外観を調整し(例えば、第1の仮想ユーザインタフェースオブジェクトを移動又はサイズ変更する)、それにより、第1の仮想ユーザインタフェースオブジェクトの位置が、仮想ユーザインタフェースオブジェクトの選択された対応する部分に平行な平面にロックされること(例えば、第1の仮想ユーザインタフェースオブジェクトの位置をロックすることは、仮想ユーザインタフェースオブジェクトの選択された対応する部分に平行な平面に対してである)を含む(910)。例えば、図5B6〜図5B8では、仮想ユーザインタフェースオブジェクト5210の位置は、仮想ユーザインタフェースオブジェクト5210の選択された上面5224に平行な、移動投影5226によって示す平面にロックされる。いくつかの実施形態では、平行平面は、選択された対応する部分の表面に垂直な線に対して垂直であり、かつその表面と接触している。第1の入力の2次元移動は、仮想ユーザインタフェースオブジェクトの選択された対応する部分に平行な平面上の第1の仮想ユーザインタフェースオブジェクトの2次元移動に対応する(例えば、第1の入力の2次元移動を仮想ユーザインタフェースオブジェクトの選択された対応する部分に平行な平面上の第1の仮想ユーザインタフェースオブジェクトの2次元移動にマッピングすることによって)。例えば、矢印5228及び5230によって示すような接触5222による入力の移動は、仮想オブジェクト5210を移動投影5226によって示す平面上で移動させる。いくつかの実施形態では、第1の方向に第1の仮想インタフェースオブジェクトの外観を調整することは、第1の平面に沿って第1の仮想インタフェースオブジェクトの外観を調整することを含む(例えば、及び第2の方向に調整することは、第1の平面に平行ではない(例えば、垂直な)第2の平面に沿って調整することを含む)。例えば、図5B6〜図5B8では、仮想ユーザインタフェースオブジェクト5210は、移動投影5226によって示すように、第1の平面に沿って移動され、図5B10及び図5B11では、仮想ユーザインタフェースオブジェクト5210は、移動投影5236によって示すように、第2の平面に沿って移動される。第1の仮想ユーザインタフェースオブジェクトの外観を調整し、それにより、第1の仮想ユーザインタフェースオブジェクトの位置が、仮想ユーザインタフェースの選択された対応する部分に平行な平面にロックされ、それにより、第1の仮想ユーザインタフェースオブジェクトの移動がその平面上にあることにより、2次元表面(例えば、タッチ感知面112)上の入力を使用して、3次元空間内でオブジェクトを操作することを可能にする。2次元表面上の入力を使用して、3次元空間内でオブジェクトを操作することを可能にすることにより、ユーザが第1の仮想ユーザインタフェースオブジェクトの外観を調整するための直感的方法を提供し(例えば、第1の仮想ユーザインタフェースオブジェクトの移動を平面に制限し、それにより、第1の仮想ユーザインタフェースオブジェクトの外観が2次元での入力に応じてどのように調整されることになるかをユーザが予測し、理解することができることによって)、それにより、デバイスの操作性を向上させ、ユーザ−デバイスインタフェースをより効率的にし、加えて、ユーザがデバイスをより素早くかつ効率的に使用することを可能にすることによって、電力使用を削減し、デバイスのバッテリ寿命を改善する。
いくつかの実施形態では、第1の仮想ユーザインタフェースオブジェクトの外観を調整することは、(例えば、第1の入力が検出されている間に)仮想ユーザインタフェースオブジェクトの選択された対応する部分に平行な平面の視覚的インジケーションを含む、移動平面インジケータ(例えば、オブジェクトの縁部から延びる1つ以上の線(移動投影5226などの)、平面内に表示される形状輪郭、及び/又は平面内に表示されるグリッド)を表示することを含む(912)。仮想ユーザインタフェースオブジェクトの選択された対応する部分に平行な平面の視覚的インジケーションを表示することにより、ユーザに提供される視覚的フィードバックを改善し(例えば、2次元での入力に応じて第1の仮想ユーザインタフェースオブジェクトの外観がどのように調整されることになるかのインジケーションを提供することによって)、デバイスの操作性を向上させ、ユーザ−デバイスインタフェースをより効率的にし(例えば、ユーザが必要な入力により意図された結果を達成するのを支援し、デバイスを操作する/デバイスと相互作用するときのユーザの誤りを削減することによって)、加えて、ユーザがデバイスをより素早くかつ効率的に使用することを可能にすることによって、電力使用を削減し、デバイスのバッテリ寿命を改善する。
いくつかの実施形態では、移動平面インジケータは、(移動投影5226などの)仮想ユーザインタフェースオブジェクトの選択された対応する部分に平行な平面に沿って、第1の仮想ユーザインタフェースオブジェクトから(例えば、第1の仮想ユーザインタフェースオブジェクトの表面及び/又は側面から)延びる1つ以上の投影(例えば、線)を含む(914)。第1の仮想ユーザインタフェースオブジェクトから延びる投影を表示すること(例えば、第1の仮想ユーザインタフェースオブジェクトが2次元での入力に応じて移動することになる平面を示すために)により、デバイスの操作性を向上させ、ユーザ−デバイスインタフェースをより効率的にし(例えば、ユーザが必要な入力により意図された結果を達成するのを支援し、デバイスを操作する/デバイスと相互作用するときのユーザの誤りを削減することによって)、加えて、ユーザがデバイスをより素早くかつ効率的に使用することを可能にすることによって、電力使用を削減し、デバイスのバッテリ寿命を改善する。
いくつかの実施形態では、第1の入力の移動を含む第1の入力を検出したことに応じて、コンピュータシステムは、第1の入力がサイズ調整基準を満たすか否かを判定する(916)。いくつかの実施形態では、第1の入力がサイズ調整基準を満たすか否かを判定することは、第1の入力が持続時間閾値を上回って増大する持続時間を有する(例えば、第1の入力は、長い押圧入力である)か否かを判定することを含む。いくつかの実施形態では、コンピュータシステムは、タッチ感知面との接触の強度を検出するように構成された1つ以上のセンサを含み、第1の入力がサイズ調整基準を満たすか否かを判定することは、第1の入力が強度閾値(例えば、軽い押圧強度閾値ITL及び/又は深い押圧強度閾値ITD)を上回って増大する特性強度(例えば、図4D及び図4Eに関して説明したような)を有するか否かを判定することを含む。第1の入力がサイズ調整基準を満たすとの判定に従って、コンピュータシステムは、第1の仮想ユーザインタフェースオブジェクトの外観を調整し、それにより、第1の仮想ユーザインタフェースオブジェクトの位置は、仮想3次元空間内のアンカーポイントにロックされ(例えば、第1の仮想ユーザインタフェースオブジェクトの位置は、仮想3次元空間内のアンカーポイントにロックされる)、第1の仮想ユーザインタフェースオブジェクトのサイズは、選択された対応する部分に垂直な軸に沿って調整される(例えば、軸は、第1の仮想ユーザインタフェースオブジェクトの選択された対応する部分の表面(又は選択された対応する部分の重心)に対して垂直である)。例えば、図5B18及び図5B19では、接触5244による入力が持続時間基準を満たすとの判定に従って、入力がサイズ調整基準を満たすと判定され(例えば、接触5244によって選択される仮想ユーザインタフェースオブジェクト5210の上面5224に垂直なサイズ変更投影5246の表示によって示すように)、図5B19及び図5B20では、仮想ユーザインタフェースオブジェクト5210のサイズは、サイズ変更投影5246によって示す軸に沿って調整される。2次元での入力の移動を含む入力に応じてユーザが仮想ユーザインタフェースオブジェクトのサイズを調整することを可能にすることにより、ユーザが仮想ユーザインタフェースオブジェクトのサイズを調整するための直感的な方法を提供し、ユーザに提供されるフィードバックを改善し(例えば、コンピュータシステムをユーザ入力に対してより反応するように見せることにより)、デバイスの操作性を向上させ、ユーザ−デバイスインタフェースをより効率的にし(例えば、ユーザが必要な入力により意図された結果を達成するのを支援し、デバイスを操作する/デバイスと相互作用するときのユーザの誤りを削減することによって)、加えて、ユーザがデバイスをより素早くかつ効率的に使用することを可能にすることによって、電力使用を削減し、デバイスのバッテリ寿命を改善する。
いくつかの実施形態では、アンカーポイントは、第1の仮想ユーザインタフェースオブジェクトの選択された対応する部分の反対側の第1の仮想ユーザインタフェースオブジェクトの部分上に位置する(918)(例えば、アンカーポイントは、仮想ユーザインタフェースオブジェクトの選択された側面とは反対側の第1の仮想ユーザインタフェースオブジェクトの側面上に位置する)。例えば、図5B19では、仮想ユーザインタフェースオブジェクト5210の選択された側面は、上面5224であり(例えば、上面5224に垂直なサイズ変更投影5246の表示によって示すように)、アンカーポイントは、上面5224の反対側の仮想ユーザインタフェースオブジェクト5210の側面(例えば、基準マット5208の表示されたバージョン5208bに隣接する仮想ユーザインタフェースオブジェクト5210の側面)上に位置する。いくつかの実施形態では、アンカーポイントは、仮想ユーザインタフェースオブジェクトの選択された対応する部分上に位置する。第1の仮想ユーザインタフェースオブジェクトの一部分を選択された部分とは反対側の第1の仮想ユーザインタフェースオブジェクトの部分上の点に固定することにより、ユーザが仮想ユーザインタフェースオブジェクトの外観を調整するための直感的な方法を提供し(例えば、特に第1の仮想ユーザインタフェースオブジェクトが平面に対して示されているときに、選択された表面から外向きに引っ張ることによってオブジェクトを延ばす感覚をユーザに与えることによって)、デバイスの操作性を向上させ、ユーザ−デバイスインタフェースをより効率的にし(例えば、ユーザが必要な入力により意図された結果を達成するのを支援し、デバイスを操作する/デバイスと相互作用するときのユーザの誤りを削減することによって)、加えて、ユーザがデバイスをより素早くかつ効率的に使用することを可能にすることによって、電力使用を削減し、デバイスのバッテリ寿命を改善する。
いくつかの実施形態では、アンカーポイントは、第1の仮想ユーザインタフェースオブジェクトの重心(例えば、第1の仮想ユーザインタフェースオブジェクトの位置がロックされる時の第1の仮想ユーザインタフェースオブジェクトの重心)である(920)。例えば、アンカーポイントは、仮想ユーザインタフェースオブジェクト5210の重心である。第1の仮想ユーザインタフェースオブジェクトの一部分を選択された部分とは反対側の第1の仮想ユーザインタフェースオブジェクトの重心の点に固定することにより、ユーザが仮想ユーザインタフェースオブジェクトの外観を調整するための直感的な方法を提供し(例えば、特に第1の仮想ユーザインタフェースオブジェクトが空間内に吊り下げられているときに、選択された表面から外向きに引っ張ることによってオブジェクトを延ばす感覚をユーザに与えることによって)、デバイスの操作性を向上させ、ユーザ−デバイスインタフェースをより効率的にし(例えば、ユーザが必要な入力により意図された結果を達成するのを支援し、デバイスを操作する/デバイスと相互作用するときのユーザの誤りを削減することによって)、加えて、ユーザがデバイスをより素早くかつ効率的に使用することを可能にすることによって、電力使用を削減し、デバイスのバッテリ寿命を改善する。
いくつかの実施形態では、第1の仮想ユーザインタフェースオブジェクトの外観を調整することは、(例えば、第1の入力が検出されている間に)移動軸インジケータを表示することを含み(922)、移動軸インジケータは、第1の仮想ユーザインタフェースオブジェクトの選択された対応する部分に垂直な軸の視覚的インジケーション(例えば、オブジェクトの縁部から延びる1つ以上の線、平面内に表示される形状輪郭、及び/又は平面内に表示されるグリッド)を含む。例えば、移動軸インジケータは、図5B19では、接触5244によって選択された仮想ユーザインタフェースオブジェクトの上面5224に垂直である、サイズ変更投影5246を含む。第1の仮想ユーザインタフェースオブジェクトの選択された対応する部分に垂直な軸の移動軸インジケータを表示することにより、ユーザに提供される視覚的フィードバックを改善し(例えば、2次元での入力に応じて第1の仮想ユーザインタフェースオブジェクトの外観がどのように調整されることになるかのインジケーションを提供することによって)、デバイスの操作性を向上させ、ユーザ−デバイスインタフェースをより効率的にし(例えば、ユーザが必要な入力により意図された結果を達成するのを支援し、デバイスを操作する/デバイスと相互作用するときのユーザの誤りを削減することによって)、加えて、ユーザがデバイスをより素早くかつ効率的に使用することを可能にすることによって、電力使用を削減し、デバイスのバッテリ寿命を改善する。
いくつかの実施形態では、移動軸インジケータは、第1の仮想ユーザインタフェースオブジェクトの対応する部分(例えば、仮想ユーザインタフェースオブジェクト5210の上面5224)に垂直な軸に平行な1つ以上の投影(例えば、サイズ変更投影5246、図5B19)を含み(924)、1つ以上の投影は、第1の仮想ユーザインタフェースオブジェクト(の表面及び/又は側面)から延びる。第1の仮想ユーザインタフェースオブジェクトから延びる投影を表示することにより、ユーザに提供される視覚的フィードバックを改善し(例えば、第1の仮想ユーザインタフェースオブジェクトに対して配置されたインジケータを使用して、入力が第1の仮想ユーザインタフェースオブジェクトの外観をどのように変更することになるかを示すことによって)、デバイスの操作性を向上させ、ユーザ−デバイスインタフェースをより効率的にし(例えば、ユーザが必要な入力により意図された結果を達成するのを支援し、デバイスを操作する/デバイスと相互作用するときのユーザの誤りを削減することによって)、加えて、ユーザがデバイスをより素早くかつ効率的に使用することを可能にすることによって、電力使用を削減し、デバイスのバッテリ寿命を改善する。
いくつかの実施形態では、コンピュータシステムは、触知出力を生成するための1つ以上の触知出力生成器163を含む(926)。第1の仮想ユーザインタフェースオブジェクトの外観を対応する方向に調整している間に、コンピュータシステムは、第1の入力の移動が第1の仮想ユーザインタフェースオブジェクトの対応する部分に、仮想3次元空間内に存在する仮想要素(例えば、別の仮想ユーザインタフェースオブジェクト及び/又は基準マット5208の表示されたバージョン5208bのグリッドラインなどの仮想グリッドラインなどの、仮想3次元空間内に表示されている又は表示されていない仮想要素)と衝突させると判定する。第1の入力の移動が第1の仮想ユーザインタフェースオブジェクトの対応する部分に仮想要素と衝突させるとの判定に従って、コンピュータシステムは、1つ以上の触知出力生成器163により、触知出力を生成する。第1の仮想ユーザインタフェースオブジェクトの一部分が仮想要素と衝突させられたとの判定に従って触知出力を生成することにより、ユーザに提供されるフィードバックを改善する(例えば、第1の仮想ユーザインタフェースオブジェクトが移動した距離及び方向を示すことによって(第1の仮想ユーザインタフェースオブジェクトが仮想グリッドラインを横切って移動するとき)、及び/又は、その環境内の仮想ユーザインタフェースオブジェクトと仮想要素との相対位置の直感的な理解をユーザに与えることによって)。これによって、デバイスの操作性が向上し、ユーザ−デバイスインタフェースをより効率的にし(例えば、ユーザが所望の位置にオブジェクトを移動させることを支援することによって)、加えて、ユーザがデバイスをより素早くかつ効率的に使用することを可能にすることによって、電力使用を削減し、デバイスのバッテリ寿命を改善する。
いくつかの実施形態では、仮想3次元空間を表示している間に(928)(例えば、仮想3次元空間内の第1の仮想ユーザインタフェースオブジェクトの作成及び/又は表示の前に)、コンピュータシステムは、入力デバイスを介して、仮想3次元空間内の第1の位置(例えば、第1の仮想ユーザインタフェースオブジェクトの対応する部分に対応する位置、又は第1の仮想ユーザインタフェースオブジェクトに対応しない位置)に向けられた第2の入力を検出する。例えば、図5B24に示すように、接触5254による入力が検出される。第2の入力を検出したことに応じて、第2の入力が第1の入力形式を有する(例えば、第2の入力がタップ入力である)との判定に従って、コンピュータシステムは、仮想3次元空間内の第1の位置に、挿入カーソル(例えば、挿入カーソル5256、図5B25)を表示する。挿入カーソルが第1の位置に表示されている間に、コンピュータシステムは、入力デバイスを介して、(例えば、接触5258によって示すような、図5B26)第3の入力を検出する。第3の入力を検出したことに応じて、コンピュータシステムは、第3の入力が第1の入力形式を有し(例えば、第3の入力がタップ入力である)、かつ表示された挿入カーソルに対応する第1の位置に向けられているとの判定に従って、第2の仮想ユーザインタフェースオブジェクト(例えば、仮想ユーザインタフェースオブジェクト5260、図5B26)を第1の位置に挿入する。第3の入力が第1の入力形式を有し、かつ表示された挿入カーソルに対応しない第2の位置に向けられているとの判定に従って(例えば、図5B22〜図5B25に示すように)、コンピュータシステムは、挿入カーソルを第2の位置に表示する。例えば、図5B22では、接触5250による入力は、図5B23に示すように、接触5250の位置に対応する位置に挿入カーソル5252を配置させる。接触5254による後続の入力は、挿入カーソル5252の位置に対応しない位置で検出される。接触5254の位置が挿入カーソル5252の位置に対応しないため、図5B25では、接触5254の位置に対応する位置に挿入カーソル5256が表示される(かつ接触5254による入力に応じて、新しい仮想ユーザインタフェースオブジェクトが生成されない)。いくつかの実施形態では、コンピュータシステムは、複数の入力を検出し、複数の入力は、第1の入力形式を有し、かつ表示された挿入カーソルに対応する第1の位置に向けられた、少なくとも1つの入力と、第1の入力形式を有し、かつ表示された挿入カーソルに対応しない第2の位置に向けられた、少なくとも1つの入力と、を含む。第1のタイプの入力の位置が表示された挿入カーソルの位置に対応する、又は表示された挿入カーソルを含まない位置に対応するかに応じて、新しい仮想ユーザインタフェースオブジェクトを挿入する、又は挿入カーソルを移動させるかを判定することにより、第1のタイプの入力により異なる複数のタイプの動作の実行を可能にする。第1のタイプの入力により異なる複数のタイプの動作の実行を可能にすることにより、ユーザがこれらの動作を実行することができる効率を高め、それによって、デバイスの操作性を向上させ、加えて、ユーザがデバイスをより素早くかつ効率的に使用することを可能にすることによって、電力使用を削減し、デバイスのバッテリ寿命を改善する。
いくつかの実施形態では、仮想3次元空間を表示している間に(930)、コンピュータシステムは、入力デバイスを介して、仮想3次元空間内の第3の位置に向けられた第4の入力(例えば、図5B32に示すような接触5270による入力)を検出する。仮想3次元空間内の第3の位置に向けられた第4の入力を検出したことに応じて、第4の入力が第1の入力形式を有する(例えば、第4の入力がタップ入力である)との判定に従って、コンピュータシステムは、挿入カーソル(例えば、挿入カーソル5272、図5B33)を第3の位置に表示する(例えば、既存の挿入カーソルを第2の位置から対応する位置に移動させる、又は第1の入力の前にシミュレートされた環境内に挿入カーソルが表示されていなかった場合、対応する位置に新しい挿入カーソルを表示する)。挿入カーソルが第3の位置に表示されている間に、コンピュータシステムは、入力デバイスを介して、アクティブ化されると、第3の位置に新しい仮想ユーザインタフェースオブジェクトの挿入を引き起こす、新規オブジェクトコントロール(例えば、新規オブジェクトコントロール5216)に対応する位置で第5の入力(例えば、接触5276による入力、図5B34)を検出する。第5の入力を検出したことに応じて、コンピュータシステムは、第3の位置に新しい仮想ユーザインタフェースオブジェクト(例えば、仮想ユーザインタフェースオブジェクト5276、図5B36)を挿入する。アクティブ化されると挿入カーソルの位置に新しい仮想ユーザインタフェースオブジェクトの挿入を引き起こす新規オブジェクトコントロールを提供することにより、ユーザが新しい仮想ユーザインタフェースオブジェクトを作成することができる効率を高める(例えば、ユーザが新規オブジェクトコントロールの位置で繰り返される入力を提供することによって一連の新しい仮想ユーザインタフェースオブジェクトを挿入することを可能にすることによって)。ユーザが新しい仮想ユーザインタフェースオブジェクトを作成することができる効率を高めることにより、デバイスの操作性を向上させ、ユーザ−デバイスインタフェースをより効率的にし、加えて、ユーザがデバイスをより素早くかつ効率的に使用することを可能にすることにより、電力使用を削減し、デバイスのバッテリ寿命を改善する。
いくつかの実施形態では、コンピュータシステムは、入力デバイスを介して、仮想3次元空間との相互作用に対応するジェスチャ(例えば、タッチ感知面上のピンチ又はスワイプジェスチャ)を検出する(932)。例えば、図5B36及び図5B37は、接触5278及び5280によるピンチジェスチャを示す。仮想3次元空間との相互作用に対応するジェスチャを検出したことに応じて、コンピュータシステムは、ジェスチャに対応する仮想3次元空間内の動作を実行する(例えば、オブジェクトをズームする、回転させる、移動させる、など)。例えば、図5B36及び図5B37に示すピンチジェスチャに応じて、ズーム動作が実行される(例えば、ズームアウト動作が行われると、仮想ユーザインタフェースオブジェクト5210、5260、及び5276は、サイズが低減される)。仮想3次元空間と相互作用するピンチ又はスワイプなどのジェスチャに応じて仮想3次元空間内の動作を実行することにより、ユーザが仮想3次元空間を制御するための効率的かつ直感的な方法を提供する(例えば、ユーザが仮想3次元空間の調整に対応するピンチ又はスワイプなどの動きを伴う単一の入力を使用して仮想3次元空間のビューを調整することを可能にすることによって)。仮想3次元空間のジェスチャに基づく制御をユーザに提供することにより、追加の表示されたコントロールによりユーザインタフェースを雑然とさせることを回避し、それにより、デバイスの操作性を向上させ、ユーザ−デバイスインタフェースをより効率的にし、加えて、ユーザがデバイスをより素早くかつ効率的に使用することを可能にすることによって、電力使用を削減し、デバイスのバッテリ寿命を改善する。
いくつかの実施形態では、コンピュータシステムは、1つ以上のカメラを含み(934)、表示された仮想3次元空間は、1つ以上のカメラの視野内にある1つ以上の物理的オブジェクト(例えば、基準マット5208a、図5B2)と、1つ以上のカメラの視野内にある1つ以上の物理的オブジェクトの1つ以上の仮想3次元モデル(例えば、基準マット5208aの表示されたバージョン5208b)と、を含む。物理的オブジェクトの仮想3次元モデルを表示することにより、表示された仮想3次元空間に対する物理的世界内の座標系を提供する。この座標系を提供することにより、ユーザが物理的オブジェクトを操作することによって(基準マットなど、例えば、基準マットを回転させることによって)仮想3次元空間内の仮想オブジェクトのビューを変更することを可能にし、それにより、ユーザが第1の仮想ユーザインタフェースオブジェクトのビューを調整するための直感的な方法を提供し、デバイスの操作性を向上させ、ユーザ−デバイスインタフェースをより効率的にし、加えて、ユーザがデバイスをより素早くかつ効率的に使用することを可能にすることによって、電力使用を削減し、デバイスのバッテリ寿命を改善する。
いくつかの実施形態では、第1の仮想ユーザインタフェースオブジェクトの外観は、第1の入力の移動が、入力デバイス上の第1の入力の移動(例えば、入力デバイスが物理的空間内で実質的に静止して保持されている間の入力デバイスのタッチスクリーンディスプレイ又はタッチ感知面を横切る接触の移動)、対応する物理的オブジェクトに対する1つ以上のカメラの移動(例えば、接触が入力デバイスのタッチスクリーンディスプレイ又はタッチ感知面上で維持され、かつ静止したままでいる間の物理的空間内のカメラを含むコンピュータシステムの移動)、又は入力デバイス上の第1の入力の移動と対応する物理的オブジェクトに対する1つ以上のカメラの移動との組み合わせ(例えば、同時に起こる、入力デバイスのタッチスクリーンディスプレイ又はタッチ感知面を横切る接触の移動、及び物理的空間内のカメラを含むコンピュータシステムの移動)に起因するかに関わらず、1つ以上のカメラの視野内の対応する物理的オブジェクトに対する第1の入力の移動を検出したことに応じて、調整される(936)。例えば、図5B29及び図5B30に示すように、デバイス100(例えば、1つ以上のカメラを含むコンピューティングデバイス)は、接触5262がタッチスクリーンディスプレイ112上で維持され、かつ静止したままでいる間に、基準マット5208aに対して移動される。デバイス100の移動に応じて、仮想オブジェクト5260のサイズが調整される。入力の移動のしかたに関わらず仮想ユーザインタフェースオブジェクトの外観を調整すること(例えば、入力デバイス上の入力の移動のみ、物理的オブジェクトに対するカメラの移動のみ、又は入力及びカメラの移動の組み合わせにより、ユーザが仮想ユーザインタフェースオブジェクトの外観を調整することを可能にすることによって)により、ユーザが仮想ユーザインタフェースオブジェクトの外観を調整するための直感的な方法を提供し、ユーザに提供される視覚的フィードバックを改善し(例えば、コンピュータシステムをユーザ入力に対してより反応するように見せることにより)、デバイスの操作性を向上させ、ユーザ−デバイスインタフェースをより効率的にし(例えば、ユーザが必要な入力により意図された結果を達成するのを支援し、デバイスを操作する/デバイスと相互作用するときのユーザの誤りを削減することによって)、加えて、ユーザがデバイスをより素早くかつ効率的に使用することを可能にすることによって、電力使用を削減し、デバイスのバッテリ寿命を改善する。
図9A〜図9Eにおける動作について説明された特定の順序は単なる例であり、説明された順序は、動作を実行することができる唯一の順序であることを示すことを意図するものではないことを理解されたい。当業者であれば、本明細書に記載される動作を再順序付けるための様々な方法を認識するであろう。加えて、本明細書に記載される他の方法(例えば、方法600、700、800、1000、1100、1200、及び1300)に関して本明細書に記載される他のプロセスの詳細はまた、図9A〜図9Eに関して上記した方法900にも、類似の様式で適用可能であることに留意されたい。例えば、方法900に関連して上述した接触、ジェスチャ、ユーザインタフェースオブジェクト、強度閾値、フォーカスインジケータ、及び/又はアニメーションは、任意選択的に、本明細書に記載の他の方法(例えば、方法600、700、800、1000、1100、1200、及び1300)に関連して本明細書に記載の接触、ジェスチャ、ユーザインタフェースオブジェクト、強度閾値、フォーカスインジケータ、及び/又はアニメーションの特性のうちの1つ以上を有する。簡潔にするために、それらの詳細はここでは繰り返さない。
図10A〜図10Eは、いくつかの実施形態に係る、表示されたシミュレートされた環境の閲覧モード間を遷移する方法1000を示すフロー図である。方法1000は、表示生成コンポーネント(例えば、ディスプレイ、プロジェクタ、ヘッドアップディスプレイなど)と、入力デバイス(例えば、タッチ感知式リモートコントロールなどのタッチ感知面、若しくは表示生成コンポーネントとしても機能するタッチスクリーンディスプレイ、マウス、ジョイスティック、ワンドコントローラ、及び/又はユーザの手などのユーザの1つ以上の特徴の位置を追跡するカメラ)と、任意選択的に、1つ以上のカメラ(例えば、カメラの視野内にあるコンテンツの少なくとも一部分のライブプレビューを連続的に提供し、かつ任意選択的に、カメラの視野内のコンテンツをキャプチャする画像フレームの1つ以上のストリームを含むビデオ出力を生成するビデオカメラ)と、任意選択的に、1つ以上の姿勢センサと、任意選択的に、タッチ感知面との接触の強度を検出する1つ以上のセンサと、任意選択的に、1つ以上の触知出力生成器と、を含む(かつ/又はそれらと通信している)コンピュータシステム(例えば、ポータブル多機能デバイス100、図1A、デバイス300、図3A、又は、ヘッドセット5008及び入力デバイス5010を含むマルチコンポーネントコンピュータシステム、図5A2)において実行される。いくつかの実施形態では、入力デバイス(例えば、タッチ感知面を有する)及び表示生成コンポーネントは、タッチ感知ディスプレイに統合される。図3B〜図3Dに関して上述したように、いくつかの実施形態では、方法1000は、表示生成コンポーネント、1つ以上のカメラ、1つ以上の入力デバイス、及び任意選択的に1つ以上の姿勢センサなどのそれぞれの構成要素が、それぞれ、コンピュータシステム301に含まれる、又はコンピュータシステム301と通信しているのいずれかである、コンピュータシステム301(例えば、コンピュータシステム301−a、301−b、又は301−c)で実行される。
いくつかの実施形態では、表示生成コンポーネントは、タッチスクリーンディスプレイであり、入力デバイス(例えば、タッチ感知面を有する)は、表示生成コンポーネント上にある、又はそれと統合されている。いくつかの実施形態では、表示生成コンポーネントは、入力デバイスとは別個である(例えば、図4B及び図5A2に示すように)。方法1000の一部の動作が任意選択的に組み合わされ、かつ/又は、一部の動作の順序が任意選択的に変更される。
説明の便宜上、実施形態のいくつかは、タッチ感知ディスプレイシステム112及び1つ以上の一体型カメラを有するコンピュータシステム上(例えば、タッチスクリーン112を有するデバイス100上)で実行される動作を参照して説明する。しかしながら、類似の動作は、任意選択的に、ヘッドセット5008のディスプレイ上に図に示すユーザインタフェースを表示している間に、入力デバイス5010のタッチ感知面上の接触を検出したことに応じて、ヘッドセット5008とタッチ感知面を有する別個の入力デバイス5010とを有するコンピュータシステム(例えば、図5A2に示すような)上で実行される。同様に、類似の動作は、任意選択的に、コンピュータシステムの1つ以上の他の構成要素(例えば、入力デバイス)とは別個に(例えば、ヘッドセット内に)実装される1つ以上のカメラを有するコンピュータシステム上で実行され、いくつかのそのような実施形態では、「コンピュータシステムの移動」は、コンピュータシステムの1つ以上のカメラの移動、又はコンピュータシステムと通信する1つ以上のカメラの移動に対応する。
後述するように、方法1000は、コンピュータシステムの入力デバイスでジェスチャを検出することに関する。ジェスチャがモード変更基準を満たすか否かに応じて、物理的環境に対するコンピュータシステムの少なくとも一部分の姿勢(例えば、向き及び/又は位置)の後続の変化は、第1の閲覧モード(仮想ユーザインタフェースオブジェクトと物理的環境との間の固定された空間的関係が維持される)でシミュレートされた環境を表示することから第2の閲覧モード(仮想ユーザインタフェースオブジェクトと物理的環境との間の固定された空間的関係が維持されない)への遷移、又は姿勢の変化に応じて、第1の仮想ユーザインタフェースオブジェクトの外観を変更すること、のいずれかを引き起こす。第1の閲覧モードから第2の閲覧モードに遷移する、又は第1の閲覧モードでの第1の仮想ユーザインタフェースオブジェクトの外観を変更するかを判定することにより、コンピュータシステムの少なくとも一部の姿勢の変化に応じて、異なる複数のタイプの動作の実行を可能にする。姿勢の変化に応じて異なる複数のタイプの動作の実行を可能にすることにより、ユーザがこれらの動作を実行することができる効率を高め、それによって、デバイスの操作性を向上させ、加えて、ユーザがデバイスをより素早くかつ効率的に使用することを可能にすることによって、電力使用を削減し、デバイスのバッテリ寿命を改善する。
第1の閲覧モードでは、コンピュータシステム(例えば、デバイス100、図5C1)は、コンピュータシステムの表示生成コンポーネント(例えば、タッチスクリーンディスプレイ112)を介して、コンピュータシステムの物理的環境に対して向けられたシミュレートされた環境(例えば、仮想現実(virtual reality、VR)環境又は拡張現実(augmented reality、AR)環境)を表示する(1002)。第1の閲覧モードでシミュレートされた環境を表示することは、コンピュータシステムの物理的環境に関連付けられたシミュレートされた環境内の第1の対応する位置に表示された仮想モデル(例えば、レンダリングされた3次元モデル)内の第1の仮想ユーザインタフェースオブジェクト(例えば、仮想ボックス5302)を表示することを含む。例えば、レンダリングされた3次元モデルの(例えば、サイズ、位置、及び向きに反映されたような)視覚的外観は、コンピュータシステムが物理的環境内のテーブル表面又は他の表面に対してどのように配置され、かつ向けられるかに応じて変化する。
シミュレートされた環境を表示している間に(1004)、コンピュータシステムは、1つ以上の姿勢センサを介して、物理的環境に対するコンピュータシステムの少なくとも一部分の姿勢(例えば、向き及び/又は位置)の第1の変化(例えば、物理的環境の表現を生成するために使用される1つ以上のカメラを含むコンピュータシステムの構成要素などの、コンピュータシステムの構成要素の姿勢の変化)(例えば、タッチスクリーンディスプレイ、仮想現実ヘッドセット、又はタッチ感知式リモートコントロールの第1の移動によって引き起こされる変化)を検出する。例えば、図5C1及び図5C2は、デバイス100の姿勢の第1の変化を示す。
コンピュータシステムの一部分の姿勢の第1の変化を検出したことに応じて(1006)、コンピュータシステムは、第1の仮想ユーザインタフェースオブジェクトと物理的環境との間の固定された空間的関係(例えば、向き、サイズ、及び/又は位置)を維持するように、仮想モデル内の第1の仮想ユーザインタフェースオブジェクトの外観を変更する(例えば、レンダリングされた3次元モデルは、コンピュータシステムのカメラの視野内にあるテーブル表面又は他の表面の位置に直接配置され、テーブル表面又は他の表面の位置がコンピュータシステムの移動によりカメラの視野内で変化すると、テーブル表面又は他の表面と同一平面上に留まり、かつそれに貼り付けられたままである)。例えば、図5C1から図5C2まで、ディスプレイ112上の仮想ボックス5302のサイズ及び位置は、変化して、仮想ボックス5302と物理的基準マット5208aとの間の固定された空間的関係を維持する。
コンピュータシステムの一部分の姿勢の第1の変化に基づいて第1の仮想ユーザインタフェースオブジェクトの外観を変更した後に(1008)、コンピュータシステムは、入力デバイスを介して、シミュレートされた環境との相互作用に対応する第1のジェスチャ(例えば、タッチ感知面上のピンチジェスチャ又はスワイプジェスチャ)を検出する。図5C4〜図5C6は、(デバイス100によって表示されたシミュレートされた環境内で仮想ボックス5302を移動させるための)上方向スワイプ及び下方向スワイプを含む入力の例を提供する。図5C9〜図5C11は、(デバイス100によって表示されたシミュレートされた環境をズームするための)ピンチジェスチャの例を提供する。
シミュレートされた環境との相互作用に対応する第1のジェスチャを検出したことに応じて(1010)、コンピュータシステムは、第1のジェスチャに対応するシミュレートされた環境内での動作を実行する(例えば、オブジェクトをズームする、回転させる、移動させる、など)。図5C4〜図5C6は、検出されたスワイプジェスチャに応じた仮想ボックス5302の移動を示す。図5C9〜図5C11は、検出されたピンチジェスチャに応じてシミュレートされた環境をズームすることを示す。
第1のジェスチャに対応する動作を実行した後に(1012)、コンピュータシステムは、1つ以上の姿勢センサを介して、物理的環境に対するコンピュータシステムの一部分の姿勢(例えば、向き及び/又は位置)の第2の変化を検出する。例えば、図5C12及び図5C13は、物理的環境5200内の物理的基準マット5208aに対するデバイス100の移動を含む姿勢変化を示す。
コンピュータシステムの一部分の姿勢の第2の変化を検出したことに応じて(1014)、第1のジェスチャがモード変更基準を満たしたとの判定に従って、コンピュータシステムは、第1の閲覧モードで仮想モデルを含むシミュレートされた環境を表示することから、第2の閲覧モードで仮想モデルを含むシミュレートされた環境を表示することに遷移する。モード変更基準は、第1のジェスチャが物理的環境に対するシミュレートされた環境の空間的パラメータ(例えば、向き、サイズ、及び/又は位置)を変更する入力(例えば、シミュレートされた環境をズームアウトするためのピンチズームジェスチャ、シミュレートされた環境を拡大するためのデピンチズームアウトジェスチャ、シミュレートされた環境を回転若しくは平行移動させるためのスワイプジェスチャ、及び/又はシミュレートされた環境を閲覧する別のデバイスの視点(point of view、POV)若しくは環境内の仮想オブジェクトのPOVを表示するための入力)に対応するという要件を含む。例えば、図5C9〜図5C11に示すピンチズーム入力に応じて、デバイス100は、シミュレートされた環境を第1の閲覧モード(拡張現実閲覧モード)で表示することから、シミュレートされた環境を第2の閲覧モード(仮想現実閲覧モード)で表示することに遷移する。例えば、拡張現実モードでデバイス100のディスプレイ112によって表示される物理的基準マット5208a及びテーブル5204などのデバイス100のカメラの視野内の物理的オブジェクト(例えば、図5C9の)は、仮想現実閲覧モードで表示されることを停止する(例えば、図5C12に示すように)。仮想現実閲覧モードでは、仮想グリッド5328が表示される(例えば、図5C12に示すように)。第2の閲覧モードでシミュレートされた環境内に仮想モデルを表示することは、第1の仮想ユーザインタフェースオブジェクトの外観を変更して、第1の仮想ユーザインタフェースオブジェクトと物理的環境との間の固定された空間的関係(例えば、向き、サイズ、及び/又は位置)を維持することを控える(例えば、コンピュータシステムの一部分の姿勢の第2の変化を検出する前に表示されていたのと同じ向き、サイズ、及び/又は位置に、第1の仮想ユーザインタフェースオブジェクトを維持する)ことを含む。例えば、図5C12及び図5C13に示すように、ディスプレイ112に対する仮想ボックス5302の位置は、デバイスが仮想現実閲覧モードでシミュレートされた環境を表示している間にデバイス100の移動に応じて、変更されない。第1のジェスチャがモード変更基準を満たさなかったとの判定に従って、コンピュータシステムは、第1の閲覧モードでシミュレートされた環境内に第1の仮想モデルを表示し続ける。例えば、図5C4〜図5C6では、仮想ボックス5302を移動させるためのスワイプジェスチャは、モード変更基準を満たさず、デバイス100は、拡張現実閲覧モードでシミュレートされた環境を表示し続ける。第1の閲覧モードで仮想モデルを表示することは、物理的環境に対するコンピュータシステムの一部分の姿勢の第2の変化(例えば、物理的環境の表現を生成するために使用される1つ以上のカメラを含むコンピュータシステムの構成要素などのコンピュータシステムの構成要素の姿勢の変化)に応じて、仮想モデル内の第1の仮想ユーザインタフェースオブジェクトの外観を変更し、それにより、第1の仮想ユーザインタフェースオブジェクトと物理的環境との間の固定された空間的関係(例えば、向き、サイズ、及び/又は位置)を維持することを含む。例えば、図5C7及び図5C8に示すように、ディスプレイ112に対する仮想ボックス5302の位置は、デバイスが拡張現実閲覧モードでシミュレートされた環境を表示している間にデバイス100の移動に応じて、変化する。いくつかの実施形態では、固定された空間的関係は、いくつかの実施形態ではコンピュータシステムの移動又はテーブル表面若しくは他の表面の移動などの物理的環境の変化に起因する、姿勢の第1の変化と姿勢の第2の変化との間の時間中に、他の入力に応じて、同じままであってもよく、又は異なってもよい。いくつかの実施形態では、コンピュータシステムは、各ジェスチャの後に物理的環境に対するコンピュータシステムの一部分の姿勢の変化が続く、シミュレートされた環境とのそれぞれの相互作用に対応する複数のジェスチャを検出する。いくつかのそのような実施形態では、複数のジェスチャ及び姿勢変化は、後続の姿勢の変化を検出したことに応じて、コンピュータシステムが第1のモードでシミュレートされた環境を表示することから第2のモードでシミュレートされた環境を表示することに遷移する、モード変更基準を満たした少なくとも1つのジェスチャを含む。加えて、複数のジェスチャ及び姿勢変化は、コンピュータシステムが第1の閲覧モードでシミュレートされた環境内に第1の仮想モデルを表示し続ける、モード変更基準を満たさなかった少なくとも1つのジェスチャを含む。
いくつかの実施形態では、コンピュータシステムは、1つ以上のカメラ(例えば、カメラの視野内にあるコンテンツの少なくとも一部分のライブプレビューを連続的に提供し、かつ任意選択的に、カメラの視野内にコンテンツをキャプチャする画像フレームの1つ以上のストリームを含むビデオ出力を生成する1つ以上のビデオカメラ)を含み(1016)、第1の閲覧モードでシミュレートされた環境を表示することは、1つ以上のカメラの視野の少なくとも一部分の表現を表示することを含む。1つ以上のカメラの視野は、物理的環境内の物理的オブジェクトの表現を含む(例えば、表現は、1つ以上のカメラの視野の少なくとも一部分のライブビューである)。例えば、デバイス100の1つ以上のカメラは、図5C1に示すように、5208bで示すようなディスプレイ112上に表示された基準マット5208aのライブ画像をキャプチャする。いくつかの実施形態では、物理的オブジェクトのビューは、1つ以上のカメラが移動されるにつれて、かつ/又は仮想モデルへの変更に応じて、更新される。例えば、図5C1から図5C2まで、デバイス100の移動は、基準マット5208aのビュー5208bを変化させる(例えば、デバイス100が基準マット5208aに接近して移動するにつれて、デバイス112上に表示されたシミュレートされた環境は、図5C1に示すような基準マット5208a全体のビュー5208bを表示することから、図5C2に示すような基準マット5208aの一部分のビュー5208bに更新される)。シミュレートされた環境内に物理的オブジェクトの表現を表示することにより、物理的環境及びシミュレートされた環境に関する同時情報をユーザに提供する。物理的環境及びシミュレートされた環境に関する同時情報を提供することにより、デバイスの操作性を向上させ、ユーザ−デバイスインタフェースをより効率的にし(例えば、ユーザがデバイスに提供される入力と仮想ユーザインタフェースオブジェクトと物理的環境との間の関係を理解し、入力の誤りを回避することを支援することによって)、加えて、ユーザがデバイスをより素早くかつ効率的に使用することを可能にすることによって、電力使用を削減し、デバイスのバッテリ寿命を改善する。
いくつかの実施形態では、シミュレートされた環境との相互作用に対応する第1のジェスチャを検出することは、複数の接触(例えば、図5C9に示すような入力デバイスのタッチ感知面(例えば、デバイス100のタッチ感知ディスプレイ112)との接触5324及び5320)を検出することを含む(1018)。タッチ感知面との複数の接触が検出されている間に、コンピュータシステムは、複数の接触の第2の接触の移動に対する複数の接触の第1の接触の移動(例えば、図5C9〜図5C11に示すような矢印5326及び5322によって示す経路に沿った接触5324及び5320の移動)を検出する。例えば、複数の接触の第2の接触の移動に対する複数の接触の第1の接触の移動は、少なくとも第1の接触と第2の接触との間の距離を減少させる複数の接触の移動を含むピンチジェスチャ(例えば、図5C9〜図5C11に示すような)、又は少なくとも第1の接触と第2の接触との間の距離を増大させる複数の接触の移動を含むデピンチジェスチャである。加えて、いくつかの実施形態では、第1のジェスチャに対応するシミュレートされた環境内での動作を実行することは、第2の接触の移動に対する第1の接触の移動に対応する量だけ第1の仮想ユーザインタフェースオブジェクト(例えば、仮想ボックス5302、図5C9)のサイズを変更すること(例えば、ジェスチャが互いから離れる接触の移動を含むデピンチジェスチャであるとの判定に従って、第1の仮想ユーザインタフェースオブジェクトのサイズを増大させること、及びジェスチャが互いに向かう接触の移動を含むピンチジェスチャであるとの判定に従って、第1の仮想ユーザインタフェースオブジェクトのサイズを低減すること)を含む。例えば、図5C9〜図5C11では、接触5324及び5320が移動し、それにより接触間の距離が減少するにつれて、仮想ボックス5302のサイズが減少する。シミュレートされた環境と相互作用するデピンチジェスチャなどのジェスチャに応じて、シミュレートされた環境内での動作を実行することにより、ユーザが第1の仮想ユーザインタフェースオブジェクトのサイズを変更するための効率的かつ直感的な方法を提供する(例えば、ユーザが単一の入力ジェスチャを使用してシミュレートされた環境内で仮想ユーザインタフェースオブジェクトをズームすることを可能にすることによって)。シミュレートされた環境のジェスチャに基づく制御をユーザに提供することにより、追加の表示されたコントロールによりユーザインタフェースを雑然とさせることを回避し、それにより、デバイスの操作性を向上させ、ユーザ−デバイスインタフェースをより効率的にし、加えて、ユーザがデバイスをより素早くかつ効率的に使用することを可能にすることによって、電力使用を削減し、デバイスのバッテリ寿命を改善する。
いくつかの実施形態では、第2の閲覧モード(例えば、VRモード)でシミュレートされた環境内に第1の仮想ユーザインタフェースオブジェクトを表示している間に(1020)、コンピュータシステムは、入力デバイスを介して、シミュレートされた環境との相互作用に対応する第2のジェスチャを検出する。第2のジェスチャは、シミュレートされた環境の視点を変更するための入力を含む。例えば、コンピュータシステムは、スワイプ又は回転ジェスチャなどのジェスチャを検出する(例えば、入力デバイスは、タッチスクリーンディスプレイを含み、ジェスチャは、タッチスクリーンディスプレイを横切る接触の移動を含む)。加えて、シミュレートされた環境との相互作用に対応する第2のジェスチャを検出したことに応じて、コンピュータシステムは、シミュレートされた環境の視点を変更するための入力に従って、シミュレートされた環境の表示される視点を更新する。例えば、コンピュータシステムは、スワイプ又は回転ジェスチャなどの第2のジェスチャの移動の方向及び量に対応する方向にかつ量だけ、シミュレートされた環境の表示される視点を変更する。図5C22及び図5C23は、矢印5352によって示す経路に沿って移動する接触5350による回転ジェスチャを含む入力を示す。接触5350による入力が受信されると、デバイス100のディスプレイ112によって表示されるシミュレートされた環境は、入力に従って回転される(例えば、仮想ボックス5302、5304、及び5340、並びに仮想グリッド5328が時計回りに回転される)。シミュレートされた環境との相互作用に対応するジェスチャを検出したことに応じて、シミュレートされた環境の表示される視点を更新することにより、ユーザがシミュレートされた環境の視点を変更するための効率的かつ直感的な方法を提供する(例えば、ユーザが単一の入力ジェスチャを使用してシミュレートされた環境の視点を変更することを可能にすることによって)。シミュレートされた環境の視点のジェスチャに基づく制御をユーザに提供することにより、追加の表示されたコントロールによりユーザインタフェースを雑然とさせることを回避し、それにより、デバイスの操作性を向上させ、ユーザ−デバイスインタフェースをより効率的にし、加えて、ユーザがデバイスをより素早くかつ効率的に使用することを可能にすることによって、電力使用を削減し、デバイスのバッテリ寿命を改善する。
いくつかの実施形態では、第2の閲覧モード(例えば、VRモード)でシミュレートされた環境を表示している間に(1022)、コンピュータシステムは、入力デバイスを介して、シミュレートされた環境内の第2の対応する位置に第2の仮想ユーザインタフェースオブジェクトを挿入するための挿入入力(例えば、(以前の入力によって作成された)挿入カーソルに対応するシミュレートされた環境内の位置に向けられた、タップ入力などの入力、及び/又は、アクティブ化されると、シミュレートされた環境内の以前に配置された挿入カーソルの位置に新しい仮想ユーザインタフェースオブジェクトの挿入を引き起こすコントロールに向けられた入力)を検出する。第2の仮想ユーザインタフェースオブジェクトを挿入するための挿入入力を検出したことに応じて、コンピュータシステムは、第1の仮想ユーザインタフェースオブジェクトと物理的環境との間の固定された空間的関係(例えば、向き、サイズ、及び/又は位置)を維持しながら、シミュレートされた環境内の第2の対応する位置に、第2の仮想ユーザインタフェースオブジェクトを表示する。例えば、接触5334による入力(例えば、タップ入力)は、図5C15及び図5C16に示すように、挿入カーソル5536を配置する。挿入カーソル5536が配置された後に、図5C17に示すように、新規オブジェクトコントロール5216に対応する位置での接触5338による入力(例えば、タップ入力)が検出される。挿入カーソル5536の配置の後に新規オブジェクトコントロール5216に対応する位置での入力に応じて、挿入カーソル5536に対応する位置に仮想ボックス5340が表示される。仮想ユーザインタフェースオブジェクトを挿入するための入力は、方法900に関して更に説明している。いくつかの実施形態では、第2の仮想ユーザインタフェースオブジェクトのシミュレートされた環境への挿入に応じて、対応する閲覧モードは、変更されない(例えば、仮想ユーザインタフェースオブジェクトがVRモードで閲覧されている場合、第2の仮想ユーザインタフェースオブジェクトの挿入に応じて、ARモードへの遷移は行なわれない)。挿入入力に応じて新しい仮想ユーザインタフェースオブジェクトを挿入することにより、ユーザに提供されるフィードバックを改善し(例えば、コンピュータシステムをユーザ入力に対してより反応するように見せることにより)、デバイスの操作性を向上させ、ユーザ−デバイスインタフェースをより効率的にし(例えば、ユーザが必要な入力により意図された結果を達成するのを支援し、デバイスを操作する/デバイスと相互作用するときのユーザの誤りを削減することによって)、加えて、ユーザがデバイスをより素早くかつ効率的に使用することを可能にすることによって、電力使用を削減し、デバイスのバッテリ寿命を改善する。
いくつかの実施形態では、第2の閲覧モード(例えば、VRモード)でシミュレートされた環境を表示している間に(1024)、コンピュータシステムは、入力デバイスを介して、仮想モデルの対応する仮想ユーザインタフェースオブジェクトの対応する側面(例えば、仮想オブジェクト5340の側面5344)の選択、及び2次元での入力の移動(例えば、矢印5346によって示すような)を含む、移動入力(例えば、接触5342による移動入力、図5C19)を検出する。移動を検出したことに応じて、コンピュータシステムは、第1の仮想ユーザインタフェースオブジェクトと物理的環境との間の固定された空間的関係(例えば、向き、サイズ、及び/又は位置)を維持しながら、第2の入力の移動に基づいて決定される第1の方向に、対応する仮想ユーザインタフェースオブジェクトの選択された対応する側面に平行である平面内で(例えば、移動投影5348によって示すように)、対応する仮想ユーザインタフェースオブジェクト5340を移動させる。いくつかの実施形態では、対応する仮想ユーザインタフェースオブジェクトの移動の方向は、移動入力の方向に基づいて決定される(例えば、第1の方向の移動入力に対して、仮想ユーザインタフェースオブジェクトは、対応する方向に移動し、第1の方向とは異なる第2の方向の移動入力に対して、仮想ユーザインタフェースオブジェクトは、異なる対応する方向に移動する)。いくつかの実施形態では、対応する仮想ユーザインタフェースオブジェクトの移動の大きさは、移動入力の大きさに基づいて決定される(例えば、移動入力のより大きい大きさに対して、対応する仮想ユーザインタフェースオブジェクトは、より遠くに移動する)。仮想ユーザインタフェースオブジェクトを移動させるための入力は、方法900に関して更に説明している。いくつかの実施形態では、第2の仮想ユーザインタフェースオブジェクトのシミュレートされた環境への挿入に応じて、対応する閲覧モードは、変更されない(例えば、仮想ユーザインタフェースオブジェクトがVRモードで閲覧されている場合、対応する仮想ユーザインタフェースオブジェクトの移動に応じて、ARモードへの遷移は行なわれない)。移動入力に応じて仮想ユーザインタフェースオブジェクトを移動させることにより、ユーザに提供されるフィードバックを改善し(例えば、コンピュータシステムをユーザ入力に対してより反応するように見せることにより)、デバイスの操作性を向上させ、ユーザ−デバイスインタフェースをより効率的にし(例えば、ユーザが必要な入力により意図された結果を達成するのを支援し、デバイスを操作する/デバイスと相互作用するときのユーザの誤りを削減することによって)、加えて、ユーザがデバイスをより素早くかつ効率的に使用することを可能にすることによって、電力使用を削減し、デバイスのバッテリ寿命を改善する。
いくつかの実施形態では、第1の閲覧モードでシミュレートされた環境を表示することから第2の閲覧モードでシミュレートされた環境を表示することに遷移している間に(1026)、コンピュータシステムは、遷移アニメーションを表示して、遷移の視覚的インジケーションを提供する(例えば、図5C9〜図5C12に示すように)。第1の閲覧モード(例えば、ARモード)でシミュレートされた環境を表示することから第2の閲覧モード(例えば、VRモード)でシミュレートされた環境を表示することに遷移している間に遷移アニメーションを表示することにより、ユーザに提供されるフィードバックを改善し(例えば、ARモードからVRモードへの遷移が行われているというインジケーションをユーザに提供することによって)、デバイスの操作性を向上させ、ユーザ−デバイスインタフェースをより効率的にし(例えば、ユーザが閲覧モード遷移を引き起こす入力を理解し、所望するときに閲覧モード遷移を達成することを支援することによって)、加えて、ユーザがデバイスをより素早くかつ効率的に使用することを可能にすることによって、電力使用を削減し、デバイスのバッテリ寿命を改善する。
いくつかの実施形態では、遷移アニメーションを表示することは、第1の閲覧モードでは表示され、第2の閲覧モードでは表示されない、少なくとも1つの視覚要素(例えば、コンピュータシステムの1つ以上のカメラによってキャプチャされたときのライブ背景ビュー及び/又は1つ以上の物理的基準オブジェクト(又は物理的環境の任意の他の様相))を表示することを漸進的に停止することを含む(1028)。例えば、図5C9〜図5C11では、テーブル5204及び物理的基準マット5208aの表示されたビュー5208bは、ディスプレイ112上に表示されることを漸進的に停止する。第1の閲覧モードでシミュレートされた環境を表示することから第2の閲覧モードでシミュレートされた環境を表示することに遷移している間に、第1の閲覧モードでは表示され第2の閲覧モードでは表示されない少なくとも1つの視覚要素を表示することを漸進的に停止することにより、ユーザに提供されるフィードバックを改善し(例えば、物理的環境の様相を除去して、第1の仮想ユーザインタフェースオブジェクトと物理的環境との間の固定された空間的関係が維持されていないという視覚的合図をユーザに提供することによって)、デバイスの操作性を向上させ、ユーザ−デバイスインタフェースをより効率的にし(例えば、ユーザが遷移の効果を理解することを支援することによって)、加えて、ユーザがデバイスをより素早くかつ効率的に使用することを可能にすることによって、電力使用を削減し、デバイスのバッテリ寿命を改善する。
いくつかの実施形態では、遷移アニメーションを表示することは、第1の閲覧モードで表示されない第2の閲覧モードの少なくとも1つの視覚要素(例えば、レンダリングされた背景)を漸進的に表示することを含む(1030)。例えば、図5C11及び図5C12では、仮想基準グリッド5328がディスプレイ112上に漸進的に表示される。
第1の閲覧モードでシミュレートされた環境を表示することから第2の閲覧モードでシミュレートされた環境を表示することに遷移している間に、第1の閲覧モードでは表示されない第2の閲覧モードの少なくとも1つの視覚要素を漸進的に表示することにより、ユーザに提供されるフィードバックを改善し(例えば、仮想現実環境の様相を追加して、拡張現実閲覧モードから仮想現実閲覧モードへの遷移が行われているという視覚的合図をユーザに提供することによって)、デバイスの操作性を向上させ、ユーザ−デバイスインタフェースをより効率的にし(例えば、ユーザが遷移の効果を理解することを支援することによって)、加えて、ユーザがデバイスをより素早くかつ効率的に使用することを可能にすることによって、電力使用を削減し、デバイスのバッテリ寿命を改善する。
いくつかの実施形態では、第2の閲覧モードでシミュレートされた環境を表示することから第1の閲覧モードでシミュレートされた環境を表示することに遷移している間に(例えば、モード変更入力ジェスチャに応じて)、遷移アニメーションが表示され、遷移の視覚的インジケーションを提供する(例えば、図5C26〜図5C30に示すように)。いくつかの実施形態では、遷移は、第2の閲覧モードの少なくとも1つの視覚要素(例えば、レンダリングされた背景)を表示することを漸進的に停止することと、第1の閲覧モードで表示される少なくとも1つの視覚要素(例えば、コンピュータシステムの1つ以上のカメラによってキャプチャされたときのライブ背景ビュー及び/又は1つ以上の物理的基準オブジェクト(又は物理的環境の任意の他の様相))を漸進的に表示することと、を含む。例えば、図5C26及び図5C27では、仮想基準グリッド5328は、表示されることを漸進的に停止し、図5C28〜図5C30では、テーブル5204及び物理的基準グリッド5208aの表示されたビュー5208bは、漸進的に再表示される。
いくつかの実施形態では、シミュレートされた環境との相互作用に対応する第1のジェスチャを検出したことに応じて(1032)、コンピュータシステムは、第1のジェスチャに対応する入力による空間的パラメータへの変更に従って、シミュレートされた環境内の仮想モデルが表示される視点を変更する。例えば、図5C9〜図5C11に示すピンチズームジェスチャに応じて、仮想ボックス5302及び5304の表示されるサイズは、減少する。いくつかの実施形態では、第1のジェスチャが仮想モデル上でズームインするジェスチャ(例えば、デピンチジェスチャ)である場合、シミュレートされた環境内の仮想モデルの表示される視点は、変更され、それにより、仮想モデルの表示されるサイズは、増大する。いくつかの実施形態では、第1のジェスチャが表示された仮想モデルをパンする、又は別の方法で移動させるジェスチャ(例えば、スワイプジェスチャ)である場合、シミュレートされた環境内の仮想モデルの表示される視点は、変更され、それにより、仮想モデルは、入力ジェスチャに従ってパンされる、又は別の方法で移動される。第1のジェスチャを検出したことに応じてシミュレートされた環境の視点を変更することにより、ユーザに提供されるフィードバックを改善し(例えば、コンピュータシステムをユーザ入力に対してより反応するように見せることにより)、デバイスの操作性を向上させ、ユーザ−デバイスインタフェースをより効率的にし(例えば、ユーザが必要な入力により意図された結果を達成するのを支援し、デバイスを操作する/デバイスと相互作用するときのユーザの誤りを削減することによって)、加えて、ユーザがデバイスをより素早くかつ効率的に使用することを可能にすることによって、電力使用を削減し、デバイスのバッテリ寿命を改善する。
いくつかの実施形態では、第1のジェスチャの終了を検出した後に(1034)、コンピュータシステムは、シミュレートされた環境内の仮想モデルが表示される視点を変更し続けて、第1の閲覧モードでシミュレートされた環境を表示することから第2の閲覧モードでシミュレートされた環境を表示することに遷移することを示す。例えば、図5C12及び図5C13では、図5C9〜図5C11で仮想ボックス5302及び5304のサイズを減少させたピンチズーム入力を提供していた接触5320及び5324のリフトオフの後に、仮想ボックス5302及び5304の表示されるサイズは、減少し続ける。いくつかの実施形態では、シミュレートされた環境内の仮想モデルが表示される視点は、コンピュータシステムの一部分の姿勢の第2の変化に応じて変更され続ける。いくつかの実施形態では、例えば、所定量だけ視点を変更するため、及び/又は第2の閲覧モードでシミュレートされた環境の所定のビューを表示するために、コンピュータシステムの一部分の姿勢の変化(又は他の入力)なしに、視点は変更され続ける。第1のジェスチャが終了した後にシミュレートされた環境の視点を変更し続けることにより、デバイスの操作性を向上させ、ユーザ−デバイスインタフェースをより効率的にし(例えば、フォーカスセレクタ(単数又は複数)(例えば、1つ以上の接触)の移動に対応する視点への変更量を増加させることによって)、加えて、ユーザがデバイスをより素早くかつ効率的に使用することを可能にすることによって、電力使用を削減し、デバイスのバッテリ寿命を改善する。
いくつかの実施形態では、第2の閲覧モードでシミュレートされた環境を表示している間に(1036)、コンピュータシステムは、入力デバイスを介して、第2の閲覧モードから第1の閲覧モードに遷移するための入力に対応する第3のジェスチャを検出する。例えば、第3のジェスチャは、図5C26及び図5C27に示すような、接触5360及び5356によるデピンチジェスチャを含む入力である。第3のジェスチャを検出したことに応じて、コンピュータシステムは、第2の閲覧モードでシミュレートされた環境を表示することから、第1の閲覧モードでシミュレートされた環境を表示することに遷移する(例えば、コンピュータシステムの一部分の姿勢のその後の変化に応じて、第1の仮想ユーザインタフェースオブジェクトの外観は、第1のユーザインタフェースオブジェクトと物理的環境との間の固定された空間的関係を維持するように、物理的環境に対して変化することになる)。いくつかの実施形態では、シミュレートされた環境の第1の閲覧モードで第1の仮想ユーザインタフェースオブジェクトを表示することは、シミュレートされた環境内の仮想モデルの背景内のコンピュータシステムの1つ以上のカメラからのライブフィードを表示することを含む。ジェスチャ入力に応じて第2の閲覧モード(例えば、VRモード)から第1の閲覧モード(例えば、ARモード)に遷移することにより、VRモードとARモードとの間のトグルを制御する能力をユーザに提供する。閲覧モードのジェスチャに基づく制御をユーザに提供することにより、デバイスの操作性を向上させ、ユーザ−デバイスインタフェースをより効率的にし(例えば、ユーザが提供することを望む入力のタイプに対して最も効率的である閲覧モードをユーザが選択することを可能にすることによって、及び追加の表示されたコントロールによりユーザインタフェースを雑然とさせることなく追加の制御オプションを提供することによって)、加えて、ユーザがデバイスをより素早くかつ効率的に使用することを可能にすることによって、電力使用を削減し、デバイスのバッテリ寿命を改善する。
いくつかの実施形態では、入力デバイスは、タッチ感知面(例えば、デバイス100のタッチ感知ディスプレイ112)を含み(1038)、第2の閲覧モードから第1の閲覧モードに遷移するための入力に対応する第3のジェスチャを検出することは、入力デバイスのタッチ感知面との複数の接触(例えば、接触5356及び5360)を検出することを含む。タッチ感知面との複数の接触が検出されている間に、入力デバイスは、複数の接触の第2の接触の移動に対する複数の接触の第1の接触の移動(例えば、矢印5358によって示す経路に沿った接触5356による移動、及び矢印5362によって示す経路に沿った接触5360による移動)を検出する。いくつかの実施形態では、第3のジェスチャは、第1の接触と第2の接触との間の距離を低減する複数の接触の移動を含むピンチジェスチャである。いくつかの実施形態では、第2の閲覧モードでシミュレートされた環境を表示することから、第1の閲覧モードでシミュレートされた環境を表示することに遷移することは、シミュレートされた環境内の仮想モデルのサイズを変更して、第1の閲覧モードから第2の閲覧モードへの遷移の前の仮想モデルのサイズに戻すことを含む。例えば、図5C26〜図5C30に示すように、接触5356及び5360によるジェスチャに応じて、仮想ボックス5302及び5304は、物理的基準マット5208aに対するそれらの元の位置及びサイズに変更されて戻る。入力ジェスチャ(例えば、ピンチジェスチャ)に応じて、第2の閲覧モード(例えば、VRモード)でシミュレートされた環境を表示することから第1の閲覧モード(例えば、ARモード)でシミュレートされた環境を表示することに遷移することにより、ユーザが所望の閲覧モードを選択するための効率的かつ直感的な方法を提供する。閲覧モードのジェスチャに基づく制御をユーザに提供することにより、デバイスの操作性を向上させ、ユーザ−デバイスインタフェースをより効率的にし(例えば、追加の表示されたコントロールによりユーザインタフェースを雑然とさせることなく追加の制御オプションを提供することによって)、加えて、ユーザがデバイスをより素早くかつ効率的に使用することを可能にすることによって、電力使用を削減し、デバイスのバッテリ寿命を改善する。
いくつかの実施形態では、第3のジェスチャは、アクティブ化されると、第2の閲覧モードから第1の閲覧モードへの遷移を引き起こす、コントロールに対応する入力デバイス上の位置(例えば、ARモードに関連付けられた画像及び/若しくはテキストを有する、仮想モデル並びに/又はコントロールに対応しないシミュレートされた環境内の位置)での入力(例えば、タップ入力)を含む(1040)。例えば、第3のジェスチャは、(例えば、仮想現実表示モードと拡張現実表示モードとの間でトグルするための)図5C28のトグル5214に対応する位置での入力を含む。コントロールでの入力に応じて、第2の閲覧モード(例えば、VRモード)でシミュレートされた環境を表示することから第1の閲覧モード(例えば、ARモード)でシミュレートされた環境を表示することに遷移することにより、ユーザが所望の閲覧モードを選択するための効率的かつ直感的な方法を提供する。閲覧モードの遷移を引き起こすためのコントロールをユーザへ提供することにより、デバイスの操作性を向上させ、ユーザ−デバイスインタフェースをより効率的にし、加えて、ユーザがデバイスをより素早くかつ効率的に使用することを可能にすることによって、電力使用を削減し、デバイスのバッテリ寿命を改善する。
いくつかの実施形態では、第3のジェスチャを検出したことに応じて(1042)、コンピュータシステムは、第1の仮想ユーザインタフェースオブジェクトと物理的環境との間の固定された空間的関係に戻すように、第1の仮想ユーザインタフェースオブジェクトの位置を物理的環境に対する現在位置から物理的環境に対する以前の位置に遷移させる(例えば、第1の仮想ユーザインタフェースオブジェクト及び仮想モデルを回転、サイズ変更、及び/又は移動させることにより)。例えば、図5C26〜図5C30に示すように、接触5356及び5360によるジェスチャに応じて、仮想ボックス5302及び5304は、回転、サイズ変更、及び移動され、それにより、図5C30では、仮想オブジェクト5302及び5304は、仮想ボックス5302及び5304が図5C3(デバイス100が拡張現実モードで仮想オブジェクト5302及び5304を表示していた)で物理的基準マット5208aに対して有していた位置に戻される。いくつかの状況(例えば、第1の閲覧モードから第2の閲覧モードへの遷移のため、デバイスが物理的環境内で移動されている)では、第2の閲覧モードから第1の閲覧モードに遷移して戻った後のディスプレイ上の第1の仮想ユーザインタフェースオブジェクトの位置は、第1の閲覧モードから第2の閲覧モードに遷移する前のディスプレイ上の第1の仮想ユーザインタフェースオブジェクトの位置とは異なる(例えば、デバイスが移動しており、それにより、第1の仮想ユーザインタフェースオブジェクトの目的位置が、第1の閲覧モードから第2の閲覧モードに遷移する前にあった位置とは異なる位置にディスプレイ上にあるため)。例えば、図5C30でのデバイス110の向きが図5C3でのデバイス100の向きとは異なるため、図5C30でのディスプレイ112上の仮想ボックス5302及び5304の位置は、図5C3でのディスプレイ112上の仮想ボックス5302及び5304の位置とは異なる(しかし、物理的基準マット5208aに対する仮想ボックス5302及び5304の位置は、図5C3及び図5C30で同じである)。仮想ユーザインタフェースオブジェクトの位置を遷移させて、オブジェクトを物理的環境との固定された空間的関係に戻すことにより、ユーザに提供されるフィードバックを改善し(例えば、コンピュータシステムをユーザ入力に対してより反応するように見せることにより)、デバイスの操作性を向上させ、ユーザ−デバイスインタフェースをより効率的にし(例えば、仮想ユーザインタフェースオブジェクトが、物理的環境との固定された空間的関係を有する閲覧モードへの遷移が行なわれていることをユーザが理解するのを支援するための視覚的合図を提供し、それにより、ユーザが必要な入力により意図された結果を達成するのを支援することによって)、加えて、ユーザがデバイスをより素早くかつ効率的に使用することを可能にすることによって、電力使用を削減し、デバイスのバッテリ寿命を改善する。
いくつかの実施形態では、第3のジェスチャの終了を検出した後に(1044)、コンピュータシステムは、シミュレートされた環境内の仮想モデルが表示される視点を変更し続けて、第2の閲覧モードでシミュレートされた環境を表示することから第1の閲覧モードでシミュレートされた環境を表示することに遷移することを示す。例えば、図5C28〜図5C30では、図5C26及び図5C27で仮想ボックス5302及び5304のサイズを増大させたデピンチズームアウト入力を提供していた接触5356及び5360のリフトオフの後に、仮想ボックス5302及び5304の表示されるサイズは、増加し続ける。いくつかの実施形態では、例えば、所定量だけ視点を変更するため、及び/又は第2の閲覧モードでシミュレートされた環境の所定のビューを表示するために、コンピュータシステムの一部分の姿勢の変化(又は他の入力)なしに、視点は変更され続ける。第1のジェスチャが終了した後にシミュレートされた環境の視点を変更し続けることにより、デバイスの操作性を向上させ、ユーザ−デバイスインタフェースをより効率的にし(例えば、フォーカスセレクタ(単数又は複数)(例えば、1つ以上の接触)の移動に対応する視点への変更量を増加させることによって)、加えて、ユーザがデバイスをより素早くかつ効率的に使用することを可能にすることによって、電力使用を削減し、デバイスのバッテリ寿命を改善する。
図10A〜図10Eにおける動作について説明された特定の順序は単なる例であり、説明された順序は、動作を実行することができる唯一の順序であることを示すことを意図するものではないことを理解されたい。当業者であれば、本明細書に記載される動作を再順序付けるための様々な方法を認識するであろう。加えて、本明細書に記載される他の方法(例えば、方法600、700、800、900、1100、1200、及び1300)に関して本明細書に記載される他のプロセスの詳細はまた、図10A〜図10Eに関して上記した方法1000にも、類似の様式で適用可能であることに留意されたい。例えば、方法1000に関連して上述した接触、ジェスチャ、ユーザインタフェースオブジェクト、フォーカスインジケータ、及び/又はアニメーションは、任意選択的に、本明細書に記載の他の方法(例えば、方法600、700、800、900、1100、1200、及び1300)に関連して本明細書に記載の接触、ジェスチャ、ユーザインタフェースオブジェクト、強度閾値、フォーカスインジケータ、及び/又はアニメーションの特性のうちの1つ以上を有する。簡潔にするために、それらの詳細はここでは繰り返さない。
図11A〜図11Cは、いくつかの実施形態に係る、いくつかの実施形態に係る、第1のコンピュータシステムによって表示されるシミュレートされた環境内の第2のコンピュータシステムの閲覧視点のインジケーションを更新するための方法1100を示すフロー図である。方法1100は、表示生成コンポーネント(例えば、ディスプレイ、プロジェクタ、ヘッドアップディスプレイなど)と、入力デバイス(例えば、タッチ感知式リモートコントロールなどのタッチ感知面、若しくは表示生成コンポーネントとしても機能するタッチスクリーンディスプレイ、マウス、ジョイスティック、ワンドコントローラ、及び/又はユーザの手などのユーザの1つ以上の特徴の位置を追跡するカメラ)と、任意選択的に、1つ以上のカメラ(例えば、カメラの視野内にあるコンテンツの少なくとも一部分のライブプレビューを連続的に提供し、かつ任意選択的に、カメラの視野内のコンテンツをキャプチャする画像フレームの1つ以上のストリームを含むビデオ出力を生成するビデオカメラ)と、任意選択的に、1つ以上の姿勢センサと、任意選択的に、タッチ感知面との接触の強度を検出する1つ以上のセンサと、任意選択的に、1つ以上の触知出力生成器と、を含む(かつ/又はそれらと通信している)コンピュータシステム(例えば、ポータブル多機能デバイス100、図1A、デバイス300、図3A、又は、ヘッドセット5008及び入力デバイス5010を含むマルチコンポーネントコンピュータシステム、図5A2)において実行される。いくつかの実施形態では、入力デバイス(例えば、タッチ感知面を有する)及び表示生成コンポーネントは、タッチ感知ディスプレイに統合される。図3B〜図3Dに関して上述したように、いくつかの実施形態では、方法1100は、表示生成コンポーネント、1つ以上のカメラ、1つ以上の入力デバイス、及び任意選択的に1つ以上の姿勢センサなどのそれぞれの構成要素が、それぞれ、コンピュータシステム301に含まれる、又はコンピュータシステム301と通信しているのいずれかである、コンピュータシステム301(例えば、コンピュータシステム301−a、301−b、又は301−c)で実行される。
いくつかの実施形態では、表示生成コンポーネントは、タッチスクリーンディスプレイであり、入力デバイス(例えば、タッチ感知面を有する)は、表示生成コンポーネント上にある、又はそれと統合されている。いくつかの実施形態では、表示生成コンポーネントは、入力デバイスとは別個である(例えば、図4B及び図5A2に示すように)。方法1100の一部の動作が任意選択的に組み合わされ、かつ/又は、一部の動作の順序が任意選択的に変更される。
説明の便宜上、実施形態のいくつかは、タッチ感知ディスプレイシステム112及び1つ以上の一体型カメラを有するコンピュータシステム上(例えば、タッチスクリーン112を有するデバイス100上)で実行される動作を参照して説明する。しかしながら、類似の動作は、任意選択的に、ヘッドセット5008のディスプレイ上に図に示すユーザインタフェースを表示している間に、入力デバイス5010のタッチ感知面上の接触を検出したことに応じて、ヘッドセット5008とタッチ感知面を有する別個の入力デバイス5010とを有するコンピュータシステム(例えば、図5A2に示すような)上で実行される。同様に、類似の動作は、任意選択的に、コンピュータシステムの1つ以上の他の構成要素(例えば、入力デバイス)とは別個に(例えば、ヘッドセット内に)実装される1つ以上のカメラを有するコンピュータシステム上で実行され、いくつかのそのような実施形態では、「コンピュータシステムの移動」は、コンピュータシステムの1つ以上のカメラの移動、又はコンピュータシステムと通信する1つ以上のカメラの移動に対応する。
後述するように、方法1100は、第2のユーザの第2のコンピュータシステムの閲覧視点の視覚的インジケーションを表示する第1のユーザの第1のコンピュータシステムに関する。視覚的インジケーションは、第1のユーザの物理的環境に対して向けられたシミュレートされた環境内に表示される。第2のコンピュータシステムの閲覧視点が変化すると、閲覧視点の視覚的インジケーションは、更新される。第1のコンピュータシステムによって表示されるシミュレートされた環境内の第2のコンピュータシステムの閲覧視点の視覚的インジケーションを更新することにより、複数のコンピュータシステムのユーザ間の協働を可能にする。複数のデバイスのユーザ間の協働を可能にすることにより、第1のユーザがシミュレートされた環境内で動作を実行することができる効率を増大させ(例えば、第2のコンピュータシステムの第2のユーザがタスクに寄与することを可能にし、第1のコンピュータシステムの第1のユーザによって必要とされるタスクへの寄与量を低減することによって)、それによって、コンピュータシステムの操作性を向上させ、加えて、ユーザがコンピュータシステムをより素早くかつ効率的に使用することを可能にすることによって、電力使用を削減し、デバイスのバッテリ寿命を改善する。
第1のコンピュータシステム(例えば、デバイス5406、図5D1)は、第1のコンピュータシステムの第1の表示生成コンポーネントを介して、第1のコンピュータシステムの第1の物理環境に対して向けられたシミュレートされた環境(例えば、仮想現実環境又は拡張現実環境)を表示する(1102)(例えば、図5D2のデバイス5406のディスプレイ5418に示すように)。シミュレートされた環境を表示することは、第1のコンピュータシステム5406の第1の物理的環境に関連付けられたシミュレートされた環境内の対応する位置に表示された仮想モデル(例えば、レンダリングされた3次元モデル)内の第1の仮想ユーザインタフェースオブジェクト(例えば、仮想ボックス5420、図5D3b)(例えば、レンダリングされた3次元モデルの視覚的外観(例えば、サイズ、位置、及び向きに反映されたような)は、コンピュータシステムがどのように物理的環境内のテーブル表面又は他の表面に対して配置され、かつ向けられるかに依存して変化する)と、シミュレートされた環境の第2のコンピュータシステム5412の閲覧視点の視覚的インジケーション(例えば、閲覧視点インジケータ5432、図5D3b)と、を同時に表示することを含む(1104)。第2のコンピュータシステム5412は、第2の表示生成コンポーネント(例えば、ディスプレイ、プロジェクタ、ヘッドアップディスプレイなど)と、1つ以上の第2の姿勢センサ(例えば、1つ以上のカメラ、ジャイロスコープ、慣性測定ユニット、又はコンピュータシステムの物理的環境に対するコンピュータシステムの向き及び/又は位置の変化をコンピュータシステムが検出することを可能にする他のセンサ)と、第2のコンピュータシステムの第2の表示生成コンポーネントを介して、第2のコンピュータシステム5412の第2の物理的環境に対して向けられたシミュレートされた環境のビュー(例えば、第2のコンピュータシステムのカメラから出力されたライブ画像の少なくとも一部に重ね合わされた第1の仮想ユーザインタフェースオブジェクト5402を含む拡張現実ビュー)を表示している(例えば、図5D3cに示すように)第2の入力デバイス(例えば、タッチ感知面)と、を有するコンピュータシステムである。
第1のコンピュータシステムの第1の表示生成コンポーネントを介してシミュレートされた環境を表示している間に(1106)、第1のコンピュータシステム5406は、第2のコンピュータシステムの第2の物理的環境に対する第2のコンピュータシステムの一部分の姿勢の変化(例えば、第2のコンピュータシステムの一部分の姿勢の変化、及び/又は、第2のコンピュータシステムによってマーカとして使用される物理的オブジェクトの姿勢の変化などの物理的環境の少なくとも一部分の姿勢の変化)に基づいて、シミュレートされた環境の第2のコンピュータシステム5412の閲覧視点の変化を検出する(例えば、図5D3及び図5D4に示すように)。
第2のコンピュータシステムの物理的環境に対する第2のコンピュータシステム5412の一部分の姿勢の変化に基づいて、シミュレートされた環境の第2のコンピュータシステムの閲覧視点の変化を検出したことに応じて(1108)、第1のコンピュータシステム5406は、シミュレートされた環境の第2のコンピュータシステム5412の閲覧視点の変化に従って、第1のコンピュータシステム5406の第1の表示生成コンポーネントを介して表示された、シミュレートされた環境の第2のコンピュータシステム5412の閲覧視点の視覚的インジケーションを更新する。例えば、図5D3bに示すように、第1のコンピュータシステム5406のディスプレイは、第2のコンピュータシステム5412に対応する閲覧視点インジケータ5432を表示する。閲覧視点インジケータ5432は、第2のコンピュータシステム5412の位置の変化(図5D3a〜図5D4aに示すような)に基づいて、図5D3bから図5D4bに更新される。
いくつかの実施形態では、第2のコンピュータシステムの閲覧視点の視覚的インジケーションは、第2のコンピュータシステムに対応するシミュレートされた環境内の位置に表示される、第2のコンピュータシステムの表現(例えば、第1のコンピュータシステムの1つ以上のカメラによって検出されたときの第2のコンピュータシステムのビュー及び/又は第2のコンピュータシステムの仮想表現)を含む(1110)。例えば、図5D3bに示すように、第1のコンピュータシステム5406のディスプレイは、第2のコンピュータシステム5412に対応するアバター5428を表示する。第2のコンピュータシステムに対応する位置に第2のコンピュータシステムの表現を表示することにより、第2のコンピュータシステムに関する第1のユーザに利用可能な情報を改善する(例えば、閲覧視点の視覚的インジケーションが遠隔のコンピュータシステムに対応することをユーザが理解するのを支援するために)。第2のコンピュータシステムに関する第1のユーザに利用可能な情報を改善することにより、デバイスの操作性を向上させ(例えば、ユーザが他のユーザとより効果的に協働することを可能にすることによって)、ユーザ−デバイスインタフェースをより効率的にし、加えて、ユーザがデバイスをより素早くかつ効率的に使用することを可能にすることによって、電力使用を削減し、デバイスのバッテリ寿命を改善する。
いくつかの実施形態では、第2のコンピュータシステムの表現は、第2のコンピュータシステムに対応する識別インジケータ(例えば、テキスト、2次元画像(絵文字、又は写真など)、及び/又は3次元モデル)を含む(1112)。例えば、図5D3bに示すようなアバター5428は、第2のコンピュータシステム5412に対応する識別インジケータである。第2のコンピュータシステムに対応する位置に第2のコンピュータシステムの識別インジケータを表示することにより、第2のコンピュータシステムに関する第1のユーザに利用可能な情報を改善する。第2のコンピュータシステムに関する第1のユーザに利用可能な情報を改善することにより、ユーザ−デバイスインタフェースをより効率的にし(例えば、第1のユーザが第2のユーザの閲覧視点の視覚的インジケータと遠隔のコンピューティングシステムの他のユーザの閲覧視点の視覚的インジケータとを区別するのを支援することによって)、加えて、ユーザがデバイスをより素早くかつ効率的に使用することを可能にすることによって、電力使用を削減し、デバイスのバッテリ寿命を改善する。
いくつかの実施形態では、第2のコンピュータシステム5412の閲覧視点の視覚的インジケーションは、第2のコンピュータシステム5412に対応するシミュレートされた環境内の位置から発して(例えば、粒子の円錐などの円錐、又は1つ以上の光線として)、第2のコンピュータシステムの視線を示す、インジケータ5432を含む(1114)。いくつかの実施形態では、1つ以上の光線は、仮想モデル内の(任意の)ユーザインタフェースオブジェクトまで延びない少なくとも1つの光線を含む。例えば、1つ以上の光線は、第1の仮想ユーザインタフェースオブジェクト5420に接続しない。いくつかの実施形態では、視覚的インジケータ5432は、第2のコンピュータシステム5412の表現からより遠くに延びるにつれて、より広くなり、第2のコンピュータシステム5412の視野をより正確に表現する。インジケータを表示して第2のコンピュータシステムの視線を示すことにより、第2のコンピュータシステムに関する第1のユーザに利用可能な情報を改善する(例えば、第2のユーザが第2のコンピュータシステムのディスプレイ上で何を閲覧しているか、及び第2のユーザが潜在的に相互作用することになるそのビュー内のオブジェクトを第1のユーザが理解するのを支援するための合図を提供することによって)。第2のコンピュータシステムに関する第1のユーザに利用可能な情報を改善することにより、ユーザ−デバイスインタフェースをより効率的にし(例えば、ユーザが他のユーザとより効果的に協働することを可能にすることによって)、加えて、第1のユーザがデバイスをより素早くかつ効率的に使用することを可能にすることによって、電力使用を削減し、デバイスのバッテリ寿命を改善する。
いくつかの実施形態では、シミュレートされた環境を表示することは、シミュレートされた環境内の第2のコンピュータシステム5412が、第1の仮想ユーザインタフェースオブジェクト5420と相互作用しているとの判定に従って(例えば、第2のコンピュータシステムは、第1のユーザインタフェースオブジェクト5420を選択した、第1のユーザインタフェースオブジェクト5420を移動している、かつ/又は第1のユーザインタフェースオブジェクト5420のサイズ及び/若しくは形状を変更している)、第1のコンピュータシステム5406の第1の表示生成コンポーネントを介して、第1の仮想ユーザインタフェースオブジェクト5420に視覚的に関連付けられた相互作用インジケータ(例えば、図5D5bに示すような相互作用インジケータ5452)を表示することを含む(1116)。いくつかの実施形態では、シミュレートされた環境内の第2のコンピュータシステム5412が、第2の仮想ユーザインタフェースオブジェクトと相互作用しているとの判定に従って(例えば、第2のコンピュータシステム5412は、第2のユーザインタフェースオブジェクトを選択した、第2のユーザインタフェースオブジェクトを移動している、かつ/又は第2のユーザインタフェースオブジェクトのサイズ及び/若しくは形状を変更している)、第1のコンピュータシステム5406は、第1のコンピュータシステムの第1の表示生成コンポーネントを介して、第2の仮想ユーザインタフェースオブジェクトに視覚的に関連付けられた相互作用インジケータを表示する。第2のコンピュータシステム5412が、相互作用している仮想ユーザインタフェースオブジェクトを示す相互作用インジケータ5452を表示することにより、複数のコンピュータシステムのユーザ間の協働を改善する。複数のコンピュータシステムのユーザ間の協働を改善することにより、ユーザがシミュレートされた環境内で動作を実行する効率を増大させ(例えば、第2のコンピュータシステムの第2のユーザが仮想ユーザインタフェースオブジェクトを伴うタスクに寄与することを可能にし、第1のコンピュータシステムの第1のユーザによって必要とされるタスクへの寄与量を低減することによって)、それによって、コンピュータシステムの操作性を向上させ、加えて、ユーザがコンピュータシステムをより素早くかつ効率的に使用することを可能にすることによって、電力使用を削減し、デバイスのバッテリ寿命を改善する。
いくつかの実施形態では、シミュレートされた環境を表示することは、第2のコンピュータシステム5412の第1の仮想ユーザインタフェースオブジェクト5420との相互作用がオブジェクト操作入力を含むとの判定に従って、オブジェクト操作入力に従って、第1の仮想ユーザインタフェースオブジェクトの外観を変更すること(例えば、第1の仮想ユーザインタフェースオブジェクト5420のサイズ、形状、及び/若しくは位置を移動、拡大、縮小、並びに/又は別の方法で変更することによって)を含む(1118)。例えば、図5D5b〜図5D6bでは、仮想ユーザインタフェースオブジェクト5420は、図5D5c〜図5D6cに示す移動入力に応じて移動される。図5D9b〜図5D10bでは、仮想ユーザインタフェースオブジェクト5420のサイズは、図5D9c〜図5D10cに示すサイズ変更入力に応じて変更される。仮想ユーザインタフェースオブジェクトを操作する第2のコンピュータシステムによる入力に従って、仮想ユーザインタフェースオブジェクトの外観を変更することにより、複数のコンピュータシステムのユーザ間の協働を改善する。複数のコンピュータシステムのユーザ間の協働を改善することにより、ユーザがシミュレートされた環境内で動作を実行する効率を増大させ(例えば、仮想ユーザインタフェースオブジェクトを伴うタスクへの第2のユーザによる寄与を第1のユーザに明らかにし、第1のコンピュータシステムの第1のユーザによって必要とされるタスクへの寄与量を低減することによって)、それによって、コンピュータシステムの操作性を向上させ、加えて、ユーザがコンピュータシステムをより素早くかつ効率的に使用することを可能にすることによって、電力使用を削減し、デバイスのバッテリ寿命を改善する。
いくつかの実施形態では、オブジェクト操作入力に従って第1の仮想ユーザインタフェースオブジェクト5420の外観を変更することは、第1の仮想ユーザインタフェースオブジェクト5420に視覚的に関連付けられた相互作用インジケータ5452の移動を表示することを含み(1120)、相互作用インジケータの移動は、オブジェクト操作入力に対応する(例えば、図5D5b〜図5D6bに示すように)。例えば、相互作用インジケータ5452の一部分(例えば、相互作用インジケータ5452の終点)は、第1の仮想ユーザインタフェースオブジェクト5420上の点に対応する位置に表示され、それにより、第1の仮想ユーザインタフェースオブジェクトの位置及び/又はサイズの変化によって第1の仮想ユーザインタフェースオブジェクト上の点が変化するにつれて、その部分が移動する。仮想ユーザインタフェースオブジェクトを操作する第2のコンピュータシステムの入力に従って相互作用インジケータを移動させることにより、第2のコンピュータシステムに関する第1のユーザに利用可能な情報を改善する(例えば、仮想ユーザインタフェースオブジェクトへの変更と第2のコンピュータシステムとの間の接続に関する視覚的合図を第1のユーザに提供し、仮想ユーザインタフェースオブジェクトが第2のコンピュータシステムで受信された入力の結果として変更されることをユーザが理解することを支援することによって)。第1のユーザに利用可能な情報を改善することにより、ユーザ−デバイスインタフェースをより効率的にし(例えば、第1のユーザが他のユーザとより効果的に協働することを可能にすることによって)、加えて、ユーザがデバイスをより素早くかつ効率的に使用することを可能にすることによって、電力使用を削減し、デバイスのバッテリ寿命を改善する。
いくつかの実施形態では、相互作用インジケータ5452は、シミュレートされた環境内の第2のコンピュータシステムに対応する位置と第1の仮想ユーザインタフェースオブジェクトとの間の接続(例えば、線)の視覚的インジケーションを含む(1122)。例えば、図5D5bでは、相互作用インジケータ5452は、(第2のコンピュータシステム5412を識別する)アバター5428と仮想ボックス5420との間の線として示されている。第2のコンピュータシステムの表示された位置と仮想ユーザインタフェースオブジェクトとの間の接続の視覚的インジケーションを含む相互作用インジケータを表示することにより、第2のコンピュータシステムに関する第1のユーザに利用可能な情報を改善する(例えば、仮想ユーザインタフェースオブジェクトと仮想ユーザインタフェースオブジェクトと相互作用している第2のコンピュータシステムとの間の接続に関する視覚的合図を第1のユーザに提供し、第2のコンピュータシステムが仮想ユーザインタフェースオブジェクトと相互作用していることをユーザが理解することを支援することによって)。第1のユーザに利用可能な情報を改善することにより、ユーザ−デバイスインタフェースをより効率的にし(例えば、第1のユーザが他のユーザとより効果的に協働することを可能にすることによって)、加えて、ユーザがデバイスをより素早くかつ効率的に使用することを可能にすることによって、電力使用を削減し、デバイスのバッテリ寿命を改善する。
いくつかの実施形態では、相互作用インジケータ5452は、第1のユーザインタフェースオブジェクト5420との相互作用点の視覚的インジケーション(例えば、制御ハンドル5454、図5D5b)を含む(1124)。例えば、接続の視覚的インジケーションが第1のユーザインタフェースオブジェクト5420と交わる点に、接続点(例えば、ドット)が表示される。いくつかの実施形態では、接続点は、ユーザが相互作用しているオブジェクトの点、側面、制御ハンドル、又は他の部分を示す。いくつかの実施形態では、第2のコンピュータシステムが、第1のユーザインタフェースオブジェクトの異なる部分と相互作用し始めると、相互作用インジケータは、変化して、第1のユーザインタフェースオブジェクトと第2のコンピュータシステムとの間の相互作用点を示す。仮想ユーザインタフェースオブジェクトとの相互作用点の視覚的インジケーションを含む相互作用インジケータを表示することにより、第2のコンピュータシステムに関する第1のユーザに利用可能な情報を改善する(例えば、第2のコンピュータシステムが仮想ユーザインタフェースオブジェクトと相互作用している方法に関する視覚的合図を第1のユーザに提供し、ユーザが、第2のコンピュータシステムが仮想ユーザインタフェースオブジェクトとどのように相互作用しているかを理解し、第2のコンピュータシステムによってなされることになる変更を予測することを支援することによって)。第1のユーザに利用可能な情報を改善することにより、ユーザ−デバイスインタフェースをより効率的にし(例えば、第1のユーザが他のユーザとより効果的に協働することを可能にすることによって)、加えて、ユーザがデバイスをより素早くかつ効率的に使用することを可能にすることによって、電力使用を削減し、デバイスのバッテリ寿命を改善する。
いくつかの実施形態では、シミュレートされた環境を表示することは、第1のコンピュータシステム5406を介して(例えば、1つ以上のカメラ(例えば、カメラの視野内にあるコンテンツの少なくとも一部分のライブプレビューを連続的に提供し、かつ任意選択的に、カメラの視野内のコンテンツをキャプチャする画像フレームの1つ以上のストリームを含むビデオ出力を生成するビデオカメラ)などの第1のコンピュータシステムの1つ以上のセンサを使用して)、第1の物理的環境内の第1の物理的基準オブジェクト(例えば、第1の基準マット5416a、図5D4a)を検出することを含む(1126)。いくつかの実施形態では、物理的基準オブジェクトは、位置を検出するための1つ以上のセンサと、位置情報を送信するように構成された1つ以上の通信構成要素と、を含むデバイスである。いくつかの実施形態では、物理的基準オブジェクトの位置は、第1の物理的基準オブジェクト及び第1のコンピュータシステムから遠隔にあるデバイスによって検出される。いくつかの実施形態では、シミュレートされた環境を表示することはまた、第1のコンピュータシステムの第1の表示生成コンポーネントを介して表示されたシミュレートされた環境内に、第1の物理的基準オブジェクトに対する位置に第1の仮想ユーザインタフェースオブジェクト5420(例えば、第1の物理的基準オブジェクトのライブカメラビュー及び/又は第1の物理的基準オブジェクトに対応する仮想モデルなどの、第1の物理的基準オブジェクトの視覚的表現)を表示することを含む。第2のコンピュータシステム5412の閲覧視点の変化を検出したことに応じて、第1のコンピュータシステムは、第1の物理的基準オブジェクト5416aに対する相互作用インジケータ5462の位置を更新する(例えば、図5D9a〜図5D10a及び図5D9b〜図5D10bに示すように、位置相互作用インジケータ5462は、デバイス5412の位置が変化するにつれて変化する)。いくつかの実施形態では、第2のコンピュータシステム5412の閲覧視点の視覚的インジケーション5432もまた、更新されて、第2のコンピュータシステムの閲覧視点の変化を示す。第2のコンピュータシステムの閲覧視点が変化するにつれて、物理的基準オブジェクトに対する相互作用インジケータの位置を更新することにより、第2のコンピュータシステムに関する第1のユーザに利用可能な情報を改善する(例えば、第2のコンピュータシステム及び物理的環境の相対的な配置に関する視覚的合図を第1のユーザに提供し、第2のコンピュータシステムの第2のユーザがどのようにシミュレートされた環境を閲覧するかを第1のユーザが理解することを支援することによって)。第1のユーザに利用可能な情報を改善することにより、ユーザ−デバイスインタフェースをより効率的にし(例えば、第1のユーザが他のユーザとより効果的に協働することを可能にすることによって)、加えて、ユーザがデバイスをより素早くかつ効率的に使用することを可能にすることによって、電力使用を削減し、デバイスのバッテリ寿命を改善する。
いくつかの実施形態では、第2のコンピュータシステムの第2の物理的環境は、第1のコンピュータシステムの第1の物理的環境とは別個である(1128)。例えば、図5D12bは、第1の物理的環境5400とは別個の第2の物理的環境5470を示す。第2のコンピュータシステム(例えば、デバイス5478、図5D12b)は、第2の物理的な環境5470内の第2の物理的基準オブジェクト(例えば、第2の基準マット5476a)を検出する(例えば、1つ以上のカメラなどの第2のコンピュータシステムの1つ以上のセンサを使用して)。いくつかの実施形態では、第1の物理的基準オブジェクト(例えば、物理的基準マット5416a、図5D12a)及び第2の物理的基準オブジェクト(例えば、物理的基準マット5476a、図5D12b)は、1つ以上の共有特性(例えば、同じ面積、形状、及び/又は参照パターン)を有する。いくつかの実施形態では、第2のコンピュータシステムの第2の表示生成コンポーネントを介して表示されたシミュレートされた環境内で(例えば、図5D14cに示すような)、第1の仮想ユーザインタフェースオブジェクト5420は、第1の物理的基準オブジェクト5416aに対する第1の仮想ユーザインタフェースオブジェクト5420の位置の、第2の物理基準オブジェクト(例えば、第2の物理的基準オブジェクト5476aのライブカメラビュー5476b及び/又は第2の物理的基準オブジェクトに対応する(例えば、そのライブカメラビューに固定された)仮想モデルなどの、第2の物理的基準オブジェクト5476aの視覚的表現5476b)に対する位置に表示される。例えば、第2の固定位置は、第2の物理的基準オブジェクト5476aの境界に対して、第1の基準オブジェクト5146aの境界に対する第1の固定位置の位置と同じ位置にある(例えば、第1の固定位置が第1の物理的基準オブジェクト5146aの中心にある場合、第2の固定位置は、第2の物理的基準オブジェクト5476aの中心にある、及び/又はその逆も同様である)。移動入力が第1の仮想ユーザインタフェースオブジェクトの位置を第1の物理的基準オブジェクトに対して第1の経路に沿って移動させる場合、第2の表示生成コンポーネントを介して表示されるシミュレートされた環境内の第1の仮想ユーザインタフェースオブジェクトの位置は、第1の物理的基準オブジェクトに対する第1の経路と同じ軌道を有する、第2の物理的基準オブジェクトに対する第2の経路に沿って移動する。第1のコンピュータシステムによって表示された、シミュレートされた環境内で第1の物理的基準オブジェクトに対してある位置に仮想ユーザインタフェースオブジェクトを表示し、第2のコンピュータシステムによって表示された、シミュレートされた環境内で第2の物理的基準オブジェクトに対してある位置に同じ仮想ユーザインタフェースオブジェクトを表示することにより、第1のユーザ及び第2のユーザが同じ物理的位置にいない間に、第1のユーザ及び第2のユーザが共有されたシミュレートされた環境内で協働することを可能にする。第1のユーザ及び第2のユーザが同じ物理的位置にいない間に、第1のユーザ及び第2のユーザが共有されたシミュレートされた環境内で協働することを可能にすることにより、複数のコンピュータシステムのユーザ間の協働を改善し、ユーザがシミュレートされた環境内で動作を実行する効率を増大させ(例えば、仮想ユーザインタフェースオブジェクトを伴うタスクへの第2のユーザによる寄与を第1のユーザに明らかにし、第1のコンピュータシステムの第1のユーザによって必要とされるタスクへの寄与量を低減することによって)、それによって、コンピュータシステムの操作性を向上させ、加えて、ユーザがコンピュータシステムをより素早くかつ効率的に使用することを可能にすることによって、電力使用を削減し、デバイスのバッテリ寿命を改善する。
いくつかの実施形態では、第1のコンピュータシステムの第1の物理的環境5400は、第2のコンピュータシステムの第2の物理的環境の少なくとも一部を含み(1130)(例えば、第1のコンピュータシステム5408及び第2のコンピュータシステム5412は、図5D1に示すように、同じ(ローカル)物理的空間内にある)、第2のコンピュータシステム(例えば、第2のコンピュータシステムのライブ画像、及び/又は第2のコンピュータシステムの仮想バージョン(例えば、第2のコンピュータシステムのライブ画像の上に重ね合わされた))は、第1の表示生成コンポーネントを介して表示されたシミュレートされた環境内に見える。例えば、図5D4bでは、デバイス5412の表現5430(例えば、デバイス5406のカメラによってキャプチャされたときのデバイス5412のビュー及び/又はデバイス5412のレンダリングされたバージョン)が示される。第1のコンピュータシステム及び第2のコンピュータシステムが少なくとも部分的に同じ物理的環境内にあるときに、第1のコンピュータシステムによって表示されるシミュレートされた環境内に第2のコンピュータシステムを表示することにより、第1のコンピュータシステムの第1のユーザと第2のコンピュータシステムの第2のユーザとの間の協働を改善する(例えば、第1のユーザが第1のコンピュータシステムに対する第2のコンピュータシステムの位置を理解することを支援することによって)。第1のコンピュータシステムの第1のユーザと第2のコンピュータシステムの第2のユーザとの間の協働を改善することにより、第1のユーザがシミュレートされた環境内で動作を実行する効率を増大させ、それにより、コンピュータシステムの操作性を向上させ、加えて、ユーザがコンピュータシステムをより素早くかつ効率的に使用することを可能にすることによって、電力使用を削減し、デバイスのバッテリ寿命を改善する。
いくつかの実施形態では、第1のコンピュータシステムは、第1の入力デバイス5406によって、遠隔デバイス視点入力(例えば、ボタン及び/又はメニュー項目などのユーザインタフェースコントロールで検出された入力、又はスワイプジェスチャなどのジェスチャ入力)を検出し(1132)、遠隔デバイス視点入力を検出したことに応じて、第1のコンピュータシステムは、第1のコンピュータシステムの第1の物理的環境に対して向けられたシミュレートされた環境の表示を、第2のコンピュータシステムの第2の物理的環境に対して向けられたシミュレートされた環境の表示に置き換える。例えば、入力に応じて、デバイス5406は、図5D4cに示すビューなどのデバイス5412のビューを表示する。第1のコンピュータシステムの第1の入力デバイスでの入力に応じて、第1のコンピュータシステムのシミュレートされた環境の表示を、第2のコンピュータシステムのシミュレートされた環境の表示に置き換えることにより、第1のコンピュータシステムの第1のユーザと第2のコンピュータシステムの第2のユーザとの間の協働を改善する(例えば、第1のユーザが別のユーザの視点を正確に視覚化することを可能にすることによって)。第1のコンピュータシステムの第1のユーザと第2のコンピュータシステムの第2のユーザとの間の協働を改善することにより、第1のユーザがシミュレートされた環境内で動作を実行する効率を増大させ(例えば、第1のユーザが第2のユーザの視点に関する情報を使用して、閲覧されているユーザインタフェースオブジェクトに関して正確に通信することを可能にすることによって)、それにより、コンピュータシステムの操作性を向上させ、加えて、ユーザがコンピュータシステムをより素早くかつ効率的に使用することを可能にすることによって、電力使用を削減し、デバイスのバッテリ寿命を改善する。
図11A〜図11Cにおける動作について説明された特定の順序は単なる例であり、説明された順序は、動作を実行することができる唯一の順序であることを示すことを意図するものではないことを理解されたい。当業者であれば、本明細書に記載される動作を再順序付けるための様々な方法を認識するであろう。加えて、本明細書に記載される他の方法(例えば、方法600、700、800、900、1000、1200、及び1300)に関して本明細書に記載される他のプロセスの詳細はまた、図11A〜図11Cに関して上記した方法1100にも、類似の様式で適用可能であることに留意されたい。例えば、方法1100に関連して上述した接触、ジェスチャ、ユーザインタフェースオブジェクト、フォーカスインジケータ、及び/又はアニメーションは、任意選択的に、本明細書に記載の他の方法(例えば、方法600、700、800、900、1000、1200、及び1300)に関連して本明細書に記載の接触、ジェスチャ、ユーザインタフェースオブジェクト、強度閾値、フォーカスインジケータ、及び/又はアニメーションの特性のうちの1つ以上を有する。簡潔にするために、それらの詳細はここでは繰り返さない。
図12A〜図12Dは、いくつかの実施形態に係る、挿入カーソルの配置のための方法1200を示すフロー図である。方法1200は、表示生成コンポーネント(例えば、ディスプレイ、プロジェクタ、ヘッドアップディスプレイなど)と、入力デバイス(例えば、タッチ感知式リモートコントロールなどのタッチ感知面、若しくは表示生成コンポーネントとしても機能するタッチスクリーンディスプレイ、マウス、ジョイスティック、ワンドコントローラ、及び/又はユーザの手などのユーザの1つ以上の特徴の位置を追跡するカメラ)と、任意選択的に、1つ以上のカメラ(例えば、カメラの視野内にあるコンテンツの少なくとも一部分のライブプレビューを連続的に提供し、かつ任意選択的に、カメラの視野内のコンテンツをキャプチャする画像フレームの1つ以上のストリームを含むビデオ出力を生成するビデオカメラ)と、任意選択的に、1つ以上の姿勢センサと、任意選択的に、タッチ感知面との接触の強度を検出する1つ以上のセンサと、任意選択的に、1つ以上の触知出力生成器と、を含む(かつ/又はそれらと通信している)コンピュータシステム(例えば、ポータブル多機能デバイス100、図1A、デバイス300、図3A、又は、ヘッドセット5008及び入力デバイス5010を含むマルチコンポーネントコンピュータシステム、図5A2)において実行される。いくつかの実施形態では、入力デバイス(例えば、タッチ感知面を有する)及び表示生成コンポーネントは、タッチ感知ディスプレイに統合される。図3B〜図3Dに関して上述したように、いくつかの実施形態では、方法1200は、表示生成コンポーネント、1つ以上のカメラ、1つ以上の入力デバイス、及び任意選択的に1つ以上の姿勢センサなどのそれぞれの構成要素が、それぞれ、コンピュータシステム301に含まれる、又はコンピュータシステム301と通信しているのいずれかである、コンピュータシステム301(例えば、コンピュータシステム301−a、301−b、又は301−c)で実行される。
いくつかの実施形態では、表示生成コンポーネントは、タッチスクリーンディスプレイであり、入力デバイス(例えば、タッチ感知面を有する)は、表示生成コンポーネント上にある、又はそれと統合されている。いくつかの実施形態では、表示生成コンポーネントは、入力デバイスとは別個である(例えば、図4B及び図5A2に示すように)。方法1200の一部の動作が任意選択的に組み合わされ、かつ/又は、一部の動作の順序が任意選択的に変更される。
説明の便宜上、実施形態のいくつかは、タッチ感知ディスプレイシステム112及び1つ以上の一体型カメラを有するコンピュータシステム上(例えば、タッチスクリーン112を有するデバイス100上)で実行される動作を参照して説明する。しかしながら、類似の動作は、任意選択的に、ヘッドセット5008のディスプレイ上に図に示すユーザインタフェースを表示している間に、入力デバイス5010のタッチ感知面上の接触を検出したことに応じて、ヘッドセット5008とタッチ感知面を有する別個の入力デバイス5010とを有するコンピュータシステム(例えば、図5A2に示すような)上で実行される。同様に、類似の動作は、任意選択的に、コンピュータシステムの1つ以上の他の構成要素(例えば、入力デバイス)とは別個に(例えば、ヘッドセット内に)実装される1つ以上のカメラを有するコンピュータシステム上で実行され、いくつかのそのような実施形態では、「コンピュータシステムの移動」は、コンピュータシステムの1つ以上のカメラの移動、又はコンピュータシステムと通信する1つ以上のカメラの移動に対応する。
後述するように、方法1200は、(例えば、オブジェクトの配置のためのシミュレートされた環境内の位置を示すための)挿入カーソルの配置のための入力に関する。同じタイプの入力を使用して、シミュレートされた環境内にオブジェクトを挿入することができる(例えば、入力が表示された挿入カーソルの位置に対応する位置で受信されるとき)。フォーカスセレクタの位置が表示された挿入カーソルの位置に対応するか否かに応じて、第1のタイプの入力を検出したことに応じて、フォーカスセレクタの位置に挿入カーソルを表示する、又はフォーカスセレクタの位置に第1のオブジェクトを挿入するかを判定することにより、第1のタイプの入力で異なる複数のタイプの動作の実行を可能にする。第1のタイプの入力により異なる複数のタイプの動作の実行を可能にすることにより、ユーザがこれらの動作を実行することができる効率を高め、それによって、デバイスの操作性を向上させ、加えて、ユーザがデバイスをより素早くかつ効率的に使用することを可能にすることによって、電力使用を削減し、デバイスのバッテリ寿命を改善する。
コンピュータシステム(例えば、デバイス100、図5E1)は、第1のコンピュータシステムの表示生成コンポーネントを介して、シミュレートされた環境(例えば、仮想現実環境又は拡張現実環境)を表示する(1202)。例えば、図5E2に示すように、デバイス100のディスプレイ112上に拡張現実環境が表示される。
シミュレートされた環境を表示している間に、コンピュータシステムは、入力デバイス(例えば、デバイス100のタッチスクリーンディスプレイ112)を介して、シミュレートされた環境内の対応する位置に向けられた第1の入力を検出する(1204)。例えば、図5E7では、タッチスクリーンディスプレイ112との接触5506による入力は、挿入カーソル(例えば、挿入カーソル5504)の位置に対応しない位置で検出される。例えば、図5E9では、タッチスクリーンディスプレイ112との接触5510による入力は、挿入カーソル(例えば、挿入カーソル5508)の位置に対応する位置で検出される。
シミュレートされた環境内の対応する位置に向けられた第1の入力を検出したことに応じて(1206)、第1の入力が第1の入力形式(例えば、シミュレートされた環境内の位置で検出されたタップ入力)であり、かつ第1の入力がシミュレートされた環境内の挿入カーソルの現在位置以外のシミュレートされた環境内の第1の位置で検出された(例えば、図5E7に示すような挿入カーソル5504の現在位置に対応しない位置での接触5506による入力)との判定に従って、コンピュータシステムは、挿入カーソルを第1の位置に表示する(例えば、既存の挿入カーソルを以前の位置から第1の位置に移動させる、又は第1の入力の前にシミュレートされた環境内に挿入カーソルが表示されていなかった場合、第1の位置に新しい挿入カーソルを表示する)。例えば、図5E7に示すような接触5506による入力に応じて、挿入カーソル5504は、図5E7に示す位置から、図5E8の挿入カーソル5508によって示すように、接触5506が受信された位置まで移動される。第1の入力が第1の入力形式であり、かつ第1の入力が挿入カーソルの現在位置に対応するシミュレートされた環境内の第2の位置で検出された(例えば、図5E9に示すような挿入カーソル5508の現在位置に対応する位置での接触5510による入力)との判定に従って、コンピュータシステムは、第2の位置に第1のオブジェクト(例えば、仮想ボックス5512)を挿入し、挿入カーソルを第1のオブジェクト上にある第3の位置に移動させる(例えば、挿入カーソル5508は、仮想ボックス5512の表面5514に移動される)。
いくつかの実施形態では、デバイスは、複数の連続する反復にわたって方法1200を繰り返し実行し(1208)、連続する反復の第1の反復では、第1の入力は、第1のタイプであり、かつシミュレートされた環境内の第1の位置で検出され、それに応じて、挿入カーソルは、第1の位置に表示され、連続する反復の第2の反復では、第1の入力は、第1のタイプであり、かつ挿入点の現在位置に対応するシミュレートされた環境内の第2の位置で検出され、それに応じて、第1のオブジェクトは、第2の位置に挿入され、挿入カーソルは、第1のオブジェクト上にある第3の位置に移動される。フォーカスセレクタの位置が表示された挿入カーソルの位置に対応するか否かに応じて、第1のタイプの入力を検出したことに応じて、フォーカスセレクタの位置に挿入カーソルを表示する、又はフォーカスセレクタの位置に第1のオブジェクトを挿入するかを判定することにより、第1のタイプの入力で異なる複数のタイプの動作の実行を可能にする。第1のタイプの入力により異なる複数のタイプの動作の実行を可能にすることにより、ユーザがこれらの動作を実行することができる効率を高め、それによって、デバイスの操作性を向上させ、加えて、ユーザがデバイスをより素早くかつ効率的に使用することを可能にすることによって、電力使用を削減し、デバイスのバッテリ寿命を改善する。
いくつかの実施形態では、第1のオブジェクトは、挿入カーソルの現在位置(例えば、図5E9の挿入カーソル5508の位置)に対応する第2の位置に隣接していない複数の非隣接側面(例えば、複数の非隣接側面のそれぞれの対応する非隣接側面は、第2の位置に隣接していない)を有し(1210)、第1のオブジェクト上の第3の位置は、第2の位置に隣接していない複数の非隣接側面の対応する非隣接側面上にある(例えば、第3の位置は、仮想オブジェクト5512の側面5514(図5E10に示すような)であり、仮想オブジェクト5512の側面5514は、挿入カーソル5508の位置に隣接していない)。第1のオブジェクトが挿入された位置に隣接していない第1のオブジェクトの側面に挿入カーソルを移動させることにより、ユーザに提供されるフィードバックを改善し(例えば、入力カーソルの位置を変更して、第1のオブジェクトの側面上でユーザに見えるようにすることによって)、(例えば、第3の位置に新しいオブジェクトを挿入するために)必要な入力の数を削減する。新しいオブジェクトを挿入するために必要とされる入力の数を削減することにより、デバイスの操作性を向上させ、ユーザ−デバイスインタフェースをより効率的にし、加えて、ユーザがデバイスをより素早くかつ効率的に使用することを可能にすることによって、電力使用を削減し、デバイスのバッテリ寿命を改善する。
いくつかの実施形態では、挿入カーソルの現在位置が既存のオブジェクトの対応する側面上に位置しているとの判定に従って(1212)、第3の位置は、既存のオブジェクトの対応する側面に平行な第1のオブジェクトの第1の対応する側面上にある(例えば、カーソルが既存のオブジェクトの上部にある場合、カーソルは、第1のオブジェクトの上部に移動され、カーソルが既存のオブジェクトの前面上にある場合、カーソルは第1のオブジェクトの前面に移動される)。例えば、図5E11では、挿入カーソル5508が既存の仮想ボックス5512の上面5514上に位置している間に、接触5516による入力が、挿入カーソル5508に対応する位置で検出される。図5E12では、接触5516による入力に応じて、新しい仮想ボックス5518が表示され、挿入カーソル5508は、新しい仮想ボックス5518の上面5520に移動される。新しい仮想ボックス5518の上面5520は、既存の仮想ボックス5512の上面5514に平行である。挿入カーソルが位置していた既存のオブジェクトの側面に平行な第1のオブジェクトの側面に挿入カーソルを移動させることにより、ユーザに提供されるフィードバックを改善し(例えば、入力カーソルを、同じ軸に沿って既存のオブジェクトの継続的な拡張を可能にすることになる位置に配置することによって)、(例えば、第3の位置に新しいオブジェクトを挿入するために)必要な入力の数を削減する。新しいオブジェクトを挿入するために必要とされる入力の数を削減することにより、デバイスの操作性を向上させ、ユーザ−デバイスインタフェースをより効率的にし、加えて、ユーザがデバイスをより素早くかつ効率的に使用することを可能にすることによって、電力使用を削減し、デバイスのバッテリ寿命を改善する。
いくつかの実施形態では、(1214)(挿入カーソルの現在位置ではない)第1の位置は、既存のオブジェクトの第1の側面上にあり、(挿入カーソルの現在位置に対応する)第2の位置は、既存のオブジェクトの第1の側面とは異なる既存のオブジェクトの第2の側面上にある。例えば、挿入カーソル5508が既存のオブジェクト(例えば、図5E17の仮想ボックス5518)の上面上にある間に、既存のオブジェクト5518の前面5528上で選択入力(例えば、接触5524による)が検出される。この場合、挿入カーソル5508などの表示されたフォーカスインジケータは、既存のオブジェクト5518の前面5528に新しいオブジェクトを追加することなく、既存のオブジェクトの前面5528に移動される(図5E18に示すように)。あるいは、挿入カーソル5508が既存のオブジェクトの上面(例えば、図5E11の仮想ボックス5512の上面5514)上にある間に、選択入力(例えば、接触5516による)が検出され、この場合、第1のオブジェクト(例えば、仮想ボックス5518)は、既存のオブジェクト(例えば、仮想ボックス5512)の上部に追加され、挿入カーソル5508などの表示されたフォーカスインジケータは、ここで第1のオブジェクトを含む既存のオブジェクトの上部に移動される(例えば、図5E12に示すように)。既存のオブジェクトの第1の側面に挿入カーソルを表示する(例えば、現在位置から既存のオブジェクトの第1の側面に挿入カーソルを移動させる)、又は既存のオブジェクトの第2の側面に第1のオブジェクトを挿入する(例えば、フォーカスセレクタが既存のオブジェクトの第2の側面にある挿入カーソルに対応する位置にある間に入力が受信されると)ことにより、第1のタイプの入力による異なる複数のタイプの動作の実行を可能にする。第1のタイプの入力により異なる複数のタイプの動作の実行を可能にすることにより、ユーザがこれらの動作を実行することができる効率を高め、それによって、デバイスの操作性を向上させ、加えて、ユーザがデバイスをより素早くかつ効率的に使用することを可能にすることによって、電力使用を削減し、デバイスのバッテリ寿命を改善する。
いくつかの実施形態では、シミュレートされた環境(例えば、図5E3のデバイス100によって表示されるような)は、コンピュータシステムの物理的環境5200に対して向けられ(1216)(例えば、物理的環境に対するシミュレートされた環境の向きは、コンピュータシステムの1つ以上の姿勢センサの向きとは無関係である)、第2の位置に第1のオブジェクト(例えば、仮想ボックス5512)を挿入することは、第1のオブジェクトをシミュレートされた環境(例えば、レンダリングされた3次元モデル)内に、コンピュータシステムの物理的環境5200内の対応する物理的基準オブジェクト(例えば、物理的基準マット5208a)の対応する位置(及び任意選択的に、向き)に関連付けられたシミュレートされた環境内の位置(及び任意選択的に、向き)で挿入することを含む(例えば、第1のオブジェクトは、マットなどの物理的基準オブジェクトに固定され、かつ/又は物理的基準オブジェクトに固定された仮想オブジェクトに関連付けられる)。いくつかの実施形態では、シミュレートされた環境は、コンピュータシステムの1つ以上のカメラ(例えば、カメラの視野内にあるコンテンツの少なくとも一部分のライブプレビューを連続的に提供し、かつ任意選択的に、カメラの視野内のコンテンツをキャプチャする画像フレームの1つ以上のストリームを含むビデオ出力を生成するビデオカメラ)によって検出された画像(例えば、第1の仮想ユーザインタフェースオブジェクトを越えてなど、背景内の)を含む。いくつかの実施形態では、シミュレートされた環境は、シミュレートされた光源を含む。いくつかの実施形態では、シミュレートされた光源は、第1のオブジェクト5512(及び任意の他のオブジェクト、表示された仮想モデル)によって影(例えば、5522、図5E10)を投じさせる。いくつかの実施形態では、影は、第1のオブジェクトを移動させる、及び/又は第1のオブジェクトの閲覧視点を変更する入力デバイスによって検出された移動入力に応じて、移動する(例えば、図5E12〜図5E14に示すように)。物理的基準に関連付けられた位置で、シミュレートされた環境内に第1のオブジェクトを挿入することにより、ユーザに提供されるフィードバックを改善し(例えば、コンピュータシステムをユーザ入力に対してより反応するように見せることにより)、デバイスの操作性を向上させ、ユーザ−デバイスインタフェースをより効率的にし(例えば、ユーザが必要な入力により意図された結果を達成するのを支援し、デバイスを操作する/デバイスと相互作用するときのユーザの誤りを削減することによって)、加えて、ユーザがデバイスをより素早くかつ効率的に使用することを可能にすることによって、電力使用を削減し、デバイスのバッテリ寿命を改善する。
いくつかの実施形態では、シミュレートされた環境内の対応する位置に向けられた第1の入力を検出したことに応じて(1218)、第1の入力が第2の入力形式であり(例えば、入力は、挿入コマンドを含む、又はオブジェクトを追加するボタン若しくはメニュー項目を選択する)、かつ挿入カーソルがシミュレートされた環境内の第2の位置に表示されているとの判定に従って、コンピュータシステムは、シミュレートされた環境内の第2の位置に第1のオブジェクトを挿入し、挿入カーソルを第1のオブジェクト上の第3の位置に移動させる。例えば、図5E23及び図5E24に示すように、新規オブジェクトコントロール5216に対応する位置での接触5542による入力は、仮想ボックス5546を挿入カーソル5526に対応する位置に表示させる。挿入カーソル5526は、仮想ボックス5546の上面5548に移動される。いくつかの実施形態では、シミュレートされた環境内の対応する位置に向けられた第1の入力を検出したことに応じて、第1の入力が第1の入力形式(例えば、タップ入力)であり、かつ第1の入力が挿入カーソルの現在位置に対応するシミュレートされた環境内の第2の位置で検出されたとの判定に従って、第1のオブジェクトは、第2の位置に挿入される。第1の入力が第3の入力形式であったとの判定に従って(例えば、入力は、オブジェクトの対応する表面の選択及び入力の移動を含む)、オブジェクトは、入力の移動に従って調整される(例えば、オブジェクトのサイズは、入力の移動に基づいて、オブジェクトの選択された側面に垂直な軸に沿って、調整され、及び/又はオブジェクトは、入力の移動に基づく方向に移動される)。挿入カーソルが表示されている第2の位置で、シミュレートされた環境内に第1のオブジェクトを挿入することにより、ユーザに提供されるフィードバックを改善し(例えば、コンピュータシステムをユーザ入力に対してより反応するように見せることにより)、デバイスの操作性を向上させ、ユーザ−デバイスインタフェースをより効率的にし(例えば、ユーザが必要な入力により意図された結果を達成するのを支援し、デバイスを操作する/デバイスと相互作用するときのユーザの誤りを削減することによって)、加えて、ユーザがデバイスをより素早くかつ効率的に使用することを可能にすることによって、電力使用を削減し、デバイスのバッテリ寿命を改善する。
いくつかの実施形態では、コンピュータシステムは、第1のオブジェクトの第2の対応する側面の選択及び2次元での第2の入力の移動(例えば、平面タッチ感知面を横切る接触の移動、又はリモートコントロールの周囲の3次元物理的空間の直交する2つの次元の移動成分を含むリモートコントロールの移動)を含む第2の入力を検出する(1220)。例えば、図5E25及び図5E26に示すように、接触5550による入力は、仮想ボックス5546の側面5556を選択し、矢印5554によって示す経路に沿って移動する。2次元での第2の入力の移動を含む第2の入力を検出したことに応じて(1222)、第2の入力が移動基準を満たす(例えば、長い押圧持続時間よりも短い持続時間を有し、かつ/又は、サイズ変更強度閾値(例えば、図4D及び図4Eに関して上述した軽い押圧閾値ITL)を上回って増大しないタッチ感知面との接触の特性強度を有する)との判定に従って、コンピュータシステムは、第2の入力の移動に基づいて決定された第1の方向に、第1のオブジェクトの選択された第2の対応する側面に平行な第1の平面内で、第1のオブジェクトを移動させる。例えば、図5E25及び図5E26では、第2の入力は、移動基準を満たし、仮想ボックス5546は、移動投影5552によって示す平面内で移動される。第2の入力が移動基準を満たさないとの判定に従って、コンピュータシステムは、第1のオブジェクトを移動させることを控える。いくつかの実施形態では、コンピュータシステムは、第1のオブジェクトの第2の対応する側面の選択及び2次元での第2の入力の移動を含む複数の入力を検出し、複数の入力は、第2の入力が移動基準を満たす少なくとも1つの入力と、第2の入力が移動基準を満たさない少なくとも1つの入力と、を含む。いくつかの実施形態では、第1のオブジェクトの移動量は、第2の入力の移動の大きさに依存する。いくつかの実施形態では、第1のオブジェクトの移動の方向は、第2の入力の移動の方向に依存する(例えば、方法900を参照して本明細書でより詳細に説明したように)。2次元での移動を含む入力に応じてオブジェクトを移動させることにより、ユーザに提供されるフィードバックを改善し(例えば、コンピュータシステムをユーザ入力に対してより反応するように見せることにより)、デバイスの操作性を向上させ、ユーザ−デバイスインタフェースをより効率的にし(例えば、ユーザが必要な入力により意図された結果を達成するのを支援し、デバイスを操作する/デバイスと相互作用するときのユーザの誤りを削減することによって)、加えて、ユーザがデバイスをより素早くかつ効率的に使用することを可能にすることによって、電力使用を削減し、デバイスのバッテリ寿命を改善する。
いくつかの実施形態では、コンピュータシステムは、第1のオブジェクトの第3の対応する側面の選択及び2次元での第3の入力の移動を含む第3の入力を検出する(1224)。例えば、図5E28〜図5E31では、接触5558による入力は、仮想ボックス5546の側面5556を選択し、矢印5562によって示す経路に沿って移動する。2次元での第3の入力の移動を含む第3の入力を検出したことに応じて(1226)、第3の入力がサイズ変更基準を満たす(例えば、長い押圧持続時間値を上回って増大する持続時間を有し、かつ/又はサイズ変更閾値(例えば、軽い押圧閾値ITL)を上回って増大するタッチ感知面との接触の特性強度を有する)との判定に従って、コンピュータシステムは、第3の入力の移動に基づいて、第1のオブジェクトの選択された第3の対応する側面に垂直な軸(例えば、軸は、選択された対応する部分の表面に垂直であり、その表面と接触している)に沿って第1のオブジェクトのサイズを調整する。例えば、図5E28〜図5E31では、第2の入力は、サイズ変更基準を満たし、仮想ボックス5546のサイズは、サイズ変更投影5560によって示す軸に沿って増大される。第3の入力がサイズ変更基準を満たさないとの判定に従って、コンピュータシステムは、第1のオブジェクトのサイズを調整することを控える。いくつかの実施形態では、コンピュータシステムは、第1のオブジェクトの第3の対応する側面の選択及び2次元での第3の入力の移動を含む複数の入力を検出し、複数の入力は、第3の入力がサイズ変更基準を満たす少なくとも1つの入力と、第2の入力がサイズ変更基準を満たさない少なくとも1つの入力と、を含む。いくつかの実施形態では、2次元での第3の入力の移動を含む第3の入力を検出したことに応じて、第3の入力がサイズ変更基準を満たすとの判定に従って、第1のオブジェクトの位置は、シミュレートされた環境内のアンカーポイントにロックされる。いくつかの実施形態では、第1のオブジェクトのサイズの調整量は、第3の入力の移動の大きさに依存する。いくつかの実施形態では、第1のオブジェクトのサイズの調整の方向は、第3の入力の移動の方向に依存する(例えば、方法900を参照して本明細書でより詳細に説明したように)。サイズ変更基準を満たし、かつ2次元での移動を含む入力に応じてオブジェクトのサイズを調整することにより、ユーザに提供されるフィードバックを改善し(例えば、コンピュータシステムをユーザ入力に対してより反応するように見せることにより)、デバイスの操作性を向上させ、ユーザ−デバイスインタフェースをより効率的にし(例えば、ユーザが必要な入力により意図された結果を達成するのを支援し、デバイスを操作する/デバイスと相互作用するときのユーザの誤りを削減することによって)、加えて、ユーザがデバイスをより素早くかつ効率的に使用することを可能にすることによって、電力使用を削減し、デバイスのバッテリ寿命を改善する。
いくつかの実施形態では、コンピュータシステムは、第1のオブジェクトの第4の対応する側面の選択及び2次元での第4の入力の移動を含む第4の入力を検出する(1228)。2次元での第2の入力の移動を含む第4の入力を検出したことに応じて(1230)、接触がサイズ変更基準を満たす(例えば、長い押圧持続時間値を上回って増大する持続時間を有し、かつ/又は、サイズ変更閾値(例えば、軽い押圧閾値ITL)を上回って増大するタッチ感知面との接触の特性強度を有する)との判定に従って、コンピュータシステムは、第4の入力の移動に基づいて、第1のオブジェクトのサイズを調整する。例えば、図5E28〜図5E31では、仮想ボックス5546の側面5556を選択し、かつ矢印5562によって示す経路に沿って移動する接触5558による入力は、サイズ変更基準を満たし、仮想ボックス5546のサイズは、サイズ変更投影5560によって示す軸に沿って増大される。接触がサイズ変更基準を満たさないとの判定に従って、コンピュータシステムは、第4の入力の移動に基づいて第1のオブジェクトを移動させる。例えば、図5E25及び図5E26では、仮想ボックス5546の側面5556を選択し、かつ矢印5554によって示す経路に沿って移動する接触5550による入力は、移動基準を満たし、仮想ボックス5546は、移動投影5552によって示す平面内で移動される。いくつかの実施形態では、コンピュータシステムは、第1のオブジェクトの第4の対応する側面の選択及び2次元での第4の入力の移動を含む複数の入力を検出し、複数の入力は、接触が移動基準を満たす少なくとも1つの入力と、接触が移動基準を満たさない少なくとも1つの入力と、を含む。タッチ感知面を横切る接触の移動の前に、接触の特性強度が既定の遅延時間が経過する前に強度閾値を上回って増大したか否かに依存して、タッチ感知面上の接触による入力を検出したことに応じて、オブジェクトのサイズを調整する、又はオブジェクトを移動させるかを判定することにより、第1のタイプの入力により異なる複数のタイプの動作の実行を可能にする。タッチ感知面上の接触による入力により異なる複数のタイプの動作の実行を可能にすることにより、ユーザがこれらの動作を実行することができる効率を高め、それによって、デバイスの操作性を向上させ、加えて、ユーザがデバイスをより素早くかつ効率的に使用することを可能にすることによって、電力使用を削減し、デバイスのバッテリ寿命を改善する。
いくつかの実施形態では、第4の入力の移動に基づいて第1のオブジェクトのサイズを調整することは、第1のオブジェクトの選択された第3の対応する側面に垂直な軸に沿って第1のオブジェクトのサイズを調整することを含む(1232)。例えば、図5E30及び図5E31では、仮想ボックス5546のサイズは、仮想ボックス5546の選択された側面5556に垂直なサイズ変更投影5560によって示す軸に沿って調整される。
いくつかの実施形態では、第4の入力の移動に基づいて第1のオブジェクトを移動させることは、第2の入力の移動に基づいて決定された第1の方向に、第1のオブジェクトの選択された第2の対応する側面に平行な第1の平面内で、第1のオブジェクトを移動させることを含む(1234)。例えば、図5E25及び図5E26に示すように、入力仮想ボックス5546は、仮想ボックス5546の選択された側面5556に平行な移動投影5552によって示す平面内で移動される。
いくつかの実施形態では、第1のオブジェクトが表示されている間に、コンピュータシステムは、第1のオブジェクト上にある第3の位置に対応しない第1のオブジェクトの対応する部分上の第5の入力を検出する(1236)。例えば、図5E11及び図5E12では、入力に応じて第1のオブジェクトが表示され(例えば、接触5516による入力に応じて表示される仮想ボックス5518)、挿入カーソル5508は、第3の位置(例えば、仮想ボックス5518の表面5520)に移動される。図5E17では、接触5224による入力は、第3の位置に対応しない位置で検出される(例えば、仮想ボックス5518の表面5528で接触5224が検出される)。第5の入力を検出したことに応じて、コンピュータシステムは、挿入カーソルを第3の位置から、第1のオブジェクトの対応する部分に対応する位置に移動させる(1238)。例えば、図5E18では、接触5224による入力に応じて、挿入カーソルは、仮想ボックス5518の表面5520から仮想ボックス5518の表面5528に移動される)。入力に応じてオブジェクト上の現在位置からオブジェクト上の異なる位置に挿入カーソルを移動させることにより、ユーザに提供されるフィードバックを改善し(例えば、コンピュータシステムをユーザ入力に対してより反応するように見せることにより)、デバイスの操作性を向上させ、ユーザ−デバイスインタフェースをより効率的にし(例えば、ユーザが必要な入力により意図された結果を達成するのを支援し、デバイスを操作する/デバイスと相互作用するときのユーザの誤りを削減することによって)、加えて、ユーザがデバイスをより素早くかつ効率的に使用することを可能にすることによって、電力使用を削減し、デバイスのバッテリ寿命を改善する。
図12A〜12Dにおける動作について説明された特定の順序は単なる例であり、説明された順序は、動作を実行することができる唯一の順序であることを示すことを意図するものではないことを理解されたい。当業者であれば、本明細書に記載される動作を再順序付けるための様々な方法を認識するであろう。加えて、本明細書に記載される他の方法(例えば、方法600、700、800、900、1000、1100、及び1300)に関して本明細書に記載される他のプロセスの詳細はまた、図12A〜図12Dに関して上記した方法1100にも、類似の様式で適用可能であることに留意されたい。例えば、方法1200に関連して上述した接触、ジェスチャ、ユーザインタフェースオブジェクト、強度閾値、フォーカスインジケータ、及び/又はアニメーションは、任意選択的に、本明細書に記載の他の方法(例えば、方法600、700、800、900、1000、1100、及び1300)に関連して本明細書に記載の接触、ジェスチャ、ユーザインタフェースオブジェクト、強度閾値、フォーカスインジケータ、及び/又はアニメーションの特性のうちの1つ以上を有する。簡潔にするために、それらの詳細はここでは繰り返さない。
図13A〜図13Eは、いくつかの実施形態に係る、安定動作モードで拡張現実環境を表示するための方法1300を示すフロー図である。方法1300は、表示生成コンポーネント(例えば、ディスプレイ、プロジェクタ、ヘッドアップディスプレイなど)と、入力デバイス(例えば、タッチ感知式リモートコントロールなどのタッチ感知面、若しくは表示生成コンポーネントとしても機能するタッチスクリーンディスプレイ、マウス、ジョイスティック、ワンドコントローラ、及び/又はユーザの手などのユーザの1つ以上の特徴の位置を追跡するカメラ)と、任意選択的に、1つ以上のカメラ(例えば、カメラの視野内にあるコンテンツの少なくとも一部分のライブプレビューを連続的に提供し、かつ任意選択的に、カメラの視野内のコンテンツをキャプチャする画像フレームの1つ以上のストリームを含むビデオ出力を生成するビデオカメラ)と、任意選択的に、1つ以上の姿勢センサと、任意選択的に、タッチ感知面との接触の強度を検出する1つ以上のセンサと、任意選択的に、1つ以上の触知出力生成器と、を含む(かつ/又はそれらと通信している)コンピュータシステム(例えば、ポータブル多機能デバイス100、図1A、デバイス300、図3A、又は、ヘッドセット5008及び入力デバイス5010を含むマルチコンポーネントコンピュータシステム、図5A2)において実行される。いくつかの実施形態では、入力デバイス(例えば、タッチ感知面を有する)及び表示生成コンポーネントは、タッチ感知ディスプレイに統合される。図3B〜図3Dに関して上述したように、いくつかの実施形態では、方法1300は、表示生成コンポーネント、1つ以上のカメラ、1つ以上の入力デバイス、及び任意選択的に1つ以上の姿勢センサなどのそれぞれの構成要素が、それぞれ、コンピュータシステム301に含まれる、又はコンピュータシステム301と通信しているのいずれかである、コンピュータシステム301(例えば、コンピュータシステム301−a、301−b、又は301−c)で実行される。
いくつかの実施形態では、表示生成コンポーネントは、タッチスクリーンディスプレイであり、入力デバイス(例えば、タッチ感知面を有する)は、表示生成コンポーネント上にある、又はそれと統合されている。いくつかの実施形態では、表示生成コンポーネントは、入力デバイスとは別個である(例えば、図4B及び図5A2に示すように)。方法1300の一部の動作が任意選択的に組み合わされ、かつ/又は、一部の動作の順序が任意選択的に変更される。
説明の便宜上、実施形態のいくつかは、タッチ感知ディスプレイシステム112及び1つ以上の一体型カメラを有するコンピュータシステム上(例えば、タッチスクリーン112を有するデバイス100上)で実行される動作を参照して説明する。しかしながら、類似の動作は、任意選択的に、ヘッドセット5008のディスプレイ上に図に示すユーザインタフェースを表示している間に、入力デバイス5010のタッチ感知面上の接触を検出したことに応じて、ヘッドセット5008とタッチ感知面を有する別個の入力デバイス5010とを有するコンピュータシステム(例えば、図5A2に示すような)上で実行される。同様に、類似の動作は、任意選択的に、コンピュータシステムの1つ以上の他の構成要素(例えば、入力デバイス)とは別個に(例えば、ヘッドセット内に)実装される1つ以上のカメラを有するコンピュータシステム上で実行され、いくつかのそのような実施形態では、「コンピュータシステムの移動」は、コンピュータシステムの1つ以上のカメラの移動、又はコンピュータシステムと通信する1つ以上のカメラの移動に対応する。
後述するように、方法1300は、1つ以上のカメラの視野と同時に表示される仮想ユーザインタフェースオブジェクトを含む拡張現実環境を表示することに関する。拡張現実環境が安定モード又は非安定モードで表示されるかに応じて、(その物理的環境に対するコンピュータシステムの少なくとも一部分の姿勢の変化による)検出された移動に応じて、表示された拡張現実環境を更新することは、1つ以上のカメラの表示された視野を異なる量だけ変化させる。拡張現実環境を安定モード又は非安定モードで表示することにより、同じ検出された移動により異なる複数のタイプの動作の実行を可能にする(例えば、表示されたビューが仮想ユーザインタフェースオブジェクトの周りを中心とする視野の部分にロックされているか否かに応じて、表示された視野を異なる量だけ更新する)。検出された移動に応じて異なる複数のタイプの動作の実行を可能にすることにより、ユーザがこれらの動作を実行することができる効率を高め、それによってデバイスの操作性を向上させ、加えて、ユーザがデバイスをより素早くかつ効率的に使用することを可能にすることによって、電力使用を削減し、デバイスのバッテリ寿命を改善する。
コンピュータシステム(例えば、デバイス100、図5F2)は、第1のコンピュータシステムの表示生成コンポーネント112を介して、拡張現実環境を表示する(1302)。拡張現実環境を表示することは、コンピュータシステムの1つ以上のカメラの視野の少なくとも一部分の表現と、仮想ユーザインタフェースオブジェクト5604と、を同時に表示することを含む。1つ以上のカメラの視野の表現は、物理的オブジェクト5602を含む。1つ以上のカメラの視野の表現は、1つ以上のカメラの視野のコンテンツが変化するにつれて更新される(例えば、表現は、1つ以上のカメラの視野の少なくとも一部分のライブプレビューである)。仮想ユーザインタフェースオブジェクト5604は、1つ以上のカメラの視野の表現内の対応する位置に表示され、1つ以上のカメラの視野の表現内の仮想ユーザインタフェースオブジェクト5604の対応する位置は、仮想ユーザインタフェースオブジェクト5604と1つ以上のカメラの視野の表現に含まれる物理的オブジェクト5602との間の固定された空間的関係(例えば、サイズ、向き、及び/又は位置)に基づいて決定される(例えば、1つ以上のカメラの視野内の物理的オブジェクトに取り付けられる、又はそれをカバーするように見える仮想ユーザインタフェースオブジェクト)。
拡張現実環境を表示している間に、コンピュータシステムは、コンピュータシステムの1つ以上の姿勢センサを介して、コンピュータシステムの物理的環境に対する、コンピュータシステムの少なくとも一部分の姿勢(例えば、向き及び/又は位置)の第1の変化(例えば、物理的環境の表現を生成するために使用される1つ以上のカメラを含むコンピュータシステムの構成要素などのコンピュータシステムの構成要素の姿勢の変化)を検出する(1304)。例えば、図5F3a〜図5F4aは、非安定動作モードでのデバイス100の移動を示し、図5F8a〜図5F10a、図5F12a〜図5F13a、及び図5F16a〜図5F17aは、安定動作モードでのデバイス100の移動を示す。
コンピュータシステムの物理的環境に対するコンピュータシステムの一部分の姿勢の第1の変化を検出したことに応じて、コンピュータシステムは、コンピュータシステムの一部分の姿勢の第1の変化に従って、拡張現実環境を更新する(1306)。拡張現実環境が非安定動作モードで表示されているとの判定に従って、コンピュータシステムの一部分の姿勢の第1の変化に従って拡張現実環境を更新することは、コンピュータシステムの物理的環境に対するコンピュータシステムの一部分の姿勢の第1の変化に基づく第1の調整量だけ、1つ以上のカメラの視野の一部分の表現を更新すること(例えば、図5F3b〜図5F4bに示すように)と、仮想ユーザインタフェースオブジェクト5604と1つ以上のカメラの視野の表現に含まれる物理的オブジェクト5602との間の固定された空間的関係(例えば、サイズ、向き、及び/又は位置)を維持するように選択された位置に、仮想ユーザインタフェースオブジェクト5604の対応する位置を更新することと、を含む。拡張現実環境が安定動作モードで表示されているとの判定に従って、コンピュータシステムの一部分の姿勢の第1の変化に従って拡張現実環境を更新することは、コンピュータシステムの物理的環境に対するコンピュータシステムの一部分の姿勢の第1の変化に基づき、かつ第1の調整量未満の第2の調整量だけ、1つ以上のカメラの視野の一部分の表現を更新すること(例えば、表示されたビューは、第1の仮想ユーザインタフェースオブジェクトの周りを中心とする視野の副部分にロックされる)と、仮想ユーザインタフェースオブジェクト5604と1つ以上のカメラの視野の表現に含まれる物理的オブジェクト5602との間の固定された空間的関係(例えば、サイズ、向き、及び/又は位置)を維持するように選択された位置に、仮想ユーザインタフェースオブジェクト5604の対応する位置を更新することと、を含む。例えば、図5F16b〜図5F17bでは、1つ以上のカメラの視野の一部分の表現は、図5F3b〜5F4bで行なわれる調整量未満の調整量未満の量だけ更新される。いくつかの実施形態では、コンピュータシステムは、複数の連続する反復にわたって方法1300を繰り返し実行し、連続する反復の第1の反復では、拡張現実環境は、非安定動作モードで表示され、連続する反復の第2の反復では、拡張現実環境は、安定動作モードで表示される。
いくつかの実施形態では、コンピュータシステムの一部分の姿勢の第1の変化に従って拡張現実環境を更新した後に、コンピュータシステムの一部分の姿勢の第1の変化(例えば、物理的環境の表現を生成するために使用される1つ以上のカメラを含むコンピュータシステムの構成要素などのコンピュータシステムの構成要素の姿勢の変化)が検出されたときに、拡張現実環境が非安定動作モードで表示されていたとき(1308)、コンピュータシステムは、ディスプレイ上の仮想ユーザインタフェースオブジェクトを安定化させる要求(例えば、安定化コントロール5616での入力)を受信する(1308−a)。ディスプレイ上の仮想ユーザインタフェースオブジェクトを安定化させる要求に応じて、コンピュータシステムは、拡張現実環境に対する安定動作モードに入る(1308−b)。拡張現実環境に対する安定動作モードにある間に、コンピュータシステムは、1つ以上の向きセンサを介して、物理的環境に対するコンピュータシステムの一部分の姿勢の第2の変化(例えば、向き及び/又は位置)を検出し(1308−c)(例えば、図5F16a〜図5F17aに示すように)、物理的環境に対するコンピュータシステムの一部分の姿勢の第2の変化(例えば、物理的環境の表現を生成するために使用される1つ以上のカメラを含むコンピュータシステムの構成要素などのコンピュータシステムの構成要素の姿勢の変化)を検出したことに応じて、コンピュータシステムは、物理的環境に対するコンピュータシステムの一部分(又は物理的環境の表現を生成するために使用される1つ以上のカメラを含むコンピュータシステムの構成要素などのコンピュータシステムの構成要素)の姿勢の第2の変化の量未満だけ、1つ以上のカメラの視野の一部分の表現を更新することと、仮想ユーザインタフェースオブジェクト5604と1つ以上のカメラの視野内に含まれる物理的オブジェクト5602の表現との間の固定された空間的関係(例えば、サイズ、向き、及び/又は位置)を維持するように選択された位置に、仮想ユーザインタフェースオブジェクト5604を更新することと、を含めて、コンピュータシステムの一部分の姿勢の第2の変化に従って拡張現実環境を更新する。例えば、図5F16b〜図5F17bでは、1つ以上のカメラの視野の一部分の表現は、図5F3b〜5F4bで行なわれる調整量未満の調整量未満の量だけ更新される。ディスプレイ上の仮想ユーザインタフェースオブジェクトを安定化させる要求に応じて、拡張現実環境に対する安定動作モードに入ることにより、表示された拡張現実環境を改善し(例えば、1つ以上のカメラから入手可能なデータに関わらず、ユーザが仮想ユーザインタフェースオブジェクトを閲覧することを可能にすることによって)、デバイスの操作性を向上させ、ユーザ−デバイスインタフェースをより効率的にし(例えば、ユーザが必要な入力により意図された結果を達成するのを支援し、デバイスを操作する/デバイスと相互作用するときのユーザの誤りを削減することによって)、加えて、ユーザがデバイスをより素早くかつ効率的に使用することを可能にすることによって、電力使用を削減し、デバイスのバッテリ寿命を改善する。
いくつかの実施形態では、コンピュータシステムは、入力デバイスを含み、ディスプレイ上の仮想ユーザインタフェースオブジェクトを安定化させる要求は、入力デバイスを介して受信される、拡張現実環境の少なくとも一部分をズームするための入力(例えば、図5F6b〜図5F7bに示すような、接触5606及び5608によるデピンチズーム入力)を含む(1310)。いくつかの実施形態では、ズームするための入力は、例えば、ピンチ、ダブルタップ、又はズームアフォーダンスの選択/操作である。いくつかの実施形態では、拡張現実環境の少なくとも一部分をズームするための入力を受信したことに応じて、デバイスは、拡張現実環境をズームする(例えば、図5F6b〜図5F7bに示すように、拡張現実環境内の仮想ユーザインタフェースオブジェクト5604のサイズは、デピンチズーム入力に応じて増大される)。いくつかの実施形態では、ズームすることは、所定のズーム量又は所定のズームレベルにズームすることである。いくつかの実施形態では、ズームの大きさは、入力の大きさ(例えば、互いから離れる2つの接触の移動量、又はズームコントロール上の接触の移動量)に基づく。ズーム入力に応じて拡張現実環境に対する安定動作モードに入ることにより、更なるユーザ入力を必要とせずに安定モードを可能にする。更なるユーザ入力を必要とせずに安定モードに入ることにより、デバイスの操作性を向上させ、ユーザ−デバイスインタフェースをより効率的にし、加えて、ユーザがデバイスをより素早くかつ効率的に使用することを可能にすることによって、電力使用を削減し、デバイスのバッテリ寿命を改善する。
いくつかの実施形態では、ディスプレイ上の仮想ユーザインタフェースオブジェクトを安定化させる要求が表示された拡張現実環境の一部分をズームするための入力を含む、ディスプレイ上の仮想ユーザインタフェースオブジェクトを安定化させる要求に応じて、コンピュータシステムは、(例えば、1つ以上のカメラの視野の一部分の表現を再レンダリングすることなく)表示された拡張現実環境の一部分をズームするための入力の大きさに従って(例えば、より低い解像度からより高い解像度に)仮想ユーザインタフェースオブジェクトを再レンダリングする(1312)。例えば、図5F7bでは、仮想オブジェクト5604は、5F6b〜5F7bで受信されたデピンチズーム入力に応じて再レンダリングされる。いくつかの実施形態では、ディスプレイ上の仮想ユーザインタフェースオブジェクトを安定化させる要求が表示された拡張現実環境をズームするための入力を含む、ディスプレイ上の仮想ユーザインタフェースオブジェクトを安定化させる要求に応じて、1つ以上のカメラの視野は、同じままである。いくつかの実施形態では、仮想ユーザインタフェースオブジェクトがズームされている間に、1つ以上のカメラのカメラズームがアクティブ化され、1つ以上のカメラの視野がズームされる。ズーム入力の大きさに従って仮想ユーザインタフェースオブジェクトを再レンダリングすることにより、ユーザに提供されるフィードバックを改善し(例えば、コンピュータシステムをユーザ入力に対してより反応するように見せることにより)、デバイスの操作性を向上させ、ユーザ−デバイスインタフェースをより効率的にし(例えば、ユーザが必要な入力により意図された結果を達成するのを支援し、デバイスを操作する/デバイスと相互作用するときのユーザの誤りを削減することによって)、加えて、ユーザがデバイスをより素早くかつ効率的に使用することを可能にすることによって、電力使用を削減し、デバイスのバッテリ寿命を改善する。
いくつかの実施形態では、物理的オブジェクト5602は、表示された拡張現実環境内の仮想ユーザインタフェースオブジェクト5604によって置き換えられる(1314)(例えば、表示されたビューは、第1の仮想ユーザインタフェースオブジェクトの周りを中心とする視野の副部分にロックされる)。表示された拡張現実環境内の仮想ユーザインタフェースオブジェクトで物理的オブジェクトを置き換えることにより、物理的オブジェクトに関してユーザに視覚情報を提供するためのオプションの範囲を増大させ(例えば、物理的オブジェクトから利用可能でない、仮想ユーザインタフェースオブジェクト内の追加の又は向上した視覚情報を提供することにより)、ユーザ−デバイスインタフェースをより効率的にし(例えば、追加情報及び物理的オブジェクトのカメラビューを別個に表示する必要なく、物理的オブジェクトに関連して追加情報を提供することによって)、加えて、ユーザがデバイスをより素早くかつ効率的に使用することを可能にすることによって、電力使用を削減し、デバイスのバッテリ寿命を改善する。
いくつかの実施形態では、コンピュータシステムは、拡張現実環境が安定動作モードで表示されている(例えば、図5F8a〜図5F10aに示すようにデバイス100が移動されている)間に、コンピュータシステムの物理的環境に対するコンピュータシステムの一部分の姿勢の第1の対応する変化を検出する(1316)。拡張現実環境が安定動作モードで表示されている間に、コンピュータシステムの物理的環境に対するコンピュータシステムの一部分の姿勢の第1の対応する変化を検出したことに応じて、コンピュータシステムは、コンピュータシステムの一部分の姿勢の対応する変化に従って、拡張現実環境を更新することであって(1318)、仮想ユーザインタフェースオブジェクト5604の更新された対応する位置が1つ以上のカメラの視野を越えて延びるとの判定に従って、(仮想ユーザインタフェースオブジェクトの周りを中心とする視野の副部分にロックされた仮想ユーザインタフェースオブジェクトを表示し続けること、及び)1つ以上のカメラの視野の一部分の表現を更新することは、1つ以上のカメラの視野を越えて延びる仮想ユーザインタフェースオブジェクトの一部分に対応する拡張現実環境内の対応する位置に、プレースホルダ画像5614(例えば、余白又はレンダリングされた画像)を表示することを含む(例えば、ライブカメラ画像がもはや利用可能でない仮想ユーザインタフェースオブジェクトを越えた背景を埋めるために)、ことをする。例えば、仮想ユーザインタフェースオブジェクト5604が1つ以上のカメラの視野を越えて延びることになる場合、仮想ユーザインタフェースオブジェクト5604を含む拡張現実環境は、仮想ユーザインタフェースオブジェクト5604が完全に表示されるようにズームアウトされる。拡張現実環境がズームアウトされると、ライブカメラ画像は、仮想ユーザインタフェースオブジェクトを越えた背景の一部分に対して、もはや利用可能ではない。いくつかの実施形態では、コンピュータシステムの物理的環境に対するコンピュータシステムの一部分の姿勢の第1の対応する変化を検出したことに応じて、コンピュータシステムの一部分の姿勢の第1の対応する変化に従って、拡張現実環境を更新することは、仮想ユーザインタフェースオブジェクト5604の更新された対応する位置が1つ以上のカメラの視野を越えて延びるか否かを判定することを含む。カメラビューを越えて延びる仮想ユーザインタフェースオブジェクトの一部分に対応する位置に拡張現実環境内にプレースホルダ画像を表示することにより、ユーザに提供されるフィードバックを改善し(例えば、仮想ユーザインタフェースオブジェクトの一部分がカメラビューを越えて延びることをユーザが理解するのを支援する視覚的合図をユーザに提供することによって)、デバイスの操作性を向上させ、ユーザ−デバイスインタフェースをより効率的にし(例えば、ユーザが必要な入力により意図された結果を達成するのを支援し、デバイスを操作する/デバイスと相互作用するときのユーザの誤りを削減することによって)、加えて、ユーザがデバイスをより素早くかつ効率的に使用することを可能にすることによって、電力使用を削減し、デバイスのバッテリ寿命を改善する。
いくつかの実施形態では、コンピュータシステムは、拡張現実環境が安定動作モードで表示されている(例えば、図5F8a〜図5F9aに示すように、又は図5F16a〜図5F17aに示すようにデバイス100が移動されている)間に、コンピュータシステムの物理的環境に対するコンピュータシステムの一部分の姿勢の第2の対応する変化を検出する(1320)。拡張現実環境が安定動作モードで表示されている間に、コンピュータシステムの物理的環境に対するコンピュータシステムの一部分の姿勢の第2の対応する変化を検出したことに応じて、コンピュータシステムは、コンピュータシステムの一部分の姿勢の対応する変化に従って、拡張現実環境を更新することであって(1322)、仮想ユーザインタフェースオブジェクト5604の更新された対応する位置が1つ以上のカメラの視野を越えて延びるとの判定に従って、仮想ユーザインタフェースオブジェクト5604の少なくとも一部分を表示することを停止する(例えば、仮想ユーザインタフェースオブジェクトの周りを中心とする視野の副部分にロックされた仮想ユーザインタフェースオブジェクト5604を表示し続けている間に)ことを含む、ことをする。例えば、図5F9b及び図5F17bでは、仮想ユーザインタフェースオブジェクト5604は、1つ以上のカメラの視野を越えて延び、仮想ユーザインタフェースオブジェクト5604の一部分は、表示されない。いくつかの実施形態では、コンピュータシステムの物理的環境に対するコンピュータシステムの一部分の姿勢の第2の対応する変化を検出したことに応じて、コンピュータシステムの一部分の姿勢の第2の対応する変化に従って、拡張現実環境を更新することは、仮想ユーザインタフェースオブジェクトの更新された対応する位置が1つ以上のカメラの視野を越えて延びるか否かを判定することを含む。いくつかの実施形態では、物理的環境に対するコンピュータシステムの一部分の姿勢の対応する変化が、仮想ユーザインタフェースオブジェクトを1つ以上のカメラの視野を越える位置に移動させることになるとの判定に従って、仮想ユーザインタフェースオブジェクトが1つ以上のカメラの視野に対応する位置に制約される、制約された安定モードがアクティブ化される。いくつかの実施形態では、仮想ユーザインタフェースオブジェクトが1つ以上のカメラの視野に対応する位置に制約されている間に、物理的環境に対するコンピュータシステムの少なくとも一部分の姿勢の第3の変化が検出される。物理的環境に対するコンピュータシステムの一部分の姿勢の第3の変化に応じて、物理的環境に対するコンピュータシステムの一部分の姿勢の第3の変化が仮想ユーザインタフェースオブジェクトを1つ以上のカメラの視野を越えない位置に移動させることになるとの判定に従って、制約された安定モードは、終了する。仮想ユーザインタフェースオブジェクトの仮想ユーザインタフェースオブジェクト部分の少なくとも一部分(例えば、カメラビューを越えて延びる仮想ユーザインタフェースオブジェクトの一部分)を表示することを停止することにより、ユーザに提供されるフィードバックを改善し(例えば、仮想ユーザインタフェースオブジェクトの一部分がカメラビューを越えて延びることをユーザが理解するのを支援する視覚的合図をユーザに提供することによって)、デバイスの操作性を向上させ、ユーザ−デバイスインタフェースをより効率的にし(例えば、ユーザが必要な入力により意図された結果を達成するのを支援し、デバイスを操作する/デバイスと相互作用するときのユーザの誤りを削減することによって)、加えて、ユーザがデバイスをより素早くかつ効率的に使用することを可能にすることによって、電力使用を削減し、デバイスのバッテリ寿命を改善する。
いくつかの実施形態では、拡張現実環境が安定動作モードで表示されている間に、コンピュータシステムの物理的環境に対するコンピュータシステムの一部分の姿勢の対応する変化を検出したことに応じて(例えば、図5F8a〜図5F9aに示すようなデバイス100の移動を検出する)、コンピュータシステムの一部分の姿勢の対応する変化に従って、拡張現実環境を更新することは、仮想ユーザインタフェースオブジェクト5604の更新された対応する位置が1つ以上のカメラの視野を越えて延びるとの判定に従って、表示された拡張現実環境をズームして、表示された仮想ユーザインタフェースオブジェクトの一部分を増大させることと(例えば、図5F9b〜図5F10bに示すように)、仮想ユーザインタフェースオブジェクトの更新された対応する位置が1つ以上のカメラの視野を越えて延びないとの判定に従って、表示された拡張現実環境をズームすることなく仮想ユーザインタフェースオブジェクトを移動させることと、を含む(1324)。いくつかの実施形態では、拡張現実環境が安定動作モードで表示されている間に、コンピュータシステムは、コンピュータシステムの物理的環境に対するコンピュータシステムの一部分の姿勢の複数の変化を検出し、姿勢の複数の変化は、仮想ユーザインタフェースオブジェクトのどの更新された対応する位置が、1つ以上のカメラの視野を越えて延びるかに応じて、姿勢の少なくとも1つの変化と、仮想ユーザインタフェースオブジェクトのどの更新された対応する位置が、1つ以上のカメラの視野を越えて延びないかに応じて、姿勢の少なくとも1つの変化と、を含む。コンピュータシステムの移動が仮想ユーザインタフェースオブジェクトをカメラビューを越えて延びさせることになるときに、表示された拡張現実環境をズームして、安定モードで表示された仮想ユーザインタフェースオブジェクトの一部分を増大させることにより、ユーザに提供されるフィードバックを改善し(例えば、デバイスの移動に関わらず、ユーザが完全な仮想ユーザインタフェースオブジェクトを閲覧し続けることを可能にすることによって)、デバイスの操作性を向上させ、ユーザ−デバイスインタフェースをより効率的にし(例えば、ユーザが必要な入力により意図された結果を達成するのを支援し、デバイスを操作する/デバイスと相互作用するときのユーザの誤りを削減することによって)、加えて、ユーザがデバイスをより素早くかつ効率的に使用することを可能にすることによって、電力使用を削減し、デバイスのバッテリ寿命を改善する。
図13A〜図13Eにおける動作について説明された特定の順序は単なる例であり、説明された順序は、動作を実行することができる唯一の順序であることを示すことを意図するものではないことを理解されたい。当業者であれば、本明細書に記載される動作を再順序付けるための様々な方法を認識するであろう。加えて、本明細書に記載される他の方法(例えば、方法600、700、800、900、1000、1100、及び1200)に関して本明細書に記載される他のプロセスの詳細はまた、図13A〜図13Eに関して上記した方法1100にも、類似の様式で適用可能であることに留意されたい。例えば、方法1300に関連して上述した接触、ジェスチャ、ユーザインタフェースオブジェクト、フォーカスインジケータ、及び/又はアニメーションは、任意選択的に、本明細書に記載の他の方法(例えば、方法600、700、800、900、1000、1100、及び1200)に関連して本明細書に記載の接触、ジェスチャ、ユーザインタフェースオブジェクト、強度閾値、フォーカスインジケータ、及び/又はアニメーションの特性のうちの1つ以上を有する。簡潔にするために、それらの詳細はここでは繰り返さない。
図6A〜図6D、図7A〜図7C、図8A〜図8C、図9A〜図9E、図10A〜図10E、図11A〜図11C、図12A〜図12D、及び図13A〜図13Eを参照して上述した動作は、任意選択的に、図1A〜図1Bに図示した構成要素によって実施される。例えば、表示動作602、702、802、808、902、1002、1014、1102、1202、1206、及び1302、検出動作606、706、806、904、1004、1008、1012、1106、1204、及び1304、検出及び調整動作608、調整及び適用動作708、調整動作906、変更動作1006、実行動作1010、遷移動作1014、更新動作1108及び1306、並びに表示及び挿入動作1206は、任意選択的に、イベントソート部170、イベント認識部180、及びイベント処理部190によって実施される。イベントソート部170のイベントモニタ171は、タッチ感知ディスプレイ112上の接触を検出し、イベントディスパッチャモジュール174は、イベント情報をアプリケーション136−1に配信する。アプリケーション136−1の対応するイベント認識部180は、そのイベント情報を対応するイベント定義186と比較し、タッチ感知面上の第1の位置における第1の接触(又は、デバイスの回転)が、ユーザインタフェース上のオブジェクトの選択、又は1つの向きから別の向きへのデバイスの回転などの、所定のイベント又はサブイベントに対応するかどうかを判定する。対応する既定のイベント又はサブイベントが検出されると、イベント認識部180は、そのイベント又はサブイベントの検出に関連付けられたイベント処理部190をアクティブ化する。イベント処理部190は、アプリケーション内部状態192を更新するために、データ更新部176又はオブジェクト更新部177を、任意選択で使用するか又は呼び出す。いくつかの実施形態では、イベント処理部190は、アプリケーションにより表示されるものを更新するために、対応するGUI更新部178にアクセスする。同様に、当業者にとって、他の処理が図1A〜図1Bに記される構成要素に基づいてどのように実施されるかは明らかであろう。
上記は、説明を目的として、特定の実施形態を参照して記述されている。しかしながら、上記の例示的な論考は、網羅的であること、又は開示される厳密な形態に本発明を限定することを意図するものではない。上記の教示を考慮して、多くの修正及び変形が可能である。本発明の原理及びその実際的な応用を最良の形で説明し、それによって他の当業者が、想到される特定の用途に適した様々な変更で本発明及び様々な記載された実施形態を最良の形で使用することを有効化するために、これらの実施形態を選択し記載した。