以下の説明は、例示的な方法、パラメータなどについて記載する。しかし、そのような説明は、本開示の範囲に対する限定として意図されるものではなく、代わりに例示的な実施形態の説明として提供されると認識されたい。
特定の瞬間の視覚的表現を単に保存するためだけでなく、アバター及び/又は画像データを使用するための効率的な方法及びインタフェースを提供する電子デバイスが必要とされていている。以下に説明する技術のうちのいくつかの実施形態を使用することにより、アバター及び/又は画像データを用いて、電子デバイス及び他のユーザとのユーザ対話を拡張することができる。そのような技術は、他のユーザと通信し、彼らの電子デバイスと対話するためにアバター及び/又は画像データを使用しているユーザの認識的負担を軽減し、それによって生産性を向上させることができる。更に、そのような技法は、普通なら冗長なユーザ入力で無駄になるプロセッサ及び電池の電力を低減させることができる。
以下、図1A〜図1B、図2、図3、図4A〜図4B、及び図5A〜図5Bにより、以下に記載される、ユーザ対話を拡張するために画像データを使用する技術を実行するための例示的なデバイスの説明を提供する。
図6A〜図6Jは、アバターを有するメッセージに対するユーザステータス情報を通信するための例示的なユーザインタフェースを示す。図7A〜図7Bは、いくつかの実施形態に係る、アバターを有するメッセージに対するユーザステータス情報を通信するための方法を示すフロー図である。図6A〜図6Gにおけるユーザインタフェースは、図7A〜図7Bにおけるプロセスを含む、以下において説明されるプロセスを例示するために用いられる。
図9A〜図9Lは、3Dモデルを構築するデータをキャプチャするための例示的なユーザインタフェースを示す。図10A〜図10Bは、いくつかの実施形態に係る、3Dモデルを構築するデータをキャプチャするための方法を示すフロー図である。図9A〜図9Lにおけるユーザインタフェースは、図10A〜図10Bにおけるプロセスを含む、以下において説明されるプロセスを例示するために用いられる。
図12A〜図12Jは、ユーザに基づいてデータ及びアプリケーションへのアクセスを制限するための例示的なユーザインタフェースを示す。図13A〜図13Bは、いくつかの実施形態に係る、ユーザに基づいてデータ及びアプリケーションへのアクセスを制限するための方法を示すフロー図である。図12A〜図12Jにおけるユーザインタフェースは、図13A〜図13Bにおけるプロセスを含む、以下において説明されるプロセスを例示するために用いられる。
以下の説明では、様々な要素について説明するために、「第1の」、「第2の」などの用語を使用するが、これらの要素は、それらの用語によって限定されるべきではない。これらの用語は、ある要素を別の要素と区別するためにのみ使用される。例えば、記載する様々な実施形態の範囲から逸脱することなく、第1のタッチを第2のタッチと呼ぶこともでき、同様に第2のタッチを第1のタッチと呼ぶこともできる。第1のタッチ及び第2のタッチはどちらもタッチであるが、これらは同じタッチではない。
本明細書において記載する様々な実施形態の説明で使用される術語は、特定の実施形態について説明することのみを目的とし、限定的であることが意図されるものではない。記載する様々な実施形態の説明及び添付の特許請求の範囲内では、単数形の「a」、「an」、及び「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機能及び/又は音楽プレーヤ機能などの他の機能も含む、携帯電話などのポータブル通信デバイスである。ポータブル多機能デバイスの例示的な実施形態としては、カリフォルニア州クパチーノの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上の接触の強度を検出する1つ以上の接触強度センサ165(例えば、デバイス100のタッチ感知ディスプレイシステム112などのタッチ感知面)を含む。デバイス100は、任意選択的に、デバイス100上で触知出力を生成する(例えばデバイス100のタッチ感知ディスプレイシステム112又はデバイス300のタッチパッド355などのタッチ感知面上で触知出力を生成する)1つ以上の触知出力生成器167を含む。これらの構成要素は、任意選択的に、1つ以上の通信バス又は信号ライン103を介して通信する。
本明細書及び特許請求の範囲では、タッチ感知面上の接触の「強度」という用語は、タッチ感知面上の接触(例えば、指の接触)の力若しくは圧力(単位面積当たりの力)、又はタッチ感知面上の接触の力若しくは圧力に対する代理(プロキシ)を指す。接触の強度は、少なくとも4つの別個の値を含み、より典型的には、数百の(例えば、少なくとも256の)別個の値を含む、値の範囲を有する。接触の強度は、任意選択的に、様々な手法、及び様々なセンサ又はセンサの組合せを使用して、特定(又は測定)される。例えば、タッチ感知面の下又はそれに隣接する1つ以上の力センサは、任意選択的に、タッチ感知面上の様々なポイントにおける力を測定するために使用される。いくつかの実装形態では、複数の力センサからの力測定値は、接触の推定される力を判定するために組み合わされる(例えば、加重平均)。同様に、スタイラスの感圧性先端部は、任意選択的に、タッチ感知面上のスタイラスの圧力を特定するために使用される。あるいは、タッチ感知面上で検出される接触領域のサイズ及び/若しくはその変化、接触に近接するタッチ感知面の電気容量及び/若しくはその変化、並びに/又は、接触に近接するタッチ感知面の抵抗及び/若しくはその変化は、任意選択的に、タッチ感知面上の接触の力又は圧力の代替物として使用される。いくつかの実装形態では、接触の力又は圧力のための代替測定値は、強度閾値を超えているかどうかを判定するために直接使用される(例えば、強度閾値は、代替測定値に対応する単位で記述される)。いくつかの実装形態では、接触力又は圧力に対する代理測定は、推定される力又は圧力に変換され、推定される力又は圧力は、強度閾値を超過したかどうかを判定するために使用される(例えば、強度閾値は、圧力の単位で測定される圧力閾値である)。接触の強度をユーザ入力の属性として使用することにより、アフォーダンスを(例えば、タッチ感知ディスプレイ上に)表示するための、及び/又は、ユーザ入力を(例えば、タッチ感知ディスプレイ、タッチ感知面、又は、ノブ若しくはボタンなどの物理的/機械的制御部を介して)受信するための面積が制限されている、低減されたサイズのデバイス上で、通常であればユーザによってアクセスすることが不可能であり得る追加的なデバイス機能への、ユーザのアクセスが可能となる。
本明細書及び特許請求の範囲で使用されるように、用語「触知出力」は、ユーザの触覚でユーザによって検出されることになる、デバイスの従前の位置に対するそのデバイスの物理的変位、デバイスの構成要素(例えば、タッチ感知面)の、そのデバイスの別の構成要素(例えば、筐体)に対する物理的変位、又は、デバイスの質量中心に対する構成要素の変位を指す。例えば、デバイス又はデバイスの構成要素が、タッチに敏感なユーザの表面(例えば、ユーザの手の指、手のひら、又は他の部分)に接触している状況では、物理的変位によって生成された触知出力は、そのデバイス又はデバイスの構成要素の物理的特性の認識される変化に相当する触感として、ユーザによって解釈されることになる。例えば、タッチ感知面(例えば、タッチ感知ディスプレイ又はトラックパッド)の移動は、ユーザによって、物理アクチュエータボタンの「ダウンクリック」又は「アップクリック」として、任意選択的に解釈される。いくつかの場合、ユーザの動作により物理的に押された(例えば、変位された)タッチ感知面に関連付けられた物理アクチュエータボタンの移動がない時でさえ、ユーザは「ダウンクリック」又は「アップクリック」などの触感を感じる。別の実施例として、タッチ感知面の移動は、タッチ感知面の平滑度に変化がない場合であっても、ユーザによって、そのタッチ感知面の「粗さ」として、任意選択的に解釈又は感知される。そのようなユーザによるタッチの解釈は、ユーザの個人的な感覚認知に左右されるが、大多数のユーザに共通する、多くのタッチの感覚認知が存在する。したがって、触知出力が、ユーザの特定の感覚認知(例えば、「アップクリック」「ダウンクリック」、「粗さ」)に対応するものと記述される場合、別途記載のない限り、生成された触知出力は、典型的な(又は、平均的な)ユーザの記述された感覚認知を生成するデバイス、又はデバイスの構成要素の物理的変位に対応する。
デバイス100は、ポータブル多機能デバイスの一実施例に過ぎず、デバイス100は、任意選択的に、示されているものよりも多くの構成要素又は少ない構成要素を有するものであり、任意選択的に、2つ以上の構成要素を組合せるものであり、又は、任意選択的に、それらの構成要素の異なる構成若しくは配置を有するものであることを理解されたい。図1Aに示す様々な構成要素は、1つ以上の信号処理回路及び/又は特定用途向け集積回路を含む、ハードウェア、ソフトウェア、又はハードウェアとソフトウェアの両方の組合せで実施される。
メモリ102は、任意選択的に、高速ランダムアクセスメモリを含み、また任意選択的に、1つ以上の磁気ディスク記憶デバイス、フラッシュメモリデバイス、又は他の不揮発性ソリッドステートメモリデバイスなどの不揮発性メモリを含む。メモリコントローラ122は、任意選択的に、デバイス100の他の構成要素によるメモリ102へのアクセスを制御する。
周辺機器インタフェース118は、デバイスの入力及び出力周辺機器をCPU120及びメモリ102に結合するために使用することができる。1つ以上のプロセッサ120は、メモリ102に記憶された様々なソフトウェアプログラム及び/又は命令セットを動作させる、又は実行して、デバイス100のための様々な機能を実行し、データを処理する。いくつかの実施形態では、周辺機器インタフェース118、CPU120、及びメモリコントローラ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)などの無線ネットワークなどのネットワークと、また他のデバイスと、無線通信によって通信する。RF回路108は、任意選択的に、短距離通信無線機などによって近距離通信(near field communication、NFC)フィールドを検出するよく知られている回路を含む。無線通信は、任意選択的に、それだけに限定されるものではないが、動き通信用のグローバルシステム(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)、近距離通信(NFC)、広帯域符号分割多元接続(wideband code division multiple access、W−CDMA)、符号分割多元接続(code division multiple access、CDMA)、時分割多元接続(time division multiple access、TDMA)、Bluetooth(登録商標)、Bluetoothローエネルギー(Bluetooth Low Energy、BTLE(登録商標))、ワイヤレスフィデリティ(Wireless Fidelity、Wi−Fi(登録商標))(例えば、IEEE 802.11a、IEEE 802.11b、IEEE 802.11g、IEEE 802.11n、及び/若しくはIEEE 802.11ac)、ボイスオーバインターネットプロトコル(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はまた、ヘッドセットジャック(例えば、図2の212)を含む。ヘッドセットジャックは、オーディオ回路110と、出力専用ヘッドホン又は出力(例えば片耳又は両耳用のヘッドホン)及び入力(例えばマイクロフォン)の両方を有するヘッドセットなどの着脱可能なオーディオ入出力周辺機器との間のインタフェースを提供する。
I/Oサブシステム106は、タッチスクリーン112及び他の入力コントロールデバイス116などのデバイス100上の入出力周辺機器を、周辺機器インタフェース118に結合する。I/Oサブシステム106は、任意選択的に、ディスプレイコントローラ156、光センサコントローラ158、強度センサコントローラ159、触覚フィードバックコントローラ161、及び他の入力若しくは制御デバイスのための1つ以上の入力コントローラ160を含む。1つ以上の入力コントローラ160は、他の入力コントロールデバイス116からの電気信号の受信/他の入力コントロールデバイス116への電気信号の送信を行う。他の入力コントロールデバイス116は、任意選択的に、物理ボタン(例えば、プッシュボタン、ロッカボタンなど)、ダイアル、スライダスイッチ、ジョイスティック、クリックホイールなどを含む。いくつかの代替実施形態では、入力コントローラ160は、任意選択的に、キーボード、赤外線ポート、USBポート、及びマウスなどのポインタデバイスのうちのいずれかに結合される(又はいずれにも結合されない)。1つ以上のボタン(例えば、図2の208)は、任意選択的に、スピーカ111及び/又はマイクロフォン113の音量コントロールのための上下ボタンを含む。1つ以上のボタンは、任意選択的に、プッシュボタン(例えば、図2の206)を含む。
全体として参照により本明細書に組み込まれている、2005年12月23日出願の米国特許出願第11/322,549号、「Unlocking a Device by Performing Gestures on an Unlock Image」、米国特許第7,657,849号に記載されているように、プッシュボタンの素早い押下は、任意選択的に、タッチスクリーン112のロックを係合解除し、又は任意選択的に、タッチスクリーン上のジェスチャを使用してデバイスをアンロックするプロセスを開始する。プッシュボタン(例えば、206)のより長い押下は、任意選択的に、デバイス100への電力をオン又はオフにする。ボタンのうちの1つ以上の機能性は、任意選択的に、ユーザによってカスタマイズ可能である。タッチスクリーン112は、仮想又はソフトボタン及び1つ以上のソフトキーボードを実施するために使用される。
タッチ感知ディスプレイ112は、デバイスとユーザとの間の入力インタフェース及び出力インタフェースを提供する。ディスプレイコントローラ156は、タッチスクリーン112からの電気信号の受信及び/又はタッチスクリーン112への電気信号の送信を行う。タッチスクリーン112は、ユーザに対して視覚出力を表示する。この視覚出力は、グラフィック、テキスト、アイコン、ビデオ、及びそれらの任意の組み合わせ(総称して「グラフィック」)を任意選択的に含む。いくつかの実施形態では、視覚出力の一部又は全ては、任意選択的に、ユーザインタフェースオブジェクトに対応する。
タッチスクリーン112は、触覚及び/又は触知接触に基づいてユーザからの入力を受け付けるタッチ感知面、センサ、又はセンサのセットを有する。タッチスクリーン112及びディスプレイコントローラ156は(あらゆる関連モジュール及び/又はメモリ102内の命令セットとともに)、タッチスクリーン112上の接触(及び接触のあらゆる動き又は中断)を検出し、検出した接触を、タッチスクリーン112上に表示されるユーザインタフェースオブジェクトとの対話(例えば、1つ以上のソフトキー、アイコン、ウェブページ、又は画像)に変換する。例示的な実施形態では、タッチスクリーン112とユーザとの間の接触点は、ユーザの指に対応する。
タッチスクリーン112は、任意選択的に、LCD(液晶ディスプレイ)技術、LPD(発光ポリマーディスプレイ)技術、又はLED(発光ダイオード)技術を使用するが、他の実施形態では、他のディスプレイ技術も使用される。タッチスクリーン112及びディスプレイコントローラ156は、任意選択的に、それだけに限定されるものではないが、容量性、抵抗性、赤外線、及び表面音波の技術、並びにタッチスクリーン112との1つ以上の接触点を判定する他の近接センサアレイ又は他の要素を含む、現在知られている又は今後開発される複数のタッチ感知技術のうちのいずれかを使用して、接触及びそのあらゆる動き又は中断を検出する。例示的な実施形態では、カリフォルニア州クパチーノのApple Inc.からのiPhone(登録商標)及びiPod Touch(登録商標)に見られるものなどの、投影型相互静電容量感知技術が使用される。
タッチスクリーン112のいくつかの実施形態におけるタッチ感知ディスプレイは、任意選択的に、それぞれ全体として参照により本明細書に組み込まれている、米国特許第6,323,846号(Westermanら)、第6,570,557号(Westermanら)、及び/若しくは第6,677,932号(Westerman)、並びに/又は米国特許公報第2002/0015024A1号という米国特許に記載されているマルチタッチ感知タッチパッドに類似している。しかし、タッチスクリーン112はデバイス100からの視覚出力を表示するのに対して、タッチ感知タッチパッドは視覚出力を提供しない。
タッチスクリーン112のいくつかの実施形態におけるタッチ感知ディスプレイは、(1)2006年5月2日出願の米国特許出願第11/381,313号、「Multipoint Touch Surface Controller」、(2)2004年5月6日出願の米国特許出願第10/840,862号、「Multipoint Touchscreen」、(3)2004年7月30日出願の米国特許出願第10/903,964号、「Gestures For Touch Sensitive Input Devices」、(4)2005年1月31日出願の米国特許出願第11/048,264号、「Gestures For Touch Sensitive Input Devices」、(5)2005年1月18日出願の米国特許出願第11/038,590号、「Mode−Based Graphical User Interfaces For Touch Sensitive Input Devices」、(6)2005年9月16日出願の米国特許出願第11/228,758号、「Virtual Input Device Placement On A Touch Screen User Interface」、(7)2005年9月16日出願の米国特許出願第11/228,700号、「Operation Of A Computer With A Touch Screen Interface」、(8)2005年9月16日出願の米国特許出願第11/228,737号、「Activating Virtual Keys Of A Touch−Screen Virtual Keyboard」、及び(9)2006年3月3日出願の米国特許出願第11/367,749号、「Multi−Functional Hand−Held Device」という出願に記載されている。これらの出願は全て、全体として参照により本明細書に組み込まれている。
タッチスクリーン112は、任意選択的に、100dpiを超えるビデオ解像度を有する。いくつかの実施形態では、タッチスクリーンは、約160dpiのビデオ解像度を有する。ユーザは、任意選択的に、スタイラス、指などの任意の適したオブジェクト又は付属物を使用して、タッチスクリーン112に接触する。いくつかの実施形態では、ユーザインタフェースは、指ベースの接触及びジェスチャを主に扱うように設計されるが、これは、タッチスクリーン上の指の接触面積がより大きいため、スタイラスベースの入力ほど精密でない可能性がある。いくつかの実施形態では、デバイスは、指に基づく粗い入力を、ユーザによって所望されているアクションを実行するための、正確なポインタ/カーソルの位置又はコマンドに変換する。
いくつかの実施形態では、タッチスクリーンに加えて、デバイス100は、任意選択的に、特定の機能をアクティブ化又は非アクティブ化するためのタッチパッド(図示せず)を含む。いくつかの実施形態では、タッチパッドは、タッチスクリーンとは異なり、視覚出力を表示しない、デバイスのタッチ感知エリアである。タッチパッドは、任意選択的に、タッチスクリーン112又はタッチスクリーンによって形成されるタッチ感知面の拡張部とは別個のタッチ感知面である。
デバイス100は、また、様々な構成要素に電力を供給する電力システム162を含む。電力システム162は、任意選択的に、電力管理システム、1つ以上の電源(例えば、バッテリ、交流(AC))、再充電システム、停電検出回路、電力コンバータ又はインバータ、電力状態インジケータ(例えば、発光ダイオード(LED))、並びにポータブルデバイス内での電力の生成、管理、及び分配に関連付けられた任意の他の構成要素を含む。
また、デバイス100は、任意選択的に、1つ以上の光センサ164を含む。図1Aは、I/Oサブシステム106内の光センサコントローラ158に結合された光センサを示す。光センサ164は、任意選択的に、電荷結合デバイス(charge-coupled device、CCD)又は相補的金属酸化物半導体(complementary metal-oxide semiconductor、CMOS)フォトトランジスタを含む。光センサ164は、1つ以上のレンズを通って投影された環境からの光を受信し、その光を、画像を表すデータに変換する。光センサ164は、撮像モジュール143(カメラモジュールとも呼ばれる)と連動して、任意選択的に、静止画像又はビデオをキャプチャする。いくつかの実施形態では、光センサは、デバイスの前面にあるタッチスクリーンディスプレイ112とは反対に、デバイス100の裏面に位置し、したがってタッチスクリーンディスプレイは、静止画像及び/又はビデオ画像の取得のためのビューファインダとして使用することが有効である。いくつかの実施形態では、光センサは、デバイスの前面には位置し、したがってユーザの画像が、任意選択的に、テレビ会議のために入手され、ユーザは、他のテレビ会議参加者をタッチスクリーンディスプレイ上で視る。いくつかの実施形態では、光センサ164の位置は、ユーザによって(例えば、デバイスハウジング内でレンズ及びセンサを回転させることによって)変更することができ、したがって単一の光センサ164が、タッチスクリーンディスプレイとともに、テレビ会議にも静止画像及び/又はビデオ画像の取得にも使用される。
また、デバイス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に結合される。近接センサ166は、任意選択的に、全体として参照により本明細書に組み込まれている、米国特許出願第11/241,839号、「Proximity Detector In Handheld Device」、第11/240,788号、「Proximity Detector In Handheld Device」第11/620,702号、「Using Ambient Light Sensor To Augment Proximity Sensor Output」、第11/586,862号、「Automated Response To And Sensing Of User Activity In Portable Devices」、及び同第11/638,251号、「Methods And Systems For Automatic Configuration Of Peripherals」で説明されるように機能するものであり、これらの出願は、全体が参照により本明細書に組み込まれる。いくつかの実施形態では、近接センサは、多機能デバイスがユーザの耳付近に配置されたとき(例えば、ユーザが電話をかけているとき)、タッチスクリーン112をオフにして無効化する。
また、デバイス100は、任意選択的に、1つ以上の触知出力生成器167を含む。図1Aは、I/Oサブシステム106内の触覚フィードバックコントローラ161に結合された触知出力生成器を示す。触知出力生成器167は、任意選択的に、スピーカ若しくは他のオーディオ構成要素などの1つ以上の電気音響デバイス、及び/又はモータ、ソレノイド、電気活性ポリマー、圧電アクチュエータ、静電アクチュエータ、若しくは他の触知出力生成構成要素(例えば、デバイス上で電気信号を触知出力に変換する構成要素)などのエネルギーを直線の動きに変換する電気機械デバイスを含む。接触強度センサ165は、触覚フィードバックモジュール133から触知フィードバック生成命令を受信し、デバイス100のユーザが感知することが可能な触知出力をデバイス100上に生成する。いくつかの実施形態では、少なくとも1つの触知出力生成器は、タッチ感知面(例えば、タッチ感知ディスプレイシステム112)に配置されているか、又はそれに近接しており、任意選択的に、タッチ感知面を垂直方向(例えば、デバイス100の表面の内/外)に、又は水平方向(例えば、デバイス100の表面と同じ平面内の前後)に動かすことによって、触知出力を生成する。いくつかの実施形態では、少なくとも1つの触知出力生成器センサは、デバイス100の前面に位置するタッチスクリーンディスプレイ112とは反対に、デバイス100の裏面に位置する。
また、デバイス100は、任意選択的に、1つ以上の加速度計168を含む。図1Aは、周辺機器インタフェース118に結合された加速度計168を示す。代わりに、加速度計168は、任意選択的に、I/Oサブシステム106内の入力コントローラ160に結合される。加速度計168は、任意選択的に、どちらも全体として参照により本明細書に組み込まれている、米国特許公開第20050190059号、「Acceleration−based Theft Detection System for Portable Electronic Devices」、及び米国特許公開第20060017692号、「Methods And Apparatuses For Operating A Portable Device Based On An Accelerometer」に記載されているように機能する。いくつかの実施形態では、情報は、1つ以上の加速度計から受信したデータの分析に基づいて、ポートレートビュー又はランドスケープビューでタッチスクリーンディスプレイ上に表示される。デバイス100は任意選択で、加速度計(単数又は複数)168に加えて、磁気計(図示せず)並びにデバイス100の位置及び向き(例えば、縦向き又は横向き)に関する情報を取得するためのGPS(又はGLONASS又は他のグローバルナビゲーションシステム)受信機(図示せず)を含む。
いくつかの実施形態では、メモリ102内に記憶されているソフトウェア構成要素は、オペレーティングシステム126、通信モジュール(又は命令セット)128、接触/動きモジュール(又は命令セット)130、グラフィックモジュール(又は命令セット)132、テキスト入力モジュール(又は命令セット)134、全地球測位システム(Global Positioning System、GPS)モジュール(又は命令セット)135、及びアプリケーション(又は命令セット)136を含む。更に、いくつかの実施形態では、図1A及び図3に示されるように、メモリ102(図1A)又はメモリ370(図3)は、デバイス/グローバル内部状態157を記憶する。デバイス/グローバル内部状態157は、現在アクティブ状態のアプリケーションがある場合に、どのアプリケーションがアクティブであるかを示す、アクティブアプリケーション状態、どのアプリケーション、ビュー、又は他の情報がタッチスクリーンディスプレイ112の様々な領域を占有しているかを示すディスプレイ状態、デバイスの様々なセンサ及び入力コントロールデバイス116から入手した情報を含むセンサ状態、並びにデバイスの場所及び/又は姿勢に関する場所情報のうちの1つ以上を含む。
オペレーティングシステム126(例えば、Darwin(登録商標)、RTXC(登録商標)、LINUX(登録商標)、UNIX(登録商標)、OS X(登録商標)、iOS(登録商標)、WINDOWS(登録商標)、又はVxWorks(登録商標)などの組み込み型オペレーティングシステム)は、通常のシステムタスク(例えば、メモリ管理、記憶デバイスの制御、電力管理など)を制御及び管理する様々なソフトウェア構成要素及び/又はドライバを含み、様々なハードウェアとソフトウェア構成要素との間の通信を容易にする。
通信モジュール128は、1つ以上の外部ポート124を介して他のデバイスとの通信を容易にし、RF回路108及び/又は外部ポート124が受信したデータを処理するための様々なソフトウェア構成要素をも含む。外部ポート124(例えばユニバーサルシリアルバス(Universal Serial Bus、USB)、FIREWIRE(登録商標)など)は、直接的に、又はネットワーク(例えばインターネット、無線LANなど)を介して間接的に、他のデバイスに連結するように適合されている。いくつかの実施形態では、外部ポートは、iPod(登録商標)(Apple Inc.の商標)デバイス上で使用される30ピンコネクタと同じ若しくは類似であり、かつ/又はそれに適合しているマルチピン(例えば、30ピン)コネクタである。
接触/動きモジュール130は、任意選択的に、タッチスクリーン112(ディスプレイコントローラ156と連動して)及び他のタッチ感知デバイス(例えば、タッチパッド又は物理クリックホイール)との接触を検出する。接触/動きモジュール130は、接触が生じたか否かを判定すること(例えば、指を下ろすイベントを検出すること)、接触の強度(例えば、接触の力若しくは圧力、又は接触の力若しくは圧力の代替物)を判定すること、接触の移動が存在するか否かを判定し、タッチ感知面を横断する移動を追跡すること(例えば、指をドラッグする1つ以上のイベントを検出すること)、及び接触が停止したか否かを判定すること(例えば、指を上げるイベント又は接触の中断を検出すること)などの、接触の検出に関する様々な動作を実行するための、様々なソフトウェア構成要素を含む。接触/動きモジュール130は、タッチ感知面から接触データを受信する。一連の接触データによって表される、接触点の移動を判定することは、任意選択的に、接触点の速さ(大きさ)、速度(大きさ及び方向)、及び/又は加速度(大きさ及び/又は方向の変化)を判定することを含む。これらの動作は、任意選択的に、単一の接触(例えば、1本の指の接触)又は複数の同時接触(例えば、「マルチタッチ」/複数の指の接触)に適用される。いくつかの実施形態では、接触/動きモジュール130及びディスプレイコントローラ156は、タッチパッド上の接触を検出する。
いくつかの実施形態では、接触/動きモジュール130は、1つ以上の強度閾値のセットを使用して、ユーザによって操作が実行されたかどうかを判定する(例えば、ユーザがアイコン上で「クリック」したかどうかを判定する)。いくつかの実施形態では、強度閾値の少なくとも1つのサブセットが、ソフトウェアパラメータに従って判定される(例えば、強度閾値は、特定の物理アクチュエータのアクティブ化閾値によって判定されるのではなく、デバイス100の物理ハードウェアを変化させることなく調整することができる)。例えば、トラックパッド又はタッチスクリーンディスプレイのマウス「クリック」閾値は、トラックパッド又はタッチスクリーンディスプレイハードウェアを変化させることなく、広範囲の所定の閾値のうちのいずれかに設定することができる。加えて、いくつかの実装形態では、デバイスのユーザは、強度閾値のセットの1つ以上を調整するソフトウェア設定が提供される(例えば、システムレベルのクリック「強度」パラメータによって、個々の強度閾値を調整すること、及び/又は複数の強度閾値を一度に調整することによる)。
接触/動きモジュール130は、任意選択的に、ユーザによるジェスチャ入力を検出する。タッチ感知面上の異なるジェスチャは、異なる接触パターンを有する(例えば検出される接触の動き、タイミング、及び/又は強度が異なる)。したがって、ジェスチャは、任意選択的に、特定の接触パターンを検出することによって検出される。例えば、指タップジェスチャを検出することは、指ダウンイベントを検出し、それに続いて指ダウンイベントと同じ位置(又は実質上同じ位置)(例えば、アイコンの位置)で指アップ(リフトオフ)イベントを検出することを含む。別の例として、タッチ感知面上で指スワイプジェスチャを検出することは、指ダウンイベントを検出し、それに続いて1つ以上の指ドラッグイベントを検出し、その後それに続いて指アップ(リフトオフ)イベントを検出することを含む。
グラフィックモジュール132は、表示されるグラフィックの視覚的な影響(例えば、輝度、透明度、彩度、コントラスト、又は他の視覚的特性)を変化させる構成要素を含めて、タッチスクリーン112又は他のディスプレイ上にグラフィックをレンダリング及び表示する様々な知られているソフトウェア構成要素を含む。本明細書では、「グラフィック」という用語は、それだけに限定されるものではないが、文字、ウェブページ、アイコン(ソフトキーを含むユーザインタフェースオブジェクトなど)、デジタル画像、ビデオ、アニメーションなどを含む、ユーザに表示することができる任意のオブジェクトを含む。
いくつかの実施形態では、グラフィックモジュール132は、使用されるグラフィックを表すデータを記憶する。各グラフィックには、任意選択的に、対応するコードが割り当てられる。グラフィックモジュール132は、アプリケーションなどから、必要に応じて、座標データ及び他のグラフィック特性データと共に、表示されることとなるグラフィックを指定する1つ以上のコードを受信し、次にディスプレイコントローラ156に出力するスクリーンの画像データを生成する。
触覚フィードバックモジュール133は、デバイス100とのユーザ対話に応じて、デバイス100上の1つ以上の場所で触知出力を生成するために、触知出力生成器(単数又は複数)167によって使用される命令を生成するための、様々なソフトウェア構成要素を含む。
テキスト入力モジュール134は、任意選択で、グラフィックモジュール132の構成要素であり、様々なアプリケーション(例えば、連絡先137、電子メール140、IM141、ブラウザ147、及びテキスト入力を必要とする任意の他のアプリケーション)でテキストを入力するためのソフトキーボードを提供する。
GPSモジュール135は、デバイスの位置を判定し、この情報を様々なアプリケーションで使用するために(例えば、位置に基づくダイアル発呼で使用するために電話138へ、写真/ビデオのメタデータとしてカメラ143へ、並びに、気象ウィジェット、地域のイエローページウィジェット、及び地図/ナビゲーションウィジェットなどの、位置に基づくサービスを提供するアプリケーションへ)提供する。
アプリケーション136は、任意選択的に、以下のモジュール(又は命令セット)又はそれらのサブセット若しくはスーパーセットを含む。
●連絡先モジュール137(アドレス帳又は連絡先リストと呼ばれることもある)、
●電話モジュール138、
●テレビ会議モジュール139、
●電子メールクライアントモジュール140、
●インスタントメッセージング(Instant messaging、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は、任意選択的に、アドレス帳に氏名を追加すること、アドレス帳から名前(単数又は複数)を削除すること、電話番号(単数又は複数)、電子メールアドレス(単数又は複数)、住所(単数又は複数)、又は他の情報を名前に関連付けること、画像を名前に関連付けること、名前を分類して並べ替えること、電話番号又は電子メールアドレスを提供して、電話138、テレビ会議モジュール139、電子メール140、又はIM141による通信を開始及び/又は促進することなどを含めて、アドレス帳又は連絡先リスト(例えば、メモリ102又はメモリ370内の連絡先モジュール137のアプリケーション内部状態192内に記憶される)を管理するために使用される。
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、若しくはIMPSを使用する)、インスタントメッセージの受信、及び受信したインスタントメッセージの閲覧のための実行可能な命令を含む。いくつかの実施形態では、送信及び/又は受信されるインスタントメッセージは、任意選択的に、MMS及び/又は拡張メッセージングサービス(Enhanced Messaging Service、EMS)で対応されるグラフィック、写真、オーディオファイル、ビデオファイル、及び/又は他の添付ファイルを含む。本明細書では、「インスタントメッセージング」とは、電話通信ベースのメッセージ(例えば、SMS又はMMSを使用して送信されるメッセージ)と、インターネットベースのメッセージ(例えば、XMPP、SIMPLE、又はIMPSを使用して送信されるメッセージ)との両方を指す。
RF回路108、タッチスクリーン112、ディスプレイコントローラ156、接触/動きモジュール130、グラフィックモジュール132、テキスト入力モジュール134、GPSモジュール135、地図モジュール154、及び音楽プレーヤモジュールと連動して、トレーニングサポートモジュール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(拡張可能マークアップ言語)ファイル及びJavaScript(登録商標)ファイル(例えば、Yahoo!ウィジェット)を含む。
RF回路108、タッチスクリーン112、ディスプレイコントローラ156、接触/動きモジュール130、グラフィックモジュール132、テキスト入力モジュール134、及びブラウザモジュール147と連動して、ウィジェットクリエータモジュール150は、任意選択的に、ウィジェットを作成するために(例えば、ウェブページのユーザ指定部分をウィジェットにする)、ユーザによって使用される。
タッチスクリーン112、ディスプレイコントローラ156、接触/動きモジュール130、グラフィックモジュール132、及びテキスト入力モジュール134と連動して、検索モジュール151は、ユーザ命令に従って1つ以上の検索基準(例えば、1つ以上のユーザ指定検索語)に一致するメモリ102内の文字、音楽、サウンド、画像、ビデオ、及び/又は他のファイルを検索する実行可能な命令を含む。
タッチスクリーン112、ディスプレイコントローラ156、接触/動きモジュール130、グラフィックモジュール132、オーディオ回路110、スピーカ111、RF回路108、及びブラウザモジュール147と連動して、ビデオ及び音楽プレーヤモジュール152は、ユーザがMP3若しくはAACファイルなどの1つ以上のファイル形式で記憶されている記録された音楽及び他のサウンドファイルをダウンロード及び再生することを可能にする実行可能な命令、並びにビデオを表示、提示、又は他の方法で(例えば、タッチスクリーン112上又は外部ポート124を介して接続された外部ディスプレイ上に)再生する実行可能な命令を含む。いくつかの実施形態では、デバイス100は、任意選択的に、iPod(Apple社の商標)などのMP3プレーヤの機能を含む。
タッチスクリーン112、ディスプレイコントローラ156、接触/動きモジュール130、グラフィックモジュール132、及びテキスト入力モジュール134と連動して、メモモジュール153は、ユーザ命令に従ってメモ、トゥドゥリストなどを作成及び管理する実行可能な命令を含む。
RF回路108、タッチスクリーン112、ディスプレイコントローラ156、接触/動きモジュール130、グラフィックモジュール132、テキスト入力モジュール134、GPSモジュール135、及びブラウザモジュール147と連動して、地図モジュール154は、任意選択的に、ユーザ命令に従って、地図及び地図に関連付けられたデータ(例えば、運転方向、特定の場所又はその付近店舗及び他の対象地点に関するデータ、並びに他の場所ベースのデータ)を受信、表示、修正、及び記憶するために使用される。
タッチスクリーン112、ディスプレイコントローラ156、接触/動きモジュール130、グラフィックモジュール132、オーディオ回路110、スピーカ111、RF回路108、テキスト入力モジュール134、電子メールクライアントモジュール140、及びブラウザモジュール147と連動して、オンラインビデオモジュール155は、ユーザが特定のオンラインビデオへのアクセス、特定のオンラインビデオのブラウジング、受信(例えば、ストリーミング及び/又はダウンロードによる)、再生(例えば、タッチスクリーン上又は外部ポート124を介して接続された外部ディスプレイ上)、特定のオンラインビデオへのリンクを有する電子メールの送信、並びにH.264などの1つ以上のファイル形式のオンラインビデオの他の管理を行うことを可能にする命令を含む。いくつかの実施形態では、特定のオンラインビデオへのリンクを送信するために、電子メールクライアントモジュール140ではなく、インスタントメッセージングモジュール141が使用される。オンラインビデオアプリケーションについての追加の説明は、内容が全体として参照により本明細書に組み込まれている、2007年6月20日出願の米国仮特許出願第60/936,562号、「Portable Multifunction Device,Method,and Graphical User Interface for Playing Online Videos」、及び2007年12月31日出願の米国特許出願第11/968,067号、「Portable Multifunction Device,Method,and Graphical User Interface for Playing Online Videos」に見ることができる。
上記で特定したモジュール及びアプリケーションはそれぞれ、上述した1つ以上の機能及び本出願に記載する方法(例えば、本明細書に記載するコンピュータ実施方法及び他の情報処理方法)を実行する実行可能な命令セットに対応する。これらのモジュール(例えば、命令セット)は、別個のソフトウェアプログラム、手順、又はモジュールとして実施する必要はなく、したがって様々な実施形態では、これらのモジュールの様々なサブセットは、任意選択的に、組み合わされ、又は他の形で再構成される。例えば、ビデオプレーヤモジュールは、任意選択的に、音楽プレーヤモジュールと組み合わされて、単一のモジュール(例えば、図1Aのビデオ及び音楽プレーヤモジュール152)にされる。いくつかの実施形態では、メモリ102は、任意選択的に、上記で特定したモジュール及びデータ構造のサブセットを記憶する。更に、メモリ102は、上記で説明されていない追加のモジュール及びデータ構造を任意選択的に記憶する。
いくつかの実施形態では、デバイス100は、そのデバイスにおける所定の機能のセットの動作がタッチスクリーン及び/又はタッチパッドのみを通じて実行されるデバイスである。デバイス100が動作するための主要な入力制御デバイスとしてタッチスクリーン及び/又はタッチパッドを使用することにより、任意選択的に、デバイス100上の物理的な入力制御デバイス(プッシュボタン、ダイアルなど)の数が削減される。
タッチスクリーン及び/又はタッチパッドを通じてのみ実行される所定の機能のセットは、任意選択的に、ユーザインタフェース間のナビゲーションを含む。いくつかの実施形態では、タッチパッドは、ユーザによってタッチされたときに、デバイス100上に表示される任意のユーザインタフェースから、メインメニュー、ホームメニュー、又はルートメニューにデバイス100をナビゲートする。このような実施形態では、「メニューボタン」は、タッチパッドを使用して実装される。いくつかの他の実施形態では、メニューボタンは、タッチパッドではなく、物理プッシュボタン又はその他の物理入力制御デバイスである。
図1Bは、いくつかの実施形態に係るイベント処理のための例示的な構成要素を示すブロック図である。いくつかの実施形態では、メモリ102(図1A)又は370(図3)は、イベントソート部170(例えば、オペレーティングシステム126内)と、それぞれのアプリケーション136−1(例えば、前述のアプリケーション137〜151、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は、サブイベントを処理すべき階層内の最下位のビューとして、ヒットビューを特定する。ほとんどの状況では、ヒットビューは、開始サブイベント(例えば、イベント又は潜在的イベントを形成するサブイベントシーケンス内の第1のサブイベント)が行われる最も低いレベルのビューである。ヒットビューがヒットビュー判定モジュール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は、任意選択的に、データ更新部176、オブジェクト更新部177、又はGUI更新部178を利用し又は呼び出して、アプリケーション内部状態192を更新する。別法として、アプリケーションビュー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は、どのユーザインタフェースオブジェクトがサブイベントに関連付けられているかを判定するヒットテストを実行する。例えば、タッチ感知ディスプレイ112上に、3つのユーザインタフェースオブジェクトが表示されているアプリケーションビューでは、タッチ感知ディスプレイ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で使用される電話番号を更新し、又はビデオプレーヤモジュールで使用されるビデオファイルを記憶する。いくつかの実施形態では、オブジェクト更新部177は、アプリケーション136−1で使用されるオブジェクトを作成及び更新する。例えば、オブジェクト更新部177は、新たなユーザインタフェースオブジェクトを作成するか、又はユーザインタフェースオブジェクトの位置を更新する。GUI更新部178は、GUIを更新する。例えば、GUI更新部178は、表示情報を準備し、タッチ感知ディスプレイ上に表示するために表示情報をグラフィックモジュール132に送る。
いくつかの実施形態では、イベント処理部(単数又は複数)190は、データ更新部176、オブジェクト更新部177、及びGUI更新部178を含むか又はそれらへのアクセスを有する。いくつかの実施形態では、データ更新部176、オブジェクト更新部177、及びGUI更新部178は、それぞれのアプリケーション136−1又はアプリケーションビュー191の単一モジュールに含まれる。他の実施形態では、それらは、2つ以上のソフトウェアモジュールに含まれる。
タッチ感知ディスプレイ上のユーザタッチのイベント処理に関する上記の議論は、入力デバイスを有する多機能デバイス100を動作させるためのユーザ入力の他の形態にも当てはまり、それらのユーザ入力は、必ずしも全てがタッチスクリーン上で開始されるとは限らないことが理解されよう。例えば、キーボードの単一又は複数の押圧若しくは保持と任意選択的に連携される、マウスの移動及びマウスボタンの押圧、タッチパッド上のタップ、ドラッグ、スクロールなどの接触動き、ペンスタイラス入力、デバイスの移動、口頭による命令、検出された眼球運動、バイオメトリック入力、並びに/又はそれらの任意の組合せを、任意選択的に、認識するイベントを定義するサブイベントに対応する入力として利用する。
図2は、いくつかの実施形態に係るタッチスクリーン112を有するポータブル多機能デバイス100を示す。タッチスクリーンは、任意選択的に、ユーザインタフェース(user interface、UI)200内に1つ以上のグラフィックを表示する。本実施形態、並びに以下で説明される他の実施形態では、ユーザは、例えば、1本以上の指202(図には正確な縮尺では描かれていない)又は1つ以上のスタイラス203(図には正確な縮尺では描かれていない)を使用して、グラフィック上でジェスチャを実施することによって、それらのグラフィックのうちの1つ以上を選択することが可能となる。いくつかの実施形態では、1つ以上のグラフィックの選択は、ユーザが、その1つ以上のグラフィックとの接触を中断する場合に実施される。いくつかの実施形態では、ジェスチャは、任意選択的に、1つ以上のタップ、1つ以上のスワイプ(左から右、右から左、上向き、及び/若しくは下向き)、並びに/又はデバイス100と接触した指のロール(右から左、左から右、上向き、及び/若しくは下向き)を含む。いくつかの実装形態又は状況では、グラフィックとの不測の接触は、そのグラフィックを選択するものではない。例えば、選択に対応するジェスチャがタップである場合、アプリケーションアイコンの上をスイープするスワイプジェスチャは、任意選択的に、対応するアプリケーションを選択するものではない。
デバイス100はまた、任意選択的に、「ホーム」ボタン又はメニューボタン204などの1つ以上の物理ボタンを含む。前述したように、メニューボタン204は、任意選択的に、任意選択的にデバイス100上で実行されるアプリケーションのセット内の任意のアプリケーション136へナビゲートするために使用される。別法として、いくつかの実施形態では、メニューボタンは、タッチスクリーン112上に表示されるGUI内のソフトキーとして実施される。
いくつかの実施形態では、デバイス100は、タッチスクリーン112、メニューボタン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を含み、ディスプレイ340は、典型的には、タッチスクリーンディスプレイである。I/Oインタフェース330はまた、任意選択的に、キーボード及び/又はマウス(若しくは他のポインティングデバイス)350と、タッチパッド355と、デバイス300上に触知出力を生成する触知出力生成器357(例えば、図1Aを参照して上述した触知出力生成器167に類似している)と、センサ359(例えば、図1Aを参照して上述した接触強度センサ165に類似している光、加速度、近接、タッチ感知、及び/又は接触強度センサ)とを含む。メモリ370は、DRAM、SRAM、DDR RAM、又は他のランダムアクセスソリッドステートメモリデバイスなどの高速ランダムアクセスメモリを含み、任意選択的に、1つ以上の磁気ディスク記憶デバイス、光ディスク記憶デバイス、フラッシュメモリデバイス、又は他の不揮発性ソリッドステート記憶デバイスなどの不揮発性メモリを含む。メモリ370は、CPU310からリモートに位置する1つ以上の記憶デバイスを任意選択的に含む。いくつかの実施形態では、メモリ370は、ポータブル多機能デバイス100(図1A)のメモリ102内に記憶されているプログラム、モジュール、及びデータ構造に類似したプログラム、モジュール、及びデータ構造、又はそのサブセットを記憶する。更に、メモリ370は任意選択で、ポータブル多機能デバイス100のメモリ102に存在しない追加のプログラム、モジュール、及びデータ構造を記憶する。例えば、デバイス300のメモリ370は、任意選択的に、描画モジュール380、プレゼンテーションモジュール382、ワードプロセッシングモジュール384、ウェブサイト作成モジュール386、ディスクオーサリングモジュール388、及び/又はスプレッドシートモジュール390を記憶するのに対して、ポータブル多機能デバイス100(図1A)のメモリ102は、任意選択的に、これらのモジュールを記憶しない。
図3の上記で特定した要素はそれぞれ、任意選択的に、前述したメモリデバイスのうちの1つ以上の中に記憶される。上記で特定したモジュールはそれぞれ、上述した機能を実行する命令セットに対応する。上記で特定したモジュール又はプログラム(例えば、命令セット)は、別個のソフトウェアプログラム、手順、又はモジュールとして実施する必要はなく、したがって様々な実施形態では、これらのモジュールの様々なサブセットは、任意選択的に、組み合わされ、又は他の形で再構成される。いくつかの実施形態では、メモリ370は、任意選択的に、上記で特定したモジュール及びデータ構造のサブセットを記憶する。更に、メモリ370は、上記で説明されていない追加のモジュール及びデータ構造を任意選択的に記憶する。
次に、任意選択的に例えばポータブル多機能デバイス100上で実施されるユーザインタフェースの実施形態に注意を向ける。
図4Aは、いくつかの実施形態に係るポータブル多機能デバイス100上のアプリケーションのメニューに対する例示的なユーザインタフェースを示す。同様のユーザインタフェースは、デバイス300上に任意選択的に実装される。いくつかの実施形態では、ユーザインタフェース400は、以下の要素、又はそれらのサブセット若しくはスーパーセットを含む。
●セルラー信号及びWi−Fi信号などの無線通信(単数又は複数)のための信号強度インジケータ(単数又は複数)402、
●時刻404、
●Bluetooth(登録商標)インジケータ405、
●バッテリ状態インジケータ406、
●以下のような、頻繁に使用されるアプリケーション用のアイコンを有するトレイ408、
○不在着信又はボイスメールメッセージの数のインジケータ414を任意選択的に含む、「電話」とラベル付けされる、電話モジュール138用のアイコン416、
○未読電子メールの数のインジケータ410を任意選択的に含む、「メール」とラベル付けされる、電子メールクライアントモジュール140用のアイコン418、
○「ブラウザ」とラベル付けされる、ブラウザモジュール147用のアイコン420、及び
○「iPod」とラベル付けされる、iPod(Apple Inc.の商標)モジュール152とも称されるビデオ及び音楽プレーヤモジュール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に示すアイコンラベルは、単なる例示であることに留意されたい。例えば、ビデオ及び音楽プレーヤモジュール152のためのアイコン422は、「音楽」又は「音楽プレーヤ」と表示される、他のラベルが、様々なアプリケーションアイコンのために、任意選択的に使用される。いくつかの実施形態では、それぞれのアプリケーションアイコンに関するラベルは、それぞれのアプリケーションアイコンに対応するアプリケーションの名前を含む。いくつかの実施形態では、特定のアプリケーションアイコンのラベルは、その特定のアプリケーションアイコンに対応するアプリケーションの名前とは異なる。
図4Bは、ディスプレイ450(例えば、タッチスクリーンディスプレイ112)とは別個のタッチ感知面451(例えば、図3のタブレット又はタッチパッド355)を有するデバイス(例えば、図3のデバイス300)上の例示的なユーザインタフェースを示す。デバイス300はまた、任意選択的に、タッチ感知面451上の接触の強度を検出する1つ以上の接触強度センサ(例えば、センサ359のうちの1つ以上)、及び/又はデバイス300のユーザに対する触知出力を生成する1つ以上の触知出力生成器357を含む。
以下の例のうちのいくつかは、タッチスクリーンディスプレイ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つ以上は、別の入力デバイスからの入力(例えば、マウスベースの入力又はスタイラス入力)に置き換えられることを理解されたい。例えば、スワイプジェスチャは、(例えば、接触の代わりの)マウスクリックに続けた、(例えば、接触の移動の代わりの)スワイプの経路に沿ったカーソルの移動によって、任意選択的に置き換えられる。別の例として、タップジェスチャは、任意選択的に、カーソルがタップジェスチャの位置の上に位置する間はマウスクリックと置き換えられる(例えば、接触を検出して、それに続いて接触の検出を停止する代わりに)。同様に、複数のユーザ入力が同時に検出されるとき、複数のコンピュータマウスが、任意選択的に、同時に使用され、又はマウス及び指の接触が、任意選択的に、同時に使用されることを理解されたい。
図5Aは、例示的なパーソナル電子デバイス500を示す。デバイス500は、本体502を含む。いくつかの実施形態では、デバイス500は、デバイス100及びデバイス300(例えば、図1A〜図4B)に関して説明された特徴のいくつか又は全てを含むことができる。いくつかの実施形態では、デバイス500は、タッチ感知ディスプレイスクリーン504、以下タッチスクリーン504を有する。タッチスクリーン504に対する別法又は追加として、デバイス500は、ディスプレイ及びタッチ感知面を有する。デバイス100及び300と同様に、いくつかの実施形態では、タッチスクリーン504(又はタッチ感知面)は、任意選択的に、加えられている接触(例えば、タッチ)の強度を検出する1つ以上の強度センサを含む。タッチスクリーン504(又はタッチ感知面)の1つ以上の強度センサは、タッチの強度を表す出力データを提供することができる。デバイス500のユーザインタフェースは、タッチの強度に基づいてタッチに応答することができ、これは、異なる強度のタッチが、デバイス500上で異なるユーザインタフェース動作を呼び出すことができることを意味する。
タッチ強度を検出及び処理する例示的な技法は、例えば、それぞれ全体として参照により本明細書に組み込まれている、国際特許第WO/2013/169849号として公開された、2013年5月8日出願の国際特許出願第PCT/US2013/040061号、「Device,Method,and Graphical User Interface for Displaying User Interface Objects Corresponding to an Application」、及び国際特許第WO/2014/105276号として公開された、2013年11月11日出願の国際特許出願第PCT/US2013/069483号、「Device,Method,and Graphical User Interface for Transitioning Between Touch Input to Display Output Relationships」という関連出願に見られる。
いくつかの実施形態では、デバイス500は、1つ以上の入力機構506及び508を有する。入力機構506及び508は、含まれる場合、物理的機構とすることができる。物理的入力機構の例としては、プッシュボタン及び回転可能機構が挙げられる。いくつかの実施形態では、デバイス500は、1つ以上のアタッチメント機構を有する。そのようなアタッチメント機構は、含まれる場合、例えば帽子、アイウェア、イアリング、ネックレス、シャツ、ジャケット、ブレスレット、腕時計のバンド、チェーン、ズボン、ベルト、靴、財布、バックパックなどにデバイス500を取り付けることを可能にすることができる。これらのアタッチメント機構は、ユーザがデバイス500を着用することを可能にする。
図5Bは、例示的なパーソナル電子デバイス500を示す。いくつかの実施形態では、デバイス500は、図1A、図1B、及び図3に関して説明された構成要素のいくつか又は全てを含み得る。デバイス500は、I/Oセクション514を1つ以上のコンピュータプロセッサ516及びメモリ518に動作可能に結合するバス512を有する。I/Oセクション514は、ディスプレイ504に接続することができ、ディスプレイ504は、タッチ感知構成要素522と、任意選択的に強度センサ524(例えば、接触強度センサ)とを有することができる。加えて、I/Oセクション514は、Wi−Fi、Bluetooth(登録商標)、近距離通信(NFC)、セルラー、及び/又は他の無線通信技法を使用してアプリケーション及びオペレーティングシステムデータを受信する通信ユニット530に接続することができる。デバイス500は、入力機構506及び/又は508を含むことができる。入力機構506は、任意選択的に、例えば回転可能入力デバイス又は押下可能及び回転可能入力デバイスである。いくつかの例では、入力機構508は、任意選択的にボタンである。
いくつかの例では、入力機構508は、任意選択的にマイクロフォンである。パーソナル電子デバイス500は、任意選択的に、GPSセンサ532、加速度計534、方向センサ540(例えば、コンパス)、ジャイロスコープ536、動きセンサ538、及び/又はこれらの組合せなどの様々なセンサを含み、これらのセンサは全て、I/Oセクション514に動作可能に接続することができる。
パーソナル電子デバイス500のメモリ518は、コンピュータ実行可能命令を記憶するための1つ以上の非一時的コンピュータ可読記憶媒体を含むことができ、それらの命令は、1つ以上のコンピュータプロセッサ516によって実行されると、例えば、コンピュータプロセッサに、プロセス700、1000、及びプロセス1300(図7、図10、及び図13)を含めた、以下に説明する技術を実行させることができる。パーソナル電子デバイス500は、図5Bの構成要素及び構成に限定されるものではなく、他の又は追加の構成要素を複数の構成で含むことができる。
本明細書で使用されるように、用語「アフォーダンス」は、任意選択的に、デバイス100、300、及び/又は500(図1、図3、及び図5)のディスプレイ画面上に表示されるユーザ対話式のグラフィカルユーザインタフェースオブジェクトを指す。例えば、画像(例えば、アイコン)、ボタン、及び文字(例えば、ハイパーリンク)はそれぞれ、意選択的に、アフォーダンスを構成する。
本明細書で使用される「フォーカスセレクタ」という用語は、ユーザが対話しているユーザインタフェースの現在の部分を示す入力要素を指す。カーソル又は他の場所マーカを含むいくつかの実装形態では、カーソルが「フォーカスセレクタ」として作用し、したがってカーソルが特定のユーザインタフェース要素(例えば、ボタン、ウィンドウ、スライダ、又は他のユーザインタフェース要素)の上に位置する間に、タッチ感知面(例えば、図3のタッチパッド355又は図4Bのタッチ感知面451)上で入力(例えば、押下入力)が検出されたとき、特定のユーザインタフェース要素が、検出された入力に従って調整される。タッチスクリーンディスプレイ上のユーザインタフェース要素との直接対話を有効化するタッチスクリーンディスプレイ(例えば、図1Aのタッチ感知ディスプレイシステム112又は図4Aのタッチスクリーン112)を含むいくつかの実装形態では、タッチスクリーン上の検出された接触が「フォーカスセレクタ」として作用し、したがってタッチスクリーンディスプレイ上の特定のユーザインタフェース要素(例えば、ボタン、ウィンドウ、スライダ、又は他のユーザインタフェース要素)の場所で入力(例えば、接触による押下入力)が検出されたとき、特定のユーザインタフェース要素が、検出された入力に従って調整される。いくつかの実装形態では、それに対応するタッチスクリーンディスプレイ上のカーソルの動き又は接触の動き(例えば、フォーカスを1つのボタンから別のボタンへ動かすためにタブキー又は矢印キーを使用することによる)なく、フォーカスがユーザインタフェースの1つの領域からユーザインタフェースの別の領域へ動かされる。これらの実装形態では、フォーカスセレクタは、ユーザインタフェースの種々の領域間でのフォーカスの移動に従って移動する。フォーカスセレクタがとる特有の形態にかかわらず、フォーカスセレクタは、概して、ユーザインタフェース要素(又はタッチスクリーンディスプレイ上の接触)であり、ユーザの意図する対話をユーザインタフェースによって通信するように、ユーザによって制御される(例えば、ユーザが対話することを意図しているユーザインタフェースの要素をデバイスに示すことによる)。例えば、タッチ感知面(例えば、タッチパッド又はタッチスクリーン)上で押圧入力が検出されている間の、対応のボタンの上のフォーカスセレクタ(例えば、カーソル、接触、又は選択ボックス)の位置は、その対応のボタンを(そのデバイスのディスプレイ上に示される他のユーザインタフェース要素ではなく)アクティブ化することをユーザが意図していることを示すものである。
本明細書及び特許請求の範囲で使用される、接触の「特性強度」という用語は、接触の1つ以上の強度に基づく、その接触の特性を指す。いくつかの実施形態では、特性強度は複数の強度サンプルに基づく。特性強度は、任意選択的に、既定の数の強度サンプル、すなわち、既定のイベント(例えば、接触を検出した後、接触のリフトオフを検出する前、接触の移動の開始を検出する前若しくは後、接触の終了を検出する前、接触の強度の増大を検出する前若しくは後、及び/又は、接触の強度の減少を検出する前若しくは後の)に関連する既定の時間期間(例えば、0.05、0.1、0.2、0.5、1、2、5、10秒)の間に収集された強度サンプルのセットに基づく。接触の特性強度は、任意選択的に、接触の強度の最大値、接触の強度の平均(mean)値、接触の強度の平均(average)値、接触の強度の上位10パーセンタイル値、接触の強度の最大の2分の1の値、接触の強度の最大の90パーセントの値などのうちの1つ以上に基づいている。いくつかの実施形態では、特性強度を特定する際に(例えば、特性強度が経時的な接触の強度の平均であるときに)、接触の持続期間が使用される。いくつかの実施形態では、特性強度は、ユーザによって操作が実行されたかどうかを判定するために、1つ以上の強度閾値のセットと比較される。例えば、1つ以上の強度閾値のセットは、任意選択的に、第1の強度閾値及び第2の強度閾値を含む。この例では、第1の閾値を超過しない特性強度を有する接触は、第1の動作をもたらし、第1の強度閾値を超過するが第2の強度閾値を超過しない特性強度を有する接触は、第2の動作をもたらし、第2の閾値を超過する特性強度を有する接触は、第3の動作をもたらす。いくつかの実施形態では、特性強度と1つ以上の閾値との間の比較は、第1の動作を実行するべきか、それとも第2の動作を実行するべきかを判定するために使用されるのではなく、1つ以上の動作を実行するべきか否か(例えば、それぞれの動作を実行するべきか、それともそれぞれの動作を実行するのを取り止めるべきか)を判定するために使用される。
いくつかの実施形態では、特性強度を特定する目的のために、ジェスチャの一部分が識別される。例えば、タッチ感知面は、任意選択的に、開始場所から遷移して終了場所に到達する連続するスワイプ接触を受信し、その時点で接触の強度が増大する。この例では、終了場所での接触の特性強度は、任意選択的に、スワイプ接触全体ではなく、連続するスワイプ接触の一部分のみ(例えば、スワイプ接触のうち終了場所の部分のみ)に基づいている。いくつかの実施形態では、任意選択的に、接触の特性強度を判定する前に、平滑化アルゴリズムがスワイプ接触の強度に適用される。例えば、平滑化アルゴリズムは、任意選択的に、非加重移動平均平滑化アルゴリズム、三角平滑化アルゴリズム、中央値フィルタ平滑化アルゴリズム、及び/又は指数平滑化アルゴリズムのうちの1つ以上を含む。いくつかの状況では、これらの平滑化アルゴリズムは、特性強度を特定する目的のために、スワイプ接触の強度の小幅な上昇又は降下を排除する。
タッチ感知面上の接触の強度は、任意選択的に、接触検出強度閾値、軽い押下の強度閾値、深い押下の強度閾値、及び/又は1つ以上の他の強度閾値などの1つ以上の強度閾値に対して特徴付けられる。いくつかの実施形態では、軽い押圧強度閾値は、通常、物理マウスのボタン又はトラックパッドをクリックすることに関連付けられた動作をデバイスが実行する強度に相当する。いくつかの実施形態では、深い押圧強度閾値は、通常、物理マウスのボタン又はトラックパッドをクリックすることに関連付けられた動作とは異なる動作をデバイスが実行する強度に相当する。いくつかの実施形態では、軽い押下の強度閾値を下回る(例えば、それを下回ると接触が検出されなくなる公称接触検出強度閾値を上回る)特性強度を有する接触が検出されたとき、デバイスは、軽い押下の強度閾値又は深い押下の強度閾値に関連付けられた動作を実行することなく、タッチ感知面上の接触の動きに従ってフォーカスセレクタを動かす。一般に、特に明記しない限り、これらの強度閾値は、ユーザインタフェース図の様々なセットの間で一貫性がある。
軽い押下の強度閾値を下回る強度から、軽い押下の強度閾値と深い押下の強度閾値との間の強度への、接触の特性強度の増大は、「軽い押下」の入力と呼ばれることがある。深い押下の強度閾値を下回る強度から、深い押下の強度閾値を上回る強度への、接触の特性強度の増大は、「深い押下」の入力と呼ばれることがある。接触検出強度閾値を下回る強度から、接触検出強度閾値と軽い押下の強度閾値との間の強度への、接触の特性強度の増大は、タッチ面上の接触の検出と呼ばれることがある。接触検出強度閾値を上回る強度から、接触検出強度閾値を下回る強度への、接触の特性強度の減少は、タッチ面からの接触のリフトオフの検出と呼ばれることがある。いくつかの実施形態では、接触検出強度閾値はゼロである。いくつかの実施形態では、接触検出強度閾値は、ゼロより大きい。
本明細書に記載するいくつかの実施形態では、それぞれの押下入力を含むジェスチャを検出したことに応じて、又はそれぞれの接触(若しくは複数の接触)によって実行されたそれぞれの押下入力を検出したことに応じて、1つ以上の動作が実行され、それぞれの押下入力は、押下入力強度閾値を上回る接触(又は複数の接触)の強度の増大を検出したことに少なくとも部分的に基づいて検出される。いくつかの実施形態では、それぞれの動作は、押下入力強度閾値を上回るそれぞれの接触の強度の増大(例えば、それぞれの押下入力の「ダウンストローク」)を検出したことに応じて実行される。いくつかの実施形態では、押下入力は、押下入力強度閾値を上回るそれぞれの接触の強度の増大、及びそれに続く押下入力強度閾値を下回る接触の強度の減少を含み、それぞれの動作は、それに続く押下入力閾値を下回るそれぞれの接触の強度の減少(例えば、それぞれの押下入力の「アップストローク」)を検出したことに応じて実行される。
いくつかの実施形態では、デバイスは、「ジッタ」と呼ばれる場合がある偶発的な入力を回避するために強度ヒステリシスを採用し、デバイスは、押圧入力強度閾値との既定の関係を有するヒステリシス強度閾値を定義又は選択する(例えば、ヒステリシス強度閾値は、押圧入力強度閾値よりも低いX強度単位であり、又はヒステリシス強度閾値は、押圧入力強度閾値の75%、90%、若しくは何らかの妥当な割合である)。したがって、いくつかの実施形態では、押下入力は、押下入力強度閾値を上回るそれぞれの接触の強度の増大、及びそれに続く押下入力強度閾値に対応するヒステリシス強度閾値を下回る接触の強度の減少を含み、それぞれの動作は、それに続くヒステリシス強度閾値を下回るそれぞれの接触の強度の減少(例えば、それぞれの押下入力の「アップストローク」)を検出したことに応じて実行される。同様に、いくつかの実施形態では、押圧入力は、デバイスが、ヒステリシス強度閾値以下の強度から押圧入力強度閾値以上の強度への接触の強度の増大、及び任意選択的に、その後のヒステリシス強度以下の強度への接触の強度の減少を検出するときにのみ検出され、それぞれの動作は、押圧入力(例えば、状況に応じて、接触の強度の増大又は接触の強度の減少)を検出したことに応答して実行される。
説明を容易にするために、押下入力強度閾値に関連付けられた押下入力、又は押下入力を含むジェスチャに応じて実行される動作の説明は、任意選択的に、押下入力強度閾値を上回る接触の強度の増大、ヒステリシス強度閾値を下回る強度から押下入力強度閾値を上回る強度への接触の強度の増大、押下入力強度閾値を下回る接触の強度の減少、及び/又は押下入力強度閾値に対応するヒステリシス強度閾値を下回る接触の強度の減少のいずれかを検出したことに応じてトリガされる。更に、押圧入力強度閾値を下回る接触の強度の減少を検出したことに応答して実行されるように動作が記載される例では、動作は、任意選択的に、押圧入力強度閾値に対応し、かつそれよりも低いヒステリシス強度閾値を下回る接触の強度の減少を検出したことに応答して実行される。
次に、ポータブル多機能デバイス100、デバイス300、又はデバイス500などの電子デバイス上で実施されるユーザインタフェース(「UI」)及び関連プロセスの実施形態に注意を向ける。
図6A〜図6Jは、いくつかの実施形態に係る、メッセージに対するユーザステータス情報を通信するための例示的なユーザインタフェースを示す。これらの図におけるユーザインタフェースは、図7A〜図7Bにおける処理を含む、以下において説明される処理を例示するために使用される。
図6Aは、いくつかの例では上述のデバイス100、デバイス300、又はデバイス500に対する特定のフォームファクタであるデバイス600を示す。デバイス600は、いくつかの実施形態ではタッチ感知ディスプレイであるディスプレイ601と、画像センサ602とを含む。加えて、デバイス600のいくつかの実施形態では、画像センサ602と共に、追加のセンサ(例えば、深度センサ、IRセンサなど)、及び/又は他の構成要素(例えば、フラッシュ又はIRエミッタ)が存在する。
図6Aでは、ディスプレイ601は、「Joe」という名前の別のユーザに対するメッセージングインタフェース603を表示している。メッセージングインタフェース603は、戻るボタン604、ユーザ名605、ユーザ写真606、及び連絡先情報ボタン607を含む。ユーザが戻るボタン604を選択したことに応じて、例えば、ディスプレイ601上の戻るボタン604上にタッチすることにより、メッセージングインタフェース603が、最近のメッセージが表示され、及び/又は通信するために他の連絡先が選択される、メインメッセージング画面に戻る。ユーザ名605及びユーザ写真606は、メッセージングインタフェース603が通信するように構成されている他のユーザを示す。ユーザ写真606は、例えば、他のユーザに対するアバター(例えば、絵文字、若しくは非写実的なグラフィック表現などの他のグラフィック表現)、他のユーザの写真、又は他の連絡先に関連付けられた何らかの他の画像である。ユーザが連絡先情報ボタン607を選択したことに応じて、他のユーザに関連付けられたオプション、設定、及び他のアクションにアクセス可能である。いくつかの例では、連絡先情報ボタン607により、ユーザが他の通信チャネルを使用して他のユーザとの通信を開始することを可能にするユーザインタフェースページを、デバイス600に開かせ、ユーザが特定の種類の情報(例えば、現在位置)を他のユーザに送信することを可能にし、ユーザが他のユーザに対する通信設定を変更することを可能にし、及び/又はユーザが他のユーザとの以前の通信に関する情報をレビューすることを可能にする。
メッセージングインタフェース603は、図6Aでは空であるメッセージ領域608と、メッセージ入力領域609とを含む。メッセージ入力領域は、写真ボタン610、描画ボタン611、ステッカー/絵文字ボタン612、テキスト入力フィールド613、及び音声認識ボタン614を含む。写真ボタン610により、ユーザが、他のユーザへのメッセージに含めるために既存の写真/ビデオを選択するか、又は新しい写真/ビデオをキャプチャするかいずれかを可能にする。描画ボタン611により、ユーザが、他のユーザへのメッセージに含めるためにスケッチを作成することを可能にする。ステッカー/絵文字ボタン612により、ユーザが、他のユーザへのメッセージに含めるためにステッカー及び/又は絵文字を選択することを可能にする。テキスト入力フィールド613により、ユーザが、他のユーザへのメッセージに含まれることになるテキストを入力することを可能にする。図6Aでは、テキスト入力フィールド613は、他のユーザに送信されることになるテキストメッセージの種類を示す単語「iMessage(登録商標)」を含む。音声認識ボタン614により、テキストを手動で入力する代わりにデバイス600に向かって話すことによって、ユーザが、テキスト入力フィールド613にテキストを入力することを可能にする。
図6Bに示すように、図6Aのタッチ615などのテキスト入力フィールド613を選択するユーザ入力に応じて、キーボード616がディスプレイ601上に表示される。加えて、テキスト入力フィールド613がディスプレイの上方に移動し、図6Aの写真ボタン610、描画ボタン611、及びステッカー/絵文字ボタン612を隠すことによって拡大する。ユーザが拡大ボタン617を選択した場合、これらのボタンは再表示される。加えて、いくつかの例では、カーソル(図示せず)がテキスト入力フィールド613の内部に表示される。
図6Cに示すように、キーボード616上の文字選択に応じて(例えば、文字「H」及び「I」上の、図6Bのタッチ618及び619などのキーボード616上のタッチをそれぞれ介して)、選択した文字を含めるようにテキスト入力フィールド613が更新される。加えて、音声認識ボタン614(図6B)が送信ボタン620に置き換えられ、送信ボタン620が、入力されたテキスト、及び画像データなどの他のデータを含む現在入力されているメッセージを他のユーザに送信する。
図6Dは、キーボード616上の追加のタッチを介した追加のテキスト入力後のメッセージングインタフェース603を示す。テキスト入力フィールド613は、追加の入力テキストを含む。
いったんユーザがテキスト入力フィールド613にテキストを入力し終えると、ユーザは、例えば、ディスプレイ601上のタッチ621を介して送信ボタン620を選択することによって、メッセージを送信する準備ができていることを示す。それに応じて、デバイス600は、図6Dの例では、テキスト入力フィールド613内のテキストを含むメッセージを用意する。いったんメッセージを送信する準備ができると、デバイス600は、メッセージを他のユーザ(図6A〜図6Fの例の場合では、「Joe」という名前の他のユーザ)に送信する。メッセージの一部として又は別個のデータ送信としてのいずれかで、デバイス600はまた、デバイス600のユーザのステータスデータ(例えば、デバイス600に現在関連付けられているユーザアカウントに関連付けられたステータスデータ)を他のユーザに送信する。いくつかの実施形態では、ユーザのステータスデータは、身体的状態(例えば、疲れた、病気、暑い、寒い、退屈)、又は感情的状態(例えば、幸せ、悲しい、心配、怒り)を表す。
ステータスデータは、任意の数のソースから取得することができる。一実施例では、ステータスデータは、ユーザにステータスのリストを提示し、ユーザ又はユーザが送信しているメッセージの内容を表すステータスのうちの1つをユーザが選択できるようにすることによって、取得される。換言すれば、ユーザが送信ボタン620を選択した後、デバイス600は、ユーザがテキスト入力フィールド613のテキストを含むコンテンツを有するメッセージと関連付けて送信することを選択できるステータスのリストでユーザを促す。別の例では、ステータスデータを取得するために、デバイス600はユーザに対するステータスデータを自動的に判定するように構成されている。いくつかの例では、デバイス600は、(例えば、メッセージングアプリケーションを介して)メッセージの内容に基づいて、1つ以上の画像センサ(例えば、図6Aの画像センサ602)を使用してユーザの画像データに基づいて、及び/又はデバイス600に利用可能な他のコンテキスト情報(例えば、カレンダーエントリ、天気、時間帯/年、場所など)に基づいて、ステータスデータを判定する。デバイス600は、画像センサ602、又はバイオメトリックセンサなどの他のセンサからのデータを使用して、顔の表情を識別するため、又はユーザステータスを判定するための生理学的データ(例えば、心拍数又は体温)を取得するために、顔認識を実行することができる。いくつかの例では、ユーザステータスは、ユーザにとって個人的なものであり、ユーザに関連するオブジェクト(例えば、電子デバイス)には関連付けられていない。いったんユーザステータスデータが判定されると、ユーザステータスデータはメッセージと関連付けられ、メッセージと共に(例えば、メッセージの一部として)、又はメッセージとは別個に(例えば、メッセージの送信前に、メッセージの送信後に、若しくはメッセージの送信と同時に)のいずれかで、他のユーザに送信される。
図6Eに示すように、メッセージを他のユーザに送信した後、テキスト入力フィールド613のテキストを含むメッセージの内容が、テキストボックス622に表示されているメッセージ領域608に表示される。テキストボックス622はまた、任意選択的に、メッセージの他の、非テキストコンテンツ(例えば、画像、アニメーション、ビデオなど)を含む。テキストボックス622を表示することに加えて、アバター623もまた、テキストボックス622に隣接して表示される(例えば、メッセージはアバターの口から出てきている)。いくつかの実施形態では、アバター623は、デバイス600のユーザを表す、以前に定義された(例えば、ベースラインの)アバター又はアバターモデル(例えば、ワイヤ、メッシュ、又は構造モデル)に基づいて生成される。加えて、アバター623は、テキストボックス622内のメッセージに関連付けられたユーザステータスデータに基づいている。例えば、テキストボックス622内のメッセージに対するユーザステータスデータは同情的であった。メッセージングアプリケーションは、笑顔のアバターがこのステータスデータに最も適していると判定した。したがって、アバター623は、笑顔と温かい表情を表すように生成された。いくつかの例では、生成されたアバターは、アクセサリ(例えば、雨中の傘、ビーチにいるときのサングラス、ハロウィーンのときの衣装、又は誰かにハッピーバースデーを祈るときの贈り物)を含むことができる。いくつかの例では、生成されたアバターはアニメーションアバターである。
図6Fは、メッセージ及び関連するステータスデータが「Joe」という名前の他のユーザから受信された(例えば、他のユーザ「Joe」に関連付けられた電子デバイスから受信された)後のメッセージングインタフェース603を示す。メッセージの内容は、メッセージ領域608のテキストボックス624内に表示される。加えて、関連付けられたアバター625が、テキストボックス624に隣接して表示される。アバター623と同様に、アバター625は、デバイス600のユーザの代わりに、以前に定義された(例えば、ベースライン)アバター又はアバターモデルが「Joe」用であることを除き、以前に定義されたアバター又はアバターモデルに基づく。以前に定義されたアバター又はアバターモデルは、任意選択的に、デバイス600のユーザによって設定されるか、又は他のユーザによって若しくはリモートサーバによって提供される。デバイス600は、任意選択的に、以前に定義されたアバター又はアバターモデルをローカルに記憶するか、又は必要に応じて以前に定義されたアバター若しくはアバターモデルを取り出す。デバイス600がJoeなどの別のユーザからメッセージを受信すると、デバイス600上のメッセージアプリケーションは、以前に定義されたアバター又はアバターモデルをロードし、それを修正又は使用して、受信メッセージに関連付けられたユーザステータスデータに基づいてアバターを生成する。上述のユーザステータスデータの送信と同様に、別のユーザから受信したメッセージに対するユーザステータスデータは、メッセージの一部として、又はメッセージとは別個に(例えば、メッセージの前、メッセージの後、若しくはメッセージと同時に)受信することができる。
他のユーザに対するユーザステータスデータは、任意選択的に、他のユーザのデバイス(例えば、「Joeの」デバイス)が判定を行うことを除いて、ユーザに関して上述したのと同様の方法で判定される。テキストボックス624に関連付けられたメッセージに対して、他のユーザのデバイスは、ユーザステータスが賛成で感謝していると判定した。
アバター623と同様に、アバター625はユーザステータスデータに基づいている。アバター625の場合では、メッセージングアプリケーションは、賛成で感謝しているユーザステータスデータに基づいて、笑顔とサムズアップを含むようにアバター625を生成した。加えて、アバター625は、アニメーションアバターである(矢印は、アバターの親指のアニメーション化された揺れを表す)。
いくつかの実施形態では、アバター625は、任意選択的にデバイス600上に保存され、他のユーザと関連付けられる。例えば、ユーザ写真606は、アバター625又はその後に連絡先に対して生成されたアバターに置き換えられる。他のユーザの情報が(例えば、他のアプリケーションに、又は連絡先リストに)表示されるときはいつでも、最も最近に受信された、他のユーザに対するユーザステータスデータを表すアバターが表示される。
図6Gは、デバイス600のユーザが入力し、「Joe」という名前の他のユーザに別のメッセージを送信した後の、メッセージングインタフェース603を示す。メッセージの内容は、メッセージ領域608のテキストボックス626内に表示される。加えて、アバター627は、テキストボックス626に隣接して表示され、テキストボックス626に関連付けられたメッセージが送信されたときのユーザのユーザステータスデータに基づいて生成される。この場合、デバイス600は、(例えば、メッセージングアプリケーションによってプログラムされたように)ユーザステータスが悲しいと判定した。このステータスに基づいて、アバター627は、アバター623と比較して悲しい表情を有するように生成された(例えば、目、眉、及び口は全て、悲しい表情を反映するように変更された)。アバター627は、アバター623と比較して新しいユーザステータスデータを反映しているが、アバター623は変更されないままである。換言すれば、デバイス600が更新されたユーザステータスデータを受信したにもかかわらず、アバター623は同じままである。そのような実施形態では、たとえステータスデータがその後更新されても、アバター623の不変のステータスは、ユーザのステータスの履歴記録として機能することができる。
いくつかの実施形態では、アバター623及び627は、新しいベースラインアバター又はアバターモデルに基づいて更新することができる。例えば、デバイス600のユーザが彼のあごひげを剃り、それに従ってベースラインアバター又はアバターモデルを更新する場合、アバター623及び627はそのあごひげを削除するように更新されるが、ユーザステータスデータに基づく表情及び他の特徴はそのままである(とはいえ、それらは新しいベースラインアバター又はアバターモデルに基づいて変更できる)。いくつかの実施形態では、アバター623及び627などの以前に生成されたアバターは、たとえベースラインアバター又はアバターモデルが更新されたときでも更新されない。
図6Gは、デバイス600のユーザが「Joe」という名前の他のユーザから別のメッセージを受信した後の、メッセージングインタフェース603を示す。メッセージの内容は、メッセージ領域608のテキストボックス628内に表示される。加えて、アバター629は、テキストボックス628に隣接して表示され、受信されテキストボックス628に表されるメッセージに関連付けられている他のユーザのユーザステータスデータに基づいて生成される。他のユーザが申し訳なさそうにしたことを示すユーザステータスデータに基づいて、関係のある表情を有するようにアバター629が生成された。アバター629は、アバター625と比較して他のユーザに対する新しいユーザステータスデータを反映しているが、アバター625は変更されないままである。図6Gに示すように、デバイス600が更新されたユーザステータスデータを受信したにもかかわらず、アバター625は同じままである。このように、特定のメッセージを設定したときにユーザのステータスを判定することは簡単である。この結果、ユーザがメッセージをより速く検索し理解することを可能にする、より効率的なインタフェースを提供することができる。
いくつかの実施形態では、アバター625及び629は、新しいベースラインアバター又はアバターモデルに基づいて更新することができる。例えば、他のユーザが眼鏡をかけ始め、それに従ってベースラインアバター又はアバターモデルを更新する場合、他のユーザが新しいベースラインアバター又はアバターモデルを送出し、アバター625及び629は眼鏡を追加するように更新されるが、ユーザステータスデータに基づく表情及び他の特徴はそのままである(とはいえ、それらは新しいベースラインアバター又はアバターモデルに基づいて変更できる)。いくつかの実施形態では、アバター625及び629などの以前に生成されたアバターは、たとえ他のユーザに対するベースラインアバター又はアバターモデルが更新されたときでも更新されない。
図6Iは、編集ボタン631、タイトル632、作成ボタン633、及びアフォーダンス634〜636を含む、メッセージアプリケーションインタフェース630を示す。インタフェース630は、図6Hの戻るボタン604の選択に応じて、任意選択的に表示される。インタフェース630の編集ボタン631を選択すると、ユーザは特定の連絡先アフォーダンスを選択し、選択されたアフォーダンスに関連付けられた連絡先情報に対して操作(例えば、削除)を実行することができるようになる。タイトル632は、メッセージアプリケーションの名前を提供する。作成ボタン633を選択することにより、ユーザは新しいメッセージを作成し、そのメッセージの受信者を選択することができるようになる。
アフォーダンス634〜636は、異なるリモートユーザに対する連絡先情報を表示する。この例では、各アフォーダンスは、ユーザ名、他のユーザとの最も最近の通信の要約、他のユーザと関連付けられたグラフィック要素、及び最も最近の通信の時間などの連絡先情報を含む。いくつかの実施形態では、グラフィック要素は、他のユーザに対して最も最近に生成されたアバターである。例えば、「Joe Smith」に対するアフォーダンス634は、図6Hのテキストボックス629に関連付けられたメッセージと共に受信されたユーザステータスに基づいて、「Joe Smith」に対して最も最近に生成された、アバター629を含む。このアバターは、インタフェース630内の連絡先リストが他のユーザの最も最新の状況を反映しているアバターを常に含むように、その後に受信されたユーザステータスデータに基づく、その後に生成されたアバターで、任意選択的に更新される。
アフォーダンスのうちの1つを選択すると、メッセージングインタフェース603の表示に戻る。例えば、連絡先アフォーダンス634を選択すると、図6Hに示すようにメッセージングインタフェース603の表示に戻ることになる。
アフォーダンス635は、関連付けられたアバターを有しない。代わりに、アバターを表示する代わりにモノグラム637が表示される。
図6Jは、新しいベースラインアバター又はアバターモデルが「Joe」用に受信された後の、他のユーザ「Joe」用のメッセージングインタフェース603を示す。この例では、Joeは口ひげを生やしており、それに応じて彼のアバターを更新している。新しいベースラインアバター又はアバターモデルの受信に応じて、デバイス600は、例えば、メッセージングプログラムを介して、Joeの新しい口ひげを反映するように、アバター625及び629をアバター638及び639で更新した。アバター628及び629は、対応するメッセージと共に受信されたユーザステータスデータに基づいている。図6Jに示す例では、これは、顔の表情が同じままであることを意味する。
図7A〜図7Bは、いくつかの実施形態に係る、電子デバイスを使用する拡張されたメッセージングインタフェースのための方法を示すフロー図である。方法700は、ディスプレイを有するデバイス(例えば、100、300又は500)で実行される。方法700のいくつかの動作は、任意選択的に組み合わされ、いくつかの動作の順序は、任意選択的に変更され、いくつかの動作は、任意選択的に省略される。
後述するように、方法700は、メッセージに対するユーザステータス情報を通信するための直感的方法を提供する。この方法は、ステータス情報を通信するためのユーザの認識的負担を軽減し、それによって、より効率的なヒューマンマシンインタフェースを作り出す。バッテリ動作コンピューティングデバイスの場合、ユーザがメッセージをより早くより効率的に理解して応答できるようにすることで、電力が節約され、バッテリ充電の時間間隔が増加する。
ディスプレイ(例えば、デバイス600のディスプレイ601)を有する電子デバイス(例えば、図6A〜図6Jのデバイス600)は、第1のユーザ(例えば、デバイス600の所有者又はユーザ)に関連付けられる。電子デバイスは、第2のユーザ(例えば、図6Aのユーザ名605及びユーザ写真606を有する他のユーザ)から第1のメッセージ(例えば、図6F〜図6Jのテキストボックス624に関連付けられたメッセージ)(例えば、SMSメッセージ、MMSメッセージ、iMessage(登録商標)、又は他の種類のメッセージ)を受信する(702)。第1のメッセージは、第1のコンテンツ(例えば、図6F〜図6Hのテキストボックス624内のコンテンツ)を含む。いくつかの実施形態によると、第2のユーザは、第1のメッセージと第2のメッセージとを送信するソース電子デバイスと関連付けられている。
電子デバイスは、第2のユーザに対する第1のステータスデータ(例えば、感情的若しくは身体的な状態、又は他のユーザに関連付けられた若しくは他のユーザには個人的な他の状態)を受信する(704)。第1のステータスデータは、第1のメッセージと関連付けられ、第1のコンテンツとは別個である(例えば、第1のステータスデータは、コンテンツとは別個のメッセージの一部として送信されるか、又は、メッセージとは別個に送信されるが、メッセージに対するものとしてのステータスデータの識別を可能にする方法で送信される)。ステータスデータは、任意の数のソースから取得することができる。いくつかの実施形態では、ステータスデータは、ユーザにステータスのリストを提示し、ユーザ又はユーザが送信しているメッセージの内容を表すステータスのうちの1つをユーザが選択できるようにすることによって、取得される。いくつかの実施形態では、ステータスデータを取得するために、電子デバイスは、例えば、1つ以上の画像センサ(例えば、図6Aの画像センサ602)を使用してユーザの画像データに基づいて、及び/又は、電子デバイスに利用可能な他のコンテキスト情報(例えば、カレンダーエントリ、天気、時間帯/年、場所など)に基づいて、ユーザに対するステータスデータを自動的に判定するように構成されている。任意選択的に、画像センサ602、又はバイオメトリックセンサなどの他のセンサからのデータを使用して、顔の表情を識別するため、又はユーザステータスを判定するための生理学的データ(例えば、心拍数又は体温)を取得するために、顔認識を実行することができる。いくつかの実施形態では、ユーザステータスは、ユーザにとって個人的なものであり、ユーザに関連するオブジェクト(例えば、電子デバイス)には関連付けられていない。いったんユーザステータスデータが判定されると、ユーザステータスデータはメッセージと関連付けられ、メッセージと共に(例えば、メッセージの一部として)、又はメッセージとは別個に(例えば、メッセージの送信前に、メッセージの送信後に、若しくはメッセージの送信と同時に)のいずれかで、他のユーザに送信される。
電子デバイスのディスプレイは、第1のコンテンツ(例えば、テキストボックス624内のコンテンツ)、及び第1のアバター(例えば、図6F〜図6Hのアバター624)(例えば、絵文字又は他のグラフィック表現)を含む、第1のメッセージを表示する(706)。第1のアバターは第1のステータスデータに基づき、表示された第1のアバターは表示された第1のメッセージに隣接している(例えば、メッセージはアバターの口から出てくる)。
第1のメッセージ及び第1のアバターを表示した後、電子デバイスは、第2のユーザから第2のメッセージ(例えば、別のSMSメッセージ、MMSメッセージ、iMessage(登録商標)、又は他の種類のメッセージ)を受信し(708)、ここで、第2のメッセージは第2のコンテンツ(例えば、図6Hのテキストボックス629内のコンテキスト)を含む。
電子デバイスは、送信者に対する第2のステータスデータ(例えば、感情的又は身体的な状態)を受信し(710)、ここで、第2のステータスは第2のメッセージに関連付けられており、第2のコンテンツとは別個である。いくつかの実施形態において、第2のステータスデータは、第1のステータスデータと同様の方法で生成され、送信される。
第1のメッセージ及び第1のアバターの表示を維持しながら、電子デバイスのディスプレイは、第2のコンテンツ(例えば、図6Hのテキストボックス629)及び第2のアバター(例えば、図6Hのアバター629)(例えば、絵文字又は他のグラフィック表現)を含む第2のメッセージを表示し(712)、ここで、表示された第2のアバターは表示された第2のメッセージに隣接し(例えば、メッセージはアバターの口から出てくる)、第2のアバターは第2のステータスデータに基づき、第1のアバターと第2のアバターとは異なる。異なるメッセージに対して異なるユーザステータスに基づき異なるアバターを含めることによって、電子デバイスの操作性が、ディスプレイ上に提示される情報量を増大することで拡張される。例えば、ユーザは、メッセージのテキスト内容を読む必要なしに、メッセージを迅速に走査し、アバターに基づいてメッセージに関連付けられた何らかのコンテキストを判定することができる。電子デバイスのこの改善された操作性によって、ユーザがデバイスをより迅速かつ効率的に使用することを可能にすることで、操作性をより効率的にし、電力使用量を低減し、デバイスのバッテリ寿命を改善する。例えば、異なるメッセージに対する異なるアバターは、ユーザが特定のステータスに関連付けられることを知っている特定のメッセージを、ユーザが見つけようとしているときに役立ち得る(例えば、悲しいメッセージは、場合によっては悲しいアバターを有することになる)。加えて、メッセージが複数の意味を持つと解釈され得る場合、メッセージ特有のアバターは、読者がメッセージの意味を正確に解釈するのを助けることができる。
いくつかの実施形態によれば、電子デバイスは、第2のユーザに対する連絡先情報(例えば、図6Jのアフォーダンス633の情報)を含むユーザのセットに対する連絡先情報(例えば、図6I)(例えば、電話番号、電子メールアドレス、ユーザ名、最近の通信など)を表示し(720)、ここで、第2のアバター(例えば、アバター629)は、第2のユーザに対する連絡先情報と共に表示される。いくつかの実施形態では、第2のユーザのステータスにおける変化を検出すると、第2のアバターは、第2のユーザ用の第3のアバターに置き換えられる。新しいアバターが受信されたときに第2のユーザのアバターを更新することによって、電子デバイスのユーザはまた、第2のユーザの最も最近のステータスを表すアバターへのアクセスを有する。これによって、最後の通信中に第2のユーザのステータスを判定するために電子デバイスのユーザが古いメッセージをレビューする必要性を排除することで、より効率的なインタフェースを提供する。このように、所望の情報を取り出すためにユーザは電子デバイスとの対話を少なくする必要があるため、ユーザがデバイスをより迅速かつより効率的に使用できるようにすることで、電子デバイスをより効率的にし、電力使用量を低減し、デバイスのバッテリ寿命を改善する。
いくつかの実施形態では、電子デバイスは、第1のアバター又は第1のステータスデータの、第2のユーザの連絡先情報との第1の関連付けを記憶し(例えば、第1のアバター又は第1のステータスデータを、データベース内の連絡先情報と、又は連絡先情報の一部としてリンクさせる)、第2のアバター又は第2のステータスデータの、第2のユーザの連絡先情報との第2の関連付けを記憶する(例えば、第1のアバター又は第1のステータスデータを、データベース内の連絡先情報と、又は連絡先情報の一部としてリンクさせる)。
いくつかの実施形態によれば、電子デバイスは、第2のユーザに対する第1のアバターモデル(例えば、ワイヤメッシュ、パラメータ化モデル)を受信し、第1のアバターモデルと第1のステータスデータとに基づいて第1のアバター(例えば、625)(例えば、笑顔などの第1の表情の第2のユーザのように見えるアバター)を生成し、第1のアバターモデルと第2のステータスデータとに基づいて第2のアバター(例えば、629)を生成する。(例えば、しかめっ面などの第2の表情を有する第2のユーザのように見えるアバター)。いくつかの実施形態によれば、電子デバイスは、第1のステータスデータを所定のアバターモデル(例えば、電子デバイス上の既存のアバター)上にマッピングして、第1のアバター(例えば、625)を作成する。アバターモデルを使用することによって、新しいアバターが生成されるたびにベースラインアバターが受信又は生成される必要がないので、電子デバイスは、受信したステータスデータに基づいて第2のユーザアバターをより効率的に生成することができる。このように、電子デバイスは、アバターを生成するのに必要な処理電力を制限することによって、より効率的で、より省電力で、より長い電池寿命を有する。
いくつかの実施形態によれば、電子デバイスは、第2のユーザに対する第2のアバターモデル(例えば、ワイヤメッシュ、パラメータ化モデル)を受信し(722)、第2のアバターモデル及び第1のステータスデータに基づいて、更新された第1のアバター(例えば、637)を生成する(724)。電子デバイスは、第2のアバターモデルと第2のステータスデータとに基づいて、更新された第2のアバター(例えば、638)を生成する(726)。電子デバイスはまた、第1のコンテンツを含む第1のメッセージと共に、第1のアバター(例えば、図6J)の代わりに、更新された第1のアバターを表示する(728)(例えば、メッセージの内容及びアバターに関連するコンテキスト情報を変更しないままで、表示されたアバターを更新する)。いくつかの実施形態によれば、第1のアバター(例えば、625)及び第2のアバター(629)は、第2のユーザの身体的外観を表す(例えば、アバターは第2のユーザの外観を反映している)。第2のユーザに対するベースラインアバターの更新を可能にすることによって、メッセージングインタフェースは、アバターが第2のユーザの現在のアバターを常に反映することを確実にする。これによって、電子デバイスのユーザが第2のユーザに関連付けられている複数の異なるベースラインアバターを認識する必要性を排除することで、より効率的なインタフェースを提供する。このように、ユーザは電子デバイスとより迅速にかつ効率的に対話することができるため、電子デバイスをより効率的にし、電力使用量を低減し、デバイスのバッテリ寿命を改善させることができる。
いくつかの実施形態によれば、第1のステータスデータは、第2のユーザの第1のバイオメトリック特性(例えば、深度情報、顔認識、心拍数など)に基づいている(716)。いくつかの実施形態によれば、第1のステータスデータは、送信者の光学的画像又は深度画像に基づいている。いくつかの実施形態によれば、第1のステータスデータは、第2のユーザが第1のメッセージを作成及び/又は送信した時の(例えば、顔マップ(例えば、様々な顔の特徴の描写)に基づく)第2のユーザの検出された表情に基づいている(714)。いくつかの実施形態によれば、第2のステータスデータは、第2のユーザが第2のメッセージを作成及び/又は送信した時の(例えば、顔マップ(例えば、様々な顔の特徴の描写)に基づく)第2のユーザの検出された表情に基づいている(718)。第1のステータスデータを生成するために第2のユーザのバイオメトリック特性又は画像データを使用することによって、ステータスデータを判定及び/又は入力するための第2のユーザの負担を最小化することで、メッセージングインタフェースが拡張される。加えて、バイオメトリック特性を使用することは、他の方法と比較して、第2のユーザに対して、より細かい、及び/又は正確なステータスを提供することができる。このように、電子デバイスは、電子デバイスをより効率的にし、電力使用量を低減し、電池寿命を改善する、改良されたマンマシンインタフェースを提供する。
いくつかの実施形態によれば、電子デバイスは、第1のステータスデータに基づいて、第1のアバターに対する1つ以上の特性(例えば、アバター629又は638の悲しい表情のための目、口、及び眉)(例えば、表情又はアクセサリ)を選択する(例えば、所定のアバターを選択する、又は新しいアバターを生成する)。いくつかの実施形態によれば、電子デバイスは、第2のステータスデータに基づいて、第2のアバターに対する1つ以上の特性を選択し(例えば、既存のアバターを選択する、又は新しいアバターを生成する)、第2のステータスデータは、第2のバイオメトリック特性(例えば、深度情報、顔認識、心拍数など)に基づいている。いくつかの実施形態によれば、第1のステータスデータは、第2のユーザの感情(例えば、幸せ、悲しい、笑顔など)を表しているす。アバター全体を選択する代わりにアバターの特性を選択することによって、電子デバイスは、特定のステータスに関連する特性のサブセットを変更するだけで、ステータスに基づいた新しいアバターをより効率的に生成する。このように、電子デバイスは、アバターを生成するのに必要な処理電力を制限することによって、より効率的で、より省電力で、より長い電池寿命を有する。
いくつかの実施形態によれば、第1のアバターは、アニメーションアバター(例えば、629又は638)(例えば、一連の記録された表情に基づくQuicktime(登録商標)ベースのアバター、GIFアバターなど)である。アニメーションアバターを使用することによって、第1のアバターのステータスが表すことができるステータスの範囲及び粒度が増大され、それによって、より効率的な第1のアバター及びメッセージングインタフェースとなる。
いくつかの実施形態によれば、電子デバイスは、第1のユーザから、かつ、電子デバイス上で、第3のメッセージ(例えば、第2のユーザの第1のメッセージ624に返信するメッセージ626)に対する第3のコンテンツ(例えば、図6G及び図6Hのテキストボックス626内のコンテンツ)を受信する。電子デバイスは、第1のユーザに対する第3のステータスデータを生成し、第3のステータスデータを第3のメッセージと関連付ける(例えば、それらを一緒に送信するか、又はメッセージとステータスデータとを相互参照する)。電子デバイスは、第3のステータスデータを第2のユーザに送信する、第2のユーザ宛への第3のメッセージを送信する。いくつかの実施形態によれば、電子デバイスは、第3のコンテンツ(例えば、図6G及び6Hのテキストボックス626内のコンテンツ)を含む第3のメッセージと第3のアバター(例えば、図6G及び6Hのアバター627)とを、ディスプレイ上に同時に表示する。第3のアバターは第3のステータスデータに基づき、第3のメッセージ及び第3のアバターは、第2のメッセージ及び第2のアバターと同時に表示される。異なるメッセージに対して異なるユーザステータスに基づき異なるアバターを含めることによって、電子デバイスの操作性が、ディスプレイ上に提示される情報量を増大することで拡張される。例えば、ユーザは、メッセージのテキスト内容を読む必要なしに、メッセージを迅速に走査し、アバターに基づいてメッセージに関連付けられた何らかのコンテキストを判定することができる。電子デバイスのこの改善された操作性によって、ユーザがデバイスをより迅速かつ効率的に使用することを可能にすることで、操作性をより効率的にし、電力使用量を低減し、デバイスのバッテリ寿命を改善する。例えば、異なるメッセージに対する異なるアバターは、ユーザが特定のステータスに関連付けられていることを知っている特定のメッセージを、ユーザが見つけようとしているときに役立ち得る(例えば、悲しいメッセージは、場合によっては悲しいアバターを有することになる)。加えて、メッセージが複数の意味を持つと解釈され得る場合、メッセージ特有のアバターは、読者がメッセージの意味を正確な解釈するのを助けることができる。
いくつかの実施形態によると、第1のメッセージ及び第1のアバター(例えば、625)を表示することは、第1のメッセージを、第1のアバターの口から出てくるテキストバブル(例えば、624)として表示することを含む。第1のアバターの口から出てくる第1のメッセージを表示することは、メッセージングインタフェースの最小限のレビューであっても、第1のアバターと第1のメッセージとの間の関連付けを明確にすることを可能にする。
いくつかの実施形態によれば、図8は、説明される様々な実施形態の原理に従って構成された電子デバイス800の、例示的な機能ブロック図を示す。いくつかの実施形態によれば、電子デバイス800の機能ブロックは、上述の技術を実行するように構成されている。デバイス800の機能ブロックは、説明される様々な実施例の原理を実行するために、ハードウェア、ソフトウェア、又はハードウェアとソフトウェアとの組合せによって、任意選択的に実装される。図8で説明する機能ブロックが、説明される様々な実施例の原理を実施するために、任意選択的に、組み合わされ、又はサブブロックに分離されることが当業者に理解されよう。したがって、本明細書における説明は、本明細書で説明されている機能ブロックの任意の可能な組合せ若しくは分離、又は更なる定義を任意選択的にサポートする。
図8に示されるように、電子デバイス800は、ディスプレイユニット802と、ディスプレイユニット802に結合された処理ユニット804とを含む。いくつかの実施形態において、処理ユニット804は、受信ユニット806、表示可能化ユニット808、生成ユニット810、選択ユニット812、マッピングユニット814、関連付けユニット816、及び送信ユニット818を含む。
処理ユニット804は、第2のユーザから、第1のコンテンツを含む第1のメッセージを(例えば、受信ユニット806を使用して)受信し、第2のユーザに対する第1のステータスデータであって、第1のメッセージに関連付けられ、第1のコンテンツとは別個である、第1のステータスデータを(例えば、受信ユニット806を使用して)受信し、第1のコンテンツを含む第1のメッセージと第1のアバターとを、ディスプレイ上に(例えば、表示可能化ユニット808を使用して)同時に表示することを可能化し、ここで、第1のアバターは第1のステータスデータに基づき、表示された第1のアバターは表示された第1のメッセージに隣接し、第1のメッセージ及び第1のアバターを表示した後、第2のユーザから第2のコンテンツを含む第2のメッセージを(例えば、受信ユニット806を使用して)受信し、第2のユーザに対する第2のステータスデータを(例えば、受信ユニット806を使用して)受信し、ここで、第2のステータスは第2のメッセージに関連付けられ、第2のコンテンツとは別個であり、第1のメッセージ及び第1のアバターの表示を維持しながら、第2のコンテンツを含む第2のメッセージと第2のアバターとをディスプレイ上に(例えば、表示可能化ユニット808を使用して)表示し、ここで、表示された第2のアバターは表示された第2のメッセージに隣接し、第2のアバターは第2のステータスデータに基づき、第1のアバターと第2のアバターとは異なる、ように構成されている。
いくつかの実施形態では、処理ユニット804は、第2のユーザの連絡先情報を含むユーザのセットの連絡先情報を(例えば、表示可能化ユニット808を使用して)表示するように更に構成され、第2のアバターは、第2のユーザの連絡先情報と共に表示される。
いくつかの実施形態では、処理ユニット804は、第2のユーザに対する第1のアバターモデルを(例えば、受信ユニット806を使用して)受信し、第1のアバターモデルと第1のステータスデータとに基づいて第1のアバターを(例えば、生成ユニット810を使用して)生成し、第1のアバターモデルと第2のステータスデータとに基づいて第2のアバターを生成する、ように更に構成されている。
いくつかの実施形態では、処理ユニット804は、第2のユーザに対する第2のアバターモデルを(例えば、受信ユニット806を使用して)受信し、第2のアバターモデルと第1のステータスデータとに基づいて、更新された第1のアバターを(例えば、生成ユニット810を使用して)生成し、第2のアバターモデルと第2のステータスデータとに基づいて、更新された第2のアバターを(例えば、生成ユニット810を使用して)生成し、第1のコンテンツを含む第1のメッセージと共に、第1のアバターの代わりに、更新された第1のアバターを(例えば、表示可能化ユニット808を使用して)表示する、ように更に構成されている。
いくつかの実施形態では、第1のステータスデータは、第2のユーザの第1のバイオメトリック特性に基づいている。
いくつかの実施形態では、処理ユニット804は、第1のステータスデータに基づいて、第1のアバターに対する1つ以上の特性を(例えば、選択ユニット812を使用して)選択するように更に構成されている。
いくつかの実施形態では、処理ユニット804は、第2のステータスデータに基づいて、第2のアバターに対する1つ以上の特性を(例えば、選択ユニット812を使用して)選択するように更に構成され、ここで、第2のステータスデータは第2のバイオメトリック特性に基づいている。
いくつかの実施形態では、第1のアバターはアニメーションアバターである。
いくつかの実施形態では、第1のステータスデータは、第2のユーザの光学的画像又は深度画像に基づいている。
いくつかの実施形態において、処理ユニット804は、第1のステータスデータを所定のアバターモデル上に(例えば、マッピングユニット814を使用して)マッピングして、第1のアバターを作成するように更に構成されている。
いくつかの実施形態では、第1のステータスデータは、第2のユーザの感情を表す。
いくつかの実施形態では、第1のステータスデータは、第2のユーザが第1のメッセージを作成及び/又は送信した時の第2のユーザの検出された表情に基づいている。
いくつかの実施形態では、第2のステータスデータは、第2のユーザが第2のメッセージを作成及び/又は送信した時の第2のユーザの検出された表情に基づいている。
いくつかの実施形態では、処理ユニット804は、第1のユーザから、かつ、電子デバイス上で、第3のメッセージに対する第3のコンテンツを(例えば、受信ユニット806を使用して)受信し、第1のユーザに対する第3のステータスデータを(例えば、生成ユニット810を使用して)生成し、第3のステータスデータを第3のメッセージと(例えば、関連付けユニット816を使用して)関連付け、第3のメッセージを第2のユーザに(例えば、送信ユニット818を使用して)送信し、第2のユーザに第3のステータスデータを(例えば、送信ユニット818を使用して)送信する、ように更に構成されている。
いくつかの実施形態では、処理ユニット804は、第3のコンテンツを含む第3のメッセージと第3のアバターとを(例えば、表示可能化ユニット808を使用して)同時に表示するように更に構成されており、第3のアバターは第3のステータスデータに基づき、第3のメッセージ及び第3のアバターは、第2のメッセージ及び第2のアバターと同時に表示される。
いくつかの実施形態では、第1のアバター及び第2のアバターは、第2のユーザの身体的外観を表す。
いくつかの実施形態では、第1のメッセージ及び第1のアバターの表示は、第1のメッセージを、第1のアバターの口から出てくるテキストバブルとして表示することを含む。
いくつかの実施形態では、第2のユーザは、第1のメッセージと第2のメッセージとを送信するソース電子デバイスと関連付けられている。
図9A〜図9Kは、いくつかの実施形態に係る、3Dモデルを構築するデータをキャプチャするための例示的なユーザインタフェースを示す。これらの図におけるユーザインタフェースは、図10A〜図10Bにおけるプロセスを含む、以下において説明されるプロセスを例示するために用いられる。
図9Aは、いくつかの例では上述のデバイス100、デバイス300、又はデバイス500の特定のフォームファクタである、デバイス900を示す。デバイス900は、いくつかの例ではタッチ感知ディスプレイであるディスプレイ901と、画像センサ902とを含む。加えて、デバイス900のいくつかの実施形態では、画像センサ902と共に、追加のセンサ(例えば、深度センサ、IRセンサなど)、及び/又は他の構成要素(例えば、フラッシュ又はIRエミッタ)が存在する。
図9Aでは、ディスプレイ901は、どのように進行するかについての命令を含む走査プログラムの走査インタフェース903、及びこれまでに3Dモデルに対してキャプチャされてきたデータを示す画像データ領域904を表示している。画像データ領域904は、データ追加ボタン905を含む。
図9Bは、図9Aに描かれたデバイス900を反対側から描く。デバイス900のこの側には、画像センサ906、光センサ907、及びフラッシュ908が存在する。いくつかの例では、画像センサ906は、高品質の可視光センサである。任意選択的に、IRなどの他の種類の光もキャプチャする。画像センサ906はまた、任意選択的に、飛行時間又は他の技術を使用して深度情報をキャプチャするように構成されている。いくつかの例では、光センサ907を使用して照明特性を判定し、照明特性を使用して画像センサ906を好適に構成し、動作させることができる。フラッシュ908は、画像センサ906に可視光フラッシュを提供する。いくつかの例では、フラッシュ908はまた、光センサ907から測定されたデータに基づいて構成されている。いくつかの実施形態では、図9Bに描いた構成要素に加えて、他の構成要素(例えば、追加の画像センサ、IR検出器、IRエミッタなど)も存在する。
図9Cは、例えば、ディスプレイ901上のタッチ909を介してデータ追加ボタン905(図9A)が選択された後の、走査インタフェース903を示す。図9Cでは、走査インタフェース903は、データをどのように追加するかを決定するために4つのアフォーダンス(アフォーダンス911〜914)のうちの1つを選択する命令910を含む。アフォーダンス911により、ユーザは既にデバイス900上に記憶されている画像データを選択することができるようになる。アフォーダンス912により、ユーザは、リモートデバイスに既に存在する画像データを選択すること(例えば、インターネット検索をすること、特定のリモートサーバにアクセスすること、又は特定のリモートデバイスから選択すること)ができるようになる。アフォーダンス913により、ユーザは、例えば画像センサ902又は画像センサ906(図9C)を使用して、新しいデータをキャプチャすることができるようになる。アフォーダンス914は、ユーザを、図9Aに描かれたインタフェースのステータスに戻す。
図9Dは、例えばディスプレイ901上のタッチ915を介してアフォーダンス913(図9C)が選択された後の、走査インタフェース903を示す。図9Dでは、走査インタフェース903は、キャプチャする画像データの種類を選択するための4つのアフォーダンス(916〜919)を提供する。アフォーダンス916は、静止画像を選択する。アフォーダンス917は、ビデオ画像データを選択する。アフォーダンス918は、パノラマ画像データを選択する。アフォーダンス919は、走査インタフェースを図9Cに示す状態に戻す。
図9Eは、アフォーダンス916(図9D)が、例えばディスプレイ901上のタッチ920を介して選択された後の、走査インタフェース903を示す。図9Eでは、画像センサ906(図9B)を使用してシーン920の一部をキャプチャするために、キャプチャインタフェースがディスプレイ901上に表示される。ビューファインダ921は、画像センサ906(図9B)の現在の視野を表す。この例では、デバイス900のホームボタン922は、ビューファインダ921内の画像データをキャプチャするために使用される。例えば、ユーザがホームボタン922を押下したこと(例えば、押下923)に応じて、ビューファインダ921に表示されたデータによって表される画像データがキャプチャされ、デバイス900に保存される。同様のインタフェースが、図9Dに関して説明された他の種類の画像キャプチャに利用可能である。画像センサ906によってキャプチャされた可視光又は他の種類の光を表すデータに加えて、画像データはまた、位置データ(例えば、GPSデータ)及び方位データ(例えば、加速度計、ジャイロスコープ、及び/又は電子コンパスから収集されたデータ)などの位置データを、任意選択的に含む。
図9Fは、図9Eに示す画像データがキャプチャされた後の、走査インタフェース903を示す。図9Eに関して説明したようにキャプチャされた画像データの表現924は、今、画像データ領域904にある。図9Fでは、走査インタフェース903が、図9A及び図9C〜図9Dに関して説明したプロセスを介して、写真キャプチャ状態に既に戻っている。図9Eと比較して、デバイス900はターゲットに対して移動している。ディスプレイ901は、ビューファインダ921が、同じターゲットであるがシーン920と比較して異なる角度である、シーン925の一部に向けられていることを示す(図9E)。いくつかの例では、ホームボタン922は、ビューファインダ921に表される画像データをキャプチャするために使用される。
図9Gは、表現926によって表された画像データがキャプチャされた後の、走査インタフェース903を示す。表現924及び926によって表される画像データに基づいて、デバイス900は、走査プログラムを介して、画像データ内のターゲットの3Dモデルの構築に使用するために好適なアルゴリズムを判定する。走査プログラムは、好適なアルゴリズムを判定するときに、様々なファクタを考慮に入れる。一実施例では、画像データの種類(例えば、静止画像対ビデオ対パノラマ)がファクタである。別の例では、画像データがキャプチャされたときにデバイス900があった向き及び/又は位置がファクタである。画像データが深度情報及び画像データ量を含むかどうかなどの他のファクタもまた、様々な実施形態において考慮される。
図9Gはまた、モデルプレビュー928を含む3Dモデルプレビュー領域927を含み、モデルプレビュー928は、異なる角度及び視点から見られるように操作することができる。例えば、ディスプレイ901上のタッチアンドドラッグ929に応じて、図9Hに示すようにモデルプレビュー928が回転されるが、これは、画像データキャプチャが不完全なことによりモデルプレビュー928が完成していないことを示す。いくつかの実施形態では、モデルを完成させるために、ユーザは、データ追加ボタン905を選択して追加の画像データを追加する。
図9Iは、図9Hのデータ追加ボタン905の選択後の走査インタフェース903を示す。図9Iでは、デバイス900は、これまでにキャプチャされた静止画像データに基づいて、静止画像アルゴリズムがモデルを構築するのに最も適していると判定した。したがって、走査インタフェース903は、モデルを構築する際に最も有用となるであろう種類の追加の画像データを取得する命令929を、ユーザに表示している。他の例では、走査インタフェース903は、ビデオデータ又はパノラマデータ画像データを代わりに取得する命令及び/又は提案を提供する。走査インタフェース903はまた、任意選択的に、最も有用な画像データを取得するためにデバイス900をどのように位置決めするかについての命令を提供する。図9Cに関して説明したのと同じキャプチャオプションもまた、表示される。
図9Iのアフォーダンス912の選択に応じて、ディスプレイ901上のタッチ930を介して、走査インタフェース903は、図9Jに示すリモート選択インタフェース931を表示する。リモート選択インタフェース931は、リモート位置から入手可能な画像データを示す表現932〜934を含む。表現932〜934は、現在構築しているモデルに潜在的に関連する画像データを表すように決定される。例えば、デバイス900は、その位置を使用して同じおおよその位置にキャプチャされた他の画像データを判定するリモートサーバに、その位置を任意選択的に送信する。別の例として、デバイス900は、任意選択的に、既にキャプチャされている画像データの一部又は全てを送信する。次いで、リモートサーバは画像認識を実行して、関連性があるかもしれない他の画像データを判定する。更に別の例として、標準的なインターネット検索は、ユーザによって提供された検索基準を使用して実行される。いくつかの実施形態において、リモート選択インタフェース931は、インターネット検索の結果を表示するウェブブラウザインタフェースとして実装される。選択インタフェース931のいくつかの例では、インタフェース上でのスワイプジェスチャにより、利用可能な追加の画像データを通してユーザがスクロールすることを可能にする。図9Jの表現932に関連付けられた画像データの選択に応じてデバイス900は、図9Kの表現935によって示すように、それぞれの画像データを取り出し、それをモデルを構築するために利用可能な画像データに追加する。
図9Kでは、3Dモデルプレビュー領域927が、利用可能な画像データに基づく新しいモデル、モデルプレビュー936で更新されている。図9Lは、図9G及び図9Hに関して上述したように、例えば、ディスプレイ901上のタッチを介して、ユーザがモデルを回転させた後のモデルプレビュー936を示す。いくつかの場合には、モデルプレビュー936は、図9Gに関して先に選択された走査プログラムを介して、デバイス900とは異なるアルゴリズムを使用して構築される。
図10A〜図10Bは、いくつかの実施形態に係る、電子デバイスを使用してオブジェクトの3Dモデルを構築するための方法を示すフロー図である。方法1000は、ディスプレイ及び1つ以上の画像センサを有するデバイス(例えば、100、300、500)において実行される。方法1000のいくつかの動作は、任意選択的に組み合わされ、いくつかの動作の順序は、任意選択的に変更され、いくつかの動作は、任意選択的に省略される。
以下に説明するように、方法1000は、オブジェクトの3Dモデルを構築するための直感的な方法を提供する。この方法は、オブジェクトの3Dモデルを構築するユーザの認識的負担を軽減し、それによって、より効率的なヒューマンマシンインタフェースを作成する。バッテリ動作コンピューティングデバイスの場合、ユーザがより速くより効率的にオブジェクトの3Dモデルを構成できるようにすることで、電力が節約され、バッテリ充電の時間間隔が増加する。
1つ以上の画像センサ(例えば、902、906)、メモリ、及びディスプレイ(例えば、901)を有する電子デバイス(例えば、900)は、電子デバイスの1つ以上の画像センサ(例えば、902、906)(例えば、深度センサ、光センサ、IRセンサ)から、第1の画像データ(例えば、921、904)(例えば、光データ、深度データ、及び任意選択的に位置データを有する静止画又はビデオ)をキャプチャする(1002)。第1の画像データは、第1の視点(例えば、図9E)からのオブジェクト(例えば、920)の第1の光学的画像データを含む。
電子デバイスはまた、電子デバイスの1つ以上の画像センサ(例えば、921、904)(例えば、深度センサ、光センサ)から、第2の画像データ(例えば、921、926)をキャプチャし(1004)、ここで、第2の画像データは、第1の視点とは異なる第2の視点(例えば、図9F)からのオブジェクトの第2の光学的画像光データを含む。
電子デバイスは、第1の視点から第2の視点への視点の変化に基づいて、アルゴリズム(例えば、異なるキャプチャをスティッチするアルゴリズム、パンニングデータを使用するアルゴリズム)を選択し(1006)、このアルゴリズムに基づいて、オブジェクトの3Dモデリングを継続するために必要な追加の画像データ(例えば、図9I)を判定する。
最後に、電子デバイスは、選択されたアルゴリズムに基づいて判定された追加の画像データをキャプチャする命令を提供する視覚フィードバック(929)を、ディスプレイ上に表示する(1010)。オブジェクトをモデル化するために必要とされる追加のデータについてユーザに命令を提供することによって、電子デバイスは、ユーザの認識的負担を軽減するように拡張され、どのような更なる画像データ(例えば、画像データの種類及び画像データの位置)が必要であるかを判定する。これにより、ユーザが正確なモデルの作成に成功するであろう可能性が高まる。
いくつかの実施形態によれば、電子デバイスは、(例えば、画像センサ又はリモートサーバから)第3のデータ(例えば、935)を受信する(1018)。第3のデータは、第3の視点からのオブジェクトの第3の光学的画像データを含む。電子デバイスは、第3の視点に基づいて、更新されたアルゴリズム(例えば、異なるキャプチャをスティッチするアルゴリズム、パンニングデータを使用するアルゴリズム)を選択する(1020)。更新されたアルゴリズムは、前記アルゴリズムとは異なる。更新されたアルゴリズムに基づいて、電子デバイスは、オブジェクトの3Dモデリングを継続するために必要とされる、追加の画像データとは異なる更新された追加の画像データを判定する(1022)。電子デバイスは、更新された追加の画像データをキャプチャするための更新された命令を提供する視覚フィードバックを、ディスプレイ上に表示し(1024)、ここで、更新された命令は、更新されたアルゴリズムを選択する前に表示された命令とは異なる。第3のデータに基づいて、更新されたアルゴリズムを選択することにより、モデルを構築する電子デバイスの能力は、利用可能な画像データに基づいて、モデルがどのように構築されるかを調整することによって向上する。このように、キャプチャされた画像データに基づいたアルゴリズムに基づく電子デバイスのモデル構築は、より効率的で、より省電力であり、電池寿命を改善する。
いくつかの実施形態によれば、電子デバイスは、選択された更新されたアルゴリズムを使用して、第1の画像データ(例えば、924)、第2の画像データ(例えば、926)、及び第3の画像データ(例えば、935)に基づいて、オブジェクトの3Dモデル(例えば936)を構築する。
いくつかの実施形態によれば、電子デバイスは、第1の画像データ(例えば、924)(例えば、位置データ)の少なくとも一部をリモートサーバに送信し、第3のデータ(例えば、932)がオブジェクト(例えば、図9J)に利用可能であるという指標をリモートサーバから受信する。いくつかの実施形態では、第3のデータは他のユーザから入手可能なデータからのものである。他のユーザからのデータを使用することによって、電子デバイスは、既に利用可能であるデータを再キャプチャする必要なく、モデルをより効率的に構築することができる。このように、電子デバイスは、より効率的で、より省電力で、より長い電池寿命を有する。加えて、電子デバイスは、既に利用可能ではない、又はユーザがキャプチャすることが困難であり得る追加のデータをユーザがキャプチャする必要性を排除することによって、ユーザの負担を軽減する。
いくつかの実施形態によると、更新された追加の画像データをキャプチャするための更新された命令を提供する視覚フィードバックを、ディスプレイ上で表示することは、電子デバイスが、第1のアルゴリズムが選択されているという判定に従って、第1の命令セット(例えば、929)を表示し(1014)、第1のアルゴリズムとは異なる第2のアルゴリズムが選択されているという判定に従って、視覚フィードバックが、第1の命令セットとは異なる第2の命令セットを含む(1016)、こととを含む(例えば、ユーザに、カメラを定点の周囲で回転させたり又はオブジェクトの静止画像を撮ったりするのではなく、カメラを水平にスライドするように促す)。
いくつかの実施形態によれば、第1の画像データは、第1の視点からのオブジェクトの第1の深度画像データを含む(1012)。
いくつかの実施形態によれば、電子デバイスは、第1の視点(例えば、図9Eの視点)(例えば、向き又は相対位置)に対する第1の位置データ(例えば、GPS、傾斜、方位データ)を(例えば、センサ又は画像データから)取得する。
いくつかの実施形態によれば、アルゴリズムを選択することはまた、第1の位置データに基づいている。
いくつかの実施形態によれば、電子デバイスは、第2の視点(例えば、図9Fの視点)(例えば、向き又は相対位置)に対する第2の位置データ(例えば、GPS、傾斜、方位データ)をキャプチャし、ここで、第2の画像データは、第2の視点からのオブジェクトの第2の深度画像データを含み、アルゴリズムを選択することもまた第2の位置データに基づいている。
いくつかの実施形態によれば、電子デバイスは、選択されたアルゴリズムを使用して、第1の画像データ(例えば、924)、第2の画像データ(例えば、926)、及び追加の画像データ(例えば、935)に基づいて、オブジェクトの3Dモデル(例えば、936)を構築し、その3Dモデルをメモリに記憶する。いくつかの実施形態では、3Dモデルのグラフィック表現(例えば936)がユーザに表示される(例えば、ユーザがオブジェクトを走査している間に、部分的に生成された3Dモデルがユーザに表示されて、ユーザがオブジェクトの走査を完了するのを助け、及び/又は、3Dモデルを表示するための表示されたアフォーダンスのアクティブ化などの、モデルを表示するための検出された要求に任意選択的に応じて、ユーザがオブジェクトの走査を完了した後に、完成した3Dモデルがユーザに表示される)。
いくつかの実施形態によると、アルゴリズムを選択することは、第1の画像データ及び第2の画像データがオブジェクトの走査からのものであることを示す、第1の視点から第2の視点への変化に基づいて、走査ベースのアルゴリズムを選択することを含む。
いくつかの実施形態によると、アルゴリズムを選択することは、第1の視点と第2の視点が離散画像に対するもの(例えば、図9E及び図9Fに示す視点)であることを示す、第1の視点から第2の視点への変化に基づいて、離散画像ベースのアルゴリズムを選択することを含む。
いくつかの実施形態によれば、電子デバイスは、オブジェクトにタッチしている第1の画像データ内のサポート(例えば、手又はテーブル)を識別し、選択されたアルゴリズムを使用して、第1の画像データ及び第2の画像データに基づいてオブジェクトの3Dモデルを構築する。3Dモデルは、第1のオブジェクトにタッチするサポートを含まない(例えば、3Dモデルは、第1のオブジェクトの一部ではなく、サポートの一部であると判定された検出点を除外することによって少なくとも部分的に生成される)。オブジェクトのモデルにおける第1のオブジェクトにタッチしているサポートを含まないことによって、電子デバイスは、ユーザに関係のない余分な詳細を含まないことによって、ユーザにとってより有用なモデルを生成することができるように拡張される。このように、ユーザは後で手動でサポートを取り外す必要がないので、電子デバイスをより効率的にし、より省電力で、より長いバッテリ寿命を有するようになる。
いくつかの実施形態によれば、電子デバイスは、オブジェクト(例えば、921)のライブ画像を含む第1のウィンドウを、電子デバイスのディスプレイ上に表示し、オブジェクトの(例えば、完全な、又は部分的なのいずれかの)モデル(例えば、927)の画像を含む第2のウィンドウを、ディスプレイ上に表示し、ここで、モデルは、第1の画像データ及び第2の画像データに基づいている。いくつかの実施形態では、追加の画像がキャプチャされてオブジェクトのモデルが改善されるにつれて、オブジェクトのモデルの画像が更新される。このフィードバックにより、少なくともいくつかのケースでは、スキャンの品質が向上するかもしれない、走査の進行及びデバイスの動作の種類に関してリアルタイムのフィードバックをユーザに提供することによって、ユーザはオブジェクトをより正確に走査することができ、それによってより正確なモデルとなる。
いくつかの実施形態によれば、図11は、説明される様々な実施形態の原理に従って構成された電子デバイス1100の、例示的な機能ブロック図を示す。いくつかの実施形態によれば、電子デバイス1100の機能ブロックは、上述の技術を実行するように構成されている。デバイス1100の機能ブロックは、説明される様々な実施例の原理を実行するために、ハードウェア、ソフトウェア、又はハードウェアとソフトウェアとの組合せによって、任意選択的に実装される。図11で説明する機能ブロックが、説明される様々な実施例の原理を実施するために、任意選択的に、組み合わされ、又はサブブロックに分離されることが当業者に理解されよう。したがって、本明細書における説明は、本明細書で説明されている機能ブロックの任意の可能な組合せ若しくは分離、又は更なる定義を任意選択的にサポートする。
図11に示されるように、電子デバイス1100は、ディスプレイユニット1102と、ディスプレイユニット1102に結合された処理ユニット1104とを含む。いくつかの実施形態では、処理ユニット1104は、キャプチャユニット1106、選択有効化ユニット1108、判定ユニット1110、表示可能化ユニット1112、受信ユニット1114、構築ユニット1116、送信ユニット1118、取得ユニット1022、記憶ユニット1124、及び識別ユニット1126を含む。
処理ユニット1104は、電子デバイスの1つ以上の画像センサから、第1の画像データであって、第1の視点からのオブジェクトの第1の光学的画像データを含む、第1の画像データを(例えば、キャプチャユニット1006を使用して)キャプチャし、電子デバイスの1つ以上の画像センサから、第2の画像データであって、第1の視点とは異なる第2の視点からのオブジェクトの第2の光学的画像光データを含む、第2の画像データを(例えば、キャプチャユニット1106を使用して)キャプチャし、第1の視点から第2の視点への視点の変化に基づいて、アルゴリズムを(例えば、選択ユニット1108を使用して)選択し、このアルゴリズムに基づいて、オブジェクトの3Dモデリングを継続するために必要な追加の画像データを(例えば、判定ユニット1110を用いて)判定し、選択されたアルゴリズムに基づいて判定された追加の画像データをキャプチャする命令を提供する視覚フィードバックをディスプレイ上に(例えば、表示可能化ユニット1112を使用して)表示する、ように構成されている。
いくつかの実施形態では、処理ユニット1104は、第3の視点からのオブジェクトの第3の光学的画像データを含む、第3のデータを(例えば、受信ユニット1114を使用して)受信し、第3の視点に基づいて、前記アルゴリズムとは異なる更新されたアルゴリズムを(例えば、選択ユニット1108を使用して)選択し、更新されたアルゴリズムに基づいて、オブジェクトの3Dモデリングを継続するために必要とされる、追加の画像データとは異なる更新された追加の画像データを(例えば、判定ユニット1110を使用して)判定し、更新された追加の画像データをキャプチャするための更新された命令を提供する視覚フィードバックを、ディスプレイ上に(例えば、表示可能化ユニット1112を使用して)表示し、ここで、更新された命令は、更新されたアルゴリズムを選択する前に表示された命令とは異なる、ように更に構成されている。
いくつかの実施形態では、処理ユニット1104は、選択された更新されたアルゴリズムを使用して、第1の画像データ、第2の画像データ、第3の画像データ、及び更新された追加の画像データに基づいて、オブジェクトの3Dモデルを(例えば、構築ユニット1116を使用して)構築するように更に構成されている。
いくつかの実施形態では、処理ユニット1104は、第1の画像データの少なくとも一部をリモートサーバに(例えば、送信ユニット1118を使用して)送信し、第3のデータがオブジェクトに利用可能であるという指標をリモートサーバから(例えば、受信ユニット1114を使用して)受信する、ように更に構成されている。
いくつかの実施形態では、更新された追加の画像データをキャプチャするための更新された命令を提供する視覚フィードバックの、ディスプレイ上での表示は、第1のアルゴリズムが選択されているという判定に従って、第1の命令セットを表示することと、第1のアルゴリズムとは異なる第2のアルゴリズムが選択されているという判定に従って、視覚フィードバックが、第1の命令セットとは異なる第2の命令セットを含むことと、を含む。
いくつかの実施形態では、第1の画像データは、第1の視点からのオブジェクトの第1の深度画像データを含む。
いくつかの実施形態では、処理ユニット1104は、第1の視点に対する第1の位置データを(例えば、取得ユニット1122を使用して)取得するように、更に構成されている。
いくつかの実施形態では、アルゴリズムを選択することはまた、第1の位置データに基づいている。
いくつかの実施形態では、処理ユニット1104は、第2の視点に対する第2の位置データを(例えば、キャプチャユニット1106を使用して)キャプチャするように更に構成されており、第2の画像データは、第2の視点からのオブジェクトの第2の深度画像データを含み、アルゴリズムを選択することはまた、第2の位置データに基づいている。
いくつかの実施形態では、処理ユニット1104は、選択されたアルゴリズムを使用して、第1の画像データ、第2の画像データ、及び追加の画像データに基づいて、オブジェクトの3Dモデルを(例えば、構築ユニット1116を使用して)構築し、その3Dモデルをメモリに(例えば、記憶ユニット1124を使用して)記憶する、ように更に構成されている。
いくつかの実施形態では、アルゴリズムを選択することは、第1の画像データ及び第2の画像データがオブジェクトの走査からのものであることを示す、第1の視点から第2の視点への変化に基づいて、走査ベースのアルゴリズムを選択することを含む。
いくつかの実施形態では、アルゴリズムを選択することは、第1の視点と第2の視点が離散画像に対するものであることを示す、第1の視点から第2の視点への変化に基づいて、離散画像ベースのアルゴリズムを選択することを含む。
いくつかの実施形態では、処理ユニット1104は、オブジェクトにタッチしている第1の画像データ内のサポートを(例えば、識別ユニット1126を使用して)識別し、選択されたアルゴリズムを使用して、第1の画像データ及び第2の画像データに基づいて、オブジェクトの3Dモデルを(例えば、構築ユニット1116を使用して)構築する、ように更に構成されており、3Dモデルは第1のオブジェクトにタッチしているサポートを含まない。
いくつかの実施形態では、処理ユニット1104は、オブジェクトのライブ画像を含む第1のウィンドウを、電子デバイスのディスプレイ上に(例えば、表示可能化ユニット1112を使用して)表示し、オブジェクトのモデルの画像を含む第2のウィンドウを、ディスプレイ上に(例えば、表示可能化ユニット1112を使用して)表示するように更に構成されており、モデルは第1の画像データ及び第2の画像データに基づいている。
図12A〜図12Jは、いくつかの実施形態に係る、ユーザに基づいてデータ及びアプリケーションへのアクセスを制限するための例示的なユーザインタフェースを示す。これらの図におけるユーザインタフェースは、図13A〜図13Bにおけるプロセスを含む、以下において説明されるプロセスを例示するために用いられる。
図12Aは、ディスプレイ1201、画像センサ1202、及びホームボタン1204を有する、デバイス1200を示す。いくつかの実施形態では、ディスプレイ1201は、タッチ感知ディスプレイである。いくつかの実施形態では、ホームボタン1204はディスプレイ1201とは別個の機械的ボタンであり、ホームボタン1204上に指を置いたユーザを識別するための指紋センサを含む。いくつかの実施形態では、ホームボタン1204はディスプレイ1201と一体化されており、更に指紋センサを含む。図12Aでは、デバイス1200は、ディスプレイ1201上にロック画面インタフェース1203を表示している。ロック画面インタフェース1203は、デバイス1200が制限された機能でロック状態にあるときに表示される。例えば、デバイス1200上の大部分のアプリケーション、及び他の機能へのアクセスは、ロック状態では許可されない。しかしながら、いくつかの例では、いくつかのアプリケーション(例えば、カメラアプリケーション)又は機能(例えば、緊急番号への発呼)は利用可能である。ロック状態から許可されるこれらのアプリケーション及び機能は、任意選択的に、ロック画面インタフェース1203に現れるボタン(図示せず)、又はロック画面インタフェース1203上の他のジェスチャ(例えば、スワイプ)を介してアクセスされる。いくつかの場合では、デバイス1200は、ホームボタン1204内に存在する指紋センサによって測定された指紋データの認証を介してロック解除される。他の場合では、デバイス1200は、ピンコードインタフェース(図示せず)を介して入力されたピンコードの認証を介してロック解除される。いくつかの実施形態では、画像センサ1202は、デバイス1200を使用してユーザの画像データをキャプチャするように構成されている。次いで、画像データはデバイス1200で処理され、画像データ又は正規ユーザに対する他のデータと比較される。画像データがユーザを認証することを可能にする場合には、デバイス1200をロック解除することもできる。
図12Bは、例えば、図12Aに関して説明された技術のうちの1つを使用して、デバイス1200がロック解除された後に、ホーム画面インタフェース1205を表示しているデバイス1200を示す。ホーム画面インタフェース1205は、アイコン1206に関連付けられた写真アプリケーションを含む、デバイス1200上にインストールされたアプリケーション用の複数のアイコンを含む。例えば、1206の位置におけるディスプレイ1201上のタッチ1207を介してアイコン1206を選択したことに応じて、写真アプリケーションが起動されるか、又は写真アプリケーションが既に起動されている場合には写真アプリケーションが表示される。
図12Cは、写真アプリケーションを表示するデバイス1200であって、より具体的には、追加ボタン1209、タイトル1210、検索ボタン1211、及び編集ボタン1212を含む、写真アルバムインタフェース1208を示す。追加ボタン1209を選択すると、追加の写真アルバムの作成を可能にするアルバム追加インタフェースが表示される。タイトル1210は、そのインタフェースをアルバムインタフェースとして識別する。検索ボタン1210を選択すると、写真アプリケーション内の写真の検索を可能にする検索インタフェースが表示される。編集ボタン1212を選択すると、アルバムの削除又は他の機能を可能にするアルバム編集インタフェースが可能化される。
写真アルバムインタフェース1208はまた、写真アプリケーション内のそれぞれの写真アルバムをそれぞれ表すサムネイル1213〜1216を含む。いくつかの例では、各サムネイルは、そのアルバム内に存在する写真のより小さいバージョンである。サムネイル1213〜1216はまた、例えば、ディスプレイ1201上のタッチを介して選択可能である。
図12Dは、サムネイル1213(図12C)を選択した後の写真アプリケーションを示す。戻るボタン1218、タイトル1219、及び選択ボタン1220を含む、写真選択インタフェース1217が表示される。戻るボタン1218を選択すると、写真アプリケーションはアルバムインタフェース1208(図12C)に戻る。タイトル1219は、写真選択インタフェース1217に表示されている現在のアルバムを識別する。選択ボタン1220を選択すると、ユーザは、現在のアルバム内の複数の写真を選択し、選択された写真に対して操作(例えば、削除)を実行することができるようになる。
写真アルバムインタフェース1217はまた、アルバム内の各写真をそれぞれ表すサムネイル1221〜1232を含む。いくつかの例では、各サムネイルは、そのアルバム内に存在する写真のより小さいバージョンである。サムネイル1221〜1232はまた、例えば、ディスプレイ1201上のタッチを介して選択可能である。
図12Eは、サムネイル1227(図12D)を選択した後の写真アプリケーションを示す。戻るボタン1235、写真情報1236、及び詳細ボタン1237を含む、写真インタフェース1234が表示される。戻るボタン1235を選択すると、写真アプリケーションが写真選択インタフェース1217(図12D)に戻る。写真情報1235は、現在表示されている写真に関する場所及び時間などの情報を提供する(1238)。詳細ボタン1237を選択すると、関連する写真又は写真内で識別された人物などの、現在表示されている写真(1238)についての追加情報を提供する詳細インタフェースが表示される。
写真インタフェース1234はまた、現在選択されている写真、写真1238の表示を含む。このインタフェースはまた、写真1238のサムネイル1239、及びアルバム内の他の写真のうちのいくつかを表す他の縮小サイズのサムネイル1240を含む、プレビュー領域を含む。いくつかの実施形態では、アルバム内の全ての写真に対して、プレビュー領域内にサムネイルを表示するのに十分な余地がない場合、ユーザは、例えば、プレビュー領域上で、ディスプレイ1201上のスワイプジェスチャを介して、サムネイル間をスクロールすることができる。
写真インタフェース1234を表示している間、デバイス1200のユーザは、写真1238から離れてアルバム内の次の写真(例えば、図12Dのサムネイル1228によって表される写真)にナビゲーションするように、インタフェースに要求することができる。いくつかの例では、現在の写真から離れるナビゲーション要求は、現在選択されている写真(例えば、図12Eの場合には写真1238)上で受信されたディスプレイ1201上のジェスチャである。一実施例では、スワイプジェスチャ1241が受信される。スワイプジェスチャ1241を受信したことに応じて、デバイス1200は、画像センサ1202を使用して画像データをキャプチャする。他の例では、画像データは、現在の写真から離れるナビゲーション要求を受信する前に、キャプチャされる。
いったん画像データがキャプチャされ、現在選択されている写真から離れるナビゲーション要求が受信されると、デバイス1200は、(例えば、認証プログラムを介して)コンテンツロック基準のセットが満たされているかどうかを判定する。いくつかの例では、コンテンツロック基準のセットは、キャプチャされた画像の分析に基づいて、不正ユーザがデバイス1200を使用していると検出された場合に満たされる基準を含む。他の例では、(例えば、キャプチャされた画像データを分析することによって)正規ユーザがいないこと、デバイスの向き又は移動(例えば、デバイスのハンドオフ又はデバイスが平坦に横たわっていることの検出)、正規ユーザが最後に検出されてからの時間遅延、及び/又は表示されているコンテンツに関連付けられた情報(例えば、センシティブな内容又は個人的な内容はより厳しい基準のセットを有し得る)の検出など、他の基準もまた使用される。
コンテンツロック基準のセットが満たされていない(例えば、キャプチャされた画像データに基づいて、不正ユーザがデバイスを使用しているとして検出されない)という判定に応じて、現在選択されているコンテンツから離れるナビゲーションを進めることが許可される。これは、図12F及び図12Gに描かれている。
具体的には、図12Fにおいて、スワイプジェスチャ1241(図12E)に応じて、写真インタフェース1234が写真1238から、アルバム内の次の写真、写真1242に遷移する。加えて、写真1238に関連付けられたサムネイル1239は、写真1242に関連付けられたサムネイル1243が大きくなるにつれて縮小する。
図12Gは、以前に選択されたコンテンツ(図12Eの写真1238)から、新たに選択されたコンテンツ(写真1242)への完了したナビゲーションを示す。写真インタフェース1234の写真情報は、写真1242に関連付けられた写真情報1244で更新されている。
一方、コンテンツロック基準のセットが満たされている(例えば、キャプチャされた画像データに基づいて、不正ユーザがデバイスを使用しているとして検出される)という判定に応じて、現在選択されているコンテンツから離れるナビゲーションが拒否される。これは図12Hに描かれている。
図12Hでは、デバイス1200は、コンテンツロック基準のセットが満たされていると判定した。例えば、図12Eのスワイプジェスチャ1241を介して、現在選択されているコンテンツ(写真1238)から離れるナビゲーション要求に応じて、デバイス1200は、図12F及び図12Gに関して説明したように、アルバム内の次の写真を示さない。加えて、サムネイル付き写真プレビュー領域1239は、要求に応じて更新されない。いくつかの実施形態では、写真プレビュー領域は完全に隠れている。スワイプジェスチャの停止に応じて、写真1238は、図12Eに示すようにディスプレイ1201の中央に戻る。いったんコンテンツロック基準のセットがもはや満たされなくなると、写真1238から離れるナビゲーションを行う機能が再び許可される。
現在表示されているコンテンツ又は選択されているコンテンツから離れるナビゲーションを防止することに加えて、いくつかの実施形態では、デバイス1200の他の機能を制限又は変更するために、他の潜在的に異なるロック基準のセットも使用される。例えば、ロック基準のセットは、アプリケーションを終了する、別の開いているアプリケーションに切り替える、又は新しいアプリケーションを起動する機能などの、デバイスの機能に関連付けられている。このロック基準のセットが満たされると、デバイスの関連付け機能は無効化される。別の例では、ロック基準のセットは、読み出し専用構成などの、デバイス上のアプリケーションの構成に関連付けられている。このロック基準のセットが満たされると、アプリケーションの構成が切り替わる(例えば、アプリケーションの機能が制限される、あるいはアプリケーションが読み出し/書き込み構成から読み出し専用構成に切り替わる)。さらに別の例では、ロック基準のセットは、現在の機能以外のデバイスの全ての他の機能をロックすることに関連付けられている(例えば、デバイスが写真を表示している場合、これはおそらく、デバイスをロックすること以外に、そのデバイスで許可されている唯一の機能である)。
図12I及び図12Jは、ロック基準のセットの別の適用例を示す。図12Iでは、通信は、iMessageメッセージの形で受信されている。デバイス1200は、ロック基準のセットが満たされていないと判定した。このように、デバイス1200は、通信が受信されたことを示し、メッセージの内容及び送信者をプレビューするための通知1245を表示する。対照的に、図12Jでは、デバイス1200は、同じロック基準のセットが満たされていると判定した。このロック基準のセットは、通信についての通知を表示するかどうか、あるいは表示する通知の種類が何であるかに関連付けられている。図12Jでは、通知1246は、メッセージの内容又は誰がメッセージを送信したかを示すことなく、メッセージ又は通信が受信されたことを示すだけである。いくつかの実施形態では、通知の表示は、ロック基準が満たされることに応じて完全に抑制される。
関連するロック基準のセットがもはや満たされなくなると、デバイス1200及びそのアプリケーションの制限された機能及び特徴が、任意選択的に復元される。いくつかの実施形態では、例えば、ピンコード又は指紋識別を使用してデバイスがロック解除されると、制限された機能及び特徴も復元される。
図13A〜図13Bは、いくつかの実施形態に係る、電子デバイスを使用しているユーザに基づいてデータ及びアプリケーションへのアクセスを制限するための方法を示すフロー図である。方法1300は、ディスプレイ及び画像センサを有するデバイス(例えば、100、300、500)において実行される。方法1300のいくつかの動作は、任意選択的に組み合わされ、いくつかの動作の順序は、任意選択的に変更され、いくつかの動作は、任意選択的に省略される。
後述するように、方法1300は、デバイスを使用しているユーザに基づいて、データ及びアプリケーションへのアクセスを制限するための直感的な方法を提供する。この方法は、デバイスを使用しているユーザに基づいて、データ及びアプリケーションへのアクセスを制限することに対するユーザの認識的負担を低減し、それによって、より効率的なヒューマンマシンインタフェースを作成する。バッテリ動作コンピューティングデバイスの場合、デバイスを使用しているユーザに基づいて、データ及びアプリケーションへのアクセスを、ユーザがより速くより効率的に制限することを可能にすることによって、電力を節約し、バッテリ充電の時間間隔を増加させる。
ディスプレイ(例えば、1201)と1つ以上の画像センサ(例えば、1202)とを有する電子デバイス(例えば、1200)は、アプリケーション(例えば、写真、写真共有アプリケーション、メッセージングアプリケーション)にコンテンツ(例えば、1238)(例えば、写真)をディスプレイ上に表示する。電子デバイスは、アプリケーションが第1の構成(例えば、通常の構成)にある間に、コンテンツを表示する(1302)。コンテンツを表示しながら、電子デバイスは、電子デバイスの1つ以上の画像センサ(例えば、1202)から画像データ(例えば、画像及び/又は深度情報)をキャプチャする(1304)。画像データをキャプチャした後、電子デバイスは、コンテンツから離れるナビゲーション要求(例えば、1241)を受信する(1306)。コンテンツから離れるナビゲーション要求(例えば、異なる写真へのスワイプ、又は異なるウェブページへの移動)を受信したことに応じて、電子デバイスは、第1のコンテンツロック基準のセットが満たされているという判定に従って、コンテンツ(例えば、1238)の表示を維持しながら、コンテンツから離れるナビゲーション(例えば、図12F)(例えば、異なる写真へのスワイプ、又は異なるウェブページへの移動)を防止し(1310)、第1のコンテンツロック基準のセットは、不正ユーザがデバイスを使用していることをキャプチャされた画像データが示すときに満たされる第1の基準を含み、第1のコンテンツロック基準のセットが満たされていないという判定に従って、要求に従いコンテンツから離れるナビゲーションを行う(例えば、図12F〜図12G)(1312)。一定の基準が満たされるときにコンテンツから離れるナビゲーションを防止することによって、正規ユーザがアクセスを許可しようとしているコンテンツの閲覧をなおも可能化しながら他のコンテンツへのアクセスを防止することにより電子デバイスのセキュリティが高められる(例えば、正規ユーザがデバイスを使用していないときに、他の写真へのアクセスを防止する)。
いくつかの実施形態によれば、コンテンツから離れるナビゲーションを行う電子デバイスは、現在表示されているコンテンツを並進させること(例えば、タッチ感知面上のドラッグジェスチャなどのスクロール入力に応じて、地図又はリストをスクロールすること)を含む。いくつかの実施形態によれば、コンテンツから離れるナビゲーションを行う電子デバイスは、アプリケーション(例えば、図12F)におけるコンテンツアイテム(例えば、1238及び1242)間の切り替えを含む(例えば、タッチ感知面上でのスワイプジェスチャなどの次のコンテンツアイテム入力に基づいて、本又はpdf内のページ、カメラロール内の写真、ブラウザ内のウェブページを通じて切り替える)。
いくつかの実施形態によれば、電子デバイスは、第1のコンテンツロック基準のセットがもはや満たされないという判定に従って、コンテンツから離れるナビゲーション(例えば、図12F〜図12G)(例えば、異なる写真へのスワイプ、又は異なるWebページへの移動)を可能にする(1314)。
いくつかの実施形態によれば、第1のロック基準のセットは、電子デバイスの正規ユーザがそのデバイスを使用していないことをキャプチャされた画像データが示す(例えば、正規ユーザの顔が、1秒、15秒、又は1分などの所定の時間量を超えて、カメラの視野内で検出されない)ときに満たされる第2の基準を含む。いくつかの実施形態によれば、第1のロック基準のセットは、不正ユーザが存在し、かつ、正規ユーザが存在しないことをキャプチャされた画像データが示すときに満たされる第3の基準を含む(例えば、正規ユーザとして認識されないユーザの顔は、正規ユーザの顔がカメラの視野内に検出されることなく、カメラの視野内で検出される)。いくつかの実施形態では、含まれる基準のうちのいずれかが満たされると、第1のロック基準のセットが満たされる。いくつかの実施形態では、含まれる全ての基準が満たされるときにのみ、第1のロック基準のセットが満たされる。第1のロック基準のセットに複数のロック基準を含めることによって、電子デバイスが、コンテンツを他人に見せるユーザ機能と、他人への閲覧をユーザが望まないコンテンツへのアクセス防止との間に対するバランスを可能にする柔軟なセキュリティレベルを提供することで、電子デバイスを拡張させる。
いくつかの実施形態によれば、第1のロック基準のセットは、正規ユーザが存在するか否かにかかわらず不正ユーザが存在することをキャプチャされた画像データが示すときに満たされる(例えば、第1の基準が満たされる場合、第1のロック基準のセットが満たされる)。いくつかの実施形態によれば、電子デバイスは、電子デバイスの不正ユーザの存在をキャプチャされた画像データが示すかどうかを判定する。
いくつかの実施形態によれば、電子デバイスは、第2のコンテンツロック基準のセットが満たされているという判定に従って、電子デバイスの少なくとも1つの機能(図12I及び12J)を無効化する(1316)(例えば、通知の表示を抑制する)。いくつかの実施形態によれば、電子デバイスは、(例えば、他のセットと同じ又は異なる)第4のコンテンツロック基準のセットが満たされているという判定に従って、アプリケーション内のコンテンツを表示し続けながら、電子デバイスの他の機能(例えば、スリープ/起動ボタン機能を除く全ての他の機能)をロックする(1320)。いくつかの実施形態によれば、第4の基準が満たされていることに従って、電子デバイス上のアプリケーション間のナビゲーションを防止し、第5の基準が満たされていることに従って、アプリケーション内のナビゲーション(例えば、図12Eの写真ビューから図12Dのアルバムビューへ戻る遷移)を防止する。例えば、第4の基準(したがって、第5のロック基準のセット)が満たされると、ユーザがホームボタンを押してもデバイスはホーム画面に戻らない。代わりに、アプリケーション表示が残るか、又はデバイスがロックされてロックインタフェース(例えば、1203)が表示されるか、のいずれかである。例えば、第4のコンテンツロック基準のセットは、画像データが、電子デバイスを使用している正規ユーザがいないことを示すときに満たされる。第4のコンテンツロック基準のセットが満たされたことに応じて、アプリケーション間の切り替え及び/又は通知の閲覧が無効化される。電子デバイスの1つ以上の機能を無効化又はロックすることによって、他の人が電子デバイス上のコンテンツを閲覧することをユーザが許可しているときに、一定の機能へのアクセスを制限することにより電子デバイスのセキュリティが高められる。例えば、表示された画像を閲覧するために別の人にユーザが電子デバイスを提供しており、電子デバイスが通話を受信した場合、電子デバイスは、ユーザ(例えば、正規ユーザ)が電子デバイスを使用していないと判定し、通話に応答することを防止することができる。
いくつかの実施形態によれば、第1のロック基準のセットと第2のロック基準のセットとは異なる(例えば、第1のロック基準のセットが満たされることは、画像データが、正規ユーザが存在するかどうかにかかわらず、不正ユーザが電子デバイスを使用していることを示し、画像データが、不正ユーザが存在するかどうかにかかわらず、正規ユーザが電子デバイスを使用していないことを示す場合、第2のロック基準のセットが満たされる)。
いくつかの実施形態によれば、電子デバイスは、第3のコンテンツロック基準のセットが満たされているという判定に従って、アプリケーションを、第1の構成(例えば、図12F)と比較してアプリケーションの動作を制限する第2の構成(例えば、図12G)に切り替える(1318)(例えば、不正ユーザ及び正規ユーザが存在する場合、ナビゲーションがロックされ、正規ユーザなしに不正ユーザが存在する場合、デバイス全体がロックされる)。
いくつかの実施形態によれば、電子デバイスは、(例えば、他のセットと同じ又は異なる)第5のコンテンツロック基準のセットが満たされているという判定に従って、電子デバイスにおいて受信された通信に関する通知の表示(例えば、通知トリガ条件を検出すること、及びコンテンツロック基準が満たされているという判定に従って、通知の提示を抑制すること/コンテンツロック基準が満たされていないという判定に従って、通知を提示すること(例えば、可聴、触知、又は視覚的出力を介して))を防止する(1322)。
いくつかの実施形態によれば、第5のロック基準のセットは、不正ユーザが電子デバイスを使用していることをキャプチャされた画像データが示すときに満たされる第4の基準を含み、第5のロック基準のセットは、第4の基準が満たされるときに満たされ、第1のロック基準のセットは、キャプチャされた画像データが正規ユーザの不在を示すときに満たされる第5の基準を含む。例えば、第5のロック基準のセットの第4の基準は、キャプチャされた画像データに正規ユーザ以外のユーザが存在することを電子デバイスからキャプチャされた画像データが示すときに満たされる(例えば、画像データは、(正規ユーザの有無にかかわらず)不正ユーザが電子デバイスの前のカメラの視野内にいることを示す)。加えて、第5のロック基準のセットにおける他の基準が満たされるかどうかにかかわらず、第4の基準が満たされる限り、第5のロック基準のセットが満たされる(例えば、不正ユーザがキャプチャされた画像データに存在する限り、第5のロック基準のセットを満たすために他の基準が満たされる必要はない)。
いくつかの実施形態によれば、画像データは光学的データ及び深度データを含み、第1のコンテンツロック基準のセットが満たされているかどうかを判定することは光学的データ及び深度データに基づいている。いくつかの実施形態では、光学的データは第1の解像度を有する第1のカメラによって提供され、深度データは第1の解像度よりも低い第2の解像度を有する第2のカメラによって提供される。いくつかの実施形態では、深度データは、既知の距離だけ離れて配置されている2つのカメラからの画像の組み合わせによって生成される。いくつかの実施形態では、深度データ及び光学的データは、同じカメラによって生成される。
いくつかの実施形態によれば、コンテンツから離れるナビゲーションを行う電子デバイスは、ホーム画面(例えば、1205)を表示するためにアプリケーションを切り替えること、又はアプリケーション(例えば、図12C〜図12Jの写真アプリケーション)を閉じること(例えば、ホームボタンなどのボタンの繰り返しのアクティブ化によってトリガされるマルチタスクモードにおけるアプリケーション間の切り替え、又はホームボタンなどのボタンのアクティブ化によってトリガされるアプリケーション起動ユーザインタフェースへの転出)を含む。
いくつかの実施形態によれば、電子デバイスは、電子デバイスの正規ユーザに関連付けられたロック解除情報(例えば、ピンコード、パスワード、又は指紋情報若しくは虹彩情報などのバイオメトリック情報)を受信し、ロック解除情報が真正かどうかを判定し、ロック解除情報が真正であるという判定に従って、コンテンツ(例えば、1238)から離れる(例えば、電子デバイスを通常動作に戻す)ナビゲーション(例えば、図12F)(例えば、異なる写真にスワイプすること、又は異なるウェブページに行くこと)を可能化する。
いくつかの実施形態によれば、図14は、説明される様々な実施形態の原理に従って構成された電子デバイス1400の、例示的な機能ブロック図を示す。いくつかの実施形態によれば、電子デバイス1400の機能ブロックは、上述の技術を実行するように構成されている。デバイス1400の機能ブロックは、説明される様々な実施例の原理を実行するために、ハードウェア、ソフトウェア、又はハードウェアとソフトウェアとの組合せによって、任意選択的に実装される。図14で説明する機能ブロックが、説明される様々な実施例の原理を実施するために、任意選択的に、組み合わされ、又はサブブロックに分離されることが当業者に理解されよう。したがって、本明細書における説明は、本明細書で説明されている機能ブロックの任意の可能な組合せ若しくは分離、又は更なる定義を任意選択的にサポートする。
図14に示されるように、電子デバイス1400は、ディスプレイユニット1402と、ディスプレイユニット1402に結合された処理ユニット1404とを含む。いくつかの実施形態では、処理ユニット1404は、表示可能化ユニット1406、キャプチャユニット1408、受信ユニット1410、防止ユニット1412、ナビゲーションユニット1414、許可ユニット1416、無効化ユニット1418、ロックユニット1420、防止ユニット1422、判定ユニット1424、切り替えユニット1126、及び可能化ユニット1128を含む。
1404に構成された処理ユニットは、(例えば、表示可能化ユニット1406を使用して)アプリケーション内のコンテンツをディスプレイ上に表示し、ここで、コンテンツは、アプリケーションが第1の構成にある間に表示しコンテンツを表示しながら、電子デバイスの1つ以上の画像センサから画像データを(例えば、キャプチャユニット1408を使用して)キャプチャし、画像データをキャプチャした後、コンテンツから離れるナビゲーション要求を(例えば、受信ユニット1410を使用して)受信し、コンテンツから離れるナビゲーション要求を受信したことに応じて、第1のコンテンツロック基準のセットが満たされているという判定に従って、コンテンツの表示を維持しながら、コンテンツから離れるナビゲーションを(例えば、防止ユニット1412を使用して)防止し、第1のコンテンツロック基準のセットは、不正ユーザがデバイスを使用していることをキャプチャされた画像データが示すときに満たされる第1の基準を含み、第1のコンテンツロック基準のセットが満たされていないという判定に従って、要求に従いコンテンツから離れるナビゲーションを(例えば、ナビゲーションユニット1414を使用して)行う、ように構成されている。
いくつかの実施形態では、処理ユニット1404は、第1のコンテンツロック基準のセットがもはや満たされないという判定に従って、コンテンツから離れるナビゲーションを(例えば、許可ユニット1416を使用して)可能にするように更に構成されている。
いくつかの実施形態では、第1のロック基準のセットは、電子デバイスの正規ユーザがデバイスを使用していないことをキャプチャされた画像データが示すときに満たされる第2の基準を含む。
いくつかの実施形態では、第1のロック基準のセットは、不正ユーザが存在し、かつ、正規ユーザが存在しないことをキャプチャされた画像データが示すときに満たされる第3の基準を含む。
いくつかの実施形態では、第1のロック基準のセットは、正規ユーザが存在するか否かにかかわらず不正ユーザが存在することをキャプチャされた画像データが示すときに満たされる。
いくつかの実施形態では、処理ユニット1404は、第2のコンテンツロック基準のセットが満たされたという判定に従って、電子デバイスの少なくとも1つの機能を(例えば、無効化ユニット1418を使用して)無効化するように更に構成されている。
いくつかの実施形態では、第1のロック基準のセットと第2のロック基準のセットとは異なる。
いくつかの実施形態では、処理ユニット1404は、第3のコンテンツロック基準のセットが満たされているという判定に従って、アプリケーションを、第1の構成と比較してアプリケーションの動作を制限する第2の構成に(例えば、切り替えユニット1126を使用して)切り替えるように更に構成されている。
いくつかの実施形態では、処理ユニット1404は、第4のコンテンツロック基準のセットが満たされているという判定に従って、アプリケーション内にコンテンツを表示し続けながら、電子デバイスの他の機能を(例えば、ロックユニット1420を使用して)ロックするように更に構成される。
いくつかの実施形態では、処理ユニット1404は、第5のコンテンツロック基準のセットが満たされたという判定に従って、電子デバイスにおいて受信された通信に関連する通知の表示を(例えば、防止ユニット1412を使用して)防止するように更に構成されている。
いくつかの実施形態では、第5のロック基準のセットは、不正ユーザが電子デバイスを使用していることをキャプチャされた画像データが示すときに満たされる第4の基準を含み、第5のロック基準のセットは、第4の基準が満たされる場合に満たされ、第1のロック基準のセットは、キャプチャされた画像データが正規ユーザの不在を示すときに満たされる第5の基準を含む。
いくつかの実施形態では、処理ユニット1404は、第4の基準が満たされているという判定に従って、電子デバイス上のアプリケーション間のナビゲーションを(例えば、防止ユニット1412を使用して)防止し、第5の基準が満たされているという判定に従って、アプリケーション内のナビゲーションを(例えば、防止ユニット1412を使用して)防止する、ように更に構成されている。
いくつかの実施形態では、処理ユニット1404は、電子デバイスの不正ユーザの存在をキャプチャされた画像データが示すかどうかを(例えば、判定ユニット1124を使用して)判定するように更に構成されている。
いくつかの実施形態では、画像データは光学的データ及び深度データを含み、第1のコンテンツロック基準のセットが満たされているかどうかを判定することは光学的データ及び深度データに基づいている。
いくつかの実施形態では、コンテンツから離れるナビゲーションが、現在表示されているコンテンツを並進させることを含む。
いくつかの実施形態では、コンテンツから離れるナビゲーションが、アプリケーション内のコンテンツアイテム間を切り替えることを含む。
いくつかの実施形態では、コンテンツから離れるナビゲーションが、アプリケーションを切り替えること、又はホーム画面を表示するためにアプリケーションを閉じることを含む。
いくつかの実施形態では、処理ユニット1404は、電子デバイスの正規ユーザに関連付けられたロック解除情報を(例えば、受信ユニット1410を使用して)受信し、ロック解除情報が真正であるかどうかを(例えば、判定ユニット1124を使用して)判定し、ロック解除情報が真正であるという判定に従って、コンテンツから離れるナビゲーションを(例えば、可能化ユニット1128を使用して)可能化する、ように更に構成されている。
以下の項目は、上記で詳細に説明されてきた本発明の様々な態様を簡潔に説明する。
方法であって、
ディスプレイを有し、第1のユーザと関連付けられた、電子デバイスにおいて、
第2のユーザから、第1のコンテンツを含む第1のメッセージを受信することと、
第2のユーザに対する第1のステータスデータであって、第1のメッセージに関連付けられ、第1のコンテンツとは別個である、第1のステータスデータを受信することと、
第1のコンテンツを含む第1のメッセージと第1のアバターとを、ディスプレイ上に同時に表示することであって、第1のアバターは第1のステータスデータに基づき、表示された第1のアバターは表示された第1のメッセージに隣接する、ことと、
第1のメッセージ及び第1のアバターを表示した後、第2のユーザから第2のコンテンツを含む第2のメッセージを受信することと、
第2のユーザに対する第2のステータスデータであって、第2のメッセージに関連付けられ、第2のコンテンツとは別個である、第2のステータスを受信することと、
第1のメッセージ及び第1のアバターの表示を維持しながら、第2のコンテンツを含む第2のメッセージと第2のアバターとをディスプレイ上に表示することであって、表示された第2のアバターは表示された第2のメッセージに隣接し、第2のアバターは第2のステータスデータに基づき、第1のアバターと第2のアバターとは異なる、ことと、を含む、方法。
第2のユーザの連絡先情報を含むユーザのセットの連絡先情報を表示することであって、第2のアバターは、第2のユーザの連絡先情報と共に表示される、ことを更に含む、項目1に記載の方法。
第2のユーザに対する第1のアバターモデルを受信することと、
第1のアバターモデルと第1のステータスデータとに基づいて第1のアバターを生成し、第1のアバターモデルと第2のステータスデータとに基づいて第2のアバターを生成することと、を更に含む、項目1又は2の方法に記載。
第2のユーザに対する第2のアバターモデルを受信することと、
第2のアバターモデルと第1のステータスデータとに基づいて、更新された第1のアバターを生成することと、
第2のアバターモデルと第2のステータスデータとに基づいて、更新された第2のアバターを生成することと、
第1のコンテンツを含む第1のメッセージと共に、第1のアバターの代わりに、更新された第1のアバターを表示することと、を更に含む、項目1から3のうちのいずれかに記載の方法。
第1のステータスデータは、第2のユーザの第1のバイオメトリック特性に基づいている、項目1から4のいずれかの方法。
第1のステータスデータに基づいて、第1のアバターに対する1つ以上の特性を選択することを更に含む、項目1から5のいずれかに記載の方法。
第2のステータスデータに基づいて、第2のアバターに対する1つ以上の特性を選択することを更に含み、第2のステータスデータは第2のバイオメトリック特性に基づいている、項目1から6のいずれかに記載の方法。
第1のアバターはアニメーションアバターである、項目1から7のいずれかに記載の方法。
第1のステータスデータは、第2のユーザの光学的画像又は深度画像に基づいている、項目1から8のいずれかに記載の方法。
第1のアバターを作成するために、第1のステータスデータを所定のアバターモデルにマッピングすることを更に含む、項目1から9のいずれかに記載の方法。
第1のステータスデータは、第2のユーザの感情を表している、項目1から10のいずれかに記載の方法。
第1のステータスデータは、第2のユーザが第1のメッセージを作成及び/又は送信した時の第2のユーザの検出された表情に基づいている、項目1から11のいずれかに記載の方法。
第2のステータスデータは、第2のユーザが第2のメッセージを作成及び/又は送信した時の第2のユーザの検出された表情に基づいている、項目1から12のいずれかに記載の方法。
第1のユーザから、かつ、電子デバイス上で、第3のメッセージに対する第3のコンテンツを受信することと、
第1のユーザに対する第3のステータスデータを生成することと、
第3のステータスデータを第3のメッセージと関連付けることと、
第2のユーザに第3のメッセージを送信することと、
第2のユーザに第3のステータスデータを送信することと、を更に含む、項目1から12のいずれかに記載の方法。
第3のコンテンツを含む第3のメッセージと第3のアバターとを同時に表示することであって、第3のアバターは第3のステータスデータに基づき、第3のメッセージ及び第3のアバターは、第2のメッセージ及び第2のアバターと同時に表示される、ことを更に含む、項目13に記載の方法。
第1のアバター及び第2のアバターは、第2のユーザの身体的外観表す、項目1から14のいずれかに記載の方法。
第1のメッセージ及び第1のアバターを表示することは、第1のメッセージを、第1のアバターの口から出てくるテキストバブルとして表示することを含む、項目1から16のいずれかに記載の方法。
第2のユーザは、第1のメッセージと第2のメッセージとを送信するソース電子デバイスと関連付けられている、項目1から16のいずれかに記載の方法。
電子デバイスであって、
ディスプレイと、
1つ以上のプロセッサと、
1つ以上の入力デバイスと、
メモリと、
1つ以上のプログラムと、を備える、電子デバイスであって、1つ以上のプログラムはメモリに記憶され、1つ以上のプロセッサによって実行されるように構成されており、1つ以上のプログラムは、
第2のユーザから、第1のコンテンツを含む第1のメッセージを受信し、
第2のユーザに対する第1のステータスデータであって、第1のメッセージに関連付けられ、第1のコンテンツとは別個である、第1のステータスデータを受信し、
第1のコンテンツを含む第1のメッセージと第1のアバターとを、ディスプレイ上に同時に表示し、第1のアバターは第1のステータスデータに基づき、表示された第1のアバターは表示された第1のメッセージに隣接し、
第1のメッセージ及び第1のアバターを表示した後、第2のユーザから第2のコンテンツを含む第2のメッセージを受信し、
第2のユーザに対する第2のステータスデータであって、第2のメッセージに関連付けられ、第2のコンテンツとは別個である、第2のステータスを受信し、
第1のメッセージ及び第1のアバターの表示を維持しながら、第2のコンテンツを含む第2のメッセージと第2のアバターとをディスプレイ上に表示する、命令を含み、表示された第2のアバターは表示された第2のメッセージに隣接し、第2のアバターは第2のステータスデータに基づき、第1のアバターと第2のアバターとは異なる、電子デバイス。
1つ以上のプログラムを記憶する非一時的コンピュータ可読記憶媒体であって、1つ以上のプログラムが命令を含み、命令は、ディスプレイと1つ以上の入力デバイスとを含む電子デバイスの1つ以上のプロセッサによって実行されると、デバイスに、
第2のユーザから、第1のコンテンツを含む第1のメッセージを受信させ、
第2のユーザに対する第1のステータスデータであって、第1のメッセージに関連付けられ、第1のコンテンツとは別個である、第1のステータスデータを受信させ、
第1のコンテンツを含む第1のメッセージと第1のアバターとを、ディスプレイ上に同時に表示させ、第1のアバターは第1のステータスデータに基づき、表示された第1のアバターは表示された第1のメッセージに隣接し、
第1のメッセージ及び第1のアバターを表示した後、第2のユーザから第2のコンテンツを含む第2のメッセージを受信させ、
第2のユーザに対する第2のステータスデータであって、第2のメッセージに関連付けられ、第2のコンテンツとは別個である、第2のステータスを受信させ、
第1のメッセージ及び第1のアバターの表示を維持しながら、第2のコンテンツを含む第2のメッセージと第2のアバターとをディスプレイ上に表示させ、表示された第2のアバターは表示された第2のメッセージに隣接し、第2のアバターは第2のステータスデータに基づき、第1のアバターと第2のアバターとは異なる、非一時的コンピュータ可読記憶媒体。
電子デバイスであって、
ディスプレイと、
1つ以上の入力デバイスと、
第2のユーザから、第1のコンテンツを含む第1のメッセージを受信する手段と、
第2のユーザに対する第1のステータスデータであって、第1のメッセージに関連付けられ、第1のコンテンツとは別個である、第1のステータスデータを受信する手段と、
第1のコンテンツを含む第1のメッセージと第1のアバターとを、ディスプレイ上に同時に表示する手段であって、第1のアバターは第1のステータスデータに基づき、表示された第1のアバターは表示された第1のメッセージに隣接する、手段と、
第1のメッセージ及び第1のアバターを表示した後、第2のユーザから第2のコンテンツを含む第2のメッセージを受信する手段と、
第2のユーザに対する第2のステータスデータであって、第2のメッセージに関連付けられ、第2のコンテンツとは別個である、第2のステータスを受信する手段と、
第1のメッセージ及び第1のアバターの表示を維持しながら、第2のコンテンツを含む第2のメッセージと第2のアバターとをディスプレイ上に表示する手段であって、表示された第2のアバターは表示された第2のメッセージに隣接し、第2のアバターは第2のステータスデータに基づき、第1のアバターと第2のアバターとは異なる、手段と、を含む、電子デバイス。
電子デバイスであって、
ディスプレイと、
1つ以上のプロセッサと、
メモリと、
1つ以上のプログラムと、を備え、1つ以上のプログラムはメモリに記憶され、1つ以上のプロセッサによって実行されるように構成されており、1つ以上のプログラムは、項目1から18に記載の方法のいずれかを実行する命令を含む、電子デバイス。
1つ以上のプログラムを記憶する非一時的コンピュータ可読記憶媒体であって、1つ以上のプログラムが命令を含み、命令が、ディスプレイと1つ以上の入力デバイスとを有する電子デバイスの1つ以上のプロセッサによって実行されると、デバイスに、項目1から18に記載の方法のいずれかを実行させる、非一時的コンピュータ可読記憶媒体。
ディスプレイと、
項目1から18に記載の方法のいずれかを実行する手段と、を含む、電子デバイス。
方法であって、
1つ以上の画像センサ、メモリ、及びディスプレイを有する電子デバイスにおいて、
電子デバイスの1つ以上の画像センサから、第1の画像データであって、第1の視点からのオブジェクトの第1の光学的画像データを含む、第1の画像データをキャプチャすることと、
電子デバイスの1つ以上の画像センサから、第2の画像データであって、第1の視点とは異なる第2の視点からのオブジェクトの第2の光学的画像光データを含む、第2の画像データをキャプチャすることと、
第1の視点から第2の視点への視点の変化に基づいて、アルゴリズムを選択することと、
アルゴリズムに基づいて、オブジェクトの3Dモデリングを継続するのに必要な追加の画像データを判定することと、
選択されたアルゴリズムに基づいて判定された追加の画像データをキャプチャする命令を提供する視覚フィードバックをディスプレイ上に表示することと、を含む方法。
第3の視点からのオブジェクトの第3の光学的画像データを含む、第3のデータを受信することと、
第3の視点に基づいて、前記アルゴリズムとは異なる更新されたアルゴリズムを選択することと、
更新されたアルゴリズムに基づいて、オブジェクトの3Dモデリングを継続するために必要とされる、追加の画像データとは異なる更新された追加の画像データを判定することと、
更新された追加の画像データをキャプチャするための更新された命令を提供する視覚フィードバックを、ディスプレイ上に表示することであって、更新された命令は、更新されたアルゴリズムを選択する前に表示された命令とは異なる、ことと、を更に含む、項目25に記載の方法。
選択された更新されたアルゴリズムを使用して、第1の画像データ、第2の画像データ、第3の画像データ、及び更新された追加の画像データに基づいて、オブジェクトの3Dモデルを構築することを更に含む、項目26に記載の方法。
第1の画像データの少なくとも一部をリモートサーバに送信することと、
第3のデータがオブジェクトに利用可能であるという指標をリモートサーバから受信することと、を更に含む、項目26又は27に記載の方法。
更新された追加の画像データをキャプチャするための更新された命令を提供する視覚フィードバックを、ディスプレイ上に表示することは、
第1のアルゴリズムが選択されたという判定に従って、第1の命令セットを表示することと、
第1のアルゴリズムとは異なる第2のアルゴリズムが選択されたという判定に従って、視覚フィードバックが、第1の命令セットとは異なる第2の命令セットを含むことと、を含む、項目25から28のいずれかに記載の方法。
第1の画像データは、第1の視点からのオブジェクトの第1の深度画像データを含む、項目25から29のいずれかに記載の方法。
第1の視点に対する第1の位置データを取得することを更に含む、項目25から30のいずれかに記載の方法。
アルゴリズムを選択することはまた、第1の位置データに基づいている、項目31に記載の方法。
第2の視点に対する第2の位置データをキャプチャすることを更に含み、第2の画像データは、第2の視点からのオブジェクトの第2の深度画像データを含み、アルゴリズムを選択することはまた、第2の位置データに基づいている、項目25から31に記載のいずれかの方法。
選択されたアルゴリズムを使用して、第1の画像データ、第2の画像データ、及び追加の画像データに基づいて、オブジェクトの3Dモデルを構築することと、
メモリに3Dモデルを記憶することと、を更に含む、項目25から31又は46から51のいずれかに記載の方法。
アルゴリズムを選択することは、第1の画像データ及び第2の画像データがオブジェクトの走査からのものであることを示す、第1の視点から第2の視点への変化に基づいて、走査ベースのアルゴリズムを選択することを含む、項目25から34のいずれかに記載の方法。
アルゴリズムを選択することは、第1の視点及び第2の視点が離散画像に対するものであることを示す、第1の視点から第2の視点への変化に基づいて、離散画像ベースのアルゴリズムを選択することを含む、項目25から35のいずれかに記載の方法。
オブジェクトにタッチしている第1の画像データ内のサポートを識別することと、
選択されたアルゴリズムを使用して、第1の画像データ及び第2の画像データに基づいて、オブジェクトの、第1のオブジェクトにタッチしているサポートを含まない3Dモデルを構築することと、を更に含む、項目25から26、28から33又は35から36のいずれかに記載の方法。
オブジェクトのライブ画像を含む第1のウィンドウを、電子デバイスのディスプレイ上に表示することと、
オブジェクトのモデルの画像を含む第2のウィンドウを、ディスプレイ上に表示することであって、モデルは第1の画像データ及び第2の画像データに基づいている、ことと、を更に含む、項目25から37に記載のいずれかの方法。
電子デバイスであって、
ディスプレイと、
1つ以上のプロセッサと、
1つ以上の入力デバイスと、
メモリと、
1つ以上のプログラムと、を備える、電子デバイスであって、1つ以上のプログラムはメモリに記憶され、1つ以上のプロセッサによって実行されるように構成されており、1つ以上のプログラムは、
電子デバイスの1つ以上の画像センサから、第1の画像データであって、第1の視点からのオブジェクトの第1の光学的画像データを含む、第1の画像データをキャプチャし、
電子デバイスの1つ以上の画像センサから、第2の画像データであって、第1の視点とは異なる第2の視点からのオブジェクトの第2の光学的画像光データを含む、第2の画像データをキャプチャし、
第1の視点から第2の視点への視点の変化に基づいて、アルゴリズムを選択し、
アルゴリズムに基づいて、オブジェクトの3Dモデリングを継続するのに必要な追加の画像データを判定し、
選択されたアルゴリズムに基づいて判定された追加の画像データをキャプチャする命令を提供する視覚フィードバックをディスプレイ上に表示する、命令を含む、電子デバイス。
1つ以上のプログラムを記憶する非一時的コンピュータ可読記憶媒体であって、1つ以上のプログラムが命令を含み、命令は、ディスプレイと1つ以上の入力デバイスとを含む電子デバイスの1つ以上のプロセッサによって実行されると、デバイスに、
電子デバイスの1つ以上の画像センサから、第1の画像データであって、第1の視点からのオブジェクトの第1の光学的画像データを含む、第1の画像データをキャプチャさせ、
電子デバイスの1つ以上の画像センサから、第2の画像データであって、第1の視点とは異なる第2の視点からのオブジェクトの第2の光学的画像光データを含む、第2の画像データをキャプチャさせ、
第1の視点から第2の視点への視点の変化に基づいて、アルゴリズムを選択させ、
アルゴリズムに基づいて、オブジェクトの3Dモデリングを継続するのに必要な追加の画像データを判定させ、
選択されたアルゴリズムに基づいて判定された追加の画像データをキャプチャする命令を提供する視覚フィードバックをディスプレイ上に表示させる、非一時的コンピュータ可読記憶媒体。
電子デバイスであって、
ディスプレイと、
1つ以上の入力デバイスと、
電子デバイスの1つ以上の画像センサから、第1の画像データであって、第1の視点からのオブジェクトの第1の光学的画像データを含む、第1の画像データをキャプチャする手段と、
電子デバイスの1つ以上の画像センサから、第2の画像データであって、第1の視点とは異なる第2の視点からのオブジェクトの第2の光学的画像光データを含む、第2の画像データをキャプチャする手段と、
第1の視点から第2の視点への視点の変化に基づいて、アルゴリズムを選択する手段と、
アルゴリズムに基づいて、オブジェクトの3Dモデリングを継続するのに必要な追加の画像データを判定する手段と、
選択されたアルゴリズムに基づいて判定された追加の画像データをキャプチャする命令を提供する視覚フィードバックをディスプレイ上に表示する手段と、を含む、電子デバイス。
電子デバイスであって、
ディスプレイと、
1つ以上のプロセッサと、
メモリと、
1つ以上のプログラムと、を備え、1つ以上のプログラムはメモリに記憶され、1つ以上のプロセッサによって実行されるように構成されており、1つ以上のプログラムは、項目25から38に記載の方法のいずれかを実行する命令を含む、電子デバイス。
1つ以上のプログラムを記憶する非一時的コンピュータ可読記憶媒体であって、1つ以上のプログラムが命令を含み、命令が、ディスプレイと1つ以上の入力デバイスとを有する電子デバイスの1つ以上のプロセッサによって実行されると、デバイスに、項目25から38に記載の方法のいずれかを実行させる、非一時的コンピュータ可読記憶媒体。
電子デバイスであって、
ディスプレイと、
項目25から38に記載の方法のいずれかを実行する手段を含む、電子デバイス。
方法であって、
ディスプレイと1つ以上の画像センサとを有する電子デバイスにおいて、
アプリケーション内のコンテンツをディスプレイ上に表示することであって、コンテンツはアプリケーションが第1の構成にある間に表示される、ことと、
コンテンツを表示しながら、電子デバイスの1つ以上の画像センサから画像データをキャプチャすることと、
画像データをキャプチャした後、コンテンツから離れるナビゲーション要求を受信することと、
コンテンツから離れるナビゲーション要求を受信したことに応じて、
第1のコンテンツロック基準のセットが満たされているという判定に従って、コンテンツの表示を維持しながら、コンテンツから離れるナビゲーションを防止することであって、第1のコンテンツロック基準のセットは、不正ユーザがデバイスを使用していることをキャプチャされた画像データが示すときに満たされる第1の基準を含む、ことと、
第1のコンテンツロック基準のセットが満たされていないという判定に従って、要求に従いコンテンツから離れるナビゲーションを行うことと、を含む、方法。
第1のコンテンツロック基準のセットがもはや満たされないという判定に従って、コンテンツから離れるナビゲーションを可能にすることを更に含む、項目45の方法。
第1のロック基準のセットは、電子デバイスの正規ユーザがデバイスを使用していないことをキャプチャされた画像データが示すときに満たされる第2の基準を含む、項目45又は46に記載の方法。
第1のロック基準のセットは、不正ユーザが存在し、かつ、正規ユーザが存在しないことをキャプチャされた画像データが示すときに満たされる第3の基準を含む、項目45から47のいずれかに記載の方法。
第1のロック基準のセットは、正規ユーザが存在するか否かにかかわらず不正ユーザが存在することをキャプチャされた画像データが示すときに満たされる、項目45から48のいずれかに記載の方法。
第2のコンテンツロック基準のセットが満たされたという判定に従って、電子デバイスの少なくとも1つの機能を無効化することを更に含む、項目45から49のいずれかに記載の方法。
第1のロック基準のセットと第2のロック基準のセットとは異なる、項目50に記載の方法。
第3のコンテンツロック基準のセットが満たされているという判定に従って、アプリケーションを、第1の構成と比較してアプリケーションの動作を制限する第2の構成に切り替えることを更に含む、項目45から51のいずれかに記載の方法。
第4のコンテンツロック基準のセットが満たされているという判定に従って、アプリケーション内にコンテンツを表示し続けながら、電子デバイスの他の機能をロックすることを更に含む、項目45から52のいずれかに記載の方法。
第5のコンテンツロック基準のセットが満たされているという判定に従って、電子デバイスにおいて受信された通信に関連する通知の表示を防止することを更に含む、項目45から53のいずれかに記載の方法。
第5のロック基準のセットは、不正ユーザが電子デバイスを使用していることをキャプチャされた画像データが示すときに満たされる第4の基準を含み、第5のロック基準のセットは、第4の基準が満たされる場合に満たされ、
第1のロック基準のセットは、キャプチャされた画像データが正規ユーザの不在を示すときに満たされる第5の基準を含む、項目54に記載の方法。
第4の基準が満たされていることに従って、電子デバイス上のアプリケーション間のナビゲーションを防止することと、
第5の基準が満たされていることに従って、アプリケーション内のナビゲーションを防止することと、を更に含む、項目55に記載の方法。
電子デバイスの不正ユーザの存在をキャプチャされた画像データが示すかどうかを判定することを、更に含む、項目45から56のいずれかに記載の方法。
画像データは光学的データ及び深度データを含み、第1のコンテンツロック基準のセットが満たされているかどうかを判定することは光学的データ及び深度データに基づいている、項目45から57のいずれかに記載の方法。
コンテンツから離れるナビゲーションが、現在表示されているコンテンツを並進させることを含む、項目45から58のいずれかの方法。
コンテンツから離れるナビゲーションが、アプリケーション内のコンテンツアイテム間を切り替えることを含む、項目45から59のいずれかに記載の方法。
コンテンツから離れるナビゲーションが、アプリケーションを切り替えること、又はホーム画面を表示するためにアプリケーションを閉じることを含む、項目45から60のいずれかに記載の方法。
電子デバイスの正規ユーザに関連付けられたロック解除情報を受信することと、
ロック解除情報が真正であるかどうかを判定することと、
ロック解除情報が真正であるという判定に従って、コンテンツから離れるナビゲーションを可能化することと、を更に含む、項目45から61のいずれかに記載の方法。
電子デバイスであって、
ディスプレイと、
1つ以上のプロセッサと、
1つ以上の入力デバイスと、
メモリと、
1つ以上のプログラムと、を備える、電子デバイスであって、1つ以上のプログラムはメモリに記憶され、1つ以上のプロセッサによって実行されるように構成されており、1つ以上のプログラムは、
アプリケーション内のコンテンツをディスプレイ上に表示し、コンテンツはアプリケーションが第1の構成にある間に表示され、
コンテンツを表示しながら、電子デバイスの1つ以上の画像センサから画像データをキャプチャし、
画像データをキャプチャした後、コンテンツから離れるナビゲーション要求を受信し、
コンテンツから離れるナビゲーション要求を受信したことに応じて、
第1のコンテンツロック基準のセットが満たされているという判定に従って、コンテンツの表示を維持しながら、コンテンツから離れるナビゲーションを防止し、第1のコンテンツロック基準のセットは、不正ユーザがデバイスを使用していることをキャプチャされた画像データが示すときに満たされる第1の基準を含み、
第1のコンテンツロック基準のセットが満たされていないという判定に従って、要求に従いコンテンツから離れるナビゲーションを行う、命令を含む、電子デバイス。
1つ以上のプログラムを記憶する非一時的コンピュータ可読記憶媒体であって、1つ以上のプログラムが命令を含み、命令は、ディスプレイと1つ以上の入力デバイスとを含む電子デバイスの1つ以上のプロセッサによって実行されると、デバイスに、
アプリケーション内のコンテンツをディスプレイ上に表示させ、コンテンツはアプリケーションが第1の構成にある間に表示され、
コンテンツを表示しながら、電子デバイスの1つ以上の画像センサから画像データをキャプチャさせ、
画像データをキャプチャした後、コンテンツから離れるナビゲーション要求を受信させ、
コンテンツから離れるナビゲーション要求を受信したことに応じて、
第1のコンテンツロック基準のセットが満たされているという判定に従って、コンテンツの表示を維持しながら、コンテンツから離れるナビゲーションを防止させ、第1のコンテンツロック基準のセットは、不正ユーザがデバイスを使用していることをキャプチャされた画像データが示すときに満たされる第1の基準を含み、
第1のコンテンツロック基準のセットが満たされていないという判定に従って、要求に従いコンテンツから離れるナビゲーションを行わせる、非一時的コンピュータ可読記憶媒体。
電子デバイスであって、
ディスプレイと、
1つ以上の入力デバイスと、
アプリケーション内のコンテンツをディスプレイ上に表示する手段であって、コンテンツはアプリケーションが第1の構成にある間に表示される、手段と、
コンテンツを表示しながら、電子デバイスの1つ以上の画像センサから画像データをキャプチャする手段と、
画像データをキャプチャした後、コンテンツから離れるナビゲーション要求を受信する手段と、
コンテンツから離れるナビゲーション要求を受信したことに応じて、
第1のコンテンツロック基準のセットが満たされているという判定に従って、コンテンツの表示を維持しながら、コンテンツから離れるナビゲーションを防止する手段であって、第1のコンテンツロック基準のセットは、不正ユーザがデバイスを使用していることをキャプチャされた画像データが示すときに満たされる第1の基準を含む、手段と、
第1のコンテンツロック基準のセットが満たされていないという判定に従って、要求に従いコンテンツから離れるナビゲーションを行う手段と、を含む、電子デバイス。
電子デバイスであって、
ディスプレイと、
1つ以上のプロセッサと、
メモリと、
1つ以上のプログラムと、を備え、1つ以上のプログラムはメモリに記憶され、1つ以上のプロセッサによって実行されるように構成されており、1つ以上のプログラムは、項目45から62に記載の方法のいずれかを実行する命令を含む、電子デバイス。
1つ以上のプログラムを記憶する非一時的コンピュータ可読記憶媒体であって、1つ以上のプログラムが命令を含み、命令が、ディスプレイと1つ以上の入力デバイスとを有する電子デバイスの1つ以上のプロセッサによって実行されると、デバイスに、項目45から62に記載の方法のいずれかを実行させる、非一時的コンピュータ可読記憶媒体。
電子デバイスであって、
ディスプレイと、
項目45から62に記載の方法のいずれかを実行する手段を含む、電子デバイス。
上述した説明は、説明の目的上、特定の実施形態を参照して説明されている。しかし、上記の例示的な議論は、網羅的であること、又は開示される厳密な形態に本発明を限定することを意図するものではない。上記の教示を考慮して、多くの修正及び変形が可能である。これらの実施形態は、本技術の原理、及びその実際の適用を最も良好に説明するために、選択及び説明されたものである。それにより、他の当業者は、想到される具体的な用途に適するような様々な修正を使用して、本技術及び様々な実施形態を最も良好に利用することが可能となる。
添付図面を参照して、本開示及び実施例を十分に説明してきたが、様々な変更及び修正が、当業者には明らかとなるであろうことに留意されたい。そのような変更及び修正は、特許請求の範囲によって定義されるような、本開示及び実施例の範囲内に含まれるものとして理解されたい。
上述のように、本技術の一態様は、ユーザが求める内容又はユーザが関心を持つ可能性のある任意の他の内容に関するユーザへの配信を改善するために、種々のソースから入手可能なデータを収集及び使用することである。本開示は、いくつかの例において、この収集されたデータは、特定の人物を一意に特定する個人情報データ、又は特定の人物と通信する若しくはその所在を突き止めるために使用できる個人情報データを含み得ることを想到している。そのような個人情報データとしては、人口統計データ、位置に基づくデータ、電話番号、電子メールアドレス、自宅の住所、又は任意の他の識別情報を挙げることができる。
本開示は、本技術におけるそのような個人情報データの使用がユーザの利益になる使用であり得る点を認識するものである。例えば、よりユーザの興味を引く対象のコンテンツを配信するために、個人情報データが使用されてもよい。したがって、そのような個人情報データの使用は、配信されるコンテンツの意図的な制御を可能にする。更には、ユーザに利益をもたらす、個人情報データに関する他の使用もまた、本開示によって想到される。
本開示は、そのような個人情報データの収集、分析、開示、転送、記憶、又は他の使用目的の責任を負うエンティティが、適切に規定されたプライバシーのポリシー及び/又はプライバシーの慣行に準拠すると更に想到する。具体的には、そのようなエンティティは、個人情報データを秘密として厳重に保守するための、業界又は政府の要件を満たしているか又は上回るものとして一般に認識されている、プライバシーのポリシー及び慣行を実施し、一貫して使用するべきである。例えば、ユーザからの個人情報は、そのエンティティの合法的かつ正当な使用のために収集されるべきであり、それらの合法的使用を除いて、共用又は販売されるべきではない。更には、そのような収集は、ユーザに告知して同意を得た後にのみ実施するべきである。加えて、そのようなエンティティは、そのような個人情報データへのアクセスを保護して安全化し、その個人情報データへのアクセス権を有する他者が、それらのプライバシーのポリシー及び手順を遵守することを保証するための、あらゆる必要な措置を講じるであろう。更には、そのようなエンティティは、広く受け入れられているプライバシーのポリシー及び慣行に対する自身の遵守を証明するために、第三者による評価を自らが受けることができる。
前述のことがらにも関わらず、本開示はまた、個人情報データの使用又は個人情報データへのアクセスを、ユーザが選択的に阻止する実施形態も想到する。すなわち、本開示は、そのような個人情報データへのアクセスを防止又は阻止するように、ハードウェア要素及び/又はソフトウェア要素を提供することができると想到する。例えば、広告配信サービスの場合において、本技術は、ユーザが、サービスの登録の間、個人情報データの収集への参加の「オプトイン」又は「オプトアウト」を選択することを可能とするように構成することができる。別の実施例では、ユーザは、対象のコンテンツ配信サービスに対して位置情報を提供しないことを選択してもよい。更に別の実施例では、ユーザは、正確な位置情報を提供しないが位置のゾーン情報の転送は許可することを選択してもよい。
それゆえ、本開示は、1つ以上の様々な開示された実施形態を実施するための、個人情報データの使用を広範に網羅するものではあるが、本開示はまた、そのような個人情報データにアクセスすることを必要とせずに、それらの様々な実施形態を実施することもまた可能であることを想到している。すなわち、本技術の様々な実施形態は、そのような個人情報データの全て又は一部分が欠如することにより、実施不可能となるものではない。例えば、ユーザに関連付けられたデバイスによって要求されるコンテンツなどの非個人情報データ若しくは必要最小限の個人情報、コンテンツ配信サービスが入手可能な他の非個人情報、又は公的に入手可能な情報に基づき嗜好を推測することによって、コンテンツを選択し、ユーザへ配信することができる。