以下の説明では、例示的な方法、パラメータなどが記載される。しかし、そのような説明の目的は、本開示の範囲を制限することではなく、例示的な実施形態の説明を提供することであることを理解されたい。
ビジュアルエフェクトを表示するための効率的な方法及びインタフェースを提供する電子デバイスが必要とされている。例えば、ビジュアルエフェクトを表示するためのプログラムがすでに存在するが、これらのプログラムは、ユーザが様々なアプリケーションにおいてビジュアルエフェクトを表示することができる、以下の技術に比べて非効率で使いにくい。かかる技術によって、アプリケーションにおいてビジュアルエフェクトを表示するユーザの認知負担を軽減し、それによって生産性を向上させることができる。更に、そのような技術は、通常であれば冗長なユーザ入力に対して浪費される、プロセッサ及びバッテリの電力を低減することができる。
以下、図1A〜図1B、図2、図3、図4A〜図4B、及び図5A〜図5Bは、イベント通知を管理する技術を実行するための例示的なデバイスの説明を提供する。
図6A〜図6BQは、メッセージングアプリケーションにおいてビジュアルエフェクトを表示するための例示的なユーザインタフェースを示す。図7A及び図7Bは、一部の実施形態に係る、メッセージングアプリケーションにおいてビジュアルエフェクトを表示するための方法を示すフロー図である。図6A〜図6BQのユーザインタフェースを使用して、図7A及び図7Bの処理を含む、以下で説明する処理を示す。
図8A〜図8BQは、カメラアプリケーションにおいてビジュアルエフェクトを表示するための例示的なユーザインタフェースを示す。図9A及び図9Bは、一部の実施形態に係る、カメラアプリケーションにおいてビジュアルエフェクトを表示するための方法を示すフロー図である。図8A〜図8BQのユーザインタフェースを使用して、図9A及び図9Bの処理を含む、以下で説明する処理を示す。
図10A〜図10ALは、カメラアプリケーションにおいてビジュアルエフェクトを表示するための例示的なユーザインタフェースを示す。図11A及び図11Bは、一部の実施形態に係る、メディアアイテム視聴モードにおいてビジュアルエフェクトを表示するための方法を示すフロー図である。図10A〜図10ALのユーザインタフェースを使用して、図11A及び図11Bのプロセスを含む、以下で説明する処理を示す。
図12A〜図12APは、ライブビデオ通信セッションにおいてビジュアルエフェクトを表示するための例示的なユーザインタフェースを示す。図13A及び図13Bは、一部の実施形態に係る、ライブビデオ通信セッションにおいてビジュアルエフェクトを表示するための方法を示すフロー図である。図12A〜図12APのユーザインタフェースを使用して、図13A及び13Bのプロセスを含む、以下で説明するプロセスを示す。
図14A〜図14Mは、カメラアプリケーションにおいてビジュアルエフェクトを表示するための例示的なユーザインタフェースを示す。図15A及び図15Bは、一部の実施形態に係る、カメラアプリケーションにおいてビジュアルエフェクトを表示するための方法を示すフロー図である。図14A〜図14Mのユーザインタフェースを使用して、図15A及び図15Bのプロセスを含む、以下で説明するプロセスを示す。
以下の説明では、さまざまな要素を説明するために「第1」、「第2」などの用語が使用されるが、これらの要素はこれらの用語によって限定されるべきではない。これらの用語は、1つの要素を別の要素と区別するためにのみ使用される。例えば、説明されている様々な実施形態の範囲から逸脱することなく、第1のタッチは第2のタッチと称することができ、同様に、第2のタッチは第1のタッチと称し得る。第1のタッチ及び第2のタッチは共にタッチであるが、同じタッチではない。
本明細書で説明される様々な実施形態の説明で使用される用語は、特定の実施形態を説明することのみを目的とするものであって、限定することを意図するものではない。説明される様々な実施形態の説明及び添付の特許請求の範囲で使用されるように、単数形「a」、「an」、及び「the」は、文脈がそうではないことを明確に示さない限り、複数形もまた含むことが意図される。本明細書で使用されるように、用語「and/or(及び/又は)」は、関連する列挙された項目のうちの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機能及び/又は音楽プレーヤ機能などの他の機能も含む、モバイル電話機などのポータブル通信デバイスである。ポータブル多機能デバイスの例示的な実施形態には、California州CupertinoのApple Inc.のiPhone(登録商標)、iPod Touch(登録商標)及びiPad(登録商標)デバイスが挙げられるが、これらに限定されない。タッチ感知面(例えば、タッチスクリーンディスプレイ及び/又はタッチパッド)を備えたラップトップ又はタブレットコンピュータなどの他のポータブル電子デバイスも、任意選択的に、使用される。一部の実施形態では、デバイスがポータブル通信デバイスではなく、タッチ感知面(例えば、タッチスクリーンディスプレイ及び/又はタッチパッド)を備えたデスクトップコンピュータであることもまた理解されたい。
以下の議論では、ディスプレイ及びタッチ感知面を含む電子デバイスが説明される。しかしながら、電子デバイスが物理キーボード、マウス、及び/又はジョイスティックなどの、1つ以上の他の物理ユーザインタフェースデバイスを任意選択的に含むことを理解されたい。
このデバイスは、一般的に、描画アプリケーション、プレゼンテーションアプリケーション、ワードプロセッシングアプリケーション、ウェブサイト作成アプリケーション、ディスクオーサリングアプリケーション、スプレッドシートアプリケーション、ゲームアプリケーション、電話アプリケーション、テレビ会議アプリケーション、電子メールアプリケーション、インスタントメッセージングアプリケーション、トレーニングサポートアプリケーション、写真管理アプリケーション、デジタルカメラアプリケーション、デジタルビデオカメラアプリケーション、ウェブブラウジングアプリケーション、デジタル音楽プレーヤアプリケーション及び/又はデジタルビデオプレーヤアプリケーションのうちの1つ以上などの様々なアプリケーションをサポートする。
本デバイス上で実行される様々なアプリケーションは、タッチ感知面などの、少なくとも1つの共通の物理ユーザインタフェースデバイスを、任意選択的に使用する。タッチ感知面の1つ以上の機能、並びにデバイス上に表示される対応する情報は、アプリケーションごとに、及び/又はそれぞれのアプリケーション内で、任意選択的に、調節及び/又は変更される。このように、デバイスの共通の(タッチ感知面などの)物理アーキテクチャは、ユーザにとって直観的かつ透過的なユーザインタフェースを備える様々なアプリケーションを、任意選択的にサポートする。
ここで、タッチ感知ディスプレイを備えるポータブルデバイスの実施形態に注意を向ける。図1Aは、一部の実施形態による、タッチ感知ディスプレイシステム112を備えるポータブル多機能デバイス100を示すブロック図である。タッチ感知ディスプレイ112は、便宜上「タッチスクリーン」と呼ばれる場合があり、「タッチ感知ディスプレイシステム」として既知であるか又は呼ばれる場合もある。デバイス100は、(1つ以上のコンピュータ可読記憶媒体を任意選択的に含む)メモリ102、メモリコントローラ122、1つ以上の処理ユニット(CPU)120、周辺機器インタフェース118、RF回路108、オーディオ回路110、スピーカ111、マイクロフォン113、入出力(I/O)サブシステム106、他の入力制御デバイス116、及び外部ポート124を含む。デバイス100は、1つ以上の光センサ164を任意選択的に含む。デバイス100は、デバイス100(例えば、デバイス100のタッチ感知ディスプレイシステム112などのタッチ感知面)上の接触の強度を検出するための、1つ以上の接触強度センサ165を任意選択的に含む。デバイス100は、デバイス100上に触知出力を生成する(例えば、デバイス100のタッチ感知ディスプレイシステム112又はデバイス300のタッチパッド355などの、タッチ感知面上に触知出力を生成する)ための、1つ以上の触知出力生成器167を、任意選択的に含む。これらの構成要素は、1つ以上の通信バス又は信号ライン103を介して任意選択的に通信する。
本明細書及び特許請求の範囲で使用されるとき、タッチ感知面上の接触の「強度」という用語は、タッチ感知面上の接触(例えば、指接触)の力若しくは圧力(単位面積当りの力)、又はタッチ感知面上の接触の力若しくは圧力の代替物(代用物)を指す。接触の強度は、少なくとも4つの別個の値を含み、より典型的には、何百もの(例えば、少なくとも256個の)別個の値を含む値範囲を有する。接触の強度は、任意選択的に、様々な手法、及び様々なセンサ又はセンサの組合せを使用して判定(又は、測定)される。例えば、タッチ感知面の下に又はこれに隣接する1つ以上の力センサは、任意選択的に、タッチ感知面上の様々な点における力を測定するために使用される。一部の実装形態では、複数の力センサからの力測定値は、接触の力の推定値を判定するために組み合わされる(例えば、加重平均)。同様に、スタイラスの感圧性先端部は、任意選択的に、タッチ感知面上のスタイラスの圧力を判定するために使用される。あるいは、タッチ感知面上で検出される接触領域のサイズ及び/若しくはその変化、接触に近接するタッチ感知面の電気容量及び/若しくはその変化、並びに/又は、接触に近接するタッチ感知面の抵抗及び/若しくはその変化が、タッチ感知面上の接触の力又は圧力の代替物として、任意選択的に用いられる。一部の実装形態では、接触の力又は圧力に対する代替的測定値は、強度閾値を超えているかを判定するために直接使用される(例えば、強度閾値は、代替的測定値に対応する単位で説明される)。一部の実装形態では、接触の力又は圧力に対する代替的測定値は、推定される力又は圧力に変換され、推定される力又は圧力は、強度閾値を超えているかを判定するために使用される(例えば、強度閾値は、圧力の単位で測定された圧力閾値である)。接触の強度をユーザ入力の属性として使用することによって、アフォーダンスを表示するための(例えば、タッチ感知ディスプレイ上で)、及び/又は、ユーザ入力を受信するための(例えば、タッチ感知ディスプレイ、タッチ感知面、又はノブ若しくはボタンなどの物理的/機械的制御部を介して)、面積が制限されている、低減されたサイズのデバイス上で別途ユーザによってアクセスすることができないことがある追加的なデバイス機能へのユーザのアクセスが可能となる。
本明細書及び特許請求の範囲で使用されるとき、用語「触知出力」は、ユーザの触覚でユーザによって検出されることになる、デバイスの前の位置に対するデバイスの物理的変位、デバイスの構成要素(例えば、タッチ感知面)のデバイスの別の構成要素(例えば、筐体)に対する物理的変位、又はデバイスの質量中心に対する構成要素の変位を指す。例えば、デバイス又はデバイスの構成要素がタッチに敏感なユーザの表面(例えば、ユーザの手の指、手のひら、又は他の部分)に接触している状況において、物理的変位によって生成された触知出力は、デバイス又はデバイスの構成要素の物理的特性における認識された変化に相当する触感として、ユーザによって解釈される。例えば、タッチ感知面(例えば、タッチ感知ディスプレイ又はトラックパッド)の移動は、任意選択的に、ユーザによって、物理アクチュエータボタンの「ダウンクリック」又は「アップクリック」として解釈される。一部の場合では、ユーザの動作により物理的に押された(例えば、変位された)タッチ感知面に関連付けられた物理アクチュエータボタンの移動がないときでさえ、ユーザは「ダウンクリック」又は「アップクリック」などの触知感を感じる。別の実施例として、タッチ感知面の移動は、任意選択的に、タッチ感知面の平滑度において変化がないときでさえ、ユーザによってタッチ感知面の「粗さ」として解釈又は感知される。ユーザによるそのようなタッチの解釈は、ユーザの個人的な感覚認知に左右されるが、大多数のユーザに共通する、多くのタッチの感覚認知が存在する。よって、触知出力が、ユーザの特定の感覚認知(例えば、「アップクリック」、「ダウンクリック」、「粗さ」)に対応するものとして説明されるとき、別途記載のない限り、生成された触知出力は、典型的な(又は、平均的な)ユーザの説明された感覚認知を生成するデバイス、又はデバイスの構成要素の物理的変位に対応する。
デバイス100は、ポータブル多機能デバイスの一実施例に過ぎず、デバイス100は、示されているものよりも多くの構成要素又は少ない構成要素を任意選択的に有し、2つ以上の構成要素を任意選択的に組み合せて、又は構成要素の異なる構成若しくは配置を任意選択的に有することを理解されたい。図1Aに示す様々な構成要素は、1つ以上の信号処理回路及び/又は特定用途向け集積回路を含む、ハードウェア、ソフトウェア又はハードウェア及びソフトウェアの双方の組み合わせで実装される。
メモリ102は、高速ランダムアクセスメモリを任意選択的に含み、1つ以上の磁気ディスク記憶デバイス、フラッシュメモリデバイス又は他の不揮発性ソリッドステートメモリデバイスなどの不揮発性メモリもまた任意選択的に含む。メモリコントローラ122は、任意選択的に、デバイス100の他の構成要素によるメモリ102へのアクセスを制御する。
周辺機器インタフェース118を使用して、本デバイスの入力及び出力周辺機器を、CPU120及びメモリ102に接続することができる。1つ以上のプロセッサ120は、デバイス100のための様々な機能を実行するため並びにデータを処理するために、メモリ102に記憶された様々なソフトウェアプログラム及び/又は命令セットを動作させる、又は実行する。一部の実施形態では、周辺機器インタフェース118、CPU120、及びメモリコントローラ122は、チップ104などの単一チップ上に任意選択的に実装される。一部の他の実施形態では、それらは別々のチップ上に任意選択的に実装される。
RF(radio requency)(無線周波数)回路108は、電磁信号とも呼ばれるRF信号を送受信する。RF回路108は、電気信号を電磁信号に、又は電磁信号を電気信号に変換し、電磁信号を介して通信ネットワーク及び他の通信デバイスと通信する。RF回路108は、アンテナシステム、RF送受信機、1つ以上の増幅器、同調器、1つ以上の発振器、デジタル信号プロセッサ、CODECチップセット、加入者識別モジュール(SIM)カード、及びメモリなどを含むがこれらに限定されない、それらの機能を実行するための周知の回路を任意選択的に含む。RF回路108は任意選択で、ワールドワイドウェブ(WWW)とも称されるインターネット、イントラネット、並びに/又はセルラー電話ネットワーク、無線ローカルエリアネットワーク(LAN)及び/若しくはメトロポリタンエリアネットワーク(MAN)などの無線ネットワークなどのネットワークと、他のデバイスと無線通信によって通信する。RF回路108は、近距離通信無線などによる近距離通信(NFC)(near field communication)フィールドを検出するための周知の回路を任意選択的に含む。無線通信は、複数の通信規格、通信プロトコル、及び通信技術のうちのいずれかを、任意選択的に使用し、それらの通信規格、通信プロトコル、及び通信技術としては、移動通信用のグローバルシステム(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+、2重セルHSPA(Dual-Cell HSPA、DC−HSPDA)、ロングタームエボリューション(long term evolution、LTE)、近距離無線通信(near field communication、NFC)、広帯域符号分割多元接続(wideband code division multiple access、W−CDMA)、符号分割多元接続(code division multiple access、CDMA)、時分割多元接続(time division multiple access、TDMA)、Bluetooth(登録商標)、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は、周辺機器インタフェース118に、タッチスクリーン112及び他の入力制御デバイス116などのデバイス100の入出力周辺機器を結合する。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日に出願された、米国特許第7,657,849号である米国特許出願第11/322,549号、「Unlocking a Device by Performing Gestures on an Unlock Image」(この特許は、その全体が本明細書において参照により組み込まれる)に記載されているように、任意選択的に、プッシュボタンの素早い押圧により、タッチスクリーン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つ以上の接触点を判定するための他の近接センサアレイ又は他の要素を含むが、これらに限定されない、現在公知の若しくは後日に開発される複数のタッチ感知技術のうちのいずれかを使用して、接触及び任意の移動又はその中断を、任意選択的に検出する。例示的な実施形態では、California州CupertinoのApple Inc.によるiPhone(登録商標)及びiPod Touch(登録商標)において見られるような、投影型相互静電容量感知技術が使用されている。
タッチスクリーン112の一部の実施形態におけるタッチ感知ディスプレイは、任意選択的に、以下の米国特許、第6,323,846号(Westermanら)、第6,570,557号(Westermanら)、及び/又は第6,677,932号(Westerman)、及び/又は米国特許出願公開第2002/0015024(A1)号に記載されているマルチタッチ感知タッチパッドに類似する。これらの文献は、それぞれその全体が本明細書において参照により組み込まれている。しかし、タッチスクリーン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は、電荷結合デバイス(CCD)又は相補的金属酸化物半導体(CMOS)フォトトランジスタを、任意選択的に含む。光センサ164は、1つ以上のレンズを通して投影された、環境からの光を受光し、その光を、画像を表現するデータに変換する。撮像モジュール143(カメラモジュールとも称する)と併用して、光センサ164は、静止画像又はビデオを任意選択的にキャプチャする。一部の実施形態では、タッチスクリーンディスプレイを静止画像及び/又はビデオ画像取得のためのビューファインダとして有効化するように、光センサは、デバイスの前面のタッチスクリーンディスプレイ112の反対側である、デバイス100の背面に配置されている。一部の実施形態では、任意選択的に、ユーザが他のテレビ会議参加者をタッチスクリーンディスプレイ上で見るのと同時に、そのユーザの画像をテレビ会議のために得るように、デバイスの前面に光センサが配置されている。一部の実施形態では、光センサ164の位置は、ユーザによって(例えば、デバイス筐体内のレンズ及びセンサを回転させることによって)変更することができ、それにより、テレビ会議並びに静止画像及び/又はビデオ画像の取得の双方のために、単一の光センサ164を、タッチスクリーンディスプレイと共に使用する。
デバイス100はまた、1つ以上の深度カメラセンサ175を任意選択的に含む。図1Aは、I/Oサブシステム106内のカメラコントローラ169に結合された、深度カメラセンサを示す。深度カメラセンサ175は、環境からデータを受信して、視点(例えば、深度カメラセンサ)からのシーン内のオブジェクト(例えば、顔)の3次元モデルを生成する。一部の実施形態では、撮像モジュール143(カメラモジュールとも呼ばれる)と共に深度カメラセンサ175を任意選択的に使用して、撮像モジュール143によってキャプチャされた画像の異なる部分の深度マップを判定する。一部の実施形態では、深度カメラセンサがデバイス100の前面に配置され、ユーザが、タッチスクリーンディスプレイ上で他のテレビ会議参加者を見ている間に、かつ、深度マップデータを用いて自撮りをキャプチャできるように、深度情報を有するユーザの画像を、テレビ会議のために任意選択的に取得することができる。一部の実施形態では、深度カメラセンサ175は、デバイスの背面、又はデバイス100の背面及び前面に配置される。一部の実施形態では、深度カメラ175の位置をユーザが(例えば、デバイス筐体内のレンズ及びセンサを回転させることによって)変更することができ、深度カメラセンサ175を、テレビ会議並びに静止画像及び/又はビデオ画像の取得の両方のために、タッチスクリーンディスプレイと共に使用することができる。
一部の実施形態では、深度マップ(例えば、深度マップ画像)は、視点(例えば、カメラ、光センサ、深度カメラセンサ)からのシーン内のオブジェクトの距離に関する情報(例えば、値)を含む。深度マップの一実施形態では、各深度ピクセルは、その対応する2次元ピクセルが配置される、視点のZ軸内の位置を規定する。一部の実施形態では、深度マップは、各ピクセルが値(例えば、0〜255)によって定義されるピクセルから構成される。例えば、「0」値は、「3次元」シーンにおける最も離れた位置に配置されるピクセルを表し、「255」値は、「3次元」シーンにおける視点(例えば、カメラ、光センサ、深度カメラセンサ)に最も近いピクセルを表す。他の実施形態では、深度マップは、シーン内のオブジェクトと視点の平面との間の距離を表す。一部の実施形態では、深度マップは、深度カメラの視点における関心あるオブジェクトの様々な特徴の相対的深度(例えば、ユーザの顔の目、鼻、口、耳の相対的深度)についての情報を含む。一部の実施形態では、深度マップは、z方向の関心あるオブジェクトの輪郭をデバイスが判定することを可能にする情報を含む。
デバイス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は、以下の1つ以上を含む:現在アクティブ状態のアプリケーションがある場合、どのアプリケーションがアクティブかを示す、アクティブアプリケーション状態、どのアプリケーション、ビュー又は他の情報がタッチスクリーンディスプレイ112の様々な領域を占領しているかを示す、表示状態、デバイスの様々なセンサ及び入力制御デバイス116から取得される情報を含む、センサ状態、並びに、デバイスの位置及び/又は姿勢に関する位置情報。
オペレーティングシステム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ピン)コネクタ、及び/又は互換性のあるマルチピン(例えば、30ピン)コネクタである。
接触/動きモジュール130は、(ディスプレイコントローラ156と連携して)タッチスクリーン112及び他のタッチ感知デバイス(例えば、タッチパッド又は物理クリックホイール)との接触を任意選択的に検出する。接触/動きモジュール130は、接触が生じたか否かを判定すること(例えば、指を下ろすイベントを検出すること)、接触の強度(例えば、接触の力若しくは圧力、又は接触の力若しくは圧力の代替物)を判定すること、接触の移動が存在するか否かを判定し、タッチ感知面を横断する移動を追跡すること(例えば、指をドラッグする1つ以上のイベントを検出すること)、及び接触が停止したか否かを判定すること(例えば、指を上げるイベント又は接触の中断を検出すること)などの、接触の検出に関する様々な動作を実行するための、様々なソフトウェア構成要素を含む。接触/動きモジュール130は、タッチ感知面から接触データを受信する。一連の接触データにより表される接触点の移動を判定することは、任意選択的に、接触点の速さ(大きさ)、速度(大きさ及び方向)、並びに/又は加速度(大きさ及び/又は方向における変化)を判定することを含む。これらの動作は、任意選択的に、単一の接触(例えば、1本の指の接触)又は複数の同時接触(例えば、「マルチタッチ」/複数の指の接触)に適用される。一部の実施形態では、接触/動きモジュール130及びディスプレイコントローラ156は、タッチパッド上の接触を検出する。
一部の実施形態では、接触/動きモジュール130は、ユーザによって動作が実行されたか否かを判定するための(例えば、ユーザがアイコン上で「クリック」したか否かを判定するための)、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、
●インスタントメッセージング(IM)モジュール141、
●トレーニングサポートモジュール142、
●静止画像及び/又はビデオ画像用のカメラモジュール143、
●画像管理モジュール144、
●ビデオプレーヤモジュール、
●音楽プレーヤモジュール、
●ブラウザモジュール147、
●カレンダモジュール148、
●天気ウィジェット149−1、株式ウィジェット149−2、計算機ウィジェット149−3、アラーム時計ウィジェット149−4、辞書ウィジェット149−5及びユーザによって取得された他のウィジェット、並びにユーザ作成ウィジェット149−6のうちの1つ以上を任意選択的に含む、ウィジェットモジュール149、
●ユーザ作成ウィジェット149−6を作成するためのウィジェットクリエータモジュール150、
●検索モジュール151、
●ビデオプレーヤモジュール及び音楽プレーヤモジュールを統合した、ビデオ及び音楽プレーヤモジュール152、
●メモモジュール153、
●地図モジュール154、及び/又は
●オンラインビデオモジュール155。
任意選択的にメモリ102内に記憶される他のアプリケーション136の例としては、他のワードプロセッシングアプリケーション、他の画像編集アプリケーション、描画アプリケーション、プレゼンテーションアプリケーション、JAVA(登録商標)対応アプリケーション、暗号化、デジタル著作権管理、音声認識、及び音声複製が挙げられる。
タッチスクリーン112、ディスプレイコントローラ156、接触モジュール130、グラフィックモジュール132、及びテキスト入力モジュール134と共に、連絡先モジュール137は、(例えば、メモリ102又はメモリ370内の連絡先モジュール137のアプリケーション内部状態192に記憶される)アドレスブック又は連絡先リストを管理するために任意選択的に用いられ、それには、アドレスブックに名前(単数又は複数)を加えること、アドレス帳から名前(単数又は複数)を削除すること、電話番号(単数又は複数)、電子メールアドレス(単数又は複数)、住所(単数又は複数)、又は他の情報を名前と関連付けること、画像を名前と関連付けること、名前を分類かつ並べ替えること、電話番号又は電子メールアドレスを提供して、電話138、テレビ会議モジュール139、電子メール140、又はIM141による通信を開始する及び/又は容易にすること、などが含まれる。
RF回路108、オーディオ回路110、スピーカ111、マイクロフォン113、タッチスクリーン112、ディスプレイコントローラ156、接触/動きモジュール130、グラフィックモジュール132、及びテキスト入力モジュール134と連携して、電話モジュール138は、任意選択的に、電話番号に対応する一連の文字を入力し、連絡先モジュール137内の1つ以上の電話番号にアクセスし、入力された電話番号を修正し、対応する電話番号をダイアルし、会話を行い、そして、会話が完了した際に接続を切るか又は電話を切るために、使用する。上述のように、無線通信は、複数の通信規格、プロトコル、及び技術のうちのいずれかを任意選択的に使用する。
RF回路108、オーディオ回路110、スピーカ111、マイクロフォン113、タッチスクリーン112、ディスプレイコントローラ156、光センサ164、光センサコントローラ158、接触/動きモジュール130、グラフィックモジュール132、テキスト入力モジュール134、連絡先モジュール137、及び電話モジュール138と連携して、テレビ会議モジュール139は、ユーザの指示に従って、ユーザと1人以上の他の参加者との間のテレビ会議を開始し、遂行し、終了するための、実行可能な命令を含む。
RF回路108、タッチスクリーン112、ディスプレイコントローラ156、接触/動きモジュール130、グラフィックモジュール132、及びテキスト入力モジュール134と連携して、電子メールクライアントモジュール140は、ユーザの指示に応じて、電子メールを作成し、送信し、受信し、管理するための、実行可能な命令を含む。画像管理モジュール144と連携して、電子メールクライアントモジュール140は、カメラモジュール143で撮影された静止画像又はビデオ画像を有する電子メールを作成及び送信することを非常に容易にする。
RF回路108、タッチスクリーン112、ディスプレイコントローラ156、接触/動きモジュール130、グラフィックモジュール132、及びテキスト入力モジュール134と連携して、インスタントメッセージングモジュール141は、インスタントメッセージに対応する文字列を入力したり、入力済の文字を修正したり、(例えば、電話ベースのインスタントメッセージのためのショートメッセージサービス(SMS)若しくはマルチメディアメッセージサービス(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は、ユーザの指示に従い、カレンダ及びカレンダに関連付けられたデータ(例えば、カレンダ項目、to doリストなど)を作成し、表示し、変更し、記憶する実行可能な命令を含む。
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 Inc.の商標)などのMP3プレーヤの機能を任意選択的に含む。
タッチスクリーン112、ディスプレイコントローラ156、接触/動きモジュール130、グラフィックモジュール132及びテキスト入力モジュール134と連携して、メモモジュール153は、ユーザの指示に従って、メモ、to doリストなどを作成し、管理するための実行可能な命令を含む。
RF回路108、タッチスクリーン112、ディスプレイコントローラ156、接触/動きモジュール130、グラフィックモジュール132、テキスト入力モジュール134、GPSモジュール135、及びブラウザモジュール147と連携して、地図モジュール154は、任意選択的に、ユーザの指示に従い、地図及び地図に関連付けられたデータ(例えば、運転方向、特定の位置又はその近くの店舗及び他の見所のデータ、並びに他の位置ベースのデータ)を受信し、表示し、変更し、及び記憶するために、使用する。
タッチスクリーン112、ディスプレイコントローラ156、接触/動きモジュール130、グラフィックモジュール132、オーディオ回路110、スピーカ111、RF回路108、テキスト入力モジュール134、電子メールクライアントモジュール140及びブラウザモジュール147と連携して、オンラインビデオモジュール155は、ユーザがH.264などの1つ以上のファイル形式のオンラインビデオにアクセスし、閲覧し、(例えば、ストリーミング及び/又はダウンロードにより)受信し、(例えば、タッチスクリーン上で又は外部ポート124を介して接続された外部のディスプレイ上で)再生し、特定のオンラインビデオへのリンクを含む電子メールを送信し、別の方法で管理することが可能となる命令を含む。一部の実施形態では、特定のオンラインビデオへのリンクを送信するために、電子メールクライアントモジュール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は、サブイベントを処理するべき階層内の最下位のビューとしてヒットビューを特定する。ほとんどの状況では、ヒットビューは、最初のサブイベント(例えば、イベント又は潜在的なイベントを形成するサブイベントのシーケンスにおける最初のサブイベント)が発生する最下位レベルのビューである。ヒットビューがヒットビュー判定モジュール172によって特定されると、ヒットビューは、それがヒットビューとして特定された、同じタッチ又は入力ソースに関連するすべてのサブイベントを一般的に受信する。
アクティブイベント認識部判定モジュール173は、ビュー階層内のどのビュー(単数又は複数)がサブイベントの特定のシーケンスを受信すべきかを判定する。一部の実施形態では、アクティブイベント認識部判定モジュール173は、ヒットビューのみがサブイベントの特定のシーケンスを受信すべきであると判定する。他の実施形態では、アクティブイベント認識部判定モジュール173は、サブイベントの物理位置を含むすべてのビューはアクティブに関わっているビューであると判定し、したがって、すべてのアクティブに関わっているビューは、サブイベントの特定のシーケンスを受信すべきであると判定する。他の実施形態では、タッチサブイベントがある特定のビューに関連付けられた領域に完全に限定されたとしても、階層の上位のビューは、依然としてアクティブに関わっているビューであり続ける。
イベントディスパッチャモジュール174は、イベント情報をイベント認識部(例えば、イベント認識部180)にディスパッチする。アクティブイベント認識部判定モジュール173を含む実施形態において、イベントディスパッチャモジュール174は、アクティブイベント認識部判定モジュール173により判定されたイベント認識部にイベント情報を配信する。一部の実施形態では、イベントディスパッチャモジュール174は、対応するイベント受信部182により取得されるイベント情報をイベント待ち行列に記憶する。
一部の実施形態では、オペレーティングシステム126は、イベントソータ170を含む。あるいは、アプリケーション136−1が、イベントソータ170を含む。更に他の実施形態では、イベントソータ170は、独立型のモジュール、又は接触/動きモジュール130などの、メモリ102に記憶された別のモジュールの一部である。
一部の実施形態では、アプリケーション136−1は、それぞれがアプリケーションのユーザインタフェースの対応するビュー内で発生するタッチイベントを処理する命令を含む、複数のイベントハンドラ190及び1つ以上のアプリケーションビュー191を含む。アプリケーション136−1のそれぞれのアプリケーションビュー191は、1つ以上のイベント認識部180を含む。一般的には、対応するアプリケーションビュー191は、複数のイベント認識部180を含む。他の実施形態では、イベント認識部180のうちの1つ以上は、ユーザインタフェースキット又はアプリケーション136−1がメソッド及び他の性質をそれから継承する上位レベルのオブジェクトなどの、別々のモジュールの一部である。一部の実施形態では、対応するイベントハンドラ190は、データアップデーター176、オブジェクトアップデーター177、GUIアップデーター178及び/又はイベントソータ170から受信されたイベントデータ179、のうちの1つ以上を含む。イベントハンドラ190は、アプリケーション内部状態192を更新するために、データアップデーター176、オブジェクトアップデーター177、又はGUIアップデーター178を任意選択的に、利用若しくは呼び出す。あるいは、アプリケーションビュー191のうちの1つ以上は、1つ以上の対応するイベントハンドラ190を含む。また、一部の実施形態では、データアップデーター176、オブジェクトアップデーター177及びGUIアップデーター178のうちの1つ以上は、対応するアプリケーションビュー191に含まれる。
対応するイベント認識部180は、イベントソータ170からイベント情報(例えば、イベントデータ179)を受信し、イベント情報からイベントを特定する。イベント認識部180は、イベント受信部182及びイベント比較部184を含む。一部の実施形態では、イベント認識部180はまた、メタデータ183及びイベント配信命令188(任意選択でサブイベント配信命令を含む)の少なくともサブセットも含む。
イベント受信部182は、イベントソータ170からイベント情報を受信する。イベント情報は、サブイベント、例えば、タッチ又はタッチの動きについての情報を含む。サブイベントに応じて、イベント情報はまた、サブイベントの位置などの追加の情報を含む。サブイベントがタッチの動きに関わるとき、イベント情報はまた任意選択で、サブイベントの速さ及び方向を含む。一部の実施形態では、イベントは、1つの向きから別の向きへの(例えば、縦向きから横向きへの、又はその逆の)デバイスの回転を含み、イベント情報は、デバイスの現在の向き(デバイスの姿勢とも呼ばれる)についての対応する情報を含む。
イベント比較部184は、イベント情報を予め定義されたイベント又はサブイベント定義と比較し、比較に基づいて、イベント又はサブイベントを判定し、又はイベント若しくはサブイベントの状態を判定若しくは更新する。一部の実施形態では、イベント比較部184は、イベント定義186を含む。イベント定義186は、例えば、イベント1(187−1)、イベント2(187−2)などのイベントの定義(例えば、予め定義された一連のサブイベント)を含む。一部の実施形態では、イベント187におけるサブイベントは、例えば、タッチの始め、タッチの終わり、タッチの移動、タッチの停止及び複数のタッチを含む。一実施例では、イベント1(187−1)についての定義は、表示されたオブジェクト上のダブルタップである。ダブルタップは、例えば、所定の段階の間の表示されたオブジェクト上の第1のタッチ(タッチの開始)、所定の段階の間の第1のリフトオフ(タッチの終了)、所定の段階の間の表示オブジェクト上の第2のタッチ(タッチの開始)、及び所定の段階の間の第2のリフトオフ(タッチの終了)を含む。別の実施例では、イベント2(187−2)の定義は、表示されたオブジェクト上のドラッグ操作である。このドラッグ操作は、例えば、所定の段階の間の表示オブジェクト上でのタッチ(又は、接触)、タッチ感知ディスプレイ112を横断するタッチの移動、及びタッチのリフトオフ(タッチの終了)を含む。一部の実施形態において、イベントはまた、1つ以上の関連付けられたイベントハンドラ190に関する情報も含む。
一部の実施形態において、イベント定義187は、それぞれのユーザインタフェースオブジェクトに関するイベントの定義を含む。一部の実施形態において、イベント比較部184は、サブイベントに関連付けられたユーザインタフェースオブジェクトを判定するヒットテストを実行する。例えば、3つのユーザインタフェースオブジェクトがタッチ感知ディスプレイ112上に表示されるアプリケーションビューにおいて、タッチ感知ディスプレイ112上でタッチが検出されると、イベント比較部184は、3つのユーザインタフェースオブジェクトのうちのどれがタッチ(サブイベント)に関連付けられているかを判定するためのヒットテストを行う。表示されたそれぞれのオブジェクトが、対応するイベントハンドラ190と関連付けられている場合、イベント比較部は、ヒットテストの結果を使用して、どのイベントハンドラ190がアクティブ化されるべきかを判定する。例えば、イベント比較部184は、ヒットテストをトリガするサブイベント及びオブジェクトと関連付けられたイベントハンドラを選択する。
一部の実施形態では、対応するイベント(187)についての定義はまた、一連のサブイベントがイベント認識部のイベントタイプに対応するか否かが判定される後まで、イベント情報の配信を遅延させる遅延アクションを含む。
対応するイベント認識部180が、一連のサブイベントがイベント定義186のイベントのいずれとも一致しないと判断したとき、対応するイベント認識部180は、イベント不可能、イベント失敗又はイベント終了の状態に入り、その後は、タッチに基づくジェスチャの次のサブイベントを無視する。この状況では、ヒットビューについてアクティブのままである他のイベント認識部がもしあれば、そのイベント認識部が進行中のタッチに基づくジェスチャのサブイベントの追跡及び処理を続行する。
一部の実施形態では、対応するイベント認識部180は、イベント配信システムがどのようにサブイベント配信を実行すべきかをアクティブに関与しているイベント認識部に示す構成可能なプロパティ、フラグ及び/又はリストを有するメタデータ183を含む。一部の実施形態では、メタデータ183は、イベント認識部が相互にどのように対話するか又は対話することが可能とされているかについて示す構成可能なプロパティ、フラグ、及び/又はリストを含む。一部の実施形態では、メタデータ183は、サブイベントがビュー階層又はプログラム階層における多様なレベルに配信されるかを示す構成可能なプロパティ、フラグ、及び/又はリストを含む。
一部の実施形態では、それぞれのイベント認識部180は、イベントの1つ以上の特定のサブイベントが認識されるときに、イベントと関連付けられたイベントハンドラ190をアクティブ化する。一部の実施形態では、それぞれのイベント認識部180は、イベントと関連付けられたイベント情報をイベントハンドラ190に配信する。イベントハンドラ190をアクティブ化することは、それぞれのヒットビューにサブイベントを送信する(及び、送信を延期する)こととは別個である。一部の実施形態では、イベント認識部180は、認識されたイベントと関連付けられたフラグを投入し、フラグと関連付けられたイベントハンドラ190は、フラグを捕らえ、予め定義された処理を実行する。
一部の実施形態では、イベント配信命令188は、イベントハンドラをアクティブ化することなくサブイベントについてのイベント情報を配信するサブイベント配信命令を含む。代わりに、サブイベント配信命令は、一連のサブイベントと関連付けられたイベントハンドラに、又はアクティブに関与しているビューにイベント情報を配信する。一連のサブイベントに又はアクティブに関与しているビューと関連付けられたイベントハンドラは、イベント情報を受信し、予め定義された処理を実行する。
一部の実施形態では、データアップデーター176は、アプリケーション136−1で使用されるデータを作成及び更新する。例えば、データアップデーター176は、連絡先モジュール137で使用される電話番号を更新するか、又はビデオプレーヤモジュールで使用されるビデオファイルを記憶する。一部の実施形態において、オブジェクトアップデーター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を含む。I/Oインタフェース330はまた、キーボード及び/又はマウス(又は他のポインティングデバイス)350並びにタッチパッド355、デバイス300上に触知出力を生成するための(例えば、図1Aを参照して上述された触知出力生成器(単数又は複数)167と同様の)触知出力生成器357、センサ359(例えば、光センサ、加速度センサ、近接センサ、タッチ感知センサ及び/又は図1Aを参照して上述された接触強度センサ(単数又は複数)165と同様の接触強度センサ)を任意選択的に含む。メモリ370は、DRAM、SRAM、DDR RAM又は他のランダムアクセスソリッドステートメモリデバイスなどの高速ランダムアクセスメモリを含み、また、1つ以上の磁気ディスク記憶デバイス、光ディスク記憶デバイス、フラッシュメモリデバイス又は他の不揮発性ソリッドステート記憶デバイスなどの不揮発性メモリを任意選択的に含む。メモリ370は、CPU(単数又は複数)310からリモートに位置する1つ以上の記憶デバイスを任意選択的に含む。一部の実施形態では、メモリ370は、ポータブル多機能デバイス100(図1A)のメモリ102に記憶されたプログラム、モジュール及びデータ構造、又はそれらのサブセットに類似する、プログラム、モジュール及びデータ構造を記憶する。更に、メモリ370は、ポータブル多機能デバイス100のメモリ102に存在しない追加のプログラム、モジュール、及びデータ構造を任意選択的に記憶する。例えば、デバイス300のメモリ370は、描画モジュール380、プレゼンテーションモジュール382、ワードプロセッシングモジュール384、ウェブサイト作成モジュール386、ディスクオーサリングモジュール388及び/又はスプレッドシートモジュール390を任意選択的に記憶するが、ポータブル多機能デバイス100(図1A)のメモリ102は、これらのモジュールを任意選択的に記憶しない。
上記で特定された図3の要素のそれぞれは任意選択的に、前述のメモリデバイスのうち1つ以上に記憶される。上記で特定されたモジュールのうちのそれぞれは、上述した機能を実行する命令セットに対応する。上記で特定されたモジュール又はプログラム(例えば、命令セット)は、任意選択的に、別個のソフトウェアプログラム、手順、又はモジュールとして実装される必要はなく、それゆえ、様々な実施形態では、これらのモジュールの様々なサブセットを組み合わせるか、又は他の方式で再編成する。一部の実施形態では、メモリ370は、上記で特定されたモジュール及びデータ構造のサブセットを任意選択的に記憶する。更に、メモリ370は、上記で説明されていない追加のモジュール及びデータ構造を任意選択的に記憶する。
ここで、例えばポータブル多機能デバイス100上に、任意選択的に実装されるユーザインタフェースの実施形態に着目する。
図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)を有する。これらの実施形態によれば、デバイスは、タッチ感知面451との接触(例えば、図4Bの460及び462)を、ディスプレイ上のそれぞれの位置に対応する位置(例えば、図4Bでは、460は468に対応し、462は470に対応する)にて検出する。このように、タッチ感知面がディスプレイから分離するものである場合、タッチ感知面(例えば、図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上で異なるユーザインタフェース動作を呼び出すことができることを意味する。
タッチ強度を検出して処理するための例示的な技術は、例えば、関連出願である、2013年5月8日出願の「Device,Method,and Graphical User Interface for Displaying User Interface Objects Corresponding to an Application」と題された国際特許出願第PCT/US2013/040061号(国際公開第2013/169849号として公開)、及び2013年11月11日出願の「Device,Method,and Graphical User Interface for Transitioning Between Touch Input to Display Output Relationships」と題された同第PCT/US2013/069483号(国際公開第2014/105276号として公開)にみられ、これらの文献のそれぞれは、全体が参照により本明細書に組み込まれる。
一部の実施形態では、デバイス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、900、1100、1300及び1500(図7A〜図7B、図9A〜図9B、図11A〜図11B、図13A〜図13B、及び図15A〜図15B)を含む、以下に説明する技術を実行させることができる。コンピュータ可読記憶媒体は、命令実行システム、装置若しくはデバイスによって、又はこれらと関連して使用するためのコンピュータ実行可能命令を有形的に収容又は記憶することができる、任意の媒体とすることができる。一部の例では、記憶媒体は、一時的コンピュータ可読記憶媒体である。一部の例では、記憶媒体は、非一時的コンピュータ可読記憶媒体である。非一時的コンピュータ可読記憶媒体には、磁気的記憶装置、光学的記憶装置及び/又は半導体記憶装置を挙げることができるが、これらに限定されない。そのような記憶装置の例には、磁気ディスク、CD、DVD又はBlu−ray技術に基づく光ディスク、及び、フラッシュ、ソリッドステートドライブなどの永続的ソリッドステートメモリが挙げられる。パーソナル電子デバイス500は、図5Bの構成要素及び構成に限定されるものではなく、他の構成要素又は追加的構成要素を、複数の構成で含み得る。
本明細書において使用するとき、用語「アフォーダンス」は、デバイス100、300及び/又は500(図1A、図3及び図5A〜図5B)のディスプレイ画面上に任意選択的に表示されるユーザ対話式のグラフィックユーザインタフェースオブジェクトを指す。例えば、画像(例えば、アイコン)、ボタン及びテキスト(例えば、ハイパーリンク)はそれぞれ、任意選択的に、アフォーダンスを構成する。
本明細書において使用するとき、用語「フォーカスセレクタ」は、ユーザが対話しているユーザインタフェースの現在の部分を示す入力要素を指す。カーソル又は他の位置マーカを含む一部の実現例において、タッチ感知面(例えば、図3のタッチパッド355、又は図4Bのタッチ感知面451)上で入力(例えば、押圧入力)が検出された時に、カーソルが特定のユーザインタフェース要素(例えば、ボタン、ウィンドウ、スライダ、又は他のユーザインタフェース要素)の上にある時、カーソルは「フォーカスセレクタ」として機能し、特定のユーザインタフェース要素が、検出された入力に従って調整される。タッチスクリーンディスプレイ上のユーザインタフェース要素との直接的な対話を可能にする、タッチスクリーンディスプレイ(例えば、図1Aでのタッチ感知ディスプレイシステム112、又は図4Aでのタッチスクリーン112)を含む一部の実現例では、タッチスクリーン上で検出される接触が「フォーカスセレクタ」としての役割を果たすことにより、入力(例えば、接触による押圧入力)が、タッチスクリーンディスプレイ上の特定のユーザインタフェース要素(例えば、ボタン、ウィンドウ、スライダ、又は他のユーザインタフェース要素)の位置で検出されると、その特定のユーザインタフェース要素が、検出された入力に従って調節される。一部の実現形態では、タッチスクリーンディスプレイ上の対応するカーソルの移動又は接触の移動なしに、(例えば、タブキー又は矢印キーを使用してフォーカスを1つのボタンから別のボタンに移動させることによって)ユーザインタフェースの1つの領域からユーザインタフェースの別の領域にフォーカスが移動され、それらの実現形態では、フォーカスセレクタは、ユーザインタフェースの異なる領域の間のフォーカスの移動に従って移動する。フォーカスセレクタによってとられる具体的な形態とは関わりなく、フォーカスセレクタは、全般的に、ユーザの意図したユーザインタフェースとの対話を通信するために(例えば、ユーザが対話することを意図しているユーザインタフェースの要素をデバイスに示すことによって)、ユーザによって制御されるユーザインタフェース要素(又はタッチスクリーンディスプレイ上の接触)である。例えば、押圧入力がタッチ感知面(例えば、タッチパッド又はタッチスクリーン)上で検出されたときに、対応するボタンの上にあるフォーカスセレクタ(例えば、カーソル、接触又は選択ボックス)の位置は、(デバイスのディスプレイ上に示されている他のユーザインタフェース要素ではなく)対応するボタンをユーザがアクティブ化しようとしていることを示すものである。
本明細書及び特許請求の範囲において使用するとき、接触の「特性強度」という用語は、接触の1つ以上の強度に基づく接触の特性を指す。一部の実施形態では、特性強度は複数の強度サンプルに基づく。特性強度は、予め定義された数の強度サンプル、あるいは予め定義されたイベントに対する(例えば、接触を検出した後、接触のリフトオフを検出する前、接触の移動の開始を検出する前若しくは後、接触の終了を検出する前、接触の強度における増大を検出する前若しくは後、及び/又は接触の強度における減少を検出する前若しくは後)予め定められた時間期間の間(例えば、0.05、0.1、0.2、0.5、1、2、5、10秒)に収集された強度サンプルのセットに任意選択的に基づく。接触の特性強度は、任意選択的に、接触の強度の最大値、接触の強度の平均値(mean value)、接触の強度の平均値(average value)、接触の強度の上位10%値、接触の強度の最大値の半分の値、接触の強度の最大値の90%の値など、のうちの1つ以上に基づく。一部の実施形態では、特性強度を判定するために、(例えば、特性強度が経時的な接触の強度の平均であるとき)接触の持続期間が使用される。一部の実施形態では、動作がユーザによって実行されたか否かを判定するために、特性強度を1つ以上の強度閾値のセットと比較する。例えば、1つ以上の強度閾値のセットは、任意選択的に、第1の強度閾値及び第2の強度閾値を含む。この実施例では、第1の閾値を越えない特性強度を有する接触の結果として第1の動作が実行され、第1の強度閾値を越え、第2の強度閾値を越えない特性強度を有する接触の結果として第2の動作が実行され、第2の閾値を越える特性強度を有する接触の結果として第3の動作が実行される。一部の実施形態では、特性強度と1つ以上の閾値との間の比較が、第1の動作又は第2の動作のいずれを実行するかを判定するために使用されるのではなく、1つ以上の動作を実行するか否か(例えば、各動作を実行するのか、又は各動作の実行を見合わせるのか)を判定するために使用される。
一部の実施形態では、特性強度を判定する目的で、ジェスチャの一部が特定される。例えば、タッチ感知面は、任意選択的に、接触の強度が増加する、開始位置から遷移して終了位置まで達する連続的なスワイプ接触を受け取る。この実施例では、終了位置における接触の特性強度は、任意選択的に、連続的なスワイプ接触全体ではなく、そのスワイプ接触の一部分のみ(例えば、終了位置におけるスワイプ接触の部分のみ)に基づく。一部の実施形態では、任意選択的に、接触の特性強度を判定する前に、平滑化アルゴリズムをそのスワイプ接触の強度に適用する。例えば、平滑化アルゴリズムは任意選択で、非加重移動平均平滑化アルゴリズム、三角平滑化アルゴリズム、中央値フィルタ平滑化アルゴリズム、及び/又は指数平滑化アルゴリズムのうちの1つ以上を含む。一部の状況では、それらの平滑化アルゴリズムは、特性強度を判定する目的で、スワイプ接触の強度における小幅な上昇又は低下を除去する。
タッチ感知面上の接触の強度は、任意選択的に、接触検出強度閾値、軽い押圧強度閾値、深い押圧強度閾値、及び/又は1つ以上の他の強度閾値などの1つ以上の強度閾値に対して特徴付けする。一部の実施形態では、軽い押圧強度閾値は、物理マウスのボタン又はトラックパッドをクリックすることと一般的に関連付けられた操作をデバイスが実行する強度に対応する。一部の実施形態では、深い押圧強度閾値は、物理マウスのボタン又はトラックパッドをクリックすることと典型的に関連付けられた操作とは異なる操作をデバイスが実行する強度に対応する。一部の実施形態では、軽い押圧強度閾値を下回る(例えば、かつ、それを下回ると接触がもはや検出されないわずかな接触検出強度閾値を上回る)特性強度で接触が検出される場合、デバイスは、軽い押圧強度閾値又は深い押圧強度閾値に関連付けられた動作を実行することなく、タッチ感知面上の接触の移動に従って、フォーカスセレクタを移動させる。概して、特に明記しない限り、これらの強度閾値は、ユーザインタフェース図の異なるセット間で一貫している。
軽い押圧強度閾値を下回る強度から、軽い押圧強度閾値と深い押圧強度閾値との間の強度への接触の特性強度の増大は、「軽い押圧」入力と呼ばれる場合がある。深い押圧強度閾値を下回る強度から、深い押圧強度閾値を上回る強度への接触の特性強度の増大は、「深い押圧」入力と呼ばれる場合がある。接触検出強度閾値を下回る強度から、接触検出強度閾値と軽い押圧強度閾値との間の強度への接触の特性強度の増大は、タッチ面上の接触の検出と呼ばれる場合がある。接触検出強度閾値を上回る強度から、接触検出強度閾値を下回る強度への接触の特性強度の減少は、タッチ面からの接触のリフトオフの検出と呼ばれる場合がある。一部の実施形態では、接触検出強度閾値はゼロである。一部の実施形態では、接触検出強度閾値はゼロより大きい。
本明細書で説明される一部の実施形態では、1つ以上の操作は、それぞれの押圧入力を含むジェスチャを検出したことに応じて、又はそれぞれの接触(又は、複数の接触)で実行されるそれぞれの押圧入力を検出したことに応じて実行され、それぞれの押圧入力は、押圧入力強度閾値を上回る接触(又は、複数の接触)の強度における増大を検出したことに少なくとも部分的に基づいて検出される。一部の実施形態では、それぞれの動作は、押圧入力強度閾値を上回る、それぞれの接触の強度の増大(例えば、それぞれの押圧入力の「ダウンストローク」)の検出に応じて実行される。一部の実施形態では、押圧入力は、押圧入力強度閾値を上回るそれぞれの接触の強度の増大、及び後続の押圧入力強度閾値を下回る接触の強度の減少を含み、それぞれの動作は、後続の押圧入力閾値を下回るそれぞれの接触の強度の減少(例えば、それぞれの押圧入力の「アップストローク」)の検出に応じて実行される。
一部の実施形態では、デバイスは、「ジッタ」と呼ばれる場合がある不測の入力を回避するために強度ヒステリシスを採用し、デバイスは、押圧入力強度閾値との予め定義された関係を有するヒステリシス強度閾値を定義又は選択する(例えば、ヒステリシス強度閾値は、押圧入力強度閾値よりもX強度単位低いか、又はヒステリシス強度閾値は、押圧入力強度閾値の75%、90%、若しくは何らかの妥当な比率である)。よって、一部の実施形態では、押圧入力は、押圧入力強度閾値を上回るそれぞれの接触の強度の増大、及び後続の押圧入力強度閾値に対応するヒステリシス強度閾値を下回る接触の強度の減少を含み、それぞれの動作は、そのヒステリシス強度閾値を下回る後続のそれぞれの接触の強度の減少(例えば、それぞれの押圧入力の「アップストローク」)の検出に応じて実行される。同様に、一部の実施形態では、押圧入力は、デバイスが、ヒステリシス強度閾値以下の強度から押圧入力強度閾値以上の強度への接触の強度の増大、及び任意選択的に、ヒステリシス強度以下の強度への後続の接触の強度の減少を検出するときのみ検出され、それぞれの動作は、その押圧入力の検出(例えば、状況に応じて、接触の強度の増大、又は接触の強度の減少)に応じて実行される。
説明を容易にするために、押圧入力強度閾値と関連付けられた押圧入力に応じて、又は押圧入力を含むジェスチャに応じて実行される動作の説明は、任意選択的に、押圧入力強度閾値を上回る接触の強度の増大、ヒステリシス強度閾値を下回る強度から押圧入力強度閾値を上回る強度への接触の強度の増大、押圧入力強度閾値を下回る接触の強度の減少、及び/又は押圧入力強度閾値に対応するヒステリシス強度閾値を下回る接触の強度の減少のいずれかを検出したことに応じてトリガされる。加えて、押圧入力強度閾値を下回る接触の強度の減少を検出したことに応じて動作が実行されるとして説明される実施例では、動作は、任意選択的に、押圧入力強度閾値に対応し、かつそれよりも低いヒステリシス強度閾値を下回る接触の強度の減少を検出したことに応じて実行される。
ここで、ポータブル多機能デバイス100、デバイス300、又はデバイス500などの電子デバイス上に実装されるユーザインタフェース(「UI」)及び関連するプロセスの実施形態に着目する。
図6A〜図6BQは、一部の実施形態に係る、メッセージングアプリケーションにおいてビジュアルエフェクトを表示するための例示的なユーザインタフェースを示す。それらの図におけるユーザインタフェースは、図7A〜図7Bにおける処理を含む、以下で説明される処理を例示するために使用される。
図6Aは、一部の場合ではタッチ感知ディスプレイである、ディスプレイ601を有するデバイス600を描く。一部の実施形態では、デバイス600はまた、光スペクトルの一部(例えば、可視光、赤外光、又は紫外光)を表すデータをキャプチャできるイメージセンサを、最低限に含むカメラ602を含む。一部の実施形態では、カメラ602は、複数の画像センサ及び/又は他のタイプのセンサを含む。一部の実施形態では、カメラ602は、検出された光を表すデータをキャプチャすることに加えて、深度データなどの、他のタイプのデータをキャプチャすることができる。例えば、一部の実施形態では、カメラ602はまた、スペックル、飛行時間、視差、又は焦点に基づく技術を使用して、深度データをキャプチャする。デバイス600がカメラ602を使用してキャプチャする画像データは、カメラの視野内のシーンに対する光スペクトルの一部に対応するデータを含む。加えて、一部の実施形態では、キャプチャされた画像データはまた、光データの深度データを含む。一部の他の実施形態では、キャプチャされた画像データは、光スペクトルの一部のデータに対する深度データを決定、又は生成するのに十分なデータを含む。一部の実施形態では、デバイス600は、デバイス100、300、又は500の1つ以上の特徴を含む。
一部の例では、電子デバイス600は、赤外線カメラ、サーモグラフィーカメラ、又はそれらの組み合わせなどの、深度カメラを含む。一部の例では、デバイスは、IRフラッド光などの発光デバイス(例えば、光プロジェクタ)、構造化光プロジェクタ、又はそれらの組み合わせを更に含む。発光デバイスは、任意選択的に、可視光カメラ及び深度カメラ(例えば、IRカメラ)による画像のキャプチャ中に被写体を照明するために使用され、深度カメラ及び可視光カメラからの情報は、可視光カメラによってキャプチャされた被写体の異なる部分の深度マップを決定するために使用される。一部の実施形態では、深度マップ(例えば、深度マップ画像)は、視点(例えば、カメラ)からのシーン内のオブジェクトの距離に関する情報(例えば、値)を含む。深度マップの一実施形態では、各深度ピクセルは、その対応する2次元ピクセルが位置する、視点のZ軸内の位置を規定する。一部の例では、深度マップは、各ピクセルが値(例えば、0〜255)によって定義されるピクセルから構成される。例えば、「0」値は、「3次元」シーンにおける最も離れた位置に配置されたピクセルを表し、「255」値は、「3次元」シーンにおける視点(例えば、カメラ)に最も近いピクセルを表す。他の例では、深度マップは、シーン内のオブジェクトと視点の平面との間の距離を表す。一部の実施形態では、深度マップは、深度カメラの視点における関心あるオブジェクトの様々な特徴の相対的深度(例えば、ユーザの顔の目、鼻、口、耳の相対的な深度)についての情報を含む。一部の実施形態では、深度マップは、z方向の関心あるオブジェクトの輪郭をデバイスが判定することを可能にする情報を含む。一部の実施形態では、本明細書に記載の照明エフェクトは、背面画像用の2つのカメラ(例えば、2つの可視光カメラ)からの視差情報を使用して、及び正面画像(例えば、自撮り画像)用の可視光カメラからの画像データに結合された深度カメラからの深度情報を使用して、表示される。一部の実施形態では、2つの可視光カメラを使用して深度情報を判定し、深度カメラを使用して深度情報を判定する場合には、同じユーザインタフェースが使用されて、照明エフェクトを生成する際に使用される情報を判定するために著しく異なる技術を使用する場合でさえも、ユーザーに一貫性のある体験を提供する。一部の実施形態では、適用される照明エフェクトのうちの1つを用いてカメラユーザインタフェースを表示している間に、デバイスは、ライティングエフェクトを適用し、正面カメラの視野の表示を背面カメラの視界に(又はその逆)置換するためのユーザインタフェース制御の表示を維持しながら、カメラスイッチングアフォーダンスの選択を検出し、正面カメラ(例えば、深度カメラ及び可視光カメラ)から背面カメラ(例えば、互いに離間した2つの可視光カメラ)に(又はその逆)切り替える。
図6Aでは、デバイス600は、メッセージングアプリケーションのメッセージングユーザインタフェース603を表示している。メッセージングユーザインタフェース603は、メッセージ会話において参加者(受信者識別子606によって表される)に伝送されるメッセージ605を含むメッセージ表示領域604を含む。メッセージングユーザインタフェース603はまた、メッセージ会話の参加者に送信するための入力(例えば、テキスト入力、マルチメディア入力など)を表示するためのメッセージ作成フィールド608を含む。メッセージングユーザインタフェース603はまた、カメラアプリケーションアフォーダンス609、アプリケーションドックアフォーダンス610、キーボード表示領域612、及びテキスト提案領域614を含む。
図6Bでは、デバイス600は、カメラアプリケーションアフォーダンス609に対応する位置において入力616(例えば、ディスプレイ601上のタッチ入力)を検出する。
図6Cでは、入力616を検出したことに応じて、デバイス600は、カメラアプリケーションアフォーダンス609に関連付けられたカメラアプリケーションを起動し、カメラアプリケーションユーザインタフェース615を表示する。カメラアプリケーションユーザインタフェース615は、例えば、カメラ(例えば、背面カメラ又はカメラ602)の視野内に位置するオブジェクトを表すストリーミングされた画像データ(例えば、ライブカメラプレビュー、ライブカメラ記録、若しくはライブビデオ通信セッション)、又は、例えば写真若しくはビデオ録画などのメディアアイテム、などの画像データの表現を表示する、画像表示領域620を含む。図6Cに示す実施形態では、画像表示領域620は、デバイス600の背面カメラからのライブカメラプレビュー620−1'を示す。
カメラアプリケーションユーザインタフェース615はまた、カメラ固有アフォーダンス617、及びカメラアプリケーションユーザインタフェース615を終了させるための完了アフォーダンス618を含む、画像表示領域620の上の領域を含む。カメラ固有アフォーダンスには、カメラフラッシュ機能に関連付けられたアフォーダンス617−1、カメラモード機能に関連付けられたアフォーダンス617−2、タイマー機能に関連付けられたアフォーダンス617−3、及びフィルタ機能に関連付けられたアフォーダンス617−4が含まれる。
カメラアプリケーションユーザインタフェース615はまた、画像表示領域620の下に配置されたカメラオプション領域625を含む。カメラオプション領域625は、カメラ(例えば、背面カメラとカメラ602)間を切り替えるためのカメラセレクタアフォーダンス627、及びカメラが画像データを記録できる異なるキャプチャモードに関連付けられたカメラオプションアフォーダンス619を含む。例えば、ビデオアフォーダンス619−1は、カメラのビデオ録画キャプチャモードをアクティブ化するための機能に関連付けられ、写真アフォーダンス619−2は、カメラの静止画像キャプチャモードをアクティブ化するための機能に関連付けられる。図6C〜図6AXに関して以下に論じる実施形態では、デバイス600は、写真アフォーダンス619−2に関連付けられた操作の静止画像キャプチャモードにある。しかしながら、特に明記しない限り、これらの実施形態はまた、ビデオアフォーダンス619−1に関連付けられたビデオ録画モードに適用される。
カメラオプション領域625は、画像表示領域620にビジュアルエフェクトを表示するためにデバイス600が有効化又は無効化されるデバイス600のモードを、有効化又は無効化するためのエフェクトアフォーダンス622を更に含む。デバイス600のこのモードは、本明細書ではしばしばエフェクトモードと呼ばれる。
カメラオプション領域625はまた、画像表示領域620に表される画像データをキャプチャするために選択可能なキャプチャアフォーダンス621を含む。一部の実施形態では、デバイス600は、現在有効化されているキャプチャモード(例えば、ビデオ録画キャプチャモード又は画像キャプチャモード)に基づく方法で、画像データをキャプチャする。一部の実施形態では、デバイス600は、キャプチャアフォーダンス621上で検出されたジェスチャのタイプに応じて、画像データをキャプチャする。例えば、デバイス600がキャプチャアフォーダンス621上でタップジェスチャを検出した場合、デバイス600は、タップジェスチャが発生した時点で画像表示領域620に表された画像データの静止画像をキャプチャする。デバイス600がキャプチャアフォーダンス621上でタップアンドホールドジェスチャを検出した場合、デバイス600は、タップアンドホールドジェスチャが持続する期間中、画像表示領域620に表される画像データのビデオ録画をキャプチャする。一部の実施形態では、指がアフォーダンスから持ち上げられると、ビデオ録画が停止する。一部の実施形態では、ビデオ録画は、アフォーダンスに対応する位置において後続の入力(例えば、タップ入力)が検出されるまで続く。一部の実施形態では、キャプチャされた画像(例えば、静止画像又はビデオ録画)は、メッセージ作成フィールド608内に挿入され、続いてメッセージ会話の参加者に送信される。一部の実施形態では、キャプチャされた画像は、メッセージ作成フィールド608内にキャプチャされた画像を挿入することなく、メッセージ会話の参加者に直接送信される。
図6Dでは、デバイス600は、エフェクトアフォーダンス622上の入力623(例えば、ディスプレイ601上のタップジェスチャ)を検出する。
図6Eでは、デバイス600は、入力623を検出したことに応じて、カメラ602をアクティブ化し(例えば、背面カメラから切り替えて)、画像表示領域620を更新して、カメラ602からのライブカメラプレビュー620−1を表示し、カメラ602の視野内に位置する被写体632、及び被写体632の背後に表示された背景636の表現を示す。本明細書で論じるように、一部の実施形態では、カメラ602を使用してキャプチャされた画像データは、カメラ602の視野内のオブジェクトの深度を決定するために使用され得る深度データを含む。一部の実施形態では、デバイス600は、検出されたこれらのオブジェクトの深度に基づいてオブジェクト(例えば、画像データ内の)を解析し、この判定を使用して、本明細書で論じるビジュアルエフェクトを適用する。例えば、デバイス600は、被写体632をライブカメラプレビュー620−1の前景にあるものとして、ユーザの背後に位置するオブジェクトをライブカメラプレビュー620−1の背景にあるものとして、分類することができる。これらの背景オブジェクトは、ここでは背景636と総称する。
デバイス600はまた、表示のためにビジュアルエフェクトを有効化していることを示すエフェクトアフォーダンス622を強調表示し、カメラオプションアフォーダンス619をビジュアルエフェクトオプションアフォーダンス624に置換することによってカメラオプション領域625を更新する。ビジュアルエフェクトオプションアフォーダンスは、アバターエフェクトアフォーダンス624−1及びステッカーエフェクトアフォーダンス624−2を含む。ビジュアルエフェクトオプションアフォーダンス624は、画像表示領域620に表示される画像に適用できる異なるビジュアルエフェクトに対応する。ビジュアルエフェクトオプションアフォーダンス(例えば、624−1又は624−2)のうちの1つを選択することにより、選択されたビジュアルエフェクトオプションアフォーダンスに対応するビジュアルエフェクトオプションと共に、メニューが表示される。
ユーザは、エフェクトアフォーダンス622を選択することによって、デバイス600のエフェクトモードを有効化又は無効化することができる。エフェクトアフォーダンス622が強調表示されると、デバイス600のエフェクトモードが有効化され、画像表示領域620にビジュアルエフェクトを表示する。ユーザが強調表示されたアフォーダンス622上をタップすると、エフェクトアフォーダンス622はもはや強調表示されず、画像表示領域620における表示のためにビジュアルエフェクトが有効化されないように、エフェクトモードが無効化される。一部の実施形態では、エフェクトモードが有効化されると、デバイス600は、画像表示領域620に示される画像を更新して、画像に適用されている1つ以上のビジュアルエフェクト(ライブ画像ストリームに適用されるビジュアルエフェクトを含む)を表示し、エフェクトモードが無効化されると、デバイス600は、画像表示領域620に示される画像からビジュアルエフェクトを除去するか、又は隠す。
図6Fでは、デバイス600は、アバターエフェクトアフォーダンス624−1上の入力626(例えば、ディスプレイ601上のタップジェスチャ)を検出する。
図6Gでは、入力626を検出したことに応じて、デバイス600は、アバターオプション630のスクロール可能リストと共に、アバターオプションメニュー628を表示する。アバターオプションメニュー628はまた、アバターオプション630のうちの選択された1つを示すための選択領域629を含む。図6Gに示すように、ロボットアバターオプション630−3が選択領域629に配置され、ロボットアバターオプション630−1が選択されていることを示す。図6Gに示す別のアバターオプション630は、カスタマイズされた女性アバターオプション630−1、ヌルアバターオプション630−2、ウサギアバターオプション630−4、及びエイリアンアバターオプション630−5を含む。以下で詳細に論じるように、ヌルアバターオプション630−2は、アバターが画像表示領域620内の被写体上に表示されないためのアバターオプションに対応する。一部の実施形態では、ヌルアバターオプション630−2は、アバターオプションメニュー628が表示されているときに、デフォルトで選択されるアバターオプションである。
アバターオプション630は、画像表示領域620内の被写体の表現に適用される仮想アバタービジュアルエフェクトに対応する。具体的には、各アバターオプション630は、選択されると、画像表示領域内の被写体の顔の上に転置される仮想アバターに対応し、他方、画像表示領域内の画像の他の部分(背景、又はユーザの身体などのユーザの他の部分など)は表示されたままとなる。カメラ602の視野内に位置するユーザ(例えば、被写体632)は、様々な顔の特徴の動き(例えば、ウインク、舌の突き出し、笑顔など)を含む顔の姿勢(例えば、回転又は向き)を変更することによって、仮想アバターの視覚的態様を制御することができる。仮想アバターの表示及び動きを制御するための詳細は、米国特許出願第15/870,195号に提供されており、これは、すべての目的のために参照により本明細書に組み込まれる。
一部の実施形態では、仮想アバターは、グラフィックに描くことができるユーザーの表現(例えば、ユーザーのグラフィック表現)である。一部の実施形態では、仮想アバターは非写実的(例えば、漫画的である)である。一部の実施形態では、仮想アバターは、1つ以上のアバター特徴(例えば、アバター顔部特徴)を有するアバター顔部を含む。一部の実施形態では、アバター特徴は、ユーザの物理的特徴の検出された動きが(例えば、深度検出カメラなどのカメラに基づいて判定されるように)、アバター特徴(例えば、特徴のグラフィック表現に影響を及ぼす)に影響を及ぼすように、ユーザの顔の1つ以上の物理的特徴に対応する(例えば、マッピングされる)。
一部の例では、ユーザは、カメラセンサ(例えば、カメラモジュール143、光センサ164)、及び任意選択的に深度センサ(例えば、深度カメラセンサ175)を使用して、仮想アバターの特性又は特徴を操作することができる。ユーザの物理的特徴(顔の特徴など)及び位置(頭の位置、頭の回転、又は頭の傾きなど)が変化すると、電子デバイスは、その変化を検出し、仮想アバターの表示された画像を変更して、ユーザの身体的特徴及び位置の変化を反映する。一部の実施形態では、ユーザの身体的特徴及び位置に対する変化は、様々な表現、感情、コンテキスト、トーン、又は他の非言語コミュニケーションを示す。一部の実施形態では、電子デバイスは、これらの表現、感情、コンテキスト、トーン、又は他の非言語コミュニケーションを表すために、仮想アバターの表示された画像を変更する。
一部の実施形態では、仮想アバターは、カスタマイズ可能なアバター(例えば、カスタマイズ可能なアバター835)である。カスタマイズ可能なアバターは、例えば、所望の外観(例えば、ユーザーのように見える)を達成するために、ユーザーが選択し、カスタマイズできる仮想アバターである。カスタマイズ可能なアバターは、一般的に、動物又は他の非人間オブジェクトの擬人化構成物などの非人間キャラクタではなく、人間キャラクタの外観を有する。加えて、アバターの特徴は、アバター編集ユーザインタフェース(例えば、図8AA〜図8ABに関して以下に論じるアバター編集ユーザインタフェースなど)を使用して、必要に応じて、作成又は変更することができる。一部の実施形態では、カスタマイズ可能なアバターを、カスタマイズされた物理的外観、物理的構成物、又はモデル化された挙動を達成するように、生成及び構成することができる。
一部の実施形態では、仮想アバターはカスタマイズ不可能なアバターである。カスタマイズ不可能なアバターは、ユーザによって選択できる仮想アバターであるが、以下でより詳細に説明するように、それらの外観は顔追跡を介して変更することができるものの、一般的には本来構成可能ではない。代わりに、カスタマイズ不可能なアバターは予め構成されており、一般にユーザによって変更できる特徴成分を有しない。一部の実施形態では、カスタマイズ不可能なアバターは、動物又は他の非人間オブジェクトの擬人化構成物(例えば、ロボットアバター633、ウサギアバター634を参照)などの非人間キャラクタの外観を有する。カスタマイズ不可能なアバターは、ユーザが作成できず、又は、物理的外観、物理的構成物、若しくはカスタマイズ不可能なアバターのモデル化された挙動において著しい変更を達成するように変更することができない。
図6Gでは、ロボットアバター630−3が選択されているので、デバイス600は、画像表示領域620に表示された被写体632(例えば、ユーザ)の顔に配置されたロボットアバター633を表示する。デバイス600は、アバターがカメラ602の視野内を移動する際に被写体の顔に固定されたままになるようにアバターを表示する。デバイス600はまた、表示された被写体の身体及び背景636を画像表示領域620に示される画像内に維持しながら、顔の姿勢又は表情の変化を含むユーザの顔の検出された変化に基づいて、アバターを継続的に変更する。
図6Hに示すように、デバイス600がユーザの頭部がカメラ602の視野を越えて移動したことを検出した場合、デバイス600は、例えば、選択されたアバター(例えば、ロボットアバター)の表現640を含むプロンプト638と、ユーザにカメラ602の視野内に頭部を再配置するように指示するメッセージ642とを表示する。一部の実施形態では、プロンプト638が、ぼやけた背景644(ユーザ632及び背景636をぼかすことを含む)と共に表示される。一部の実施形態では、プロンプト638を表示することは、画像表示領域620の中心位置に戻っていく選択されたアバターのアニメーションを表示すること、及びアバター特徴の物理モデルに基づいて停止するように見える、アバター及びその特徴の遅くなった動きを示すことを含む。
いったんデバイス600がカメラ602の視野に戻るユーザの頭部を検出すると、デバイスは、図6Iに示すように、ユーザの顔において検出された変化に基づいて、選択されたアバター(例えば、ロボットアバター633)を更新し続ける。一部の実施形態では、デバイス600がカメラ602の視野に戻るユーザの顔を検出すると、デバイス600は、画像表示領域620の中心位置からユーザの顔の位置に移動するアバター633を表示し、検出されたユーザの顔の変化に基づいてアバターの変更を再開する。
図6I〜図6Kでは、デバイス600は、アバターオプション630の表示されたリスト上の入力644(例えば、ディスプレイ601上のスクロールジェスチャ)を検出する。入力644がディスプレイ601を横切って左方向に移動すると、デバイス600は、左にスクロールして追加のアバターオプション(例えば、うんちアバターオプション及びキツネアバターオプション)を明らかにするアバターオプション630を表示する。一部の実施形態では、アバターオプションのうちの1つが選択領域629に入ると、デバイスは、その時点における入力644の終了が、選択領域629内に現在位置しているアバターオプションの選択をもたらし得ることをユーザに示すための触覚フィードバック(例えば、音声出力を伴う、又は伴わない触知出力)を生成する。例えば、図6Kでは、デバイス600は、エイリアンアバターオプション630−5が選択領域629内に位置するときに、触覚フィードバック646を生成する。
図6Jでは、デバイス600は、入力644の終了を検出し、エイリアンアバターオプション630−5が選択領域629内に位置していると判定する。結果として、デバイス600は、被写体の身体及び背景636の表示を維持しながら、ロボットアバター633を、選択されたエイリアンアバターオプション630−5に対応するエイリアンアバター635に置換する。一部の実施形態では、以前に選択されたアバター(例えば、ロボットアバター633)を現在選択されているアバター(例えば、エイリアンアバター635)に置換することは、オフスクリーン(例えば、画像表示領域620の外)で移動する、以前に選択されたアバターのアニメーション、及びアバターオプションメニュー628から画像表示領域620内のユーザの顔に移動する、現在選択されているアバターのアニメーション、を表示することを含む。一部の実施形態では、現在選択されているアバターの顔追跡は、アバターがアバターオプションメニュー628からユーザーの顔に移動すると開始する。一部の実施形態では、アバターの切り替え操作が発生している間、背景をぼかしている。
図6M〜図6Nでは、デバイス600は、アバターオプションメニュー628上の垂直ジェスチャ646(例えば、ディスプレイ601上の垂直スワイプ又はタッチアンドドラッグ)を検出し、これに応じて、図6Nに示すように、アバターオプションメニュー628を拡大ビュー628−1に拡大する。図6Nでは、アバターオプション630はマトリクス状に配置されており、図6Oに示すように、選択されて(例えば、ジェスチャ648はロボットアバターオプション630−3を選択する)、画像表示領域620に異なるアバターを表示することができる。
図6Pに示すように、ジェスチャ648に応じて、デバイス600は、選択されたロボットアバターオプション630−3(選択領域629に配置される)を含むアバターオプションメニュー628、及び画像表示領域620内のユーザの頭部に表示されるロボットアバター633を示す(例えば、メニューを逆拡大することによって)。
図6Qでは、デバイス600は、クローズアイコン650上の入力649(例えば、ディスプレイ601上のタップジェスチャ)を検出して、アプリケーションオプションメニュー628をクローズし、画像表示領域620上の画像ストリーム(例えば、ライブカメラプレビュー)内のユーザの顔のロボットアバター633の表示を維持しながら、カメラオプション領域625を示している図6R示すカメラユーザインタフェース615に戻る。カメラオプション領域625は、キャプチャアフォーダンス621、ビジュアルエフェクトオプションアフォーダンス624、及び強調表示エフェクトアフォーダンス622を示す。図6S及び図6Tに以下示すように、ユーザは、アバターメニューアフォーダンス624−1を選択して、アバターオプションメニュー628を再度表示することができる。
例えば、図6Sでは、デバイス600は、アバターエフェクトアフォーダンス624−1上の入力652(例えば、ディスプレイ601上のタップジェスチャ)を検出する。図6Tでは、入力652を検出したことに応じて、デバイス600は、キャプチャアフォーダンス621、エフェクトアフォーダンス622、及びビジュアルエフェクトオプションアフォーダンス624を含むカメラオプション領域625を置換するアバターオプション630を有する、アバターオプションメニュー628を表示する。アバターオプションメニュー628は、前述したように、クローズアフォーダンス650を選択することによって再びクローズして、図6Uに示すように、カメラアプリケーションユーザインタフェース615に再び戻ることができる。
図6Uでは、デバイス600は、ステッカーエフェクトアフォーダンス624−2上の入力654(例えば、ディスプレイ601上のタップジェスチャ)を検出する。図6Vでは、入力654を検出したことに応じて、デバイス600は、ステッカー658のスクロール可能リストを有するステッカーオプションメニュー656を表示する。ステッカーは、ユーザが選択できて、画像表示領域620内の画像に適用される、静的なグラフィカルオブジェクトである。一部の実施形態では、ステッカーは、選択されたステッカー上で開始し、ステッカーを所望の位置にドラッグし、次いでドラッグを終了(例えば、指をリフト)することによってステッカーを所望の位置に配置する、タッチアンドドラッグジェスチャによって選択することができる。一部の実施形態では、ステッカーはタップジェスチャによって選択することができ、次いで対応するステッカーが画像表示領域620上の位置に表示される。このような実施形態の一例は図6W〜図6Xに示され、次いで画像表示領域620の中央に表示されるヘルメットステッカー658−1上のタップジェスチャ660を示している。
図6Y〜図6Zは、ステッカーを新しい位置にドラッグすることによって、配置されたステッカー(例えば、ステッカー658−1)を画像表示領域620上に再配置できることを示す(ステッカー658−1を図6Zの新しい位置に動かしているジェスチャ662参照)。
図6AAは、配置されたステッカー(例えば、ステッカー658−1)が、2本指のジェスチャ664を使用して回転できることを示す。
図6ABは、配置されたステッカー(例えば、ステッカー658−1)が、ピンチ又はデピンチジェスチャを使用してサイズ変更できることを示す。図6ABでは、ヘルメットステッカー658−1が、デピンチジェスチャ666に応じて拡大されている。サイズ変更され、回転され、再配置されたヘルメットステッカー658−1が、図6ACのロボットアバターの頭部上に配置されて示されている。
図6ADでは、デバイス600は、クローズアイコン670上の入力668(例えば、ディスプレイ601上のタップジェスチャ)を検出して、ステッカーオプションメニュー656をクローズし、図6AEに示すように、キャプチャアフォーダンス621を示すカメラオプション領域625、ビジュアルエフェクトオプションアフォーダンス624、及びビジュアルエフェクトが表示可能にされていることを示す強調表示エフェクトアフォーダンス622を含む、カメラアプリケーションユーザインタフェース615に戻る。図6AEでは、デバイス600は、画像表示領域620上の画像にユーザの表現を示すが、ロボットアバター633(例えば、アバターオプションメニュー628から選択された)及びヘルメットステッカー658−1(例えば、ステッカーオプションメニュー656から選択された)を含むビジュアルエフェクトを用いて変更される。ビジュアルエフェクトの表示は動的である。例えば、デバイス600は、ユーザの顔の検出された変化に応じてロボットアバター633を連続的に変更する。一部の実施形態では、ステッカー658−1の位置決めはまた、以下に一層詳細に論じるように、動的であり、かつユーザの検出された動きに基づいて変化する。
ビジュアルエフェクトがデバイス600に対して有効化されている(例えば、エフェクトアフォーダンス622が強調表示されている)ときに、強調表示されたエフェクトアフォーダンス622を選択解除する(例えば、強調表示されているときにアフォーダンス622を選択して、ビジュアルエフェクトを無効化する)ことによって、適用されたビジュアルエフェクト(例えば、アバター及びステッカーなど)を画像表示領域620から除去する、又は隠すことができる。例えば、図6AFでは、デバイスは、強調表示エフェクトアフォーダンス622上の入力672(例えば、ディスプレイ601上のタップジェスチャ)を検出する。これに応答して、デバイス600は、カメラ602の視野内に被写体632及び背景636を含む画像ストリーム(例えば、ライブカメラプレビュー620−1)の表示を維持しながら、図6AGに示すように、表示されたビジュアルエフェクト(例えば、図6AFのヘルメットステッカー658−1及びロボットアバター633)を画像表示領域620から除去する。
一部の実施形態では、ビジュアルエフェクトモードが(例えば強調表示エフェクトアフォーダンス622を選択解除することにより)無効化された後、除去されたビジュアルエフェクトは、例えば、所定の時間内にエフェクトアフォーダンス622を再選択することによって、復元することができる。例えば、図6AHでは、デバイスは、非強調表示エフェクトアフォーダンス622上の入力674(例えば、ディスプレイ601上のタップジェスチャ)を検出する。入力674を検出したことに応じて、デバイス600は、図6AIに示すように、被写体632の身体及び背景636を含む画像ストリーム(例えば、ライブカメラプレビュー620−1)を表示し続けながら、エフェクトアフォーダンス622を強調表示し、ヘルメットステッカー658−1及びロボットアバター633を再表示する。
図6AJでは、デバイス600は、キャプチャアフォーダンス621上の入力676(例えば、ディスプレイ601上のタップジェスチャ)を検出する。入力676を検出したことに応じて、デバイス600は、図6AJのライブカメラプレビュー620−1の画像をキャプチャし、図6AKのメディアアイテム620−2(例えば、デバイス600がキャプチャアフォーダンス621上の入力676を検出した時間におけるライブカメラプレビュー620−1の状態の静止画像)を表示する。
一部の実施形態では、画像がキャプチャされる(例えば、メディアアイテムとして記憶される)と、デバイス600は、深度データをメディアアイテム内に符号化する。深度データをメディアに記憶することにより、深度ベースのエフェクト(例えば、z方向におけるオブジェクト(例えば、ユーザの顔)の位置に基づくエフェクト)を後で適用することが可能になる。一部の実施形態では、エフェクトが適用されている間に画像がキャプチャされると、他のデバイスとの互換性を改善するために、そのエフェクトが視覚(例えば、RGB)情報に直接符号化される。
図6AKでは、デバイス600は、画像表示領域620にキャプチャされた画像(例えば、メディアアイテム620−2)を示すカメラアプリケーションユーザインタフェース615を表示する(例えば、メディアアイテム620−2は、画像表示領域620に示されるライブカメラプレビュー620−1を置換する)。メディアアイテム620−2は、キャプチャアフォーダンス621が選択された時点でのライブカメラプレビュー620−1の表現である。このように、メディアアイテム620−2は、被写体632の顔、及び背景636の上に表示されるヘルメットステッカー658−1及びロボットアバター633を含む。
デバイス600はまた、カメラ固有アフォーダンス(例えば、図6AJに示すアフォーダンス617)を、再撮影アフォーダンス679、及び、受信者識別子606に置換し、受信者識別子606は、以下に論じるように、ユーザが続いてメディアアイテムを送信すべき、メディアアイテム620−2の現在選択されている受信者を示す。
デバイス600は、ビジュアルエフェクトオプションアフォーダンス624を含むカメラオプション領域625を表示する。ビジュアルエフェクトオプションアフォーダンス624を選択して、それぞれのオプションメニューを表示することができ、メニューを使用して、キャプチャされたメディアアイテム620−2(並びに、後述する録画されたビデオメディアアイテム620−4)を変更することができる。
デバイス600はまた、カメラオプション領域625を更新して、キャプチャアフォーダンス621及びカメラセレクタアフォーダンス627を、マークアップアフォーダンス677、編集アフォーダンス678、及び送信アフォーダンス680に置換する。マークアフォーダンス677は、ユーザがメディアアイテム620−2をマークアップすることを可能にする。編集アフォーダンス678により、ユーザが、画像を切り取ること、又はメディアアイテム620−2の他の特性を調整することによってなどで、メディアアイテム620−2を編集することが可能になる。図6AKに示すように、送信アフォーダンス680がキャプチャアフォーダンス621をディスプレイ上でに置換するように、キャプチャアフォーダンス621が表示された同じ位置/領域内に、送信アフォーダンス680が表示される。
送信アフォーダンス680は、受信者識別子606によって示される受信者にメディアアイテム620−2を、ユーザが直ちに送信することを可能にする。例えば、図6ALでは、デバイス600は、送信アフォーダンス680上の入力682(例えば、ディスプレイ601上のタップジェスチャ)を検出し、図6AMのメッセージングユーザインタフェース603に示すように、受信者識別子606に対応する連絡先であるJohnに、メディアアイテム620−2を直ちに送信する。一部の実施形態では、デバイス600は、メッセージングユーザインタフェース603を表示することなくメディアアイテム620−2を送信する。図6AMに示すなどの一部の実施形態では、デバイスは、メディアアイテム620−2を送信し、メディアアイテム620−2を有するメッセージングユーザインタフェース603をメッセージ表示領域604に表示して、メディアアイテム620−2がメッセージ会話の参加者(例えば、John)に送信されたこと、及びキーボード表示領域612の上方に配置されたアプリケーションドック690を表示していること、を示す。アプリケーションドック690は、異なるアプリケーションにアクセスするために選択可能なアプリケーションアフォーダンス692を含む。
一部の実施形態では、メディアアイテム620−2は、メッセージング会話の参加者に直ちには送信されない。例えば、図6ANでは、送信アフォーダンス680を選択する代わりに、ユーザは完了アフォーダンス618を選択する。完了アフォーダンス618上の入力684(例えば、ディスプレイ601上のタップジェスチャ)を検出したことに応じて、デバイス600は、図6AOに示すように、メッセージングユーザインタフェース603のメッセージ作成フィールド608に、メディアアイテム685の表現を表示する。この実施形態(図6AO〜図6ARに示す)では、アプリケーションドック690を表示する代わりに、デバイス600は、メッセージを送信する前に、キーボード表示領域612と一緒にテキスト提案領域614を表示し、ユーザがテキスト(例えば、687)を作成するか、又は任意選択的に他のメッセージコンテンツ(例えば、マルチメディアコンテンツ)を追加できるようにする。送信アイコン688上の入力686(例えば、ディスプレイ601上のタップジェスチャ)を検出したことに応じて、デバイス600は、図6AQ〜図6ARに示すように、メディアアイテム685の表現をメッセージ会話の参加者に送信する。
一部の実施形態では、メディアアイテム685を送信することは、メディアアイテムに符号化された深度データを有するメディアアイテムを送信することを含む。深度データと共にメディアアイテムをメディアに記憶することにより、深度ベースのエフェクト(例えば、z方向におけるオブジェクト(例えば、ユーザの顔)の位置に基づくエフェクト)を、後で適用すること(例えば、受信者が後で適用すること)が可能になる。一部の実施形態では、メディアアイテムが送信されると、他のデバイスとの互換性を向上させるために、そのエフェクトが視覚(例えばRGB)情報に直接符号化される。
一部の実施形態では、メディアアイテム685の表現を送信した後、デバイス600は、図6ARに示すように、キーボード表示領域612の上方に表示されるテキスト提案領域614を有するメッセージングユーザインタフェース603を表示する。アプリケーションドックアフォーダンス610上の入力694(例えば、ディスプレイ601上のタップジェスチャ)を受信したことに応じて、デバイス600は、図6ATに示すように、テキスト提案領域614をアプリケーションドック690に置換する。
一部の実施形態では、ユーザがメッセージ作成フィールド608又ははキーボード領域612(メッセージのテキストを作成することに関連付けられた動作)を選択するまで、アプリケーションドック690はメッセージングユーザインタフェース603に表示されたままである。例えば、図6AUに示すように、デバイス600は、キーボード表示領域612上の入力696(例えば、デバイス601上のタップジェスチャ)を検出する。これに応じて、図6AVに示すように、デバイス600は、アプリケーションドック690を除去し、キーボード表示領域612の上方にテキスト提案領域614を表示する。一部の実施形態では、入力696が(キーボード表示領域612の代わりに)メッセージ作成フィールド上の入力である場合、デバイス600はまた、図6AVに示すように、アプリケーションドック690を除去し、テキスト提案領域614を表示する。
図6AWは、アプリケーションドックアフォーダンス610が選択された後(例えば、図6ASの入力694に応じて)のメッセージングユーザインタフェース603を示す。アプリケーションドック690は、キーボード選択領域612の上方に表示される(例えば、テキスト提案領域614を置換する)。アプリケーションアフォーダンス692−1上の入力698(例えば、ディスプレイ601上のタップジェスチャ)を検出したことに応じて、デバイス600は、テキスト提案領域614及びキーボード表示領域612によって以前に占有されていた位置にアプリケーション表示領域699を表示する。アプリケーション表示領域699は、アプリケーションドック690を任意選択的に含み、アプリケーションドック690は、図6AXに示すように、選択されたアプリケーションアフォーダンス(例えば、アプリケーションアフォーダンス692−1)の表示6100を含む。
一部の実施形態では、アプリケーション表示領域699は、メッセージングユーザインタフェース603で使用するために選択できるグラフィカルオブジェクト6102を含む。一部の実施形態では、アプリケーション表示領域699に表示されるグラフィカルオブジェクトのタイプは、アプリケーション表示領域の表示を呼び出すために選択されたアプリケーションアフォーダンスに依存する。図6AXに示す実施形態では、選択されたアプリケーションアフォーダンス692−1は、アバターアプリケーションに対応する。したがって、アプリケーション表示領域699に表示されるグラフィカルオブジェクト6102−1及び6102−2は、メッセージングユーザインタフェースで使用するために選択できるアバターに対応する。アプリケーションドック610から選択されたアプリケーションアフォーダンスがステッカーアプリケーションに対応する場合、グラフィカルオブジェクト6102は、メッセージングユーザーインタフェースで使用するために選択できるステッカーに対応する。
前述したように、図6C〜図6AXに関して説明した先の実施形態は、写真アフォーダンス619−2に関連付けられた動作の静止画像キャプチャモードで動作するデバイス600に関して論じられる。しかしながら、特に明記しない限り、これらの実施形態はまた、デバイスがビデオアフォーダンス619−1に関連付けられたビデオ録画モードで動作しているときのデバイス600の動作に適用される。このようにして、ビデオアフォーダンス619−1に関連付けられたビデオ録画モードで動作しているときにデバイス600に適用される先の実施形態の多くを示す、図6AY〜図6BQの下記の説明は、冗長性を避けるために必要に応じて省略されている。
図6AY〜図6AZは、カメラアプリケーションユーザインタフェース615のビデオアフォーダンス619−1上の入力6104を検出したことに応じて、デバイス600がビデオ録画モードに切り替わることを示す。ビデオ録画モードに切り替えると、デバイス600は、カメラ固有アフォーダンス617−2、617−3、及び617−4を除外し、タイマ6122を表示する。
図6AZ〜図6BBは、エフェクトアフォーダンス622上の入力6106に応じてエフェクトモードを有効化し、次いでビデオ記録モードが有効化されている間に、カメラオプション領域625にビジュアルエフェクトオプションアフォーダンス624を表示するデバイス600を示す。
図6BC〜図6BEは、アバターエフェクトアフォーダンス624−1上の入力6108を検出したことに応じて、アバターオプションメニュー628を表示するデバイス600を示す。アバターオプションメニュー628は、ビデオモード中に被写体の顔に対応するアバターを表示するために選択できる、アバターオプション630を含む。ロボットアバターオプション630−3が選択されると、デバイス600は、被写体の身体及び背景636の表示を維持しながら、ロボットアバター633を被写体の顔に表示する。クローズアイコン650は入力6110により選択され、アバターオプションメニュー628をクローズし、強調表示されたエフェクトアフォーダンス622及び表示されたビジュアルエフェクトオプションアフォーダンス624を有するカメラオプション領域625に戻る。
図6BF〜図6BHは、画像表示領域620に表された画像データの録画されたビデオを生成するデバイス600を示す。デバイス600は、キャプチャアフォーダンス621上の入力6112を検出し、画像表示領域620に表された画像データのキャプチャを開始する。一部の実施形態では、デバイス600は、デバイス600のビデオ録画モードが有効化されているとの判定に基づいて、画像データのビデオ記録を生成する。一部の実施形態では、デバイス600は、キャプチャアフォーダンス621上で検出された入力6112に基づいて、ビデオ録画又は任意選択で静止画像キャプチャを生成する。例えば、入力6112がタップジェスチャとして検出されると、デバイス600は、画像表示領域620に表される画像データの静止画像をキャプチャする。入力6112がタップアンドホールドジェスチャとして検出された場合、デバイス600は、一層詳細に上述したように、画像データのビデオ録画をキャプチャする。
図6BGでは、キャプチャアフォーダンス621上の入力6112を検出したことに応じて、デバイス600は、被写体、背景、及びビジュアルエフェクトを含む画像表示領域620に表される画像データを記録するための処理を開始する。デバイス600はまた、カメラエフェクト領域625を除去し、画像表示領域620を拡張し、並びに停止アフォーダンス6114、及び任意選択的に、ライブカメラ記録の静止画像をキャプチャするための画像キャプチャアフォーダンス6116を表示することによって、カメラアプリケーションユーザーインタフェース615を変更する。図6BG及び図6BHでは、画像表示領域620は、上述のようになされた様々な選択に従って有効化されるビジュアルエフェクト(例えば、ロボットアバター633)の追加を伴う、カメラ602の視野内のオブジェクトのライブカメラ記録620−3を表す。ステッカー及びフルスクリーンエフェクトを含むこともできる、これらのビジュアルエフェクトは、ライブ画像データの一部として画像表示領域620に表示され、結果としてのメディアアイテムの一部を形成するために記録される。本明細書で論じるように、これらのビジュアルエフェクトは、メディアアイテムが記録された後、メディアアイテムに任意選択的に表示又は隠すことができる。
図6BHでは、デバイス600は、ユーザの顔の変化を検出し、ライブ画像ストリームを記録しながら、ユーザの顔の検出された変化に基づいてロボットアバター633を変更する。停止アフォーダンス6114上の入力6118を検出したことに応じて、デバイス600は、画像表示領域620に表される画像データの記録を停止し、図6BIに示す再生インタフェースを表示する。
図6BIでは、デバイス600は、画像表示領域620に記録されたビデオメディアアイテム620−4を表示し、再撮影アフォーダンス679及び受信者識別子606を表示し、受信者識別子は、本明細書で論じるように、ユーザが続いてメディアアイテムを送信すべき、ビデオアイテム620−4の現在選択されている受信者を示す。
デバイス600はまた、停止アフォーダンス6114及び画像キャプチャアフォーダンス6116を除去し、記録されたビデオメディアアイテム620−4用のビデオスクラバ6120、エフェクトアフォーダンス622、編集アフォーダンス678、マークアップアフォーダンス677、及び送信アフォーダンス680を有するカメラオプション領域625を表示する。カメラオプション領域625はまた、ビジュアルエフェクトオプションアフォーダンス624を含む。ビジュアルエフェクトオプションアフォーダンス624を選択して、キャプチャされたメディアアイテム620−4を変更するために使用できる、それぞれのオプションメニューを表示することができる。図6BJ〜図6BNは、キャプチャされたビデオメディアアイテム620−4においてビジュアルエフェクトを変更する例を示す。図6BIに示すように、送信アフォーダンス680がキャプチャアフォーダンス6116をディスプレイ上でに置換するように、キャプチャアフォーダンス6116が表示された同じ位置/領域内に、送信アフォーダンス680が表示される。
図6BJ〜図6BNは、アバターエフェクトアフォーダンス624−1上の入力6124を検出したことに応じて、アバターオプションメニュー628を表示するデバイス600を示す。図6BKに示すように、アバターオプションメニュー628は、選択されたロボットアバターオプション630−3を含むアバターオプション630を示す。図6BLに示すように、デバイス600は、入力6126を検出してウサギアバターオプション630−4を選択し、ビデオメディアアイテム620−4を更新して、図6BMに示すように、被写体の身体及び背景636をなおも表示しながら、被写体の頭部に配置されたウサギアバター634を示す。図6BNに示すように、クローズアイコン650上の入力6128を検出したことに応じて、デバイス600は、アバターオプションメニュー628をクローズし、図6BOのカメラオプション領域625を表示する。ビデオスクラバ6120を含むカメラオプション領域625は、図6BJのロボットアバター633の表示から、ウサギアバター634の表示に更新される。一部の実施形態では、ビデオスクラバ6120に向けられた入力(例えば、ビデオスクラバ6120の位置で開始する接触の動きを含むスワイプ入力又はドラッグ入力)に応じて、デバイスは、録画されたビデオを通じてスクラブする(例えば、ビデオのプレビューの外観を変更し、及び入力に従って、スクラバを移動させるか又はスクラバ内の再生ヘッドを移動させる)。一部の実施形態では、記録されたビデオを通じてスクラブすることは、ビデオに適用されるエフェクトが経時的にどのように影響を及ぼすか(例えば、ステッカー及び/又はアバターが、ユーザの頭部/顔が動くにつれて、どのように動き、及び/又は表現を変化させるか、若しくは1つ以上のカメラの視野内の表現を変化させるか)を示す。一部の実施形態では、ビデオスクラバ6120は、ビデオをクロッピングする(例えば、ビデオスクラバの両端の編集アフォーダンスをドラッグすることにより、ビデオスクラバの開始又は終了時間を変更する)ための選択可能なアフォーダンスを含む。例えば、図8AWのビデオスクラバ8120に向けられたユーザ入力に応じて、デバイスは、図8AW〜8AZに示すように、アバター及びステッカーを用いて、しかし入力(例えば、タッチ感知ディスプレイ上の接触の動きの大きさ及び方向)の変化に基づいて決定されたレートで、ビデオを通じてスクラブし得る。上述したビデオスクラバ6120(及び後述するビデオスクラバ8120)との相互作用は、本明細書に記載する他のスクラバとの相互作用に対するのと同様の方法で、任意選択的に適用される。
図6AK〜図6AOに関して上述したように、ビデオメディアアイテム620−4を、図6BP及び図6BQに示すように、送信アフォーダンス680上の入力(例えば、入力6130)を検出したことに応じて、メッセージ会話の参加者に直ちに送信することができる。ビデオメディアアイテム620−4の表現は、完了アフォーダンス618の入力に応じて、メッセージ作成フィールド608に表示することができる。
図7A〜図7Bは、一部の実施形態に係る、電子デバイスを使用してメッセージングアプリケーションにビジュアルエフェクトを表示するための方法を示すフロー図である。方法700は、カメラ、表示装置、及び1つ以上の入力デバイスを備えたデバイス(例えば、100、300、500、600)にて実行される。方法700におけるいくつか動作は、任意選択的に組み合わせられ、いくつかの動作の順序は任意選択的に変更され、いくつかの動作は任意選択的に省略される。
以下に説明するように、方法700は、メッセージングアプリケーションにおいてビジュアルエフェクトを表示するための直感的な仕方を提供する。この方法は、メッセージングアプリケーションにおいて送信する画像にビジュアルエフェクトを適用するためユーザの認知負担を軽減し、それによって、より効率的なヒューマン−マシンインタフェースを作り出す。バッテリ動作コンピューティングデバイスでは、画像にビジュアルエフェクトをユーザーがより迅速かつ効率的に表示できるようにすることで、電力を節約し、バッテリ充電間の時間を増大させる。
電子デバイス(例えば、600)は、表示装置(例えば、601)を介して、少なくとも第1の参加者を含むメッセージ会話の、カメラアフォーダンス(例えば、609、カメラアプリケーションをアクティブ化するための機能に関連付けられた選択可能なアイコン)を含むメッセージングユーザインタフェース(例えば、603)を表示する(702)。
電子デバイス(例えば、600)は、1つ以上の入力デバイスを介して、カメラアフォーダンスに向けられた第1の入力(例えば、616、カメラアフォーダンスに対応する位置におけるタッチスクリーンディスプレイ上のタッチジェスチャ)を検出する(704)。
第1の入力(例えば、616)を検出したことに応じて、電子デバイス(例えば、600)は、カメラユーザインタフェース(例えば、615)を表示する(706)。カメラユーザインタフェースは、キャプチャアフォーダンス(例えば、電子デバイスのカメラを使用して画像データをキャプチャするための機能に関連付けられた選択可能なアイコン、621)を含む(708)。
一部の実施形態では、カメラユーザインタフェース(例えば、615)は、キャプチャされた画像データに表示するためにビジュアルエフェクトが有効化されるモードに関連付けられたエフェクトモードアフォーダンス(例えば、622、画像データを変更するために様々なビジュアルエフェクトが利用可能なモードをアクティブ化するための機能に関連付けられた選択可能なアイコン)を含む(710)。カメラユーザインタフェースにエフェクトモードアフォーダンスを含めることにより、ユーザが、カメラユーザインタフェースを介して特定のエフェクト(例えば、ビジュアルエフェクト)を画像に適用できることを認識することが可能になる。デバイスの追加の制御を提供することにより、デバイスの操作性が改善され、ユーザデバイスインタフェースを(例えば、デバイスを操作/対話するときに適切な入力を提供するようにユーザを支援し、ユーザの誤りを削減することによって)更に効率的にし、加えて、ユーザがデバイスを更に素早くかつ効率的に使用することを可能にすることによってデバイスの電力使用を削減し、バッテリ寿命を改善する。一部の実施形態では、ビジュアルエフェクトを、カメラの視野内の画像データの表現に付加することができる。一部の実施形態では、ビジュアルエフェクトを、キャプチャされた画像データに付加することができる。一部の実施形態では、ビジュアルエフェクトは深度データに基づく。一部の実施形態では、電子デバイスは、1つ以上の入力デバイスを介して、エフェクトモードアフォーダンスの選択(たとえば、623)を検出する。一部の実施形態では、エフェクトモードアフォーダンスの選択を検出したことに応じて、電子デバイスは、第1のカメラモード(例えば、標準カメラモード)から、第1のカメラモードとは異なる第2のカメラモード(例えば、エフェクトカメラモード、画像データを変更するために様々なビジュアルエフェクトを利用できるモード)に、電子デバイスを遷移させる。一部の実施形態では、デバイスが第2のカメラモードにある間に、第2のカメラモードが動作しているという視覚表示が表示される(例えば、エフェクトモードアフォーダンスが強調表示される)。
一部の実施形態では、エフェクトモードアフォーダンス(例えば、622)の選択(例えば、623)を検出することに更に応じて、電子デバイス(例えば、600)は、1つ以上のカメラモードアフォーダンスを表示することを停止する。一部の実施形態では、エフェクトモードアフォーダンスの選択を検出したことに更に応じて、電子デバイスは、複数のエフェクトオプションアフォーダンス(例えば、624、ビジュアルエフェクトを生成するための機能にそれぞれ関連付けられた選択可能なアイコン)を表示する。一部の実施形態では、エフェクトオプションアフォーダンスは、1つ以上のカメラモードアフォーダンスによって以前に占有されていた、カメラユーザインタフェース(例えば、615)内の位置に、ステッカーアフォーダンス(例えば、624−2)及び/又はアバターアフォーダンス(例えば、624−1)を含む。一部の実施形態では、エフェクトオプションアフォーダンスが表示される位置は、カメラモードアフォーダンスが以前に表示された特定の領域(例えば、カメラエフェクト領域625)内の任意の位置である。一部の実施形態では、それぞれのエフェクトオプションアフォーダンスが表示される位置は、それぞれのカメラモードアフォーダンスがその領域に表示されたのと同じ位置である。一部の実施形態では、エフェクトオプションアフォーダンスを表示することは、カメラモードアフォーダンスをエフェクトオプションアフォーダンスに置換することを含む。
一部の実施形態では、電子デバイス(例えば、600)は、1つ以上の入力デバイスを介して、エフェクトオプションアフォーダンスの第1のもの(例えば、ステッカーアフォーダンス624−2)の選択(例えば、654)を検出する。一部の実施形態では、エフェクトオプションアフォーダンスのうちの第1のものの選択を検出したことに応じて、電子デバイスは、複数のエフェクトオプションアフォーダンス(例えば、624)を表示することを停止し、複数の選択可能なグラフィックアイコン(例えば、658、ステッカー)を表示する。エフェクトオプションアフォーダンスのうちの第1のものの選択を検出したことに応じて、複数のエフェクトオプションアフォーダンスの表示を停止し、複数の選択可能なグラフィックアイコンを表示することにより、ユーザは、エフェクトオプションアフォーダンスのうちの第1のものがグラフィックアイコン(例えば、ステッカー)オプションに関連することを迅速かつ容易に認識することができ、それによって、デバイスの操作性が改善され、ユーザデバイスインタフェースを(例えば、デバイスを操作/対話するときに適切な入力を提供するようにユーザを支援し、ユーザの誤りを削減することによって)更に効率的にし、加えて、ユーザがデバイスを更に素早くかつ効率的に使用することを可能にすることによってデバイスの電力使用を削減し、バッテリ寿命を改善する。一部の実施形態では、ステッカーを表示することは、エフェクトオプションのアフォーダンスの上に領域(例えば、ステッカーメニュー656)を表示することを含み、この領域は、カメラユーザインタフェースに表される画像上に表示するために選択できる複数のステッカーオプションを含む。一部の実施形態では、ユーザは、ステッカー上をタップすることによってステッカー(例えば、658−1)を選択し(例えば、660)、ステッカーは画像上に自動的に表示される(例えば、画像の中心などのデフォルト位置に)。一部の実施形態では、ユーザは、ステッカーをタッチし、ステッカーをステッカーメニューから画像上にドラッグすることによって、ステッカーを選択する。一部の実施形態では、キャプチャアフォーダンスを表示している間に、エフェクトオプションアフォーダンスのうちの第1のものの選択を検出したことに更に応じて、電子デバイスは、キャプチャアフォーダンスの表示を停止する。
一部の実施形態では、電子デバイス(例えば、600)は、1つ以上の入力デバイスを介して、エフェクトオプションアフォーダンスのうちの第2のもの(例えば、アバターアフォーダンス624−1)の選択(例えば、626)を検出する。一部の実施形態では、エフェクトオプションアフォーダンスのうちの第2のものの選択を検出したことに応じて、電子デバイスは、複数のエフェクトオプションアフォーダンス(例えば、624)の表示を停止し、複数のアバターアフォーダンス(例えば、直線配置で表示される630)(例えば、アバターを表すアフォーダンス)を有するアバター選択領域(例えば、アバターメニュー628)を表示する。エフェクトオプションアフォーダンスのうちの第2のものの選択を検出したことに応じて、複数のエフェクトオプションアフォーダンスの表示を停止し、アバター選択領域を表示することにより、ユーザは、エフェクトオプションアフォーダンスのうちの第2がアバター選択に関連することを迅速かつ容易に認識することができ、それによって、デバイスの操作性が改善され、ユーザデバイスインタフェースを(例えば、デバイスを操作/対話するときに適切な入力を提供するようにユーザを支援し、ユーザの誤りを削減することによって)更に効率的にし、加えて、ユーザがデバイスを更に素早くかつ効率的に使用することを可能にすることによってデバイスの電力使用を削減し、バッテリ寿命を改善する。一部の実施形態では、アバターアフォーダンスは、カスタマイズ可能、カスタマイズ不可能、又はそれらの組み合わせであるアバターに対応する。一部の実施形態では、アバター選択領域を表示することは、エフェクトオプションアフォーダンスの上に領域(例えば、アバターメニュー628)を表示することを含み、この領域は、カメラユーザインタフェースに表される画像上に対応するアバターを表示するために選択できる複数のアバターアフォーダンスを含む。
一部の実施形態では、電子デバイス(例えば、600)は、1つ以上の入力デバイスを介して、アバター選択領域(例えば、628)上のスワイプ入力(例えば、646、垂直スワイプジェスチャ)を検出する。一部の実施形態では、アバター選択領域上のスワイプ入力を検出したことに応じて、電子デバイスは、アバター選択領域(例えば、628−1)のサイズを増大させ、マトリックス状に配置された複数のアバターアフォーダンス(例えば、630)を表示する。アバター選択領域上のスワイプ入力を検出したことに応じて、アバター選択領域のサイズを増大させ、複数のアバターアフォーダンスをマトリクス状に表示することにより、ユーザは、アバター選択領域では(同時に)見えない、1つ以上の追加選択可能なアバターを(同時に)見ることができる。追加表示されたコントロールによりユーザインタフェースを雑然とさせることなく追加の制御オプションを提供することにより、デバイスの操作性が改善され、ユーザデバイスインタフェースを(例えば、デバイスを操作/対話するときに適切な入力を提供するようにユーザを支援し、ユーザの誤りを削減することによって)更に効率的にし、加えて、ユーザがデバイスを更に素早くかつ効率的に使用することを可能にすることによってデバイスの電力使用を削減し、バッテリ寿命を改善する。一部の実施形態では、アバター表示領域のサイズを増大することは、アバター表示領域の全画面表示を提示するために、アバター表示領域にマトリックス状に表示されたアバターアフォーダンスを用いて、アバター表示領域を垂直方向に拡張することを含む。
一部の実施形態では、カメラユーザインタフェース(例えば、615)は、画像データの第1の表現(例えば、ライブカメラプレビュー620−1)を更に含む。画像データの第1の表現(例えば、ライブカメラプレビュー)を提供することにより、変更を保存/確認する前に、ユーザによってなされた1つ以上の(画像への)変更についての視覚フィードバックを提供する。改善された視覚フィードバックをユーザに提供することにより、デバイスの操作性が改善され、ユーザデバイスインタフェースを(例えば、デバイスを操作/対話するときに適切な入力を提供するようにユーザを支援し、ユーザの誤りを削減することによって)更に効率的にし、加えて、ユーザがデバイスを更に素早くかつ効率的に使用することを可能にすることによってデバイスの電力使用を削減し、バッテリ寿命を改善する。一部の実施形態では、エフェクトモードアフォーダンス(例えば、624−1、624−2)の選択を検出したことに更に応じて、電子デバイス(例えば、600)は、画像データの第1の表現が、第2のカメラ(例えば、背面カメラ)から取得された画像データに対応するとの判定に従って、画像データの第1の表現の表示を停止し、画像データの第2の表現(例えば、ライブカメラプレビュー)を表示し、この画像データの第2の表現は、カメラ(例えば、正面カメラ)から取得された画像データに対応する。一部の実施形態では、正面カメラに対応する画像データの表現は、正面カメラの視野内に位置するユーザの表現を含む。
一部の実施形態では、電子デバイス(例えば、600)が第2のカメラモード(例えば、エフェクトカメラモード、画像データを変更するための様々なビジュアルエフェクトを利用できるモード)である間に、電子デバイスは、第1のカメラモード(例えば、通常モード、非エフェクトモード)への遷移要求(例えば、アクティブなビジュアルエフェクトアフォーダンスの選択)を受信する。一部の実施形態では、電子デバイスは、第1のカメラモードへの遷移要求を受信したことに応じて、電子デバイスを第2のカメラモードから第1のカメラモードに遷移させる。一部の実施形態では、電子デバイスは、第1のビジュアルエフェクトがアクティブである(例えば、キャプチャされた画像データ又はキャプチャ用の画像データのプレビューにアクティブに適用されている)ことに従って、第1のビジュアルエフェクトを非アクティブ化する(例えば、無効化する、表示された第1のビジュアルエフェクトの表示を停止する)。
一部の実施形態では、第1のビジュアルエフェクトを非アクティブ化した後、電子デバイス(例えば、600)は、1つ以上の入力デバイスを介して、エフェクトモードアフォーダンス(例えば、624−1、624−2)の後続の選択を検出する。一部の実施形態では、エフェクトモードアフォーダンスの後続の選択を検出したことに応じて、電子デバイスは、第1のビジュアルエフェクトを非アクティブ化した後の所定の時間内に、エフェクトモードアフォーダンスの後続の選択が発生したとの判定に従って、第1のビジュアルエフェクトを再アクティブ化する。第1のビジュアルエフェクトを非アクティブ化した後の所定の時間内に、エフェクトモードアフォーダンスの後続の選択が発生したとの判定に従って、第1のビジュアルエフェクトを再アクティブ化することにより、ユーザは、(例えば、エフェクトを再選択/再生成する必要なく)以前のビジュアルエフェクトに迅速かつ容易に戻ることができる。追加表示されたコントロールによりユーザインタフェースを雑然とさせることなく追加の制御オプションを提供することにより、デバイスの操作性が改善され、ユーザデバイスインタフェースを(例えば、デバイスを操作/対話するときに適切な入力を提供するようにユーザを支援し、ユーザの誤りを削減することによって)更に効率的にし、加えて、ユーザがデバイスを更に素早くかつ効率的に使用することを可能にすることによってデバイスの電力使用を削減し、バッテリ寿命を改善する。一部の実施形態では、画像からビジュアルエフェクトを除去するエフェクトモードアフォーダンスを選択した後、所定の時間内にエフェクトモードアフォーダンスが再び選択されると、除去されたビジュアルエフェクトが画像に復元される。
電子デバイス(例えば、600)は、1つ以上の入力デバイスを介して、キャプチャアフォーダンス(例えば、621)に向けられた第2の入力(例えば、676、キャプチャアフォーダンスに対応する位置におけるタッチスクリーンディスプレイ上のタッチジェスチャ)を検出する(712)。
電子デバイス(例えば、600)は、第2の入力(714)を検出したことに応じて、カメラ(例えば602)を使用して画像データをキャプチャする(716)。一部の実施形態では、画像データをキャプチャすることは、第1のキャプチャモード基準(例えば、閾値持続時間よりも小さい)を満たす第2の入力の特性(例えば、接触の持続時間)の値に従って、第1の画像キャプチャモード(例えば、写真キャプチャモード、静止画像キャプチャモード)で画像データをキャプチャすることを含む。一部の実施形態では、画像データをキャプチャすることは、第2のキャプチャモード基準(例えば、第2の閾値持続時間よりも大きい)を満たす第2の入力の特性の値に従って、第2の画像キャプチャモード(例えば、ビデオキャプチャモード、連続キャプチャモード)で画像データをキャプチャすることを含む。一部の実施形態では、キャプチャアフォーダンス(例えば、621)は、多機能キャプチャアフォーダンスである。一部の実施形態では、キャプチャアフォーダンス上でタップが検出されると、電子デバイスは写真(例えば、静止画像)をキャプチャする。一部の実施形態では、電子デバイスは、キャプチャアフォーダンス上でプレスアンドホールドジェスチャが検出されると、ビデオ(例えば、連続画像)をキャプチャする。
第2の入力(例えば、676)を検出すること(714)に応答して、電子デバイス(例えば、600)は、キャプチャアフォーダンス(例えば、621)の表示を停止する(718)。
一部の実施形態では、電子デバイス(例えば、600)は、カメラ(例えば、602)を使用して画像データをキャプチャした後、マークアップアフォーダンス(例えば、677)、編集アフォーダンス(例えば、678)、及び再撮影アフォーダンス(例えば、679)を表示する。一部の実施形態では、電子デバイスは、マークアップアフォーダンス、編集アフォーダンス、及び再撮影アフォーダンスを表示している間に、1つ以上の入力デバイスを介して、第4のユーザ入力を受信する。一部の実施形態では、電子デバイスは、第4のユーザ入力を検出したことに応じて、編集アフォーダンスに対応する第4のユーザ入力に従って、キャプチャされた画像データを編集するための処理を開始する。一部の実施形態では、編集のための処理は、キャプチャされた画像データを編集するための1つ以上のアフォーダンスを表示することを含む。一部の実施形態では、電子デバイスは、第4のユーザ入力を検出したことに応じて、マークアップアフォーダンスに対応する第4のユーザ入力に従って、キャプチャされた画像データをマークアップするための処理を開始する。一部の実施形態では、編集のための処理は、キャプチャされた画像データをマークアップするための1つ以上のアフォーダンスを表示することを含む。一部の実施形態では、電子デバイスは、第4のユーザ入力を検出したことに応じて、再撮影アフォーダンスに対応する第4のユーザ入力に従って、キャプチャされた画像データを再撮影するための処理を開始する。一部の実施形態では、キャプチャされた画像データを再撮影する処理を開始することは、新たな画像データをキャプチャし、キャプチャされた画像データを新しい画像データに置換することを含む。
第2の入力(例えば、676)を検出すること(714)に応じて、電子デバイス(例えば、600)は、キャプチャアフォーダンス(例えば、621)によって以前に占有されていたカメラユーザインタフェース(例えば、615)内の位置に、送信アフォーダンス(例えば、680、キャプチャされた画像データを会話中の参加者に送信するための、又は後続の送信前に、キャプチャされた画像データを作成領域に提示するための機能に関連付けられた選択可能なアイコン)を表示する(720)。キャプチャアフォーダンスによって以前に占有されていたカメラユーザインタフェース内の位置に送信アフォーダンスを表示することにより、キャプチャされた画像を意図する受信者に送信する準備ができているという視覚フィードバックを提供する。ユーザインタフェースを雑然とさせることなく視覚フィードバックをユーザに提供することにより、デバイスの操作性が改善され、ユーザデバイスインタフェースを(例えば、デバイスを操作/対話するときに適切な入力を提供するようにユーザを支援し、ユーザの誤りを削減することによって)更に効率的にし、加えて、ユーザがデバイスを更に素早くかつ効率的に使用することを可能にすることによってデバイスの電力使用を削減し、バッテリ寿命を改善する。一部の実施形態では、送信アフォーダンス(例えば、680)が表示される位置は、キャプチャアフォーダンスが以前に表示された特定の領域(例えば、カメラエフェクト領域625)内の任意の位置である。一部の実施形態では、送信アフォーダンスが表示される位置は、キャプチャアフォーダンスがその領域内に表示されたのと同じ位置である。一部の実施形態では、送信アフォーダンスを表示することは、キャプチャアフォーダンスを送信アフォーダンスに置換することを含む。
一部の実施形態では、送信アフォーダンス(例えば、680)を表示している間に、電子デバイス(例えば、600)は、第1の参加者の表現(例えば、アイコン、写真、アバター、又は第1の参加者に関連付けられた他の識別子)を表示する(722)。送信アフォーダンスを表示している間に第1の参加者の表現を表示することにより、ユーザは、意図する受信者を迅速かつ容易に認識することができ、それによって、デバイスの操作性が改善され、ユーザデバイスインタフェースを(例えば、デバイスを操作/対話するときに適切な入力を提供するようにユーザを支援し、ユーザの誤りを削減することによって)更に効率的にし、加えて、ユーザがデバイスを更に素早くかつ効率的に使用することを可能にすることによってデバイスの電力使用を削減し、バッテリ寿命を改善する。一部の実施形態では、第1の参加者の表現は、キャプチャされた写真が第1の参加者に送信されることをユーザに示すインジケーションとして働く。一部の実施形態では、第1の参加者の表現は、カメラ(例えば、602)を使用して画像データをキャプチャする前には表示されない(724)。一部の実施形態では、カメラユーザインタフェース(例えば、615)は、画像データをキャプチャする前に表示されるカメラ固有アフォーダンス(例えば、フィルタ、照明オプション、タイマオプションなどに対応する619)を含む。一部の実施形態では、第1の参加者の表現を表示することで、表示されたカメラ固有アフォーダンスを第1の参加者の表現に置き換える。
電子デバイス(例えば、600)は、1つ以上の入力デバイスを介して、送信アフォーダンスに向けられた第3の入力(例えば、送信アフォーダンス680に対応する位置におけるタッチスクリーンディスプレイ上のタッチジェスチャ)を検出する(726)。
第3の入力を検出したことに応じて、電子デバイス(例えば、600)は、(例えば、後続の送信前に、作成領域内でキャプチャされた画像データを即座に送信又は提示する)処理を開始し(728)、キャプチャされた画像データを第1の参加者に送信する。
一部の実施形態では、電子デバイス(例えば、600)は、送信アフォーダンス(例えば、680)に向けられた第3の入力を検出する前に、完了アフォーダンス(例えば、カメラユーザインタフェースをクローズしてメッセージングユーザインタフェースを表示するための機能に関連付けられた選択可能なアイコン)を表示する。一部の実施形態では、電子デバイスは、1つ以上の入力デバイスを介して、完了アフォーダンスの選択を検出する。一部の実施形態では、電子デバイスは、完了アフォーダンスの選択を検出したことに応じて、メッセージ作成領域(例えば608)を有するメッセージングユーザーインタフェース(例えば、603)を表示する。一部の実施形態では、電子デバイスは、完了アフォーダンスの選択を検出したことに応じて、キャプチャされた画像データの表現をメッセージ作成領域に表示する。一部の実施形態では、完了アフォーダンスを選択すると、カメラユーザインタフェースをクローズし、キャプチャされた画像データを送信することなく、キャプチャされた画像データをメッセージングユーザインタフェースのメッセージ作成フィールドに表示する。
一部の実施形態では、電子デバイス(例えば、600)は、第3のユーザ入力を検出する前に、第1の画像キャプチャモード(例えば、写真キャプチャモード、ビデオキャプチャモード)にある。一部の実施形態では、電子デバイスは、第3のユーザ入力を検出したことに更に応じて、第1の画像キャプチャモードを維持する。一部の実施形態では、電子デバイスは、複数のモード(例えば、写真キャプチャモード、ビデオキャプチャモード)に従って画像データをキャプチャするように構成(例えば、ユーザ構成)することができる。一部の実施形態では、電子デバイスが第1のカメラモード(例えば、標準カメラモード、非エフェクトカメラモード)から第2のカメラモード(例えば、エフェクトカメラモード)に遷移する場合でさえも、画像キャプチャモードの選択は持続的である。
一部の実施形態では、キャプチャされた画像データを第1の参加者に送信する処理を開始することは、(例えば、メッセージングユーザインタフェース615を表示することなく)キャプチャされた画像データを第1の参加者に送信することを含む。一部の実施形態では、カメラユーザインタフェースから送信アフォーダンス(例えば、680)を選択すると、中間ユーザインタフェースを表示することなく、又はユーザからの更なる入力を要求することなく、メッセージ会話の他の参加者にキャプチャされた画像データを直ちに送信する。
一部の実施形態では、キャプチャされた画像データを第1の参加者に送信する処理を開始することは、メッセージングユーザインタフェース(例えば、615)を再表示することを含み、メッセージングユーザインタフェースは、キーボード領域(例えば、612)及びアプリケーションメニューアフォーダンス(例えば、610、アプリケーションメニューユーザインタフェースを表示するための機能に関連付けられた選択可能なアイコン)を更に含む。キャプチャされた画像データを第1の参加者に送信する処理を開始することの一部としてメッセージングユーザインタフェースを再表示することにより、キャプチャされた画像データがメッセージ会話を介して送信されているという視覚フィードバックを提供する。改善された視覚フィードバックをユーザに提供することにより、デバイスの操作性が改善され、ユーザデバイスインタフェースを(例えば、デバイスを操作/対話するときに適切な入力を提供するようにユーザを支援し、ユーザの誤りを削減することによって)更に効率的にし、加えて、ユーザがデバイスを更に素早くかつ効率的に使用することを可能にすることによってデバイスの電力使用を削減し、バッテリ寿命を改善する。一部の実施形態では、アプリケーションメニューアフォーダンスは、メッセージングユーザインタフェース内のメッセージ作成フィールドに隣接して表示される。一部の実施形態では、電子デバイス(例えば、600)は、1つ以上の入力デバイスを介して、アプリケーションメニューアフォーダンスの選択を検出する。一部の実施形態では、アプリケーションメニューアフォーダンスの選択を検出したことに応じて、電子デバイスは、キーボード領域に隣接する(例えば、その上方の)アプリケーションメニュー領域であって、複数のアプリケーションアフォーダンス(例えば、それぞれのアプリケーションアフォーダンスに関連付けられたアプリケーションを開始するための機能にそれぞれ関連付けられた選択可能なアイコン)を有する、アプリケーションメニュー領域を表示する。一部の実施形態では、アプリケーションアフォーダンスは、ステッカーアフォーダンス及びアバターアフォーダンスを含む。
一部の実施形態では、電子デバイス(例えば、600)は、メッセージングユーザインタフェース(例えば、615)上の第4の入力を検出する。一部の実施形態では、第4の入力が、キーボード領域(例えば、612)の位置、又はメッセージングユーザインタフェース内のメッセージ作成領域(例えば、608)の位置に対応するとの判定に従って、電子デバイスは、アプリケーションメニュー領域の表示を停止し、アプリケーションメニュー領域によって以前に占有されていたメッセージングユーザインタフェース内の位置に、テキスト提案領域(例えば、ユーザが便利に選択するための推奨ワードのリストを有する領域)を表示する。
一部の実施形態では、電子デバイス(例えば、600)は、アプリケーションメニュー領域内の複数のアプリケーションアフォーダンス(例えば、ステッカーアフォーダンス又はアバターアフォーダンス)のうちの1つの選択を検出する。一部の実施形態では、アプリケーションアフォーダンス(例えば、610)の選択を検出したことに応じて、電子デバイスは、キーボード領域(例えば、612)の表示を停止し、キーボード領域によって以前に占有されていたメッセージングユーザインタフェース(例えば、615)内の位置にアプリケーション表示領域を表示し、アプリケーション表示領域は、選択されたアプリケーションアフォーダンスに対応する複数のグラフィカルオブジェクト(例えば、アバター又はステッカー)を含む。一部の実施形態では、選択されたアプリケーションアフォーダンスはステッカーアフォーダンスであり、アプリケーション表示領域に表示されるグラフィカルオブジェクトはステッカーである。一部の実施形態では、選択されたアプリケーションアフォーダンスはアバターアフォーダンスであり、アプリケーション表示領域に表示されるグラフィカルオブジェクトは、アバター(例えば、カスタマイズ可能なアバター、及び/又はカスタマイズ不可能なアバター)である。
なお、方法700に関して上述された処理(例えば、図7A〜図7B)の詳細はまた、以下で説明される方法にも、類似の方式で適用可能であることに留意されたい。例えば、方法900、1100、1300、及び1500は、方法700に関して上述した様々な方法の特性のうちの1つ以上を任意選択的に含む。例えば、ステッカー及び仮想アバターなどのビジュアルエフェクトが、カメラアプリケーションユーザインタフェース、メディアユーザーインタフェース、及びライブビデオ通信セッションのためのユーザーインタフェースにおいて画像データに表示される。簡潔にするために、これらの詳細は、以下では繰り返さない。
図8A〜図8BQは、一部の実施形態に係る、カメラアプリケーションにおいてビジュアルエフェクトを表示するための例示的なユーザインタフェースを示す。これらの図のユーザインタフェースは、図9A及び図9Bの処理を含めた、以下で説明される処理を示すために用いられる。
図8Aでは、デバイス600は、ホーム画面800を示し、カメラアプリケーションアフォーダンス802上の入力801を検出する。
図8Bでは、入力801を検出したことに応じて、デバイス600は、カメラアプリケーションアフォーダンス802に関連付けられたカメラアプリケーションを起動し、カメラアプリケーションユーザインタフェース815を表示する。カメラアプリケーションユーザインタフェース815は、図6A〜図6BQに示す実施形態に関して上述した、カメラアプリケーションユーザインタフェース615に類似する。
カメラアプリケーションユーザインタフェース815は、例えば、カメラ(例えば、背面カメラ又はカメラ602)の視野内に位置するオブジェクトを表すストリーミングされた画像データ(例えば、ライブカメラプレビュー、ライブカメラ記録、若しくはライブビデオ通信セッション)、又は、例えば写真若しくはビデオ録画などのメディアアイテム、などの画像データの表現を表示する画像表示領域820を含む。図8Bに示す実施形態では、画像表示領域820は、デバイス600の背面カメラからのライブカメラプレビュー820−1'を示す。
カメラアプリケーションユーザインタフェース815はまた、カメラ固有アフォーダンス817を含む画像表示領域820の上の領域を含む。カメラ固有アフォーダンスには、カメラフラッシュ機能に関連付けられたアフォーダンス817−1、カメラモード機能に関連付けられたアフォーダンス817−2、タイマー機能に関連付けられたアフォーダンス817−3、及びフィルタ機能に関連付けられたアフォーダンス817−4が含まれる。
カメラアプリケーションユーザインタフェース815はまた、(画像表示領域620と同様に)画像表示領域820の下に配置されたカメラオプション領域825を(カメラオプション領域625と同様に)含む。カメラオプション領域825は、カメラ(例えば、背面カメラとカメラ602)間を切り替えるためのカメラセレクタアフォーダンス827、及びカメラが画像データを記録できる異なるキャプチャモードに関連付けられたカメラオプションアフォーダンス819を含む。例えば、ビデオアフォーダンス819−1は、カメラのビデオ録画キャプチャモードをアクティブ化するための機能に関連付けられ、写真アフォーダンス819−2は、カメラの静止画像キャプチャモードをアクティブ化するための機能に関連付けられる。図8B〜図8AQに関して以下に論じる実施形態では、デバイス600は、写真アフォーダンス819−2に関連付けられた操作の静止画像キャプチャモードにある。しかしながら、特に明記しない限り、これらの実施形態はまた、ビデオアフォーダンス819−1に関連付けられたビデオ録画モードに適用される。
カメラオプション領域825は、画像表示領域820にビジュアルエフェクトを表示するためにデバイス600が有効化又は無効化されるデバイス600のモード(ビジュアルエフェクトモード、エフェクトモード)を、有効化又は無効化するためのエフェクトアフォーダンス822を更に含む。エフェクトアフォーダンス822は、エフェクトアフォーダンス622に類似しており、従って、特に明記しない限り、エフェクトアフォーダンス622と同じ機能を有する。したがって、エフェクトアフォーダンス822は、ビジュアルエフェクトの表示を可能化するために選択され、ビジュアルエフェクトの表示を無効化するために選択解除される。
カメラオプション領域825はまた、上述したキャプチャアフォーダンス621と同様に機能するキャプチャアフォーダンス821を含む。キャプチャアフォーダンス821を、画像表示領域820に表される画像データをキャプチャするために選択することができる。一部の実施形態では、デバイス600は、現在有効化されているキャプチャオプション(例えば、ビデオ録画キャプチャモード又は画像キャプチャモード)に基づく方法で、画像データをキャプチャする。一部の実施形態では、デバイス600は、キャプチャアフォーダンス821上で検出されたジェスチャのタイプに応じて画像データをキャプチャする。例えば、デバイス600がキャプチャアフォーダンス821上でタップジェスチャを検出した場合、デバイス600は、タップジェスチャが発生した時点で画像表示領域820に表された画像データの静止画像をキャプチャする。デバイス600がキャプチャアフォーダンス821上でタップアンドホールドジェスチャを検出した場合、デバイス600は、タップアンドホールドジェスチャが持続する期間中、画像表示領域820に表される画像データのビデオ録画をキャプチャする。一部の実施形態では、指がアフォーダンスから持ち上げられると、ビデオ録画が停止する。一部の実施形態では、ビデオ録画は、アフォーダンスに対応する位置において後続の入力(例えば、タップ入力)が検出されるまで続く。一部の実施形態では、キャプチャされた画像(例えば、静止画像又はビデオ録画)は、例えば、メッセージングアプリケーションを使用して、他のデバイスと共有することができる。
図8Cでは、デバイス600は、エフェクトアフォーダンス822上の入力823を検出する。
図8Dでは、デバイス600は、入力823を検出したことに応じて、カメラ602をアクティブ化し(例えば、背面カメラから切り替えて)、画像表示領域820を更新して、カメラ602からのライブカメラプレビュー820−1を表示し、カメラ602の視野内に位置する被写体832、及び被写体832の背後に表示された背景836の表現を示す。本明細書で論じるように、一部の実施形態では、カメラ602を使用してキャプチャされた画像データは、カメラ602の視野内のオブジェクトの深度を決定するために使用され得る深度データを含む。一部の実施形態では、デバイス600は、検出されたこれらのオブジェクトの深度に基づいてオブジェクト(例えば、画像データ内の)を解析し、この判定を使用して、本明細書で論じるビジュアルエフェクトを適用する。例えば、デバイス600は、被写体832をライブカメラプレビュー820−1の前景にあるものとして、ユーザの背後に位置するオブジェクトをライブカメラプレビュー820−1の背景にあるものとして、分類することができる。これらの背景オブジェクトは、ここでは背景836と総称する。
デバイス600はまた、表示のためにビジュアルエフェクトが有効化されていることを示すエフェクトアフォーダンス822を強調表示し、カメラオプションアフォーダンス819をビジュアルエフェクトオプションアフォーダンス824に置換することによってカメラオプション領域825を更新する。ビジュアルエフェクトオプションアフォーダンスは、アバターエフェクトアフォーダンス824−1及びステッカーエフェクトアフォーダンス824−2を含む。ビジュアルエフェクトオプションアフォーダンス824は、上述のビジュアルエフェクトオプションアフォーダンス624と同様である。ビジュアルエフェクトオプションアフォーダンス824は、画像表示領域820に表示される画像に適用できる異なるビジュアルエフェクトに対応する。ビジュアルエフェクトオプションアフォーダンス(例えば、824−1又は824−2)のうちの1つを選択することによって、選択されたビジュアルエフェクトオプションアフォーダンスに対応するビジュアルエフェクトオプションと共に、メニューが表示される。
図8E〜図8Fでは、デバイス600は、アバターエフェクトアフォーダンス824−1上の入力826を検出し、アバターオプションメニュー828を表示する。アバターオプションメニュー828は、アバターオプションメニュー628と同様である。アバターオプションメニュー828は、アバターオプション830のスクロール可能なリスト、及びアバターオプション830のうちの選択された1つを示すための選択領域829を含む。表示されるアバターオプションは、カスタマイズ可能な女性アバター830−1、ヌルアバターオプション830−2、ロボットアバターオプション830−3、ウサギアバターオプション830−4、及び第2のカスタマイズ可能な女性アバター830−5、を含む。図8Fに示すように、ヌルアバターオプション830−2が、デフォルトアバターオプション830として選択される。これにより、画像表示領域820に表示される被写体832の表現は、被写体の顔にアバターが表示されないで示される。アバターオプション830は、アバターオプション830−3若しくは830−4のように予め構成することができ、又はアバターオプション830−1若しくは830−5などのカスタマイズ可能なアバターとすることができる。
アバターオプション830は、アバターオプション630と同様の機能を有する。このように、アバターオプション830は、画像表示領域820内の被写体の表現に適用される仮想アバタービジュアルエフェクトに対応する。具体的には、各アバターオプション830は、選択されると、画像表示領域内の被写体の顔に転置される仮想アバターに対応し、他方、画像表示領域内の画像の他の部分(背景、又はユーザの身体などのユーザの他の部分など)は表示されたままとなる。カメラ602の視野内に位置するユーザ(例えば、被写体832)は、上述したように、顔の姿勢(例えば、回転又は向き)を変更することによって、仮想アバターの視覚的態様を制御することができる。
アバターオプション830は、アバターオプションメニュー828上のジェスチャによってスクロールすることができる。例えば、図8Hに示すように、ロボットアバターオプション830−3を選択すると、次いで、画像表示領域820内の被写体の顔にロボットアバター833として表示される、水平ジェスチャ844aを図8Gに示す。水平ジェスチャ844bを介して継続的にスクロールすることにより、追加のアバターオプション830を表示されたアバターオプションメニュー828上にスクロールする。一部の実施形態では、ユーザがアバターオプション830をスクロールすると、画像表示領域820は、アバターの背後に表される画像データに適用されるぼかしエフェクト803を含むアバター(例えば、図8Jのロボットアバター833)を示す。
図8Kでは、デバイス600は、選択される直前(例えば、ジェスチャ844bがまだ終了していない)に、選択領域829内に配置されたカスタマイズ可能な女性アバターオプション830−5、及びカスタマイズ可能な女性アバターオプション830−5の下方に表示された編集アフォーダンス804を表示する。デバイス600は、ぼかしエフェクト803を有するロボットアバター833を表示し続ける。一部の実施形態では、カスタマイズ可能なアバターオプションが選択領域829に配置されると、デバイス600は、選択領域829に編集アフォーダンス804を表示する。編集アフォーダンス804を、図8AAに関して以下に論じるものような、アバター編集ユーザインタフェースを表示するために選択することができる。
図8Lは、アバターオプション830−5が選択された後である(例えば、ジェスチャ844bが終了した)。デバイス600は、(ぼかしエフェクト803を継続しながら)画像表示領域820からロボットアバター833を除去し、選択領域829内のアバターオプション830−5から現れて、画像表示領域820(例えば、画像表示領域820の中央の位置、又は被写体の顔に対応する位置)に移動する、カスタマイズ可能な女性アバター835のアニメーションを表示し、アバター835は、被写体の顔への検出された変化に基づいて変更される。一部の実施形態では、アニメーションは、静的外観(例えば、表示されたアバターオプションと一致するステッカーと同様)から始まり、次いで、ユーザの顔への変化を検出するデバイス600に基づいてアバター(例えば、835)が修正される、動的状態(図8Lに示す)に遷移していく、アバター(例えば、835)を含む。一部の実施形態では、アバターの静的から動的への遷移は、アバターが選択領域から移動する前に発生する。一部の実施形態では、アバターの静的から動的への遷移は、アバターが選択領域829から画像表示領域820に移動するときに発生する。
図8M及び図8Nに示すように、アバター835が被写体の顔に適用されると、デバイス600は、カメラ602の視野内の顔の位置への変化を含む、被写体の顔の検出された変化に基づいてアバター835を変更する。
一部の実施形態では、デバイス600がカメラ602の視野内に被写体の顔をもはや検出しなくなると、デバイス600は、背景にぼかしエフェクト803(ぼかしエフェクト644と同様)を再度適用し、カメラ602の視野に顔を戻すようにユーザに指示するプロンプト838を表示する。図8Pに示す実施形態では、デバイス600は、選択されたアバター(例えば、カスタマイズ可能な女性アバター)の表現840を含むプロンプト838、及びカメラ602の視野内で頭部を再配置するようにユーザーに指示するメッセージ842を表示する。一部の実施形態では、プロンプト838を表示することは、画像表示領域820の中心位置に戻っていく選択されたアバター(例えば、835)のアニメーションを表示すること、及びアバター特徴の物理モデルに基づいて停止するように見える、アバター及びその特徴の遅くなった動きを示すことを含む。
一部の実施形態では、デバイス600がカメラ602の視野に戻るユーザの顔を検出すると、デバイス600は、画像表示領域820の中心位置からユーザの顔の位置に移動するアバター835を表示し、検出されたユーザの顔の変化に基づいてアバターの変更を再開する。
一部の実施形態では、アバターオプションメニュー828を垂直ジェスチャ(例えば、805)で拡大して、図8Q〜8Tに示すアバターオプションメニューの拡大バージョンを表示することができる。アバターオプションメニューの拡大バージョンは、異なるタイプのアバター(例えば、カスタマイズ可能及びカスタマイズ不可能)を含む、一層多数のアバターオプション830を表示する。拡大されたアバター表示メニューにおいて、新規アバターオプション(例えば、ロボットアバターオプション830−3)を選択することができる。次いで、デバイス600は、図8Uに示すように、アバターオプションメニューの拡大バージョンが元の(例えば、凝縮された)状態に戻ったときに、対応するアバター(例えば、ロボットアバター833)をユーザの顔に表示する。
一部の実施形態では、デバイス600は、画像表示領域820上のスワイプジェスチャを検出したことに応じて、ユーザの頭部上に異なるアバターを表示する。例えば、図8Vでは、デバイス600は、画像表示領域820を横切って右方向に移動するスワイプジェスチャ806を検出する。スワイプジェスチャ806を検出したことに応じて、デバイス600は、アバターオプションメニュー828内のアバターオプション830をスクロールする。一部の実施形態では、スクロールの大きさはスワイプジェスチャの大きさによって決定される。これにより、ユーザはスワイプジェスチャの大きさに基づいて複数のアバターをスクロールすることができる。加えて、スクロールの方向、及び画像表示領域820上のアバターの対応する動きは、スワイプジェスチャ806の方向に基づいて決定される。したがって、アバターオプションのスクロール、及び遷移するアバターの対応する動きは、スワイプが左方向にある場合には、左方向にあり得て、又はスワイプが右方向にある場合には、右方向にあり得る(図8V及び図8Wに示すように)。
アバターオプション830をスクロールし始めると、現在選択されているアバターオプション(例えば、図8Vのロボットアバターオプション830−3)は選択領域829を離れ、スクロールが継続すると、新規アバターオプション(例えば、図8Wのアバターオプション830−1)は選択領域829に入る。アバターオプションをスクロールすると、デバイス600はまた、次のアバター(例えば、カスタマイズ可能なアバター831)が左から画像表示領域820に入って、ユーザーの顔に移動している間に、ユーザの顔から離れて画像表示領域820の右側に出ていく、現在選択されているアバター(例えば、ロボットアバター833)のアニメーションを、画像表示領域820に表示する。一部の実施形態では、デバイス600は、アバターが画像表示領域820を横切ってスクロールされている間に、画像表示領域820にぼかしエフェクト803を適用する。
図8V及び図8Wに示す実施形態では、ヌルアバターオプション830−2は選択されず、現在選択されているアバターから画像表示領域820に現れる新規アバターへの遷移をより良く示す。しかしながら、ヌルアバターオプション830−2は、画像表示領域820上のスワイプジェスチャにより選択できることを理解されたい。このような場合には、背景がぼやけている間に現在選択されているアバターを画面外に移動させた後、次いでぼかしエフェクトを除去してアバターなしのユーザーの顔を表示する。
図8X及び図8Yは、異なるカスタマイズ可能なアバターオプション(例えば、カスタマイズ可能なアバターオプション830−5)及び対応する表示されたカスタマイズ可能なアバター835の選択を示す。カスタマイズ可能なアバターオプション830−5が選択領域829に表示されると、編集アフォーダンス804が表示される。編集アフォーダンス804は、図8AAに示すアバター編集ユーザインタフェース808を表示するために(例えば、入力807を介して)選択できる。アバター編集ユーザインタフェース808は、選択された編集アフォーダンス804に関連付けられたカスタマイズ可能なアバターオプション(例えば、830−5)に対応するアバター(例えば、カスタマイズ可能なアバター835)を編集するためのインタフェースを提供する。
一部の実施形態では、適用されるビジュアルエフェクトは、適用されたカスタムアバター835の下方の被写体の首部に示される影851、又は眼鏡の光反射などの照明エフェクトを含むことができる。デバイス600がアバター835を変更してユーザのリアルタイム動作を反映すると、デバイス600はまた、モデル化された光源とアバター835との相対位置に基づいて、反射陰影の表示位置を移動させることを含む、アバター835上及び被写体上に投影された照明エフェクトを変更する。
図8AAに示すように、アバター編集ユーザインタフェース808は、カスタマイズ可能なアバター835の表現、並びに現在選択されているアバター特徴オプション及びアバター835を変更するために選択できる利用可能な機能オプションを表す様々なアバター特徴オプション810(例えば、顔色オプション810−1及び顔形状オプション810−2)を含む。アバター特徴オプションは、特定のアバター特徴、具体的には強調表示されたアバター頭部アフォーダンス809−1によって示されるアバター頭部特徴などの、現在選択されているアバター特徴の態様に対する値に対応する。アバター編集ユーザインタフェース808は、アバター835に表される、選択された顔色オプション810−1a及び選択された顔形状オプション810−2aを示す。表示されるアバター特徴オプションは、異なるアバター特徴を選択することによって変更できる。例えば、図8ABでは、デバイス600は、アバター髪部アフォーダンス809−2が選択されると、アバター編集ユーザインタフェース808を更新して、異なるアバター髪部特徴オプション(例えば、髪部テクスチャオプション811−1及び髪部色オプション811−2)を表示する。
デバイス600は、異なるアバター特徴オプションが選択されると、アバター835を変更する。例えば、図8ABでは、デバイス600は、ストレート髪部テクスチャオプション811−2aの選択を検出し、選択されたストレート髪部テクスチャオプションを有するようにアバター835を更新する。一部の実施形態では、デバイス600は、ユーザの顔の検出された変化に応じて、アバター編集ユーザインタフェース808に示されるアバター835の表現を変更する。
完了アフォーダンス812の選択を検出したことに応じて、デバイス600は、アバター編集ユーザインタフェース808を出て、カメラアプリケーションユーザインタフェース815に戻り、アバター編集ユーザーインタフェースで選択された髪部テクスチャオプションに基づいて、選択されたアバターオプション830−5及び対応するアバター835を示す。
図8AD〜図8AFは、新たにカスタマイズされたアバターを作成して、アバターオプションメニュー828に追加することができる実施形態を示す。新規アバターアフォーダンス813の選択を検出したことに応じて、デバイス600は、図8AEに示すように、選択されたアバター特徴オプションを含まないデフォルトアバターの表現を有するアバター編集ユーザインタフェース808を表示する。デバイス600は、アバター特徴オプションのユーザ選択に基づいてデフォルトアバターを変更し、アバターオプションメニュー828から選択可能な新規アバターとしてアバターを保存することができる。それゆえ、図8AFでは、デバイス600は、取消アフォーダンスの選択を検出し、図8AGに示すように、変更されたアバターをアバターオプションメニュー828に保存することをやめる。
図8AGのキャンセルアイコン850の選択を検出したことに応じて、デバイス600は、アバターオプションメニュー828をクローズし、図8AHに示すようにカメラオプション領域825を表示する。
ステッカーエフェクトアフォーダンス824−2の選択を検出したことに応じて、デバイス600は、図8AIのステッカー858のスクロール可能なリストを有するステッカーオプションメニュー856を表示する。ステッカーオプションメニュー856及びステッカー858は、上述のステッカーオプションメニュー656及びステッカー658と同様のものである。ステッカーは、ユーザが選択できて、画像表示領域820内の画像に適用される、静的なグラフィカルオブジェクトである。一部の実施形態では、ステッカーはタップジェスチャによって選択することができ、次いで、対応するステッカーは画像表示領域820上の位置に表示される。一部の実施形態では、ステッカーは、選択されたステッカー上で開始し、ステッカーを所望の位置にドラッグし、次いでドラッグを終了(例えば、指をリフト)することによってステッカーを所望の位置に配置する、タッチアンドドラッグジェスチャによって選択することができる。このような実施形態の一例が図8AI〜図8AKに示されており、ヘルメットステッカー858−1が選択され(例えば、入力853)、カスタムアバター835の上方の(例えば、離れた)位置にドラッグされている。図8AKでは、デバイス600は、被写体832が、図8AJに示す位置から横方向に移動するのを検出する。これに応じて、デバイス600は、被写体の表現の横方向の動き(例えば、方向及び大きさ)に基づいて横方向に動くヘルメットステッカー858−1及びアバター835の両方を表示する。
図8AKでは、デバイス600は、クローズアフォーダンス855上の入力854を検出する。これに応じて、デバイス600は、ステッカーオプションメニュー856をクローズして、図8ALのカメラオプション領域825を表示する。図8ALでは、デバイス600は、被写体832が、頭を傾けて画面の中心にシフトして戻ることを示す。被写体832のこの動きを検出したことに応じて、デバイス600は、図8ALのカスタマイズ可能なアバター835の上方にヘルメットステッカー858−1を表示し、被写体の頭部の画面中心への動きに基づいて(図8AKに示す位置から)横方向にシフトさせる。デバイス600は、ヘルメットステッカー858−1を、アバター835に対して相対的な間隔を維持しながら表示する。しかしながら、図8ALに示すように、ヘルメットステッカー858−1は、被写体の頭部の回転(例えば、傾斜)に応じて回転しない(例えば、傾かない)が、アバター835は回転する(例えば、傾く)。
図8ALでは、デバイス600は、ビジュアルエフェクト(例えば、カスタマイズされたアバター835及びヘルメットステッカー858−1)を含む、画像表示領域820に表示されたライブカメラプレビュー820−1の画像、並びに、被写体832及び背景836を含む他の画像データを、デバイス600にキャプチャさせるキャプチャアフォーダンス821の選択を検出する。
図8AMでは、デバイス600は、画像表示領域820にキャプチャされた画像(例えば、メディアアイテム820−2)を示すカメラアプリケーションユーザインタフェース815を表示する(例えば、メディアアイテム820−2は、画像表示領域820に示されるライブカメラプレビュー820−1を置換する)。メディアアイテム820−2は、キャプチャアフォーダンス821が選択された時点での、ライブカメラプレビュー820−1の表現である。このように、メディアアイテム820−2は、被写体832の顔及び背景836の上に表示されるヘルメットステッカー858−1及びアバター835を含む。
デバイス600はまた、カメラ固有アフォーダンス(例えば、図8ALに示すアフォーダンス817)を再撮影アフォーダンス879に置換し、キャプチャされたメディアアイテム820−2を保存するためのアフォーダンス818を保存する。
デバイス600はまた、カメラオプション領域825を更新して、キャプチャアフォーダンス821及びカメラセレクタアフォーダンス827を、マークアップアフォーダンス877、編集アフォーダンス878、及び共有アフォーダンス880に置換する。マークアップアフォーダンス877は、ユーザがメディアアイテム820−2をマークアップすることを可能にする。編集アフォーダンス878により、ユーザが、画像を切り取ること、又はメディアアイテム820−2の他の特性を調整することによってなどで、メディアアイテム820−2を編集することが可能になる。共有アフォーダンス880は、ユーザが、例えばメッセージングアプリケーション又は電子メールアプリケーションなどの別のデバイスに、メディアアイテム820−2を送信することを可能にする。
デバイス600は、ビジュアルエフェクトオプションアフォーダンス824を含むカメラオプション領域825を表示する。ビジュアルエフェクトオプションアフォーダンス824を選択して、それぞれのオプションメニューを表示することができ、オプションメニューを使用して、キャプチャされたメディアアイテム820−2(並びに、後述する記録されたビデオメディアアイテム820−4)を変更することができる。例えば、図8AN〜図8APは、ステッカーをメディアアイテム820−2に追加するデバイス600を示す。図8AOのステッカーオプションメニュー856をデバイス600に表示させる、ステッカーエフェクトアフォーダンス824−2が、図8ANで選択され、図8APに示すメディアアイテム820−2内の被写体832上に配置された、ウサギステッカー858−2の選択も示す。ステッカーオプションメニュー856は、図8APではクローズされており、図8AQではカメラオプション領域825を表示している。
図8AQでは、デバイス600はまた、他のビジュアルエフェクト(例えば、アバター835及びヘルメットステッカー858−1)と一緒に、被写体832上に配置されたウサギステッカー858−2を含むメディアアイテム820−2を表示する。
ステッカーは、メディアアイテム820−2(静止画)について上述したのと同様の方法で、ビデオフォーマット内の記録されたメディアアイテムに追加することができる。例えば、図8ARは、ビデオメディアアイテム820−4が記録されたビデオである実施形態を示す。メディアアイテム820−4は、メディアアイテム620−4について上述したのと同様の方法で作成することができる。
図8ARでは、デバイス600は、記録されたビデオメディアアイテム820−4を画像表示領域820に表示する。デバイス600はまた、記録されたビデオメディアアイテム820−4用のビデオスクラバ8120、エフェクトアフォーダンス822、編集アフォーダンス878、マークアップアフォーダンス877、及び共有アフォーダンス880を有するカメラオプション領域825を表示する。カメラオプション領域825はまた、ビジュアルエフェクトオプションアフォーダンス824を含む。ビジュアルエフェクトオプションアフォーダンス824を選択して、キャプチャされたメディアアイテム820−4を変更するために使用できる、それぞれのオプションメニューを表示することができる。例えば、図8AR〜図8AVは、デバイス600がステッカー858−2及び858−3をメディアアイテム820−4に追加することを示す。
一部の実施形態では、表示されるステッカーは、ビデオメディアアイテム(又はライブビデオストリーム)において異なってモデル化された挙動を有することができる。例えば、一部のステッカーは、ディスプレイ(例えば、601)に適用されている外観を有し、画像データ内のオブジェクトが移動する際に静的に保たれる。このようなステッカーの例が、図8AX〜図8BCのハートステッカー858−3によって表示されている。一部の実施形態では、デバイス600が、メディアアイテム、ライブカメラプレビュー、又はカメラ602の視野内の被写体の表現のすべて又は一部(例えば、頭部又は顔)の存在を検出しない場合、ステッカーが、メディアアイテム(例えば、820−4)又はライブカメラプレビュー(例えば、820−1)に配置されると、ステッカーはこの静的な挙動を有する。例えば、被写体の顔が完全に画面から外れていて(例えば、カメラ602の視野内で検出されていない)、ステッカーが画像表示領域820上に配置されている場合、いったん顔がカメラ602の視野内で検出され、前に配置されたステッカーと共に画像表示領域820上に表示されると、ステッカーは静止していて、被写体の顔のいかなる動きも追跡しない。
他のステッカーは、ディスプレイに適用されていて、画像内のオブジェクト(例えば、アバター又は被写体の表現を含む、カメラの視野内のアイテム)に追従して動いている外観を有する。一部の実施形態では、ステッカーは、ステッカーが追従するオブジェクトから離れた位置に配置される。このようなステッカーの例が、図8AK及び8AX〜図8BCのヘルメットステッカー858−1によって表示されている。ヘルメットステッカー858−1は、被写体832の横方向の動きに追従するが、被写体の回転運動には追従しない。このようなステッカーの別の例が、図8BE〜8BQのヒトデステッカー858−5によって表示されている。被写体の顔から離れて配置されると、ヒトデステッカー858−5は、顔に対する相対的な位置を維持しながら被写体の顔の動きに追従する(例えば、ヒトデのステッカー858−5は、被写体の顔の前方、後方、及び左右の動きには追従するが、被写体の顔の回転運動には追従しない)。
しかし、他のステッカーは、カメラ602の視野内のオブジェクトに適用されている外観を有し、視野内のオブジェクトに追従するように(例えば、ステッカーが画像内のオブジェクトに合わせた深度の外観を有しながら)移動する。このようなステッカーの例が、図8AX〜図8BCのウサギステッカー858−2によって表示されている。ウサギステッカー858−2は、被写体(具体的には、被写体の肩)の横方向及び回転運動と共に動く。このようなステッカーの別の例が、図8BG〜図8BMの眼鏡ステッカー858−4によって表示されている。図8BG〜図8BMの被写体の顔に配置されると、眼鏡ステッカー858−4は、被写体の顔の横方向の動き(例えば、左右、上/下)、被写体の顔の前後の動き、及び被写体の顔の回転運動に追従する。眼鏡ステッカー858−4は、被写体の顔に物理的に貼り付けられている(例えば、接着されている)外観を有する。
一部の実施形態では、ステッカーの挙動は、メディアアイテム内のオブジェクト(又はライブカメラプレビュー又はカメラの視野)に対するその位置に基づいて変化する。一部の実施形態では、ステッカーの挙動は、オブジェクトに対するステッカーの位置の変化を検出したことに応じて変化する。そのようなステッカーの例を図8BE〜図8BQに示し、以下に一層詳細に説明する。
図8AW〜図8BCは、アバター835、ヘルメットステッカー858−1、ウサギステッカー858−2、及びハートステッカー858−3を含む、メディアアイテム820−4のビデオ再生及び編集を示す。再生中にメディアアイテム820−4が進行すると、ハートステッカー858−3は、ディスプレイ601に貼り付けられていて動かない外観を有しながら、静止したままである。ヘルメットステッカー858−1は、ディスプレイに貼り付けられている外観を有するが、アバター835の位置の変化に応じて移動する(例えば、変形する)。ウサギステッカー858−2は、メディアアイテム820−4内の被写体832の肩に貼り付けられている外観を有する。肩が動くと、ウサギステッカー858−2は、向き及び表示サイズを含む位置を変更して、メディアアイテム820−4の再生中に被写体の肩に追従している外観を与える。
一部の実施形態では、3次元で(例えば、深度センサからの深度情報を介して)追跡されている、それぞれのオブジェクト(例えば、デバイスのユーザの顔、手、又は他の身体の部分)を含む、1つ以上のカメラの視野の表現の位置に適用されるステッカー又は他の仮想オブジェクトは、1つ以上のカメラの視野内で、それぞれのオブジェクトが横方向に(例えば、左右に、及び/又は上下に)移動すると、横方向に(例えば、左右に、及び/又は上下に)移動することに加えて、1つ以上のカメラからのそれぞれのオブジェクトの距離、及び/又は1つ以上のカメラに対するそれぞれのオブジェクトの向きが変化すると、仮想オブジェクトのサイズ及び/又は向きが変化するように、それぞれのオブジェクトに付着している。例えば、図8AS〜図8ATに示すように、ウサギステッカー858−2が被写体の肩の表現上に配置されている。図8AX〜図8AYでは、肩がカメラの上方及びカメラに向かって動くにつれて、ウサギステッカー858−2は、肩と共に横方向(上方)に動き、肩がカメラに向かって動くにつれて拡大する。一部の実施形態では、3次元で(例えば、深度センサからの深度情報を介して)追跡されている、それぞれのオブジェクト(例えば、デバイスのユーザの顔、手、又は他の身体の部分)から離れている(例えば、遠隔の)、1つ以上のカメラの視野の表現の位置に適用されるステッカー又は他の仮想オブジェクトは、1つ以上のカメラからのそれぞれのオブジェクトの距離、及び/又は1つ以上のカメラに対するそれぞれのオブジェクトの向きが変化しても、仮想オブジェクトのサイズ及び/又は向きが変化しないように、オブジェクトに付着することなく、1つ以上のカメラの視界内で、それぞれのオブジェクトが横方向に(例えば、左右に、及び/又は上下に)移動すると、横方向に(例えば、左右に、及び/又は上下に)移動する。例えば、図8AX及び図8AYに示すように、ヘルメットステッカー858−1は、被写体の表現から離れた位置に配置される。図8AX及び図8AYでは、被写体の表現が横向きにカメラに近づいて動くにつれて、ヘルメットステッカー858−1は、ユーザの表現の動きに基づいて横方向に移動するが、向き又はサイズは変化しない。
図8AYでは、デバイス600は、スクラバ8120上の入力882(例えば、スワイプ又はドラッグジェスチャ)を検出し、入力に基づいてメディアアイテム820−4をスクラブする。図8AZに示すように、入力882に応じて、デバイス600は、メディアアイテム820−4を通じて反転して、図8AXで以前に表示されたメディアアイテム820−4の部分を表示する。デバイス600は、編集アフォーダンス878上の入力884を検出する。
図8BAでは、デバイス600は、編集モードに入り(メディアアイテム820−4を編集するために)、ビデオスクラバ8120の端部に(入力883を介して)アフォーダンス885をドラッグすることによってビデオをクロッピングするために選択可能なアフォーダンス885を表示して、ビデオスクラバの終了時間を変更する。
図8BBに示すように、ビデオスクラバ8120は、入力883に応じてトリミングされる。デバイス600は、完了アフォーダンス887上の入力886を検出し、編集モードを終了させる。
図8BCでは、ビデオスクラバ8120は、トリミングされて示されている(例えば、図8AZの編集モードに入る前よりも長さが短い)。デバイス600は、エフェクトアフォーダンス822上の入力888を検出し、エフェクトモードを終了させる。
図8BDに表すように、メディアアイテム820−4に表示されるビジュアルエフェクトビジュアルエフェクトは、エフェクトアフォーダンス822を選択解除する入力888を検出したことに応じて表示から隠される。
一部の実施形態では、ステッカーは、ステッカーの配置の条件(例えば、他のオブジェクトに対するステッカーの位置、ステッカーが配置されたときのオブジェクトの存在(又は不存在)など)に基づいて決定される挙動を有することができる。例えば、一部の実施形態では、ステッカーは、オブジェクト又は領域から離れて配置される場合には第1のタイプの挙動を、オブジェクト又は領域上に配置される場合には第2のタイプの挙動を有することができる。一部の実施形態では、ステッカーが配置されるときにオブジェクトが存在しない場合には、ステッカーは、第3のタイプの挙動を有することができる。一部の実施形態では、ステッカーの挙動は、(例えば、オブジェクトに対する)ステッカーの配置の変化に基づいて変化し得る。
例えば、図8BE〜図8BQは、ライブカメラプレビュー820−1に表示される様々なステッカーの挙動を示す例示的な実施形態を示し、被写体の顔に対するステッカーの配置の変化に基づいてステッカーの挙動を変更する。図8BE〜図8BQに示す実施形態では、ステッカーの挙動は、被写体の顔に対するステッカーの位置に基づいて決定される。
図8BEでは、デバイス600は、図8Dに示すものと同様の外観であるが、画像表示領域820に表示されたステッカー858を有する、カメラアプリケーションユーザインタフェース815を表示する。画像表示領域820は、カメラ602の視野内に位置する被写体832の表現、及び被写体832の背後に表示された背景836を示している、カメラ602からのライブカメラプレビュー820−1を示す。眼鏡ステッカー858−4、ヒトデステッカー858−5、及び野球ステッカー858−6は、被写体832の顔から離れて(例えば、上にではなく)、それぞれ配置されて表示される。図8BE〜図8BQに示すステッカーは、本明細書で論じる様々な実施形態に従って、画像表示領域内に配置され、移動させることができる。
ステッカー858が被写体の顔から離れて(例えば、その上ではなく)配置される場合、ステッカー858は第1の種類の挙動を有する。例えば、ステッカーは、横方向(例えば、横から横、及び上/下)、前方(例えば、カメラ602に向かう)、及び後方(例えば、カメラ602から離れる)の被写体の顔の動きには追従するが、被写体の顔の回転運動には追従しない(例えば、被写体の顔のピッチ及びヨーに追従しない)。
図8BFでは、デバイス600は、眼鏡ステッカー858−4上の入力889(例えば、ディスプレイ601上のタッチアンドドラッグジェスチャ)を検出する。入力889を検出したことに応じて、デバイス600は、図8BG及び図8BHに示すように、入力と共に移動する眼鏡ステッカー858−4を(例えば、入力889の動きの向き及び大きさで)表示する。
一部の実施形態では、デバイス600は、ステッカーが追従しているオブジェクトに対応する位置にステッカーが移動したときにインジケーションを提供する。例えば、図8BGでは、デバイス600は、眼鏡ステッカー858−4が、被写体の顔から離れた位置から被写体の顔の位置に移動していることを示す。デバイス600は、眼鏡ステッカー858−4が被写体の顔に移動すると、被写体の顔の周りにブラケット890を表示し、任意選択的に、触覚フィードバック892(例えば、音声出力を伴う、又は伴わない触知出力)を生成する。一部の実施形態では、ブラケット890は、眼鏡ステッカー858−4が被写体の顔に表示されることになるように(眼鏡ステッカー858−4の変更された挙動がもたらされるように)、眼鏡ステッカー858−4を配置できる領域の視覚的表示を提供する。このように、ユーザがステッカーを被写体の顔に配置されることになる配置領域(例えば、ブラケットの内側)にステッカーをドラッグしている間に、ブラケット890(及び触覚フィードバック892)をユーザーに示すことができる。一部の実施形態では、触覚フィードバック892は、眼鏡ステッカー858−4が、被写体の顔の外側の領域(例えば、ステッカーが第1のタイプの挙動を有する領域)から、被写体の顔の領域(例えば、ステッカーが第2のタイプの挙動を有する領域)に移動したことを示す。
一部の実施形態では、ステッカーが追従しているオブジェクトに対応する位置にステッカー(又は他のビジュアルエフェクト)の位置が移動することをデバイス600が検出すると、デバイス600は、オブジェクトの位置に基づいてステッカーの外観を変更し、ステッカーの挙動を変更する(一部の実施形態では、ステッカーの挙動は、入力889の終了を検出した後に変更される)。デバイス600はまた、ステッカーが追従しているオブジェクトに対応する位置からオブジェクトから離れた位置にステッカーが移動すると、ステッカーの外観及び挙動を逆の方法で変更する。
図8BHでは、デバイス600が被写体の顔の眼鏡ステッカー858−4の位置を検出すると(例えば、ブラケット890内に位置する)、デバイス600は、被写体の顔の位置(例えば、サイズ及び向き)に基づいてステッカーを変更する。例えば、眼鏡ステッカー858−4は、サイズが(例えば、被写体の顔のサイズに比例して適合するように)増大し、図8BGの静的位置から図8BHの被写体の顔の位置と一致するように回転する。一部の実施形態では、ステッカーは、被写体の鼻に対応する平面上に配置され、顔が動くとその位置の座標を変換する。一部の実施形態では、顔メッシュ(例えば、深度マスク)を使用して鼻の点を決定する。一部の実施形態では、ステッカーは、平面上に配置されるが、被写体の顔の形状には適合しない。
デバイス600はまた、ステッカーの挙動を第2の種類の挙動(例えば、第1の種類の挙動とは異なる挙動)に変更する。図8BHに示すように、挙動の第2のタイプは、横方向の動き及び前後方向の動きに加えて、ステッカーが被写体の顔の回転運動に追従して(例えば、顔のピッチ及びヨーに追従して)、顔のその3D位置を維持する挙動を含むことができる。他のステッカーの挙動は変化しない。このように、野球ステッカー858−6及びヒトデステッカー858−5は、被写体の顔には配置されれないので、挙動の第1のタイプを有し続けている。代わりに、ヒトデステッカー858−5及び野球ステッカー858−6は、顔からの相対的間隔を維持し続ける。
一部の実施形態では、ブラケット890は入力889と共に持続し、入力889は被写体の顔に(例えば、ブラケット内に)配置される。このように、デバイス600が入力889の終了を検出すると、デバイス600は、図8BIに示すように、ブラケット890の表示を停止する。
図8BI及び図8BJは、被写体の顔と共に眼鏡ステッカー858−4を回転しているデバイス600を示しているが、ヒトデステッカー858−5及び野球ステッカー858−6は静止したままである(眼鏡ステッカー858−4とは異なり、それらは被写体の顔の回転運動に追従しない)。
図8BKでは、被写体はカメラ602に近づくように動く。眼鏡ステッカー858−4は、被写体の顔の前方への動きと共に動き、被写体の顔との回転位置を維持する。同様に、野球ステッカー858−6及びヒトデステッカー858−5は、被写体の顔に対する相対的間隔を維持しながら、被写体の顔の前方への動きと共に動く。野球ステッカー858−6及びヒトデステッカー858−5は、被写体の顔と共に回転しない。
図8BKでは、デバイス600は、キャプチャアフォーダンス821上で入力893を検出し、これに応じて、ライブカメラプレビュー820−1の画像をキャプチャする。
図8BLでは、デバイス600は、画像表示領域820にキャプチャされた画像(例えば、メディアアイテム820−5)を示すカメラアプリケーションユーザインタフェース815を表示する(例えば、メディアアイテム820−5は、画像表示領域820に示されるライブカメラプレビュー820−1を置換する)。メディアアイテム820−5は、キャプチャアフォーダンス821が選択された時点でのライブカメラプレビュー820−1の表現である。図8BLに示す実施形態は、図8AMに示したものと同様であるが、(メディアアイテム820−2の代わりに)メディアアイテム820−5を有し、メディアアイテム820−5は、被写体832の顔及び背景836に対して表示される、眼鏡ステッカー858−4、ヒトデステッカー858−5、及び野球ステッカー858−6を含む。
本明細書で論じるように、ビジュアルエフェクトの表示は、異なる実施形態にわたって同様である。例えば、他に明記しない限り、ビジュアルエフェクトは、カメラアプリケーション、メッセージングアプリケーション、アバター編集アプリケーション、ライブビデオメッセージングアプリケーション、又は本明細書で論じる任意の他のアプリケーションにおける同様の方法で、表示及び操作することができる。加えて、画像データの異なるタイプにわたって、同様の方法でビジュアルエフェクトを表示及び操作することができる。例えば、特に明記しない限り、ビジュアルエフェクトは、ライブカメラプレビュー、メディアアイテム、ストリーミングされた画像データ、又は本明細書で論じられる任意の他の画像データにおける同様の方法で、表示及び操作することができる。例えば、図8BL〜図8BQは、ライブカメラプレビュー820−1について上述したのと同様の方法で、メディアアイテム820−5にステッカーを表示することを示す。具体的には、図8BL〜図8BQは、ライブ画像プレビュー820−1に関して上述したのと同様の方法で、メディアアイテム(例えば、820−5)内のステッカーを再配置し、それに応じてそれらのそれぞれの挙動を変更できることを表す。
図8BMでは、デバイス600は、眼鏡のステッカー858−4上の入力894を検出し、ブラケット890を表示する。図8BNでは、入力894は、眼鏡ステッカー858−4を被写体の顔から動かして外す。眼鏡ステッカーを顔から動かして外すと、デバイス600は、触覚フィードバック892を生成し、ブラケット890の表示を停止し、眼鏡ステッカー858−4をその元の形状(例えば、眼鏡ステッカーが図8BEの被写体の顔から離れて配置されたときからわずかに傾斜した形状)に変更して戻す。デバイス600はまた、眼鏡ステッカー858−4の挙動を、第1のタイプの挙動(ステッカーが追跡しているオブジェクトから離れた配置されたステッカーに関連付けられた挙動)に変更して戻し、変更された挙動に基づいてステッカーの外観を変更する。このように、眼鏡ステッカー858−4は、(図8BE〜図8BGの眼鏡ステッカー858−4のサイズと比較して)図8BN〜8BQのより大きいサイズを有して表示され、ヒトデステッカー858−5及び野球ステッカー858−6のサイズ変化と同様に、図8BJ〜8BKの被写体の顔の前方への動きに基づいて、眼鏡ステッカー858−4のメディアアイテム820−5内の被写体の顔の位置に対する相対的間隔を維持する。
図8BO〜図8BQは、メディアアイテム820−5内の被写体の顔に異なるステッカーを配置すること、及び異なるステッカーが、被写体の顔に動かされたことに応じて、ステッカーの異なる挙動に基づいて変更されることを表す。例えば、図8BOでは、デバイス600は、野球ステッカー858−6上の入力895を検出する。野球ステッカー858−6が図8BPの被写体の顔にドラッグされると、デバイス600は、ブラケット890を表示し、触覚フィードバック892(例えば、触知出力)を生成し、被写体の顔の角度に基づいて野球ステッカー858−6を再配置する。言い換えれば、野球ステッカー858−6の挙動は、眼鏡ステッカー858−4が被写体の顔に配置されたときの被写体の顔の回転運動に追従する方法と同様に、被写体の顔の回転運動に追従するように変化する。
図8BQでは、入力895が終了し、デバイス600はブラケット890の表示を停止する。
図9A〜図9Bは、一部の実施形態に係る、電子デバイスを使用してカメラアプリケーションにビジュアルエフェクトを表示するための方法を示すフロー図である。方法900は、カメラと表示装置とを備えたデバイス(例えば、100、300、500、600)にて実行される。方法900におけるいくつかの動作は、任意選択的に組み合わせられ、いくつかの動作の順序は任意選択的に変更され、いくつかの動作は任意選択的に省略される。
以下に説明するように、方法900は、カメラアプリケーションにビジュアルエフェクトを表示するための直感的な仕方を提供する。かかる方法は、カメラアプリケーションにおいて閲覧される画像にビジュアルエフェクトを適用するためのユーザの認知負担を軽減し、それによって、より効率的なヒューマン−マシンインタフェースを作り出す。バッテリ動作コンピューティングデバイスでは、画像にビジュアルエフェクトをユーザーがより迅速かつ効率的に表示できるようにすることで、電力を節約し、バッテリ充電間の時間を増大させる。
電子デバイス(例えば、600)は、表示装置(例えば、601)を介して、カメラユーザインタフェース(例えば、815)を表示する(902)。カメラユーザインタフェースは、カメラ(例えば、602)を介してキャプチャされた画像データの表現(例えば、835)を含む、カメラ表示領域(例えば、820)を含む(904)。
一部の実施形態では、画像データは、深度データ(キャプチャされた画像又はビデオの深度アスペクト(例えば、RGBデータから独立した深度データ)を含む画像データ)を含む(906)。一部の実施形態では、画像データは、少なくとも2つの成分、すなわち、キャプチャされた画像の視覚特性を符号化するRGB成分、及びキャプチャされた画像内の要素の相対的な空間的関係についての情報を符号化する深度データ(例えば、深度データは、ユーザが前景にあることを符号化し、ユーザの背後に位置する木などの背景要素は、背景にある)を含む。一部の実施形態では、深度データは深度マップである。一部の実施形態では、深度マップ(例えば、深度マップ画像)は、視点(例えば、カメラ)からのシーン内のオブジェクトの距離に関する情報(例えば、値)を含む。深度マップの一実施形態では、各深度ピクセルは、その対応する2次元ピクセルが位置する、視点のZ軸内の位置を規定する。一部の例では、深度マップは、各ピクセルが値(例えば、0〜255)によって定義されるピクセルから構成される。例えば、「0」値は、「3次元」シーンにおける最も離れた位置に配置されたピクセルを表し、「255」値は、「3次元」シーンにおける視点(例えば、カメラ)に最も近いピクセルを表す。他の例では、深度マップは、シーン内のオブジェクトと視点の平面との間の距離を表す。一部の実施形態では、深度マップは、深度カメラの視点における関心あるオブジェクトの様々な特徴の相対的深度(例えば、ユーザの顔の目、鼻、口、耳の相対的な深度)についての情報を含む。一部の実施形態では、深度マップは、z方向の関心あるオブジェクトの輪郭をデバイスが判定することを可能にする情報を含む。
一部の実施形態では、深度データは、カメラ表示領域(例えば、820)内の被写体の表現を含む、第1の深度成分(例えば、カメラ表示領域内の被写体の空間位置を符号化する深度データの第1の部分、前景又は特定のオブジェクトなどの、深度マップの離散部分を形成する複数の深度ピクセル)を有する。一部の実施形態では、深度データは、第1の深度成分とは別個の、第2の深度成分(例えば、カメラ表示領域内の背景の空間位置を符号化する深度データの第2の部分、背景などの、深度マップの離散部分を形成する複数の深度ピクセル)を有し、第2の深度アスペクトは、カメラ表示領域における背景の表現を含む。一部の実施形態では、第1の深度アスペクト及び第2の深度アスペクトは、カメラ表示領域内の被写体とカメラ表示領域内の背景との間の空間的関係を判定するために使用される。この空間的関係は、被写体を背景から識別するために使用することができる。この識別は、例えば、異なるビジュアルエフェクト(例えば、深度成分を有するビジュアルエフェクト)を被写体及び背景に適用するために利用することができる。一部の実施形態では、第1の深度成分に対応しない画像データのすべての領域(例えば、深度カメラの範囲外である画像データの領域)は、深度マップからセグメント化される(例えば、除外される)。
一部の実施形態では、カメラ(例えば、602)を介してキャプチャされた画像データの表現(例えば、835)は、ライブカメラプレビュー(例えば、カメラの視野にあるものを表す画像データのストリーム)である。
一部の実施形態では、第1のカメラ表示モードがアクティブである間に、電子デバイス(例えば、600)は、カメラ表示領域(例えば、820)上のスワイプジェスチャを検出する。一部の実施形態では、カメラ表示領域上のスワイプジェスチャを検出したことに応じて、例えば、電子デバイス(例えば、600)は、カメラ表示領域内の選択されたアバターオプションの表示された表現の外観を、第1の外観(例えば、現在選択されているアバターオプションに基づく外観)から、第2の外観(例えば、異なるアバターオプション(例えば、ヌルアバターオプション、又は異なるタイプ(例えば、カスタマイズ可能な、カスタマイズ不可能な)のアバターを含む、異なるアバターに対応するアバターオプション)基づく外観)に変更し、第2の外観は、複数のアバターオプションのうちの異なる1つ(例えば、アバター選択領域に含まれる異なるアバターオプション)に対応する。カメラ表示領域上のスワイプジェスチャを検出したことに応じて、選択されたアバターオプションの表示された表現の外観を変更することによって、選択されたアバターの表現を変更するための迅速かつ容易な方法をユーザに提供する。追加表示されたコントロールによりユーザインタフェース(UI)を雑然とさせることなく追加の制御オプションを提供することにより、デバイスの操作性が改善され、ユーザデバイスインタフェースを(例えば、デバイスを操作/対話するときに適切な入力を提供するようにユーザを支援し、ユーザの誤りを削減することによって)更に効率的にし、加えて、ユーザがデバイスを更に素早くかつ効率的に使用することを可能にすることによってデバイスの電力使用を削減し、バッテリ寿命を改善する。
一部の実施形態では、複数のアバターオプションのうちの異なる一つがヌルアバターオプションである場合、デバイス(例えば、600)は、アバターの表現を被写体の表現上に表示することを停止する(例えば、デバイスは、ユーザの頭部の画像データを仮想アバターに置換することをやめる)。一部の実施形態では、複数のアバターオプションのうちの異なる1つが、異なるアバターキャラクタ(カスタマイズ可能又はカスタマイズ不可能なアバターキャラクタを含む)のアバターオプションである場合、デバイスは、選択されたアバターキャラクタを異なるアバターキャラクタに置換する(例えば、デバイスは、アバターの表現を異なるアバターの表現に置換する)。一部の実施形態では、選択されたアバターキャラクターを異なるアバターキャラクターに置換することは、画面の中心に移動する異なるアバターキャラクターのアニメーションを表示することを含む。一部の実施形態では、選択されたアバターキャラクターを異なるアバターキャラクターに置換することは、ユーザの頭部に移動する異なるアバターキャラクターのアニメーションを表示することを含む。一部の実施形態では、選択されたアバターキャラクターを異なるアバターキャラクターに置換することは、選択されたアバターが置換されている間に背景をぼかすことを含む。選択されたアバターキャラクターが異なるアバターキャラクターに置換されると/されている間に、アニメーションを表示する(例えば、異なるアバターキャラクタが画面の中央に移動し、異なるアバターキャラクタがユーザの頭部に移動して背景をぼかす)ことにより、アバターキャラクターが変更されているという視覚フィードバックを提供する。改善された視覚フィードバックをユーザに提供することにより、デバイスの操作性が改善され、ユーザデバイスインタフェースを(例えば、デバイスを操作/対話するときに適切な入力を提供するようにユーザを支援し、ユーザの誤りを削減することによって)更に効率的にし、加えて、ユーザがデバイスを更に素早くかつ効率的に使用することを可能にすることによってデバイスの電力使用を削減し、バッテリ寿命を改善する。一部の実施形態では、現在選択されているアバターオプションは第1のタイプのアバター(例えば、カスタマイズ可能なアバター)に対応し、異なるアバターオプションは第2のタイプのアバター(例えばカスタマイズ不可能なアバター)に対応する。
一部の実施形態では、カメラ表示領域(例えば、820)内の選択されたアバターオプションの表示された表現の外観を、第1の外観から第2の外観に変更することは、選択されたアバターオプションの表現の、第1の外観を有する第1のバージョンを移動してディスプレイから外すことを含む。一部の実施形態では、カメラ表示領域内の選択されたアバターオプションの表示された表現の外観を、第1の外観から第2の外観に変更することは、選択されたアバターオプションの表現の、第2の外観を有する第2のバージョンをディスプレイの中心に実質的に移動することを含む。選択されたアバターオプションの表現の第1のバージョンを移動してディスプレイから外し、選択されたアバターオプションの表現の第2のバージョンをディスプレイの中心に実質的に移動させることにより、第1のバージョンが第2のバージョンに置換されているという視覚フィードバックを提供する。改善された視覚フィードバックをユーザに提供することにより、デバイスの操作性が改善され、ユーザデバイスインタフェースを(例えば、デバイスを操作/対話するときに適切な入力を提供するようにユーザを支援し、ユーザの誤りを削減することによって)更に効率的にし、加えて、ユーザがデバイスを更に素早くかつ効率的に使用することを可能にすることによってデバイスの電力使用を削減し、バッテリ寿命を改善する。
一部の実施形態では、選択されたアバターオプションの表示された表現の外観を、第1の外観から第2の外観に変更することは、選択されたアバターの表現の、第1の外観を有する第1のバージョンを移動してディスプレイから外すことを含む。一部の実施形態では、選択されたアバターオプションの表示された表現の外観を、第1の外観から第2の外観に変更することは、選択されたアバターオプションの表現の、第2の外観を有する第2のバージョンを、カメラ表示領域(例えば、820)内に表示された被写体の表現の実質的に位置に移動させることを含む。選択されたアバターオプションの表現の第1のバージョンを移動してディスプレイから外し、選択されたアバターオプションの表現の第2のバージョンをカメラ表示領域に表示された被写体の表現の位置に実質的な移動させることにより、第1のバージョンが第2のバージョンに置換されているという視覚フィードバックを提供する。改善された視覚フィードバックをユーザに提供することにより、デバイスの操作性が改善され、ユーザデバイスインタフェースを(例えば、デバイスを操作/対話するときに適切な入力を提供するようにユーザを支援し、ユーザの誤りを削減することによって)更に効率的にし、加えて、ユーザがデバイスを更に素早くかつ効率的に使用することを可能にすることによってデバイスの電力使用を削減し、バッテリ寿命を改善する。
一部の実施形態では、選択されたアバターオプションの表示された表現の外観を、第1の外観から第2の外観に変更することは、カメラ表示領域(例えば、820)に表示された背景の視覚的外観を変更する(例えば、背景をぼかす、背景の彩度を減じる)ことを含む。
カメラユーザインタフェース(908)はまた、第1のカメラ表示モード(例えば、ユーザの頭部の画像データを仮想アバターに置き換えるモード)に関連付けられた第1のアフォーダンス(例えば、仮想アバターに対応するアフォーダンス)を含む。
一部の実施形態では、カメラユーザインタフェース(例えば、815)は、ステッカー表示モード(例えば、ステッカーを画像データに適用することが可能なモード)に関連付けられたステッカーアフォーダンス(例えば、824−2、ステッカーの表示を有効化するための機能に対応するアフォーダンス)を更に含む。一部の実施形態では、カメラ表示領域(例えば、820)に画像データ(及び、任意選択的に、選択されたアバターオプションの表現)を表示している間に、電子デバイス(例えば、600)は、ステッカーアフォーダンスに向けられたジェスチャ(例えば、図8AH)を検出する。一部の実施形態では、ステッカーアフォーダンスに向けられたジェスチャを検出したことに応じて、電子デバイスはステッカー表示モードをアクティブ化し、ステッカー表示モードをアクティブ化することは、複数のステッカーオプション(例えば、858のステッカー)を含むステッカー選択領域(例えば856)を表示することと、ステッカー選択領域内の複数のステッカーオプション(例えば、858−2のステッカー)のうちの1つの選択を検出することと、選択を検出したことに応じて、選択されたステッカーオプションの表現(例えば、858−2)をカメラ表示領域内の画像データ上に表示することと、を含む。一部の実施形態では、画像データ上に表示される選択されたステッカーオプションは、表示画面(例えば、601)上に配置された外観(例えば、デバイスの画面上に物理的ステッカーを配置するユーザの外観と同様な)を有し、移動したり、又は画像データに表されたオブジェクトと対話したりすることはない。一部の実施形態では、画像データ上に表示される選択されたステッカーオプションは、表示画面上に配置された外観(例えば、デバイスの画面上に物理的ステッカーを配置するユーザの外観と同様な)を有するが、画像データに表示されるオブジェクトの移動に基づいて移動する。例えば、ステッカーはディスプレイ上に配置されているように見え、画像データ(例えば、人物)に表されたオブジェクトと対話するが、ステッカーの動きは、x及びy軸に沿った動きに制限される。換言すれば、ステッカーは、デバイスの画面に適用されるように見えるが、画像データに表されたオブジェクトによって画面上を移動することができる(例えば、画像データ内の人物がステッカーに触れる、又は画面を横切ってステッカーをドラッグするように見える)。一部の実施形態では、画像データ上に表示される選択されたステッカーオプションは、画像データの一部を形成する対話型オブジェクトとして画像データ内に挿入される外観を有する。画像データの一部を形成する対話型オブジェクトとして画像データに挿入される外観を提供することによって、選択されたステッカーが画像内の対話型オブジェクトとして作用できるという視覚フィードバックを提供する。改善された視覚フィードバックをユーザに提供することにより、デバイスの操作性が改善され、ユーザデバイスインタフェースを(例えば、デバイスを操作/対話するときに適切な入力を提供するようにユーザを支援し、ユーザの誤りを削減することによって)更に効率的にし、加えて、ユーザがデバイスを更に素早くかつ効率的に使用することを可能にすることによってデバイスの電力使用を削減し、バッテリ寿命を改善する。そのような実施形態では、ステッカーは、画像データに表されるオブジェクトとの対話に基づいて移動するように見える。例えば、ステッカーは、オブジェクトが人の肩に座っているように見え得る。人が動くと、ステッカーは人の肩と共に動き、人の肩の上に座っているような外観を維持する。これには、x軸及びy軸に沿った移動、並びに、z軸に沿った移動を含む。
一部の実施形態では、カメラ表示領域(例えば、820)の画像データ上に、選択されたステッカーオプション(例えば、858−1、858−2、858−3、858−4、858−5、858−6)の表現を表示している間に、デバイス(例えば、600)は、1つ以上のカメラ(例えば、602)の視野内の被写体(例えば、832)の横方向の動きを検出する。1つ以上のカメラの視野内の被写体の横方向の動きを検出したことに応じて、デバイスは、1つ以上のカメラの視界内の被写体の動きに従って、(例えば、ステッカーの被写体との関係にかかわらず)選択されたステッカーオプションの表現を横方向に移動させる(例えば、図8AV〜図8AYのヘルメットステッカー858−1を参照)。選択されたステッカーオプションの表現を、1つ以上のカメラの視野内の被写体の横方向の動きに従って横方向に移動させることによって、選択されたステッカーが画像内の対話型オブジェクトとして作用できるという視覚フィードバックを提供する。改善された視覚フィードバックをユーザに提供することにより、デバイスの操作性が改善され、ユーザデバイスインタフェースを(例えば、デバイスを操作/対話するときに適切な入力を提供するようにユーザを支援し、ユーザの誤りを削減することによって)更に効率的にし、加えて、ユーザがデバイスを更に素早くかつ効率的に使用することを可能にすることによってデバイスの電力使用を削減し、バッテリ寿命を改善する。
一部の実施形態では、カメラ表示領域(例えば、820)の画像データ上に、選択されたステッカーオプション(例えば、858−1、858−2、858−3、858−4、858−5、858−6)の表現を表示している間に、デバイス(例えば、600)は、1つ以上のカメラ(例えば、602)の視野内の被写体(例えば、832)の回転(例えば、ディスプレイに垂直な軸に対する回転、例えば、頭部を回転させる被写体)を検出する。デバイスは、1つ以上のカメラの視野内の被写体の回転を検出したことに応じて、以下のステップのうちの1つ以上を実行する。選択されたステッカーオプションの表現が、被写体に対して第1の関係を有する(第1の関係で配置されていた)(例えば、ステッカーは、最初に(又は現在)被写体に対応するディスプレイ上の位置に配置されていた、例えば、ステッカーは、被写体の顔の表現上、又は他の指定された領域(例えば、ブラケット(例えば、890))上に配置されている)を有する(例えば、配置された)との判定に従って、デバイスは、選択されたステッカーオプションの表現を、被写体の回転の大きさ及び向きに従って回転させる(例えば、ステッカーが回転し、被写体の顔のピッチ及びヨーに追従するようにひねる)(例えば、図8BH〜図8BMの眼鏡ステッカー858−4を参照)。選択されたステッカーオプションの表現が、被写体に対して第1の関係(例えば、ステッカーは、最初に(又は現在)被写体から離れたディスプレイ上の位置に配置されていた、例えば、ステッカーは、被写体の顔の表現又は他の指定された領域の外に置かれた)を有しない(例えば、配置されていなかった)との判定に従って、デバイスは、選択されたステッカーオプションの表現を、被写体の回転の大きさ及び向きに従って回転させることをやめる(例えば、図8BE〜図8BNのヒトデステッカー858−5及び野球ステッカー858−6を参照)。選択されたステッカーオプションの表現が被写体と第1の関係を有するかどうかに基づいて、選択されたステッカーオプションの表現を選択的に回転させることによって、選択されたステッカーオプションの挙動についての視覚フィードバックを提供し、選択されたステッカーオプションが画像内の対話型オブジェクトとして機能できることを示す。改善された視覚フィードバックをユーザに提供することにより、デバイスの操作性が改善され、ユーザデバイスインタフェースを(例えば、デバイスを操作/対話するときに適切な入力を提供するようにユーザを支援し、ユーザの誤りを削減することによって)更に効率的にし、加えて、ユーザがデバイスを更に素早くかつ効率的に使用することを可能にすることによってデバイスの電力使用を削減し、バッテリ寿命を改善する。
一部の実施形態では、カメラ表示領域(例えば、820)の画像データ上に、選択されたステッカーオプション(例えば、858−1、858−2、858−3、858−4、858−5、858−6)の表現を表示している間に、デバイス(例えば、600)は、1つ以上のカメラ(例えば、602)に向かう(又はカメラから離れる)被写体(例えば、832)の動きを検出する。デバイスは、1つ以上のカメラに向かう(又はカメラから離れる)被写体の動きを検出したことに応じて、以下の手順のうちの1つ以上を実行する。選択されたステッカーオプションの表現が、被写体に対して第1の関係(例えば、ステッカーは、最初に(又は現在)被写体に対応するディスプレイ上の位置に配置されていた、例えば、ステッカーは、被写体の顔の表現がカメラの視野内に存在した(例えば、検出された)ときに配置された)を有する(例えば、配置された)との判定に従って、デバイスは、1つ以上のカメラに向かう(又はカメラから離れる)被写体の動きの大きさに従って、選択されたステッカーオプションの表現を拡大する(又は縮小する)。例えば、ウサギステッカー858−2は、被写体の肩の表現がカメラに向かって移動することに応じて、図8AX及び8AYに示すように拡大する。別の例では、ヒトデステッカー858−5及び野球ステッカー858−6は、被写体が図8BJ〜図8BKのカメラに向かって移動するにつれて拡大する。選択されたステッカーオプションの表現が、被写体に対して第1の関係(例えば、ステッカーは、最初に(又は現在)被写体から離れたディスプレイ上の位置に配置されていた。例えば、ステッカーは、被写体の顔の表現がカメラの視野内に存在しない(例えば、検出されない)ときに配置された)を有しない(例えば、配置されなかった)との判定に従って、デバイスは、1つ以上のカメラに向かう(又はカメラから離れる)被写体の動きの大きさに従って、選択されたステッカーオプションの表現を拡大することを停止する(例えば、図8AV〜図8AYのヘルメットステッカー858−1及びハートステッカー858−3を参照)。選択されたステッカーオプションの表現が被写体と第1の関係を有するかどうかに基づいて、選択されたステッカーオプションの表現を選択的に拡大(又は縮小)させることによって、選択されたステッカーオプションの挙動についての視覚フィードバックを提供し、選択されたステッカーオプションが画像内の対話型オブジェクトとして機能できることを示す。改善された視覚フィードバックをユーザに提供することにより、デバイスの操作性が改善され、ユーザデバイスインタフェースを(例えば、デバイスを操作/対話するときに適切な入力を提供するようにユーザを支援し、ユーザの誤りを削減することによって)更に効率的にし、加えて、ユーザがデバイスを更に素早くかつ効率的に使用することを可能にすることによってデバイスの電力使用を削減し、バッテリ寿命を改善する。
被写体がカメラ(例えば、602)の視野内に位置し、かつ、被写体及び背景(例えば、被写体以外のカメラの視野内のオブジェクト)の表現がカメラ表示領域(例えば、820)内に表示されている間に、電子デバイス(例えば、600)は、第1のアフォーダンスに向けられたジェスチャを検出する(910)。一部の実施形態では、電子デバイスは、被写体が視野内に位置していることを検出(例えば、認識)する。
一部の実施形態では、カメラユーザインタフェース(例えば、815)は、キャプチャアフォーダンスを表示している間に、カメラの視野のライブプレビューの表現(例えば、カメラの視野にあるものを表す画像データのストリーム)を含むカメラ表示領域(例えば、820)を更に含む。一部の実施形態では、被写体がカメラの視野内に位置し(例えば、電子デバイスは、被写体が視野に位置していることを検出/認識する)、被写体と背景の表現(例えば、被写体以外のカメラの視野内のオブジェクト)がカメラ表示領域に表示されている間に、電子デバイス(例えば、600)は、選択されたアバターの表現を、カメラ表示領域内の被写体の表現上に表示する(例えば、ユーザの表示された頭部又は顔の部分が、選択されたアバターに対応する仮想アバターの頭部に置換される(又は、それによって(不透明に、透明に、半透明に)重ね合わせられる)。一部の実施形態では、電子デバイスは、選択されたアバターの表現を、カメラ表示領域内の被写体の表現上に表示している間に、アバター選択領域を表示する要求を受信する。一部の実施形態では、アバター選択領域を表示する要求を受信したことに応じて、電子デバイスは、キャプチャアフォーダンスの表示を停止し、複数のアバターアフォーダンスを有するアバター選択領域(例えば、アバターメニュー828)を(例えば、キャプチャアフォーダンスによって以前に占有されていたカメラユーザインタフェース内の位置に)表示する。一部の実施形態では、アバター選択領域がもはや表示されていないことに応じて(又は、それと共に)、キャプチャアフォーダンスが表示される(例えば、再表示される)。
一部の実施形態では、カメラユーザインタフェース(例えば、815)は、キャプチャアフォーダンス(例えば、821)を表示している間に、カメラの視野のライブプレビューの表現(例えば、カメラの視野にあるものを表す画像データのストリーム)を含むカメラ表示領域(例えば、820)を更に含む。一部の実施形態では、被写体がカメラの視野内に位置し、かつ、被写体と背景の表現(例えば、被写体以外のカメラの視野内のオブジェクト)がカメラ表示領域に表示されている間に、電子デバイス(例えば、600)は、選択されたアバターの表現を、カメラ表示領域内の被写体の表現上に表示する(例えば、ユーザの表示された頭部又は顔の部分が、選択されたアバターに対応する仮想アバターの頭部に置換される(又は、それによって(不透明に、透明に、半透明に)重ね合わせられる)。一部の実施形態では、電子デバイスは、被写体が視野内に位置していることを検出(例えば、認識)する。一部の実施形態では、電子デバイスは、選択されたアバターの表現をカメラ表示領域内の被写体の表現上に表示している間に、被写体の姿勢(例えば、位置及び/又は向き)の変化を検出する。一部の実施形態では、姿勢の変化は、ユーザが頭部又は任意の顔の特徴を動かすときに検出される。一部の実施形態では、電子デバイスは、(例えば、方法900及び図9A〜図9Bに関して説明したように)被写体の姿勢の変化を検出したことに応じて、背景の表示を維持しながら、被写体の姿勢の検出された変化に基づいて、選択されたアバターオプションの表示された表現の外観を変更する。背景の表示を維持しながら、被写体の姿勢の検出された変化に基づいて、選択されたアバターオプションの表示された表現の外観を変更することにより、ユーザは、アバターの動きが、ユーザの検出された動きに対応する、及び/又はそれに基づいていることを迅速かつ容易に認識することができる。追加の制御オプションを提供することにより、デバイスの操作性が改善され、ユーザデバイスインタフェースを(例えば、デバイスを操作/対話するときに適切な入力を提供するようにユーザを支援し、ユーザの誤りを削減することによって)更に効率的にし、加えて、ユーザがデバイスを更に素早くかつ効率的に使用することを可能にすることによってデバイスの電力使用を削減し、バッテリ寿命を改善する。
第1のアフォーダンスに向けられたジェスチャを検出したことに応じて、電子デバイス(例えば、600)は、第1のカメラ表示モードをアクティブ化する。第1のカメラ表示モードをアクティブ化することは、アバター選択領域(例えば、829)を表示すること(914)を含む(例えば、複数のアバターオプションのうちの選択された1つ(例えば、カメラユーザインタフェース(例えば、815)のカメラ表示領域(例えば、820)内のユーザの頭部上に現れるように選択できる異なる仮想アバターを表すアフォーダンス)を含む)。
一部の実施形態では、アバター選択領域(例えば、829)は、選択されたアバターオプションの表現を、カメラディスプレイ内の被写体の表現上に表示することを停止するためのオプションを更に含む。一部の実施形態では、電子デバイス(例えば、600)は、選択されたアバターオプションの表現を、カメラ表示領域内(例えば、820)の被写体の表現上に表示することを停止するためのオプションの選択に対応するユーザ入力を受信する。一部の実施形態では、選択されたアバターオプションの表現を、カメラ表示領域の被写体の表現上に表示することを停止するためのオプションの選択に対応するユーザ入力を受信したことに応じて、電子デバイスは、選択されたアバターオプションの表現をカメラ表示領域の被写体の表現上に表示することを停止する。
一部の実施形態では、アバター選択領域(例えば、829)は、ヌルアバターオプション(例えば、830−2)を含む。ヌルアバターオプションが選択されると、アバターは、カメラ表示領域(例えば、820)内の被写体の表現上に表示されない(例えば、デバイスは、ユーザの頭部の画像データを仮想アバターに置換することをやめる)。一部の実施形態では、アバター選択領域は、「キャンセル」アフォーダンス(例えば、アバター選択領域の角に位置する「x」アイコン)を含む。キャンセルアフォーダンスが選択されると、デバイスは、アバター選択領域の表示を停止し、任意選択的に、被写体の表現上への任意の選択されたアバターの表示を停止する(例えば、デバイスは、ユーザの頭部の画像データを仮想アバターに置換するのをやめる)。
一部の実施形態では、第1のカメラ表示モード(例えば、ユーザの頭部の画像データが仮想アバターに置換されるアバター表示モード)をアクティブ化することは、選択されたアバターオプションの表現をカメラ表示領域(例えば、820)内の被写体の表現上に表示する前に、選択されたアバターオプションの表現を被写体の表現上に表示することなく、被写体の表現をカメラ表示領域に表示すること(916)を、更に含む。一部の実施形態では、アバター表示モードに入った後、デバイスは、アバターなしで(例えば、デバイスはユーザーの頭部の画像データを仮想アバターに置換するのをやめる)被写体の表現を最初に表示する。一部の実施形態では、アバター表示モードに入るときに最初に選択されるアバターオプションは、ヌルアバターオプションに対応する。ヌルアバターオプションが選択されると、デバイスは、被写体の頭部の画像データを仮想アバターに置換することをやめる。
第1のカメラ表示モードをアクティブ化することは、カメラ表示領域(例えば、820)内の被写体の表現上に、選択されたアバターオプションの表現を表示すること(918)を含む(例えば、ユーザの表示された頭部又は顔の部分が、選択されたアバターに対応する仮想アバターの頭部に置換される(又は、それによって(不透明に、透明に、半透明に)重ねら合わせられる)。選択されたアバターオプションの表現をカメラ表示領域内の被写体の表現上に表示することにより、ユーザは、選択されたアバターオプションが被写体の表現に関連することを迅速かつ容易に認識することができる。改善された視覚フィードバックをユーザに提供することにより、デバイスの操作性が改善され、ユーザデバイスインタフェースを(例えば、デバイスを操作/対話するときに適切な入力を提供するようにユーザを支援し、ユーザの誤りを削減することによって)更に効率的にし、加えて、ユーザがデバイスを更に素早くかつ効率的に使用することを可能にすることによってデバイスの電力使用を削減し、バッテリ寿命を改善する。一部の実施形態では、選択されたアバターオプションの表現を被写体の表現上に表示することは、電子デバイス(例えば、600)の1つ以上の深度カメラを使用して取得される深度情報を使用することを含む。
一部の実施形態では、第1のカメラ表示モードをアクティブ化することは、選択されたアバターオプションを、アバター選択領域(例えば、829)に静的外観(例えば、アバター外観がユーザの顔の検出された変化に基づいて変化しない)で表示することを更に含む。一部の実施形態では、第1のカメラ表示モードをアクティブにすることは、選択されたアバターオプションを、被写体の姿勢の検出された変化に基づいて変化する(例えば、アバターは、ユーザの顔の検出された変化を反映するように変化する)動的外観を有するように更新することを更に含む。一部の実施形態では、第1のカメラ表示モードをアクティブにすることは、アバター選択領域からカメラ表示領域(例えば、820)内の被写体の表現(例えば、ユーザの顔の表現)に移動する動的外観を有する、選択されたアバターのアニメーションを表示することを更に含む。一部の実施形態では、アバターは、アバター選択領域からカメラ表示領域内のユーザーの顔へのアニメーション移動中に、ユーザーの顔の変化を追跡し続ける。
一部の実施形態では、選択されたアバターオプションを、被写体の姿勢の検出された変化に基づいて変化する動的外観を有するように更新することは、被写体の姿勢の検出された変化に基づいてアバターオプションの外観を変更する前に、静的外観を有するアバターオプションの姿勢に対応する(例えば、一致する)初期姿勢と共に、動的外観を有するアバターオプションを最初に表示することを含む。
第1のカメラ表示モードがアクティブである間に、電子デバイス(例えば、600)は、姿勢の変化(例えば、被写体の位置及び/又は向き)を検出する(920)。一部の実施形態では、姿勢の変化は、ユーザが頭部又は任意の顔の特徴を動かすときに検出される。
被写体の姿勢の変化を検出したことに応じて、電子デバイス(例えば、600)は、背景(例えば、836)の表示を維持しながら、被写体の姿勢の検出された変化に基づいて、選択されたアバターオプションの表示された表現の外観を変更する(922)(例えば、ユーザ上に表示された仮想アバターは、背景をなおも表示しながら、ユーザの頭部及び顔の変化が表示された仮想アバターの変化に影響を及ぼすように、ユーザの頭部及び顔の検出された変化に応答する)。背景の表示を維持しながら、被写体の姿勢の検出された変化に基づいて、選択されたアバターオプションの表示された表現の外観を変更することにより、ユーザは、アバターの動きが、ユーザの検出された動きに対応する、及び/又はそれに基づいていることを迅速かつ容易に認識することができる。追加の制御オプションを提供することにより、デバイスの操作性が改善され、ユーザデバイスインタフェースを(例えば、デバイスを操作/対話するときに適切な入力を提供するようにユーザを支援し、ユーザの誤りを削減することによって)更に効率的にし、加えて、ユーザがデバイスを更に素早くかつ効率的に使用することを可能にすることによってデバイスの電力使用を削減し、バッテリ寿命を改善する。一部の実施形態では、カメラユーザインタフェースは、図6A〜図6BQ及び図9A〜図9Bに示す実施形態に関して説明したカメラユーザインタフェースの1つ以上の特徴/機能を含む。例えば、カメラユーザインタフェース(例えば、815)は、エフェクトモードアフォーダンス(例えば、622)を含むことができる。
一部の実施形態では、電子デバイス(例えば、600)は、アバター選択領域(例えば、829)上の水平スワイプジェスチャを検出する。一部の実施形態では、水平スワイプジェスチャを検出したことに応じて、電子デバイスは、複数のアバターオプションに新規アバターオプションを追加するための機能に関連付けられたアバター作成アフォーダンスを表示する。水平スワイプジェスチャを検出したことに応じて、複数のアバターオプションに新規アバターオプションを追加するための機能に関連付けられたアバター作成アフォーダンスを表示することにより、ユーザは、アバター選択領域からアバター作成アフォーダンスに迅速かつ容易にアクセスすることができる。追加表示されたコントロールによりユーザインタフェースを雑然とさせることなく追加の制御オプションを提供することにより、デバイスの操作性が改善され、ユーザデバイスインタフェースを(例えば、デバイスを操作/対話するときに適切な入力を提供するようにユーザを支援し、ユーザの誤りを削減することによって)更に効率的にし、加えて、ユーザがデバイスを更に素早くかつ効率的に使用することを可能にすることによってデバイスの電力使用を削減し、バッテリ寿命を改善する。一部の実施形態では、アバター選択領域上の水平スワイプジェスチャが、表示されたアバターオプションをスクロールしてアバター作成アフォーダンスを明らかにする。一部の実施形態では、アバター作成アフォーダンスを選択して、新規アバターを作成することができる。新規アバターが作成されると、作成されたアバターを表す新規アバターオプションが、アバター選択領域内の複数のアバターオプション(例えば、830)に追加される。
一部の実施形態では、第1のカメラ表示モードがアクティブである間に、電子デバイス(例えば、600)は、アバター選択領域(例えば、829)上のスワイプジェスチャを検出する。一部の実施形態では、アバター選択領域上のスワイプジェスチャを検出したことに応じて、電子デバイスは、カメラ表示領域(例えば、820)内の選択されたアバターオプションの表示された表現の外観を、第1の外観(例えば、現在選択されているアバターオプションに基づく外観)から、第2の外観(例えば、異なるアバターオプション(例えば、ヌルアバターオプション、又は異なるタイプ(例えば、カスタマイズ可能な、カスタマイズ不可能な)のアバターを含む、異なるアバターに対応するアバターオプション)基づく外観)に変更し、第2の外観は、複数のアバターオプションのうちの異なる1つ(例えば、アバター選択領域に含まれる異なるアバターオプション)に対応する。アバター選択領域上のスワイプジェスチャを検出したことに応じて、選択されたアバターオプションの表示された表現の外観を変更することにより、ユーザは、選択されたアバターオプションの外観を迅速かつ容易に変更することができる。追加表示されたコントロールによりユーザインタフェースを雑然とさせることなく追加の制御オプションを提供することにより、デバイスの操作性が改善され、ユーザデバイスインタフェースを(例えば、デバイスを操作/対話するときに適切な入力を提供するようにユーザを支援し、ユーザの誤りを削減することによって)更に効率的にし、加えて、ユーザがデバイスを更に素早くかつ効率的に使用することを可能にすることによってデバイスの電力使用を削減し、バッテリ寿命を改善する。一部の実施形態では、複数のアバターオプションのうちの異なる一つがヌルアバターオプション(例えば、830−2)である場合、デバイスは、アバターの表現を被写体の表現上に表示することを停止する(例えば、デバイスは、ユーザの頭部の画像データを仮想アバターに置換することをやめる)。一部の実施形態では、複数のアバターオプションのうちの異なる1つが、異なるアバターキャラクタ(カスタマイズ可能又はカスタマイズ不可能なアバターキャラクタを含む)のアバターオプションである場合、デバイスは、選択されたアバターキャラクタを異なるアバターキャラクタに置換する(例えば、デバイスは、アバターの表現を異なるアバターの表現に置換する)。一部の実施形態では、選択されたアバターキャラクターを異なるアバターキャラクターに置換することは、画面の中心に移動する異なるアバターキャラクターのアニメーションを表示することを含む。一部の実施形態では、選択されたアバターキャラクターを異なるアバターキャラクターに置換することは、ユーザの頭部に移動する異なるアバターキャラクターのアニメーションを表示することを含む。一部の実施形態では、選択されたアバターキャラクターを異なるアバターキャラクターに置換することは、選択されたアバターが置換されている間に背景(例えば、836)をぼかすことを含む。一部の実施形態では、現在選択されているアバターオプションは第1のタイプのアバター(例えば、カスタマイズ可能なアバター)に対応し、異なるアバターオプションは第2のタイプのアバター(例えばカスタマイズ不可能なアバター)に対応する。
一部の実施形態では、第1のカメラ表示モードがアクティブである間に、被写体がカメラの視野内にもはや位置していない(例えば、顔の追跡が失われた)との判定に応じて、電子デバイス(例えば、600)は、カメラ表示領域(例えば、820)内の中心位置に移動する選択されたアバターオプションの表現のアニメーションを表示する。被写体がもはやカメラの視野内に位置していないという判定に応じて、カメラ表示領域の中心位置に移動する選択されたアバターオプションの表現のアニメーションを表示することにより、ユーザがもはやカメラによって検出されていないという視覚フィードバックを、ユーザに提供する。改善された視覚フィードバックをユーザに提供することにより、デバイスの操作性が改善され、ユーザデバイスインタフェースを(例えば、デバイスを操作/対話するときに適切な入力を提供するようにユーザを支援し、ユーザの誤りを削減することによって)更に効率的にし、加えて、ユーザがデバイスを更に素早くかつ効率的に使用することを可能にすることによってデバイスの電力使用を削減し、バッテリ寿命を改善する。一部の実施形態では、ユーザがカメラの視野内でもはや検出されなくなると、アバターはカメラ表示領域の中心に移動する。一部の実施形態では、ユーザがカメラの視野内でもはや検出されなくなると、背景はぼやける。
一部の実施形態では、第1のカメラ表示モードがアクティブである間に、被写体がカメラの視野内にもはや位置していない(例えば、顔の追跡が失われた)との判定に応じて、電子デバイス(例えば、600)は、カメラ表示領域(例えば、820)に表示された背景(例えば、836)の視覚的外観を変更する(例えば、背景をぼかす、背景の彩度を減じる)。
一部の実施形態では、第1のカメラ表示モードがアクティブであり、選択されたアバターオプションの表現(例えば、アバター選択領域から選択されたカスタマイズ可能なアバターオプションの表現)が、カメラ表示領域(例えば、820)内の被写体の表示上に表示されている(例えば、ユーザの頭部の画像データがカスタマイズ可能なアバターに置換されている)間に、電子デバイス(例えば、600)は、アバター選択領域(例えば、829)内の選択されたアバターオプション上のタッチジェスチャ(例えば、タップジェスチャ)を検出する。一部の実施形態では、タッチジェスチャを検出したことに応じて、電子デバイスは、選択されたアバターオプションを編集するために複数のオプション(例えば、カスタマイズ可能なアバターの様々な特徴を変更するために選択可能な編集アフォーダンス)を有するアバター編集ユーザインタフェース(例えば、選択されたアバターオプション(例えば、選択されたカスタマイズ可能なアバター)の1つ以上の特徴を編集するためのユーザーインターフェース)を表示する。アバター選択領域内の選択されたアバターオプション上のタッチジェスチャを検出したことに応じてアバター編集ユーザインタフェースを表示することにより、ユーザは、アバター編集ユーザインタフェースに迅速かつ容易にアクセスしてアバターを編集することができる。追加表示されたコントロールによりユーザインタフェースを雑然とさせることなく追加の制御オプションを提供することにより、デバイスの操作性が改善され、ユーザデバイスインタフェースを(例えば、デバイスを操作/対話するときに適切な入力を提供するようにユーザを支援し、ユーザの誤りを削減することによって)更に効率的にし、加えて、ユーザがデバイスを更に素早くかつ効率的に使用することを可能にすることによってデバイスの電力使用を削減し、バッテリ寿命を改善する。
一部の実施形態では、カメラユーザインタフェース(例えば、815)は、第2のカメラ表示モード(例えば、仮想エフェクト(例えば、ステッカー)が画像データに適用されるモード)に関連付けられた第2のアフォーダンス(例えば、824−2、ステッカーを表示するための機能に対応するアフォーダンス)を更に含む。一部の実施形態では、被写体がカメラ(例えば、602)の視野内に位置し、かつ、被写体の表現及び背景(例えば、836)がカメラ表示領域(例えば、820)内に表示されている間に、電子デバイス(例えば、600)は、第2のアフォーダンスに向けられたジェスチャを検出する。一部の実施形態では、第2のアフォーダンスに向けられたジェスチャを検出したことに応じて、電子デバイスは、第2のカメラ表示モードをアクティブ化し、第2のカメラ表示モードをアクティブ化することは、複数のグラフィカルオブジェクト(例えば、ステッカー)を含むビジュアルエフェクト選択領域を表示することを含む。
一部の実施形態では、電子デバイス(例えば、600)は、第2のカメラ表示モードがアクティブである間に、ビジュアルエフェクト選択領域(例えば、824)内の複数のグラフィカルオブジェクト(例えば、ステッカー)のうちの1つの選択を検出する。一部の実施形態では、選択を検出したことに応じて、電子デバイスは、選択されたグラフィカルオブジェクトの表現をカメラ表示領域(例えば、820)内に表示する。一部の実施形態では、選択されたステッカーは、ライブカメラプレビュー(例えば、820−1)中にカメラ表示領域に表示される。一部の実施形態では、ライブカメラプレビューにステッカーを表示することは、カメラ表示領域のデフォルト位置(例えば、画面の中心)にステッカーを直ちに表示することを含む。一部の実施形態では、ライブカメラプレビューにステッカーを表示することは、ビジュアルエフェクト選択領域からカメラ表示領域上の位置に移動するステッカーのアニメーションを表示することを含む。一部の実施形態では、このアニメーションは、ステッカーのユーザ選択のドラッグジェスチャ(例えば、ユーザがステッカーにタッチして、それをカメラ表示領域上の位置にドラッグするジェスチャ)に基づいて決定される。
一部の実施形態では、カメラ(例えば、602)を介してキャプチャされた画像データの表現は、メディアアイテム(例えば、820−2、静止画像又は記録されたビデオ)である。一部の実施形態では、カメラユーザインタフェース(例えば、815)は、第3のカメラ表示モード(例えば、仮想エフェクト(例えば、ステッカー)が写真や録画されたビデオに適用されるモード)に関連付けられた第3のアフォーダンス(例えば、ステッカーを表示するための機能に対応するアフォーダンス)を更に含む。一部の実施形態では、電子デバイス(例えば、600)は、第3のアフォーダンスに向けられたジェスチャを検出する。一部の実施形態では、第3のアフォーダンスに向けられたジェスチャを検出したことに応じて、電子デバイスは、第3のカメラ表示モードをアクティブ化し、第3のカメラ表示モードをアクティブ化することは、複数のグラフィカルオブジェクト(例えば、ステッカー)を含むビジュアルエフェクト選択領域を表示することを含む。
一部の実施形態では、電子デバイス(例えば、600)は、第3のカメラ表示モードがアクティブである間に、ビジュアルエフェクト選択領域内の複数のグラフィカルオブジェクト(例えば、ステッカー)のうちの1つの選択を検出する。一部の実施形態では、電子デバイスは、選択を検出したことに応じて、選択されたグラフィカルオブジェクトの表現を、カメラ表示領域(例えば、820)のメディアアイテム(例えば、820−2)上に表示する。一部の実施形態では、選択されたステッカーは、写真又は記録されたビデオを見るときにカメラ表示領域に表示される。一部の実施形態では、写真又は記録されたビデオ上にステッカーを表示することは、カメラ表示領域のデフォルト位置(例えば、画面の中心)にステッカーを直ちに表示することを含む。一部の実施形態では、写真又は記録されたビデオ上にステッカーを表示することは、ビジュアルエフェクト選択領域からカメラ表示領域上の位置に移動するステッカーのアニメーションを表示することを含む。一部の実施形態では、このアニメーションは、ステッカーのユーザ選択のドラッグジェスチャ(例えば、ユーザがステッカーにタッチして、それをカメラ表示領域上の位置にドラッグするジェスチャ)に基づいて決定される。
方法900に関して上述された処理(例えば、図9A及び図9B)の詳細はまた、上記及び以下で説明される方法にも、類似の方式で適用可能であることに留意されたい。例えば、方法700は、方法900に関して上述した様々な方法の特性のうちの1つ以上を任意選択的に含む。例えば、ステッカー及び仮想アバターなどのビジュアルエフェクトが、メッセージングアプリケーションユーザインタフェースにおいて画像データに表示される。別の例では、方法1100は、方法900に関して上述した様々な方法の特性のうちの1つ以上を任意選択的に含む。例えば、ステッカー及び仮想アバターなどのビジュアルエフェクトが、メディアユーザインタフェースにおいて画像データに表示される。別の例では、方法1300は、方法900に関して上述した様々な方法の特性のうちの1つ以上を任意選択的に含む。例えば、ステッカー及び仮想アバターのようなビジュアルエフェクトが、ライブビデオ通信セッションのためのユーザインタフェースにおいて画像データに表示される。別の例では、方法1500は、方法900に関して上述した様々な方法の特性のうちの1つ以上を任意選択的に含む。例えば、ステッカー及び仮想アバターなどのビジュアルエフェクトが、カメラユーザインタフェースに対して画像データに表示される。簡潔にするために、これらの詳細は、以下では繰り返さない。
図10A〜図10ALは、一部の実施形態に係る、メディアアイテム視聴モードにおいてビジュアルエフェクトを表示するための例示的なユーザインタフェースを示す。それらの図におけるユーザインタフェースは、図11A〜図11Bにおける処理を含む、以下で説明される処理を例示するために使用される。
図10Aにおいて、デバイス600は、ホーム画面1000を示し、メディアビューアアプリケーションアフォーダンス1002上の入力1001を検出する。
図10Bでは、入力1001の検出に応じて、デバイス600は、メディアビューアアプリケーションアフォーダンス1002に関連付けられたメディアビューアプリケーションを起動し、メディアユーザインタフェース1005を表示する。メディアユーザインタフェース1005は、記憶メディアアイテム1006のうちの選択された1つに対応するメディアアイテムを表示するための、一連の記憶メディアアイテム1006及びメディア表示領域1008を含む。図10Bにおいて、メディア表示領域1008は、選択された記憶メディアアイテム1006−1に対応するメディアアイテム1010を示す。
メディアアイテム1010は、符号化された深度データを含まない(例えば、キャプチャされたメディアアイテム内に深度データを符号化しないカメラ(例えば、カメラ602以外のカメラなど)によってキャプチャされた)画像である。これにより、メディアアイテム1010は、本明細書で説明するように、画像で特定のビジュアルエフェクトを可能にするために使用される深度データを含まない。
図10Cでは、デバイス600は、編集アフォーダンス1012上の入力1011を検出する。これに応じて、図10Dで、デバイス600は、編集オプション表示領域1014を表示する。編集オプション表示領域には、エフェクトアフォーダンス1016(エフェクトアフォーダンス622、822と同様)、メディア編集アフォーダンス1018、及びマークアップアフォーダンス1020を含む。
図10Eではに、デバイス600は、エフェクトアフォーダンス1016上の入力1021を検出し、表示されたメディアアイテム(例えば、メディアアイテム1010)に関連付けられた任意のビジュアルエフェクトが表示されるビジュアルエフェクトモードを有効化する。図10Eに示す実施形態では、メディアアイテム1010はビジュアルエフェクトを含まず、特に、メディアアイテム1010が深度データを含まないので、画像1010は深度ベースのビジュアルエフェクトを含まない。
図10Fでは、エフェクトアフォーダンス1016をアクティブ化する入力1021を検出したことに応じて、デバイス600は、エフェクトアフォーダンス1016を強調表示し、編集オプション表示領域1014を拡大してエフェクトオプションアフォーダンス1024を表示する。図10Fに示す実施形態では、メディアアイテム1010はビジュアルエフェクトを可能にする深度データを含まないので、アバターエフェクトアフォーダンス1024−1及びステッカーエフェクトアフォーダンス1024−2は選択不可能として示されているのに対して、残りのビジュアルエフェクトオプションアフォーダンス1024−3、1024−4、及び1024−5は選択可能である。一部の実施形態では、メディアアイテムがビジュアルエフェクトを可能化する深度データを含まない場合、アバターエフェクトアフォーダンス1024−1及びステッカーエフェクトアフォーダンス1024−2は表示されない。
メディアアイテム1010は深度ベースのビジュアルエフェクトを可能化するための深度データを含まないので、エフェクトアフォーダンス1016が選択されても、深度ベースのビジュアルエフェクトはメディアアイテム1010に表示されない。これにより、メディアアイテム1010は、図10Fでは変更されないままである。
図10Gでは、デバイス600は、取消アフォーダンス1026上の入力1025を検出し、図10Hに示すユーザインタフェースに戻る。
図10Hでは、デバイス600は、記憶されたメディアアイテム1006−2上の入力1027を検出し、記憶されたメディアアイテム1006−2を選択する。
図10Iでは、デバイス600は、メディアアイテム1028をメディア表示領域1008に表示する。メディアアイテム1028は、被写体1032及び背景1036を示す選択された記憶メディアアイテム1006−2に対応する。メディアアイテム1028は、キャプチャされたメディアアイテム内に深度データを符号化するカメラ(例えば、カメラ602)によってキャプチャされた画像である。本明細書で説明するように、メディアアイテム内に符号化された深度データは、ビジュアルエフェクト、特に深度成分を有するビジュアルエフェクトを表示することを可能にする。
図10Iでは、エフェクトモードがメディアアイテム1028に対して有効化されていないため、ビジュアルエフェクトはメディアアイテム1028に表示されない。しかしながら、デバイス600は、エフェクトアイコン1029を表示して、メディアアイテム1028が深度データを含み、ビジュアルエフェクトを表示することができることを示す。
図10Jでは、デバイスは、編集アフォーダンス1012上の入力1030を検出し、図10Kでは、強調表示されていない状態のエフェクトアフォーダンス1016を示すオプション表示領域1014を編集して、ビジュアルエフェクトがメディアアイテム1028の表示を有効化できないことを示す。
図10Lでは、デバイス600は、ビジュアルエフェクトモードを有効化するエフェクトアフォーダンス1016上の入力1033を検出する。図10Mに示すように、ビジュアルエフェクトモードが有効化されると、デバイス600は、エフェクトアフォーダンス1016を強調表示し、編集オプション表示領域1014を拡大してエフェクトオプションアフォーダンス1024を表示する。図10Mに示す実施形態では、メディアアイテム1028は深度ベースのビジュアルエフェクトを有効化する深度データを含むので、アバターエフェクトアフォーダンス1024−1及びステッカーエフェクトアフォーダンス1024−2が選択可能として示され、ビジュアルエフェクトがメディアアイテム1028に表示される。図10Mに示す実施形態では、表示されたビジュアルエフェクトは、カスタマイズ可能なアバター1037、被写体の首部上のアバター1037の下方に表示される影1038、ヘルメットステッカー1039、及びウサギステッカー1040を含む。
一部の実施形態では、デバイス600は、メディアアイテム1028の深度データに符号化された、カメラ602の視野内に位置するユーザの顔の検出された変化に基づいてアバター1037を変更する。このように、メディアアイテム1028はこの実施形態では静止画像として説明されているが、メディアアイテム1028は静止画像に限定されず、深度データを有する録画ビデオを含む録画ビデオなどの他のメディアアイテムを含むことができることを理解されるべきである。同様に、デバイス600は、深度データに符号化されたメディアアイテム内のオブジェクトの位置における検出された変化に基づいて、メディアアイテム1028に適用されるステッカーの位置を変更することができる。
深度ベースのビジュアルエフェクトを含むビジュアルエフェクトを、メディアアイテム1028に適用し、本明細書で論じる実施形態に従って編集することができる。例えば、本明細書に開示された様々な実施形態では、アバターエフェクトアフォーダンス1024−1は、選択されたアバター(例えば、アバター1037)を除去、変更、及び/又は切り替えるために選択することができる。加えて、ステッカーエフェクトアフォーダンス1024−2は、本明細書に開示された様々な実施形態に従って、メディアアイテム1028に対し、ステッカーを除外し、変更し、及び/又は追加するように選択することができる。
図10N〜図10Pは、ハートステッカー1042をメディアアイテム1028に追加するデバイス600を示す。これらの処理は、図6U〜図6AD、図8AH〜図8AK、及び図8AR〜図8AYに関して、上記で一層詳細に論じている。簡潔性のために、これらの処理の詳細は、ここでは繰り返さない。
図10Qでは、デバイス600は、マークアップアフォーダンス1020上の入力1043を検出する。図10Rでは、デバイス600は、表示された編集オプション表示領域1014を、マークアップエフェクトをメディアアイテム1028に追加するための様々な選択可能なマークアップオプション1045を含むマークアップオプションメニュー1044に置換する。図10S〜図10Tは、テキストアフォーダンス1045−1を選択することによって、テキスト1046をメディアアイテム1028に追加するための処理を示す。
図10Uでは、デバイス600は、編集アフォーダンス1012上の入力1047を検出する。図10Vでは、デバイス600は、表示された編集オプション表示領域1014を、様々な画像編集アフォーダンス1050を含む画像編集メニュー1048に置換する。図10V〜図10Yは、ビビッド色フィルタを適用するために、フィルタアフォーダンス1050−1を選択し、次いでビビッドフィルタオプション1052を選択することによって、メディアアイテム1028を編集するための処理を示す。ビビッド色フィルタは、メディアアイテム1028内の背景1036と、適用されたビジュアルエフェクト(例えば、アバター1037上の髪部)の両方に変更を適用する。一部の実施形態では、フィルタは、アバターの外観及び1つ以上のカメラの視野の表現を同様の方法で変更して、アバターと1つ以上のカメラの視野の表現との間の類似性を高める(例えば、コミックブックフィルタ、スケッチ描画フィルタ、白黒フィルタ、グレースケールフィルタなどを適用する)。一部の実施形態では、アバターは、アバターの外観と1つ以上のカメラの視野の表現との両方を変更するフィルタを適用することによって、1つ以上のカメラの視界にある現実の世界とは一致しない漫画のような外観を有し、このアバターの外観は、1つ以上のカメラの視野の表現の残部と一体化される。一部の実施形態では、フィルタは、1つ以上のカメラの視野の表現の現実感を低減するフィルタ(例えば、スケッチフィルタ又はコミックブックフィルタ)である。一部の実施形態では、フィルタは、アバターの外観及び1つ以上のカメラの視野の表現の外観の両方の3D効果を低減する(例えば、平坦化する)フィルタである。
図10Zでは、新しいハートステッカー1042、テキスト1046を表示するように編集されて、ビビッドな色フィルタが適用される、メディアアイテム1028を示す。
図10AA〜図10ADは、デバイス600がアバター1037からアバター1054に切り替わることを示す。これらの処理は、図6G〜図6Q、図6BD〜図6BE、図6BK〜図6BN、及び図8F〜図8AGに関して、上記で一層詳細に論じている。簡潔性のために、これらの処理の詳細は、ここでは繰り返さない。
図10AEでは、デバイス600は、ステッカー(例えば、1039、1040、1042)、アバター1054、テキスト1046、及びビビッド色フィルタが適用されたメディアアイテム1028を表示する。メディアアイテム1028の色フィルタは、新規アバター1054がメディアアイテム1028に表示されると、新規アバター1054の髪部に影響を及ぼす。
図10AEでは、デバイス600は、エフェクトオプションアフォーダンス1024上のスワイプジェスチャ1055を検出し、これに応じて、エフェクトオプションアフォーダンス1024をスクロールして図10AFのスクリーンエフェクトアフォーダンス1024−3を表示する。
図10AGでは、デバイス600は、スクリーンエフェクトアフォーダンス1024−3上の入力1057を検出し、これに応じて、スクリーンエフェクトメニュー1060を表示する。スクリーンエフェクトメニュー1060は、メディアアイテム1028にフルスクリーンビジュアルエフェクトを適用するために選択可能な、様々なスクリーンエフェクトオプション1062を含む。図10AHでは、ヌルエフェクトオプション1062−1が選択され(例えば、1063)、デバイス600は、メディアアイテム1028にスクリーンエフェクトを表示しない。
図10AIでは、デバイス600は、風船エフェクトオプション1062−2上の入力1064を検出する。図10AJ〜図ALでは、デバイス600は、風船1065のアニメーションエフェクトをメディアアイテム1028に表示する。一部の実施形態では、アニメーションエフェクトは、メディアアイテム1028に符号化された深度データを強調する方法で適用される。例えば、図10AJ〜図10ALでは、風船のうちのいくつかは、被写体1062及びビジュアルエフェクト(例えば、ウサギステッカー1040、アバター1054、テキスト1046)の前に現れるように表示される。風船のうちのいくつかは、被写体1062及びビジュアルエフェクト(例えば、ウサギステッカー1040、アバター1054、ハートステッカー1042)の背後にある深度で現れるように表示される。
一部の実施形態では、スクリーンエフェクトは、メディアアイテム1028内のオブジェクト及びビジュアルエフェクトの深度に基づいて、メディアアイテム1028内のビジュアルエフェクト及びオブジェクトと対話することができる。例えば、紙吹雪スクリーンエフェクトは、メディアアイテム1028(例えば、被写体1062)及びビジュアルエフェクト(ステッカー及びアバター)内のオブジェクトの前及び背後に落ちていく、並びにこれらのオブジェクト及びビジュアルエフェクトの上部にも落ちていく、紙吹雪を示すことができる。例えば、紙吹雪が、落ちていく紙吹雪の物理モデルに基づいて、アバター上に落ちていく、及びアバターの側を落ちていくさまを表示することができる。
図11A及び図11Bは、一部の実施形態に係る、電子デバイスを使用してメディアアイテム視聴モードにおいてビジュアルエフェクトを表示するための方法を示すフロー図である。方法1100は、表示装置を有するデバイス(例えば、100、300、500、600)において実行される。方法1100におけるいくつかの動作は、任意選択的に組み合わせられ、いくつかの動作の順序は任意選択的に変更され、いくつかの動作は任意選択的に省略される。
以下に説明するように、方法1100は、メディアアイテム視聴モードでビジュアルエフェクトを表示するための直感的な仕方を提供する。この方法は、画像又はビデオにビジュアルエフェクトを表示している際のユーザへの認知負担を軽減し、それによって、より効率的なヒューマンマシンインタフェースを作り出す。バッテリ動作コンピューティングデバイスでは、ビジュアルエフェクトをユーザーがより迅速かつ効率的に表示できるようにすることで、電力を節約し、バッテリ充電間の時間を増大させる。
電子デバイス(例えば、600)は、表示装置(例えば、601)を介して、メディアユーザインタフェース(例えば、1005)を表示する(1102)。メディアユーザインタフェースは、メディアアイテム(例えば、静止画像又はビデオ)の表現(例えば、1010)を含む、メディア表示領域(例えば、1008)を含む(1104)。一部の実施形態では、メディアアイテムに対応する深度データは、エフェクトアフォーダンスの事前選択を検出した後に、電子デバイスのカメラによって取得される。
一部の実施形態では、メディアアイテムは、記録された画像又はビデオであり、エフェクトは、メディアアイテムが記録された後に深度データに基づいて適用される。一部の実施形態では、画像データがキャプチャされた(例えば、記録された)後に、ステッカー、仮想アバター、及びフルスクリーンエフェクトなどのビジュアルエフェクトを画像データに追加し、又は異なるビジュアルエフェクトに変更する(例えば、ステッカーを仮想アバターに置換する)ことができる。
メディアユーザインタフェース(例えば、1005)は、エフェクトアフォーダンス(例えば、1016、画像表示モードをアクティブ化するための機能(例えば、画像データが深度データを含む場合に、深度データを表示するモード)に関連するアフォーダンス)を含む(1106)。
電子デバイス(例えば、600)は、エフェクトアフォーダンス(例えば、1016)に向けられたジェスチャ(例えば、1021)を検出する(1108)。一部の実施形態では、それぞれのエフェクトオプション(例えば、1024−1)は、メディアアイテム内に(例えば、その上に重ね合わせる)アバターを表示するためのエフェクトに対応する(1110)。一部の実施形態では、アバターをメディアアイテムに表示するときに、人の頭部の画像データが仮想アバターに置換される。人の頭部の画像データが仮想アバターに置換されたメディアアイテムにアバターを表示することにより、アバターが、置換されている人に関係がある、及び/又は関連付けられているという視覚フィードバックを提供する。改善された視覚フィードバックをユーザに提供することにより、デバイスの操作性が改善され、ユーザデバイスインタフェースを(例えば、デバイスを操作/対話するときに適切な入力を提供するようにユーザを支援し、ユーザの誤りを削減することによって)更に効率的にし、加えて、ユーザがデバイスを更に素早くかつ効率的に使用することを可能にすることによってデバイスの電力使用を削減し、バッテリ寿命を改善する。一部の実施形態では、アバターのカスタマイズ可能である。一部の実施形態において、アバターのカスタマイズ不可能である。
一部の実施形態では、それぞれのエフェクトオプション(例えば、1024−3)は、メディアアイテム内を(例えば、その上にアニメーション風に重ね合わせられて)動く複数の仮想オブジェクト(例えば、1062、紙吹雪、風船など)を表示するためのエフェクトに対応する(1112)。一部の実施形態では、メディアアイテム内を移動する複数のオブジェクトの軌跡は、メディアアイテム内の(例えば、表される、特定される)オブジェクト(例えば、元の画像又はビデオ内の人物などの、仮想アバターではない、メディアアイテムに適用されるエフェクトの生成物であるオブジェクトではなく、元のメディアアイテムに符号化されたオブジェクト)のうちの少なくとも1つの存在、又はメディアアイテムに適用されたビジュアルエフェクト(例えば、アバター)に基づいて変更される。一部の実施形態では、紙吹雪又は風船などのオブジェクトが、画像内のユーザの前、背後、及び/又はユーザ上に表示される。一部の実施形態において、画像は、アバターなどの他のエフェクトを含み、紙吹雪又は風船などのオブジェクトは、アバターの前、背後、及び/又はアバター上に着地する。
一部の実施形態では、それぞれのエフェクトオプション(例えば、1024−2)は、メディアアイテム内に(例えば、その上に重ね合わせられる)1つ以上の選択可能なグラフィックアイコン(例えば、1042、ステッカー)を表示するためのエフェクトに対応する(1114)。
エフェクトアフォーダンスに向けられたジェスチャを検出したことに応じて、電子デバイス(例えば、600)は、メディアアイテムの表現と同時に、メディアアイテムにエフェクトを適用するための複数のエフェクトオプション(例えば、ステッカーアフォーダンス、アバターアフォーダンス)を表示し(1116)、(例えば、パラグラフ[179]及び[338]に記載するように)メディアアイテムが対応する深度データに関連付けられているとの判定(1118)に従って、複数のエフェクトオプションが、深度データに基づいてエフェクト(例えば、ステッカー、仮想アバター、フルスクリーンエフェクトなど)を適用するためのそれぞれのエフェクトオプション(例えば、1024)を含む、ことを含んでいる。一部の実施形態では、ジェスチャを検出したことに応じて、電子デバイスは、画像表示モード(例えば、深度データに基づく画像表示モード)をアクティブ化する。
一部の実施形態では、深度データに基づいてメディアアイテム(例えば、静止画像又はビデオ)上に表示できる複数のステッカーオプション(例えば、1042)を表示するために、ステッカーアフォーダンス(例えば1024−2)が選択可能である。例えば、ステッカーをメディアアイテム上に配置し、メディアアイテムに関連付けられた深度データに基づいて変更することができる。一部の実施形態では、ステッカーは、ビデオ内のオブジェクトの相対位置に関連付けられる。ビデオ内のオブジェクトの動きは、オブジェクトの動きに基づいて、ステッカーの表示されたアスペクト(例えば、サイズ、向き、位置など)を変更するために使用される深度成分を有する。例えば、ステッカーはオブジェクト上に表示され、オブジェクトがカメラ(例えば、602)から離れて(例えば、後方に)移動するにつれてステッカーは小さくなっていき、ステッカーがオブジェクトと共にカメラから遠ざかっていく外観を与える。一部の実施形態では、深度データに基づいてメディアアイテム上に表示できる複数のアバターオプション(例えば、図10AB)を表示するために、アバターアフォーダンス(例えば、1024−1)が選択可能である。例えば、アバターを画像又はビデオ内の顔に表示し、画像又はビデオ内の顔に関連付けられた深度データに基づいて修正することができる。例えば、顔が前方、後方、左右、又は画像データの深度成分に影響を及ぼす他の方法で動くと、深度データに基づいてアバターが表示及び変更される。このように、顔が動くにつれて、同じ方法でアバターが動いて表示される。
エフェクトアフォーダンスに向けられたジェスチャを検出したことに応じて、電子デバイス(例えば、600)は、メディアアイテムの表現と同時に、メディアアイテムにエフェクトを適用するための複数のエフェクトオプション(例えば、1024、ステッカーアフォーダンス、アバターアフォーダンス)を表示し(1116)、画像データが深度データを含まないとの判定(1120)に従って、それぞれのエフェクトオプションが、複数のエフェクトオプションにおいてアクティブ化に利用できない(例えば、それぞれのエフェクトオプションが、表示された複数のエフェクトオプションから除外されているか、又は表示された複数のエフェクトオプションにおいて無効化されている)、ことを含んでいる。画像データが深度データを含まないとの判定に従って、複数のエフェクトオプションでアクティブ化するために利用可能でないそれぞれのエフェクトオプションは、画像データが必要な深度データを含まないというフィードバックを提供する。更なるユーザ入力を必要とせずに、条件のセットが満たされたときに操作を行うことにより、デバイスの操作性が改善され、ユーザデバイスインタフェースを(例えば、デバイスを操作/対話するときに適切な入力を提供するようにユーザを支援し、ユーザの誤りを削減することによって)更に効率的にし、加えて、ユーザがデバイスを更に素早くかつ効率的に使用することを可能にすることによってデバイスの電力使用を削減し、バッテリ寿命を改善する。一部の実施形態では、深度データに対応するアフォーダンス(例えば、エフェクトアフォーダンス)は、表示されないか、又は画像データが深度データを含まない場合には選択できない。
一部の実施形態では、複数のエフェクトオプション(例えば、1024)は、メディアアイテムに(例えば、その上に重ね合わせられて)ラベルを付加するためのオプション(例えば、1020)を含む。一部の実施形態では、テキストラベルを画像又はビデオに追加することができる。一部の実施形態では、複数のエフェクトオプションは、メディアアイテムに(例えば、その上に重ね合わせられて)1つ以上の画像フィルタを適用するためのオプションを含む。
方法1100に関して上述された処理(例えば、図11A〜図11B)の詳細はまた、上記及び以下で説明される方法にも、類似の方式で適用可能であることに留意されたい。例えば、方法700は、方法1100に関して上述した様々な方法の特性のうちの1つ以上を任意選択的に含む。例えば、ステッカー及び仮想アバターなどのビジュアルエフェクトが、メッセージングアプリケーションユーザインタフェースにおいて画像データに表示される。別の例では、方法900は、方法1100に関して上述した様々な方法の特性のうちの1つ以上を任意選択的に含む。例えば、ステッカー及び仮想アバターなどのビジュアルエフェクトが、カメラアプリケーションユーザインタフェースに対するユーザインタフェース内の画像データに表示される。別の例では、方法1300は、方法1100に関して上述した様々な方法の特性のうちの1つ以上を任意選択的に含む。例えば、ステッカー及び仮想アバターのようなビジュアルエフェクトが、ライブビデオ通信セッションのためのユーザインタフェースにおいて画像データに表示される。別の例では、方法1500は、方法1100に関して上述した様々な方法の特性のうちの1つ以上を任意選択的に含む。例えば、ステッカー及び仮想アバターなどのビジュアルエフェクトが、カメラユーザインタフェースに対して画像データに表示される。簡潔にするために、これらの詳細は、以下では繰り返さない。
図12A〜図12APは、一部の実施形態に係る、ライブビデオ通信セッションにおけるビジュアルエフェクトを表示するための例示的なユーザインタフェースを示す。それらの図におけるユーザインタフェースは、図13A〜図13Bにおける処理を含む、以下で説明される処理を例示するために使用される。
図12Aでは、デバイス600は、2人以上の参加者間のライブビデオ通信セッション(例えば、ストリーミングビデオ通信)に対するユーザインタフェース1200を示す。ユーザインタフェース1200では、デバイスは、ライブビデオ通信セッションにおける参加者を表す参加者画像データ1204を表示する。ウィンドウ1202では、デバイス600は、デバイス600のカメラ(例えば、カメラ602)によって取得されたデータ、及びライブビデオ通信セッションの他の参加者に送信されているビデオデータの表現を含む、デバイス画像データ1201を表示する。図12Aでは、デバイス画像データ1201は、ビデオ通信セッションの参加者でもある(例えば、外部電子デバイス(例えば、デバイス600に類似のデバイス)を使用している)ユーザを表す。図12Aでは、デバイス画像データ1201は、デバイス600のカメラ602を使用してキャプチャされる。しかしながら、一部の実施形態では、デバイス画像データ1201を、デバイス600の背面カメラを使用してキャプチャすることができる。
図12Bでは、デバイス600は、ユーザインタフェース1200上の入力1205を検出し、これに応じて、エフェクトアフォーダンス1208、カメラセレクタアフォーダンス1210、及びエンドアフォーダンス1212を有する、図12Cの、オプション表示領域1206を表示する。エンドアフォーダンス1212は、ライブビデオ通信セッションを終了させるための機能に関連付けられ、カメラセレクタアフォーダンス1210は、カメラ(例えば、背面カメラ及びカメラ602)間を切り替えるための機能に関連付けられている。エフェクトアフォーダンス1208は、エフェクトアフォーダンス622、822及び1016と同様であり、デバイス600がユーザインタフェース1200にビジュアルエフェクトを表示するために有効化又は無効化される、デバイス600のモード(ビジュアルエフェクトモード、エフェクトモード)を有効化又は無効化するために選択可能である。
図12Dでは、デバイス600は、エフェクトアフォーダンス1208上の入力1213を検出する。
図12Eでは、デバイス600は、入力1213を検出したことに応じて、ビジュアルエフェクトモードを可能化する。デバイス600は、参加者画像データ1204をウインドウ1202に表示することによって、デバイス画像データ1201及び参加者画像データ1204の表示位置を切り替え、ユーザインタフェース1200内の別の位置に任意選択的に移動する。デバイス600はまた、エフェクトアフォーダンス1208を強調表示し、ビジュアルエフェクトオプションアフォーダンス1214を含むようにオプション表示領域1206を拡大する。ビジュアルエフェクトオプションアフォーダンス1214は、上述したビジュアルエフェクトオプションアフォーダンス624、824、及び1024と同様であり、エフェクトアフォーダンス1208が有効化されているときに表示される。
図12Fでは、デバイス600は、アバターエフェクトアフォーダンス1214−1上の入力1215を検出する。図12Gでは、それに応じて、デバイス600は、選択可能なアバターオプション1218のスクロール可能なリストを含むアバターオプションメニュー1216を表示する。アバターオプションメニュー1216は、アバターオプションメニュー628及び828と同様であり、アバターオプション1218は、アバターオプション630及び830と同様である。
アバターオプション1218は、図6G〜図6Q、図6BD〜図6BE、図6BK〜図6BN、及び図8F〜図8AGに関して上述したのと同様の方法で、対応するアバターを、デバイス画像データ1201内の被写体の顔に適用するために選択されてもよい。一部の実施形態では、アバターオプション1218は、参加者画像データ1204に表示された参加者に対するのと同様の方法で、対応するアバターを適用するように選択できる。
図12Gでは、ヌルアバターオプション1218−1が選択されている(例えば、選択領域1219内に位置している)ので、アバターはデバイス画像データ1201内のユーザの顔に表示されない。
図12H〜図12Pは、様々なアバターオプションを選択し、その間で切り替えて、デバイス画像データ1201内のユーザの顔に対応するアバターを表示するための処理を示す。例えば、デバイス600は、デバイス画像データ1201に他のオブジェクト(例えば、ユーザの身体及び背景1226)の表示を維持している間に、ロボットアバターオプション1218−2の選択を受信し、デバイス画像データ1201内のユーザーの顔に、ロボットアバター1222を表示する。デバイス600は、カメラ602を使用してユーザの顔の検出された変化に基づいてロボットアバター1222の外観を変更する。デバイス600は、エイリアンアバターオプション1218−3の選択を受信し、表示されたアバターをエイリアンアバター1223に遷移させる。デバイスは、ロボットアバターオプション1218−2の後続の選択を受信し、表示されたアバターをロボットアバター1222に再び遷移させる。一部の実施形態では、ユーザは、ヌルアバターオプション1218−0を選択することによって、デバイス画像データ1201内のアバターを除去(又は表示することをやめる)するよう選択することができる。これらの処理は、図6G〜図6Q、図6BD〜図6BE、図6BK〜図6BN、及び図8F〜図8AGに関して、上記で一層詳細に論じている。簡潔性のために、これらの処理の詳細は、ここでは繰り返さない。
図12Pのクローズアイコン1220の選択を(入力1221を介して)検出した後、デバイス600は、アバターオプションメニュー1216をクローズし、図12Qのオプション表示領域1206を再表示する。デバイス600は、デバイス画像データ1201内のユーザの頭部上にロボットアバター1222を表示し、カメラ602を使用してユーザの顔の検出された変化に基づいてアバターを変更する。
図12Rでは、デバイス600は、ステッカーエフェクトアフォーダンス1214−2の選択1227を検出し、図12Sでは、ステッカー1230を有するステッカーオプションメニュー1228を表示する。ステッカーオプションメニュー1228は、ステッカーオプションメニュー656及び856と同様であり、ステッカー1230は、ステッカー658及び858と同様である。
ステッカー1230は、図6U〜図6AD、図8AH〜図8AK、及び図8AR〜図8AYに関して上述したのと同様の方法で、対応するステッカーをデバイス画像データ1201に適用するために選択されてもよい。一部の実施形態では、ステッカー1230を参加者画像データ1204に適用することができる。
図12T〜図12AAは、デバイス画像データ1201にステッカーを適用し、変更する処理を示す。デバイス600は、眼鏡ステッカー1230−1の選択を検出し、眼鏡ステッカー1230−1をデバイス画像データ1201に表示する。デバイス600はまた、後続のジェスチャを検出して、ロボットアバター1222上の眼鏡ステッカー1230−1を移動させ、サイズを変更し、及び配置する。これらの処理は、図6U〜図6AD、図8AH〜図8AK、及び図8AR〜図8AYに関して、上記で一層詳細に論じている。簡潔性のために、これらの処理の詳細は、ここでは繰り返さない。
一部の実施形態では、選択されたステッカー1230は、ユーザーがデバイス画像データ1201にステッカーを配置するまで、ライブ通信セッションの他の参加者には見ることができない。一部の実施形態では、配置されたステッカー1230に対する変更は、変更が完了するまで他の参加者には見えない。一部の実施形態では、いったん選択されたステッカーがユーザインタフェース1200内のデバイス画像データ1201上に現れると、たとえユーザがステッカー1230をまだ配置していないとしても、ビデオ通信セッションの参加者はステッカーを見ることができる。同様に、たとえユーザがステッカーの配置をまだ変更していても、ステッカーの継続的な変更がライブビデオ通信セッションの他の参加者に見えるように、配置されたステッカーに対する変更が可視化される。
図12ABでは、ロボットアバター1222、眼鏡ステッカー1230−1がデバイス画像データ1201に適用され、オプション表示領域1206が表示される。デバイス600は、ユーザインタフェース1200上のジェスチャ1232を検出し、これに応じて、デバイス画像データ1201が、ユーザインタフェース1200内の別の位置に任意選択的に移動するウインドウ1202内に表示されるように、図12ACでは、デバイス画像データ1201及び参加者画像データ1204の表示位置を切り替える。ビジュアルエフェクト(例えば、ロボットアバター1222及び眼鏡ステッカー1230−1)は、ウィンドウ1202に配置されたデバイス画像データ1201に表示される。
図12ADに示すように、ウィンドウ1202上のジェスチャ1233を受信したことに応じて(参加者画像データ1204を用いて位置を再び切り替えることにより)、デバイス画像データ1201を再拡大することができる。デバイス600は、図12AEで切り替えられたデバイス画像データ1201及び参加者画像データ1204を、表示されたビジュアルエフェクト及びオプション表示領域1206と共に示す。エフェクトモードが有効化されているので、オプション表示領域1206が表示されると、ビジュアルエフェクトオプションアフォーダンス1214も表示される。
ライブビデオ通信セッションにおけるビジュアルエフェクトを表示するための前述の説明は、3人以上の参加者を有するライブビデオ通信セッションにも適用される。図12AF〜図12APは、このような実施形態においてビジュアルエフェクトを適用するための様々な方法を示す。
図12AFでは、デバイス600は、デバイス画像データ1201をユーザウィンドウ1251に、及びそれぞれの参加者画像データ1204−1〜1204−4をそれぞれの参加者ウィンドウ1255−1〜1255−4に有するユーザインタフェース1200表示する。
図12AGでは、デバイス600は、ユーザインタフェース1200上の入力1256を受信し、これに応じて、図12AHで、エフェクトアフォーダンス1208、カメラセレクタアフォーダンス1210、及びエンドアフォーダンス1212を有する、オプション表示領域1206を表示する。デバイス600が入力1256を受信するときにはエフェクトモードが有効化されていないので、オプション表示領域1206が、ビジュアルエフェクトオプションアフォーダンス1214なしで表示される。
図12AIでは、デバイス600は、ビジュアルエフェクトモードを有効化する、エフェクトアフォーダンス1208上の入力1257を検出する。次いで、デバイス600は、図12AJに示すように、拡大表示に拡張してユーザウィンドウ1251を表示し、ウィンドウ1251の背後にぼかしエフェクト1258を適用もしながら、オプション表示領域1206を拡張してビジュアルエフェクトオプションアフォーダンスス1214を表示する。拡張ウィンドウ1251は、図12AIに示すビューに戻るように選択可能なリターンアイコン1260を含む。
上述したように、ビジュアルエフェクトは、ビジュアルエフェクトオプションアフォーダンス1214を使用してデバイス画像データ1201に適用することができる。例えば、デバイス600は、図12R〜図12ABに関して上述したものと一致する方法で、ステッカーを貼り付けることができる。図12AK〜図12ANは、デバイス画像データ1251内のユーザの顔に追加カスタマイズ可能なアバター1262を示す。例えば、図12AKでは、ヌルアバターオプション1218−1(アバターを表示することをやめるか、又は表示されたアバターを除去するかを選択可能)を含むアバターオプション1218を有するアバターオプションメニュー1216、カスタマイズ不可能なロボットアバターオプション1218−2、カスタマイズ可能なアバターオプション1218−3、及び新規アバターアフォーダンス1266(新規アバターアフォーダンス813と同様の方法で新規アバターを作成するために選択可能)を、デバイス600に表示させる、アバターエフェクトアフォーダンス1214−1が選択される(1264)。カスタマイズ可能なアバターオプション1218−3は、上述したカスタマイズ可能なアバターオプション830−5と同様の方法でカスタマイズできる。
図12AM〜図12ANでは、カスタマイズ可能なアバターオプション1218−3が選択され、デバイス600は、カスタマイズ可能なアバター1273を、ウィンドウ1251に表示されたデバイス画像データ1201内のユーザの顔に表示する。デバイス600は、カメラ602の視野内に位置するユーザの顔の検出された変化に基づいて、カスタマイズ可能なアバター1273を変更する。デバイスは、本明細書で前述した先の実施形態に関して説明したように、ユーザの顔がカメラ602の視野内で検出されない場合を示す。
図12ANでは、デバイス600は、リターンアイコン1260上の入力1274を検出し、これに応じて、図12AOに示すように、適用されたビジュアルエフェクト(例えば、カスタマイズ可能なアバター1273)を含みながら、デバイス画像データ1201をウィンドウ1251に表示する。図12AOに示す実施形態では、デバイス画像データ1201及び適用されたビジュアルエフェクトは、ライブビデオ通信セッションの他の参加者が見ることができる。ビジュアルエフェクトが有効化されるので、ビジュアルエフェクトオプションアフォーダンス1214及びエフェクトアフォーダンス1208が強調表示されて、オプション表示領域1206が表示される。
図12AOでは、デバイスは、ユーザインタフェース1200上の入力1275を検出し、それに応じて、オプション表示領域1206を隠し、図12APに示すように、様々な参加者ウィンドウ1255の位置をシフトし、サイズ変更する。一部の実施形態では、デバイス600は、参加者が話しているときに、それぞれの参加者ウィンドウを拡大する。例えば、図12APでは、デバイス600は、参加者画像データ1204−2に表された女性からの音声1276(例えば、笑い声)を検出し、それに応じて、女性の参加者ウィンドウ1255−2を拡大する。
図13A〜図13Bは、一部の実施形態に係る、電子デバイスを使用してライブビデオ通信セッションアプリケーションにビジュアルエフェクトを表示するための方法を示すフロー図である。方法1300は、表示装置を備えたデバイス(例えば、100、300、500、600)において実行される。方法1300におけるいくつかの動作は、任意選択的に組み合わせられ、いくつかの動作の順序は任意選択的に変更され、いくつかの動作は任意選択的に省略される。
以下に説明するように、方法1300は、ライブビデオ通信セッションにおいてビジュアルエフェクトを表示するための直感的な方法を提供する。この方法は、ビジュアルエフェクトを表示している際のユーザへの認知負担を軽減し、それによって、より効率的なヒューマンマシンインタフェースを作り出す。バッテリ動作コンピューティングデバイスでは、ビジュアルエフェクトをユーザーがより迅速かつ効率的に表示できるようにすることで、電力を節約し、バッテリ充電間の時間を増大させる。
電子デバイス(例えば、600)は、表示装置(例えば、601)を介して、ライブビデオ通信アプリケーションのライブビデオ通信ユーザインタフェース(例えば、1200)を表示する(1302)。ライブビデオ通信ユーザインタフェースは、ライブビデオ通信セッションに参加している被写体の表現(例えば、1201)を含む(1304)。ライブビデオ通信セッションに参加している被写体の表現を含むことにより、ユーザは、ライブビデオ通信セッションの他の参加者(単数又は複数)を迅速かつ容易に認識することができる。改善された視覚フィードバックをユーザに提供することにより、デバイスの操作性が改善され、ユーザデバイスインタフェースを(例えば、デバイスを操作/対話するときに適切な入力を提供するようにユーザを支援し、ユーザの誤りを削減することによって)更に効率的にし、加えて、ユーザがデバイスを更に素早くかつ効率的に使用することを可能にすることによってデバイスの電力使用を削減し、バッテリ寿命を改善する。一部の実施形態では、ライブビデオ通信セッションに参加している被写体の表現は、電子デバイスに関連付けられたカメラ(例えば、602)によってキャプチャされた画像データを含む(1306)。一部の実施形態では、被写体は電子デバイスのユーザである。一部の実施形態では、ライブビデオ通信セッションに参加している被写体の表現は、第2の電子デバイスから電子デバイスに伝送された画像データを含む。一部の実施形態では、第2の電子デバイスは別のユーザのデバイスであり、被写体は他のユーザである。
一部の実施形態では、ライブビデオ通信ユーザインタフェース(例えば、1200)は、ライブビデオ通信セッションにおける第2の参加者の表現(例えば、1204)、及びライブビデオ通信セッションにおける第3の参加者の表現を更に含む。一部の実施形態では、ライブビデオ通信セッションにおける第2及び第3の参加者の表現の表示サイズが、参加者のすべての表現が画面上に収まるように調整される。第2及び第3の参加者の表現のサイズを画面に合わせるように調整することにより、ユーザは、ユーザの表現に適用されるビジュアルエフェクトに対する彼らの反応を同時に見ることができ、それによって(例えば、ユーザが手動入力なしに他の参加者の反応を容易に見ることを可能にすることにより)、デバイスの操作性を向上させ、ユーザデバイスインタフェースをより効率的にし、加えて、ユーザーがデバイスをより迅速かつ効率的に使用できるようにすることによって、電力消費を低減し、装置のバッテリ寿命を改善する。
ライブビデオ通信ユーザインタフェース(例えば、1200)は、第1のアフォーダンス(例えば、1208、エフェクトアフォーダンス)(例えば、カメラエフェクトモード(例えば、様々なカメラエフェクトをライブビデオ通信セッション内のユーザの表現に適用できるモード)をアクティブ化するための機能に関連付けられたアフォーダンス)を含む(1308)。
一部の実施形態では、電子デバイス(例えば、600)は、第1のアフォーダンス(例えば、1208)を表示する前に、ライブビデオ通信ユーザインタフェース(例えば、1200)上の第1の入力(例えば、1205)(例えば、ビデオ通話オプションを表示するためのライブビデオ通信ユーザインタフェース上のタップジェスチャ)を検出し、この第1の入力は、ライブビデオ通信セッションに関連付けられた1つ以上のオプション(例えば、通話を終了するオプション、カメラビューを切り替えるオプションなど)を表示する要求に対応する。一部の実施形態では、電子デバイスは、第1の入力を検出したことに応じて、ライブビデオ通信セッションに関連付けられた1つ以上のオプション(例えば、1208、1210、1212)を表示する。一部の実施形態では、電子デバイスは、第1のアフォーダンス(例えば、1208)を表示する。
電子デバイス(例えば、600)は、第1のアフォーダンス(例えば、1208)に向けられたジェスチャ(例えば、1213)を検出する(1310)。第1のアフォーダンスに向けられたジェスチャを検出する(1312)ことに応じて、電子デバイスはカメラエフェクトモードをアクティブ化する(1314)。
一部の実施形態では、第1のアフォーダンス(例えば、1208)に向けられたジェスチャを検出したことに応じて、電子デバイス(例えば、600)は、ビジュアルエフェクトの第1のタイプに関連付けられた第1のビジュアルエフェクトアフォーダンス、及びビジュアルエフェクトの第1のタイプとは異なるビジュアルエフェクトの第2のタイプに関連付けられた第2のビジュアルエフェクトアフォーダンス、並びに任意選択的に、ビジュアルエフェクトの第1のタイプ及びビジュアルエフェクトの第2のタイプとは異なる、ビジュアルエフェクトの第3のタイプに関連付けられた第3のビジュアル関連付けられたエフェクトアフォーダンス(例えば、ステッカーアフォーダンス1214−2、アバターアフォーダンス1214−1、フルスクリーンエフェクトにアフォーダンス)を表示する。一部の実施形態では、ステッカーアフォーダンスは、ステッカーがライブビデオ通信セッションに参加している被写体の表現内に表示されるビジュアルエフェクトに関連付けられている。一部の実施形態では、アバターアフォーダンスは、仮想アバターがライブビデオ通信セッションに参加している被写体の表現上に表示されるビジュアルエフェクトに関連付けられている。一部の実施形態では、フルスクリーンエフェクトは、ライブビデオ通信セッションの参加者の前、背後、及び/又はその上に、紙吹雪又は風船などのグラフィカルオブジェクトが表示されるビジュアルエフェクトを含む。
一部の実施形態では、電子デバイス(例えば、600)は、あるタイプのビジュアルエフェクトに関連付けられたアフォーダンス(例えば、ステッカーアフォーダンス1214−2、アバターアフォーダンス1214−1、フルスクリーンエフェクトに関連付けられたアフォーダンス)のうちの1つの選択(例えば、1215)を検出する。一部の実施形態では、ビジュアルエフェクトに関連付けられたアフォーダンスの選択を検出したことに応じて、電子デバイスは、ビジュアルエフェクトに対応する複数のビジュアルエフェクトオプション(1218)を表示する。ビジュアルエフェクトに関連付けられたアフォーダンスの選択を検出したことに応じて、ビジュアルエフェクトに対応する複数のビジュアルエフェクトオプションを表示することにより、ユーザは、対応するビジュアルエフェクトオプションに迅速かつ容易にアクセスすることができる。追加表示されたコントロールによりユーザインタフェースを雑然とさせることなく追加の制御オプションを提供することにより、デバイスの操作性が改善され、ユーザデバイスインタフェースを(例えば、デバイスを操作/対話するときに適切な入力を提供するようにユーザを支援し、ユーザの誤りを削減することによって)更に効率的にし、加えて、ユーザがデバイスを更に素早くかつ効率的に使用することを可能にすることによってデバイスの電力使用を削減し、バッテリ寿命を改善する。一部の実施形態では、ステッカーアフォーダンスは、静止グラフィカルオブジェクト(例えば、帽子、星、眼鏡など)の表現(例えば、ライブビデオ通信セッションに参加している被写体の表現)を画像データに表示することを含む、ビジュアルエフェクトに関連付けられる。一部の実施形態では、アバターアフォーダンスは、人の頭部の画像データが仮想アバターのグラフィック表現に置換されるように、仮想アバター(例えば、カスタマイズ可能な仮想アバター、又はカスタマイズ不可能な仮想アバター)の表現を表示することを含むビジュアルエフェクトと関連付けられる。一部の実施形態では、フルスクリーンエフェクトは、紙吹雪又は風船などのグラフィカルオブジェクトが、ライブビデオ通信セッションの参加者の前、背後、及び/又はその上に表示されるビジュアルエフェクトを含む。
電子デバイス(例えば、600)は、第1のアフォーダンスに向けられたジェスチャを検出すること(1312)に応じて、ライブビデオ通信セッションに参加している被写体の表現(例えば、1201)のサイズを増大させる(1316)。第1のアフォーダンスに向けられたジェスチャを検出すること(1312)に応じて、ライブビデオ通信セッションに参加している被写体の表現のサイズを増大させることにより、ユーザは、被写体の表現のサイズを迅速かつ容易に調整することができる。追加表示されたコントロールによりユーザインタフェースを雑然とさせることなく追加の制御オプションを提供することにより、デバイスの操作性が改善され、ユーザデバイスインタフェースを(例えば、デバイスを操作/対話するときに適切な入力を提供するようにユーザを支援し、ユーザの誤りを削減することによって)更に効率的にし、加えて、ユーザがデバイスを更に素早くかつ効率的に使用することを可能にすることによってデバイスの電力使用を削減し、バッテリ寿命を改善する。一部の実施形態では、被写体の表現のサイズを増大することは、被写体の表示された表現の位置を、ライブビデオ通信セッションにおいて表示された参加者の位置に切り替えることを含む。
一部の実施形態では、カメラエフェクトモードがアクティブ化されている間に(1318)、電子デバイス(例えば、600)は、エフェクトオプションアフォーダンス(例えば、ライブビデオ通信セッションに参加している被写体の表現にビジュアルエフェクトを表示するための機能に関連付けられた選択可能なアイコン)の選択を検出する(1320)。一部の実施形態では、エフェクトオプションアフォーダンスは、ステッカーアフォーダンス、アバターアフォーダンス、又は紙吹雪若しくは風船などのフルスクリーンエフェクトに関連付けられたアフォーダンスである。
一部の実施形態では、エフェクトオプションアフォーダンスの選択を検出したことに応じて、電子デバイスは、ライブビデオ通信セッションに参加している被写体の表現の外観を、選択されたエフェクトオプションアフォーダンスに関連付けられたビジュアルエフェクト(例えば、ステッカー、アバター、又はフルスクリーンエフェクトを表示すること)に基づいて変更する(1322)。選択されたエフェクトオプションアフォーダンスに関連付けられたビジュアルエフェクトに基づいて、ライブビデオ通信セッションに参加している被写体の表現の外観を変更することにより、選択されたビジュアルエフェクトの適用が成功したという視覚フィードバックを提供する。改善された視覚フィードバックをユーザに提供することにより、デバイスの操作性が改善され、ユーザデバイスインタフェースを(例えば、デバイスを操作/対話するときに適切な入力を提供するようにユーザを支援し、ユーザの誤りを削減することによって)更に効率的にし、加えて、ユーザがデバイスを更に素早くかつ効率的に使用することを可能にすることによってデバイスの電力使用を削減し、バッテリ寿命を改善する。一部の実施形態では、ステッカーアフォーダンスの選択を検出すること応じて、ライブビデオ通信セッションに参加しているユーザーの表現が、選択されたステッカーを表示するように変更される。一部の実施形態では、アバターアフォーダンスの選択を検出すること応じて、ライブビデオ通信セッションに参加しているユーザーの表現が、ユーザの顔に位置するアバターを表示するように変更される。一部の実施形態では、フルスクリーンエフェクトに関連付けられたアフォーダンスの選択を検出することに応じて、フルスクリーンエフェクトが、ライブビデオ通信セッションに参加しているユーザの表現に表示される(例えば、紙吹雪が、ユーザの表現の前、背後、及びその上に落ちていくように表示される)。
一部の実施形態では、電子デバイス(例えば、600)は、ライブビデオ通信ユーザインタフェース(例えば、1200)上の、ライブビデオ通信セッションに参加している被写体の表現のサイズを縮小する要求に対応する第2の入力を検出する。一部の実施形態では、第2の入力を検出したことに応じて、電子デバイスは、選択されたエフェクトオプションアフォーダンスに関連付けられたビジュアルエフェクトに基づく変更された外観を有する、ライブビデオ通信セッションに参加している被写体の表現と、ライブビデオ通信セッションにおけるそれぞれの参加者の1つ以上の表現と、同時に表示する。第2の入力を検出したことに応じて、ライブビデオ通信セッションに参加している被写体の表現と、ライブビデオ通信セッションのそれぞれの参加者の1つ以上の表現とを同時に表示することにより、ユーザは、ライブビデオ通信の他の参加者を迅速かつ容易に(同時に)視認することができる。追加表示されたコントロールによりユーザインタフェースを雑然とさせることなく追加の制御オプションを提供することにより、デバイスの操作性が改善され、ユーザデバイスインタフェースを(例えば、デバイスを操作/対話するときに適切な入力を提供するようにユーザを支援し、ユーザの誤りを削減することによって)更に効率的にし、加えて、ユーザがデバイスを更に素早くかつ効率的に使用することを可能にすることによってデバイスの電力使用を削減し、バッテリ寿命を改善する。一部の実施形態では、ライブビデオ通信セッションにおけるユーザの表現が、ライブビデオ通信セッションにおける他の参加者の表現と共に画面上に表示されるように、縮小される。
一部の実施形態では、カメラエフェクトモードがアクティブ化されている間に(1318)、電子デバイス(例えば、600)は、ライブビデオ通信セッションに参加している被写体の表現(例えば、1201)の外観を変更して(1324)1つ以上のビジュアルエフェクトを表示する。一部の実施形態では、ビジュアルエフェクトがステッカーエフェクトである場合、ライブビデオ通信セッションに参加している被写体の表現の外観は、静的なグラフィカルオブジェクト(例えば、ステッカー)の表示を含むように変更される。一部の実施形態では、静的グラフィカルオブジェクト(例えば、ステッカー)は、ライブビデオ通信セッションに参加している被写体の表現と対話する。一部の実施形態では、ビジュアルエフェクトがアバターエフェクトである場合、ライブビデオ通信セッションに参加している被写体の表現の外観は、被写体の頭部を置換する仮想アバター(例えば、カスタマイズ可能な仮想アバター、又はカスタマイズ不可能な仮想アバター)の表現を表示するように変更される。一部の実施形態では、ビジュアルエフェクトがフルスクリーンエフェクトである場合、ライブビデオ通信セッションに参加している被写体の表現の外観は、ライブビデオ通信セッションの参加者の前、背後、及び/又はその上に表示されるグラフィカルオブジェクト(例えば、グラフィックな紙吹雪、又はグラフィックな風船)を表示するように変更される。
一部の実施形態では、変更された外観は、ライブビデオ通信セッションの他の参加者に送信/伝送される。一部の実施形態では、データを送信することは、選択されたビジュアルエフェクトに基づいて行われた変更を表すデータ(例えば、別個のデータ)と一緒に、画像データ(例えば、カメラの視野からの画像データのリアルタイムストリーム)を送信することを含む。一部の実施形態では、データを送信することは、選択されたビジュアルエフェクトに基づいて行われた変更を表すデータと結合されたカメラの視野からの画像データを含む、コンポジットビデオデータを送信することを含む。
一部の実施形態では、カメラエフェクトモードがアクティブ化されている間に、電子デバイス(例えば、600)は、ライブビデオ通信セッションに参加している被写体の表現(例えば、1200)の外観を変更して仮想アバターを表示する。一部の実施形態では、電子デバイスは、電子デバイスの1つ以上のカメラ(例えば、602)の視野内の顔の変化を検出する。一部の実施形態では、電子デバイスは、顔の検出された変化に基づいて、仮想アバターの外観を変更する。顔の検出された変化に基づいて仮想アバターの外観を変更することにより、仮想アバターが顔に基づいている/関連付けられているという視覚フィードバックを提供する。改善された視覚フィードバックをユーザに提供することにより、デバイスの操作性が改善され、ユーザデバイスインタフェースを(例えば、デバイスを操作/対話するときに適切な入力を提供するようにユーザを支援し、ユーザの誤りを削減することによって)更に効率的にし、加えて、ユーザがデバイスを更に素早くかつ効率的に使用することを可能にすることによってデバイスの電力使用を削減し、バッテリ寿命を改善する。一部の実施形態では、仮想アバターは、ライブビデオ通信セッションに参加している被写体の動きを反映するように変更される。一部の実施形態では、顔の変化は、本明細書で論じるように、1つ以上の深度カメラ及び/又は深度マップを使用して検出される。
一部の実施形態では、カメラエフェクトモードがアクティブ化されている間に、電子デバイス(例えば、600)は、ライブビデオ通信セッションに参加している被写体の表現に第1のビジュアルエフェクト(例えば、ステッカー)を表示する。一部の実施形態では、電子デバイスは、第1のビジュアルエフェクトに対応する入力(例えば、タッチ入力)を検出する。一部の実施形態では、第1のビジュアルエフェクトに対応する入力を検出したことに応じて、入力が第1のタイプ(例えば、タッチアンドドラッグジェスチャ)であるとの判定に従って、電子デバイスは、大きさ(例えば、ジェスチャが移動する距離)及び入力の方向に基づいて、ライブビデオ通信セッションに参加している被写体の表現における第1のビジュアルエフェクトの位置を変更する。一部の実施形態では、第1のビジュアルエフェクトに対応する入力を検出したことに応じて、入力が第2のタイプ(例えば、ピンチ又はデピンチジェスチャ)であるとの判定に従って、電子デバイスは、入力の大きさ(例えば、ピンチ/デピンチジェスチャの接触点間の調整された距離)に基づいて、第1のビジュアルエフェクトのサイズを変更する。入力の大きさに基づいてライブビデオ通信セッションに参加している被写体の表現における第1のビジュアルエフェクトの位置を変更するか、又は入力のタイプに基づく入力の大きさ(例えば、ピンチ/デピンチジェスチャの接触点間の調整された距離)に基づいて第1のビジュアルエフェクトのサイズを変更することにより、ユーザは、(入力のタイプを単に変更することによって)ビジュアルエフェクトの位置又はサイズを迅速かつ容易に調整することができる。操作を行うために必要な入力の数を低減することにより、デバイスの操作性が改善され、ユーザデバイスインタフェースを(例えば、デバイスを操作/対話するときに適切な入力を提供するようにユーザを支援し、ユーザの誤りを削減することによって)更に効率的にし、加えて、ユーザがデバイスを更に素早くかつ効率的に使用することを可能にすることによってデバイスの電力使用を削減し、バッテリ寿命を改善する。
一部の実施形態では、第1のビジュアルエフェクトの位置を変更することは、以下の手順のうちの1つ以上を含む。入力(例えば、889)の終了を検出する前に、入力の大きさ及び方向に基づいて第1のビジュアルエフェクト(例えば、858−4)の動きを表示すること、第1のビジュアルエフェクト(例えば、ステッカー(858−4))が所定の位置(例えば、被写体の表情の一部(例えば、被写体の顔)に対応する位置)の境界領域を横切って移動したという判定に従って、第1のビジュアルエフェクトが境界領域を横切った(例えば、横切っている)というインジケーションを生成する(例えば、ブラケットを表示する(例えば、890)、又は触覚応答(例えば、892)を生成する)こと(例えば、図8BGに示すように、被写体の顔の表現の回りにブラケットを表示する)。一部の実施形態では、所定の位置の境界領域内に交差しているとき(又は後に)、デバイスは所定の位置の周囲にブラケットを表示し、及び/又は触覚フィードバック(例えば、触知出力)を生成して、ステッカーが被写体の顔に配置され、ジェスチャの終了時に被写体の顔に配置されることになる(例えば、ステッカーが被写体の顔の表現との関係を有することになる、例えば、ステッカーがユーザーの顔とのステッカーの関係に基づく挙動を有することになる)ことを示す。一部の実施形態では、所定の位置の境界領域外へ交差しているとき(又は後に)、デバイスは、所定の位置の周囲にブラケットを表示し、及び/又はステッカーがもはや被写体の顔に配置されていないことを示す触覚フィードバックを生成し、ジェスチャが終了しても被写体の顔に配置されることはない(例えば、ステッカーが被写体の顔の表現と異なる関係を有することになる、例えば、ステッカーは、ユーザーの顔に対するステッカーの関係に基づいて異なる挙動を有することになる、例えば、ステッカーは被写体の顔から離れた位置に配置されることになる)ことを示す。一部の実施形態では、インジケーションは、触覚フィードバック(例えば、触知出力及び/若しくは音声出力)、又は視覚フィードバック(例えば、境界領域の視覚的表現、所定位置の周囲に表示されるブラケット)のうちの少なくとも1つである。
第1のビジュアルエフェクトが境界領域を横切った(又は、横切っている)というインジケーションを生成することにより、ユーザにジェスチャを終了させてモデル化された挙動を試みることを要求することなく、ステッカーの挙動及び配置が変更されたという視覚フィードバック及び/又は触覚を、ユーザに提供する。改善された視覚フィードバックをユーザに提供することにより、デバイスの操作性が改善され、ユーザデバイスインタフェースを(例えば、デバイスを操作/対話するときに適切な入力を提供するようにユーザを支援し、ユーザの誤りを削減することによって)更に効率的にし、加えて、ユーザがデバイスを更に素早くかつ効率的に使用することを可能にすることによってデバイスの電力使用を削減し、バッテリ寿命を改善する。
一部の実施形態では、第1のビジュアルエフェクトの位置を変更することは、第1の位置から第2の位置へ、第1のビジュアルエフェクトの動きを表示することを含む。一部の実施形態では、第1のビジュアルエフェクトのサイズを変更することは、第1の表示サイズから第2の表示サイズへ、第1のビジュアルエフェクトの遷移を表示することを含む。一部の実施形態では、ステッカーがディスプレイ上で動かされているか、又はサイズ変更される場合、ユーザ及びライブビデオ通信セッションの他の参加者が、ステッカーが変更されているときの中間の移動/サイズ変更を含む変更を見ることができるように、ステッカーの移動及び/又はサイズ変更が表示される。
一部の実施形態では、第1のビジュアルエフェクトの位置を変更することは、中間位置で現れる第1のビジュアルエフェクトを表示することなく、第1の位置での出現から第2の位置での出現へ、第1のビジュアルエフェクトを遷移させることを含む。一部の実施形態では、第1のビジュアルエフェクトのサイズを変更することは、中間サイズを有する第1のビジュアルエフェクトを表示することなく、第1の表示サイズから第2の表示サイズへ、第1のビジュアルエフェクトを遷移させることを含む。一部の実施形態では、ステッカーをディスプレイ上で動かされているか、又はサイズ変更している間に、ステッカーの移動及び/又はサイズ変更が表示され、ユーザのみが、ステッカーが変更されているときの中間の移動/サイズ変更を含む変化を見ることができるが、ライブビデオ通信セッションの他の参加者は、ステッカーの中間の動き/サイズ変更を見ることができない。このように、他の参加者は、変更後のステッカー(又は、ステッカーへの更新)のみを見る。
一部の実施形態では、複数の参加者がライブビデオ通信セッションに参加しており、複数の参加者は、被写体(例えば、電子デバイスのユーザ)及び第1の遠隔参加者(例えば、第1の電子デバイスから離れた第2の電子デバイスのユーザ)を含む。一部の実施形態では、ライブビデオ通信ユーザインタフェース(例えば、1200)は、第1の遠隔参加者の表現を更に含む。一部の実施形態では、第1の遠隔参加者の表現は、遠隔デバイス/遠隔カメラから受信した画像データ又はビデオデータを含む。一部の実施形態では、電子デバイスは、第1のアフォーダンスに向けられたジェスチャを検出したことに更に応じて、第1の遠隔参加者の表現のサイズを縮小する。
一部の実施形態では、複数の参加者がライブビデオ通信セッションに参加しており、複数の参加者は、被写体(例えば、電子デバイスのユーザ)及び第1の遠隔参加者(例えば、第1の電子デバイスから離れた第2の電子デバイスのユーザ)を含み、被写体の表現は、電子デバイス(例えば、600)のカメラ(例えば、602)の視野のライブプレビュー(例えば、カメラの視野内にあるものを表す画像データのストリーム)である。一部の実施形態では、電子デバイスは、選択されたエフェクトオプションアフォーダンスに関連付けられたビジュアルエフェクトに基づいてライブビデオ通信セッションに参加している被写体の表現(例えば、1201)の外観を変更した後、ライブビデオ通信セッションに参加している被写体の表現の変更された外観に対応するデータを、複数の参加者のうちの少なくとも遠隔参加者に伝送する。一部の実施形態では、データを送信することは、選択されたビジュアルエフェクトに基づいて行われた変更を表すデータ(例えば、別個のデータ)と一緒に、画像データ(例えば、カメラの視野からの画像データのリアルタイムストリーム)を送信することを含む。一部の実施形態では、データを送信することは、選択されたビジュアルエフェクトに基づいて行われた変更を表すデータと結合されたカメラの視野からの画像データを含む、コンポジットビデオデータを送信することを含む。
一部の実施形態では、電子デバイス(例えば、600)は、第1アフォーダンスなしでライブビデオ通信ユーザインタフェース(例えば、1200)を表示する。一部の実施形態では、電子デバイスは、ライブビデオ通信ユーザインタフェース(例えば、1206)上のタッチ入力(例えば、ビデオコールオプションを表示するライブビデオ通信ユーザインタフェース上のタップジェスチャ)を検出する。一部の実施形態では、タッチ入力を検出したことに応じて、カメラエフェクトモードがアクティブ化されているとの判定に従って、電子デバイスは、第1のアフォーダンスと複数のビジュアルエフェクトアフォーダンス(例えば、ステッカーアフォーダンス、アバターアフォーダンス、フルスクリーンエフェクトに関連付けられたアフォーダンス)とを含むライブビデオ通信オプションユーザインタフェースを表示する。一部の実施形態では、タッチ入力を検出したことに応じて、カメラエフェクトモードがアクティブ化されていないとの判定に従って、電子デバイスは、第1のアフォーダンスを含み、かつ、複数のビジュアルエフェクトアフォーダンスを除く、ライブビデオ通信オプションユーザインタフェースを表示する。第1のアフォーダンスを含み、及び複数のビジュアルエフェクトアフォーダンスを含むか、又は複数のビジュアルエフェクトアフォーダンスを除外するかのいずれかの、ライブビデオ通信オプションユーザーインタフェースを表示することにより、カメラエフェクトモードがアクティブ化されているか否かの判定に基づいて、カメラエフェクトモードが現在アクティブ化されているか否かを示す。更なるユーザ入力を必要とせずに、条件のセットが満たされたときに操作を行うことにより、デバイスの操作性が改善され、ユーザデバイスインタフェースを(例えば、デバイスを操作/対話するときに適切な入力を提供するようにユーザを支援し、ユーザの誤りを削減することによって)更に効率的にし、加えて、ユーザがデバイスを更に素早くかつ効率的に使用することを可能にすることによってデバイスの電力使用を削減し、バッテリ寿命を改善する。
方法1300に関して上述された処理(例えば、図13A〜図13B)の詳細はまた、上記及び以下で説明される方法にも、類似の方式で適用可能であることに留意されたい。例えば、方法700は、方法1300に関して上述した様々な方法の特性のうちの1つ以上を任意選択的に含む。例えば、ステッカー及び仮想アバターなどのビジュアルエフェクトが、メッセージングアプリケーションユーザインタフェースにおいて画像データに表示される。別の例では、方法900は、方法1300に関して上述した様々な方法の特性のうちの1つ以上を任意選択的に含む。例えば、ステッカー及び仮想アバターなどのビジュアルエフェクトが、カメラユーザインタフェースにおいて画像データに表示される。別の例では、方法1100は、方法1300に関して上述した様々な方法の特性のうちの1つ以上を任意選択的に含む。例えば、ステッカー及び仮想アバターなどのビジュアルエフェクトが、メディアユーザインタフェースにおいて画像データに表示される。別の例では、方法1500は、方法1300に関して上述した様々な方法の特性のうちの1つ以上を任意選択的に含む。例えば、ステッカー及び仮想アバターなどのビジュアルエフェクトが、カメラユーザインタフェースに対して画像データに表示される。簡潔にするために、これらの詳細は、以下では繰り返さない。
図14A〜図14Mは、一部の実施形態に係る、カメラアプリケーションにおいてビジュアルエフェクトを表示するための例示的なユーザインタフェースを示す。これらの図におけるユーザインタフェースは、図15A〜図15Bにおける処理を含む、以下で説明する処理を例示するために使用される。
図14Aは、図8A〜図8BQに関して上述したカメラアプリケーションユーザインタフェース815と同様の、カメラアプリケーションユーザインタフェース1405の実施形態を示す。カメラアプリケーションユーザインタフェース1405は、例えば、カメラ(例えば、背面カメラ又はカメラ602)の視野内に位置するオブジェクトを表すストリーミングされた画像データ(例えば、ライブカメラプレビュー、ライブカメラ記録、若しくはライブビデオ通信セッション)、又は、例えば写真若しくはビデオ録画などのメディアアイテム、などの画像データの表現を表示する(画像表示領域820と同様の)画像表示領域1420を含む。図14Aに示す実施形態では、画像表示領域1420は、カメラ602からのライブカメラプレビュー1420−1を示す。
図14Aに示す実施形態は、図8Fに示すものと同様である。画像表示領域1420は、カメラ602の視野内に位置する被写体1422の表現、及び被写体1422の表現の背後に表示される背景1426を示す。本明細書で論じるように、一部の実施形態では、カメラ602を使用してキャプチャされた画像データは、カメラ602の視野内のオブジェクトの深度を決定するために使用され得る深度データを含む。一部の実施形態では、デバイス600は、検出されたこれらのオブジェクトの深度に基づいてオブジェクト(例えば、画像データ内の)を解析し、この判定を使用して、本明細書で論じるビジュアルエフェクトを適用する。例えば、デバイス600は、被写体1422の表現をライブカメラプレビュー1420−1の前景にあるものとして、ユーザの背後に位置するオブジェクトをライブカメラプレビュー1420−1の背景にあるものとして、分類することができる。これらの背景オブジェクトは、ここでは背景1426と総称する。
図14A及び図14Bでは、被写体1422の表記は帽子1423を着用して示され、ひさしが被写体1422の前に突き出ており、被写体1422の表現上にアバターは表示されない。デバイス600は、画像表示領域1420に仮想アバターを表示するように選択できるアバターオプション1410を有するアバターオプションメニュー1408(アバターオプションメニュー828と同様)を表示する。
図14Bでは、デバイス600は、アバターオプション1410−1上の入力1411を検出する。それに応じて、図14Cでは、デバイス600は、選択領域1429にアバターオプション1410−1を表示し、アバターオプション1410−1が選択されていることを示す触覚フィードバック1412(例えば、音声出力を含む又は含まない触知出力)を生成する。
図14Cに示すように、デバイス600はまた、選択されたアバターオプション1410−1に対応する仮想アバター1421を表示するためにライブカメラプレビュー1420−1を更新する。アバター1421は、被写体1422及び背景1426の表現の他の部分の表示を維持しながら、被写体の帽子1423を含む被写体1422の表現の一部を重ね合わせられて表示される。図14A〜図14Kに示すように、デバイス600は、(例えば、被写体の検出された動きに基づいて)被写体1422の表現及びアバター1421に対して判定された空間的関係に応じて、アバター1421を動的に変更して、アバター1421の特定の部分を隠すか又は表示する。これによって、アバター1421の外観が、被写体1422の表現の頭部上に物理的に配置される。
一部の実施形態では、アバター1421の動的変更は、カメラ602の視野内のオブジェクト(被写体(被写体1422の表現に対応する)及び背景(背景1426に対応する)を含む)の初期深度マップをキャプチャするために、1つ以上の深度センサ(例えば、深度カメラセンサ175)を使用して達成される。次いで、初期深度マップが変更され(例えば、初期深度マップのぼかし、フェーディング、又は平滑化遷移のうちの1つ以上を使用して)、アバターの表示部分と非表示部分との間の突然の遷移のインスタンスを減少させる。これにより、特に、アバターの様々な部分が被写体の動きに応じて隠され又は表示されるので、より流動的でアバター1421の動的外観を提供する。
図14Cでは、アバター1421は、アバター頭部の下方に位置して被写体の首部の表現上に表示される影1430を含み、被写体1422の表現上のアバター1421の存在によって投影された影を表す。一部の実施形態では、影1430の位置は、アバターの形状、並びに被写体1422の表現、アバター1421、及び光源(例えば、カメラ602の視野内で検出された光源、又はシミュレーションされた光源)の相対位置に基づいて決定される。
デバイス600は、被写体の肩の表現の前及び背後に垂れ下がった長い髪部を有するアバター1421を表示する。被写体の肩の表現に対する髪部の特定の部分の位置は、被写体1422の表現(及び被写体1422の表現の特定の部分(例えば、被写体の首部及び/又は肩の表現))の深度位置に対するアバター1421(アバター髪部を含む)の空間的位置を示す深度データに基づいて決定される。一部の実施形態では、動的に表示されるアバターの部分(例えば、アバターの一部は、被写体1422の表現との空間的関係に応じて表示又は非表示のいずれかとすることができる)は、被写体1422の表現に隣接する位置においてブレンドエフェクト1432を有するように示される。このブレンドエフェクトは、アバターの部分と被写体1422の表現との間の表示された遷移を滑らかにする。
デバイス600は、被写体の頭部と顔の検出された変化に応じて、アバター1421を変更する。例えば、図14D〜図14Fに示すように、デバイス600は、ウインクして笑顔になりながら、横を向いた被写体の頭部を検出し、これに応じて、アバターの動きに基づいて影1430の位置を調整もしながら、アバター1421を変更してこれらの同じ動きを反映する(例えば、アバター1421は、アバター頭部がウインクと笑顔と共に斜めに向いて示される)。アバター頭部の動きは、被写体1422の表現に対するアバター髪部の空間的位置に影響を及ぼす。その結果、デバイス600は、変更された空間的関係に基づいてアバターのいくつかの部分を動的に変更する。例えば、頭部が回転するにつれて、デバイス600は、被写体の肩の表現上、及び/又は被写体の首部の表現の背後にわたって移動する、参照番号1424−1に示すアバター髪部の一部を表示する(例えば、デバイス600は、アバターの髪部の一部を隠す)。逆に、アバター頭部が回転するにつれて、デバイス600はまた、アバター頭部を回す前に、以前は隠されていた(例えば、被写体の首部又は肩の表現の背後に以前は隠されていた)、参照番号1424−2に示すアバター髪部の部分も表示する(例えば、明らかにする)。このように、デバイス600は、それに応じてアバターの動きに影響を及ぼすユーザーの位置の変化に基づいて、アバターの動的部分(アバター髪部の一部など)を隠すか、又は表示する。
一部の実施形態では、アバター1421の部分は、被写体1422、又は深度マップ内の任意の他のオブジェクトの表現に対するいかなる空間的関係にかかわらず、持続的に表示される。例えば、被写体1422の表現は、被写体1422の表現の前に突き出したひさしを含む帽子1423を着用しているが、アバター頭部1421−3及びアバター顔部1421−4は、被写体の頭部及び帽子1423の表現の前に持続的に表示される。これにより、カメラ602の視野内のオブジェクト、特に、被写体1422の表現上のオブジェクト(又は被写体の表現の一部)が、アバター1421の一部(具体的には、被写体1422の表現上に配置されたアバター1421の外観をレンダリングするように常に表示されるべきアバター1421の部分)を通り抜けて現れることを防止する。一部の実施形態では、アバター1421の持続的に表示される部分には、アバターの顔(1421−4)、頭部(1421−3)、及びアバターの髪部の部分(1421−1)を含むことができる。
別の例として、図14Dは、カメラ602に向かって被写体1422の表現の前に差し出された被写体の手1425の表現を示す。手1425の表現は被写体1422の表現のかなり手前に配置されているが、手1425の表現の空間位置が、アバター髪部分1421−1よりも明らかにカメラ602に近いにもかかわらず、アバター髪部の部分1421−1は、手1425の表示の一部の上に表示される。明瞭にするため、アバター髪部分1421−1が動的(例えば、持続的に表示されていない)であった場合、以下に論じるアバター髪部(例えば、1421−2)の動的部分と同様に、アバター髪部分1421−1は図14Dの手1425の表現の背後に隠され得る。
図14Eは、被写体の肩の表現に近い、被写体1422に向かって戻された手1425の表現を示す。手1425の表現が被写体1422の表現に近づくにつれて、デバイス600は、手1425の表現の空間的位置がアバター髪部の動的部分内に移動すると判定する。その結果、デバイス600は、手1425の表現の前に配置された追加のアバター髪部1421−2を表示する。同様に、図14Fは、被写体1422の表現に一層近づくように配置された手1425の表現、及び手1425の表現の前に表示されたより大量の髪部を示す。図14D〜図14Fでは、アバター髪部と被写体の右肩1422−1の表現との空間的関係は、頭部を回転した後も変化しないので、被写体の右肩1422−1の表現の前に位置する髪部の量は変化しない。
図14Gでは、被写体はニュートラルな表情を有する正面向きの位置に戻り、デバイス600は、それに応じてアバター1421を変更する。
図14Hでは、被写体が見上げると、デバイス600はそれに応じてアバター1421を変更する。デバイス600は、アバター頭部の下側を明らかにするために頭部が上方に傾いたアバター1421を示し、アバター1421は、被写体の首部の表現がアバター1421と交差する位置においてブレンドエフェクト1434を含む。一部の実施形態では、ブレンドエフェクト1434は、ブレンドエフェクト1432と同様である。図14Hでは、影1430もまた、アバターの頭部の傾斜した位置に基づいて調節される(例えば、アバターの顎の下に動かされる)。アバター1421が見上げているとき、被写体の首部の表現の背後に位置するアバター髪部は、被写体の首部の表現の背後に隠れたままであり、被写体の首部の表現を通り抜けて突き出ることはない。
図14I〜図14Jは、本開示の一実施形態に係る、異なるアバターの選択を示す。
図14K〜図14Mでは、デバイス600は、被写体の頭部及び首部の表現上に配置されたユニコーンアバター1435を有する被写体1422の表現を示す。ユニコーンアバター1435は、頭部分1435−1、及びたてがみ1435−3を含む首部分1435−2を含む。被写体の首部の表現が表示されないように、首部分1435−2は、被写体の首部の表現の周りに表示される。ユニコーン首部分1435−2が被写体の首部の表現の基部と出会うところで、ブレンドエフェクト1438が表示される。ブレンドエフェクト1438は、本明細書で論じる他のブレンドエフェクトと同様である。
ユニコーンアバター1435はまた、ユニコーンアバター1435の一部上、及び被写体1432の表現上に表示される影1436(例えば、アバターによって被写体の表現上へ投影される影の表現)を含む。一部の実施形態では、表示された影は、アバターの形状、及びアバターと被写体1432の表現との光源(例えば、カメラ602の視野内で検出された光源、又はシミュレーションされた光源)に対する相対的位置に基づいて決定された形状及び位置を有する。図14K〜図14Mに示すように、影1436はユニコーンアバター1435の動きに応じて移動する。図14Kでは、影1436は、(ユニコーンアバターの顔の細長い形状のために)細長い形状を有し、首部分1435−2上及び被写体1422の表現の胸部上に配置される。図14Lでは、頭部分1435−1が側方に回転すると、追加の首部分1435−2及びたてがみ1435−3を明らかにする。図14Kのユニコーンアバター1435の背面上に位置していた、たてがみ1435−3の部分1435−4は、被写体の肩1422−1及びアバター首部分1435−2の前に位置してここでは示されている。影1436が横に移動すると、頭部分1435−1の下に(例えば、首部分1435−2上に)、次いで被写体1422の表現の肩の上に部分的に配置される。図14Mでは、頭部分1435−1は前方を向いて傾斜しており、影1436は頭部分1435−1の下に(首部分1435−2上に)位置しており、頭部分1435−1の上向き傾斜のためにサイズが縮小されている。加えて、頭部が上方に傾けられると、たてがみ1435−3は首部分1435−2の背面上に位置したままであり、首部分を通り抜けては表示されない。
図15A〜図15Bは、一部の実施形態に係る、電子デバイスを使用してカメラアプリケーションにビジュアルエフェクトを表示するための方法を示すフロー図である。方法1500は、1つ以上のカメラと表示装置とを備えたデバイス(例えば、100、300、500、600)において実行される。方法1500におけるいくつかの動作は、任意選択的に組み合わせられ、いくつかの動作の順序は任意選択的に変更され、いくつかの動作は任意選択的に省略される。
以下に説明するように、方法1500は、カメラアプリケーションにビジュアルエフェクトを表示するための直感的な仕方を提供する。この方法は、カメラアプリケーションにおいて閲覧される画像にビジュアルエフェクトを適用するためのユーザの認知負担を軽減し、それによって、より効率的なヒューマン−マシンインタフェースを作り出す。バッテリ動作コンピューティングデバイスでは、画像にビジュアルエフェクトをユーザーがより迅速かつ効率的に表示できるようにすることで、電力を節約し、バッテリ充電間の時間を増大させる。
電子デバイス(例えば、600)は、表示装置(例えば、601)を介して、1つ以上のカメラ(例えば、602)を介してキャプチャされた画像データ(例えば、1420−1)の表現を表示する(1502)。一部の実施形態では、表現は、被写体(例えば、1422)の表現(例えば、被写体の少なくとも一部の表現)を含み、画像データは被写体の深度データ(例えば、被写体の他の部分及び/又は1つ以上のカメラの視野内の他のオブジェクトに対する、被写体の1つ以上の部分を位置決めする相対的深度についての情報)を含む深度データに対応する(例えば、画像データは、可視光カメラ及び深度カメラによってキャプチャされたデータを含む)。一部の実施形態では、深度データは、深度マップ又は深度マスクの形態である。
一部の実施形態では、電子デバイス(例えば、600)は、1つ以上の深度センサ(例えば、175、602)を含む。一部の実施形態では、仮想アバター(例えば、1421)の表現を表示する前に、電子デバイスは、1つ以上の深度センサを介して、被写体に対する初期深度データ(例えば、1つ以上のカメラ(例えば、602)によってキャプチャされた画像データに対応する初期若しくは未変更深度マップ及び/又は深度マスク、被写体の初期又は未変更の深度マスク)をキャプチャする。電子デバイスは、被写体に対する初期深度データを変更することによって、被写体の深度データを生成する。一部の実施形態では、初期深度データを変更することにより、特に、被写体の姿勢が電子デバイスに関して変化するときに、仮想アバターの第1の部分(例えば、1421−2)の表現を含むこと、又は除外することの間の突然の遷移のインスタンスを減少させることができる。被写体の初期深度データを変更することにより、ユーザの姿勢が変化するときに、仮想アバターの表現の表示中のより滑らかな遷移が可能になり、それによって被写体において検出された変化の(仮想アバターに対する対応する変化によって表される)視覚フィードバックを改善することができる。改善された視覚フィードバックをユーザに提供することにより、デバイスの操作性が改善され、ユーザデバイスインタフェースを(例えば、デバイスを操作/対話するときに適切な入力を提供するようにユーザを支援し、ユーザの誤りを削減することによって)更に効率的にし、加えて、ユーザがデバイスを更に素早くかつ効率的に使用することを可能にすることによってデバイスの電力使用を削減し、バッテリ寿命を改善する。
一部の実施形態では、被写体の初期深度データを変更することは、初期深度奥行きデータをぼかすこと(例えば、深度データの異なるレベル間の遷移をブレンドするために、初期深度データをデフォーカスすること、例えば、初期深度マスクの値(例えば、グレースケール値)をぼかすこと)、初期深度データをフェードアウトすること(例えば、深度値を減少させるために深度データを下向きに変調すること)、及び初期深度データをスムージングすること(例えば、特に初期深度データの異なる深度層間の遷移において初期深度データをブレンドするために数学的関数を適用すること)からなる群から選択された、最初深度データ上に1つ以上の変換を実行することを含む。
電子デバイス(例えば、600)は、表示装置(例えば、601)を介して、被写体の表現(例えば、1422、1423)の少なくとも一部の代わりに(例えば、仮想アバターの少なくとも一部が、被写体の少なくとも一部を部分的又は完全に重ね合わせられて(例えば、不明瞭化されて))表示される(例えば、塞ぐか、又はその上部に表示される)仮想アバター(例えば、1421)の表現(例えば、表わされるときに、構成物の一部又はすべてを含むことができる仮想アバター構成物の視覚表現)を表示する(1504)。被写体の表現の少なくとも一部の上に仮想アバターの視覚表現を表示することにより、仮想アバターが被写体に重ね合わせられたときにどのように見えるかの視覚フィードバックをユーザに提供する。改善された視覚フィードバックをユーザに提供することにより、デバイスの操作性が改善され、ユーザデバイスインタフェースを(例えば、デバイスを操作/対話するときに適切な入力を提供するようにユーザを支援し、ユーザの誤りを削減することによって)更に効率的にし、加えて、ユーザがデバイスを更に素早くかつ効率的に使用することを可能にすることによってデバイスの電力使用を削減し、バッテリ寿命を改善する。一部の実施形態では、仮想アバターは、被写体の深度データに基づいて決定された被写体の表現に対してシミュレーションされた深度に(例えば、仮想アバターが、ユーザインタフェースの深度範囲で、被写体の表現の少し前に表示されるように選択された位置に)配置される。
一部の実施形態では、深度データに基づいて、仮想アバターの第1の部分(例えば、1421−2)(例えば、アバター髪部分)が深度ベース表示基準のセットを満たすとの判定に従って、デバイス(例えば、600)は、仮想アバター(例えば、1421)の表現の一部として、被写体の第1の部分(例えば、被写体の表現の第1の部分)の代わりに表示される、仮想アバター(例えば、1421−2)の第1の部分の表現を含める(1506)(例えば、図14Eに示すように、被写体の手1425の表現の一部にわたってアバター髪部の部分1421−2が表示される)。仮想アバターの第1の部分は、被写体の一部によって不明瞭化されていないので、深度ベース表示基準を満たすと、仮想アバターの第1の部分が表示される。表示される前に仮想アバターの第1の部分が不明瞭化されているかどうかを判定することにより、ユーザに可視化される仮想アバターの一部を表示するだけで、ユーザデバイスインタフェースをより効率的にすることが可能になる。仮想アバターの可視部分の視覚フィードバックを提供することにより、ユーザは、仮想アバターが被写体の上に重ね合わされたときに結果として得られる画像を見ることができる。改善された視覚フィードバックをユーザに提供することにより、デバイスの操作性が改善され、ユーザデバイスインタフェースを(例えば、デバイスを操作/対話するときに適切な入力を提供するようにユーザを支援し、ユーザの誤りを削減することによって)更に効率的にし、加えて、ユーザがデバイスを更に素早くかつ効率的に使用することを可能にすることによってデバイスの電力使用を削減し、バッテリ寿命を改善する。一部の実施形態では、深度ベース表示基準が満たされるように(例えば、深度ベース基準のセットは、仮想アバターの一部が、被写体の一部(例えば、被写体の耳)によって不明瞭化しない位置に表示されるときに満たされる基準を含む)、深度ベースの表示基準は、被写体の深度データが、仮想アバターの第1の部分が被写体の対応する第1の部分(例えば、被写体の表現の対応する第1の部分)(例えば、首部、肩、及び/又は身体)の前にあるシミュレーションされた深度を有することを示すという要求を含む。
一部の実施形態では、深度データに基づいて、仮想アバターの第1の部分(例えば、1421−2)が、被写体の第1の部分(例えば、1425)に対する深度ベース表示基準のセットを満たさないとの判定(例えば、被写体の深度データが、仮想アバターの第1の部分が被写体の対応する第1の部分の背後にあるシミュレーションされた深度を有することを示すため)に従って、デバイス(例えば、600)は、仮想アバター(例えば、1421)の表現から、仮想アバターの第1の部分の表現を除外する(1508)(例えば、髪部が領域1424−1で被写体の肩1422−1の背後に位置するため、髪部が表示されない)(例えば、追加のアバター髪部1421−2は、手1425の背後に位置する配置するため、図14Dでは示されない)。一部の実施形態では、電子デバイスはまた、仮想アバターの第1の部分によって占められていたであろう領域内に、被写体の第1の部分(例えば、被写体の表現の第1の部分)を表示する(例えば、仮想アバターの第1の部分の表現を、その部分が被写体によって不明瞭化されるべきであるため、仮想アバターの表現の一部として含めるのをやめる)。仮想アバターの第1の部分が、被写体の一部によって不明瞭化されているので、深度ベース表示基準を満たさない場合には、仮想アバターの第1の部分は、仮想アバターの表示された表現から除外される。表示される前に仮想アバターの第1の部分が不明瞭化されているかどうかを判定することにより、ユーザに可視化される仮想アバターの一部を除外することによって、ユーザデバイスインタフェースをより効率的にすることが可能になる。仮想アバターの視覚フィードバックを提供することにより、ユーザは、仮想アバターが被写体の上に重ね合わされたときに結果として得られる画像を見ることができる。改善された視覚フィードバックをユーザに提供することにより、デバイスの操作性が改善され、ユーザデバイスインタフェースを(例えば、デバイスを操作/対話するときに適切な入力を提供するようにユーザを支援し、ユーザの誤りを削減することによって)更に効率的にし、加えて、ユーザがデバイスを更に素早くかつ効率的に使用することを可能にすることによってデバイスの電力使用を削減し、バッテリ寿命を改善する。
一部の実施形態では、仮想アバター(例えば、1421)(例えば、アバター頭部)の第1の部分は、被写体の動きに基づいて動く。一部の実施形態では、仮想アバターの第1の部分は、被写体の頭部の動き又は被写体の頭部の表現に基づいて動く。
一部の実施形態では、仮想アバターの表現は、仮想アバターの第2の部分が、被写体の表現の対応する第2の部分の前又は背後にあるシミュレーションされた深度を有することを、深度データが示すか否かにかかわらず、被写体の表現の第2の部分(例えば、1425、1423)の上に表示される仮想アバターの第2の部分(例えば、1421−1、1421−3、1421−4、1435−1)(例えば、アバター頭部(1421−3)の上部)の表現を含む。アバター頭部の上部などの仮想アバターの第2の部分の表現が、永続的に表示される。これにより、たとえ被写体の表現がアバターよりもカメラ(例えば、602)により近くに位置するオブジェクトを含んでいても、仮想アバターの第2の部分を常に表示することができる(例えば、被写体の頭部の表現上に位置する帽子(1423)は、アバター(1421)によって覆われることになる)。仮想アバターの一部を持続的に表示することにより、ユーザが、特定のオブジェクトを無視するためにデバイスの深度設定を調整する必要なしに選択されたアバターを表示できるようにすることによって、デバイスのより多くの制御をユーザに提供することができる。追加表示されたコントロールによりユーザインタフェースを雑然とさせることなくデバイスの追加の制御を提供することにより、デバイスの操作性が改善され、ユーザデバイスインタフェースを(例えば、デバイスを操作/対話するときに適切な入力を提供するようにユーザを支援し、ユーザの誤りを削減することによって)更に効率的にし、加えて、ユーザがデバイスを更に素早くかつ効率的に使用することを可能にすることによってデバイスの電力使用を削減し、バッテリ寿命を改善する。一部の実施形態では、仮想アバターの第2の部分(例えば、アバター頭部)は、被写体の表現の対応する第2の部分の代わりに持続的に表示される。一部の実施形態では、仮想アバターの部分と被写体の表現の部分との空間的関係が、仮想アバターの部分が被写体の部分によって不明瞭化されるべきであることを示し得る場合でも、深度ベース基準に関係なく表示されるアバターの部分は、仮想アバターを通り抜けて突き出る被写体の表現の部分例えば、帽子(1423)、被写体の髪部)を表示するのを避けるため、被写体の上方に持続的に表示される。一部の実施形態では、仮想アバターの第2の部分(例えば、アバター頭部)は、被写体(例えば、1422)の動き(例えば、被写体の頭部の動きに基づいて、又は被写体の頭部の表現の動きに基づいて)に基づいて動く。
一部の実施形態では、仮想アバター(例えば、1421−2)の第1の部分(例えば、深度データに基づいて含まれるか又は除外される部分)は、第1のアバター特徴の第1のサブ部分(例えば、アバター髪部、アバター耳、アバターアクセサリー(例えば、アバターイヤリング)などの仮想アバターの要素)であり、仮想アバターの第2の部分(例えば、1421−1、1421−3、1421−4、1435−1、1435−2)は、(例えば、深度データに基づいて含まれるか又は除外される部分、すなわち、深度データとは独立して含まれる)は、第1のアバター特徴(例えば、アバター髪部)の第2のサブ部分である。一部の実施形態では、第1のサブ部分は、前方に面して(例えば、カメラに面して)、仮想アバターが中立位置(例えば、被写体の顔又は頭部の姿勢に変化が検出されなかったときの仮想アバターの表示位置)にあるときに(例えば、図14Kに示すように)、仮想アバターの背面上に位置する仮想アバター(例えば、1435)の部分(例えば、1435−3)である。一部の実施形態では、第2のサブ部分(例えば、1435−2)は、仮想アバターの前面上に配置される仮想アバターの部分であるか、又は、仮想アバターが前方に面して中立位置にあるときには、仮想アバターの背面上に配置されない。一部の実施形態では、第1のアバター特徴はアバター髪部であり、第2のサブ部分は、仮想アバター頭部(例えば、1421−3)の前面上に表示されるアバター髪部(例えば、1421−1)(例えば、切り下げ前髪)の前面部であり、第1のサブ部分は、被写体の首部、及び/又は肩(例えば、1422−1)などの被写体(例えば、1422)の一部によって少なくとも部分的に不明瞭化されているアバター髪部の後面部(例えば、背面の長髪部)である。
一部の実施形態では、仮想アバター(例えば、1421、1435)は、仮想アバターの第1の部分(例えば、1421−1)を含むアバター髪部特徴(例えば、長いアバター髪部)を含む。電子デバイス(例えば、600)は、アバター髪部特徴の第2の部分のシミュレーションされた深度が、被写体の深度データに基づき、被写体の表現(例えば、首部、肩、及び/又は身体)の第3の部分(例えば、1422−1)の前又は背後にあるか否かに基づいて、アバター髪部特徴(例えば、1421−1)の第1の部分を表示し、アバター髪部特徴(例えば、1421−2)の第2の部分を条件的に表示する(例えば、アバター髪部特徴の持続的部分の表現を表示し、仮想アバターの第1の部分を深度に応じて可変的に含める(又は除外する))ことによって仮想アバターの表現を表示する。アバター髪部特徴の第1の部分及び髪部特徴の第2の部分が、被写体の首部、肩又は身体などの、被写体の表現の第3の部分の前又は背後にあるかどうかを判定する。表示する前に髪部特徴の第2の部分の可視性を判定することにより、ユーザに可視化されるアバター髪部特徴の一部を表示するだけで、ユーザデバイスインタフェースをより効率的にすることが可能になる。仮想アバターの視覚フィードバックを提供することにより、ユーザは、アバター髪部特徴が被写体の表現と共に表示されるときに、結果として得られる画像を見ることができる。改善された視覚フィードバックをユーザに提供することにより、デバイスの操作性が改善され、ユーザデバイスインタフェースを(例えば、デバイスを操作/対話するときに適切な入力を提供するようにユーザを支援し、ユーザの誤りを削減することによって)更に効率的にし、加えて、ユーザがデバイスを更に素早くかつ効率的に使用することを可能にすることによってデバイスの電力使用を削減し、バッテリ寿命を改善する。
一部の実施形態では、仮想アバターは、仮想アバターの第1の部分(例えば、1435−4)を含むアバター首部特徴(例えば、1435−3)(例えば、馬のようなアバター(例えば、ユニコーン又は馬)の首部、例えば、アバターたてがみ)を含む。電子デバイスは、被写体の深度データに基づき、アバター首部特徴の部分のシミュレーションされた深度が、被写体の表現(首部又は肩)の第4の部分(例えば、1422−1)の前又は背後にあるか否かに基づいて、アバター首部特徴の一部を条件的に表示することによって、仮想アバター(例えば、1435)の表現を表示する(例えば、アバター首部特徴の持続的部分の表現を表示し、仮想アバターの第1の部分を深度に応じて可変的に含める(又は除外する))。アバター首部特徴の部分が、被写体の首部などの、被写体の表現の第4の部分の前又は背後にあるかどうかを判断する。表示する前に首部特徴の一部の可視性を判定することにより、ユーザに可視化されるアバター首部特徴の一部を表示するだけで、ユーザデバイスインタフェースをより効率的にすることが可能になる。仮想アバターの視覚フィードバックを提供することにより、ユーザは、アバター髪部特徴が被写体の表現と共に表示されるときに、結果として得られる画像を見ることができる。改善された視覚フィードバックをユーザに提供することにより、デバイスの操作性が改善され、ユーザデバイスインタフェースを(例えば、デバイスを操作/対話するときに適切な入力を提供するようにユーザを支援し、ユーザの誤りを削減することによって)更に効率的にし、加えて、ユーザがデバイスを更に素早くかつ効率的に使用することを可能にすることによってデバイスの電力使用を削減し、バッテリ寿命を改善する。
一部の実施形態では、被写体の表現の部分(例えば、被写体の頭部)が、1つ以上のカメラに(直接的に)面する姿勢を有する(例えば、被写体の頭部がカメラに面して前方に配置される)ときには、仮想アバター(例えば、1421、1435)の第1の部分(例えば、1421−2、1435−3)は、表示されない仮想アバター(例えば、アバター首部の背後)の不明瞭な部分(例えば、1435−4)を含む。ユーザーはアバターの不明確な部分を見ることができ得ないため、アバターの不明瞭な部分は表示されない。表示する前に仮想アバターの第1の部分の可視性を判定することにより、ユーザに可視化されるアバター首部特徴の一部を表示するだけで、ユーザデバイスインタフェースをより効率的にすることが可能になる。仮想アバターの視覚フィードバックを提供することにより、ユーザは、アバター髪部特徴が被写体の表現と共に表示されるときに、結果として得られる画像を見ることができる。改善された視覚フィードバックをユーザに提供することにより、デバイスの操作性が改善され、ユーザデバイスインタフェースを(例えば、デバイスを操作/対話するときに適切な入力を提供するようにユーザを支援し、ユーザの誤りを削減することによって)更に効率的にし、加えて、ユーザがデバイスを更に素早くかつ効率的に使用することを可能にすることによってデバイスの電力使用を削減し、バッテリ寿命を改善する。一部の実施形態では、仮想アバターの不明瞭な部分は、被写体の首部又は頭部の背後に位置するアバターの首部の背後(例えば、1435−2、1435−3)、又は仮想アバターの部分(例えば、アバターの髪部の背後)を含む。一部の実施形態では、これによって、アバターの首部の背後(又はアバター頭部の背面上のアバターの部分、若しくは被写体の首部の背後に位置する部分)が、被写体の頭部が傾け上げられたとき(例えば、見上げる)に、被写体の首部の表現を通り抜けて突き出て表示されることを防止する。
一部の実施形態では、仮想アバター(例えば、1421)の表現を表示することは、仮想アバターの第1の部分(例えば、1421−1)に隣接する(例えば、及び被写体(例えば、1422−1)の表現の少なくとも一部に隣接する)仮想アバターの第3の部分(例えば、1432)の視覚的外観を、アバターの外観及び被写体の表現の外観の両方に基づく外観に変更すること(例えば、ブレンド、ぼかし、フェザリング、又は隠蔽度を徐々に変化させること)を更に含む。一部の実施形態では、アバター髪部の部分が、被写体の表示された表現の肩(1422−1)と交差する、仮想アバターの表現の部分において、アバター髪部(例えば、1432)の一部が、被写体(例えば、1422)の表現とブレンドされる。一部の実施形態では、アバター頭部の下部が被写体の首部の表示された表現(例えば、図14H)と交差する、仮想アバターの表現の部分において、アバター頭部の下部が、被写体の表現とブレンドされる(例えば、1434)。
一部の実施形態では、電子デバイス(例えば、600)は、被写体(例えば、1422)の頭部分の姿勢の変化(例えば、被写体の頭部が側方に向く)を検出する。被写体の頭部分の姿勢の変化を検出する電子デバイスに応じて、電子デバイスは、深度データ及び姿勢の変化に基づいて、仮想アバターの表現(例えば、アバターの髪部)から除外される、仮想アバター(例えば、1421−2)の量(例えば、仮想アバターの表現に含まれるか又は除外されるかのいずれかのサイズ)を変更する(例えば、増大又は減少する)。被写体の頭部分の姿勢の変化に基づいて、表示された仮想アバターを更新することにより、仮想アバターの視覚フィードバックを提供する。改善された視覚フィードバックをユーザに提供することにより、デバイスの操作性が改善され、ユーザデバイスインタフェースを(例えば、デバイスを操作/対話するときに適切な入力を提供するようにユーザを支援し、ユーザの誤りを削減することによって)更に効率的にし、加えて、ユーザがデバイスを更に素早くかつ効率的に使用することを可能にすることによってデバイスの電力使用を削減し、バッテリ寿命を改善する。一部の実施形態では、変更は、アバター頭部(例えば、1421−3)を被写体の頭部の動きに合わせるように側方に回すときに、仮想アバター(例えば、1421)の表現に表示されるアバターの髪部の量を増加又は減少させることを含む。一部の実施形態では、アバターの第1の部分(例えば、アバターの髪部)の表示量は、アバターの一部が、姿勢の変化に応じて被写体の表現の一部によって不明瞭化されるかどうかによって変更される。例えば、アバター頭部の回転に応じて、アバター頭部の一部がユーザ首部又は肩(例えば、1422−1)によって不明瞭化されると、アバターの髪部の一部の表示量(例えば、サイズ)が減少する(例えば、頭部を回転させることで被写体の肩(例えば、1424−1)の背後にアバター髪部が配置されるので、アバター頭部を回転させることにより、被写体の肩の前に位置する以前に表示された髪部がもはや表示されなくなる)。加えて、被写体の肩、首部又は頭部の背後に以前に隠れていた頭部の部分(例えば、1424−2)が、アバター頭部が側方に回転した結果、可視化されると、アバター髪部の部分の表示量が増大する(例えば、アバターの頭部を回転させることによりアバター髪部が被写体の肩の前に配置されるため、ここで被写体の肩の背後に位置する髪部が可視化される)。
一部の実施形態では、デバイス(例えば、600)は、被写体の姿勢の変化を検出する(1510)。被写体(例えば、1422)の姿勢の変化を検出したこと(例えば、ユーザの肩(例えば、1422−1)上の手(例えば、1425)の動きを検出したことこと、例えば、被写体の頭部の回転又は傾きを検出したこと)に応じて、電子デバイス(例えば、600)は、姿勢の変化に基づいて、仮想アバター(例えば、1421)の表示された表現を変更する(1512)。被写体の姿勢の変化に基づいて、表示された仮想アバターを更新することにより、仮想アバターの視覚フィードバックを提供する。改善された視覚フィードバックをユーザに提供することにより、デバイスの操作性が改善され、ユーザデバイスインタフェースを(例えば、デバイスを操作/対話するときに適切な入力を提供するようにユーザを支援し、ユーザの誤りを削減することによって)更に効率的にし、加えて、ユーザがデバイスを更に素早くかつ効率的に使用することを可能にすることによってデバイスの電力使用を削減し、バッテリ寿命を改善する。一部の実施形態では、被写体の姿勢の変化を考慮に入れた深度データに基づいて、仮想アバター(例えば、1421)の第1の部分(例えば、1421−2)が深度ベース表示基準のセットを満たすとの判定に従って、電子デバイスは、仮想アバターの第1の部分(例えば、1421−2)を除外した第1の外観(例えば、図14D)(例えば、仮想アバターの第1の部分が、被写体(例えば、1425)の表現によって不明瞭化されているため、表示されていない外観)(例えば、アバターの髪部の一部が、被写体の手、首部、及び/又は肩の背後に隠れている)から、仮想アバターの第1の部分を含む第2の外観(例えば、図14E)に、仮想アバターの表現の外観を更新する(1514)。一部の実施形態では、被写体の姿勢の変化を考慮に入れた深度データに基づいて、仮想アバターの第1の部分が深度ベース表示基準のセットを満たさないとの判定に従って、電子デバイスは、仮想アバターの第1の部分を含む第3の外観(例えば、図14C)から、仮想アバターの第1の部分を除外した第4の外観(例えば、14D)に、仮想アバターの表現の外観を更新する(1516)(例えば、1424−1は、表示される髪部の量の減少を示す)。一部の実施形態では、仮想アバターの第1の部分は、被写体の動きに基づいて動的に隠される(例えば、被写体の動きに基づいて、アバターの隠れた部分を表示されるようにでき、及びアバターの表示された部分を隠されるようにできる)。
一部の実施形態では、電子デバイス(例えば、600)は、被写体(例えば、1422)の表現の一部の変化(例えば、姿勢の変化(例えば、向き、回転、並進など)、例えば、表情の変化)を検出する。電子デバイスは、被写体の表現の一部において検出された変化に基づいて、仮想アバター(例えば、1421、1435)の外観を変更する(例えば、リアルタイムで、被写体の表現の一部において検出された変化に基づいて、仮想アバターの位置及び/又は表情を変更する)。被写体の表現の変化に基づいて、表示された仮想アバターを更新することにより、仮想アバターの視覚フィードバックを提供する。改善された視覚フィードバックをユーザに提供することにより、デバイスの操作性が改善され、ユーザデバイスインタフェースを(例えば、デバイスを操作/対話するときに適切な入力を提供するようにユーザを支援し、ユーザの誤りを削減することによって)更に効率的にし、加えて、ユーザがデバイスを更に素早くかつ効率的に使用することを可能にすることによってデバイスの電力使用を削減し、バッテリ寿命を改善する。
一部の実施形態では、電子デバイス(例えば、600)は、表示装置(例えば、601)を介して、被写体の表現の少なくとも第5の部分(例えば、被写体の胸、首部、又は肩)上に表示される、仮想アバター(例えば、1421、1435)によって投影された影(例えば、1430、1436)の表現を表示する。このデバイスは、被写体の表現の部分の上に仮想表現によって投影された影の表現を表示して、シミュレーションされた光源で表示された仮想アバターのより現実的な表現を提供する。仮想アバターの視覚フィードバックを提供することにより、ユーザは、結果として得られる画像を見ることができる。改善された視覚フィードバックをユーザに提供することにより、デバイスの操作性が改善され、ユーザデバイスインタフェースを(例えば、デバイスを操作/対話するときに適切な入力を提供するようにユーザを支援し、ユーザの誤りを削減することによって)更に効率的にし、加えて、ユーザがデバイスを更に素早くかつ効率的に使用することを可能にすることによってデバイスの電力使用を削減し、バッテリ寿命を改善する。一部の実施形態では、仮想アバターによって投影された影の表現は、100%未満の不透明度を有する被写体の表現上に重ね合わせられる。一部の実施形態では、表示された仮想アバターとシミュレーションされた光源との相対位置に基づいて判定される被写体の部分は、任意選択的に、カメラの視野内で検出された光源に基づいて判定される。一部の実施形態では、影の表示された表現の1つ以上の特性(例えば、位置、強度、形状など)は、仮想アバターの形状に基づく。一部の実施形態では、表示された影の形状は、異なるアバターが異なる形状の陰を投影して見えるように、仮想アバターの形状に基づいて決定される。
一部の実施形態では、影(例えば、1430、1436)の表示された表現の1つ以上の特性(例えば、位置、強度、形状など)は、1つ以上のカメラ(例えば、602)の視野内の照明条件(例えば、周囲光の検出量、検出された光源など)に基づく。一部の実施形態では、影の位置は、カメラの視野内の光源の位置に基づいて決定される。例えば、光源(例えば、検出された光源、又はモデル化された光源)が、カメラの視野内の被写体(例えば、1422)の表現の背後に配置される場合、影は、被写体の表現に対して光源の位置とは反対の被写体の表現上に配置される。一部の実施形態では、影の強度は、1つ以上のカメラの視野内で検出された照明条件の明るさに基づいて決定される(例えば、より明るい照明条件では影がより強く(明瞭に、より暗くなど)、より暗い照明条件では強さが少なくなる)。
一部の実施形態では、影(例えば、1430、1436)の表示された表現の1つ以上の特性(例えば、位置、強度、形状など)は、深度データに基づく。一部の実施形態では、(例えば、深度マップ又は深度マスクの形式の)深度データを使用して影の位置及び/又は形状が決定されて、1つ以上のカメラの視野内の被写体(例えば、1422)の表現の3次元位置決めに基づく、影エフェクトのより現実的な表現を提供する(例えば、アバターから被写体へのシミュレーションされた距離、及び光源からアバターへのシミュレーションされた距離に基づいて、アバターの影が被写体上に落ちるように見えるように)。
なお、方法1500に関して上述された処理(例えば、図15A〜図15B)の詳細はまた、以下で説明される方法にも、類似の方式で適用可能であることに留意されたい。例えば、方法700は、方法1500に関して上述した様々な方法の特性のうちの1つ以上を任意選択的に含む。例えば、仮想アバターなどのビジュアルエフェクトが、メッセージングアプリケーションユーザインタフェースにおいて画像データに表示される。別の例では、方法900は、方法1500に関して上述した様々な方法の特性のうちの1つ以上を任意選択的に含む。例えば、仮想アバターなどのビジュアルエフェクトが、カメラユーザインタフェースにおいて画像データに表示される。別の例では、方法1100は、方法1500に関して上述した様々な方法の特性のうちの1つ以上を任意選択的に含む。例えば、仮想アバターなどのビジュアルエフェクトが、メディアユーザインタフェースにおいて画像データに表示される。別の例では、方法1300は、方法1500に関して上述した様々な方法の特性のうちの1つ以上を任意選択的に含む。例えば、仮想アバターなどのビジュアルエフェクトが、ライブビデオ通信セッションのためのユーザインタフェースにおいて画像データに表示される。簡潔にするために、これらの詳細は、以下では繰り返さない。
上述の説明は、説明の目的で、特定の実施形態を参照して説明されてきた。しかしながら、上記例示的な議論は、包括的であることを意図しておらず、又は発明を開示された簡易的な形式に限定することを意図していない。上記教示を考慮して多くの修正及び変形が可能である。技術の原理及びそれらの実際の適用を最良に説明するために実施形態が選択及び説明されてきた。それによって、他の当業者は、考えられる特定の使用に適切な様々な修正で、技術及び様々な実施形態を最良に利用することが可能である。
開示及び実施例が添付図面を参照して完全に説明されてきたが、様々な変更及び修正が当業者にとって明らかであることに留意されたい。そのような変更及び修正は、特許請求の範囲によって定義されるように、開示及び実施例の範囲内に含まれるものとして理解されることになる。
上述のように、本技術の一態様は、他のユーザとの共有のために、様々なソースから入手可能なデータを収集及び使用することである。本開示は、場合によっては、この収集されたデータは、特定の人を一意的に特定するか、又はその人に連絡するか、若しくはその人のロケーションを特定するために用いることができる個人情報データを含んでよいことを企図している。このような個人情報データには、人口統計データ、ロケーションベースのデータ、電話番号、電子メールアドレス、ツイッターID、ホームアドレス、ユーザの健康又はフィットネスのレベル(例えば、バイタルサイン測定、服薬情報、運動情報)に関するデータ若しくは記録、誕生日、又は任意の他の識別情報若しくは個人情報を含むことができる。
本開示は、この技術のそのような個人情報データを使用してユーザを利することができることを理解する。例えば、個人情報データを使用して、会話中のユーザをよりよく表現することができる。更に、ユーザを利する個人情報データに関する他の使用もまた、本開示により意図されている。例えば、健康データ及びフィットネスデータは、ユーザの全般的なウェルネスついての洞察を提供するために使用されてもよく、あるいはウェルネスの目標を追求するために技術を使用して個人に積極的なフィードバックとして使用されてもよい。
本開示は、そのような個人情報データの収集、分析、開示、伝送、記憶又は他の使用に応答するエンティティが、確固たるプライバシーポリシー及び/又はプライバシー慣行を遵守することとなることを企画する。具体的には、そのようなエンティティは、個人情報データを秘密として厳重に保守するための業界又は政府の要件を満たすか又は上回るものとして一般に認識されている、プライバシーのポリシー及び慣行を実施し常に使用すべきである。このようなポリシーは、ユーザが容易にアクセスすることができ、データの収集及び/又は使用が変化するにつれて更新されるべきである。ユーザからの個人情報は、そのエンティティの合法的かつ正当な使用のために収集されるべきであり、それらの合法的使用を除いて、共有又は販売されるべきではない。更に、そのような収集/共有は、ユーザに告知して同意を得た後にのみ実施すべきである。加えて、そのようなエンティティは、そのような個人情報データへのアクセスを保護して安全化し、その個人情報データへのアクセスを有する他者が、それらのプライバシーポリシー及び手順を遵守することを保証するための、あらゆる必要な措置を講じるべきである。更には、そのようなエンティティは、広く受け入れられているプライバシーのポリシー及び慣行に対する自身の遵守を証明するために、第三者による評価を自らが受けることができる。加えて、ポリシー及び慣行は、収集かつ/又はアクセスされる特定の種類の個人情報データに適合され、また、管轄権特有の考慮を含む、適用可能な法令及び規格に適合されるべきである。例えば、アメリカ合衆国において、ある健康データの収集又はアクセスは、例えば、Health Insurance Portability and Accountability Act(HIPAA)なのどの、連邦法及び/又は州法によって管理されてもよく、他の国における健康データは、他の規制及び政策の影響下にあってもよく、それに従って対処されるべきである。したがって、異なるプライバシー慣行を、各国の異なる個人データの種類に対して保つべきである。
前述のことがらにもかかわらず、本開示はまた、ユーザが、個人情報データの使用又は個人情報データへのアクセスを選択的に阻止する実施形態も企図している。すなわち、本開示は、そのような個人情報データへのアクセスを防止又は阻止するために、ハードウェア要素及び/又はソフトウェア要素を提供することができると想到する。例えば、アバターを送信する場合、本技術は、ユーザが、サービスの登録中又はその後のいつでも、個人情報データの収集への参加の「オプトイン」又は「オプトアウト」を選択することを可能にするように構成することができる。「オプトイン」及び「オプトアウト」オプションを提供することに加えて、本開示は、個人情報のアクセス又は使用に関する通知を提供することを企画している。例えば、ユーザの個人情報データにアクセスすることとなるアプリのダウンロード時にユーザに通知され、その後、個人情報データがアプリによってアクセスされる直前に再びユーザに注意してもよい。
更に、本開示の意図は、個人情報データを、意図しない又は不正なアクセス又は使用の危険性を最小にする方法で管理かつ取り扱うべきであることである。リスクは、データの収集を制限し、データがもはや必要ではなくなった時点でデータを削除することによって、最小化することができる。加えて、適用可能な場合には、ある健康関連アプリケーションにおいても、データ非特定化は、ユーザのプライバシーを保護するために使用することができる。非特定化は、適切な場合には、特定の識別子(例えば、生年月日など)を除去すること、記憶されたデータの量又は特異性を制御すること(例えば、位置データを住所レベルよりも都市レベルで収集すること)、データがどのように記憶されるかを制御すること(例えば、データをユーザ全体にわたって情報集約すること)及び/又は他の方法によって、容易にすることができる。
したがって、本開示は、1つ以上の様々な開示された実施形態を実施するための個人情報データの使用を広範に網羅しているが、本開示は、それらの様々な実施形態がまた、そのような個人情報データにアクセスすることを必要とせずに実施されることも可能であることも企図している。すなわち、本技術の様々な実施形態は、そのような個人情報データのすべて又は一部分の欠如により、実施不可能となるものではない。