メディアを拡張する従来の方法は、多くの場合、意図された結果(例えば、記憶されたビデオまたはライブビデオフィードの一部分を注釈すること、および/または記憶されたメディア内の物理オブジェクトの表面に対応する位置に仮想オブジェクトを表示すること)を達成するために、複数の別個の入力(例えば、複数のフレームの個々の注釈および/またはメディア内のオブジェクトに対する拡張の配置)を必要とすることが多い。本明細書の実施形態は、ユーザが、デバイスの1つ以上のカメラによってキャプチャされた、記憶されたコンテンツ、静止画、および/またはライブビデオなどのメディアを拡張するための直感的な方法を提供する(例えば、画像データと共に記憶および/またはキャプチャされた奥行きデータを使用して、拡張を配置し、拡張とカメラの視野内の物理的環境の部分との間の一定の空間的関係を維持する)。
本明細書に記載するシステム、方法、およびGUIは、複数の方法で拡張メディアについてのユーザインターフェース相互作用を改善する。例えば、それらは、注釈を再配置し、ビデオに注釈を付け、仮想オブジェクトを以前にキャプチャされたメディアに追加し、共有注釈セッションを開始することをより容易にする。
以下、図1A~図1C、図2、および図3は、例示的なデバイスの説明を提供する。図4A~図4B、図5A~図5AF、図6A~図6N、図7A~図7BF、および図8A~図8Wは、様々なコンテキストで仮想オブジェクトを表示する例示的なユーザインターフェースを示す。図9A~図9Fは、注釈を再配置するためのプロセスを示す。図10A~図10Bは、ビデオの一時停止位置に対応する静止画内にキャプチャされた物理的環境の一部分上に注釈を受信するためのプロセスを示す。図11A~図11Fは、仮想オブジェクトを以前にキャプチャされたメディアオブジェクトに追加するプロセスを示す。図12A~図12Dは、共有注釈セッションを開始するためのプロセスを示す。図5A~図5AF、図6A~図6N、図7A~図7BF、および図8A~図8Wのユーザインターフェースは、図9A~図9F、図10A~図10B、図11A~図11F、および図12A~図12Dのプロセスを示すために使用される。
例示的なデバイス
ここで、添付図面に実施例が示される実施形態への詳細な参照が行われる。以下の詳細な説明では、説明される様々な実施形態の完全な理解を提供するために数多くの具体的な詳細が記載されている。しかしながら、記載されている様々な実施形態は、これらの具体的な詳細を伴わずとも実践し得ることが、当業者には明らかであろう。他の例では、周知の方法、手順、構成要素、回路、およびネットワークは、実施形態の態様を不必要に不明瞭にしないよう詳細には説明されていない。
本明細書では、第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つ以上の機能、並びにデバイス上に表示される対応する情報は、アプリケーションごとに、および/またはそれぞれのアプリケーション内で、任意選択的に、調整および/または変更される。このように、デバイスの共通の物理アーキテクチャ(タッチ感知面など)は、任意選択的に、ユーザにとって直観的かつ透明なユーザインターフェースを備える様々なアプリケーションをサポートする。
ここで、タッチ感知ディスプレイを備えるポータブルデバイスの実施形態に注意を向ける。図1Aは、いくつかの実施形態に係る、タッチ感知ディスプレイシステム112を有するポータブル多機能デバイス100を示すブロック図である。タッチ感知ディスプレイシステム112は、便宜上「タッチスクリーン」と呼ばれる場合があり、単にタッチ感知ディスプレイと呼ばれる場合もある。デバイス100は、メモリ102(任意選択で、1つ以上のコンピュータ可読記憶媒体を含む)、メモリコントローラ122、1つ以上の処理ユニット(CPU)120、周辺機器インターフェース118、RF回路108、オーディオ回路110、スピーカ111、マイクロフォン113、入出力(I/O)サブシステム106、その他の入力または制御デバイス116、および外部ポート124を含む。デバイス100は、任意選択的に、1つ以上の光センサ164を含む。デバイス100は任意選択で、デバイス100(例えば、デバイス100のタッチ感知ディスプレイシステム112などのタッチ感知面)上の接触の強度を検出する1つ以上の強度センサ165を含む。デバイス100は、任意選択的に、デバイス100上で触知出力を生成する(例えばデバイス100のタッチ感知ディスプレイシステム112またはデバイス300のタッチパッド355などのタッチ感知面上で触知出力を生成する)1つ以上の触知出力生成器167を含む。これらの構成要素は、任意選択的に、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つ以上の光センサ164を含む。図1Aは、I/Oサブシステム106内の光センサコントローラ158と結合された光センサを示す。光センサ(単数または複数)164は、任意選択で、電荷結合デバイス(CCD)または相補的金属酸化物半導体(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つ以上の触知出力生成器167を含む。図1Aは、I/Oサブシステム106内の触覚フィードバックコントローラ161と結合され触知出力生成器を示す。いくつかの実施形態では、触知出力生成器(単数または複数)167は、スピーカ若しくは他のオーディオ構成要素などの1つ以上の電気音響デバイス、および/またはモータ、ソレノイド、電気活性ポリマ、圧電アクチュエータ、静電アクチュエータ、若しくは他の触知出力生成構成要素(例えば、デバイス上で電気信号を触知出力に変換する構成要素)などの、エネルギを線形の動きに変換する電気機械デバイスを含む。触知出力生成器(単数または複数)167は、触覚フィードバックモジュール133から触知フィードバック生成命令を受信し、デバイス100のユーザが感知できる触知出力をデバイス100上に生成する。いくつかの実施形態では、少なくとも1つの触知出力生成器は、タッチ感知面(例えば、タッチ感知ディスプレイシステム112)と並置される、またはそれに近接しており、任意選択的に、タッチ感知面を垂直方向(例えば、デバイス100の表面の内/外)に、または水平方向(例えば、デバイス100の表面と同じ平面内の前後)に移動させることによって、触知出力を生成する。いくつかの実施形態では、少なくとも1つの触知出力生成器センサは、デバイス100の前面上に位置するタッチ感知ディスプレイシステム112の反対である、デバイス100の背面上に配置される。
また、デバイス100は、任意選択的に、1つ以上の加速度計168を含む。図1Aは、周辺機器インターフェース118と結合された加速度計168を示す。代わりに、加速度計168は任意選択で、I/Oサブシステム106内の入力コントローラ160と結合される。いくつかの実施形態では、情報は、1つ以上の加速度計から受信されたデータの分析に基づいて、縦長ビューまたは横長ビュー内でタッチスクリーンディスプレイ上に表示される。デバイス100は、任意選択的に、加速度計(単数または複数)168に加えて、磁気計(図示せず)、並びにデバイス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、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コネクタである。
接触/動きモジュール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)いくつかの状況では、特定のジェスチャ認識基準が入力に対応するジェスチャ(例えば、認識のための深い押圧ジェスチャと競争する長い押圧ジェスチャのための)を認識する前に、強度依存ジェスチャ認識基準の競争するセット(例えば、深い押圧ジェスチャのための)が強度依存ジェスチャに対応するものとして入力を認識する場合、特定のジェスチャ認識基準(例えば、長い押圧ジェスチャのための)が機能しないという意味で、強度閾値に関して接触の強度になおも依存している。
グラフィックモジュール132は、表示されるグラフィックの視覚的影響(例えば、輝度、透明度、彩度、コントラスト、または他の視覚特性)を変更するための構成要素を含む、タッチ感知ディスプレイシステム112または他のディスプレイ上でグラフィックをレンダリングおよび表示するための様々な既知のソフトウェア構成要素を含む。本明細書で使用される場合、用語「グラフィック」は、テキスト、ウェブページ、アイコン(ソフトキーを含むユーザインターフェースオブジェクトなど)、デジタル画像、ビデオ、およびアニメーションなどを含むがこれらに限定されない、ユーザに対して表示することができるいずれかのオブジェクトを含む。
いくつかの実施形態では、グラフィックモジュール132は、使用されることになるグラフィックを表すデータを記憶する。各グラフィックには、任意選択的に、対応するコードが割り当てられる。グラフィックモジュール132は、アプリケーションなどから、必要に応じて、座標データおよび他のグラフィック特性データと共に、表示されることとなるグラフィックを指定する1つ以上のコードを受信し、次にディスプレイコントローラ156に出力する画面の画像データを生成する。
触覚フィードバックモジュール133は、デバイス100とのユーザ相互作用に応じて、触知出力生成器(単数または複数)167を使用してデバイス100上の1つ以上の位置において触知出力を作成する命令(例えば、触覚フィードバックコントローラ161によって使用される命令)を生成する様々なソフトウェア構成要素を含む。
テキスト入力モジュール134は、任意選択で、グラフィックモジュール132の構成要素であり、様々なアプリケーション(例えば、連絡先137、電子メール140、IM141、ブラウザ147、およびテキスト入力を必要とする任意の他のアプリケーション)でテキストを入力するためのソフトキーボードを提供する。
GPSモジュール135は、デバイスの位置を判定し、この情報を、様々なアプリケーションで使用するために(例えば、位置に基づく電話発信で使用するために電話138へ、写真/ビデオのメタデータとしてカメラ143へ、並びに、気象ウィジェット、地域のイエローページウィジェット、およびマップ/ナビゲーションウィジェットなどの、位置に基づくサービスを提供するアプリケーションへ)提供する。
アプリケーション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 Inc.の商標)などの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(図3)は、イベントソータ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、加速度計(単数または複数)168、および/若しくは(オーディオ回路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を動作させるための他の形態のユーザ入力にも適用されるが、その全てがタッチスクリーン上で開始されるわけではないことを理解されたい。例えば、キーボードの単一または複数の押圧若しくは保持と任意選択的に連携される、マウスの移動およびマウスボタンの押圧、タッチパッド上のタップ、ドラッグ、スクロールなどの接触の移動、ペンスタイラス入力、デバイスの移動、口頭による命令、検出された眼球運動、バイオメトリック入力、並びに/またはそれらの任意の組み合わせを、任意選択的に、認識するイベントを定義するサブイベントに対応する入力として利用する。
図1Cは、一部の実施形態に係る、触知出力モジュールを示すブロック図である。一部の実施形態では、I/Oサブシステム106(例えば、触覚フィードバックコントローラ161(図1A)および/または他の入力コントローラ(単数または複数)160(図1A)は、図1Cに示す例たる構成要素の少なくともいくつかを含む。一部の実施形態では、周辺機器インターフェース118は、図1Cに示す例たる構成要素のうちの少なくともいくつかを含む。
いくつかの実施形態では、触知出力モジュールは、触覚フィードバックモジュール133を含む。いくつかの実施形態では、触覚フィードバックモジュール133は、電子デバイス上のソフトウェアアプリケーションからのユーザインターフェースフィードバック(例えば、表示ユーザインターフェースに対応するユーザ入力、並びに電子デバイスのユーザインターフェースにおける動作の実行またはイベントの出現を示す警報および他の通知に応答するフィードバック)に対する触知出力を集約して組み合わせる。触覚フィードバックモジュール133は、波形モジュール123(触知出力を生成するために使用される波形を提供する)、ミキサ125(異なるチャネルにおける波形などの波形を混合する)、圧縮器127(波形のダイナミックレンジを低減または圧縮する)、ローパスフィルタ129(波形内の高周波信号成分をフィルタリングする)、および熱コントローラ131(熱状態に従って波形を調整する)のうちの1つ以上を含む。一部の実施形態では、触覚フィードバックコントローラ161(図1A)には、触覚フィードバックモジュール133が含まれる。一部の実施形態では、触覚フィードバックモジュール133の別々のユニット(または触覚フィードバックモジュール133の別個の実装)はまた、オーディオコントローラ(例えば、図1Aのオーディオ回路110)に含まれ、音声信号を生成するために使用される。いくつかの実施形態では、単一の触覚フィードバックモジュール133が、オーディオ信号および触知出力に対する波形を生成するために使用される。
いくつかの実施形態では、触覚フィードバックモジュール133はまた、トリガモジュール121(例えば、ソフトウェアアプリケーション、オペレーティングシステム、または生成すべき触知出力を判定して対応する触知出力を生成するプロセスを開始する他のソフトウェアモジュール)を含む。いくつかの実施形態では、トリガモジュール121は、波形の生成(例えば、波形モジュール123による)を開始するトリガ信号を生成する。例えば、トリガモジュール121は、事前設定されたタイミング基準に基づいて、トリガ信号を生成する。いくつかの実施形態では、トリガモジュール121は、ユーザインターフェース要素(例えば、アプリケーション内のアプリケーションアイコン若しくはアフォーダンス)またはハードウェア入力デバイス(例えば、ホームボタン若しくは強度感知タッチスクリーンなどの強度感知入力面)のアクティブ化に基づいて、触覚フィードバックモジュール133の外からトリガ信号を受信し(例えば、いくつかの実施形態では、触覚フィードバックモジュール133は、触覚フィードバックモジュール133の外に位置するハードウェア入力処理モジュール146からトリガ信号を受信する)、触覚フィードバックモジュール133内の他の構成要素(例えば、波形モジュール123)または動作をトリガ(例えば、トリガモジュール121による)するソフトウェアアプリケーションへ、それらのトリガ信号を中継する。一部の実施形態では、トリガモジュール121はまた、触知フィードバック生成命令(例えば、触覚フィードバックモジュール133から、図1Aおよび3)を受信する。一部の実施形態では、トリガモジュール121は、触知フィードバック命令を(例えば、図1Aおよび3の触覚フィードバックモジュール133から)受信する触覚フィードバックモジュール133(または触覚フィードバックモジュール133内のトリガモジュール121)に応じてトリガ信号を生成する。
波形モジュール123は、入力としてトリガ信号を(例えば、トリガモジュール121から)受信し、受信トリガ信号に応じて、1つ以上の触知出力の生成のための波形(例えば、図4F~4Gを参照して以下でより詳細に説明される波形などの、波形モジュール123によって使用するために設計された所定のセットの波形から選択された波形)を提供する。
ミキサ125は、波形(例えば、波形モジュール123から)を入力として受信し、これらの波形を共に混合する。例えば、ミキサ125が2つ以上の波形(例えば、第1のチャネルの第1の波形および第1の波形と少なくとも部分的に重複する第2のチャネルの第2の波形)受信したとき、ミキサ125は、2つ以上の波形の和に対応する組み合わせた波形を出力する。いくつかの実施形態では、ミキサ125はまた、2つ以上の波形のうちの1つ以上の波形を修正し、2つ以上の波形のうちの残りに対して特定の波形を強調する(例えば、特定の波形の縮尺の増大および/または波形のうちの残りの縮尺の減少による)。いくつかの状況では、ミキサ125は、組み合わせた波形から除去すべき1つ以上の波形を選択する(例えば、触知出力生成器167によって同時に出力することが要求された4つ以上のソースからの波形があるとき、最も古いソースからの波形が落とされる)。
圧縮器127は、波形(例えば、ミキサ125からの合成波形)を入力として受信し、波形を変更する。一部の実施形態では、圧縮器127は、波形に対応する触知出力が減少するように、(例えば、触知出力生成器167(図1A)または357(図3)の物理的な仕様に従って)波形を低減する。いくつかの実施形態では、圧縮器127は、波形に対する所定の最大振幅を強制することなどによって、波形を制限する。例えば、圧縮器127は、波形のうち所定の振幅閾値を超過する部分の振幅を低減させながら、波形のうち所定の振幅閾値を超過しない部分の振幅は維持する。いくつかの実施形態では、圧縮器127は、波形のダイナミックレンジを低減させる。いくつかの実施形態では、圧縮器127は、波形のダイナミックレンジを動的に低減させ、その結果、組み合わせた波形は、触知出力生成器167の性能仕様(例えば、力および/または可動質量の変位限界)の範囲内に留まる。
ローパスフィルタ129は、波形(例えば、圧縮器127からの圧縮された波形)を入力として受信し、これらの波形をフィルタリング(例えば、平滑化)する(例えば、波形内の高周波信号成分を除去または低減する)。例えば、いくつかの例では、触知出力が圧縮された波形に従って生成されるとき、圧縮器127は、圧縮された波形内に、触知出力の生成に干渉する、および/または触知出力生成器167の性能仕様を超える外生信号(例えば、高周波信号成分)を含む。ローパスフィルタ129は、波形内のそのような外生信号を低減または除去する。
熱コントローラ131は、波形(例えば、ローパスフィルタ129からのフィルタリングされた波形)を入力として受信し、デバイス100の熱状態に従ってこれらの波形を調整する(例えば、触覚フィードバックコントローラ161の温度などのデバイス100内で検出される内部温度、および/またはデバイス100によって検出される外部温度に基づく)。例えば、いくつかの場合、触覚フィードバックコントローラ161の出力は、温度に応じて変動する(例えば、触覚フィードバックコントローラ161は、同じ波形を受信したことに応じて、触覚フィードバックコントローラ161が第1の温度であるときは、第1の触知出力を生成し、触覚フィードバックコントローラ161が第1の温度とは異なる第2の温度であるときは、第2の触知出力を生成する)。例えば、触知出力の大きさ(または振幅)は、温度によって変化してもよい。温度変動の影響を低減させるために、波形が修正される(例えば、温度に基づいて波形の振幅が増大または減少される)。
いくつかの実施形態では、触覚フィードバックモジュール133(例えば、トリガモジュール121)が、ハードウェア入力処理モジュール146に結合される。一部の実施形態では、図1Aの他の入力コントローラ(単数または複数)160は、ハードウェア入力処理モジュール146を含む。一部の実施形態では、ハードウェア入力処理モジュール146は、ハードウェア入力デバイス145(例えば、ホームボタン、または強度感知タッチスクリーンなどの強度感知入力面などの、図1Aの他の入力または制御デバイス116)からの入力を受信する。一部の実施形態では、ハードウェア入力デバイス145は、タッチ感知ディスプレイシステム112(図1A)、キーボード/マウス350(図3)、タッチパッド355(図3)、他の入力または制御デバイス116(図1A)のうちの1つ、または強度感知ホームボタンなどの入力デバイスのいずれかである。一部の実施形態では、ハードウェア入力デバイス145は、強度感知ホームボタンからなり、タッチ感知ディスプレイシステム112(図1A)、キーボード/マウス350(図3)、またはタッチパッド355(図3)ではない。いくつかの実施形態では、ハードウェア入力デバイス145(例えば、強度感知ホームボタンまたはタッチスクリーン)からの入力に応じて、ハードウェア入力処理モジュール146は、ホームボタンの「クリック」(例えば、「ダウンクリック」または「アップクリック」)に対応する入力などの所定の入力基準を満足させるユーザ入力が検出されたことを示すために、1つ以上のトリガ信号を触覚フィードバックモジュール133に提供する。いくつかの実施形態では、触覚フィードバックモジュール133は、ホームボタンの「クリック」に対応する入力に応じて、ホームボタンの「クリック」に対応する波形を提供し、物理ホームボタンを押下する触覚フィードバックをシミュレートする。
一部の実施形態では、触知出力モジュールは、触知出力の生成を制御する触覚フィードバックコントローラ161(図1Aの触覚フィードバックコントローラ161)を含む。いくつかの実施形態では、触覚フィードバックコントローラ161は、複数の触知出力生成器に結合されており、複数の触知出力生成器のうちの1つ以上の触知出力生成器を選択し、触知出力を生成する選択された1つ以上の触知出力生成器へ波形を送信する。いくつかの実施形態では、触覚フィードバックコントローラ161は、ハードウェア入力デバイス145のアクティブ化に対応する触知出力要求、およびソフトウェアイベントに対応する触知出力要求(例えば、触覚フィードバックモジュール133からの触知出力要求)を統合し、2つ以上の波形のうちの1つ以上の波形を修正、2つ以上の波形のうちの残りに対して特定の波形を強調する(例えば、ソフトウェアイベントに対応する触知出力よりハードウェア入力デバイス145のアクティブ化に対応する触知出力に優先順位をつけるためなどの、特定の波形の縮尺の増大および/または波形のうちの残りの縮尺の減少による)。
一部の実施形態では、図1Cに示されるように、触覚フィードバックコントローラ161の出力は、デバイス100のオーディオ回路(例えば、オーディオ回路110、図1A)に結合され、音声信号をデバイス100のオーディオ回路に提供する。いくつかの実施形態では、触覚フィードバックコントローラ161は、触知出力を生成するために使用される波形と、触知出力の生成と連動してオーディオ出力を提供するために使用されるオーディオ信号との両方を提供する。いくつかの実施形態では、触覚フィードバックコントローラ161は、オーディオ信号および/または波形(触知出力を生成するために使用される)を修正し、その結果、オーディオ出力および触知出力が同期される(例えば、オーディオ信号および/または波形を遅延させることによる)。いくつかの実施形態では、触覚フィードバックコントローラ161は、デジタル波形をアナログ信号に変換するために使用されるデジタルアナログ変換器を含み、アナログ信号は、増幅器163および/または触知出力生成器167によって受信される。
いくつかの実施形態では、触知出力モジュールは、増幅器163を含む。一部の実施形態では、増幅器163は、波形を(例えば、触覚フィードバックコントローラ161から)受信し、増幅波形を触知出力生成器167(例えば、触知出力生成器167(図1A)または357(図3)のうちのいずれか)に送信する前に波形を増幅する。例えば、増幅器163は、触知出力生成器167の物理仕様に従った信号レベル(例えば、触知出力生成器167へ送信された信号が、触覚フィードバックコントローラ161から受信した波形に対応する触知出力を生成するように、触知出力を生成するために触知出力生成器167によって必要とされる電圧および/または電流)まで、受信した波形を増幅し、増幅された波形を触知出力生成器167へ送信する。応じて、触知出力生成器167は、触知出力を生成する(例えば、可動質量の中立位置に対して可動質量を1つ以上の次元で前後にシフトさせることによる)。
いくつかの実施形態では、触知出力モジュールは、触知出力生成器167に結合されたセンサ169を含む。センサ169は、触知出力生成器167または触知出力生成器167の1つ以上の構成要素(例えば、触知出力を生成するために使用される膜などの1つ以上の移動部分)の状態または状態変化(例えば、機械的位置、物理的変位、および/または移動)を検出する。いくつかの実施形態では、センサ169は、磁界センサ(例えば、ホール効果センサ)または他の変位および/若しくは移動センサである。いくつかの実施形態では、センサ169は、情報(例えば、触知出力生成器167内の1つ以上の部分の位置、変位、および/または移動)を触覚フィードバックコントローラ161に提供し、触知出力生成器167の状態に関するセンサ169によって提供された情報に従って、触覚フィードバックコントローラ161は、触覚フィードバックコントローラ161から出力される波形(例えば、任意選択的に増幅器163を介して触知出力生成器167へ送信される波形)を調整する。
図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つ以上の触知出力生成器167を含む。
図3は、いくつかの実施形態に係る、ディスプレイおよびタッチ感知面を有する例示的な多機能デバイスのブロック図である。デバイス300は、ポータブル型である必要はない。いくつかの実施形態では、デバイス300は、ラップトップコンピュータ、デスクトップコンピュータ、タブレットコンピュータ、マルチメディアプレイヤーデバイス、ナビゲーションデバイス、教育的デバイス(子供の学習玩具など)、ゲームシステム、または制御デバイス(例えば、家庭用または業務用コントローラ)である。デバイス300は、典型的には、1つ以上の処理ユニット(CPU)310と、1つ以上のネットワークまたは他の通信インターフェース360と、メモリ370と、およびこれらの構成要素を相互接続するための1つ以上の通信バス320とを含む。通信バス320は、任意選択的に、システム構成要素間の通信を相互接続および制御する回路(チップセットと呼ばれることもある)を含む。デバイス300は典型的にはタッチスクリーンディスプレイであるディスプレイ340を含む、入出力(I/O)インターフェース330を含む。I/Oインターフェース330は、任意選択で、キーボードおよび/またはマウス(または、他のポインティングデバイス)350、並びにタッチパッド355、(例えば、図1Aを参照して上記説明された触知出力生成器(単数または複数)167と同様の)デバイス300上で触知出力を生成するための触知出力生成器357、センサ359(例えば、光センサ、加速度センサ、近接センサ、タッチ感知センサ、および/または図1Aを参照して上記説明された接触強度センサ(単数または複数)165と同様の接触強度センサ)をも含む。メモリ370は、DRAM、SRAM、DDR RAM、または他のランダムアクセスソリッドステートメモリデバイスなどの高速ランダムアクセスメモリを含み、任意選択で、1つ以上の磁気ディスク記憶デバイス、光ディスク記憶デバイス、フラッシュメモリデバイス、または他の不揮発性ソリッドステート記憶デバイスなどの不揮発性メモリを含む。メモリ370は、任意選択で、CPU(単数または複数)310からリモートに位置する1つ以上の記憶デバイスを含む。いくつかの実施形態では、メモリ370は、ポータブル多機能デバイス100(図1A)のメモリ102に記憶されたプログラム、モジュール、およびデータ構造に類似するプログラム、モジュール、およびデータ構造、またはそれらのサブセットを記憶する。更に、メモリ370は、任意選択で、ポータブル多機能デバイス100のメモリ102に存在しない追加のプログラム、モジュール、およびデータ構造を記憶する。例えば、デバイス300のメモリ370は任意選択で、描画モジュール380、プレゼンテーションモジュール382、ワードプロセッシングモジュール384、ウェブサイト作成モジュール386、ディスクオーサリングモジュール388、および/またはスプレッドシートモジュール390を記憶するが、ポータブル多機能デバイス100(図1A)のメモリ102は、任意選択で、それらのモジュールを記憶しない。
上記特定された図3における要素の各々は、任意選択で、前に言及したメモリデバイスのうちの1つ以上に記憶される。上記で特定されたモジュールの各々は、上記で説明された機能を実行する命令セットに対応する。上記で特定されたモジュールまたはプログラム(すなわち、命令セット)は、別個のソフトウェアプログラム、手順、またはモジュールとして実装される必要はなく、したがって、それらのモジュールの様々なサブセットは、任意選択で、様々な実施形態において組み合わされるか、またはその他の方式で再配置される。いくつかの実施形態では、メモリ370は、任意選択で、上記で特定されたモジュールおよびデータ構造のサブセットを記憶する。更に、メモリ370は、上記で説明されていない追加のモジュールおよびデータ構造を任意選択的に記憶する。
ここで、ポータブル多機能デバイス100上で任意選択的に実装されるユーザインターフェース(「UI」)の実施形態に着目する。
図4Aは、いくつかの実施形態による、ポータブル多機能デバイス100上のアプリケーションのメニューのための例示的なユーザインターフェース400を示す。同様のユーザインターフェースは、デバイス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、図3)を有するデバイス(例えば、デバイス300、図3)上の例示的なユーザインターフェースを示す。以下の実施例のうちの多くはタッチスクリーンディスプレイ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つ以上は、別の入力デバイスからの入力(例えば、マウスに基づく入力またはスタイラス入力)と置換されることを理解されたい。例えば、スワイプジェスチャは、任意選択的に、(例えば、接触の代わりに、)マウスクリックであって、その後に(例えば、接触の移動の代わりに)スワイプの経路に沿ったカーソルの移動を伴うマウスクリックによって置き換えられる。別の例として、タップジェスチャは、任意選択的に、カーソルがタップジェスチャの位置上に位置する間は、(例えば、接触を検出して、それに続いて接触の検出を終了する代わりに)マウスクリックによって置き換えられる。同様に、複数のユーザ入力が同時に検出されるとき、複数のコンピュータマウスが、任意選択的に、同時に使用され、またはマウスおよび指の接触が、任意選択的に、同時に使用されることを理解されたい。
本明細書で使用される「フォーカスセレクタ」という用語は、ユーザが対話しているユーザインターフェースの現在の部分を示す入力要素を指す。カーソルまたは他のロケーションマーカを含むいくつかの実装形態では、カーソルは、カーソルが特定のユーザインターフェース要素(例えば、ボタン、ウィンドウ、スライダ、または他のユーザインターフェース要素)の上にある間に、タッチ感知面(例えば、図3におけるタッチパッド355、または図4Bにおけるタッチ感知面451)上で入力(例えば、押圧入力)が検出されると、特定のユーザインターフェース要素が検出された入力に従って調整されるように、「フォーカスセレクタ」として機能する。タッチスクリーンディスプレイ上のユーザインターフェース要素との直接的な相互作用を有効化するタッチスクリーンディスプレイ(例えば、図1Aにおけるタッチ感知ディスプレイシステム112、または図4Aにおけるタッチスクリーン)を含むいくつかの実装形態では、タッチスクリーン上で検出された接触は、入力(例えば、接触による押圧入力)がタッチスクリーンディスプレイ上で特定のユーザインターフェース要素(例えば、ボタン、ウィンドウ、スライダ、または他のユーザインターフェース要素)の位置において検出されると、特定のユーザインターフェース要素が検出された入力に従って調製されるように、「フォーカスセレクタ」として機能する。いくつかの実装では、タッチスクリーンディスプレイ上の対応するカーソルの移動または接触の移動なしに、(例えば、タブキーまたは矢印キーを使ってフォーカスを1つのボタンから別のボタンに移動させることにより)フォーカスが、ユーザインターフェースの1つの領域からユーザインターフェースの別の領域に移動される。これらの実装形態では、フォーカスセレクタは、ユーザインターフェースの種々の領域間でのフォーカスの移動に従って移動する。フォーカスセレクタによってとられる具体的な形態とは関わりなく、フォーカスセレクタは一般的に、ユーザインターフェースとのユーザの意図した相互作用を通信するために(例えば、ユーザが相互作用することを意図しているユーザインターフェースの要素をデバイスに示すことによって)、ユーザによって制御されるユーザインターフェース要素(または、タッチスクリーンディスプレイ上の接触)である。例えば、タッチ感知面(例えば、タッチパッドまたはタッチスクリーン)上で押圧入力が検出されている間の、対応のボタンの上のフォーカスセレクタ(例えば、カーソル、接触、または選択ボックス)の位置は、その対応のボタンを(そのデバイスのディスプレイ上に示される他のユーザインターフェース要素ではなく)アクティブ化することをユーザが意図していることを示すものである。
本明細書および特許請求の範囲で使用される、タッチ感知面上の接触の「強度」という用語は、タッチ感知面上の接触(例えば、指の接触またはスタイラスの接触)の力、または圧力(単位面積あたりの力)、またはタッチ感知面上の接触の力または圧力の代替物(プロキシ)を指す。接触の強度は、少なくとも4つの別個の値を含み、より典型的には、数百の(例えば、少なくとも256の)別個の値を含む、値の範囲を有する。接触の強度は、任意選択的に、様々な手法、および様々なセンサまたはセンサの組み合わせを使用して、判定(または測定)される。例えば、タッチ感知面の下またはそれに隣接する1つ以上の力センサは、任意選択的に、タッチ感知面上の様々なポイントにおける力を測定するために使用される。いくつかの実装形態では、複数の力センサからの力測定値は、推定される接触の力を特定するために組み合わされる(例えば、加重平均または合計)。同様に、スタイラスの感圧性先端部が、任意選択的に、タッチ感知面上のスタイラスの圧力を判定するために使用される。あるいは、タッチ感知面上で検出される接触エリアのサイズおよび/若しくはその変化、接触に近接するタッチ感知面の電気容量および/若しくはその変化、並びに/または、接触に近接するタッチ感知面の抵抗および/若しくはその変化が、任意選択的に、タッチ感知面上の接触の力または圧力の代替物として使用される。一部の実装形態では、接触の力または圧力の代替測定値が、強度閾値を超えているかどうかを判定するために直接使用される(例えば、強度閾値は、代替測定値に対応する単位で記述される)。いくつかの実装形態では、接触の力または圧力のための代替測定値は、推定される力または圧力に変換され、推定される力または圧力は、強度閾値を超えているかどうかを判定するために使用される(例えば、強度閾値は、圧力の単位で測定された圧力閾値である)。ユーザ入力の属性として接触の強度を使用すると、(例えば、タッチ感知ディスプレイ上に)アフォーダンスを表示するため、および/または(例えば、タッチ感知ディスプレイ、タッチ感知面、またはノブ若しくはボタンなどの物理的/機械的コントロールを介して)ユーザ入力を受信するための資産が制限された、低減されたサイズのデバイス上で、そうでない場合ユーザによるアクセスが容易に可能でない場合がある、追加のデバイス機能にユーザがアクセスすることが可能になる。
いくつかの実施形態では、接触/動きモジュール130は、ユーザによって動作が実行されたかどうかを判定するために(例えば、ユーザがアイコン上で「クリック」したかどうかを判定するために)、1つ以上の強度閾値のセットを使用する。いくつかの実施形態では、少なくとも強度閾値のサブセットは、ソフトウェアパラメータに従って決定される(例えば、強度閾値は、特定の物理アクチュエータのアクティブ化閾値によって決定されず、デバイス100の物理ハードウェアを変更することなく調節されてもよい)。例えば、トラックパッドまたはタッチスクリーンディスプレイのマウス「クリック」閾値は、トラックパッドまたはタッチスクリーンディスプレイのハードウェアを変更することなく、広範囲の既定の閾値のうちのいずれかに設定することができる。更に、いくつかの実装形態では、デバイスのユーザは、(例えば、個々の強度閾値を調整することにより、および/または、システムレベルのクリック「強度」パラメータで一度に複数の強度閾値を調整することにより)強度閾値のセットのうちの1つ以上を調整するためのソフトウェア設定が提供される。
本明細書および特許請求の範囲において使用されるとき、接触の「特性強度」という用語は、接触の1つ以上の強度に基づく、その接触の特性を指す。いくつかの実施形態では、特性強度は複数の強度サンプルに基づく。特性強度は、任意選択的に、既定の数の強度サンプル、すなわち、既定のイベント(例えば、接触を検出した後、接触のリフトオフを検出する前、接触の移動の開始を検出する前若しくは後、接触の終了を検出する前、接触の強度の増大を検出する前若しくは後、および/または、接触の強度の減少を検出する前若しくは後の)に関連する所定の時間(例えば、0.05、0.1、0.2、0.5、1、2、5、10秒)の間に収集された強度サンプルのセットに基づく。接触の特性強度は任意選択で、接触の強度の最大値、接触の強度の平均値(mean value)、接触の強度の平均値(average value)、接触の強度の上位10%値、接触の強度の最大値の半分の値、接触の強度の最大値の90%の値、予め定義された期間にわたって、または予め定義された時間において開始した接触の強度を低域フィルタリングすることによって生成された値などのうちの1つ以上に基づく。一部の実施形態では、特性強度を判定する際に(例えば、特性強度が経時的な接触の強度の平均であるときに)、接触の持続期間が使用される。一部の実施形態では、特性強度は、ユーザによって動作が実行されたかどうかを判定するために、1つ以上の強度閾値のセットと比較される。例えば、1つ以上の強度閾値のセットは、第1の強度閾値および第2の強度閾値を含んでもよい。この実施例では、第1の閾値を上回らない特性強度を有する接触の結果として第1の動作が実行され、第1の強度閾値を上回り第2の強度閾値を上回らない特性強度を有する接触の結果として第2の動作が実行され、第2の強度閾値を上回る特性強度を有する接触の結果として第3の動作が実行される。いくつかの実施形態では、特性強度と1つ以上の強度閾値との間の比較は、第1の操作を実行するか、または第2の操作を実行するかを判定するために使用されるのではなく、1つ以上の操作を実行するか否か(例えば、それぞれの選択肢を実行するか、またはそれぞれの操作を実行することを控えるか)を判定するために使用される。
一部の実施形態では、特性強度を判定する目的のために、ジェスチャの一部分が特定される。例えば、タッチ感知面は、開始位置から遷移して終了位置に達する連続的なスワイプ接触(例えば、ドラッグジェスチャ)を受け取る場合があり、そのポイントにおいて接触の強度が増大する。この例では、終了位置における接触の特性強度は、スワイプ接触全体ではなく、連続的なスワイプ接触の一部分のみ(例えば、終了位置におけるスワイプ接触の一部分のみ)に基づいてもよい。いくつかの実施形態では、接触の特性強度を特定する前に、スワイプ接触の強度に平滑化アルゴリズムが適用されてもよい。例えば、平滑化アルゴリズムは、任意選択的に、非加重移動平均平滑化アルゴリズム、三角平滑化アルゴリズム、中央値フィルタ平滑化アルゴリズム、および/または指数平滑化アルゴリズムのうちの1つ以上を含む。いくつかの状況では、これらの平滑化アルゴリズムは、特性強度を判定する目的のために、スワイプ接触強度の幅の狭いスパイクまたは下落を排除する。
本明細書で説明されるユーザインターフェースの図は、任意選択で、1つ以上の強度閾値(例えば、接触検出強度閾値IT0、軽押圧強度閾値ITL、深押圧強度閾値ITD(例えば、少なくとも最初はITLよりも高い)、および/または1つ以上の他の強度閾値(例えば、ITLよりも低い強度閾値ITH)に対する、タッチ感知面上の接触の現在の強度を示す、様々な強度の図表を含む。この強度の図は、典型的には、表示されるユーザインターフェースの一部ではないが、図の解釈を支援するために提供される。一部の実施形態では、軽い押下強度閾値は、通常、物理マウスのボタンまたはトラックパッドをクリックすることに関連付けられた動作をデバイスが実行する強度に相当する。一部の実施形態では、深い押下強度閾値は、通常、物理マウスのボタンまたはトラックパッドをクリックすることに関連付けられた動作とは異なる動作をデバイスが実行する強度に相当する。いくつかの実施形態では、浅い押圧強度閾値を下回る(例えば、それを下回ると接触がもはや検出されない名目上の接触検出強度閾値IT0を上回る)特性強度を有する接触が検出されると、デバイスは、浅い押圧強度閾値または深い押圧強度閾値に関連付けられた動作を実行することなく、タッチ感知面上の接触の移動に従ってフォーカスセレクタを移動させる。一般に、特に明記しない限り、これらの強度閾値は、ユーザインターフェースの値の様々なセットの間で一貫している。
いくつかの実施形態では、デバイスによって検出された入力へのデバイスの応答は、入力中の接触強度に基づく基準に依存する。例えば、いくつかの「浅い押圧」入力の場合、入力中の第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(例えば、強度閾値ID)を示す。図4Dは、2つの他の強度閾値:第1の強度閾値IHおよび第2の強度閾値ILも示す。図4Dでは、タッチ入力484が時間p2の前に第1の強度閾値IHおよび第2の強度閾値ILを満たすが、時間482において遅延時間p2が経過するまでは応答が提供されない。また、図4Dでは、動的な強度閾値486は経時的に減衰し、減衰は、時間482から既定の遅延時間p1が経過した後(第2の強度閾値ILに関連付けられた応答がトリガされたとき)の時間488に始まる。このタイプの動的な強度閾値は、第1の強度閾値IHまたは第2の強度閾値ILなどの、より低い強度閾値に関連付けられた応答をトリガした直後、またはそれと同時に、動的な強度閾値IDに関連付けられた応答の偶発的なトリガを削減する。
図4Eは、更に別の動的な強度閾値492(例えば、強度閾値ID)を示す。図4Eでは、強度閾値ILに関連付けられた応答は、タッチ入力490が最初に検出されたときから遅延時間p2が経過した後にトリガされる。同時に、動的な強度閾値492は、タッチ入力490が最初に検出されたときから既定の遅延時間p1が経過した後に減衰する。そのため、タッチ入力490を解放することなしに、タッチ入力490の強度の増大がその後に続く、強度閾値ILに関連付けられた応答をトリガした後のタッチ入力490の強度の減少は、タッチ入力490の強度が別の強度閾値、例えば、強度閾値ILを下回るときでも、(例えば、時間494において)強度閾値IDに関連付けられた応答をトリガすることができる。
浅い押圧強度閾値ITLを下回る強度から、浅い押圧強度閾値ITLと深い押圧強度閾値ITDとの間の強度への接触の特性強度の増大は、「浅い押圧」入力と呼ばれる場合がある。深い押圧強度閾値ITDを下回る強度から深い押圧強度閾値ITDを上回る強度への接触の特性強度の増大は、「深い押圧」入力と呼ばれる場合がある。接触検出強度閾値IT0を下回る強度から接触検出強度閾値IT0と浅い押圧強度閾値ITLの間の強度への接触の特性強度の増大は、タッチ面上の接触の検出と呼ばれる場合がある。接触検出強度閾値IT0を上回る強度から接触検出強度閾値IT0を下回る強度への接触の特性強度の減少は、タッチ面からの接触のリフトオフの検出と呼ばれる場合がある。いくつかの実施形態では、IT0はゼロである。いくつかの実施形態では、IT0はゼロより大きい。いくつかの例示では、タッチ感知面上の接触の強度を表すために、網掛けの円または楕円が使用される。いくつかの例示では、それぞれの接触の強度を指定することなく、タッチ感知面上のそれぞれの接触を表すために、網掛けなしの円または楕円が使用される。
本明細書に記載されるいくつかの実施形態では、1つ以上の動作は、それぞれの押圧入力を含むジェスチャを検出したことに含む、またはそれぞれの接触(若しくは複数の接触)で実行されるそれぞれの押圧入力を検出したことに含む実行され、それぞれの押圧入力は、押圧入力強度閾値を上回る接触(または複数の接触)の強度の増大を検出したことに少なくとも部分的に基づいて検出される。いくつかの実施形態では、それぞれの動作は、押圧入力強度閾値を上回るそれぞれの接触の強度の増大を検出したことに含む実行される(例えば、それぞれの動作は、それぞれの押圧入力の「ダウンストローク」上で実行される)。いくつかの実施形態では、押圧入力は、押圧入力強度閾値を上回るそれぞれの接触の強度の増大、およびその後の押圧入力強度閾値を下回る接触の強度の減少を含み、それぞれの動作は、その後の押圧入力閾値を下回るそれぞれの接触の強度の減少を検出したことに含む実行される(例えば、それぞれの動作は、それぞれの押圧入力の「アップストローク」上で実行される)。
一部の実施形態では、デバイスは、「ジッタ」と呼ばれる場合がある偶発的な入力を回避するために強度ヒステリシスを採用し、デバイスは、押下入力強度閾値との既定の関係を有するヒステリシス強度閾値を定義または選択する(例えば、ヒステリシス強度閾値は、押下入力強度閾値よりもX強度単位低い、またはヒステリシス強度閾値は、押下入力強度閾値の75%、90%、若しくは何らかの妥当な割合である)。したがって、いくつかの実施形態では、押圧入力は、押圧入力強度閾値を上回るそれぞれの接触の強度の増大、およびその後の押圧入力強度閾値に対応するヒステリシス強度閾値を下回る接触の強度の減少を含み、それぞれの動作は、その後のヒステリシス強度閾値を下回るそれぞれの接触の強度の減少を検出したことに応じて実行される(例えば、それぞれの動作は、それぞれの押圧入力の「アップストローク」上で実行される)。同様に、一部の実施形態では、押下入力は、デバイスが、ヒステリシス強度閾値以下の強度から押下入力強度閾値以上の強度への接触の強度の増大、および任意選択的に、その後のヒステリシス強度以下の強度への接触の強度の減少を検出するときにのみ検出され、それぞれの動作は、押下入力(例えば、状況に応じて、接触の強度の増大または接触の強度の減少)を検出したことに応じて実行される。
説明を容易にするために、押圧入力強度閾値に関連付けられた押圧入力に応じて、または押圧入力を含むジェスチャに応じて実行される動作の説明は、任意選択的に、押圧入力強度閾値を上回る接触の強度の増大、ヒステリシス強度閾値を下回る強度から押圧入力強度閾値を上回る強度への接触の強度の増大、押圧入力強度閾値を下回る接触の強度の減少、または押圧入力強度閾値に対応するヒステリシス強度閾値を下回る接触の強度の減少を検出したことに応じてトリガされる。更に、押下入力強度閾値を下回る接触の強度の減少を検出したことに応じて実行されるように動作が記載される例では、動作は、任意選択的に、押下入力強度閾値に対応し、かつそれよりも低いヒステリシス強度閾値を下回る接触の強度の減少を検出したことに応じて実行される。上述されたように、いくつかの実施形態では、これらの応答のトリガは、満たされる時間ベースの基準にも依存する(例えば、遅延時間は、第1の強度閾値が満たされることと第2の強度閾値が満たされることとの間で経過している)。
本明細書および特許請求の範囲で使用されるように、用語「触知出力」は、ユーザの触覚でユーザによって検出されることになる、デバイスの従前の位置に対するそのデバイスの物理的変位、デバイスの構成要素(例えば、タッチ感知面)の、そのデバイスの別の構成要素(例えば、筐体)に対する物理的変位、または、デバイスの質量中心に対する構成要素の変位を指す。例えば、デバイスまたはデバイスの構成要素が、タッチに敏感なユーザの表面(例えば、ユーザの手の指、手のひら、または他の部分)に接触している状況では、物理的変位によって生成された触知出力は、そのデバイスまたはデバイスの構成要素の物理的特性の認識される変化に相当する触感として、ユーザによって解釈されることになる。例えば、タッチ感知面(例えば、タッチ感知ディスプレイまたはトラックパッド)の移動は、ユーザによって、物理アクチュエータボタンの「ダウンクリック」または「アップクリック」として、任意選択的に解釈される。場合によっては、ユーザの動作により物理的に押された(例えば、変位された)タッチ感知面に関連付けられた物理アクチュエータボタンの移動がないときでさえ、ユーザは「ダウンクリック」または「アップクリック」などの触感を感じる。別の例として、タッチ感知面の移動は、タッチ感知面の平滑度に変化がない場合であっても、ユーザによって、そのタッチ感知面の「粗さ」として、任意選択的に解釈または感知される。そのようなユーザによるタッチの解釈は、ユーザの個人的な感覚認知に左右されるが、大多数のユーザに共通する、多くのタッチの感覚認知が存在する。したがって、触知出力が、ユーザの特定の感覚認知(例えば、「アップクリック」「ダウンクリック」、「粗さ」)に対応するものと記述される場合、別途記載のない限り、生成された触知出力は、典型的な(または、平均的な)ユーザの記述された感覚認知を生成するデバイス、またはデバイスの構成要素の物理的変位に対応する。触知出力を使用して触覚フィードバックをユーザに提供することで、デバイスの操作性が向上し、ユーザ-デバイスインターフェースがより効率的になり(例えば、デバイスを動作させ/デバイスと相互作用するとき、ユーザが適切な入力を提供するのを助け、ユーザの誤りを低減させることによる)、加えて、ユーザがデバイスをより迅速かつ効率的に使用するのを有効化することによって、電力使用を低減させ、デバイスの電池寿命を改善する。
ユーザインターフェースおよび関連するプロセス
ここで、ディスプレイとタッチ感知面と、(任意選択的に)触知出力を生成するための1つ以上の触知出力生成器と、(任意選択的に)タッチ感知面との接触の強度を検出するための1つ以上のセンサとを備える、ポータブル多機能デバイス100またはデバイス300などの電子デバイス上で実装され得る、ユーザインターフェース(「UI」)および関連プロセスの実施形態に注意を向ける。
図5A~図5AFは、いくつかの実施形態に係る、注釈を再位置特定するためのユーザインターフェースの例を示す。それらの図におけるユーザインターフェースは、図9A~図9F、図10A~図10B、図11A~図11F、および図12A~図12Dにおけるプロセスを含む、以下で説明されるプロセスを示すために使用される。説明の便宜上、実施形態のいくつかは、タッチ感知ディスプレイシステム112を有するデバイス上で実行される操作を参照して議論される。そのような実施形態では、フォーカスセレクタは任意選択で、それぞれの指若しくはスタイラスの接触、指若しくはスタイラスの接触に対応する代表的な点(例えば、それぞれの接触の面心若しくはそれぞれの接触と関連付けられた点)、またはタッチ感知ディスプレイシステム112上で検出された2つ以上の接触の面心である。しかしながら、同様の操作は任意選択で、フォーカスセレクタと共に、ディスプレイ450上の図に示されるユーザインターフェースを表示する間、タッチ感知面451上の接触を検出したことに応じて、ディスプレイ450および別々のタッチ感知面451を有するデバイス上で実行される。
図5Aは、デバイス100のタッチスクリーン112上に表示される注釈ユーザインターフェース5003を示す。ユーザインターフェースは、デバイス100の物理的環境5000をキャプチャすると、デバイス100のカメラの視野を表示する。テーブル5001aおよびマグカップ5002aは、物理的環境5000内に位置する。カメラビューは、ユーザインターフェース5003内に表示されるように、物理テーブル5001aの視覚的表現5001bを含む。ユーザインターフェース5003は、静止画モードとビデオモードとをトグルするためのコントロール5004と、カメラフラッシュ設定を制御するためのコントロール5006と、カメラ設定にアクセスするためのコントロール5008と、現在モードを示すモードインジケータ5010と、を含む。
図5Aから図5Bまで、デバイス100は、カメラの視野内で視認可能なテーブル5001bの部分が変化し、物理的なマグカップ5002aの視覚的表現5002bがカメラの視野内で視認可能となるように、物理的環境に対して移動している。
図5Cでは、スタイラス5012は、接触5014によって指示された注釈ユーザインターフェース5003内の点でタッチスクリーンディスプレイ112上にタッチされている。接触5014の検出に応じて、カメラの視野の静止画がキャプチャされ、ユーザインターフェース5003内に表示される。モード制御5004およびモードインジケータ5010の状態は、ユーザインターフェースのアクティブモードがビデオモードから静止画モードに変更されたことを示すように変更されている。スタイラスのタッチダウンに応じて生じる静止画モードへの遷移(および/または他のタイプの入力に応じて、以下で更に説明するように)は、注釈入力をカメラ143によってキャプチャされた物理的環境のビューに対して、デバイス100とデバイス100の移動によって引き起こされる物理的環境5000との間の空間的関係の変化によって影響を受けることなく、受信することを可能にする。
図5Cから図5Dまで、デバイス100は、物理的環境5000に対して移動している。ユーザインターフェースのアクティブモードは、ビデオモードから静止画モードに変更されているため、タッチスクリーンディスプレイ112によって表示された画像は、図5Cから図5Dに変更されない。
図5Eから図5Gまで、接触5014は、矢印5016によって示される経路に沿って移動し、物理マグカップ5002aの視覚的表現5002bを含む静止画の一部分に第1の注釈5018を生成する。
図5Hでは、スタイラス5012は、接触5019によって示されるように、モード制御5004に対応する位置に入力を提供する。図5Iでは、スタイラス5012による入力に応じて、モード制御5004およびモードインジケータ5010の状態は、注釈ユーザインターフェース5003のアクティブモードが静止画モードからビデオモードに変更されたことを示すように変更されている。
図5I~図5Lまで、図5Iで表示された静止画は、(図5Lのユーザインターフェース5003に示すように)インジケータドット5022まで、(図5Iのユーザインターフェース5003に示されるような)静止画のフルサイズビューから、(図5J~図5Kのユーザインターフェース5003に示されるような)小型ビュー5020に徐々に遷移する。図5Jでは、カメラの現在の視野を覆う図5Iに示された静止画の小型ビュー5020が示されている。小型ビュー5020のサイズは、図5Jから図5Kに縮小されている(例えば、図5Iのデバイス100によって表示された静止画と、図5Lのデバイスカメラの視野に対応するビデオ上に表示されたインジケータドット5022との間の対応のインジケーションを提供するために)。
図5L~図5Mまで、デバイス100の位置は、物理的環境5000に対して変更される。デバイス100が移動すると、デバイス100のカメラの視野が変化し、ユーザインターフェース5003内のインジケータ5022の位置が変化する。ユーザインターフェース5003内のインジケータ5022の移動は、デバイス100の現在位置に対する注釈5018の仮想空間的位置のインジケーションを提供する。このようにして、ユーザは、インジケータ5022によって指示された方向へのデバイス100の移動が注釈5018を再表示するために必要とされることを示す視覚的フィードバックが提供される。
図5M~図5Nまで、デバイス100の位置は、物理的環境5000に対して変化し続ける。デバイス100の移動の結果、デバイス100のカメラの視野は、図5Iの注釈付き静止画内にキャプチャされた物理的環境5000の一部分がカメラの視野内で可視であるように更新される。注釈5018は、注釈5018が受信された静止画内の位置に対応するビデオ内(例えば、物理マグカップ5002aの視覚的表現を含む各画像フレーム内)の位置(例えば、物理マグカップ5002aの視覚的表現5002bの位置に対応する位置(例えば、図5Iの静止画に示すような))に表示される。いくつかの実施形態では、デバイス100が物理マグカップ5002aにより近く移動すると、物理マグカップ5002aの視覚的表現5002bは、ビデオ画像内ではより大きく見え、注釈5018はまた、視覚的表現5002bの変更されたサイズに従っても大きく見える。いくつかの実施形態では、デバイス100が物理マグカップ5002aの周りに移動すると、物理マグカップ5002aの視覚的表現5002bは、物理マグカップ5002aの異なる視野角を反映するように更新され、ビデオ画像内の注釈5018の外観もまた、物理マグカップの視野角の変化に従って更新される(例えば、異なる角度から見られる)。
図5Oでは、スタイラス5012は、接触5024によって指示された注釈ユーザインターフェース5003内の点でタッチスクリーンディスプレイ112上でタッチダウンされている。接触5024の検出に応じて、カメラの視野の第2の静止画がキャプチャされ、ユーザインターフェース5003内に表示される。
図5Pから図5Rまで、第2の静止画が表示されている間、スタイラス5012による入力は、接触5026によって示される位置で受信される。接触5026の移動は、物理マグカップ5002aの視覚的表現5002bを含む静止画の一部分に第2の注釈5028を作成する。図5Sにおいて、接触5012は、タッチスクリーン112からリフトオフしている。
図5Tでは、入力は、接触5030によって示されるように、静止画モードとビデオモードとをトグルするためのコントロール5004に対応するタッチスクリーンディスプレイ112上の位置で検出される。図5Uでは、入力に応じて、モード制御5004およびモードインジケータ5010の状態は、注釈ユーザインターフェース5003のアクティブモードが静止画モードからビデオモードに変更されたことを示すように変更されている。図5Tの注釈付き静止画内にキャプチャされた物理的環境5000の部分は、図5Uのユーザインターフェース5003のビデオモードで表示されるカメラの視野内で既に視認可能であるため、注釈5018および注釈5028は、注釈が受信された静止画内の対応する位置に対応するビデオ内の位置(例えば、図5Gおよび図5Rに示す物理マグカップ5002aの視覚的表現5002bの対応する位置に対応する位置)に表示される。
図5Uから図5Vまで、デバイス100の位置は、ユーザインターフェース5003内に表示されたデバイスカメラの視野が、マグカップ5002aを含む物理的環境5000の部分を含まないように、物理的環境5000に対して変更される。注釈5018に対応するインジケータドット5022および注釈5028に対応するインジケータドット5032が表示される(例えば、インジケータドット5022および5032は、それぞれ、物理的環境5000に対する注釈5018および5028のスクリーン外仮想空間的位置(例えば、図5Gおよび図5Rに示される物理マグカップ5002aの側面)を示す位置に表示される)。
図5Vから図5Wまで、デバイス100の位置は、物理的環境5000に対して変化し続ける。デバイス100が下方に移動すると、デバイス100のカメラの視野が変化し、インジケータ5022および5032がユーザインターフェース5003内で上方に移動する(例えば、デバイス100の現在位置に対する注釈5018および5028の仮想空間的位置を示す)。図5Wでは、スタイラス5012は、接触5034によって指示された注釈ユーザインターフェース5003内の点においてタッチスクリーンディスプレイ112上でタッチダウンされている。接触5034の検出に応じて、カメラの視野の第3の静止画がキャプチャされ、ユーザインターフェース5003内に表示される。
図5Wから図5Xまで、第3の静止画が表示されている間、接触5034は、タッチスクリーンディスプレイ112に沿って移動して、物理テーブル5001aの視覚的表現5001bの右下面を含む第3の静止画の一部分に第3の注釈5036を作成する。
図5Yでは、スタイラス5012は、接触5038によって示されるように、モード制御5004に対応する位置に入力を提供する。図5Zでは、スタイラス5012による入力に応じて、モード制御5004およびモードインジケータ5010の状態は、注釈ユーザインターフェース5003のアクティブモードが静止画モードからビデオモードに変更されたことを示すように変更されている。テーブル5001aの右下面は、図5Zのユーザインターフェース5003のビデオモードで表示されるカメラの視野内で可視であるため、注釈5036は、注釈5036が受信された静止画内の位置(例えば、物理テーブル5001aの視覚的表現5001bの右下面に対応する位置)に対応するビデオ内の位置(例えば、図5Xに示されるテーブル面の位置を含む画像フレーム内)に表示される。ユーザインターフェース5003のビデオモードで表示されるカメラの視野内で視認可能な物理的環境5000の部分は、注釈5018および5028の空間的位置に対応する物理的環境の部分を含まず(例えば、マグカップ5002aはカメラの視野内では見えない)、インジケータドット5022および5032は、物理的環境5000に対して、注釈5018および5028のスクリーン外仮想空間的位置を示す位置に表示される。
図5Zから図5AAまで、デバイス100の位置は、物理的環境5000に対して変化する。デバイス100が上方に移動すると、デバイス100のカメラの視野が変化し、インジケータ5022および5032は、ユーザインターフェース5003内で下方に移動する。テーブル5001aの右下面は、ユーザインターフェースのビデオモードで表示されるカメラの視野内では見えなくなるため、インジケータドット5040は、注釈5036が受信された静止画内の位置に対応するビデオ内の位置に表示される。
図5AAから図5ABまで、デバイス100の位置は、物理的環境5000に対して変化する。デバイス100が上方に移動し続けると、デバイス100のカメラの視野が変化し、インジケータ5022、5032、および5040がユーザインターフェース5003内で下方に移動して、物理的環境5000に対する注釈5018、5028、および5036のスクリーン外仮想空間的位置を示す。
図5ABから図5ACまで、デバイス100の位置が変化し、ユーザインターフェース5003内に表示されたデバイス100のカメラの視野の変化を引き起こす。インジケータ5022、5032、および5040の位置は、注釈5018、5028、および5036のスクリーン外仮想空間的位置に基づいて更新される。
図5ACから図5ADまで、デバイス100の位置は、ユーザインターフェース5003内に表示されたデバイスカメラの視野が、マグカップ5002aを含む部分物理環境5000を含むように、物理的環境5000に対して変更される。注釈5018および5028は、ユーザインターフェース5003内に表示され、インジケータドット5022および5032は表示されなくなる。
図5ADから図5AEまで、デバイス100の位置は、ユーザインターフェース5003内に表示されたデバイスカメラの視野が、テーブル5001aの右下面を含む部分物理環境5000を含むように、物理的環境5000に対して変更される。注釈5036は、ユーザインターフェース5003内に表示され、インジケータドット5040は表示されなくなる。
図5AEから図5AFまで、デバイス100は、注釈5018、5028および5036の位置および斜視が変化するように、周辺部の周囲およびテーブル5001aの上方に移動している。
図6A~図6Nは、いくつかの実施形態に係る、ビデオの一時停止位置に対応する静止画内にキャプチャされた物理的環境の一部分上に注釈を受信するための例示的なユーザインターフェースを示す。それらの図におけるユーザインターフェースは、図9A~図9F、図10A~図10B、図11A~図11F、および図12A~図12Dにおけるプロセスを含む、以下で説明されるプロセスを示すために使用される。説明の便宜上、実施形態のいくつかは、タッチ感知ディスプレイシステム112を有するデバイス上で実行される操作を参照して議論される。そのような実施形態では、フォーカスセレクタは任意選択で、それぞれの指若しくはスタイラスの接触、指若しくはスタイラスの接触に対応する代表的な点(例えば、それぞれの接触の面心若しくはそれぞれの接触と関連付けられた点)、またはタッチ感知ディスプレイシステム112上で検出された2つ以上の接触の面心である。しかしながら、同様の操作は任意選択で、フォーカスセレクタと共に、ディスプレイ450上で図に示されるユーザインターフェースを表示する間、タッチ感知面451上の接触を検出したことに応じて、ディスプレイ450および別々のタッチ感知面451を有するデバイス上で実行される。
図6Aは、ビデオ再生領域6002を含むユーザインターフェース6000を示す。いくつかの実施形態では、ユーザインターフェース6000は、メディアコンテンツオブジェクトのリストを介して(例えば、画像および/またはビデオ閲覧アプリケーション内で)アクセスされる。いくつかの実施形態では、ユーザインターフェース6000はまた、タイムライン6004(例えば、ビデオの連続するセグメントに対応するサンプルフレーム6006のセット)も含む。タイムライン6004は、ビデオ再生領域6002内に表示されたビデオを介してビデオ再生領域6002に表示されたフレームに対応するタイムライン6004上の位置を示す現在位置インジケータ6008を含む。いくつかの実施形態では、ユーザインターフェースは、(例えば、ビデオ再生領域6002内に表示されたビデオをマーキングするためのマークアップモードを開始するための)マークアップコントロール6010、(例えば、ビデオ再生領域6002内に表示されたビデオを回転させるための)回転コントロール6012、(例えば、ビデオ再生領域6002内に表示されたビデオを編集するための)編集コントロール6014、(例えば、現在の動作をキャンセルするための)キャンセルコントロール6020、(例えば、ビデオ再生領域6002内に表示されたビデオを回転させるための)回転コントロール6022、および(例えば、ビデオ再生領域6002内に表示されたビデオを再生および一時停止するための)再生/一時停止トグルコントロール6016を含む。タッチスクリーンディスプレイ112を有する接触6018(例えば、ユーザの指による入力)は、再生/一時停止トグルコントロール6016に対応する位置で検出される。
図6Bでは、再生/一時停止トグルコントロール6016に対応する位置で検出された入力に応じて、ビデオ再生領域6002でビデオの再生が開始される。
図6Cでは、ビデオが再生し続けると、入力は、接触6024によって示されるように、マークアップコントロール6010に対応する位置で検出される。マークアップコントロール6010に対応する位置での接触6024による入力に応じて、ビデオの再生が一時停止され、ビデオの一時停止位置に対応する静止画が表示され、ビデオ再生領域6002に対応する位置で受信された入力がビデオにマークをつけるマークアップモードが開示され、マークアップコントロール6010の状態が変更されて、テキスト「完了」が表示される(例えば、選択コントロール6010への入力がマークアップモードを終了することを示すために)。
図6D~図6Fでは、接触6026によって示されるように、注釈入力がビデオ再生領域6002内の位置で検出される。接触が図6D~図6Fに示される経路に沿って移動すると、注釈6030が受信される。いくつかの実施形態では、注釈は、ビデオ内のオブジェクトに対応する場所(例えば、凧6028)で受信される。図6Gでは、マークアップモードがアクティブであり、テキスト「完了」が表示されている間に、接触6031による入力がマークアップコントロール6010に対応する位置で検出される。接触6031による入力に応じて、マークアップセッションを終了し(および/または最後の入力が受信された時間が閾値時間量を上回って増加するので)、再生/一時停止トグルコントロール6016は、図6Hに示されるように再表示される。
図6Iでは、接触6032によって示すように、再生/一時停止トグルコントロール6016に対応する位置で入力が検出される。
図6I~図6Kでは、再生/一時停止トグルコントロール6016に対応する位置で検出された入力に応じて、ビデオは、ビデオ再生領域6002における再生を再開する。図6Jに示すように、タイムライン6004のサンプルフレームは、凧6028に対応するそれぞれの画像内の位置にマーキングを含む。例えば、サンプルフレーム6006は、凧6036に対応する位置にマーキング6034を含む。ビデオ再生領域6002内の凧オブジェクト6028に適用された注釈6030は、注釈6030が受信されたビデオの時点の前に発生するビデオのフレームを含むタイムライン6004内のサンプルフレーム(例えば、サンプルフレーム6006など、タイムライン6004内のスクラブコントロール6008の左へのフレーム)および注釈6030が受信されたビデオ内の時点の後に発生するビデオのフレーム(例えば、タイムライン6004内のスクラブコントロール6008の右へのフレーム)に適用されている。(注釈6030がビデオ再生領域6002に適用された凧オブジェクト6028に対応する)凧オブジェクト6036が可視であるタイムライン6004のサンプルフレームのそれぞれにおいて、マーキング(例えば、注釈6030に対応するマーキング6034)は、サンプルフレーム内の凧オブジェクト6036の変化する位置に対応する位置に示される。マーキングは、サンプルフレーム内の凧オブジェクト6036のサイズおよび向きの変更に対応してスケーリングされるサイズおよび向きで表示される。ビデオ再生領域6002内に表示されたビデオが、ビデオ内で後に注釈入力を受信するためにビデオが停止されたフレームよりも前方に再生すると、注釈6030は、図6Kに示すように、凧オブジェクト6026のサイズおよび向きの変更に対応してスケーリングされたサイズおよび向きで表示される。このようにして、ビデオ再生領域6002内に受信される注釈は、オブジェクトが移動し、(例えば、カメラからの距離の変化に起因して)サイズを変更し、および(例えば、3次元空間内の任意の方向に)方向を変更しながら、(例えば、注釈がオブジェクトを追跡するように)オブジェクトに適用される。
図6Lでは、入力は、接触6038によって示すように、タイムライン6004に対応する位置で検出される。接触6038が矢印6040および6044によって示される経路に沿って移動すると、図6L~図6Nに示すように、ビデオ再生領域6002内に表示されたビデオが巻き戻される。例えば、接触6038がタイムライン6004にわたって移動するとビデオ再生領域6002内の現在表示されているフレームに関連付けられた時間インジケーション6042は減少する。ビデオ再生領域6002に表示されたビデオが、注釈入力を受信するためにビデオが停止されたフレームの前にあるフレームに巻き戻したとき、注釈6030は、凧オブジェクト6026のサイズおよび向きの変更に対応してスケーリングされたサイズおよび向きで表示される。
図7A~図7BFは、いくつかの実施形態に係る、以前にキャプチャされたメディアオブジェクトに仮想オブジェクトを追加するための例示的なユーザインターフェースを示す。それらの図におけるユーザインターフェースは、図9A~図9F、図10A~図10B、図11A~図11F、および図12A~図12Dにおけるプロセスを含む、以下で説明されるプロセスを示すために使用される。説明の便宜上、実施形態のいくつかは、タッチ感知ディスプレイシステム112を有するデバイス上で実行される操作を参照して議論される。そのような実施形態では、フォーカスセレクタは任意選択で、それぞれの指若しくはスタイラスの接触、指若しくはスタイラスの接触に対応する代表的な点(例えば、それぞれの接触の面心若しくはそれぞれの接触と関連付けられた点)、またはタッチ感知ディスプレイシステム112上で検出された2つ以上の接触の面心である。しかしながら、同様の操作は任意選択で、フォーカスセレクタと共に、ディスプレイ450上で図に示されるユーザインターフェースを表示する間、タッチ感知面451上の接触を検出したことに応じて、ディスプレイ450および別々のタッチ感知面451を有するデバイス上で実行される。
図7Aは、メディアオブジェクト表示領域7002およびナビゲーション領域7004を含むデバイス100のタッチスクリーンディスプレイ112によって表示されるユーザインターフェース7000を示す。いくつかの実施形態では、ユーザインターフェース7000は、メディアコンテンツオブジェクトのリストを介して(例えば、画像および/またはビデオ閲覧アプリケーション内で)アクセスされる。以前にキャプチャされた画像は、メディアオブジェクト表示領域内に表示される。以前にキャプチャされた画像に対応する情報(例えば、画像がキャプチャされた位置、「クパチーノ」)が情報領域7003内に表示される。ナビゲーション領域7004は、(例えば、以前のメディアオブジェクトへナビゲートするための)以前のメディアオブジェクトコントロール7006、(例えば、デバイス100によって記憶された他のメディアオブジェクト(非拡大ドットによって表される)に対する以前にキャプチャされた画像の(拡大ドットによって表される)位置を示す)現在のメディアオブジェクトインジケータ7008、および(例えば、後のメディアオブジェクトへナビゲートするための)後のメディアオブジェクトコントロール7010を含む。ユーザインターフェース7000は、図7B~図7BGに関して以下で更に論じるように、メディアオブジェクト表示領域7002内に表示された以前にキャプチャされた画像に様々な仮想オブジェクトを追加するための制御7012~7024を含む。本明細書の様々な実施形態に従って説明されるように、以前にキャプチャされた画像内の物理オブジェクトに対して仮想オブジェクトが表示される方法は、以前にキャプチャされた画像に対して奥行きデータが記憶され、仮想オブジェクトが様々な画像内の様々な表面と相互作用することができるというインジケーションをユーザに提供する。画像内にキャプチャされた物理的環境内の物理オブジェクトとの仮想オブジェクトとの相互作用は、画像内の検出可能な表面の存在のインジケーションをユーザに提供する。
図7B~図7Lは、仮想ボールオブジェクトが、メディアオブジェクト表示領域7002内に表示された以前にキャプチャされた画像内に描かれた物理オブジェクトの表面とどのようにインターフェースするかを示す。例えば、キャプチャされた画像は、画像内に取り込まれた物理的環境内の物理オブジェクトに対応する表面(例えば、水平面および/または垂直面)の位置を決定するために使用される奥行きデータと共に記憶される。
図7Bでは、接触7026による入力(例えば、タップ入力)は、メディアオブジェクト表示領域7002内に表示された以前にキャプチャされた画像に仮想ボールを追加するためのボールコントロール7012に対応する位置で受信される。図7Cでは、ボールコントロール7012を選択する入力を検出したことに応じて、ユーザインターフェース7000のモードは、情報領域7003内の「ボール」ラベルによって示されるように、およびボールコントロール7012の変更された視覚的状態によって示されるように、ボール生成モードに変更される。入力(例えば、タップ入力)は、接触7028によって示される位置で受信される。接触を検出したことに応じて、仮想ボール7030が、メディアオブジェクト表示領域7002内に表示された以前にキャプチャされた画像に追加される。例えば、仮想ボール7030を以前にキャプチャされた画像に加えることは、仮想ボール7030を、接触7028が検出される地点から、点線7032によって示される経路に沿って上向き軌道を有する仮想ボールを起動することを含む(例えば、仮想ボール7030は、疑似重力の影響下に入り、以前にキャプチャされた画像内の椅子オブジェクト7036の表面から跳ね返り、以前にキャプチャされた画像内のテーブルオブジェクト7038の表面から跳ね返り、前にキャプチャされた画像内の床面7040に落下し、床面7040に沿って転がる)。
図7Dでは、入力(例えば、タップ入力)が、接触7042によって示される位置で受信される。接触を検出したことに応じて、仮想ボール7044が、メディアオブジェクト表示領域7002内に表示された以前にキャプチャされた画像に追加され、仮想ボール7044は、経路7046に沿って移動する(例えば、床7040から跳ね返り、床7040に着陸する)。
図7Eでは、いくつかの追加の仮想ボールが、メディアオブジェクト表示領域7002内に表示された以前にキャプチャされた画像に追加されており、そのいくつかは、椅子オブジェクト7036およびテーブルオブジェクト7038の表面上に着地し、固定されている。入力(例えば、タップ入力)は、接触7048によって示される後続のメディアオブジェクトコントロール7010に対応するタッチスクリーンディスプレイ112上の位置で検出される。入力に応じて、図7Eに示される第1の以前にキャプチャされた画像の表示は、図7Fに示されるように、第2の以前にキャプチャされた画像によって置き換えられる。メディアオブジェクト表示領域7002に表示された以前にキャプチャされた画像に追加された仮想ボールは、図7Fに示すように、第2の以前にキャプチャされた画像に追加される(例えば、図7F~図7Iに示すように、仮想ボールが、図7Eの第1の以前にキャプチャされた画像内の床面7040から、第2の以前にキャプチャした画像の物理的環境の頂部への疑似重力の影響下で現れるようにアニメーション化される)。仮想ボールが落下すると、仮想ボールは、ランプ7052およびテーブル7054の表面、並びに人々7056および7058の腕の溝などの、第2の以前にキャプチャされた画像内にキャプチャされた物理的環境内の表面上に落ち着く。いくつかの実施形態では、仮想オブジェクトは、以前にキャプチャされた画像内の物理オブジェクトに対応する奥行きデータと比較されて、物理オブジェクトに対する仮想オブジェクトの配置を判定する(例えば、物理オブジェクトが仮想オブジェクトを閉塞するか、またはその逆であるかを判定するために)。例えば、図7Gでは、仮想ボール7045は、物理テーブル7054によって部分的に閉塞されている。
図7Jでは、入力(例えば、タップ入力)が、接触7050によって示される後続のメディアオブジェクトコントロール7010に対応するタッチスクリーンディスプレイ112上の位置で検出される。入力に応じて、図7Jに示される第2の以前にキャプチャされた画像の表示は、図7Kに示されるように、第3の以前にキャプチャされた画像によって置き換えられる。メディアオブジェクト表示領域7002内に表示された第2の以前にキャプチャされた画像に追加された仮想ボールは、図7Kに示すように、第1の以前にキャプチャされた画像に追加される(例えば、図7K~図7Lに示すように、仮想ボールが、図7Jの第2の以前にキャプチャされた画像内の表面から、第3の以前にキャプチャした画像の物理的環境の最上部へと疑似重力の影響下で現れるようにアニメーション化される)。仮想ボールが落下すると、仮想ボールは、第3の以前にキャプチャされた画像内にキャプチャされた物理的環境内の表面、例えば、ソファ7060の表面に沈降する。
図7Lでは、入力(例えば、タップ入力)が、接触7062によって示されるテキスト挿入コントロール7014に対応するタッチスクリーンディスプレイ112上の位置で検出される。入力に応じて、仮想ボール(例えば、ボール7034および7044)は表示されなくなり、テキストオブジェクト7064は、図7Mに示すように、第3の以前にキャプチャされた画像に追加される。
図7M~図7Tは、仮想テキストオブジェクト7064が、メディアオブジェクト表示領域7002内に表示された以前にキャプチャされた画像内に描かれた物理オブジェクトの表面とどのようにインターフェースするかを示す。
図7Mでは、接触7066によるタップ入力が、テキストオブジェクト7064に対応するタッチスクリーン112上の位置で検出されている。図7Mから図7Pまで、接触7066は、矢印7068、7070、および7072によって示される経路に沿って移動する。接触7066が移動すると、テキストオブジェクト7064の移動が接触7066の移動に対応するように、テキストオブジェクト7064が接触7066によって「ドラッグ」される。テキストオブジェクト7064がソファ7060に対応する位置にドラッグされると、テキストオブジェクト7064は、図7N~図7Oに示されるように、ソファ7060のアームにわたって「マーチングする」ことによってソファ7060の検出された表面と相互作用する。例えば、図7Oでは、テキストオブジェクト7064がソファ7060に対応する第3の以前にキャプチャされた画像の領域にドラッグされると、テキストオブジェクト7064の第1の部分は、ソファ7060の第1の表面(ソファのアームの上方)に隣接し、テキストオブジェクト7064の第2の部分は、ソファ7060の第2の表面(例えば、ソファ7060のシートの上方)に隣接する。
図7Qでは、入力(例えば、タップ入力)が、接触7062によって示されるように、テキストオブジェクト7064に対応するタッチスクリーンディスプレイ112上の位置で検出される。入力に応じて、図7Rのカーソル7080およびキーボード7078の表示によって示されるように、テキストオブジェクト7064のテキスト編集モードが開始される。図7Sでは、キーボード7078を介して提供される入力は、単語「テキスト」から単語「悪寒」にテキストオブジェクト7064のテキストを変更している。
図7Tでは、入力(例えば、タップ入力)が、接触7064によって示されるように、デカール挿入コントロール7016に対応するタッチスクリーンディスプレイ112上の位置で検出される。入力に応じて、テキストオブジェクト7064は表示されなくなり、図7Uに示されるように、デカールオブジェクト7084が第3の以前にキャプチャされた画像に追加される。
図7U~図7Yは、仮想デカールオブジェクト7084が、メディアオブジェクト表示領域7002内に表示された以前にキャプチャされた画像内に描かれた物理オブジェクトの表面とどのようにインターフェースするかを示す。
図7Uでは、接触7086によるタップ入力が、デカールオブジェクト7084に対応するタッチスクリーン112上の位置で検出されている。図7Uから図7Xまで、接触7086は、矢印7088、7090、および7092によって示される経路に沿って移動する。接触7086が移動すると、デカールオブジェクト7084の移動が接触7086の移動に対応するように、デカールオブジェクト7084は、接触7086によって「ドラッグされる。デカールオブジェクト7084がソファ7060の表面上にドラッグされると、デカールオブジェクト7064は、図7U~図7Xに示されるように、ソファ7060および床7094の検出された水平および垂直表面に適合する。例えば、図7Vでは、デカールオブジェクト7084がソファ7060の上にドラッグされると、デカールオブジェクト7084の第1の部分は、ソファ7060の第1の表面(ソファのシート上に平坦)に隣接し、デカールオブジェクト7084の第2の部分は、ソファ7060の第2の表面に隣接している(例えば、ソファ7060の前にドラッグされる)。図7Xでは、デカールオブジェクト7084が床7094上にドラッグされたとき、デカールオブジェクト7084は、ソファ7060によって部分的に閉塞されている。
図7Yでは、入力(例えば、タップ入力)が、接触7096によって示されるような絵文字挿入コントロール7018に対応するタッチスクリーンディスプレイ112上の位置で検出される。入力に応じて、図7Zに示すように、デカールオブジェクト7084が表示されなくなり、絵文字オブジェクト7098が第3の以前にキャプチャされた画像に追加される。
図7Z~図7AEは、仮想絵文字オブジェクト7098が、メディアオブジェクト表示領域7002内に表示された以前にキャプチャされた画像内に描かれた物理オブジェクトの表面とどのようにインターフェースするかを示す。
図7AAでは、接触7100によるタップ入力が、絵文字オブジェクト7098に対応するタッチスクリーン112上の位置で検出されている。図7AAおよび図7ABでは、接触7100は、矢印7102によって示す経路に沿って移動している。接触7100が移動すると、絵文字オブジェクト7098の移動が接触7100の移動に対応するように、接触7100によって絵文字オブジェクト7098が「ドラッグ」される。図7ACでは、接触7100は、タッチスクリーンディスプレイ112からリフトオフされる一方で、絵文字オブジェクト7098は、第3の以前にキャプチャされた画像内の表面(例えば、ソファ7060および床7094)の上の空間に吊り下げられる。接触7100のリフトオフに応じて、図7AC~図7AEに示すように、疑似重力の影響下で、絵文字オブジェクト7098が降下する。図7ACでは、絵文字オブジェクト7098は、物理オブジェクトソファ7060に遭遇し、図7ADに示されるように、絵文字オブジェクト7098がソファ7060のアーム上を転がり、床7094まで降下し続けると、絵文字オブジェクトの向きが変化する。
図7AFでは、入力(例えば、タップ入力)が、接触7104によって示されるように、紙吹雪挿入コントロール7020に対応するタッチスクリーンディスプレイ112上の位置で検出される。入力に応じて、絵文字オブジェクト7098は表示されなくなり、紙吹雪オブジェクト(例えば、紙吹雪オブジェクト7106)は、図7AGに示されるように、第3の以前にキャプチャされた画像に追加される。
図7AG~図7ATは、仮想紙吹雪オブジェクトが、メディアオブジェクト表示領域7002内に表示された以前にキャプチャされた画像およびビデオに描かれた物理オブジェクトの表面とどのようにインターフェースするかを示す。図7AGでは、
図7AG~図7AJでは、仮想紙吹雪オブジェクトは、(例えば、図7AH、図7AI、および図7AJに示されるように)連続的に追加され、疑似重力の影響を受けて、第3の以前にキャプチャされた画像内の検出された表面(例えば、ソファ5060および床7094上の水平面など、実質的に水平面)で収集される。
図7AJでは、入力(例えば、タップ入力)が、接触7104によって示されるような以前のメディアオブジェクトコントロール5006に対応するタッチスクリーンディスプレイ112上の位置で検出される。入力に応じて、図7AJに示される第3の以前にキャプチャされた画像の表示は、図7AKに示すように、第2の以前にキャプチャされた画像の表示によって置き換えられる。メディアオブジェクト表示領域7002内に表示された第3の以前にキャプチャされた画像に追加された紙吹雪は、図7AKに示されるように第2の以前にキャプチャされた画像に追加される(例えば、図7AJに紙吹雪が表示された同じ位置で表示される)。
図7AK~図7ALでは、仮想紙吹雪オブジェクトは、連続的に追加され、疑似重力の影響下にあり、第2の以前にキャプチャされた画像内の検出された表面上に収集される。
図7AJでは、入力(例えば、タップ入力)が、接触7104によって示されるような以前のメディアオブジェクトコントロール5006に対応するタッチスクリーンディスプレイ112上の位置で検出される。入力に応じて、図7AJに示される第3の以前にキャプチャされた画像の表示は、図7AKに示すように、第2の以前にキャプチャされた画像の表示によって置き換えられる。メディアオブジェクト表示領域7002内に表示された第3の以前にキャプチャされた画像に追加された紙吹雪は、図7AKに示されるように第2の以前にキャプチャされた画像に追加される(例えば、図7AJに紙吹雪が表示された同じ位置で表示される)。
図7AK~図7ALでは、仮想紙吹雪オブジェクトは、連続的に追加され、疑似重力の影響下にあり、第2の以前にキャプチャされた画像内の検出された表面上に収集される。
図7ALでは、接触7110によって示されるような後続のメディアオブジェクトコントロール7010に対応するタッチスクリーンディスプレイ112上の位置で入力(例えば、タップ入力)が検出される(例えば、現在表示されているメディアオブジェクトを2回前進させるために複数のタップが受信される)。入力に応じて、図7ALに示される第2の以前にキャプチャされた画像の表示は、図7AMに示すように、以前にキャプチャされたビデオの表示によって置き換えられる。メディアオブジェクト表示領域7002内に表示された第2の以前にキャプチャされた画像に追加された紙吹雪は、図7AMに示されるようにビデオに追加される(例えば、図7ALにおいて、紙吹雪が表示された同じ位置で表示される)。
図7AM~図7ATでは、仮想紙吹雪オブジェクトは、連続的に追加され、疑似重力の影響下にあり、ビデオ内の検出された表面(例えば、凧オブジェクト7112の縁部)上に収集される。例えば、ビデオ再生が図7AN、図7AO、および図7APに進むと、仮想紙吹雪オブジェクトは、連続的に追加され、疑似重力の影響下に入り、凧オブジェクト7112の縁部およびビデオフレームの下縁部を収集する。
図7APでは、入力(例えば、タップ入力)が、接触7116によって示されるような再生コントロール7114に対応するタッチスクリーンディスプレイ112上の位置で検出される。入力に応じて、ビデオの再生が繰り返される。再生が図7AQで開始される時点で、図7AM~図7ATのビデオに追加された紙吹雪をビデオに追加する。例えば、ビデオの再生が開始されると、凧オブジェクト7112上に蓄積された紙吹雪は、図7APに示される位置から落下し、凧オブジェクト7112が図AQのビデオ内の異なる位置に示される。
図7AQ~図7ATでは、仮想紙吹雪オブジェクトは、連続的に追加され、疑似重力の影響下にあり、ビデオ内の検出された表面(例えば、凧オブジェクト7112の縁部)上で収集される。例えば、ビデオ再生が図7AR、図7AS、および図7ATに進行するとき、仮想紙吹雪オブジェクトは、連続的に追加され、疑似重力の影響下に入り、凧オブジェクト7112の縁部およびビデオフレームの下縁部を収集する。
いくつかの実施形態では、表示された仮想紙吹雪オブジェクトは、徐々に見えなくなり、および/または表示が終了される(例えば、仮想紙吹雪オブジェクトが表示されたために経過した時間量が閾値時間を上回って増加するとき)。
図7AU~図7AXは、仮想スポットライトオブジェクト7118が、メディアオブジェクト表示領域7002内に表示された以前にキャプチャされた画像内に描かれた物理オブジェクトとどのようにインターフェースするかを示す。
図7AUでは、第2の以前にキャプチャされた画像は、メディアオブジェクト表示領域7002内に表示され、スポットライトモードがアクティブ化されている(例えば、スポットライトコントロール7022で受信した入力に応じて)。スポットライトモードでは、スポットライト仮想オブジェクト7118は、画像(例えば、人7058)の一部分と、スポットライト仮想オブジェクト7118を越えた画像の領域とを照明することが示されている。このようにして、スポットライト仮想オブジェクト7118は、画像の特定の部分に注目することを可能にする。いくつかの実施形態では、照明される最初の物理オブジェクトは、(例えば、前景に最も近い物理オブジェクトの判定に基づいて)自動的に選択される。スポットライト仮想オブジェクト7118は、疑似光ビーム7122と、以前にキャプチャされた画像内の床の一部分を照明する疑似照明スポット7124と、を含む。いくつかの実施形態では、光ビーム7122は、以前にキャプチャされた画像内の物理オブジェクトの表現の少なくとも一部分を照らす。いくつかの実施形態では、照明スポット7124は、床7124などの画像内で検出された水平表面に対応する画像の一部分を照明する。
図7AVでは、接触7128によるタップ入力が、スポットライトオブジェクト7118に対応するタッチスクリーン112上の位置で検出されている。図7AVおよび図7AWでは、接触7128は、矢印7102によって示す経路に沿って移動している。接触7128が移動すると、スポットライトオブジェクト7118の移動が接触7128の移動に対応するように、スポットライトオブジェクト7118が接触7128によって「ドラッグ」される。図7AWでは、スポットライトオブジェクト7118の位置は、人7056がスポットライトオブジェクト7118によって照明されるようにシフトされている。スポットライトオブジェクト7118が移動すると、照明スポット7124のサイズが変化している。
図7AXでは、入力(例えば、タップ入力)が、接触7026によって示される測定コントロール7020に対応するタッチスクリーンディスプレイ112上の位置で検出される。入力に応じて、スポットライトオブジェクト7118が表示されなくなる。
図7AYでは、入力は、接触7132および7134によって示されるタッチスクリーンディスプレイ112上の位置で検出される。図7AZでは、接触7132および7134の検出に応じて、仮想測定オブジェクト7136は、接触7132と7134との間の距離に及ぶ(例えば、人7058の高さに対応する)位置に表示される。測定値インジケータ7138は、画像内にキャプチャされた物理的環境内の接触7132および7134に対応する点間の距離が1.8mである(例えば、以前にキャプチャされた画像と共に記憶された奥行きデータを使用して判定される)ことを示す。
図7AZから図7BAまで、接触7132は、矢印7140で示される経路に沿って移動する。接触7132が移動すると、仮想測定オブジェクト7136のサイズは、接触7132と7134との間の調整された距離にわたるように調整され、測定値インジケータ7138によって示される測定値が更新される。
図7BBでは、接触7132および7134は、タッチスクリーン112からリフトオフされている。仮想測定オブジェクト7136および測定値インジケータ7138は、表示されたままである。入力は、接触7142によって示されるタッチスクリーンディスプレイ112上の位置で検出される。図7BBから図7BCまで、接触7142は、矢印7144および7146で示される経路に沿って移動する。接触7142の移動に応じて(例えば、閾値移動量を超えて)、仮想測定オブジェクト7148および測定値インジケータ7150が表示される。図7BCから図7BDまで、接触7142が移動し続けると、仮想測定オブジェクト7148のサイズが調整され、測定値インジケータ7150によって示される測定値が更新される。仮想測定オブジェクト7148の点線部分は、物理オブジェクト(例えば、人7056)を通過する仮想測定オブジェクト7148の一部分を示す。
図7BEでは、接触7142は、タッチスクリーン112からリフトオフしている。仮想測定オブジェクト7148および測定値インジケータ7148は、表示されたままである。図7BFでは、接触7152によって示されるタッチスクリーンディスプレイ112上の位置で入力が検出される。入力に応じて、仮想測定オブジェクト7148の端部(例えば、受信された入力に最も近い端部)は、接触7152の位置に対応する位置に移動する。
図8A~図8Wは、いくつかの実施形態に係る、共有注釈セッションを開始するための例示的なユーザインターフェースを示す。それらの図におけるユーザインターフェースは、図9A~図9F、図10A~図10B、図11A~図11F、および図12A~図12Dにおけるプロセスを含む、以下で説明されるプロセスを示すために使用される。説明の便宜上、実施形態のいくつかは、タッチ感知ディスプレイシステム112を有するデバイス上で実行される操作を参照して議論される。そのような実施形態では、フォーカスセレクタは任意選択で、それぞれの指若しくはスタイラスの接触、指若しくはスタイラスの接触に対応する代表的な点(例えば、それぞれの接触の面心若しくはそれぞれの接触と関連付けられた点)、またはタッチ感知ディスプレイシステム112上で検出された2つ以上の接触の面心である。しかしながら、同様の操作は任意選択で、フォーカスセレクタと共に、ディスプレイ450上で図に示されるユーザインターフェースを表示する間、タッチ感知面451上の接触を検出したことに応じて、ディスプレイ450および別々のタッチ感知面451を有するデバイス上で実行される。
図8A~図8Gは、2つのデバイス間の共有注釈セッションの確立を示す。
図8Aは、第1のユーザが第1のデバイス100-1(例えば、デバイス100)を動作させ、第2のユーザが第2のデバイス100-2(例えば、デバイス100)を動作させる、物理的環境8000を示す。デバイス100-1によって表示される協働ユーザインターフェース8002は、デバイス100-1に対応するインセット8004に示されている。インセット8006は、デバイス100-2によって現在表示されているウェブブラウザユーザインターフェースを示す。協働ユーザインターフェース8002内に表示されるプロンプト8008は、共有注釈セッションを開始する命令を含む。
図8Bでは、接触8012による入力は、共有注釈セッションを開始するためにデバイス100-1によって表示されるコントロール8010に対応する位置で受信される。入力に応じて、要求は、共有注釈セッションを開始するためにデバイス100-1からリモートデバイス(例えば、デバイス100-2)に送信される。要求が送信され、要求の受諾を示す応答が受信されていない間、通知8014は、図8Cに示されるようにデバイス100-1によって表示される。
図8Cでは、共有注釈セッションを開始する要求を受信したことに応じて、デバイス100-2は、共有注釈セッションの要求を受け付ける命令を含むプロンプト8016を表示する。接触8020による入力は、共有注釈セッションの要求を受諾するためにデバイス100-2によって表示されるコントロール8018に対応する位置で受信される。入力に応じて、要求の受諾は、デバイス100-2からリモートデバイス(例えば、デバイス100-1)に送信される。
図8Dでは、共有注釈セッションを開始する要求の受諾のインジケーションがデバイス100-1によって受信されている。デバイス100-1は、デバイス100-1をデバイス100-2に向かって移動させる命令を含むプロンプト8022を表示する。プロンプト8022は、デバイス100-1の表現8026およびデバイス100-2の表現8028を含む。デバイス100-2は、デバイス100-2をデバイス100-1に向かって移動させる命令を含むプロンプト8024を表示する。プロンプト8024は、デバイス100-1の表現8030およびデバイス100-2の表現8032を含む。
図8D~図8Eは、プロンプト8022および8024に表示されるアニメーションを示す。プロンプト8022において、デバイス100-1の表現8026は、デバイス100-2の表現8028に向かって移動するようにアニメーション化される。プロンプト8024において、デバイス100-2の表現8032は、デバイス100-1の表現8030に向かって移動するようにアニメーション化される。
図8Fでは、接続基準が満たされている(例えば、第1のデバイス100-1および第2のデバイス100-2は、互いに向かって移動し、および/または第1のデバイス100-1の1つ以上のカメラの視野内にキャプチャされた物理空間8000の少なくとも一部分は、デバイス100-2の1つ以上のカメラの視野内にキャプチャされた物理空間8000の少なくとも一部分に対応する)。第1のデバイス100-1によって表示された通知8034および第2のデバイス100-2によって表示される通知8036は、それぞれ、共有注釈セッションが開始されたというインジケーションを含む。第1のデバイス100-1は、第1のデバイス100-1の1つ以上のカメラの視野の表現を表示する(例えば、通知8034によって重ね合わされる)。物理的環境8000内のポスター8038aは、第1のデバイス100-1によって表示されたポスター8038aの表現8038bによって示されるように、第1のデバイス100-1の1つ以上のカメラの視野内で視認可能である。第2のデバイス100-2は、第2のデバイス100-2の1つ以上のカメラの視野の表現を表示する(例えば、通知8036によって重ね合わされる)。デバイス100-1および100-2は、共有視野を表示する(例えば、第1のデバイス100-1の1つ以上のカメラの視野内にキャプチャされた物理空間8000の少なくとも一部分は、デバイス100-2の1つ以上のカメラの視野内にキャプチャされた物理空間8000の少なくとも一部分に対応する)。例えば、物理的環境8000内のポスター8038aは、第2のデバイス100-2によって表示されるポスター8038aの表現8038cによって示されるように、第2のデバイス100-2の1つ以上のカメラの視野内で視認可能である。図8Gでは、カメラのそれぞれの視野は、通知8034および8036を伴わずに第1のデバイス100-1および第2のデバイス100-2によって表示される(例えば、通知8034および8036は、表示されなくなっている)。
図8H~図8Mは、共有注釈セッション中に受信された注釈入力を示す。図8H~図8Jは、第2のデバイス100-2に提供される注釈入力を示す。図8K~図8Mは、第1のデバイス100-1に提供される注釈入力を示す。
図8Hでは、接触8044による入力(例えば、第2のデバイス100-2のタッチスクリーンディスプレイで受信された入力)が、第2のデバイス100-2によって検出される。第2のデバイス100-2によって入力が検出されている間に、第1のデバイス100-1は、第2のデバイス100-2で入力が受信される共有視野内の位置に対応する共有視野内の位置にアバター8048を表示する。接触8044が、図8H~図8Iに示すように矢印8046によって示される経路に沿って移動すると、接触8044の移動に対応する注釈は、第1のデバイス100-1(注釈8050-1として)および第2のデバイス100-2(注釈8050-2として)によって表示される。図8Jでは、更なる注釈入力が、接触8044の更なる移動を介して提供されている。
図8Kでは、接触8052による入力(例えば、第1のデバイス100-1のタッチスクリーンディスプレイで受信された入力)が、第1のデバイス100-1によって検出される。第1のデバイス100-1によって入力が検出されている間に、第2のデバイス100-2は、第1のデバイス100-1で入力が受信される共有視野内の位置に対応する共有視野内の位置にアバター8054を表示する。接触8052が移動すると、図8K~図8Mに示すように、接触8052の移動に対応する注釈は、第1のデバイス100-1(注釈8056-1として)および第2のデバイス100-2(注釈8056-2として)によって表示される。
図8M~図8Pでは、第1のデバイス100-1の移動は、第1のデバイス100-1と第2のデバイス100-2との間の距離を増大させる。図8Nでは、第1のデバイス100-1が第2のデバイス100-2から離れて移動すると、第1のデバイス100-1によって表示される第1のデバイス100-1のカメラの視野の表現が調整される(例えば、第1のデバイス100-1によって表示された物理ポスター8038aの表現8038bの部分が減少するように)。
いくつかの実施形態では、1つ以上の注釈(例えば、8050-1、8050-2、8056-1、および/または8056-2)は、物理的環境8000の一部分に対して固定された空間的関係を有する(例えば、物理的環境8000に対するデバイスカメラの移動が注釈の表示位置を変更するように)。図8Oでは、注釈8056-1が第1のデバイス100-1によってもはや表示されないように、第1のデバイス100-1が第2のデバイス100-2から離れる方向に移動し続けると、注釈8056-1に対応する視覚的インジケーション8058が第1のデバイス100-1によって表示される(例えば、注釈8056-1を再表示するために必要な第1のデバイス100-1の移動方向を示すため)。
図8Pでは、第1のデバイス100-1の第2のデバイス100-2から離れる移動は、第1のデバイス100-1と第2のデバイス100-2との間の距離を、共有注釈セッションを切断させる程度(例えば、閾値距離を上回る)まで増大させている。デバイス100-1は、デバイス100-1をデバイス100-2に向かって移動させる命令を含むプロンプト8060を表示する。デバイス100-2は、デバイス100-2をデバイス100-1に向かって移動させる命令を含むプロンプト8062を表示する。いくつかの実施形態では、プロンプト8060は、アニメーション化された要素を含む(例えば、図8D~図8Eに関して説明したように)。
図8Pから図8Qまで、第1のデバイス100-1の移動は、第1のデバイス100-1と第2のデバイス100-2との間の距離を減少させる。図8Qでは、第1のデバイス100-1と第2のデバイス100-2との間の距離は、復元される共有注釈セッションのために十分に減少している。デバイス100-1および100-2がそれぞれのプロンプト8060および8062の表示を終了させると、それぞれのデバイスカメラのそれぞれの視野が再表示される。
図8R~図8Wは、第1のデバイス100-1と第2のデバイス100-2との間で共有セッションを使用するゲームアプリケーション(例えば、図8A~図8Gに関して上述したように確立された共有セッション)を示す。
図8Rは、第1のユーザ8064aが第1のデバイス100-1(例えば、デバイス100)を動作させ、第2のユーザ8066aが第2のデバイス100-2(例えば、デバイス100)を動作させる、物理的環境8068を示す。第1のデバイス100-1によって表示されるゲームアプリケーションユーザインターフェース8063-1は、第1のデバイス100-1に対応するインセット8070に示されている。第2のデバイス100-2によって表示されるゲームアプリケーションユーザインターフェース8063-2は、第2のデバイス100-2に対応するインセット8072に示されている。ユーザ8064aは、ユーザインターフェース8063-1に示されるように、ユーザ8066aの表現8066bが、デバイス100-1の1つ以上のカメラ(例えば、後向きカメラ)の視野内で視認可能であるように、ユーザ8066aに面している。ユーザ8064aの表現8064bは、ユーザインターフェース8063-2に示されるように、デバイス100-2の1つ以上のカメラ(例えば、後ろ向きカメラ)の視野内で同様に視認可能である。
ゲームアプリケーションユーザインターフェース8063-1および8063-2は、それぞれ、バスケットボールリング8074および8076を表示する。それぞれのゲームアプリケーションユーザインターフェース内に入力を提供することによって、ユーザは、それぞれのバスケットボールリング内のバスケットを作製するために、それぞれのデバイスカメラの視野の表示された表現に仮想バスケットボールオブジェクトを起動する。いくつかの実施形態では、それぞれのバスケットボールリングは、それぞれのユーザがデバイスを移動させて相手方に挑戦を作成することができるように、それぞれのデバイスの空間的位置に固定される。ゲームアプリケーションユーザインターフェース8063-1および8063-2はまた、それぞれゲームデータ領域8078および8080を表示する。ゲームデータ領域に表示されるゲームデータとしては、例えば、成功したバスケットによってスコア付けされたポイントの記録、並びにデバイス100-1と100-2との間の距離(例えば、所与のショットにスコアを割り当てるための基準として使用する)が挙げられる。
図8Sでは、接触8082による入力(例えば、タップ入力)は、仮想バスケットボールオブジェクトを起動するためのデバイス100-2によって検出される。接触8082による入力を検出したことに応じて、図8Tに示すように、ゲームアプリケーションユーザインターフェース8063-2内に表示されたデバイス100-2のカメラの視野に、仮想バスケットボールオブジェクト8084が追加される。図8Tは、仮想バスケットボールオブジェクトを起動するためのデバイス100-2によって検出された接触8086による入力(例えば、タップ入力)を更に示す。接触8086による入力を検出したことに応じて、仮想バスケットボールオブジェクト8088は、図8Vに示すように、ゲームアプリケーションユーザインターフェース8063-1内に表示されたデバイス100-1のカメラの視野に追加される。図8Vでは、仮想バスケットボールオブジェクトを起動するためのデバイス100-2によって検出された接触8090による入力(例えば、タップ入力)を示す。接触8090による入力を検出したことに応じて、仮想バスケットボールオブジェクト8092は、図8Wに示すように、ゲームアプリケーションユーザインターフェース8063-2内に表示されたデバイス100-2のカメラの視野に追加される。図8Vから図8Wまで、ユーザ8064aは、リング8076およびユーザ8064の表現8064bの表示された位置がユーザインターフェース8063-2内で変更されるように、デバイス100-1を下げた。
図9A~図9Fは、いくつかの実施形態に係る、注釈を再配置する方法900を示すフロー図である。方法900は、表示生成要素(例えば、ディスプレイ、プロジェクタ、ヘッドアップディスプレイ等)と、1つ以上の入力デバイス(例えば、タッチ感知リモートコントロール等のタッチ感知面、または表示生成要素としての役割も果たすタッチスクリーンディスプレイ、マウス、ジョイスティック、ワンドコントローラ、および/またはユーザの手などのユーザの1つ以上の特徴の位置を追跡するカメラ)と、1つ以上のカメラ(例えば、ディスプレイおよびタッチ感知面とは反対のデバイスの側の1つ以上の背面カメラ)とを有する電子デバイス(例えば、図3のデバイス300、または図1Aのポータブル多機能デバイス100)で実行される。いくつかの実施形態では、ディスプレイはタッチスクリーンディスプレイであり、タッチ感知面がディスプレイ上にあるかまたはこれに組み込まれている。いくつかの実施形態では、ディスプレイはタッチ感知面から分離している。方法900の一部の動作が任意選択的に組み合わされ、かつ/または、一部の動作の順序が任意選択的に変更される。
デバイスは、表示生成要素を介して、経時的な1つ以上のカメラの視野の変化と共に更新される1つ以上のカメラの視野の表現を含む第1のユーザインターフェース領域(例えば、ユーザインターフェース5003)を表示する(902)(例えば、視野の表現は、カメラの周囲の物理的環境に生じる変化に従って、および物理的環境に対するカメラの移動に従って、(例えば、24、48、または60fpsなどの予め設定されたフレームレートを用いて)連続的に更新される)。例えば、図5A~図5Bに示すように、1つ以上のカメラの視野内の物理的環境5000のビューは、デバイス100が移動される際のデバイス100のカメラの位置の変化に従って更新される。
1つ以上のカメラの視野の表現を含む第1のユーザインターフェース領域を表示している間に、デバイスは、1つ以上の入力デバイスを介して、1つ以上のカメラの視野の表示された表現に注釈を追加する第1の要求(例えば、タッチ感知面上の接触(例えば、指またはスタイラスによる接触)の移動によって生成および/または配置されるテキストまたは図)を受信する(904)(例えば、第1の要求は、タッチスクリーンディスプレイ上の第1のユーザインターフェース領域内で検出される接触による入力である(例えば、注釈を開始するためのコントロールに対応する位置、または第1のユーザインターフェース領域内の位置(例えば、注釈が開始される位置)))。例えば、注釈を追加する要求は、スタイラス5012による入力(例えば、図5Cに関して記載されている注釈を開始する入力、および/または図5Hに関して説明されるように、コントロールに対応する位置における接触による入力(例えば、静止画モードとビデオモードとをトグルするためのコントロール5004))である。
1つ以上のカメラの視野の表示された表現に注釈を追加する第1の要求に応じて(例えば、カメラの視野の表現内にキャプチャされた物理的環境の一部分に対応する位置でのタッチ感知面上の指接触またはスタイラスのタッチダウンまたは移動、またはユーザインターフェースオブジェクト(例えば、AR注釈モードをアクティブ化するボタン)を検出したことに応じて、を含む)、デバイスは、第1のユーザインターフェース領域内の1つ以上のカメラの視野の表現を、注釈を追加するための第1の要求の受信に対応する時間にキャプチャされた1つ以上のカメラの視野の静止画で置き換え(906)(例えば、1つ以上のカメラの視野のライブフィードを一時停止する(例えば、現在の視野の静止画を表示する)一方で、視野は、デバイスの移動と共に変化し続ける)、第1のユーザインターフェース領域内に、1つ以上のカメラの視野の一時停止されたライブフィードに対応する静止画を表示する。例えば、スタイラス5012による入力に応じて(例えば、図5Cに関して説明したように)、デバイスカメラの視野の表現(例えば、図5A~図5Bに関して説明されるように)は、注釈を追加するための第1の要求の受信に対応する時間にキャプチャされた1つ以上のカメラの視野の静止画の表示によって置き換えられる(例えば、図5C~図5Dに関して説明されるように)。
第1のユーザインターフェース領域内に静止画を表示している間に、デバイスは、1つ以上の入力デバイスを介して、静止画の第1の部分上の第1の注釈(例えば、描画入力)を受信し(908)、静止画の第1の部分は、静止画内にキャプチャされた物理的環境の第1の部分に対応する。例えば、注釈5018は、図5D~図5Gに関して記載されているように、静止画内にキャプチャされた物理的環境の一部分(例えば、物理マグカップ5002aを含む物理的環境5000の一部分)に対応する静止画の一部分(例えば、物理マグカップ5002aの表現5002bを含む一部分)上に受信される。いくつかの実施形態では、静止画を表示し、静止画上で注釈入力を受信している間に、デバイスは、周囲の物理的環境に対するカメラの位置を追跡し続ける(例えば、カメラの視野の変化および他のセンサ(例えば、動きセンサ、重力センサ、ジャイロ秒など)からの入力に基づいて)。いくつかの実施形態では、デバイスは、静止画内の注釈の位置に対応する物理的位置またはオブジェクトがカメラの視野から外れたか否かを判定し、そうであれば、デバイスはまた、現在カメラの視野内の物理的環境の部分と注釈の標的である物理的位置またはオブジェクトとの間の空間的関係を判定する。例えば、マグカップ5002は、注釈5018の標的である。
第1のユーザインターフェース領域内の静止画の第1の部分上に第1の注釈を表示している間(例えば、静止画の第1の部分上に第1の注釈を受け取った後)、デバイスは、1つ以上の入力デバイスを介して、第1のユーザインターフェース領域内の1つ以上のカメラの視野の表現を再表示する第1の要求を受信する(910)。例えば、第1のユーザインターフェース領域内の1つ以上のカメラの視野の表現を再表示する要求は、図5Hに関して説明したように、静止画モードとビデオモードとをトグルするためのコントロール5004におけるスタイラス5012による入力である。
第1のユーザインターフェース領域内の1つ以上のカメラの視野の表現を再表示するための第1の要求を受信したことに応じて(例えば、閾値時間量だけタッチ感知面上の接触がないことを検出したことに応じて(例えば、描画セッションが終了したとみなされた)、またはユーザインターフェースオブジェクト(例えば、AR注釈モードを非アクティブ化するためのボタン)上のタップを検出したことに応じて)、デバイスは、静止画の表示を、第1のユーザインターフェース領域内の1つ以上のカメラの視野の表現と置き換える(910)(例えば、視野の表現は、カメラの周囲の物理的環境に生じる変化に従って、および物理的環境に対するカメラの移動に従って、予め設定されたフレームレート(例えば、24、48、または60fpsなど)で連続的に更新される)。例えば、図5Hに関して説明したように、コントロール5004におけるスタイラス5012による入力に応じて、図5C~図5Hに表示された静止画は、図5I~図5Nに関して説明したように、第1のユーザインターフェース領域5003内の1つ以上のカメラの視野の表現によって置き換えられる。静止画内にキャプチャされた物理的環境の第1の部分(例えば、第1の注釈が受信されたオブジェクトを含む物理的環境の一部分)が、現在、1つ以上のカメラの視野外にあるとの判定に従って(例えば、カメラビューのライブフィードが停止された後に発生したデバイスの移動の結果として)、デバイスは、1つ以上のカメラの視野の表現と同時に、(例えば、コンピューティングシステムの一部として)静止画内にキャプチャされた物理的環境の第1の部分に対する1つ以上のカメラの現在の空間的関係のインジケーションを表示する(例えば、表示されたカメラの視野の縁上におよび注釈が付けられた物理的環境の第1の部分に最も近い縁の位置にドットまたは他の形状等の視覚的インジケーションを表示する、またはカメラの視野の表現と同時に物理的環境の簡略化されたマップを表示し、物理的環境の第1の部分とマップ上のデバイスとの相対位置をマークする)。例えば、図5Lに関して説明したように、静止画内にキャプチャされた物理的環境の部分(例えば、注釈5018が受信されたものに対するマグカップ5002を含む)は、現在、1つ以上のカメラの視野外にあり(例えば、図5J~図5Lでは、物理マグカップ5002aは、ユーザインターフェース5003内に表示されるカメラの視野外にある)、静止画内にキャプチャされた物理的環境の第1の部分に対する1つ以上のカメラの現在の空間的関係のインジケーション(例えば、インジケータドット5022)は、1つ以上のカメラの視野の表現と同時に表示される(例えば、図5Lに示すように)。静止画内にキャプチャされた物理的環境の第1の部分(例えば、第1の注釈が受信されたオブジェクトを含む物理的環境の一部分)が現在1つ以上のカメラの視野内にあるとの判定に従って、デバイスは、インジケーションの表示を見合わせる。例えば、カメラの視野を再表示する入力(例えば、図5Tに関して説明したように、静止画モードとビデオモードとをトグルするためのコントロール5004におけるスタイラス5012による入力)に応じて、静止画内にキャプチャされた物理的環境の部分(例えば、受信された注釈5018および5028に対するマグカップ5002を含む)が、現在、1つ以上のカメラの視野内にある(例えば、図5Tでは、物理マグカップ5002aは、ユーザインターフェース5003に表示されたカメラの視野内で視認可能である(視覚的表現5002bとして))との判定に従って、静止画内にキャプチャされた物理的環境の第1の部分に対する1つ以上のカメラの現在の空間的関係のインジケーションは表示されない(例えば、図5Tに示すように)。静止画内にキャプチャされた物理的環境の部分が現在1つ以上のカメラの視界外にあるとの判定に従って、静止画内にキャプチャされた物理的環境の一部分に対する1つ以上のカメラの現在の空間的関係のインジケーションを表示することは、改良された視覚的フィードバック(例えば、カメラの移動が静止画内にキャプチャされた物理的環境を見るのに必要な旨を示すこと)をユーザに提供する。改良された視覚的フィードバックをユーザに提供することにより、(例えば、ユーザが静止画の注釈部分に対応する物理的環境の一部分を素早くかつ正確に配置するのを可能にすることによって)デバイスの操作性を高め、ユーザ-デバイスインターフェースを更に効率的にし、加えて、ユーザがデバイスを更に素早くかつ効率的に使用することを可能にすることによってデバイスの電力使用を削減し、バッテリ寿命を改善する。
いくつかの実施形態では、静止画内にキャプチャされた物理的環境の第1の部分に対する1つ以上のカメラの現在の空間的関係のインジケーションを表示すること(912)は、1つ以上のカメラの視野の表現の縁部に近接してインジケータを表示することと、物理的環境に対する1つ以上のカメラの移動に従って、縁部に沿ってインジケータを移動させることと、を含む。例えば、図5Lに関して説明したように、インジケータ5022は、ユーザインターフェース5003内に表示されるカメラの視野の左端に近接して表示され、図5L~図5Mに関して説明したように、インジケータは、デバイス100のカメラの移動に従って縁部に沿って移動される。いくつかの実施形態では、1つ以上のカメラの視野の矩形表現の場合、インジケータは、視野の矩形表現の縁部に沿って移動するドットまたは他の形状などの視覚的インジケーションであり、視覚的インジケーションは、1つ以上のカメラの第1の移動に従って、1つの真っ直ぐな縁部に沿って移動することができ、視覚的インジケーションはまた、1つ以上のカメラの第2の移動に従って、1つの真っ直ぐな縁部から別の真っ直ぐな縁部にホップしてもよい。カメラビューの縁部に沿ってインジケータを移動させることは、ユーザに視覚的フィードバックを提供する(例えば、静止画内にキャプチャされた物理的環境の一部分を見るために必要とされるカメラの移動方向を示す)。改良された視覚的フィードバックをユーザに提供することにより、(例えば、ユーザが静止画の注釈部分に対応する物理的環境の一部分を素早くかつ正確に配置するのを可能にすることによって)デバイスの操作性を高め、ユーザ-デバイスインターフェースを更に効率的にし、加えて、ユーザがデバイスを更に素早くかつ効率的に使用することを可能にすることによってデバイスの電力使用を削減し、バッテリ寿命を改善する。
いくつかの実施形態では、静止画内にキャプチャされた物理的環境の第1の部分に対する1つ以上のカメラの現在の空間的関係のインジケーションを表示している間に、デバイスは、1つ以上のカメラの第1の移動(例えば、コンピューティングシステムの一部として)を検出する(914)。1つ以上のカメラの第1の移動を検出したことに応じて、デバイスは、第1の移動によって生じる1つ以上のカメラの視野の変化に従って、1つ以上のカメラの視野の表現を更新する。静止画内にキャプチャされた物理的環境の第1の部分(例えば、第1の注釈が受信されたオブジェクトを含む物理的環境の部分)が現在1つ以上のカメラの視野外にあるとの判定に従って、デバイスは、(例えば、コンピューティングシステムの一部分として)1つ以上のカメラの第1の移動に従って静止画内にキャプチャされた物理的環境の第1の部分に対する1つ以上のカメラの現在の空間的関係のインジケーションを更新する(例えば、カメラの第1の移動に従って、視野の表現の縁部に沿ってドットまたは他の形状などの視覚的インジケーションを移動させる)。静止画内にキャプチャされた物理的環境の第1の部分(例えば、第1の注釈が受信されたオブジェクトを含む物理的環境の一部分)が現在1つ以上のカメラの視野内にあるとの判定に従って、デバイスは、インジケーションの表示を終了する。例えば、デバイス100のカメラが移動すると、静止画内にキャプチャされた物理的環境の一部がカメラの視野外にある間(例えば、図5L~図5Mに関して説明したように、マグカップ5002aはカメラの視野外にある)、インジケーション5022は更新され(例えば、ユーザインターフェース5003内で上方に移動される)、静止画内にキャプチャされた物理的環境の部分がカメラの視野内にあるとき、インジケーション5022はもはや表示されない(例えば、図5L~図5Nに関して説明したように)。いくつかの実施形態では、第1の注釈を有する静止画の縮小表現(例えば、縮小表現5020)は、視覚的インジケータが最後に表示された視野の表現の縁部上の位置に隣接して表示され、静止画ビューは縮小し、カメラの視野の表現に示される第1注釈の位置に向かって移動する)。いくつかの実施形態では、インジケーションは、物理的環境の第1の部分が、物理的環境に対するカメラの更なる移動と共にカメラの視野外に移動するときに再表示される(例えば、図5U~図5Vに関して説明したように)。静止画内にキャプチャされた物理的環境の第1の部分が現在1つ以上のカメラの視野内にあるとの判定に従って、物理的環境の一部分に対する1つ以上のカメラの現在の空間的関係のインジケーションの表示を終了することは、ユーザに視覚的フィードバックを提供する(例えば、静止画内にキャプチャされた物理的環境の部分を見るために更なる移動が必要でないことを示す)。改良された視覚的フィードバックをユーザに提供することにより、(例えば、ユーザが静止画の注釈部分に対応する物理的環境の一部分を素早くかつ正確に配置するのを可能にすることによって)デバイスの操作性を高め、ユーザ-デバイスインターフェースを更に効率的にし、加えて、ユーザがデバイスを更に素早くかつ効率的に使用することを可能にすることによってデバイスの電力使用を削減し、バッテリ寿命を改善する。
いくつかの実施形態では、第1のユーザインターフェース領域内の1つ以上のカメラの視野の表現を再表示するための第1の要求を受信したことに応じて(916)、静止画内にキャプチャされた物理的環境の第1の部分(例えば、第1の注釈が受信されたオブジェクトを含む物理的環境の一部分)が1つ以上のカメラの視野内にあるとの判定に従って、デバイスは、1つ以上のカメラの視野の表現内にキャプチャされた物理的環境の第1の部分に第1の注釈を表示する。例えば、図5Nに関して説明したように、デバイスは、1つ以上のカメラの視野の表現内にキャプチャされた物理的環境の一部分に注釈5018を表示する(例えば、注釈5018は、静止画内にキャプチャされた物理的環境の第1の部分(例えば、物理マグカップ5002aを含む物理的環境5000の一部分)が現在1つ以上のカメラの視野内にあるとの判定に従って、物理マグカップ5002aの視覚的表現5002bに対応する位置に表示される)。注釈付き静止画内にキャプチャされた物理的環境の一部分の注釈を表示することは、ユーザに視覚的フィードバックを提供する(例えば、静止画内にキャプチャされた物理的環境の部分が現在1つ以上のカメラの視野内にあることを示す)。改良された視覚的フィードバックをユーザに提供することにより、(例えば、ユーザが静止画の注釈部分に対応する物理的環境の一部分を素早くかつ正確に配置するのを可能にすることによって)デバイスの操作性を高め、ユーザ-デバイスインターフェースを更に効率的にし、加えて、ユーザがデバイスを更に素早くかつ効率的に使用することを可能にすることによってデバイスの電力使用を削減し、バッテリ寿命を改善する。
いくつかの実施形態では、第1の注釈は、1つ以上のカメラの視野の表現内にキャプチャされた物理的環境の第1の部分内の第1の奥行き平面上の2次元オブジェクト(例えば、注釈5018)として表示される(918)。いくつかの実施形態では、第1の奥行き平面は、物理的環境の第1の部分における第1の奥行き平面における物理オブジェクト(例えば、物理マグカップ5002a)またはオブジェクト特徴の検出に従って検出される。1つ以上のカメラの視野内の物理的環境の部分内の奥行き平面上に注釈を表示することは、ユーザに改良された視覚的フィードバックを提供する(例えば、注釈が物理的環境に対して固定された空間的関係を有することを示す)。改良された視覚的フィードバックをユーザへ提供することは、(例えば、ユーザが注釈に含まれる追加情報を物理世界のオブジェクトに吹き込むことを可能にすることによって)デバイスの操作性を高め、ユーザデバイスインターフェースをより効率的にし、更に、ユーザがデバイスをより迅速かつ効率的に使用できるようにすることによって、電力使用量を低減し、デバイスのバッテリ寿命を改善する。
いくつかの実施形態では、第1の注釈(例えば、注釈5018)は、1つ以上のカメラの視野の表現内にキャプチャされた物理的環境の第1の部分内の空間内の位置に表示される(920)。いくつかの実施形態では、第1の注釈は、物理的環境の第1の部分において検出された任意の物理オブジェクトから分離された空間内に浮遊する。静止画内にキャプチャされた物理的環境の一部分内の空間内の位置に注釈を表示することは、ユーザに改良された視覚的フィードバックを提供する(例えば、注釈が物理的環境に対して固定された空間的関係を有することを示す)。改良された視覚的フィードバックをユーザへ提供することは、(例えば、ユーザが注釈に含まれる追加情報を物理世界のオブジェクトに吹き込むことを可能にすることによって)デバイスの操作性を高め、ユーザデバイスインターフェースをより効率的にし、更に、ユーザがデバイスをより迅速かつ効率的に使用できるようにすることによって、電力使用量を低減し、デバイスのバッテリ寿命を改善する。
いくつかの実施形態では、第1の注釈(例えば、注釈5018)は、1つ以上のカメラの視野の表現内にキャプチャされた物理的環境の第1の部分内に検出された物理オブジェクト(例えば、物理マグカップ5002a)上の位置に表示される(922)。いくつかの実施形態では、第1の注釈は、物理的環境の第1の部分において検出された物理オブジェクト(または物理オブジェクトの特徴)に取り付けられる。静止画内にキャプチャされた物理的環境の部分において検出された物理オブジェクト上の位置における物理的環境の一部分の注釈を表示することは、ユーザに改良された視覚的フィードバックを提供する(例えば、注釈が物理的環境に対して固定された空間的関係を有することを示す)。改良された視覚的フィードバックをユーザへ提供することは、(例えば、ユーザが注釈に含まれる追加情報を物理世界のオブジェクトに吹き込むことを可能にすることによって)デバイスの操作性を高め、ユーザデバイスインターフェースをより効率的にし、更に、ユーザがデバイスをより迅速かつ効率的に使用できるようにすることによって、電力使用量を低減し、デバイスのバッテリ寿命を改善する。
いくつかの実施形態では、第1のユーザインターフェース領域内の1つ以上のカメラの視野の表現を再表示する第1の要求を受信したことに応じて(924)、静止画内にキャプチャされた物理的環境の第1の部分(例えば、第1の注釈が受信されたオブジェクトを含む物理的環境の一部分)が現在1つ以上のカメラの視野内にないとの判定に従って、デバイスは、第1のユーザインターフェース領域内の1つ以上のカメラの視野の表現と同時に、静止画の第1の部分上に描かれた第1の注釈(例えば、描画入力)の視覚的表現を表示する(例えば、第1の注釈を有する静止画の縮小表現が、現在カメラの視野内に現在表されている物理空間の第1の部分に最も近い視野の表現の縁部上の位置に隣接して表示される)。例えば、第1のユーザインターフェース領域内の1つ以上のカメラの視野の表現を再表示する要求(例えば、図5Hに関して記載されているように、静止画モードとビデオモードとをトグルするためのコントロール5004におけるスタイラス5012による入力)に応じて、静止画内にキャプチャされた物理的環境の第1の部分が現在1つ以上のカメラの視野内にあるとの判定に従って(例えば、静止画内にキャプチャされた物理的環境の部分(例えば、受信された注釈5018に対するマグカップ5002を含む)が現在1つ以上のカメラの視野の範囲内にある)、デバイスは、第1のユーザインターフェース領域内の1つ以上のカメラの視野の表現と同時に、静止画の第1の部分に描かれた注釈5018を表示する(例えば、図5Nに関して説明されるように)。いくつかの実施形態では、第1のユーザインターフェース領域内の1つ以上のカメラの視野の表現を再表示する第1の要求を受信したことに応じて、静止画内にキャプチャされた物理的環境の第1の部分(例えば、第1の注釈が受信されたオブジェクトを含む物理的環境の一部分)が現在1つ以上のカメラの視野外にあるとの判定に従って、コンピューティングシステムは、静止画の第1の部分上に描かれた第1の注釈の視覚的表現の表示を見合わせる(例えば、図5Lおよび図5Mに示すように、注釈5018は表示されない)。物理的環境の第1の部分がカメラの視野内にないとの判定に従って、静止画の注釈の視覚的表現をカメラの視野の表現と同時に表示することは、改良された視覚的フィードバックをユーザに提供する(例えば、現在の空間的関係(例えば、ドット)のインジケーションが受信注釈入力に対応することを示す)。改良された視覚的フィードバックをユーザに提供することにより、(例えば、ユーザが静止画の注釈部分に対応する物理的環境の一部分を素早くかつ正確に配置するのを可能にすることによって)デバイスの操作性を高め、ユーザ-デバイスインターフェースを更に効率的にし、加えて、ユーザがデバイスを更に素早くかつ効率的に使用することを可能にすることによってデバイスの電力使用を削減し、バッテリ寿命を改善する。
いくつかの実施形態では、視野の表現に示される第1の注釈は、静止画内にキャプチャされた物理的環境の第1の部分に対する1つ以上のカメラの現在の空間的関係に基づく第1の視点を有し(926)、静止画上に表示された第1の注釈の第2視野(例えば、視野の表現に隣接して表示される静止画の縮小表現に示される第1の注釈の視点)とは異なる。いくつかの実施形態では、現在の視野の表現に変換されている静止画の縮小表現を示すアニメーション化された遷移が表示される。静止画に示される視点から異なる視点で注釈を表示することは、ユーザに改良された視覚的フィードバックを提供する(例えば、注釈が静止画内にキャプチャされた物理的環境の一部分に固定されていることを示す)。図5AEおよび図5AFは、視野の表現で示される注釈5018の例を、異なる視点の視点で提供する。改良された視覚的フィードバックをユーザに提供することにより、(例えば、ユーザが静止画の注釈部分に対応する物理的環境の一部分を素早くかつ正確に配置するのを可能にすることによって)デバイスの操作性を高め、ユーザ-デバイスインターフェースを更に効率的にし、加えて、ユーザがデバイスを更に素早くかつ効率的に使用することを可能にすることによってデバイスの電力使用を削減し、バッテリ寿命を改善する。
いくつかの実施形態では、第1のユーザインターフェース領域内の1つ以上のカメラの視野の表現を再表示する第1の要求を受信したことに応じて(928)、静止画内にキャプチャされた物理的環境の第1の部分(例えば、第1の注釈が受信されたオブジェクトを含む物理的環境の一部分)が現在1つ以上のカメラの視野外にあるとの判定に従って、第1のユーザインターフェース領域内の1つ以上のカメラの視野の表現と同時に、静止画の第1の部分に描画される第1の注釈の視覚的表現を表示し(例えば、描画入力)(例えば、第1の注釈による静止画の縮小表現が、カメラの視野内に現在表示されている物理空間の第1の部分に最も近い視野の表現の縁部上の位置に隣接して表示される)、静止画の第1の部分に描かれた第1の注釈の視覚的表現(例えば、縮小表現5020)は、静止画内にキャプチャされた物理的環境の第1の部分に対する(例えば、コンピューティングシステムの一部として)1つ以上のカメラの現在の空間的関係のインジケーション(例えば、インジケーション5022)に変換される(例えば、図5I~図5Lに関して説明したように)。例えば、インジケーションは、注釈が作成された物理的環境の第1の部分に最も近い縁部上の位置において、カメラの表示された視野の縁部上に表示されるドットまたは他の形状などの視覚的インジケーションであり、視覚的インジケーションが表示される前に、第1の注釈を有する静止画の小型ビューがその位置に表示され、視覚的インジケーションに変換される。注釈の視覚的表現(例えば、静止画の縮小表現)を、静止画内にキャプチャされた物理的環境の部分に対するカメラの現在の空間的関係のインジケーション(例えば、ドット)に変換することは、改良された視覚的フィードバックをユーザに提供する(例えば、インジケーション(例えば、ドット)および注釈の視覚的表現(例えば、縮小されたスケールの画像)が同じ注釈の異なる表現であることを示す)。改良された視覚的フィードバックをユーザに提供することにより、(例えば、ユーザが静止画の注釈部分に対応する物理的環境の一部分を素早くかつ正確に配置するのを可能にすることによって)デバイスの操作性を高め、ユーザ-デバイスインターフェースを更に効率的にし、加えて、ユーザがデバイスを更に素早くかつ効率的に使用することを可能にすることによってデバイスの電力使用を削減し、バッテリ寿命を改善する。
いくつかの実施形態では、1つ以上のカメラの視野の表現を含む第1のユーザインターフェース領域を表示している間に、表示されたビューの表示されたビューに注釈を追加するための第1の要求を検出する前に、デバイスは、第2の注釈が以前に追加された、以前に受信した物理的環境の第2の部分に対する1つ以上のカメラの現在の空間的関係(例えば、コンピューティングシステムの一部として)のインジケーション(例えば、インジケーション5022)を表示する(930)(例えば、表示されたカメラの視野の縁部上におよび第2の注釈が行われた物理的環境の第2の部分に最も近い縁部上の位置にドットまたは他の形状などの視覚的インジケーションを表示すること、または、カメラの視野の表現と同時に物理的環境の単純化されたマップを表示し、物理的環境およびマップ上のデバイスの第2の部分の相対位置をマーキングすること)。いくつかの実施形態では、第2の注釈は、第1の注釈がカメラの視野の表現に示される物理的環境の第1の部分に追加されるのと同じ方法で、1つ以上のカメラの視野の表現に示される物理的環境の第2の部分に追加された。以前に受信した注釈が追加された物理的環境の第2の部分に対するカメラの現在の特別な関係のインジケーションを表示することは、ユーザに改良された視覚的フィードバックを提供する(例えば、カメラの移動が、静止画内にキャプチャされた物理的環境の部分に対して以前に受信した注釈を検視するために必要であることを示す)。例えば、インジケーション5022は、図5P~図5Rに関して説明したように注釈5028を追加する要求を検出する前に表示される。改良された視覚的フィードバックをユーザに提供することにより、(例えば、ユーザが静止画の以前に注釈付けされた部分に対応する物理的環境の一部分を素早くかつ正確に配置するのを可能にすることによって)デバイスの操作性を高め、ユーザ-デバイスインターフェースを更に効率的にし、加えて、ユーザがデバイスを更に素早くかつ効率的に使用することを可能にすることによってデバイスの電力使用を削減し、バッテリ寿命を改善する。
いくつかの実施形態では、第1のユーザインターフェース領域内の1つ以上のカメラの視野の表現を再表示するための第1の要求を受信した後に、物理的環境の第1の部分および物理的環境の第2の部分の両方が1つ以上のカメラの視野外にあるとの判定に従って、デバイスは、物理的環境の第1の部分に対する1つ以上のカメラの現在の空間的関係のインジケーションと、物理的環境の第2の部分に対する1つ以上のカメラの現在の空間的関係のインジケーションとを同時に表示する(932)。例えば、複数の注釈(例えば、注釈5018および5036)が物理的環境の異なる部分に追加された場合、異なる注釈に対応するインジケータ(例えば、インジケータ5018および5040、図5AA)は、物理的環境の対応する部分に最も近いそれぞれの位置におけるカメラの視野の表現の縁部の周りに同時に表示される。物理的環境の第1の部分に対するカメラの現在の空間的関係のインジケーションおよび物理的環境の第2の部分に対するカメラの現在の空間的関係のインジケーションを同時に表示することは、ユーザに改良された視覚的フィードバックを提供する(例えば、複数の受信された注釈のうちの1つ以上を見るために必要とされるカメラの移動方向を示す)。改良された視覚的フィードバックをユーザに提供することにより、(例えば、ユーザが静止画の以前に注釈付けされた部分に対応する物理的環境の一部分を素早くかつ正確に配置するのを可能にすることによって)デバイスの操作性を高め、ユーザ-デバイスインターフェースを更に効率的にし、加えて、ユーザがデバイスを更に素早くかつ効率的に使用することを可能にすることによってデバイスの電力使用を削減し、バッテリ寿命を改善する。
いくつかの実施形態では、物理的環境の第1の部分に対する1つ以上のカメラの現在の空間的関係のインジケーションおよび物理的環境の第2の部分に対する1つ以上のカメラの現在の空間的関係のインジケーションを表示する間に、デバイスは、物理的環境に対する1つ以上のカメラの第2の移動を検出し(934)、物理的環境に対する1つ以上のカメラの第2の移動を検出したことに応じて、物理的環境の第1の部分および物理的環境の第2の部分の両方が、1つ以上のカメラの視野外にあるとの判定に従って、デバイスは、物理的環境の第1および第2の部分に対する1つ以上のカメラの現在の空間的関係のインジケーションを物理的環境に対する1つ以上のカメラの第2の移動に従って、それぞれ更新する(例えば、異なる方向および/または視野の表現の縁部に沿った異なる速度で仮想インジケータを移動させる)。例えば、物理的環境の異なる部分を対象とする異なる注釈に対応するそれぞれの視覚的インジケータは、カメラの視野の表現の縁部上の異なる位置に表示され、デバイスの移動により、それぞれの視覚的インジケータは、デバイスに対するそれらの対応する注釈の現在の空間的関係の変化に従って、異なる方向におよび異なる速度で移動される(例えば、インジケータ5018および5040は、図5AA~図5ADに関して記載されるように、デバイス100の移動に従って移動する)。視覚的インジケータは、異なる注釈でマーキングされた物理的環境の異なる部分間の実際の空間的関係に応じて、一緒にまたは別々に移動し、および/または異なる速度で移動してもよい。カメラの移動に従って、物理的環境の第1および第2の部分に対するカメラの現在の空間的関係のインジケーションを更新することは、ユーザに改良された視覚的フィードバックを提供する(例えば、カメラの移動が、カメラを静止画の注釈付き部分に対応する物理的環境の部分に近付けるか、またはそれから離れるようにする)。改良された視覚的フィードバックをユーザに提供することにより、(例えば、ユーザが静止画の以前に注釈付けされた部分に対応する物理的環境の一部分を素早くかつ正確に配置するのを可能にすることによって)デバイスの操作性を高め、ユーザ-デバイスインターフェースを更に効率的にし、加えて、ユーザがデバイスを更に素早くかつ効率的に使用することを可能にすることによってデバイスの電力使用を削減し、バッテリ寿命を改善する。
いくつかの実施形態では、物理的環境の第1の部分および第2の部分が1つ以上のカメラの所定の範囲内にあるとの判定に従って、物理的環境の第1の部分に対する1つ以上のカメラの現在の空間的関係のインジケーションと、物理的環境の第2の部分に対する1つ以上のカメラの現在の空間的関係のインジケーションとが表示される(936)。いくつかの実施形態では、ユーザインターフェースは、物理的環境の様々な部分に追加された全ての注釈から注釈のサブセットを選択するための方法を提供し、選択された注釈のサブセットに対応するインジケーションのみが、カメラの視野の表現と共に表示される。物理的環境の第1の部分および第2の部分が1つ以上のカメラの既定の範囲内にあるとの判定に従って、物理的環境の第1の部分に対する、および物理的環境の第2の部分に対するインジケーションを表示することは、(例えば、第1および第2の部分が既定の範囲外にある場合のインジケータによるユーザインターフェースの乱雑さを減らすことによって)改良された視覚的フィードバックをユーザに提供する。改良された視覚的フィードバックをユーザに提供することにより、(例えば、ユーザが静止画の以前に注釈付けされた部分に対応する物理的環境の一部分を素早くかつ正確に配置するのを可能にすることによって)デバイスの操作性を高め、ユーザ-デバイスインターフェースを更に効率的にし、加えて、ユーザがデバイスを更に素早くかつ効率的に使用することを可能にすることによってデバイスの電力使用を削減し、バッテリ寿命を改善する。
図9A~図9Fにおける動作について説明された特定の順序は単なる例であり、説明された順序は、動作を実行することができる唯一の順序であることを示すことを意図するものではないことを理解されたい。当業者であれば、本明細書に記載される動作を再順序付けるための様々な方法を認識するであろう。更に、本明細書に記載された他の方法(例えば、方法1000、1100、および1200)に関して本明細書に記載されている他のプロセスの詳細は、図9A~図9Fに関して上述した方法9000に類似した方法でも適用可能であることに留意されたい。例えば、方法9000を参照して上記した接触、入力、注釈、物理オブジェクト、ユーザインターフェース領域、視野、移動、および/またはアニメーションは、任意選択的に、本明細書に記載される他の方法(例えば、方法1000、1100、および1200)を参照して本明細書に記載した接触、入力、注釈、物理オブジェクト、ユーザインターフェース領域、視野、移動、および/またはアニメーションの特徴のうちの1つ以上を有する。簡潔にするために、それらの詳細はここでは繰り返さない。
図10A~図10Bは、いくつかの実施形態に係る、ビデオの一時停止位置に対応する静止画内にキャプチャされた物理的環境の一部分上に注釈を受信する方法1000を示すフロー図である。方法1000は、表示生成要素(例えば、ディスプレイ、プロジェクタ、ヘッドアップディスプレイ等)と1つ以上の入力デバイス(例えば、表示生成要素としても機能するタッチスクリーンディスプレイ)とを有する電子デバイス(例えば、図3のデバイス300、または、図1Aのポータブル多機能デバイス100)において実行される。いくつかの実施形態では、ディスプレイはタッチスクリーンディスプレイであり、タッチ感知面がディスプレイ上にあるかまたはこれに組み込まれている。いくつかの実施形態では、ディスプレイはタッチ感知面から分離している。方法1000の一部の動作が任意選択的に組み合わされ、かつ/または、一部の動作の順序が任意選択的に変更される。
デバイスは、表示生成要素を介して、ビデオ再生領域を含むユーザインターフェースを表示する(1002)。例えば、デバイス100は、図6Aに関して説明したように、タッチスクリーンディスプレイ112を介して、ビデオ再生領域6002を含むユーザインターフェース6000を表示する。
ビデオ再生領域内のビデオの第1の部分の再生を表示している間に、デバイスは、1つ以上の入力デバイスを介して、ビデオ再生に注釈を追加する要求を受信する(1004)(例えば、この要求は、タッチスクリーンディスプレイ上のビデオ再生ユーザインターフェース内で検出される接触(例えば、注釈を開始するコントロールに対応する位置、またはビデオ再生領域内の位置(例えば、注釈が開始される位置))で検出される接触による入力である)。例えば、ビデオ再生に注釈を追加する要求は、マークアップコントロール6010に対応する位置において、接触6024による入力である。
注釈を追加する要求を受信したことに応じて、デバイスは、ビデオ内の第1の位置でのビデオの再生を一時停止する(1006)(例えば、ビデオの現在のフレーム(例えば、一時停止位置)を特定し、現在のフレームにおけるビデオの再生を停止する)。
デバイスは、ビデオの第1の一時停止位置に対応する静止画(例えば、ビデオのフレーム)を表示する(1008)(例えば、要求が受信された時点で示されたビデオの現在のフレームを表示する)。例えば、図6C~図6Dに関して説明したように、ビデオのマークアップコントロール6010の再生に対応する位置における接触6024による入力に応じて、ビデオの再生が一時停止され、一時停止位置に対応する静止画が表示される。
静止画を表示している間(例えば、ビデオ再生領域内に)、デバイスは、1つ以上の入力デバイスを介して、静止画内にキャプチャされた物理的環境の第1の部分上に注釈(例えば、接触による描画入力)を受信する(1008)。例えば、図6E~図6Fに関して説明したように、注釈6030は、表示された静止画内の凧オブジェクト6028に対応する物理的環境の一部分上に受信される。「物理的環境」が本明細書で言及される場合、非物理的環境(例えば、コンピュータ生成環境)が静止画内に含まれ得ることが理解されるであろう。例えば、ビデオの一時停止位置に対応する画像の一部分(例えば、コンピュータ生成ビデオの一部である)上に注釈が受信される。いくつかの実施形態では、コンピュータ生成画像は、注釈および/または仮想オブジェクトが適している奥行きデータおよび/またはオブジェクトを含む。
注釈を受信した後、デバイスは、ビデオ再生領域内に、ビデオ内の第1の位置(例えば、ビデオ内の一時停止位置の前または後)とは異なるビデオ内の第2の位置に対応するビデオの第2の部分を表示し(1010)(例えば、ビデオの継続再生中、またはビデオを前後にスクラブするように入力が受信されたとき(例えば、タイムライン上で))、物理的環境の第1の部分は、ビデオの第2の部分にキャプチャされ、注釈はビデオの第2の部分に表示される。例えば、注釈6030が図6E~図6Fに関して説明したように受信された後、注釈6030は、(例えば、図6Jに関して説明したように)ビデオの第2の部分に表示される。いくつかの実施形態では、ビデオの第2の部分が表示されている間に、注釈は、静止画が表示されている間に受信した注釈の第1の位置とは異なるビデオ再生領域内の第2の位置に表示される(例えば、注釈は、ビデオクリップ内にキャプチャされた物理的環境内の位置(例えば、物理オブジェクト)に「取り付けられる」ことにより、ビデオが進行するとき、注釈が移動すると同時に位置(例えば、物理オブジェクト)が移動する)。(例えば、注釈が適用されるべき表面を特定するために)更なる入力を必要とせずに注釈が適用されたビデオの一部分とは異なるビデオの一部分に注釈を表示することは、デバイスの操作性を高める。ユーザ入力を更に必要とすることなく動作を実行することは、デバイスの操作性を強化し、ユーザデバイスインターフェースをより効率的にし(例えば、ビデオを再録画したり、ビデオの複数の部分に注釈を付けたりする必要なく、ユーザが、ビデオの直接注釈を介して以前にキャプチャされたビデオに情報を追加することを可能にすることによって)、加えて、ユーザがデバイスをより素早くかつ効率的に使用することを可能にすることによって、デバイスの電力使用を削減し、バッテリ寿命を改善する。
いくつかの実施形態では、カメラおよび物理的環境の相対移動中に、カメラによってビデオがキャプチャされ(1012)(例えば、ビデオキャプチャ中、カメラの移動データおよび物理的環境の奥行きデータを同時にキャプチャし、同時にキャプチャされた画像データと共に記憶する)、ビデオの第1の部分と第2の部分との間にビデオの第3の部分がキャプチャされ、カメラおよび物理的環境の相対的な移動中に、物理的環境の第1の部分を含まない。いくつかの実施形態では、(例えば、図6E~図6Fに示されるように)静止画上に受信された注釈(例えば、注釈6030)は、物理的環境の第1の部分に位置する第1のオブジェクト(例えば、凧6028)を対象とし、ビデオの第2の部分内の第1のオブジェクトに対応する位置に表示される(例えば、注釈がビデオの第2の部分の任意のフレームの静止画上で直接作成されていない)。例えば、図6Jでは、注釈6030は、凧6028に対応する位置でビデオの第2の部分に表示される。いくつかの実施形態では、注釈は、第1のオブジェクトを含まないビデオの第3の部分に表示されない(例えば、注釈は持続的に表示されず、現在のフレームが第1のオブジェクトを含むときにのみ示される)。いくつかの実施形態では、注釈は、第1のオブジェクトの距離および視野の観点に従って、第1のオブジェクトの位置に表示されるように回転およびスケーリングされる。例えば、図6J~図6Nでは、注釈6030は、ビデオ内の凧5026の位置に表示されるように回転およびスケーリングされる。いくつかの実施形態では、ビデオの第1、第3、および第2の部分は、ビデオの連続的にキャプチャされた部分であるか、またはビデオの第2、第3、および第1の部分は、ビデオの連続的にキャプチャされた部分である。カメラの視野内にキャプチャされた主題の不連続性が存在するため(例えば、ビデオの第3の部分をキャプチャする間)、ビデオの第1の部分内にキャプチャされた物理的環境の第1の部分は、ビデオの画像データのみに基づいて、ビデオの第3の部分にキャプチャされた物理的環境の同じ第1の部分として認識することができない(例えば、フレーム間比較を介して連続フレームにわたる追跡点を特定する)。カメラの移動および/または奥行きデータは、ビデオ内にキャプチャされた物理的環境の3次元または準3次元モデルを作成するために使用され(任意選択的に、画像データと共に)、その結果、物理的環境内の特定の位置は、フレーム内の外観や表示の視点に関係なく、ビデオの各フレームで認識されることができる。注釈が指示されたオブジェクトに対応する位置に注釈を表示することと、オブジェクトを含まないビデオの一部分に注釈を表示しないことは、(例えば、注釈がオブジェクトに対応する位置に固定されているというインジケーションを提供することによって)ユーザに改良された視覚的フィードバックを提供する。更なるユーザ入力を必要とせずに、操作を行うことにより、デバイスの操作性が改善され、(例えば、ユーザが、ビデオを再録画したり、ビデオの複数の部分に注釈を付けたりすることなく、ビデオに情報を追加することを可能にすることによって)ユーザデバイスインターフェースを更に効率的にし、加えて、ユーザがデバイスを更に素早くかつ効率的に使用することを可能にすることによってデバイスの電力使用を削減し、バッテリ寿命を改善する。
いくつかの実施形態では、デバイスは、ビデオのタイムライン(例えば、現在表示されているフレームの位置を示す位置インジケータを有するスクラブバー、ビデオの連続するセグメントからのサンプルフレームの縮小スケール画像のスクロール可能なシーケンス)を表示し(1014)(例えば、ビデオの表示と同時に(例えば、ビデオの再生中に、および/またはビデオが一時停止されている間))、ビデオの第2の部分を表示することは、ビデオのタイムラインを介してビデオ内の第2の位置までスクラブするユーザ入力(例えば、位置インジケータをスクラブバーに沿ってドラッグするユーザ入力、または、現在表示されているフレームの静止マーカを過ぎてサンプルフレームの縮小スケール画像のシーケンスをスクロールするユーザ入力)に応じて実行される。例えば、接触6038による入力は、一連のサンプルフレーム(例えば、図6Aに関して説明したようなサンプルフレーム6006)を含むタイムライン6004に対応する位置で受信され、ビデオ再生領域6002内に表示されたビデオは、入力に応じて(例えば、図6L~図6Nに関して説明されるように)再生される。更なるユーザ入力を必要とすることなくビデオをスクラブするためのタイムラインを表示することは、(例えば、ユーザが、別個の制御または入力を必要とせずに既存のスクラブコントロールを使用して、ビデオの第2の部分に表示された注釈にアクセスすることを可能にすることによって)デバイスの操作性を高める。動作を実行するために必要とされるユーザ入力数を低減することは、デバイスの動作性を高め、ユーザデバイスインターフェースをより効率的にする。これは、更に、ユーザがデバイスをより迅速かつ効率的に使用できるようにすることによって、電力使用量を低減し、デバイスのバッテリ寿命を改善する。
いくつかの実施形態では、ビデオの第2の部分を表示することは、第1の位置から第2の位置へのビデオの巻き戻し(1016)の結果として実行される(例えば、第2の位置は、ビデオのタイムライン上の第1の位置に先行する)。例えば、図6L~図6Nに関して説明したように、ビデオ再生領域6002内に表示されたビデオを巻き戻すために、接触6038による入力が受信される。更なるユーザ入力を必要とすることなく、巻き戻し入力に応じて注釈が適用されたビデオの一部分とは異なるビデオの一部分に注釈を表示することは、デバイスの操作性を高める(例えば、ユーザが、別個の制御または入力を必要とせずに既存のスクラブコントロールを使用して、ビデオの第2の部分に表示された注釈にアクセスすることを可能にすることによって)。更なるユーザ入力を必要とせずに動作を実行することは、ユーザデバイスインターフェースをより効率的にし、更に、ユーザがデバイスをより迅速かつ効率的に使用できるようにすることによって、電力使用量を低減し、デバイスのバッテリ寿命を改善する。
いくつかの実施形態では、ビデオの第2の部分を表示することは、第1の位置から第2の位置へのビデオの早送り(1018)の結果として実行される(例えば、第2の部分は、ビデオのタイムライン上の第1の部分に先行し、再生速度が通常の再生速度よりも速い)。更なるユーザ入力を必要とすることなく、早送り入力に応じて注釈が適用されたビデオの一部分とは異なるビデオの一部分に注釈を表示することは、デバイスの操作性を高める(例えば、ユーザが、別個の制御または入力を必要とせずに既存のスクラブコントロールを使用して、ビデオの第2の部分に表示された注釈にアクセスすることを可能にすることによって)。更なるユーザ入力を必要とせずに動作を実行することは、ユーザデバイスインターフェースをより効率的にし、更に、ユーザがデバイスをより迅速かつ効率的に使用できるようにすることによって、電力使用量を低減し、デバイスのバッテリ寿命を改善する。
いくつかの実施形態では、ビデオの第2の部分を表示することは、第1の位置から第2の位置へのビデオの通常再生(1020)の結果として実行される(例えば、第2の部分は、ビデオのタイムライン上の第1の部分に先行し、再生速度が通常の再生速度よりも速い)。いくつかの実施形態では、ユーザが静止画上に注釈を提供することを終了すると、ユーザは、静止画と共に表示された「完了」ボタンを選択することによって注釈モードを出る(例えば、図6Gに関して説明されるように)。その結果、デバイスは、第1の位置からのビデオの再生を継続し、物理的環境の第1の部分が、静止画と比較して異なる距離および/または異なる視点でキャプチャされる場合であっても、同じ物理的位置(例えば、物理オブジェクト)において、注釈が物理的環境の第1の部分を含む各後続フレーム内に表示される。更なるユーザ入力を必要とすることなく、ビデオの通常再生に応じて注釈が適用されたビデオの一部分とは異なるビデオの一部分に注釈を表示することは、デバイスの操作性を高める(例えば、ユーザが、別個の制御または入力を必要とせずに既存のスクラブコントロールを使用して、ビデオの第2の部分に表示された注釈にアクセスすることを可能にすることによって)。更なるユーザ入力を必要とせずに動作を実行することは、ユーザデバイスインターフェースをより効率的にし、更に、ユーザがデバイスをより迅速かつ効率的に使用できるようにすることによって、電力使用量を低減し、デバイスのバッテリ寿命を改善する。
いくつかの実施形態では、デバイスは、表示生成要素を介して、ビデオを含むメディアコンテンツオブジェクトのリストを表示する(1022)(例えば、メディアライブラリ内のビデオの表現を表示する)。デバイスは、メディアコンテンツオブジェクトのリストからビデオを選択する入力を受信し、ビデオを選択する入力を受信したことに応じて、ビデオ再生領域内のビデオの表示を有するユーザインターフェースオブジェクト(例えば、注釈を追加するための「マークアップ」ボタン)を表示し、ユーザインターフェースオブジェクトは、ビデオの再生中にビデオに注釈を追加する要求を受信するように構成されている(例えば、注釈を追加するためにボタンをアクティブ化するタップ入力)。ビデオの再生中にビデオに注釈を追加する要求を受信するように構成されたユーザインターフェースオブジェクトを表示することは、改善されたフィードバックを提供する(例えば、ビデオの再生中に、そのビデオの一部分に注釈を追加するためのオプションを示す)。いくつかの実施形態では、マークアップボタンは、ビデオ再生中にビデオ再生領域上でタッチ入力が検出されると、改善されたフィードバック(例えば、他の再生制御と共に)を提供し、マークアップボタンがアクティブ化されると、現在表示されているフレームは、マークアップ有効状態で示され、現在表示されているフレームの画像上に直接描画注釈を受信する準備が整っている。改善されたフィードバックを提供することにより、(例えば、ユーザが、別個の制御または入力を必要とせずに既存のスクラブコントロールを使用して、ビデオの第2の部分に表示された注釈にアクセスすることを可能にすることによって)デバイスの操作性を高める。更なるユーザ入力を必要とせずに動作を実行することは、ユーザデバイスインターフェースをより効率的にし、更に、ユーザがデバイスをより迅速かつ効率的に使用できるようにすることによって、電力使用量を低減し、デバイスのバッテリ寿命を改善する。
図10A~図10Bにおける動作について説明された特定の順序は単なる例であり、説明された順序は、動作を実行することができる唯一の順序であることを示すことを意図するものではないことを理解されたい。当業者であれば、本明細書に記載される動作を再順序付けるための様々な方法を認識するであろう。更に、本明細書に記載された他の方法(例えば、方法900、1100、および1200)に関して本明細書に記載されている他のプロセスの詳細は、図10A~図10Bに関して上述した方法1000に類似した方法でも適用可能であることに留意されたい。例えば、方法1000を参照して上記した接触、入力、注釈、物理オブジェクト、ユーザインターフェース領域、視野、移動、および/またはアニメーションは、任意選択的に、本明細書に記載される他の方法(例えば、方法900、1100、および1200)を参照して本明細書に記載した接触、入力、注釈、物理オブジェクト、ユーザインターフェース領域、視野、移動、および/またはアニメーションの特徴のうちの1つ以上を有する。簡潔にするために、それらの詳細はここでは繰り返さない。
図11A~図11Fは、以前にキャプチャされたメディアオブジェクトに仮想オブジェクトを追加する方法1100を示すフロー図である。方法1100は、表示生成要素(例えば、ディスプレイ、プロジェクタ、ヘッドアップディスプレイなど)および1つ以上の入力デバイス(例えば、タッチ感知リモートコントロール等のタッチ感知面、または表示生成要素としても機能するタッチスクリーンディスプレイ、マウス、ジョイスティック、ワンドコントローラ、および/またはユーザの手などのユーザの1つ以上の特徴の位置を追跡するカメラ)を有する電子デバイス(例えば、図3のデバイス300、または図1Aのポータブル多機能デバイス100)で実行される。いくつかの実施形態では、ディスプレイはタッチスクリーンディスプレイであり、タッチ感知面がディスプレイ上にあるかまたはこれに組み込まれている。いくつかの実施形態では、ディスプレイはタッチ感知面から分離している。方法1100の一部の動作が任意選択的に組み合わされ、かつ/または、一部の動作の順序が任意選択的に変更される。
デバイスは、表示生成要素を介して、1つ以上の第1の画像(例えば、静止写真、ライブ写真、または画像フレームのシーケンスを含むビデオ)を含む第1の以前にキャプチャされたメディアオブジェクトを表示し(1102)、第1の以前にキャプチャされたメディアオブジェクトは、1つ以上の第1の画像のそれぞれにキャプチャされた第1の物理的環境に対応する第1の奥行きデータと共に記録および記憶された(例えば、第1のメディアオブジェクトが1つ以上のカメラによってキャプチャされた時間に対応する時間におけるデバイスの1つ以上の奥行きセンサ(例えば、赤外線、ソナー、および/若しくはライダーなどのエミッタ/検出器システム、および/または画像解析システム(例えば、ビデオセグメント分析および/またはステレオ画像/ビデオ分析)によって生成された第1の奥行きデータ)。例えば、図7Aに関して説明したように、デバイス100は、タッチスクリーンディスプレイ112によって、メディアオブジェクト表示領域7002内に以前にキャプチャされた画像を表示する。
第1の以前にキャプチャされたメディアオブジェクトを表示している間(例えば、静止画を表示すること、ライブ写真の代表画像を表示すること、ビデオの再生中にビデオのフレームを表示すること、またはビデオが一時停止状態若しくは停止状態にあるときにビデオのフレームを表示する)、デバイスは、1つ以上の入力デバイスを介して、第1のユーザ要求を受信して、第1の仮想オブジェクト(例えば、落下ボール、紙吹雪、テキスト、スポットライト、絵文字、ペイント、測定グラフィック)を第1の以前にキャプチャされたメディアオブジェクトに追加する(1104)。例えば、仮想オブジェクトを以前にキャプチャされたメディアオブジェクトに追加する要求は、図7Cに関して説明したように、以前にキャプチャされた画像に仮想オブジェクトを追加するためのタッチスクリーンディスプレイ112上に受信されたタップ入力である。
第1のユーザ要求に応じて、第1の仮想オブジェクトを第1の以前にキャプチャされたメディアオブジェクトに追加したことに応じて、デバイスは、第1の以前にキャプチャされたメディアオブジェクト内のそれぞれの画像の少なくとも一部分の上に第1の仮想オブジェクトを表示し(1106)、第1の仮想オブジェクトは、第1の以前にキャプチャされたメディアオブジェクト内のそれぞれの画像に対応する第1の奥行きデータを使用して判定される、少なくとも第1の位置または向き(または移動経路)を伴って表示される。例えば、図7Cに関して説明したように、タッチスクリーンディスプレイ112上に受信されたタップ入力に応じて、仮想オブジェクト(例えば、仮想ボールオブジェクト7030)が、以前にキャプチャされた画像に追加される。ユーザ入力(例えば、メディアオブジェクトの平面の場所を示すこと)を必要とすることなく、以前にキャプチャされたメディアオブジェクトから奥行きデータを使用して、以前にキャプチャされたメディアオブジェクトに仮想オブジェクトを追加することは、デバイスの操作性を高める。更なるユーザ入力を必要とせずに動作を実行することは、ユーザデバイスインターフェースをより効率的にし、更に、ユーザがデバイスをより迅速かつ効率的に使用できるようにすることによって、電力使用量を低減し、デバイスのバッテリ寿命を改善する。
いくつかの実施形態では、第1の以前にキャプチャされたメディアオブジェクト内のそれぞれの画像の少なくとも一部分の上に第1の仮想オブジェクトを表示すること(1108)は、第1の仮想オブジェクトが1つ以上の第1の画像のうちの対応する1つの上に配置された後、第1の以前にキャプチャされたメディアオブジェクト内にキャプチャされた第1の物理面に対する第1の仮想オブジェクトの第1の移動を表示することを含み、第1の仮想オブジェクトの第1の移動は、奥行きデータおよび疑似重力方向に基づいて判定される第1の物理面に対応する第1の疑似表面によって制約される(例えば、疑似重力方向は、任意選択的に、第1の画像がキャプチャされたときの奥行きデータで記録された重力の方向に基づいて判定されるか、または、それぞれの画像を表示するデバイスの現在の向きに対する実際の重力方向と同じである)。例えば、図7Cに関して説明したように、仮想ボールオブジェクト7030は、奥行きデータ(例えば、床面7040)に基づいて判定された物理面に対応する疑似表面によって、疑似重力方向によって拘束される。いくつかの実施形態では、異なる種類の仮想オブジェクトは、異なる方法で疑似表面と相互作用する異なる疑似物理的特性(例えば、形状、サイズ、重量、弾性など)を有する。一例では、静止画が、湾曲したアーチストおよび平坦な着座領域を有するカウチをキャプチャする場合、仮想ゴムボールが画像の頂部から落下するように示され、アームレストの曲面上のランドは、アームレストの湾曲面上に跳ね返り、平坦な着座領域上のランドを跳ね返り、次いで床上に転がるように示される。対照的に、紙吹雪片は、画像の頂部から浮遊するように示され、アームストレストの曲面上のランドは、平坦着座領域上のアームレストランドの曲面から摺動し、平坦着座領域上に留まることが示されている。別の実施例では、3D文字「A」は、ユーザの指によって腕の湾曲面の上に配置され、3D文字「A」は、ユーザの指がタッチスクリーンから離れて持ち上げられたときに、着座領域の平坦面上に横向きおよびランドを落ちる。いくつかの実施形態では、静止画内にキャプチャされた物理的環境に対応する表面メッシュが、奥行きデータに基づいて生成され、静止画に挿入された仮想オブジェクトは、挿入中および/または初期配置の後にアニメーション化されて、オブジェクト間の重力、力、および物理的相互作用に関連する法則などの基本的な物理学に適合する、移動および最終位置/向きを示す。メディアオブジェクトの平面の位置を示すために(例えば、疑似重力に従って)以前にキャプチャされたメディアオブジェクトの物理面に仮想オブジェクトを移動させることにより、更なる入力を必要とすることなく仮想オブジェクトの移動を自動的に行うことができ(例えば、仮想オブジェクトの移動経路を指示する入力をユーザに提供する必要なく)、デバイスの操作性を高める。更なるユーザ入力を必要とせずに動作を実行することは、ユーザデバイスインターフェースをより効率的にし、更に、ユーザがデバイスをより迅速かつ効率的に使用できるようにすることによって、電力使用量を低減し、デバイスのバッテリ寿命を改善する。
いくつかの実施形態では、第1の以前にキャプチャされたメディアオブジェクト内のそれぞれの画像の少なくとも一部分の上に第1の仮想オブジェクトを表示する(1110)ことは、第1の仮想オブジェクトが1つ以上の第1の画像のうちの対応する1つの上に配置された後、第1の以前にキャプチャされたメディアオブジェクト内にキャプチャされた第1の物理面に従って第1の仮想オブジェクトの形状の変化を表示し、第1の仮想オブジェクトの形状の変化は、第1の奥行きデータに基づいて判定された第1の物理面に対応する第1の疑似表面によって制約される。例えば、図7U~図7Xに関して記載されているように、仮想デカールオブジェクト7084の形状は、オブジェクトが、ソファ7060の表面を越えて、以前にキャプチャされた画像に描かれた床7004上へ移動する際に変化する。いくつかの実施形態では、静止画が、湾曲したアーチストおよび平坦な着座領域を有するカウチをキャプチャする場合、仮想ペイントボールは、画像内にシュートするように示され、仮想ペイントボールは、アームレストの曲面上に広がる。対照的に、仮想ペイントボールが、着座領域の平坦面上の画像およびランドに噴出するように示される場合、仮想ペイントは、着座領域の平坦面上に広がる。別の実施例では、長い仮想ストリーマーは、アームレストの湾曲面の上で、アームレストの上に落下する一方で、平坦な着座領域の上に落下した長い仮想ストリーマーは、着座領域の平坦面上に平坦に位置する。以前にキャプチャされたメディアオブジェクト内の表面に従って仮想オブジェクトの形状の変化を表示することにより、仮想オブジェクトの形状の変化は、更なる入力を必要とせずに(例えば、仮想オブジェクトの形状の変化を指示する入力をユーザが提供することを必要とせずに)自動的に行うことができ、デバイスの操作性を高める。更なるユーザ入力を必要とせずに動作を実行することは、ユーザデバイスインターフェースをより効率的にし、更に、ユーザがデバイスをより迅速かつ効率的に使用できるようにすることによって、電力使用量を低減し、デバイスのバッテリ寿命を改善する。
いくつかの実施形態では、第1の以前にキャプチャされたメディアオブジェクト内のそれぞれの画像の少なくとも一部分の上に第1の仮想オブジェクトを表示している間に、デバイスは、第1の以前にキャプチャされたメディアオブジェクトを表示することから第2の以前にキャプチャされたメディアオブジェクトを表示することに切り替える第2のユーザ要求を検出し(1112)(例えば、メディアオブジェクトの水平に配列されたリスト内の前若しくは次の項目を示すための第1の仮想オブジェクト上の水平スワイプ入力、メディアオブジェクトの垂直に配列されたリスト内の前の若しくは次の項目を示すための第1の仮想オブジェクト上の垂直スワイプ、または、次の若しくは前のメディアオブジェクトに切り替えるための前若しくは後ろ側ボタン上のタップ)、第2の以前にキャプチャされたメディアオブジェクトは、1つ以上の第2の画像を含み、第2の以前にキャプチャされたメディアオブジェクトは、1つ以上の第2の画像のそれぞれにキャプチャされた第2の物理的環境に対応する第2の奥行きデータと共に記録および記憶された(例えば、第2のメディアオブジェクトが1つ以上のカメラによってキャプチャされた時間に対応する時間におけるデバイスの1つ以上の奥行きセンサ(例えば、赤外線、超音波、および/若しくはライダー、および/または画像解析システム(例えば、ビデオセグメント分析および/またはステレオ画像/ビデオ分析)などのエミッタ/検出器システム)によって生成された第2の奥行きデータ)。例えば、図7E~図7Fに関して説明したように、仮想ボールオブジェクトは、図7Eに示すように、第1の以前にキャプチャされた画像の上に表示されている間に、(図7Fに示すように)第1の以前にキャプチャされた画像を表示することから第2の以前にキャプチャされた画像を表示することに切り替えるための要求(例えば、後続のメディアオブジェクトコントロール7010における入力)が検出される。第1の以前にキャプチャされたメディアオブジェクトを表示することから第2の以前にキャプチャされたメディアオブジェクトを表示するこ(例えばとに切り替えの第2のユーザ要求を受信したことに応じて、デバイスは、第1の以前にキャプチャされたメディアオブジェクトの表示を第2の以前にキャプチャされたメディアの表示と置き換える、第1の以前にキャプチャされたメディアオブジェクトをスライドアウトさせ、第2の以前にキャプチャされたメディアをスワイプ入力の方向にスライドインさせる(例えば、水平スワイプまたは垂直スワイプ入力)。例えば、図7Eに関して説明したように受信した入力に応じて、デバイスは、図7Eに示すように、メディアオブジェクト表示領域7002内に第1の以前にキャプチャされたメディアオブジェクトを表示することから、図7Fに示すように、メディアオブジェクト表示領域7002内に第2の以前にキャプチャされた画像を表示することに切り替える。デバイスは、第2の以前にキャプチャされたメディアオブジェクト内のそれぞれの画像の少なくとも一部分の上に第1の仮想オブジェクトを表示し、第1の仮想オブジェクトは、第1の以前にキャプチャされたメディアオブジェクトのそれぞれの画像内の第1の仮想オブジェクトの第1の位置または向き(または移動経路)に基づいて、および第2の以前にキャプチャされたメディアオブジェクト内のそれぞれの画像に対応する第2の奥行きデータに基づいて判定された少なくとも第2の位置または向き(または移動経路)を伴って表示される。例えば、図7Eに表示された第1の以前にキャプチャされた画像に追加された仮想ボールオブジェクト7034および7044は、図7Fに表示された第2の以前にキャプチャされた画像の上に表示される。いくつかの実施形態では、第1の仮想オブジェクトが、第1の以前にキャプチャされたメディアオブジェクトの画像内で落下し、画像の第1の表面(例えば、コア座領域の平坦面)に着地した仮想的な紙吹雪または仮想ボールの断片である場合、ユーザが第1の画像を水平方向にスワイプすることによって第2の画像を表示するように切り替えるとき、第2の画像は、水平にスライドし、仮想的な紙吹雪または仮想ボールは、第1の画像内のその位置から移動し始め(例えば、コッフの着座領域の表面に対応する位置から下方に落ちる)、第2の表面に着地する(例えば、床の表面、または床上のクッションの表面など)から下方に落ちる)。換言すれば、仮想オブジェクトは、メディアオブジェクト間の切り替え時に持続し、次の画像内の仮想オブジェクトの位置、向き、および移動経路は、以前の画像内の仮想オブジェクトの位置、向き、および移動経路によって影響を受ける。第1の以前にキャプチャされたメディアオブジェクトの上に仮想オブジェクトを表示することから、(例えば、第2の以前にキャプチャされたメディアオブジェクト内の仮想オブジェクトの位置を示すために)ユーザ入力を必要とせずに第1の以前にキャプチャされたメディアオブジェクト内の仮想オブジェクトの位置または向きに基づいて判定された位置で第2の以前にキャプチャされたメディアオブジェクトの上に仮想オブジェクトを表示することに切り替えることは、デバイスの操作性を高める。更なるユーザ入力を必要とせずに動作を実行することは、ユーザデバイスインターフェースをより効率的にし、更に、ユーザがデバイスをより迅速かつ効率的に使用できるようにすることによって、電力使用量を低減し、デバイスのバッテリ寿命を改善する。
いくつかの実施形態では、第1のユーザ要求は、第1のタイプの仮想オブジェクト(例えば、図7C~図7Eに関して説明した仮想ボールオブジェクト7034および7044)の複数のインスタンスを、以前にキャプチャされたメディアオブジェクトに経時的に追加する(例えば、経時的に画像に仮想紙吹雪または仮想ボールの落下を追加する)要求(1114)であり、例えば、第1の仮想オブジェクトは、第1の以前にキャプチャされたメディアオブジェクトに追加された第1のタイプの仮想オブジェクトの複数のインスタンスのうちの1つである。第1の以前にキャプチャされたメディアオブジェクトを表示することから
第2の以前にキャプチャされたメディアオブジェクトを表示することに切り替えの(第2のユーザ要求を受信したことに応じて、デバイスは、第2の以前にキャプチャされたメディアオブジェクト内のそれぞれの画像の少なくとも一部分の上に第2の仮想オブジェクトを表示し、第2の仮想オブジェクトは、第1の仮想オブジェクトとは別個であり、第1の以前にキャプチャされたメディアオブジェクトに追加されていない第1のタイプの仮想オブジェクトのインスタンスであり、第2の仮想オブジェクトは、第2の以前にキャプチャされたメディアオブジェクト内のそれぞれの画像に対応する第2の奥行きデータを使用して判定される、少なくとも第3の位置または向きまたは移動経路)を伴って表示される。例えば、いくつかの実施形態では、第1のユーザ要求は、経時的に(例えば、連続的な方法で)同じタイプの一連の仮想オブジェクトを追加し、例えば、落下紙吹雪、雨滴、または花火等の画像にエフェクトを生成する要求である。第1の画像またはビデオにエフェクトが適用されている間(例えば、仮想紙吹雪、雨滴、または花火の複数のインスタンスが第1の画像に追加されているとき)、ユーザが次の画像またはビデオに切り替える場合(例えば、第1の画像またはビデオを水平または垂直にスワイプすることによって)、エフェクトはまた、ユーザが次の画像またはビデオに対するエフェクトを明示的に呼び出す(例えば、そのエフェクトのコントロールをアクティブ化する)ことなく、次の画像またはビデオ(例えば、仮想紙吹雪、雨滴、または花火の新たなインスタンスを画像に加える)にも自動的に適用される。第1の以前にキャプチャされたメディアオブジェクトの上に第1の仮想オブジェクトを表示することから、(例えば、第2の以前にキャプチャされたメディアオブジェクト内の仮想オブジェクトの位置を示すために)ユーザ入力を必要とせずに第1の以前にキャプチャされたメディアオブジェクト内の仮想オブジェクトの位置または向きに基づいて判定された位置で、第2の以前にキャプチャされたメディアオブジェクトの上に第2の仮想オブジェクトを表示することに切り替えることは、デバイスの操作性を高める。更なるユーザ入力を必要とせずに動作を実行することは、ユーザデバイスインターフェースをより効率的にし、更に、ユーザがデバイスをより迅速かつ効率的に使用できるようにすることによって、電力使用量を低減し、デバイスのバッテリ寿命を改善する。
いくつかの実施形態では、第1の以前にキャプチャされたメディアオブジェクトおよび第2の以前にキャプチャされたメディアオブジェクト(1116)は、異なる物理的環境に対応するおよび/または同じ物理的環境の異なるビューに対応する異なる奥行きデータと共に以前に記録および記憶された2つの別個の静止画(例えば、図7Eのメディアオブジェクト表示領域7002に示されるような第1の以前にキャプチャされた画像および図7Fのメディアオブジェクト表示領域7002に示されるような第2の以前にキャプチャされた画像)である。例えば、第2の静止画は、第2の静止画に適用し続ける同じエフェクト(例えば、落下する紙吹雪、仮想ボール、花火、仮想ブロック文字など)を有するために画像内にキャプチャされる主題に関して、第1の静止画との任意の接続を有する必要はない。第1の以前にキャプチャされたメディアオブジェクトの上に仮想オブジェクトを表示することから、(例えば、第2の以前にキャプチャされたメディアオブジェクト内の仮想オブジェクトの位置を示すために)更なるユーザ入力を必要とせずに第1の以前にキャプチャされたメディアオブジェクトとは異なる奥行きデータを有する第2の以前にキャプチャされたメディアオブジェクトの上に第2の仮想オブジェクトを表示することに切り替えることは、デバイスの操作性を高める。更なるユーザ入力を必要とせずに動作を実行することは、ユーザデバイスインターフェースをより効率的にし、更に、ユーザがデバイスをより迅速かつ効率的に使用できるようにすることによって、電力使用量を低減し、デバイスのバッテリ寿命を改善する。
いくつかの実施形態では、第1の以前にキャプチャされたメディアオブジェクトは、連続する画像フレームのシーケンスを含むビデオであり(例えば、図7AM~7ATに関して記載されているように)、第1の以前にキャプチャされたメディアオブジェクト内のそれぞれの画像の少なくとも一部分の上に第1の仮想オブジェクトを表示することは、第1の以前にキャプチャされたメディアオブジェクトの再生中に、第1の以前にキャプチャされたメディアオブジェクトの第1の画像フレームを表示している間に、第1の仮想オブジェクトを第1の画像フレームの第1の部分の上に表示すること(1118)であって、第1の仮想オブジェクトは、第1の以前にキャプチャされたメディアオブジェクトの第1の画像フレームに対応する第1の奥行きデータの一部分に従って判定された位置または向き(または移動経路)を伴って表示されることと、第1の画像フレームを表示した直後に、第1の以前にキャプチャされたメディアオブジェクトの第2の画像フレームを表示している間に(例えば、第2の画像フレームは、メディアオブジェクトの通常または早送り再生においてメディアオブジェクト内の第1の画像フレームに直前に先行し、第2の画像フレームは、メディアオブジェクトの逆再生においてメディアオブジェクト内の第1の画像フレームに直前に先行し、または第2の画像は、メディアオブジェクトの初期フレームであり、第1の画像は、メディアオブジェクトのループ状再生中のメディアオブジェクトの最後のフレームである)、第1の仮想オブジェクトを第2の画像フレームの第2の部分の上に表示することであって、第1の仮想オブジェクトは、第1の画像フレーム内の第1の仮想オブジェクトの位置または向き(または移動経路)に従って、かつ第1の以前にキャプチャされたメディアオブジェクトの第2の画像フレームに対応する第1の奥行きデータの一部分に従って判定される位置または向き(または移動経路)を伴って表示される、ことと、を含む。例えば、第1の仮想オブジェクトが、ビデオの第1の画像フレーム内の表面(例えば、移動または静止オブジェクトの表面)上に落ちる仮想紙吹雪または仮想ボールである場合、ビデオが再生し続け、表面が次の画像フレームに示されるとき、仮想紙吹雪または仮想ボールの位置および/または向きおよび/または移動経路は、新たな画像フレーム内の表面の位置および向きに応じて変化する。例えば、表面が静止テーブル表面である場合、仮想紙吹雪は、静止テーブル表面上の同じ位置に位置するように見え、仮想ボールは、ここで表面を異なる視点で見た場合であって、第1の画像フレームと比較して、第2の画像フレーム上の異なる領域を占有している場合であっても、静止テーブル面に沿って転がるように見える。同様に、表面が、ビデオに突然得られるトラップドアの上部である場合、仮想紙吹雪は、トラップドアの上部の静止位置から徐々に落下し始め、仮想ボールは、疑似重力によって、トラップドアの上部のその位置から加速を伴って降下するように見える。いくつかの実施形態では、第1のユーザ要求は、経時的に(例えば、連続的な方法で)同じタイプの一連の仮想オブジェクトを追加し、落下する紙吹雪、または花火などのエフェクトを画像上に作成する要求である。例えば、物理的な凧オブジェクト7112の縁部上に置かれる仮想紙吹雪オブジェクトは、図7AM~図7ATにおいてビデオ再生が生じるときに、変更された位置、向き、および移動経路を伴って表示される。第1の画像フレームにエフェクトが適用されている間(例えば、仮想紙吹雪または花火の複数のインスタンスが第1の画像フレームに追加されるとき)、ビデオ再生が継続すると、エフェクトはまた、次の画像フレームに自動的に適用される(例えば、仮想紙吹雪または花火の新たなインスタンスも、次の画像画像に追加される)。いくつかの実施形態では、ビデオの終わりに、最後の画像フレームに追加される仮想オブジェクトは、複数の以前の画像フレームに追加され、前の画像フレームに描かれた物理的環境に対応する疑似表面と、最後の画像フレームに描かれた物理的環境に対応する疑似表面との事前の相互作用に基づいて、最終画像フレーム内の最終位置および向きに落ち着いた仮想オブジェクトを含む。ビデオの第1のフレームを表示した直後に表示されたビデオの第2のフレームの上に仮想オブジェクトを表示し、更なる入力を必要とすることなく(例えば、ユーザがビデオの各フレーム内の仮想オブジェクトの位置を示す入力を提供することを必要とすることなく)、第2の画像フレームにおいて、仮想オブジェクトの位置または向きが、第2の画像フレームからの奥行きデータを使用して判定されることは、デバイスの操作性を向上させる。更なるユーザ入力を必要とせずに動作を実行することは、ユーザデバイスインターフェースをより効率的にし、更に、ユーザがデバイスをより迅速かつ効率的に使用できるようにすることによって、電力使用量を低減し、デバイスのバッテリ寿命を改善する。
いくつかの実施形態では、第1の以前にキャプチャされたメディアオブジェクトを表示することは、連続する画像フレームのシーケンスのループ、早送り、または反転のうちの少なくとも1つを含む第1のタイムラインに従って、ビデオを再生することを含み(1120)、第1の以前にキャプチャされたメディアオブジェクト内のそれぞれの画像の少なくとも一部分の上に第1の仮想オブジェクトを表示することは、第1のタイムラインに従ったビデオの再生中に、ビデオの再生中に表示された(例えば、ビデオの終了から開始までのルーピング、ビデオ再生中の不均一なレートでフレームを切り替えること、ビデオを後のフレームから前のフレームまで後方に再生することなどを含む)画像フレームのシーケンスの実際の順序に関連付けられた往路タイムラインに従った第1の仮想オブジェクトの位置または向き(または移動経路)の変化を表示することを含む(例えば、各以前に表示された画像フレーム内の仮想オブジェクトの以前の位置および向きは、現在表示されている画像フレームの位置および向きに影響を及ぼす)。換言すれば、表示された画像フレーム内の仮想オブジェクトの移動のタイムラインは、メディアオブジェクトが再生されるタイムラインとは無関係である。更なる入力を必要とせずに(例えば、ユーザが、ビデオの各フレーム内の仮想オブジェクトの位置の変化を示す入力を提供することを必要とせずに)、画像フレームのシーケンスの順序に関連付けられたタイムラインに従って仮想オブジェクトの位置または向きの変化を表示することは、デバイスの操作性を向上させる。更なるユーザ入力を必要とせずに動作を実行することは、ユーザデバイスインターフェースをより効率的にし、更に、ユーザがデバイスをより迅速かつ効率的に使用できるようにすることによって、電力使用量を低減し、デバイスのバッテリ寿命を改善する。
いくつかの実施形態では、第1の以前にキャプチャされたメディアオブジェクト内のそれぞれの画像の少なくとも一部分の上に第1の仮想オブジェクトを表示すること(1122)は、第1の仮想オブジェクトが1つ以上の第1の画像のうちの対応する1つの上に配置されている間に、第1の以前にキャプチャされたメディアオブジェクト内にキャプチャされた第1の物理面に従って第1の仮想オブジェクトの影を表示することであって、第1の仮想オブジェクトの影は、第1の奥行きデータに基づいて決定された第1の物理面に対応する第1の疑似表面によって制約される、ことを含む。例えば、静止画が、湾曲したアーチストおよび平坦な着座領域を有するカウチをキャプチャする場合、アームレストの曲面上に配置された後、着座領域の平坦面に横向きに落ちる仮想文字Aは、仮想文字Aが現在オンである表面に従って変化する陰影と、表面に対する仮想文字Aの現在の向きを有する。いくつかの実施形態では、画像またはビデオに関連付けられた奥行きデータに基づいて3次元または準3次元メッシュが生成され、メッシュ表面は、画像またはビデオ内にキャプチャされた物理的環境の形状特性を呈し、陰影は、疑似光源およびメッシュ表面に対する仮想オブジェクトの位置および向きに基づいてメッシュ表面上にキャスティングされる。(例えば、以前にキャプチャされたメディアオブジェクト内の表面を識別するために)更なる入力を必要とせずに、以前にキャプチャされたメディアオブジェクトの奥行きデータに基づいて、物理面に対応する疑似表面によって制約される陰影を有する仮想オブジェクトを表示することは、デバイスの操作性を高める。更なるユーザ入力を必要とせずに動作を実行することは、ユーザデバイスインターフェースをより効率的にし、更に、ユーザがデバイスをより迅速かつ効率的に使用できるようにすることによって、電力使用量を低減し、デバイスのバッテリ寿命を改善する。
いくつかの実施形態では、第1のユーザ要求は、第1の以前にキャプチャされたメディアオブジェクト内のそれぞれの画像内の第1の位置に仮想第1のテキストオブジェクトを配置するユーザ要求である(1124)。例えば、ユーザ要求は、図7Q~図7Sに関して説明したように、仮想テキストオブジェクト7064の編集モードを開始するために仮想テキストオブジェクト7064において提供される入力である。デバイスは、仮想第1のテキストオブジェクトに第1の仮想文字を追加すること(例えば、既存のテキスト入力の終わりに文字をタイプ入力することによってテキスト入力領域を編集すること)を含む、仮想第1のテキストオブジェクトを更新するためのユーザ入力を受信し(1126)、ユーザ入力を受信したことに応じて、デバイスは、仮想の第1のテキストオブジェクト内の先行する仮想文字に隣接する、第1の以前にキャプチャされたメディアオブジェクト内のそれぞれの画像内の第2の位置に、およびそれぞれの画像内の第2の位置に対応する第1の奥行きデータの一部分に従って、第1の仮想文字を表示する。いくつかの実施形態では、テキストは、それぞれの画像内にキャプチャされた環境の表面メッシュに基づいて生成される照明および影を有する。(例えば、以前にキャプチャされたメディアオブジェクト内の奥行きデータを識別するために)更なる入力を必要とすることなく、以前にキャプチャされたメディアオブジェクト内の位置にテキストオブジェクトを表示することと、メディアオブジェクト内の奥行きデータに従ってテキストオブジェクトの文字を配置することは、デバイスの操作性を高める。更なるユーザ入力を必要とせずに動作を実行することは、ユーザデバイスインターフェースをより効率的にし、更に、ユーザがデバイスをより迅速かつ効率的に使用できるようにすることによって、電力使用量を低減し、デバイスのバッテリ寿命を改善する。
いくつかの実施形態では、第1の以前にキャプチャされたメディアオブジェクト内のそれぞれの画像の少なくとも一部分の上に第1の仮想オブジェクトを表示すること(1128)は、それぞれの画像内の第1の仮想オブジェクトの現在位置に近接する疑似表面が水平表面であるとの判定に従って、(例えば、水平面の下ではなく)水平面の上に第1の仮想オブジェクトを表示することと、それぞれの画像内の第1の仮想オブジェクトの現在の位置に近接する疑似表面が垂直表面であるとの判定に従って、垂直面の前に第1の仮想オブジェクトを表示することと、を含む。(例えば、表面が水平面であるか垂直面であるかを示すために)更なる入力を必要とせずに、表面が水平面であるか垂直面であるかに依存して、仮想オブジェクトを仮想オブジェクトに近接する表面の上または前面に表示することは、デバイスの操作性を高める。更なるユーザ入力を必要とせずに動作を実行することは、ユーザデバイスインターフェースをより効率的にし、更に、ユーザがデバイスをより迅速かつ効率的に使用できるようにすることによって、電力使用量を低減し、デバイスのバッテリ寿命を改善する。
いくつかの実施形態では、第1の以前にキャプチャされたメディアオブジェクト内のそれぞれの画像の少なくとも一部分の上に第1の仮想オブジェクトを表示すること(1130)は、それぞれの画像が、それぞれの画像内の第1の仮想オブジェクトの現在の位置に近接して異なる奥行きを有する第1の疑似表面(例えば、前景オブジェクト)と第2の疑似表面(例えば、背景オブジェクト)とを含むとの判定に従って、第1の疑似表面と第2の疑似表面との間の奥行きで第1の仮想オブジェクトを表示することを含む(例えば、第1の仮想オブジェクトの少なくとも第1の部分が第1の疑似表面によって閉塞され、第1の仮想オブジェクトの少なくとも第2の部分が第2の疑似表面の少なくとも一部分を閉塞し、または第1の疑似表面によって表されるオブジェクトの下)。例えば、図7Gに関して説明したように、仮想ボールオブジェクト7045は、第1の疑似表面(例えば、以前にキャプチャされた画像に描かれた部屋の後壁)と第2の疑似表面(例えば、テーブル7054)との間の奥行きで表示される。いくつかの実施形態では、物理的環境の完全な3次元モデルは、画像単独の奥行きデータに基づいて確立することができない。第1の疑似表面と第2の疑似表面との間の空間に関する空間情報は存在しない。第1の仮想オブジェクトは、第1の疑似表面と第2の疑似表面との間の奥行きの範囲内の空間情報の不在に関係なく、第1の疑似表面と第2の疑似表面との間に配置される。(例えば、仮想オブジェクトの奥行き、第1の疑似表面の奥行き、および/または第2の疑似表面の奥行きを示すために)更なる入力を必要とすることなく、第1の疑似表面と第2の疑似表面との間の奥行きを有する仮想オブジェクトを表示することは、デバイスの操作性を向上させる。更なるユーザ入力を必要とせずに動作を実行することは、ユーザデバイスインターフェースをより効率的にし、更に、ユーザがデバイスをより迅速かつ効率的に使用できるようにすることによって、電力使用量を低減し、デバイスのバッテリ寿命を改善する。
いくつかの実施形態では、デバイスは、第1の仮想オブジェクトに向けられたタッチ感知面上の接触によるオブジェクト位置決め入力(例えば、ドラッグ入力またはタップ入力)を検出し(1132)、オブジェクト位置決め入力は、タッチ感知面上の接触の最終位置(および、任意選択的に、最終移動速度および方向)に対応するそれぞれの画像上の第1の仮想オブジェクトの配置位置を指定する。例えば、オブジェクト位置決め入力は、図7Mに関して説明したように、仮想テキストオブジェクト7064を位置付けるための接触7066による入力である。オブジェクト位置決め入力を検出したことに応じて、デバイスは、オブジェクト位置決め入力に従って、それぞれの画像上の配置位置に第1の仮想オブジェクトを配置する。第1の仮想オブジェクトがそれぞれの画像上の配置位置に表示されている間に、デバイスは、タッチ感知面からの接触のリフトオフを検出することを含めて、オブジェクト位置決め入力の終了を検出する。オブジェクト位置決め入力の終了を検出したことに応じて、デバイスは、配置位置を取り囲む物理的環境の一部分に対応する奥行きデータ(例えば、配置位置近くの奥行きデータに基づいて作成された物理的環境の表面メッシュ)に従って、および第1の仮想オブジェクトの物理的環境の部分の1つ以上のシミュレートされた物理的特性(例えば、重量、重力、弾性、塑性、速さ、速度など)に従って、(例えば、回転および/または並進運動を用いて)第1の仮想オブジェクトを配置位置から最終位置に移動させる。(例えば、仮想オブジェクトの移動がどのように行われるかを示すために、および/または以前にキャプチャされたメディア画像の奥行きデータを示すために)更なる入力を必要とすることなく、仮想オブジェクトを奥行きデータに従って移動させることは、デバイスの操作性を高める。例えば、接触5066のリフトオフの際に、仮想テキストオブジェクトは、図7M~図7Pに関して説明したように、以前にキャプチャされた画像内のソファ7060の水平面上の最終位置に配置される。更なるユーザ入力を必要とせずに動作を実行することは、ユーザデバイスインターフェースをより効率的にし、更に、ユーザがデバイスをより迅速かつ効率的に使用できるようにすることによって、電力使用量を低減し、デバイスのバッテリ寿命を改善する。
いくつかの実施形態では、第1の仮想オブジェクトは、疑似スポットライト(例えば、図7AUに関して説明したような仮想スポットライトオブジェクト7118)を含む(1134)。第1の以前にキャプチャされたメディアオブジェクト内のそれぞれの画像の少なくとも一部分の上に第1の仮想オブジェクトを表示することは、それぞれの画像内に、疑似3次元形状(例えば、円錐形または円筒形の光ビーム)を有する疑似光ビーム(例えば、光ビーム7120)を表示することであって、疑似3次元形状が、それぞれの画像における疑似光ビームの移動と一定のままである(例えば、形状の外観は、ユーザの引力点からの光ビームの視野に応じて、ユーザとは異なり得る)、ことと、それぞれの画像内に、2次元形状を有する疑似照明スポット(例えば、照明スポット7122)を表示することであって、2次元形状が、それぞれの画像における疑似光ビームの移動に従って、および第1の奥行きデータに基づいて判定される疑似光ビームと物理的環境内の物理面に対応する疑似交差面(例えば、物理オブジェクトの表面(例えば、曲面または平坦面))との間の相対的な空間的関係に従って変化する、ことと、を含む。例えば、図7AV~図7AWに関して説明したように、仮想スポットライトオブジェクト7118がユーザ入力に応じて移動すると、疑似照明スポット7122の形状が変化する。(例えば、以前にキャプチャされたメディア画像の奥行きデータを示すために)更なる入力を必要とすることなく、疑似光ビームの移動に従って変化し、かつ疑似光ビームと、奥行きデータに基づいて判定された表面に対応する疑似表面との間の相対的な空間的関係に従って変化する2次元形状を有する疑似照明スポットを表示することは、デバイスの操作性を向上させる。更なるユーザ入力を必要とせずに動作を実行することは、ユーザデバイスインターフェースをより効率的にし、更に、ユーザがデバイスをより迅速かつ効率的に使用できるようにすることによって、電力使用量を低減し、デバイスのバッテリ寿命を改善する。
いくつかの実施形態では、第1の仮想オブジェクトは、グラフィカルオブジェクト(1136)(例えば、2次元または3次元絵文字)を含み、第1の以前にキャプチャされたメディアオブジェクト内のそれぞれの画像の少なくとも一部分の上に第1の仮想オブジェクトを表示することは、物理的環境内の自由空間に対応するそれぞれの画像内の位置にグラフィカルオブジェクトを表示することを含む(例えば、絵文字は、ユーザの指接触によって選択された位置において物理的環境内の空中に浮遊する)。例えば、グラフィカルオブジェクトは、図7ABに関して記載されている仮想絵文字オブジェクト7098である。(例えば、以前にキャプチャされたメディア画像内の自由空間の位置を示すために)更なる入力を必要とせずに、(例えば、メディア画像内にキャプチャされた)物理的環境内の自由空間に対応する位置にグラフィカルオブジェクトを表示することは、デバイスの操作性を向上させる。更なるユーザ入力を必要とせずに動作を実行することは、ユーザデバイスインターフェースをより効率的にし、更に、ユーザがデバイスをより迅速かつ効率的に使用できるようにすることによって、電力使用量を低減し、デバイスのバッテリ寿命を改善する。
いくつかの実施形態では、デバイスは、タッチ感知面上の2つの同時接触を検出し(1138)、2つの同時接触を検出したことに応じて、デバイスは、タッチ感知面上の2つの同時接触のそれぞれの位置に対応するそれぞれの画像上のそれぞれの位置に位置する2つのそれぞれの端部を有する第1の測定オブジェクトを表示する。例えば、同時接触7132および7134を検出したことに応じて、図7AY~図7AZに関して説明したように、接触の位置に対応する位置に、仮想測定オブジェクト7136が表示される。接触箇所に対応する画像上の位置に位置する端部を有する測定オブジェクトを表示することは、ユーザに視覚的フィードバックを提供する(例えば、測定に対応する画像の一部分を示す)。改良された視覚フィードバックをユーザに提供することにより、(例えば、ユーザが測定に対応する画像の部分を素早くかつ正確に判定および/または調整するのを可能にすることによって)デバイスの操作性を高め、ユーザ-デバイスインターフェースを更に効率的にし、加えて、ユーザがデバイスを更に素早くかつ効率的に使用することを可能にすることによってデバイスの電力使用を削減し、バッテリ寿命を改善する。
いくつかの実施形態では、第1の測定オブジェクトを表示すること(1140)は、第1の測定オブジェクトの2つのそれぞれの端部が、それぞれの画像内にキャプチャされた物理面に対応する疑似前景表面の2つの側面上に位置するとの判定に従って(例えば、第1の測定オブジェクトは、疑似前景表面を通過する)、第1の外観を有する疑似前景表面の第1の側に位置する第1の測定オブジェクトの第1の部分を表示することと、第2の外観を有する疑似前景表面の第1の側面とは異なる第2の側に位置する第1の測定オブジェクトの第1の部分とは異なる第2の部分を表示することと、を含み、第2の外観は、第1の外観とは異なる(例えば、測定オブジェクトの第1の側は前景であり、完全に見え、測定オブジェクトの第2の側は、前景表面によって遮蔽され、陰影の付いた外観を有する)。例えば、図7BDでは、測定オブジェクト7148の第1の部分(例えば、点線部分)は、疑似前景表面の第1の側に位置し、測定オブジェクト7148の第2の部分(例えば、実線部分)は、疑似前景表面の第2の側に位置する。第1の外観を有する疑似前景表面の第1の側に位置する第1の測定オブジェクトの第1の部分を表示することと、第2の外観を有する疑似前景表面の第2の側に位置する第1の測定オブジェクトの第2の部分を表示することは、ユーザに視覚的フィードバックを提供する(例えば、測定オブジェクトが、キャプチャされた画像内の物理面に対応する疑似表面の異なる側に広がることを示す)。改良された視覚フィードバックをユーザに提供することにより、(例えば、ユーザが測定に対応する画像の部分を素早くかつ正確に判定および/または調整するのを可能にすることによって)デバイスの操作性を高め、ユーザ-デバイスインターフェースを更に効率的にし、加えて、ユーザがデバイスを更に素早くかつ効率的に使用することを可能にすることによってデバイスの電力使用を削減し、バッテリ寿命を改善する。
いくつかの実施形態では、第1の測定オブジェクトを表示すること(1142)は、第1の測定オブジェクトをそれぞれの画像内の第1の端部および第2の端部で表示する間、タッチ感知面上の接触による位置決め入力を検出することであって、位置決め入力は、それぞれの画像内の第1の測定オブジェクトの新たな終了位置を指定し、接触による位置決め入力を検出したことに応じて、第1の測定オブジェクトの第1および第2の端部のうちの新しい終了位置により近い1つを、位置決め入力によって指定されるたそれぞれの画像内の新しい終了位置まで移動させる、ことを含む。例えば、図7BFに関して説明したような接触7152による位置決め入力は、図7BB~図7BEに関して記載されたように以前に表示された測定オブジェクト7148の新たな終了位置を指定する。更なる入力(例えば、新たな測定入力を提供するための以前の測定入力を取り消すための入力)を必要とせずに、第1の測定オブジェクトの第1および第2の端のうちの1つを新しい終了位置まで移動させることは、デバイスの操作性を向上させる。更なるユーザ入力を必要とせずに動作を実行することは、ユーザデバイスインターフェースをより効率的にし、更に、ユーザがデバイスをより迅速かつ効率的に使用できるようにすることによって、電力使用量を低減し、デバイスのバッテリ寿命を改善する。
図11A~図11Fにおける動作について説明された特定の順序は単なる例であり、説明された順序は、動作を実行することができる唯一の順序であることを示すことを意図するものではないことを理解されたい。当業者であれば、本明細書に記載される動作を再順序付けるための様々な方法を認識するであろう。更に、本明細書に記載された他の方法(例えば、方法900、1000、および1200)に関して本明細書に記載されている他のプロセスの詳細は、図11A~図11Fに関して上述した方法1200に類似した方法でも適用可能であることに留意されたい。例えば、方法1100を参照して上記した接触、入力、注釈、仮想オブジェクト、物理オブジェクト、ユーザインターフェース領域、視野、移動、および/またはアニメーションは、任意選択的に、本明細書に記載される他の方法(例えば、方法900、1000、および1200)を参照して本明細書に記載した接触、入力、注釈、仮想オブジェクト、物理オブジェクト、ユーザインターフェース領域、視野、移動、および/またはアニメーションの特徴のうちの1つ以上を有する。簡潔にするために、それらの詳細はここでは繰り返さない。
図12A~図12Dは、共有注釈セッションを開始する方法1200を示すフロー図である。方法1200は、第1の表示生成要素(例えば、ディスプレイ、プロジェクタ、ヘッドアップディスプレイ等)と、第1のセットの1つ以上の入力デバイス(例えば、タッチ感知リモートコントロール等のタッチ感知面、または表示生成要素としての役割も果たすタッチスクリーンディスプレイ、マウス、ジョイスティック、ワンドコントローラ、および/またはユーザの手などのユーザの1つ以上の特徴の位置を追跡するカメラ)と、第1のセットの1つ以上のカメラ(例えば、ディスプレイおよびタッチ感知面とは反対のデバイスの側の1つ以上の背面カメラ)とを有する電子デバイス(例えば、図3のデバイス300、または図1Aのポータブル多機能デバイス100)で実行される。いくつかの実施形態では、ディスプレイはタッチスクリーンディスプレイであり、タッチ感知面がディスプレイ上にあるかまたはこれに組み込まれている。いくつかの実施形態では、ディスプレイはタッチ感知面から分離している。方法1200の一部の動作が任意選択的に組み合わされ、かつ/または、一部の動作の順序が任意選択的に変更される。
デバイスは、(例えば、共有注釈モードに移行するユーザ要求に応じて)第2の表示生成要素と、1つ以上の入力デバイスの第2のセットと、1つ以上の第2のカメラセットとを含む第2のデバイスとの共有注釈セッションを開始する要求をリモートデバイス(例えば、サーバまたは第2のデバイス)に送信する(1202)。例えば、図8Bに関して説明したように、共有注釈セッションを開始する要求は、共有注釈セッションを開始するための制御8010で受信された入力に応じて、デバイス100-1から第2のデバイス100-2に送信される。いくつかの実施形態では、共有注釈モードに移行する要求は、共有注釈セッションを開始する第1の入力と、注釈セッションを共有する第2のデバイスを選択する第2の入力(例えば、近くのデバイスのリストから、またはソーシャルネットワークコンタクトのリストから)とを含む。
第2のデバイスとの共有注釈セッションを開始する要求を送信したことに応じて、デバイスは、(例えば、サーバまたは第2のデバイスから)共有注釈セッションを開始する要求の受諾のインジケーションを受信する(1204)。いくつかの実施形態では、要求は、第2のデバイスに(例えば、サーバを経由しないで直接、またはサーバを介して)送信され、第2のデバイスは、第1のデバイスとの共有注釈セッションを開始する要求の通知を表示する。例えば、図8Cでは、第1のデバイス100-1は、共有注釈セッションを開始する要求を送信し、第2のデバイス100-2は、通知(例えば、要求を受け入れる命令を含むプロンプト8016)を表示する。第2のユーザは、第2のデバイスによって表示された通知に応じて、第2のデバイスにおいて受諾入力を提供する。そして、第2のデバイスは、第1のデバイスに受諾のインジケーションを(例えば、直接またはサーバを介して)送信する。
共有注釈セッションを開始する要求の受諾のインジケーションを受信したことに応じて、デバイスは、第1の表示生成要素を介して、第1のデバイスを第2のデバイスに向かって移動させる第1のプロンプト(例えば、互いに移動する第1および第2のデバイスの表現を示すアニメーション)を表示する(1206)。例えば、第1のデバイス100-1は、図8Dに関して説明したように、デバイス100-1をデバイス100-2の表現に向けて移動させる命令を含むプロンプト8022を表示する。いくつかの実施形態では、プロンプト8022は、図8D~図8Eに関して説明したように、デバイス100-2に向かって移動するデバイス100-1の表現を示すアニメーションを含む。いくつかの実施形態では、プロンプトはまた、第2のデバイスを第1のデバイスに向かって移動させるように、第2のデバイスに表示される。いくつかの実施形態では、2つのデバイスは、2つのデバイス上の視野が実質的に同じであるか、または有意な重複を有するように、互いにかつ物理的環境の同じ部分の点に向かって移動する。例えば、第2のデバイス100-2は、図8Dに関して説明したように、デバイス100-2をデバイス100-1に向かって移動させる命令を含むプロンプト8024を表示する。いくつかの実施形態では、プロンプト8024は、図8D~図8Eに関して説明したように、デバイス100-1の表現に向かって移動するデバイス100-2の表現を示すアニメーションを含む。
第1のプロンプトを表示した後で、第1のデバイスおよび第2のデバイスの接続基準が満たされているとの判定に従って(例えば、第1のデバイスおよび第2のデバイスの互いに向かう移動の後に、および第1および第2のカメラセットの視野内にキャプチャされた物理空間の解析の後)、デバイスは、第2のデバイスとの共有注釈セッションにおける第1のカメラセットの視野の表現を表示する(1208)。例えば、図8F~図8Gに関して説明したように、第1のデバイスおよび第2のデバイスの接続基準が満たされたとの判定に従って、デバイス100-1は、デバイス100-1の1つ以上のカメラの視野の表現を表示する。いくつかの実施形態では、共有注釈セッションが開始される前に、第1のカメラセットの視野の表現が既に表示されている。いくつかの実施形態では、共有注釈セッションの視野の表現は、共有注釈セッションのためのライブカメラビューおよび1つ以上のコントロール(例えば、様々な注釈ツール用のユーザインターフェースオブジェクト)の両方を含む。接続基準は、第1のデバイスの視野の少なくとも一部分および第2のデバイスの視野の一部分が、第1および第2のデバイスを取り囲む物理的環境の同じ部分に対応することを必要とする(例えば、いくつかの実施形態では、接続基準は、第1のデバイスおよび第2のデバイスが物理的環境内の実質的に同じ位置からの物理的環境の同じ部分を指す(例えば、デバイスは、それらのカメラが同じ方向を向いた状態で並んでいる)ことを必要とする)。共有注釈セッション中に、それぞれの位置が第1のカメラセットの視野に含まれている場合(例えば、(例えば、画像および奥行きデータを含む)視野および共有注釈セッション中の第1および/または第2のデバイスのデバイス移動データの解析によってなされたような判定に従って)、第1のデバイスによって物理的環境内のそれぞれの位置を対象とする(例えば、視野の静止画上の直接注釈を介して、またはカメラの視野のライブフィード上に直接)注釈入力(例えば、描画、仮想オブジェクト、テキストなど)に対応する1つ以上の第1の仮想注釈(例えば、図8K~図8Mに関して説明した注釈8056-1)は、第1の表示生成要素を介して表示され(例えば、第1のカメラセットの視野の表現上にオーバーレイされる)、第2のデバイスによって物理的環境内のそれぞれの位置を対象とする(例えば、視野の静止画上の直接注釈を介して、またはカメラの視野のライブフィード上に直接)注釈入力(例えば、描画、仮想オブジェクト、テキストなど)に対応する1つ以上の第2の仮想注釈(例えば、図8H~図8Jに関して説明した注釈8050-1)は、第1の表示生成要素を介して表示される(例えば、第1のカメラセットの視野の表現上にオーバーレイされる)。位置が第1のデバイスの視野内に含まれる場合、第1のデバイスによって、かつ第2のデバイスによって、物理的環境内の位置を対象とする第1の表示注釈入力に表示することは、ユーザに視覚的フィードバックを提供する(例えば、デバイスの近接が共有注釈セッションに十分であることを示す)。改良された視覚的フィードバックをユーザに提供することにより、(例えば、ユーザが異なるユーザによる注釈が空間内の同じ位置に関連して表示される注釈セッションにおいて協調することを可能にすることによって)デバイスの操作性を高め、ユーザデバイスインターフェースを更に効率的にし、加えて、ユーザがデバイスを更に素早くかつ効率的に使用することを可能にすることによってデバイスの電力使用を削減し、バッテリ寿命を改善する。
いくつかの実施形態では、共有注釈セッション中に、それぞれの位置が第2のカメラセットの視野に含まれている場合(例えば、(例えば、画像および奥行きデータを含む)視野および共有注釈セッション中の第1および/または第2のデバイスのデバイス移動データの解析によってなされたような判定に従って)、第1のデバイスによって物理的環境内のそれぞれの位置を対象とする(例えば、視野の静止画上の直接注釈を介して、またはカメラの視野のライブフィード上に直接)注釈入力(例えば、描画、仮想オブジェクト、テキストなど)に対応する1つ以上の第1の仮想注釈は、第2の表示生成要素を介して表示され(1210)(例えば、第2のカメラセットの視野の表現上にオーバーレイされる)、第2のデバイスによって物理的環境内のそれぞれの位置を対象とする(例えば、視野の静止画上の直接注釈を介して、またはカメラの視野のライブフィード上に直接)注釈入力(例えば、描画、仮想オブジェクト、テキストなど)に対応する1つ以上の第2の仮想注釈は、第2の表示生成要素を介して表示される(例えば、第2のカメラセットの視野の表現上にオーバーレイされる)。例えば、第2のデバイス100-2のディスプレイは、図8K~図8Mおよび図8H~図8Jに関して説明したように、第2のデバイス100-2として入力された注釈8050-2、および第1のデバイス100-1で入力された注釈8056-2を表示する。位置が第2のデバイスの視野内に含まれる場合、第1のデバイスによって、かつ第2のデバイスによって、物理的環境内の位置を対象とする第2のディスプレイに注釈入力に表示することは、ユーザに視覚的フィードバックを提供する(例えば、デバイスの近接が共有注釈セッションに十分であることを示す)。改良された視覚的フィードバックをユーザに提供することにより、(例えば、ユーザが異なるユーザによる注釈が空間内の同じ位置に関連して表示される注釈セッションにおいて協調することを可能にすることによって)デバイスの操作性を高め、ユーザデバイスインターフェースを更に効率的にし、加えて、ユーザがデバイスを更に素早くかつ効率的に使用することを可能にすることによってデバイスの電力使用を削減し、バッテリ寿命を改善する。
いくつかの実施形態では、共有注釈セッション中に、それぞれの位置が第2のカメラセットの視野に含まれ、第1のカメラセットの視野に含まれない場合(例えば、(例えば、画像および奥行きデータを含む)視野および共有注釈セッション中の第1および/または第2のデバイスのデバイス移動データの解析によってなされたような判定に従って)、第1のデバイスによって(例えば、静止画上の直接注釈を介して、またはカメラの視野のライブフィード上に直接)物理的環境内のそれぞれの位置を対象とする注釈入力(例えば、図面、仮想オブジェクト、テキストなど)に対応する1つ以上の第1の仮想注釈は、第1の表示生成要素を介さずに、第2の表示生成要素を介して表示される(1212)(例えば、第2のカメラセットの視野の表現上にオーバーレイされる)。例えば、注釈8050-1、8050-2および8056-1、8056-2は、物理ポスター8038aの表現8038bおよび8038c(それぞれデバイス101-1および101-2のカメラの視野内)に示された直接注釈入力として受信される。位置が第2のデバイスの視野内に含まれかつ第1のデバイスの視野内に含まれない場合に、第2のディスプレイにおいて、第1のディスプレイが注釈入力を表示していない間に注釈入力を表示することは、ユーザに視覚的フィードバックを提供する(例えば、注釈が物理的環境内の位置に対応することを示す)。改良された視覚的フィードバックをユーザに提供することにより、(例えば、ユーザが異なるユーザによる注釈が空間内の同じ位置に関連して表示される注釈セッションにおいて協調することを可能にすることによって)デバイスの操作性を高め、ユーザデバイスインターフェースを更に効率的にし、加えて、ユーザがデバイスを更に素早くかつ効率的に使用することを可能にすることによってデバイスの電力使用を削減し、バッテリ寿命を改善する。
いくつかの実施形態では、第1のプロンプトを表示した後、第1のデバイスおよび第2のデバイスの接続基準が満たされているとの判定に従って(例えば、第1のデバイスおよび第2のデバイスの移動の後、および第1および第2のカメラセットの視野内にキャプチャされた物理空間の分析後)、デバイスは、第2のデバイスとの共有注釈セッションが確立された第1のカメラセットの視野の表現において、通知(例えば、示される第2のデバイスのアバターによるポップアップまたはバナー通知、または共有注釈セッションに提供されたコントロールの外観)を表示する(1214)。例えば、図8Fに関して説明したように、通知8034は、第2のデバイス100-2との共有注釈セッションが確立されたことを示すために、第1のデバイス100-1によって表示される。いくつかの実施形態では、第1のデバイスは、第1のデバイスが現在、第2のデバイスによって作成された注釈を表示しているというインジケーションを表示する(例えば、第2のデバイスによって作成された注釈は、第1のデバイスにおける第1のデバイスの視野の表現に示されるときに、第2のデバイスのアバターと同時に表示される)。いくつかの実施形態では、第1のデバイスは、現在、第1のデバイスによって作成された注釈(例えば、第2のデバイスにおいて第2のデバイスの視野の表現に同時に示される第1のデバイスによって作成された注釈)が第2のデバイスに表示されているというインジケーションを表示する。共有注釈セッションが確立されたという通知を表示することは、ユーザに視覚的フィードバックを提供する(例えば、共有注釈セッションを確立するためにデバイスの近接性が十分であることを示す)。改良された視覚的フィードバックをユーザへ提供することは、(例えば、ユーザが通知を受信するまでプロンプトの命令に従うことを継続し、通知の受信に応じてプロンプトの命令に従うことを停止することを可能にすることによって)デバイスの操作性を高め、ユーザデバイスインターフェースをより効率的にし、更に、ユーザがデバイスをより迅速かつ効率的に使用できるようにすることによって、電力使用量を低減し、デバイスのバッテリ寿命を改善する。
いくつかの実施形態では、第1のプロンプトは、(例えば、図8D~図8Eに関して説明したように)互いに向かって移動する第1および第2のデバイスの表現を示すアニメーションを含む(1216)。第1のプロンプトを表示した後で、第1のデバイスおよび第2のデバイスの接続基準が満たされているとの判定に従って(例えば、第1のデバイスおよび第2のデバイスの移動の後に、および第1および第2のカメラセットの視野内にキャプチャされた物理空間の分析後に)、デバイスは、第1のカメラセットの視野の表現で第1のプロンプトの表示(1218)を置き換える。例えば、図8F~図8Gに関して説明したように、第1のデバイス100-1および第2のデバイス100-2の接続基準が満たされているとの判定に従って、第1のカメラセットの視野の表現(例えば、物理ポスター8038aの表現8038bを含む)が第1のデバイス100-1によって表示される。いくつかの実施形態では、第1および第2のデバイスが一緒に移動して、それらの視野間の重なりが閾値を超えるようにするとき、第1および第2のデバイスの両方のアニメーション表示されたプロンプトは、それらの対応する視野(この時点で実質的に同一である)と同時に置き換えられる。第1のデバイスおよび第2のデバイスの接続基準が満たされているとの判定に従って、プロンプトの表示を第1のデバイスのカメラのビューの表現で置き換えることにより、ユーザに視覚的フィードバックを提供する(例えば、デバイス近接が共有注釈セッションを確立するのに十分であることを示す)。改良された視覚的フィードバックをユーザに提供することにより、デバイスの操作性を向上させ、(例えば、ユーザが、カメラビューが表示されるまでプロンプトの命令に従うことを継続し、カメラビューが表示されるときにプロンプトの命令に従うのを停止することを可能にすることによって)ユーザデバイスインターフェースをより効率的にし、加えて、ユーザがデバイスをより迅速かつ効率的に使用できるようにすることによって、電力使用量を削減し、デバイスのバッテリ寿命を改善する。
いくつかの実施形態では、共有注釈セッション中に、第1の表示生成要素を介して、第1のカメラセットの視野の表現を表示している間に、第1のカメラセットの視野内でキャプチャされた物理的環境の一部分に向けられた第1の注釈入力が第2のデバイスから受信されたとの判定に従って、デバイスは、第1の注釈入力が向けられた位置に対応する第1のカメラセットの視野の表現内の位置に、第2のデバイスのアバターを表示する(1220)。例えば、図8H~図8Jに関して説明したように、接触8044による注釈入力が受信されると、第2のデバイス100-2に対応するアバター8048は、第1のデバイス100-1によって表示される。いくつかの実施形態では、注釈入力の結果は、リアルタイムで(例えば、マークが第2のデバイスのユーザによってAR環境内で描かれ、および/またはドラッグされるとき)、第1のカメラセットの視野の表現で反映される。第1のディスプレイにより、第1の注釈入力の位置に対応する位置に第2のデバイスのアバターを表示することは、ユーザに視覚的フィードバックを提供する(例えば、表示された注釈入力が第2のデバイスを介して提供されていることを示す)。改良された視覚的フィードバックをユーザへ提供することは、(例えば、ユーザが第2のデバイスによる注釈と第1のデバイスによる注釈とを区別し、それによって注釈入力の競合を回避することを支援することによって)デバイスの操作性を高め、ユーザデバイスインターフェースをより効率的にし、更に、ユーザがデバイスをより迅速かつ効率的に使用できるようにすることによって、電力使用量を低減し、デバイスのバッテリ寿命を改善する。
いくつかの実施形態では、共有注釈セッション中に、第1の表示生成要素を介して、第1のカメラセットの視野の表現を表示している間に、デバイスは、第2のデバイスの現在の位置に対応する位置(および任意選択的に、視点)を有する第1のカメラセットの視野の表現に仮想オブジェクト(例えば、第2のデバイスとリンクされた2次元仮想オブジェクトまたは3次元仮想オブジェクト(例えば、仮想バスケットボールリング、第2のデバイスまたは第2のユーザのアバター))を表示し(1222)、これは、物理的環境内で第2のデバイスを第1の位置から第2の位置に移動する際に、第1の位置と第2の位置が第1のカメラセットの視野内にある場合(例えば、第2のデバイスは、第1のカメラセットの視野内の第1のカメラセットによってキャプチャされ、物理的環境内の第1の位置から第2の位置への第2のデバイスの移動中にキャプチャされ、第1のカメラセットの視野の表現上で可視である)、第1の位置から物理的環境内の第2の位置への第2のデバイスの移動を検出することと、物理的環境における第1の位置から第2の位置への第2のデバイスの移動に対応する第1のカメラセットの視野の表現における仮想オブジェクトの移動(および任意選択的に、仮想オブジェクトの視点の変化)を表示することとを含む。例えば、図8V~図8Wに関して説明したように、第1のデバイス100-1は、第2のデバイス100-2の現在の位置に対応する仮想バスケットボールリング8074を表示し、第2のデバイス100-2が移動すると、仮想バスケットボールリング8074の表示された位置が移動する。第1のディスプレイによって、第2のデバイスの移動に対応する第1のデバイスカメラのビューにおける仮想オブジェクトの移動を表示することは、ユーザに視覚的フィードバックを提供する(例えば、仮想オブジェクトが第2のデバイスに対応することを示す)。改良された視覚的フィードバックをユーザへ提供することは、(例えば、ユーザが第2のデバイスによる注釈と第1のデバイスによる注釈とを区別し、それによって注釈の誤りを回避することを支援することによって)デバイスの操作性を高め、ユーザデバイスインターフェースをより効率的にし、更に、ユーザがデバイスをより迅速かつ効率的に使用できるようにすることによって、電力使用量を低減し、デバイスのバッテリ寿命を改善する。
いくつかの実施形態では、共有注釈セッション中に、第1のデバイスは、第1の表示生成要素を介して第1のカメラセットの視野の表現を表示し(1224)、第2のデバイスは、第2の表示生成要素を介して第1のカメラセットの視野の表現を表示する(例えば、同じ視野が第1および第2のデバイスの両方に提示されるように、第1のカメラセットの視野は、第2のデバイスに提供される(例えば、直接またはサーバを介して))。いくつかの実施形態では、第2のデバイスは、第2のカメラセットとは異なる視野を有するが、第1のカメラセットの視野を表示しているときに、第2のカメラセットから視野を表示しない。第1のディスプレイおよび第2のディスプレイによって、第1のデバイスカメラの視野を表示することにより、ユーザに視覚的フィードバックを提供する(例えば、表示されたビューが共有ビューであることを示す)。改良された視覚的フィードバックをユーザへ提供することは、(例えば、第2のデバイスが第1のデバイスの視点を体験することを可能にすることによって、)デバイスの操作性を高め、ユーザデバイスインターフェースをより効率的にする。これは、更に、ユーザがデバイスをより迅速かつ効率的に使用できるようにすることによって、電力使用量を低減し、デバイスのバッテリ寿命を改善する。
いくつかの実施形態では、共有注釈セッション中に、第1のデバイスは、第1の表示生成要素を介して第1のカメラセットの視野の表現を表示し(1226)、第2のデバイスは、第2の表示生成要素を介して第2のカメラセットの視野の表現を表示する(例えば、デバイスが異なる位置にあり、および/または物理的環境内で異なる方向に向いている場合、異なる視野が第1および第2のデバイスに提示される)。第1のディスプレイに第1のデバイスカメラの視野を表示し、第2のディスプレイにおける第2のデバイスカメラの視野を表示することは、ユーザに視覚的フィードバックを提供する(例えば、表示されたビューが共有ビューではないことを示す)。改良された視覚的フィードバックをユーザに提供することにより、デバイスの操作性を向上させ、(例えば、第1および第2のデバイスが、物理世界に対して個々の参照ポイントを維持することを可能にすることによって)ユーザデバイスインターフェースをより効率的にし、加えて、ユーザがデバイスをより迅速かつ効率的に使用できるようにすることによって、電力使用量を削減し、デバイスのバッテリ寿命を改善する。
いくつかの実施形態では、共有注釈セッション中に、接続基準がもはや満たされないとの判定に従って(例えば、第1のデバイスおよび第2のデバイスの互いから離れる移動の後に、第1および第2のカメラセットの視野内にキャプチャされた物理空間の分析後に)、デバイスは、共有注釈セッションを終了する(1228)。例えば、図8Pに関して説明したように、共有注釈セッション中に、閾値量を超えて第1のデバイス100-1が第2のデバイス100-2から離れて移動した場合、共有注釈セッションが終了する。いくつかの実施形態では、接続基準がもはや満たされていないことを検出する前に、第1および第2のカメラセット内にキャプチャされた物理的環境の部分間の重複量が閾値量に減少したとの判定に従って、第1および第2のデバイスのそれぞれにおいて、重複が閾値時間量内で増加しない場合、共有注釈セッションが終了することを示す警告通知が生成される。いくつかの実施形態では、アフォーダンスは、第1のデバイスにおける第1のカメラセットの視野の表現と同時に表示され、この表示は、呼び出されると、第1のデバイスに共有注釈セッションを終了させる。いくつかの実施形態では、第1のカメラセットの視野が、注釈が設けられた物理的環境の部分を含む場合であっても、第2のデバイスによって提供される注釈が、第1のデバイスにおける第1のカメラセットの視野の表現内に表示されなくなる。接続基準が満たされていないとの判定に従って、共有注釈セッションを終了することは、ユーザへの視覚的フィードバックを提供する(例えば、共有注釈セッションを補強するためにカメラの移動が必要であることを示す)。改良された視覚的フィードバックをユーザへ提供することは、(例えば、ユーザがデバイスを素早く正確に移動させて共有注釈セッションを有効にすることを可能にすることによって)デバイスの操作性を高め、ユーザデバイスインターフェースをより効率的にする。これは、更に、ユーザがデバイスをより迅速かつ効率的に使用できるようにすることによって、電力使用量を低減し、デバイスのバッテリ寿命を改善する。
いくつかの実施形態では、共有注釈セッション中に、第1のカメラセットの視野と第2のカメラセットの視野との間の重複量(またはより一般的には、第1のカメラセットの視野内にキャプチャされた物理的環境の部分と、第2のカメラセットの視野内にキャプチャされた物理的環境の部分との間)が第1の閾値量未満である(例えば、第1のデバイスおよび第2のデバイスの互いから離れる移動の後に)であるとの判定に従って、デバイスは、第1の表示生成要素を介して、第1のデバイスを第2のデバイスに向かって移動させる第2のプロンプトを生成する(1230)。例えば、図8Pに関して説明したように、共有注釈セッション中に第1のデバイス100-1の第2のデバイス100-2から離れる方向への移動は、第1のデバイス100-1を第2のデバイス100-2に向かって移動させる命令を含むプロンプト8060を表示させる。第1のカメラのビューが第2のカメラのビューから少なくとも閾値量だけ重ならないとの判定に従って、第1のデバイスを第2のデバイスに向かって移動させるプロンプトを表示することは、ユーザに視覚的フィードバックを提供する(例えば、共有注釈セッションを見るためにカメラの移動が必要であることを示す)。改良された視覚的フィードバックをユーザへ提供することは、(例えば、ユーザがデバイスを素早く正確に移動させて共有注釈セッションを有効にすることを可能にすることによって)デバイスの操作性を高め、ユーザデバイスインターフェースをより効率的にする。これは、更に、ユーザがデバイスをより迅速かつ効率的に使用できるようにすることによって、電力使用量を低減し、デバイスのバッテリ寿命を改善する。
いくつかの実施形態では、共有注釈セッション中に、第1のカメラセットの視野と第2のカメラセットの視野との間の重複量(またはより一般的には、第1のカメラセットの視野内にキャプチャされた物理的環境の部分と、第2のカメラセットの視野内にキャプチャされた物理的環境の部分との間)が第1の閾値量未満である(例えば、第1のデバイスおよび第2のデバイスの互いから離れる移動の後に)との判定に従って、デバイスは、第1の表示生成要素を介して、第1のデバイスと第2のデバイスとの間の現在の相対的な空間的関係のインジケーションを表示する(1232)(例えば、第2のプロンプトと同時に表示されて、第1のデバイスを第2のデバイスに向かって移動させるように同時に表示される、第1のカメラセットの視野の表現の縁部上の動的に移動する視覚的インジケータ)。第1のカメラのビューが第2のカメラのビューから少なくとも閾値量だけ重ならないとの判定に従って、第1のデバイスと第2のデバイスとの間の現在の空間的関係のインジケーションを表示することは、ユーザに視覚的フィードバックを提供する(例えば、共有注釈セッションを見るためにカメラの移動が必要であることを示す)。改良された視覚的フィードバックをユーザへ提供することは、(例えば、ユーザがデバイスを素早く正確に移動させて共有注釈セッションを有効にすることを可能にすることによって)デバイスの操作性を高め、ユーザデバイスインターフェースをより効率的にする。これは、更に、ユーザがデバイスをより迅速かつ効率的に使用できるようにすることによって、電力使用量を低減し、デバイスのバッテリ寿命を改善する。
図12A~12Dにおける動作について説明された特定の順序は単なる例であり、説明された順序は、動作を実行することができる唯一の順序であることを示すことを意図するものではないことを理解されたい。当業者であれば、本明細書に記載される動作を再順序付けるための様々な方法を認識するであろう。更に、本明細書に記載された他の方法(例えば、方法900、1000、および1100)に関して本明細書に記載されている他のプロセスの詳細は、図12A~図12Dに関して上述した方法1200に類似した方法でも適用可能であることに留意されたい。例えば、方法1200を参照して上記した接触、入力、注釈、物理オブジェクト、ユーザインターフェース領域、視野、移動、および/またはアニメーションは、任意選択的に、本明細書に記載される他の方法(例えば、方法900、1000、および1100)を参照して本明細書に記載した接触、入力、注釈、物理オブジェクト、ユーザインターフェース領域、視野、移動、および/またはアニメーションの特徴のうちの1つ以上を有する。簡潔にするために、それらの詳細はここでは繰り返さない。
上記は、説明を目的として、特定の実施形態を参照して記述されている。しかしながら、上記の例示的な論考は、網羅的であること、または開示される厳密な形態に本発明を限定することを意図するものではない。上記の教示を考慮して、多くの修正および変形が可能である。本発明の原理およびその実際的な応用を最良の形で説明し、それによって他の当業者が、想到される特定の用途に適した様々な変更で本発明および様々な記載された実施形態を最良の形で使用することを有効化するために、これらの実施形態を選択し記載した。