図面の一部またはすべては、例示の目的のための概略図であることが認識されるであろう。図面は、請求項の範囲または意味を限定するために使用されないことを明確に理解して、1つまたは複数の実施形態を例示する目的で提供される。
一般に図面を参照すると、システムおよび方法は、一般に、アニメーション化されたコンテンツアイテムが提示されるコンピューティングデバイスのビューポート内のアニメーション化されたコンテンツアイテムの位置に基づいて、アニメーション化されたコンテンツアイテムを構成するステップに関する。いくつかの実施形態では、アニメーション化されたコンテンツアイテムの因果構成は、アニメーション化されたコンテンツアイテムのプロパティが変化するビューポート内の位置を含む位置依存設定を構成することを含むことができる。ビューポート内の位置は、アニメーション化されたコンテンツアイテムのプロパティが始まる位置、アニメーション化されたコンテンツアイテムが終了する第2の位置、および第3の位置をさらに含むことができる。
多くのシステムでは、アニメーション化されたコンテンツアイテムは、スクロールイベントがコンピューティングデバイスによって受信されたとき、およびアニメーション化されたコンテンツアイテムがビューポートに到達した後に、ビューポート内に提示を開始する。しかしながら、アニメーション化されたコンテンツアイテムがビューポート内に完全に入るまでアニメーション化されたコンテンツアイテムが提示するのを遅らせるなどして、ビューポート内でアニメーション化されたコンテンツアイテムの提示を開始するときなどの、ビューポート内の場所に基づいてアニメーションの態様を制御する機能は、ビューポート内の特定のポイントに到達するか、デバイスのビューポートの中央に直接あるか、ポイントは、アニメーション化されたコンテンツアイテムのプロデューサに、コンピューティングデバイスのビューポート内でアニメーション化されたコンテンツアイテムがどのように提示されるかについての柔軟性の向上を提供する。この因果関係のある手法により、アニメーション化されたコンテンツアイテムのプロデューサは、コンピューティングデバイスのビューポートを通じて提示されたときに、アニメーション化されたコンテンツアイテムの関与と注目度を大幅に改善することが可能になる。したがって、本開示の態様は、アニメーション化されたコンテンツアイテムを作成するための改善された開発ツールを提供することによって、アプリケーション開発における問題に対処する。
したがって、本開示は、アニメーション化されたコンテンツアイテムが提示されるコンピューティングデバイスのビューポート内のアニメーション化されたコンテンツアイテムの位置に基づいて、アニメーション化されたコンテンツアイテムを構成するためのシステムおよび方法を対象とする。すなわち、アニメーション化されたコンテンツアイテムがその位置に到達したときに変更されるプロパティは、アニメーションを開始することである。いくつかの実装形態では、説明されるシステムおよび方法は、アニメーション構成インターフェースを利用することを含む。アニメーション構成インターフェースは、アニメーション化されたコンテンツアイテムのプロパティが変化するビューポート内の位置を選択するために移動可能である、ビューポート内のアニメーション化されたコンテンツアイテムの位置のグラフィック表現を利用することによって、位置依存設定の選択を可能にする。これは、スライディングインターフェースを調整することによって、または対応するパーセンテージ入力フィールドに値を直接入力することによって、実行することができる。続いて、このプロセスは、第2の位置および第3の位置などの、複数の位置に対して実行することができる。本開示では、第3の位置は、一般に、位置と第2の位置とを分割するものとして定義される。アニメーション化されたコンテンツアイテムをビューポート内のアニメーション化されたコンテンツアイテムの位置にマッピングすると、プロデューサにアニメーション化されたコンテンツアイテムの改善された制御が提供され、ヒューマンマシンの対話プロセスが改善される。さらに、前記マッピングは、たとえば、ユーザがアニメーション化されたコンテンツアイテムをホストするウェブページを(自分のペースで)スクロールすると、アニメーション化されたコンテンツアイテム全体が提示されることを保証し、エンドユーザ体験をさらに改善することができる。さらに、前記マッピングにより、エンドユーザはアニメーションが実行される方法を制御できるようになり、ユーザインターフェースが改善される。
いくつかの実装形態では、第2のコンピューティングデバイスは、第1のコンピューティングデバイスからアニメーション化されたコンテンツアイテムの位置依存設定を受信する。続いて、第2のコンピューティングデバイスは、受信した位置依存設定に応じてビューポート内の位置にあるビューポート内に提示されたときにプロパティを変更するようにアニメーション化されたコンテンツアイテムが構成されるように、受信した位置依存設定に基づいてアニメーション化されたコンテンツアイテムのプロパティを構成する。続いて、このプロセスは、第2の位置および第3の位置において実行することができ、その結果、ビューポート内に3つの位置があり、それぞれがアニメーション化されたコンテンツアイテムのプロパティが変化する位置依存設定で構成される。たとえば、アニメーション化されたコンテンツアイテムの提示中に、第2のコンピューティングデバイスは、ビューポートに対するアニメーション化されたコンテンツアイテムの位置を繰り返し決定し得る。たとえば、ユーザがアニメーション化されたコンテンツアイテムが存在するフィードをスクロールすると、ユーザがスクロールするにつれて、ビューポートに対するアニメーション化されたコンテンツアイテムの位置が変化する。位置依存設定に従って、アニメーション化されたコンテンツアイテムがビューポートの指定された位置に到達したと決定された場合、アニメーション化されたコンテンツアイテムのプロパティが変更される。位置依存設定は、個別に、またはアニメーション化されたコンテンツアイテムとともに、第2のコンピュータデバイスに送信され得る。別の例では、アニメーション化されたコンテンツアイテムを表すデータが第2のコンピューティングデバイスに送信され得、データは、第2のコンピューティングデバイスに、位置依存設定に基づいて、アニメーション化されたコンテンツアイテムのプロパティに従って、ビューポート内でアニメーション化されたコンテンツアイテムのアニメーションを表示させるように構成される。すなわち、アニメーション化されたコンテンツアイテムを表すデータは、アニメーション化されたコンテンツアイテムを構成するために使用される1つまたは複数の位置依存設定を備え得る。さらに、各位置依存設定は、同時に第2のコンピューティングデバイスに送信され得る。
いくつかの実装形態では、第3の位置により、アニメーション化されたコンテンツアイテムは、スクロールイベントのいずれかの方向でアニメーション化されたコンテンツアイテムのプロパティを交換することが可能になる。たとえば、第3の位置により、第3の位置にアニメーション化されたコンテンツアイテムが到達するまで、アニメーション化されたコンテンツアイテムが提示を開始しないようにすることができる。別の例では、アニメーション化されたコンテンツアイテムは、アニメーション化されたコンテンツアイテムを時計回りに回転させる回転プロパティを利用し得、第3の位置に到達すると、アニメーション化されたコンテンツアイテムを反時計回りに回転させ始める。本開示のアニメーション化されたコンテンツアイテムのこの構成は、スクロールイベント中にアニメーション化されたコンテンツアイテムの本構成はどちらの方向にも動作できるので(たとえば、コンピューティングデバイスのビューポート内で、提示された記事を上下にスクロールするスクロールイベント)、因果関係のないアニメーション化されたコンテンツアイテムの構成よりも優れている。さらに、いくつかの実装形態では、アニメーション化されたコンテンツアイテムの1つまたは複数のプロパティがある。アニメーション化されたコンテンツアイテムの1つまたは複数のプロパティは、個別に構成することができる。
いくつかの実装形態では、ビューポートに対するアニメーション化されたコンテンツアイテムの1つまたは複数のプロパティの値は、ビューポート監視ライブラリに基づいて補間される。ビューポート監視ライブラリは、コンピューティングデバイスに、ビューポートに対するアニメーション化されたコンテンツアイテムの相対位置に基づいて、アニメーション化されたコンテンツアイテムの複数の座標値を識別させるように構成することができる。たとえば、ビューポート監視ライブラリは、ビューポートまたはアニメーション化されたコンテンツアイテムに関連付けられるスクロールバーのスクロールタブの動き(たとえば、上または下)を示す情報をコンピューティングデバイスから受信するように構成することができる。いくつかの実装形態では、ビューポート監視ライブラリは、たとえば、コンピューティングデバイスから受信したスクロール情報に基づいて、スクロールバーに対する、またはビューポートに対するスクロールタブの位置を監視するように構成することができる。すなわち、アプリケーション内のアニメーション化されたコンテンツアイテムの位置に関する状態情報が取得され、アニメーション化されたコンテンツアイテムの1つまたは複数のプロパティの値を後で決定する際に使用される。
次に図1Aを参照すると、例示的な実装形態による、ネットワーク130を介して情報を提供するためのシステム100の実装形態を示すブロック図が示されている。ネットワーク130は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、公衆交換電話網(PSTN)などの電話ネットワーク、ワイヤレスリンク、イントラネット、インターネット、またはそれらの組合せを含み得る。システム100はまた、コンテンツ管理システム110などの少なくとも1つのデータ処理システムまたは処理回路を含むことができる。コンテンツ管理システムは、ネットワーク130を介して、たとえば、コンテンツ発行者コンピューティングデバイス120および/またはユーザコンピューティングデバイス140と通信することができる。コンテンツ管理システム110はまた、本明細書で説明する1つまたは複数の動作を実行するためにメモリデバイスに記憶された命令を実行するように構成される処理回路を有するコンピューティングデバイスなどの、少なくとも1つの論理デバイスを含むことができる。処理回路は、マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)など、またはそれらの組合せを含み得る。メモリは、電子的、光学的、磁気的、あるいはプロセッサにプログラム命令を提供することができる任意の他のストレージまたは送信デバイスを含み得るが、これらに限定されない。メモリは、フロッピーディスク、コンパクトディスク読取り専用メモリ(CD-ROM)、デジタル多用途ディスク(DVD)、磁気ディスク、メモリチップ、読取り専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、電気的消去可能プログラマブル読取り専用メモリ(EEPROM)、消去可能プログラマブル読取り専用メモリ(EPROM)、フラッシュメモリ、光メディア、またはプロセッサが命令を読み取ることができる任意の他の適切なメモリを含み得る。命令は、これらに限定されないが、ActionScript(登録商標)、C、C++、C#、HTML、Java(登録商標)、JavaScript(登録商標)、Perl(登録商標)、Python(登録商標)、Visual Basic(登録商標)、およびXMLなどの任意の適切なコンピュータプログラミング言語のコードを含み得る。処理回路に加えて、コンテンツ管理システム110は、データを記憶するように構成される1つまたは複数のデータベース(たとえば、116)を含み得る。コンテンツ管理システム110はまた、ネットワーク130を介してデータを受信することと、コンテンツ管理システム110からネットワーク130上の他のシステムおよびデバイスのうちのいずれかにデータを提供することとを行うように構成されるインターフェース(たとえば、アニメーション構成インターフェース112)を含み得る。コンテンツ管理システム110は、1つまたは複数のライブラリ(たとえば、ビューポート監視ライブラリ114)を含むことができる。コンテンツ管理システム110の機能に関する追加の詳細は、図2に関して本明細書で提供される。
コンテンツ発行者コンピューティングデバイス120は、たとえば、デスクトップコンピュータ、ラップトップまたはノートパッドコンピュータ、タブレットまたは電子パッドなどのモバイルデバイス、携帯情報端末、スマートフォン、ビデオゲームデバイス、テレビまたはテレビ補助ボックス(セットトップボックスとしても知られている)、キオスク、ホストされた仮想デスクトップ、あるいはネットワーク130を介して情報を交換できる任意の他のそのようなデバイスを含む、任意の種類のコンピューティングデバイスであり得る。コンテンツ発行者コンピューティングデバイス120は、ネットワーク130を介して、図1の他のシステムおよびデバイスと情報を交換するように構成することができる。コンテンツ発行者コンピューティングデバイス120は、処理回路およびメモリを含む任意の形態のコンピューティングデバイスであり得る。メモリは、処理回路によって実行されたときに、処理回路に本明細書で説明されている動作のうちの1つまたは複数を実行させる機械命令を記憶し得る。メモリはまた、コンピューティングデバイス上の1つまたは複数のリソース、アニメーション化されたコンテンツアイテムなどの提示に影響を与えるためにデータを記憶し得る。プロセッサは、マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)など、またはそれらの組合せを含み得る。メモリは、電子的、光学的、磁気的、あるいはプロセッサにプログラム命令を提供することができる任意の他のストレージまたは送信デバイスを含み得るが、これらに限定されない。メモリは、フロッピーディスク、コンパクトディスク読取り専用メモリ(CD-ROM)、デジタル多用途ディスク(DVD)、磁気ディスク、メモリチップ、読取り専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、電気的消去可能プログラマブル読取り専用メモリ(EEPROM)、消去可能プログラマブル読取り専用メモリ(EPROM)、フラッシュメモリ、光メディア、またはプロセッサが命令を読み取ることができる任意の他の適切なメモリを含み得る。命令は、これらに限定されないが、ActionScript(登録商標)、C、C++、C#、Java(登録商標)、JavaScript(登録商標)、JSON、Perl(登録商標)、HTML、HTML5、XML、Python(登録商標)、およびVisual Basic(登録商標)などの任意の適切なコンピュータプログラミング言語のコードを含み得る。
コンテンツ発行者コンピューティングデバイス120は、ネットワーク130を介して他のコンピューティングシステムおよびデバイスからコンテンツを検索するために、ソフトウェアアプリケーション(たとえば、ウェブブラウザまたは他のアプリケーション)を実行することができる。そのようなアプリケーションは、コンテンツ管理システム110からアニメーション構成インターフェース112を検索するように構成され得る。一実装形態では、コンテンツ発行者コンピューティングデバイス120は、コンテンツ発行者コンピューティングデバイス120のビューポート上にインターフェース(たとえば、アニメーション構成インターフェース112)を提供するウェブブラウザアプリケーションを実行し得る。インターフェースを提供するウェブブラウザアプリケーションは、入力デバイス(たとえば、ポインティングデバイス、キーボード、タッチスクリーン、または別の形態の入力デバイス)から、ウェブアドレスなどのユニフォームリソースロケータ(URL)の入力を受信することによって動作し得る。それに応じて、ウェブブラウザアプリケーションからの命令を実行するコンテンツ発行者コンピューティングデバイス120の1つまたは複数のプロセッサは、URLアドレスによって参照されるネットワーク130に接続された別のデバイス(たとえば、コンテンツ管理システム110)からのデータを要求し得る。次いで、他のデバイスは、ウェブページデータおよび/または他のデータをコンテンツ発行者コンピューティングデバイス120に提供し得、これにより、インターフェースが発行者コンピューティングデバイス120のビューポートによって提示される。したがって、ブラウザウィンドウは、インターフェースとのユーザ対話を容易にするインターフェースを提示する。
ユーザコンピューティングデバイス140は、たとえば、デスクトップコンピュータ、ラップトップまたはノートパッドコンピュータ、タブレットまたは電子パッドなどのモバイルデバイス、携帯情報端末、スマートフォン、ビデオゲームデバイス、テレビまたはテレビ補助ボックス(セットトップボックスとしても知られている)、キオスク、ホストされた仮想デスクトップ、あるいはネットワーク130を介して情報を交換できる任意の他のそのようなデバイスを含む、任意の種類のコンピューティングデバイスであり得る。ユーザコンピューティングデバイス140は、ネットワーク130を介して、図1の他のシステムおよびデバイスと情報を交換するように構成することができる。ユーザコンピューティングデバイス140は、処理回路およびメモリを含む任意の形態のコンピューティングデバイスであり得る。メモリは、処理回路によって実行されたときに、処理回路に本明細書で説明されている動作のうちの1つまたは複数を実行させる機械命令を記憶し得る。メモリはまた、コンピューティングデバイス上の1つまたは複数のリソース、アニメーション化されたコンテンツアイテムなどの提示に影響を与えるためにデータを記憶し得る。プロセッサは、マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)など、またはそれらの組合せを含み得る。メモリは、電子的、光学的、磁気的、あるいはプロセッサにプログラム命令を提供することができる任意の他のストレージまたは送信デバイスを含み得るが、これらに限定されない。メモリは、フロッピーディスク、コンパクトディスク読取り専用メモリ(CD-ROM)、デジタル多用途ディスク(DVD)、磁気ディスク、メモリチップ、読取り専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、電気的消去可能プログラマブル読取り専用メモリ(EEPROM)、消去可能プログラマブル読取り専用メモリ(EPROM)、フラッシュメモリ、光メディア、またはプロセッサが命令を読み取ることができる任意の他の適切なメモリを含み得る。命令は、これらに限定されないが、ActionScript(登録商標)、C、C++、C#、Java(登録商標)、JavaScript(登録商標)、JSON、Perl(登録商標)、HTML、HTML5、XML、Python(登録商標)、およびVisual Basic(登録商標)などの任意の適切なコンピュータプログラミング言語のコードを含み得る。
引き続き図1Aを参照すると、ユーザコンピューティングデバイス140は、ネットワーク130を介して他のシステムおよびデバイスからコンテンツを検索するために、ソフトウェアアプリケーション(たとえば、ウェブブラウザまたは他のアプリケーション)を実行することができる。そのようなアプリケーションは、コンテンツ発行者コンピューティングデバイス120から1つまたは複数の位置依存設定を検索するように構成され得る。一実装形態では、ユーザコンピューティングデバイス140は、アニメーション化されたコンテンツアイテムが1つまたは複数の位置依存設定に従ってビューポートの位置においてユーザコンピューティングデバイス140のビューポート内に提示されたときに、アニメーション化されたコンテンツアイテムの1つまたは複数のプロパティを変更するように構成されるように、1つまたは複数の位置依存設定を提供するウェブブラウザアプリケーションを実行し得る。位置依存設定を提供するウェブブラウザアプリケーションは、入力デバイス(たとえば、ポインティングデバイス、キーボード、タッチスクリーン、または別の形態の入力デバイス)からウェブアドレスなどのユニフォームリソースロケータ(URL)の入力を受信することによって動作し得る。それに応じて、ウェブブラウザアプリケーションからの命令を実行するユーザコンピューティングデバイス140の1つまたは複数のプロセッサは、URLアドレスによって参照されるネットワーク130に接続された別のデバイス(たとえば、コンテンツ発行者コンピューティングデバイス120)からのデータを要求し得る。次いで、他のデバイスは、ウェブページデータおよび/または他のデータをユーザコンピューティングデバイス140に提供し得、これにより、ウェブページがユーザコンピューティングデバイス140のビューポートによって提示される。したがって、ブラウザウィンドウは、1つまたは複数の検索された位置依存設定に従って、アニメーション化されたコンテンツアイテムを提示する。
たとえば、ユーザコンピューティングデバイス140は、オープンシステム相互接続(OSI)層に従ったプロトコルを使用して、たとえば、IPv4またはIPv6などのインターネットプロトコル(IP)などのOSI層3ネットワークプロトコルを介して階層化された、ユーザデータグラムプロトコル(UDP)、伝送制御プロトコル(TCP)、またはストリーム制御伝送プロトコル(SCTP)などのOSI層4トランスポートプロトコルを使用して、ネットワーク130を介して情報を交換するように構成することができる。いくつかの実装形態では、ユーザコンピューティングデバイス140は、データ入力およびデータ提示を容易にするための1つまたは複数のハードウェア要素、たとえば、キーボード、ディスプレイ、タッチスクリーン、マイクロフォン、スピーカ、および/または触覚フィードバックデバイスを含む。いくつかの実装形態では、ユーザコンピューティングデバイス140は、ボタン、たとえば、機能固有のボタン(たとえば、ボリュームアップ、ボリュームダウン、ミュートなどのオーディオデバイスのボリューム制御)および/または機能にとらわれないボタン(たとえば、ソフトウェアレベルで特定の機能を割り当てることができるソフトボタン)を含む。
いくつかの実装形態では、ユーザコンピューティングデバイス140は、ユーザコンピューティングデバイス140上のソフトウェアアプリケーションの実行を管理するオペレーティングシステムをランする。いくつかの実装形態では、オペレーティングシステムに、ユーザコンピューティングデバイス140が提供される。いくつかの実装形態では、ユーザコンピューティングデバイス140は、ハイパーテキスト転送プロトコル(HTTP)および/またはトランスポート層セキュリティ(HTTPS)によって暗号化されたHTTPなどのハイパーテキストアプリケーションプロトコルのスイートに従ってフォーマットされたデータを受信することができるブラウザアプリケーション(たとえば、ウェブブラウザ)を実行する。
いくつかのそのような実装形態では、ブラウザは、1つまたは複数のウェブページの形態でユーザコンピューティングデバイス140に提示されたインターフェースを介して1つまたは複数のシステムおよびデバイスとの対話を容易にする。いくつかの実装形態では、ブラウザアプリケーションは、ユーザコンピューティングデバイス140に提供される。いくつかの実装形態では、ユーザコンピューティングデバイス140は、システムおよびデバイス、たとえば、コンテンツ管理システム110および/またはコンテンツ発行者コンピューティングデバイス120と対話するカスタムアプリケーション、たとえば、ゲームまたは他のアプリケーションを実行する。カスタムアプリケーションとコンテンツ管理システム110との間の対話は、HTTPおよびHTTPSなどの標準プロトコルを使用してもよく、たとえばUDP、TCP、またはSCTPなどのトランスポート層プロトコルを介して実装されるカスタムアプリケーション層プロトコルなどのアプリケーション固有のプロトコルを使用してもよい。いくつかの実装形態では、ユーザコンピューティングデバイス140は、ユーザコンピューティングデバイス140上の追加のアプリケーション(カスタムアプリケーションなど)を取得および/またはインストールするためのツールを含む。いくつかの実装形態では、ユーザコンピューティングデバイス140が通信するシステムおよびデバイスのうちの1つまたは複数は、カスタム命令セット、たとえば、アプリケーションプログラミングインターフェース(API)をサポートし、ユーザコンピューティングデバイス140上で実行されるカスタムアプリケーションは、APIを実装する。アプリケーションは、たとえば、アプリケーションの開発者に提供されるライブラリまたはソフトウェア開発キット(SDK)を使用してAPIを実装することができる。
ユーザコンピューティングデバイス140は、コンテンツ管理システム110および/またはコンテンツ発行者コンピューティングデバイス120などの様々なシステムおよびデバイスと通信する(または、データを交換する)ように構成することができる。いくつかの実装形態では、システムおよびデバイス110、120、および140のうちの1つまたは複数は、たとえば特定用途向け集積回路(ASIC)などの専用論理回路を使用して実装される。いくつかの実装形態では、システムおよびデバイス110、120、および140のうちの1つまたは複数は、少なくとも1つのプロセッサ(または、マイクロプロセッサ)コアを含むシステムオンチップ(SoC)半導体デバイスを使用して実装される。いくつかの実装形態では、システムならびにデバイス110、120、および140のうちの1つまたは複数は、汎用コンピューティングプロセッサを使用して実装される。
次に図1Bを参照すると、例示的な実形態による、コンテンツ管理システム110の実装形態を示すブロック図が示されている。コンテンツ管理システム110は、図10において以下に説明するものなどの、コンピューティングデバイスの1つまたは複数のプロセッサ上でランするか、そうでなければ実行することができる。大まかな概要では、コンテンツ管理システム110は、アニメーション構成インターフェース112、ビューポート監視ライブラリ114、およびデータベース116を含むことができる。アニメーション構成インターフェース112は、アニメーション化されたコンテンツアイテムを構成するためにコンテンツ発行者コンピューティングデバイス120に提供され得る。一般に、アニメーション構成インターフェース112は、アニメーション化されたコンテンツアイテムを構成し、提示のためにユーザコンピューティングデバイス140に提供することができるように、コンテンツ発行者コンピューティングデバイス120においてレンダリングすることができる。たとえば、コンテンツ発行者コンピューティングデバイス120を使用するコンテンツ発行者(ユーザまたは人間のオペレータ)は、1つまたは複数の位置依存設定をアニメーション構成インターフェース112に入力することができる。各位置依存設定は、アニメーション化されたコンテンツアイテムの1つまたは複数のプロパティが変化するビューポート内の位置を含むことができる。各プロパティは、(たとえば、アニメーション構成インターフェース112および/またはデータベース116によって提供される)インベントリから選択されてもよく、コンテンツ発行者によって提供されてもよい。
アニメーション構成インターフェース112は、以下で図3、図4、図5、図6、図7、および図8において説明されるような複数のインターフェースおよびプロパティを含むことができる。アニメーション構成インターフェース112は、コンテンツ発行者コンピューティングデバイス120、コンテンツ管理システム110、またはその両方において実行することができ、コンテンツ発行者コンピューティングデバイス120においてアニメーション構成インターフェース112を提供する。一実装形態では、アニメーション構成インターフェース112は、ウェブブラウザ内に提供することができる。別の実装形態では、コンテンツ生成アプリケーション130は、ウェブブラウザを利用せずにコンテンツ発行者コンピューティングデバイス120においてコンテンツ管理システム110を提供するために実行する。
一実装形態では、コンテンツ発行者コンピューティングデバイス120によって実行されるアプリケーションは、ウェブブラウザに、コンテンツ発行者コンピューティングデバイス120のモニタまたは画面上に表示させることができる。ウェブブラウザは、入力デバイス(たとえば、ポインティングデバイス、キーボード、タッチスクリーン、または別の形態の入力デバイス)からフィールドへのユニフォームリソースロケータ(URL)の入力を受信することによって動作する。それに応じて、ウェブブラウザを実行するコンテンツ発行者コンピューティングデバイス120は、データベース116などからのデータを要求し得る。ウェブブラウザは、ナビゲーション制御(たとえば、戻るボタンおよび進むボタン)などの他の機能を含み得る。次いで、コンテンツ管理システム110は、コンテンツ発行者コンピューティングデバイス120においてアニメーション構成インターフェース112を提供するために、データベース116を実行(または、実行するために、データベース116からコンテンツ発行者コンピューティングデバイス120にデータを提供)し得る。
ビューポート監視ライブラリ114は、コンテンツ発行者コンピューティングデバイス120によって識別されたアニメーション化されたコンテンツアイテムのうちの1つまたは複数を追加する(たとえば、1つまたは複数のプロパティの値を修正する)ために、ユーザコンピューティングデバイス140にアプリケーションのビューポートを監視させるように構成することができる。いくつかの実装形態では、ビューポート監視ライブラリ114は、コンテンツ発行者コンピューティングデバイス120によって識別されたアニメーション化されたコンテンツアイテムのうちの1つまたは複数を追加する(たとえば、1つまたは複数のプロパティの値を修正する)ために、コンテンツ管理システム110にアプリケーションのビューポートを監視させるように構成することができる。ビューポート監視ライブラリ114は、ユーザコンピューティングデバイス140にアニメーション化されたコンテンツアイテムを識別させるように構成することができる。いくつかの実装形態では、ビューポート監視ライブラリ114は、コンテンツ管理システム110にアニメーション化されたコンテンツアイテムを識別させるように構成することができる。いくつかの実装形態では、アニメーション化されたコンテンツアイテムは、コンテンツ発行者コンピューティングデバイス120によって受信された1つまたは複数の位置依存設定に含めることができる。いくつかの実装形態では、アニメーション化されたコンテンツアイテムは、ドキュメントオブジェクトモデル要素(すなわち、DOM)とすることができる。いくつかの実装形態では、アニメーション化されたコンテンツアイテムは、ユーザコンピューティングデバイス140上での提示のためにレンダリングされ得るDOM要素とすることができる。いくつかの実装形態では、アニメーション化されたコンテンツアイテムは、ユーザコンピューティングデバイス140上での提示のためにレンダリングされ得るDOM要素の視覚表示とすることができる。いくつかの実装形態では、アニメーション化されたコンテンツアイテムは、とりわけ、画像アニメーション、ビデオアニメーションなどである。いくつかの実装形態では、ビューポート監視ライブラリ114は、ユーザコンピューティングデバイス140に、アプリケーションに表示された画像アニメーションのオブジェクトをアニメーション化されたコンテンツアイテムとして識別させるように構成することができる。いくつかの実装形態では、ビューポート監視ライブラリ114は、コンテンツ管理システム110に、アプリケーションに表示された画像アニメーションのオブジェクトをアニメーション化されたコンテンツアイテムとして識別させるように構成することができる。いくつかの実装形態では、アニメーション化されたコンテンツアイテムは、アプリケーションのDOMツリーのiフレームなどのコンテナに含めることができる。アニメーション化されたコンテンツアイテムは、コンテナに含まれる記事とすることができる。いくつかの実装形態では、アニメーション化されたコンテンツアイテムは、たとえば、とりわけヘッダ、画像、タイトルなど、記事の任意の部分とすることができる。コンテナは、1つまたは複数のアニメーション化されたコンテンツアイテムを含むことができる。コンテナは、アニメーション化されたコンテンツアイテムがアプリケーションのビューポート内の特定の位置に対応するように、1つまたは複数のアニメーション化されたコンテンツアイテムの1つまたは複数のプロパティを変更するように構成することができる。
ビューポート監視ライブラリ114は、アニメーション化されたコンテンツアイテムがアプリケーションのビューポートを移動するときに、アニメーション化されたコンテンツアイテムに関連付けられる1つまたは複数のプロパティの値を補間することができるように、アプリケーションの基準点に対するアニメーション化されたコンテンツアイテムの位置を監視することができる。いくつかの実装形態では、ビューポート監視ライブラリ114は、アニメーション化されたコンテンツアイテムがアプリケーションのビューポート内に提示される位置依存設定を検出するために、ビューポートに対するアニメーション化されたコンテンツアイテムの位置を監視することができる。
いくつかの実装形態では、ビューポート監視ライブラリ114は、ユーザコンピューティングデバイス140に、アプリケーションの基準点に対するアニメーション化されたコンテンツアイテムの座標を決定させるように構成することができる。いくつかの実装形態では、ビューポート監視ライブラリ114は、コンテンツ管理システム110に、アプリケーションの基準点に対するアニメーション化されたコンテンツアイテムの座標を決定させるように構成することができる。いくつかの実装形態では、アプリケーションの基準点は、アプリケーションの上隅を含むことができる。いくつかの実装形態では、ビューポート監視ライブラリ114は、アプリケーションが垂直方向または水平方向に拡張するように構成されていると決定することができる。アプリケーションが垂直方向に拡張するように構成されている実装形態では、ビューポート監視ライブラリ114は、ユーザコンピューティングデバイス140に、垂直軸に沿ったアニメーション化されたコンテンツアイテムの座標値、つまり、y軸座標を決定させることができる。アプリケーションが水平方向に拡張するように構成されている実装形態では、ビューポート監視ライブラリ114は、ユーザコンピューティングデバイス140に、水平軸に沿ったアニメーション化されたコンテンツアイテムの座標値、つまり、x軸座標を決定させることができる。座標値は、アプリケーションの基準点からのピクセル数、距離、またはスケーリングされた距離とすることができる。いくつかの実装形態では、座標値は、アニメーション化されたコンテンツアイテムのポイント、たとえば、アニメーション化されたコンテンツアイテムの上端に対応するパーセンテージとすることができる。
いくつかの実装形態では、アニメーション化されたコンテンツアイテムのポイントは、アニメーション化されたコンテンツアイテムの任意のポイントであるか、またはアニメーション化されたコンテンツアイテムに対応することができる。いくつかの実装形態では、ビューポート監視ライブラリ114は、ユーザコンピューティングデバイス140に、アニメーション化されたコンテンツアイテム上のあらかじめ定義されたポイントまたは部分(たとえば、アニメーション化されたコンテンツアイテムの中心、アニメーション化されたコンテンツアイテムの端のうちの1つ、アニメーション化されたコンテンツアイテムの隅のうちの1つ)を識別させるように構成することができる。いくつかの実装形態では、ビューポート監視ライブラリ114は、ユーザコンピューティングデバイス140に、アプリケーションをスクロールすることができる軸に対応するアニメーション化されたコンテンツアイテムの座標を識別させることができる。たとえば、アプリケーションが垂直方向にスクロールされるように構成されている場合、ビューポート監視ライブラリ114は、ユーザコンピューティングデバイス140に、アニメーション化されたコンテンツアイテムの上端または下端の一方を識別させることができる。アプリケーションが水平方向にスクロールされるように構成されている場合、ビューポート監視ライブラリ114は、ユーザコンピューティングデバイス140に、アニメーション化されたコンテンツアイテムの左端または右端の一方を識別させることができる。
ビューポート監視ライブラリ114は、ユーザコンピューティングデバイス140に、ビューポートに対するアプリケーションの相対位置に基づいて、アプリケーションの座標値を監視させるように構成することができる。たとえば、ビューポート監視ライブラリ114は、ユーザコンピューティングデバイス140に、ビューポートの第1の端(たとえば、上端)と整列するアプリケーションの第1の部分を識別させることができる。ユーザがアプリケーションをスクロールする(たとえば、スクロールイベントを受信する)と、アプリケーションの様々な部分がビューポートの第1の端と整列する。いくつかの実装形態では、ビューポート監視ライブラリ114は、アプリケーションのどの部分がビューポートの上端と整列し、アプリケーションのどの部分がビューポートの下端と整列するかをユーザコンピューティングデバイス140に定期的に監視させるように構成することができる。いくつかの実装形態では、ビューポート監視ライブラリ114は、ユーザコンピューティングデバイス140に、既存のJavaScript関数を使用して、ビューポートの上端と整列するアプリケーションの第1の部分の第2の座標値、およびビューポートの下端と整列するアプリケーションの第2の部分の第3の座標値を識別させるように構成することができる。たとえば、ビューポート監視ライブラリ114は、特定のスクロール位置においてビューポートの上端に整列されたアプリケーションの第2の部分に対応する第2の座標値を識別するために、関数iframeElement.getBoundClientRect().topを使用することができる。関数iframeElement.getBoundClientRect().topは、ビューポートの上端に整列されたアプリケーションの第1の部分を識別するy座標を返す。さらに、ビューポート監視ライブラリ114は、特定のスクロール位置においてビューポートの下端に整列されたアプリケーションの第2の部分に対応する第3の座標値を識別するために、関数iframeElement.getBoundClientRect().bottomを使用することができる。いくつかの実装形態では、第3の座標値は、ビューポートの高さを第2の座標値に加算することによって決定することができる。
いくつかの実装形態では、ビューポート監視ライブラリ114は、ユーザコンピューティングデバイス140に、ビューポートのコンテンツ発行者コンピューティングデバイス120によって構成された第1の位置依存設定と整列するアプリケーションの第1の部分の第2の座標値と、アニメーション構成インターフェース112を使用してコンテンツ発行者コンピューティングデバイス120によって構成された第2の位置依存設定と整列するアプリケーションの第2の部分の第3の座標値とを識別させるように構成することができる。1つまたは複数の位置依存設定は、アニメーション化されたコンテンツアイテムの1つまたは複数のプロパティが変化するビューポート内の位置を含む。たとえば、ビューポート監視ライブラリ114は、特定のスクロール位置においてビューポート内の第1の位置依存設定と整列するアプリケーションの第2の部分に対応する第2の座標値を識別するために、1つまたは複数の位置依存設定を使用することができる。さらに、ビューポート監視ライブラリ114は、特定のスクロール位置においてビューポート内の第2の位置依存設定と整列するアプリケーションの第2の部分に対応する第2の座標値を識別するために、1つまたは複数の位置依存設定を使用することができる。
いくつかの実装形態では、ビューポート監視ライブラリ114は、ユーザコンピューティングデバイス140に、アニメーション構成インターフェース112を使用してビューポートのコンテンツ発行者コンピューティングデバイス120によって構成された第3の位置依存設定と整列するアプリケーションの第3の部分の第4の座標値を識別させるように構成することができる。
アニメーション化されたコンテンツアイテムが、ユーザコンピューティングデバイス140上で実行されるアプリケーションのビューポート内で可視であることを決定するために、ビューポート監視ライブラリ114は、第1の座標値が第2の座標値と第3の座標値との間にあるかどうかを決定することができる。ビューポート監視ライブラリ114は、アニメーション化されたコンテンツアイテムの座標値をビューポートの座標値と比較するように構成することができる。ビューポート監視ライブラリ114は、アニメーション化されたコンテンツアイテムの座標値が、第2と第3の座標値の間、第2と第4の値の間、および/または第3と第4の値の間の数であると決定された場合、ビューポート内でアニメーション化されたコンテンツアイテムが可視であると決定することができる。
いくつかの実装形態では、ビューポート監視ライブラリ114は、ユーザコンピューティングデバイス140に、アプリケーション内でスクロール活動が発生したかどうかを検出させるように構成することができる。たとえば、ビューポート監視ライブラリ114は、ビューポートまたはアプリケーションに関連付けられるスクロールバーのスクロールタブの動き(たとえば、上または下)を示す情報をアプリケーションから受信するように構成することができる。いくつかの実装形態では、ビューポート監視ライブラリ114は、たとえば、アプリケーションから受信したスクロール情報に基づいて、スクロールバーに対する、またはビューポートに対するスクロールタブの位置を監視するように構成することができる。いくつかの実装形態では、ビューポート監視ライブラリ114は、とりわけ「OnScroll」を含むがこれに限定されないスクロール活動を検出する1人または複数のリスナを採用することによって、スクロール活動が発生したかどうかを決定することができる。いくつかの実装形態では、ビューポート監視ライブラリ114は、アプリケーションのビューポートを監視するように構成することができる。
コンテンツ管理システム110は、少なくとも1つのデータベース116を含むことができる。データベース116は、アニメーション構成インターフェース112、アニメーション化された、または他のコンテンツアイテム、あるいは追加情報などの情報を記憶するためのデータ構造を含むことができる。データベース116は、コンテンツ管理システム110の一部であってもよく、コンテンツ管理システム110、コンテンツ発行者コンピューティングデバイス120、またはユーザコンピューティングデバイス140がネットワーク130を介してアクセスすることができる別個のコンポーネントであってもよい。データベース116は、システム100全体に分散させることもできる。たとえば、データベース116は、コンテンツ発行者コンピューティングデバイス120、ユーザコンピューティングデバイス140、コンテンツ管理システム110、または3つすべてに関連付けられる複数のデータベースを含むことができる。一実装形態では、コンテンツ管理システム110は、データベース116を含む。
次に図2を参照すると、例示的な実装形態による、アニメーション化されたコンテンツアイテムを構成する方法200のフローチャートが示されている。コンテンツ管理システム110、コンテンツ発行者コンピューティングデバイス120、および/またはユーザコンピューティングデバイス140は、方法200を実行するように構成することができる。さらに、本明細書に記載される任意のコンピューティングデバイスは、方法200を実行するように構成することができる。
方法200の大まかな概要では、段階210において、位置依存設定のコンテンツ発行者コンピューティングデバイス120を介した選択を可能にするために、アニメーション構成インターフェース112がコンテンツ発行者コンピューティングデバイス120に提供される。位置依存設定は、アニメーション化されたコンテンツアイテムのプロパティが変化するビューポート内の位置を含む。段階220において、ユーザコンピューティングデバイス140は、コンテンツ発行者コンピューティングデバイス120から、位置依存設定を受信する。段階230において、ユーザコンピューティングデバイス140は、アニメーション化されたコンテンツアイテムが、段階220において受信された位置依存設定に従って、ビューポートの位置においてビューポート内に提示されたときにプロパティを変更するように構成されるように、位置依存設定に基づいてアニメーション化されたコンテンツアイテムのプロパティを構成する。
方法200をより詳細に参照すると、段階210において、アニメーション構成インターフェース112がコンテンツ発行者コンピューティングデバイス120に提供される。たとえば、コンテンツ発行者コンピューティングデバイス120は、アニメーション構成インターフェース112についてコンテンツ管理システム110に要求を行うことができる。いくつかの実装形態では、要求に応答して、コンテンツ管理システム110は、ネットワーク130を介してコンテンツ発行者コンピューティングデバイス120にアニメーション構成インターフェースを提供する。いくつかの実装形態では、アニメーション構成インターフェース112は、コンテンツ発行者コンピューティングデバイス120を介して、アニメーション化されたコンテンツアイテムのプロパティが変化するビューポート内の位置を含む位置依存設定の選択を可能にするように構成される。いくつかの実装形態では、アニメーション構成インターフェース112は、コンテンツ発行者コンピューティングデバイス120を介して、アニメーション化されたコンテンツアイテムの1つまたは複数のプロパティが変化するビューポート内の複数の位置を含む複数の位置依存設定の選択を可能にするように構成される。アニメーション構成インターフェース112の実装形態、および1つまたは複数の位置依存設定を構成することに関連する追加の詳細は、本明細書で図3、図4、図5、図6、図7、および図8に関して提供される。
段階220において、ユーザコンピューティングデバイス140は、位置依存設定を受信する。いくつかの実装形態では、ユーザコンピューティングデバイス140は、ウェブブラウザのアドレス部分にURLを入力するユーザを介して、アニメーション化されたコンテンツアイテムの位置依存設定を要求し得る。いくつかの実装形態では、図1Aのコンテンツ発行者コンピューティングデバイス120などのコンテンツ発行者コンピューティングデバイス120が、アニメーション化されたコンテンツアイテムの提示に影響を与えるために、ネットワーク130を介してユーザコンピューティングデバイス140に位置依存設定を送信する。いくつかの実装形態では、図1Bのコンテンツ管理システム110などのコンテンツ管理システム110が、アニメーション化されたコンテンツアイテムの提示に影響を与えるために、ネットワーク130を介してユーザコンピューティングデバイス140に位置依存設定を送信する。いくつかの実装形態では、ユーザコンピューティングデバイス140は、ウェブブラウザのアドレス部分にURLを入力するユーザを介して、アニメーション化されたコンテンツアイテムの複数の位置依存設定を要求し得る。
いくつかの実装形態では、ユーザコンピューティングデバイス140は、1つまたは複数の位置依存設定を受信する。各位置依存設定は、アニメーション化されたコンテンツアイテムのプロパティが変化するビューポート内の位置を含み得る。いくつかの実装形態では、各位置依存設定は、アニメーション化されたコンテンツアイテムの1つまたは複数のプロパティが変化するビューポート内の位置に関連付けられる1つまたは複数のプロパティを含み得る。
段階230において、ユーザコンピューティングデバイス140は、アニメーション化されたコンテンツアイテムが、段階220において受信された位置依存設定に従って、ビューポートの位置においてビューポート内に提示されたときにプロパティを変更するように構成されるように、位置依存設定に基づいてアニメーション化されたコンテンツアイテムのプロパティを構成する。いくつかの実装形態では、ユーザコンピューティングデバイス140は、アニメーション化されたコンテンツアイテムに関連付けられる1つまたは複数の位置依存設定を構成しなければならない場合がある。いくつかの実装形態では、ユーザコンピューティングデバイス140は、1つまたは複数の位置依存設定に関連付けられる1つまたは複数のプロパティを構成しなければならない場合がある。
たとえば、ユーザコンピューティングデバイス140は、受信された位置依存設定に基づいて、ビューポート内の第1の位置を構成し得る。続いて、ユーザコンピューティングデバイス140は、ビューポート内に3つの位置があり、それぞれがアニメーション化されたコンテンツアイテムのうちの1つまたは複数のプロパティが変化する位置依存設定で構成されるように、第2の位置および第3の位置を構成し得る。別の例では、ユーザコンピューティングデバイス140は、受信された位置依存設定に基づいて、ビューポート内の第4の位置を構成し得る。
以下に説明する図3は、アニメーション構成インターフェース300の例示的な実装形態を示している。一般に、アニメーション構成インターフェース300は、1つまたは複数のアニメーション化されたコンテンツアイテムに関連付けられる1つまたは複数の位置依存設定を構成するために、コンテンツ発行者コンピューティングデバイス120においてレンダリングすることができる。アニメーション構成インターフェース300は、複数のインターフェースおよびオブジェクトを含むことができる。たとえば、コンテンツ管理システム110は、少なくとも1つのアセットパネル310、少なくとも1つのアニメーションタイミングパネル320、少なくとも1つの層パネル330、少なくとも1つのプロパティパネル340、少なくとも1つのメインパネル350、および少なくとも1つのフッタパネル370をアニメーション構成インターフェース300に提供するために実行することができる。いくつかの実装形態では、各パネルは複数のサブパネルを含み得る。いくつかの実装形態では、アニメーション構成インターフェース300内の各パネルは、入力デバイス(たとえば、ポインティングデバイス、キーボード、タッチスクリーン、または別の形態の入力デバイス)から入力を受信することによって動作する。それに応じて、アニメーション構成インターフェース300を実行するコンテンツ発行者コンピューティングデバイス120は、ネットワーク130を介してコンテンツ管理システム110に対応するデータベース(たとえば、データベース116)からアニメーション化されたコンテンツアイテム360などのデータを要求し得る。いくつかの実装形態では、アニメーション構成インターフェース300を実行するコンテンツ発行者コンピューティングデバイス120は、コンテンツ発行者コンピューティングデバイス120のデータストレージユニットからアニメーション化されたコンテンツアイテム360などのデータを要求し得る。
アニメーション構成インターフェース300は、コンテンツ発行者コンピューティングデバイス300においてアニメーション構成インターフェース112を提供するために、コンテンツ発行者コンピューティングデバイス120、コンテンツ管理システム110、またはその両方において実行することができる。いくつかの実装形態では、アニメーション構成インターフェース300は、ウェブブラウザ内に提供することができる。いくつかの実装形態では、コンテンツ管理システム110は、ウェブブラウザを利用せずにコンテンツ発行者コンピューティングデバイス120においてアニメーション構成インターフェース300を提供するために実行する。一実装形態では、コンテンツ発行者コンピューティングデバイス120によって実行されるアプリケーションは、アニメーション構成インターフェース300に、コンテンツ発行者コンピューティングデバイス120のモニタまたは画面上に提示させることができる。
いくつかの実装形態では、コンテンツ発行者コンピューティングデバイス120を使用するコンテンツプロデューサ(ユーザまたは人間のオペレータ)は、アニメーション構成インターフェース300内のアニメーションタイミングパネル320に1つまたは複数の位置依存設定を入力することができる。各位置依存設定は、アニメーション化されたコンテンツアイテム360の1つまたは複数のプロパティが変化するビューポート内の位置を含むことができる。各位置依存設定は、1つまたは複数のプロパティ(たとえば、変換、不透明度、サイズ)を含むことができる。いくつかの実装形態では、各プロパティは、たとえば、各プロパティが任意の他のプロパティから独立するように、たとえば、第1の位置依存設定は、アニメーション化されたコンテンツアイテム360の不透明度を70%に設定し、アニメーション化されたコンテンツアイテム360のサイズを幅30%および高さ20%に設定し、ならびにアニメーション化されたコンテンツアイテム360の変換を60ピクセルのx軸と0ピクセルのy軸に設定するように構成され得るように、アニメーションタイミングパネル320および/またはプロパティパネル340を使用して個別に構成することができる。第2の位置依存設定は、スクロールイベント中(たとえば、ユーザコンピューティングデバイス140のビューポート内の提示された記事を上または下にスクロール)、アニメーション化されたコンテンツアイテム360が、ビューポート内の位置に応じて1つまたは複数のプロパティを変更するように、アニメーション化されたコンテンツアイテム360の不透明度を50%に設定し、アニメーション化されたコンテンツアイテム360のサイズを幅50%および高さ50%に設定し、アニメーション化されたコンテンツアイテム360の変換を120ピクセルのx軸と60ピクセルのy軸に設定するように構成され得る。いくつかの実装形態では、アニメーション構成インターフェース300は、スクロールイベントの方向に基づいて、1つまたは複数の位置依存設定を構成することができる。アニメーション構成インターフェース300のアニメーションタイミングパネル320に関連する追加の詳細は、図4、図5、図6、図7、および図8に関して本明細書で提供される。
いくつかの実装形態では、アニメーション構成インターフェース300は、アセットプレビューサブパネル312、アセットフィルタサブパネル314、アセットライブラリサブパネル316、およびアセット追加ボタン318を含むことができるアセットパネル310を含むことができる。アセットプレビューサブパネル312は、アニメーション化されたコンテンツアイテム360のオブジェクト(たとえば、画像、ビデオ、テキスト、オーディオ、シーン、オブジェクトの別の形態)のプレビューを提示することができる。いくつかの実装形態では、アセットプレビューサブパネル312は、アセットライブラリサブパネル316からのクリック、クリックおよびドラッグ、ならびに/またはドロップの受信に応答してオブジェクトのプレビューを提示する。アセットパネル310内のアセットライブラリサブパネル316は、オブジェクトのリストを提示する。いくつかの実装形態では、たとえば、アセット追加ボタン318をクリックすることによって、たとえば、コンテンツ発行者コンピューティングデバイス120上のファイルフォルダからオブジェクトにクリックおよびドラッグ、ドロップ、挿入、またはアタッチする動作によって、オブジェクトをオブジェクトのリストに追加することができる。いくつかの実装形態では、アセットライブラリサブパネル316は、アセットフィルタサブパネル314を使用してフィルタリングすることができる。たとえば、コンテンツ発行者コンピューティングデバイス120を使用するコンテンツプロデューサ(ユーザまたは人間のオペレータ)は、アニメーション構成インターフェース300内のアセットフィルタサブパネル314入力フィールドに1つまたは複数の文字を入力し、それに応答して、入力された文字と一致しない、アセットライブラリサブパネル316に表示される任意のオブジェクトをフィルタアウト(すなわち、表示を停止)することができる。
いくつかの実装形態では、アニメーション構成インターフェース300は、層選択サブパネル332、層削除ボタン334、および層追加ボタン336を含むことができる層パネル330を含むことができる。層選択サブパネル332は、層のリストを提示する。いくつかの実装形態では、1つまたは複数の層をアニメーション化されたコンテンツアイテム360に追加するために層選択サブパネル332を使用することができる。いくつかの実装形態では、たとえば、層追加ボタン336をクリックすることによって、1つまたは複数の層にクリックおよびドラッグ、ドロップ、挿入、またはアタッチする動作によって、1つまたは複数の層を層のリストに追加することができる。いくつかの実装形態では、たとえば、層削除ボタン334をクリックすることによって、1つまたは複数の層にクリックおよびドラッグ、ドロップ、挿入、または除去する動作によって、1つまたは複数の層を層のリストから削除することができる。
いくつかの実装形態では、アニメーション構成インターフェース300は、URLサブパネル342を含むことができるプロパティパネル340と、プロパティ構成サブパネル344とを含むことができる。いくつかの実装形態では、URLサブパネル342は、URLサブパネル342入力フィールドを通じて入力を受信することができる。たとえば、コンテンツ発行者コンピューティングデバイス120を使用するコンテンツプロデューサ(ユーザまたは人間のオペレータ)は、1つまたは複数の文字をアニメーション構成インターフェース300内のURLサブパネル342入力フィールドに入力することができる。入力された文字は、アプリケーションを企業のウェブサイトサイトにリダイレクトするために、たとえば、ユーザコンピューティングデバイス140のビューポート内で選択されたときに、アニメーション化されたコンテンツアイテム360(たとえば、URL)に埋め込むことができる。
いくつかの実装形態では、アニメーション化されたコンテンツアイテム360の1つまたは複数のプロパティは、プロパティ構成サブパネル344を使用して構成することができる。いくつかの実装形態では、各プロパティは、各プロパティが任意の他のプロパティから独立するように、プロパティパネル340および/またはアニメーションタイミングパネル320を使用して個別に設定することができる。いくつかの実装形態では、1つまたは複数のプロパティは、1つまたは複数の位置依存設定に基づくことができる。いくつかの実装形態では、各位置依存設定は、アニメーション化されたコンテンツアイテム360の1つまたは複数のプロパティが変化するビューポート内の位置を含むことができる。
たとえば、コンテンツ発行者コンピューティングデバイス120を使用するコンテンツプロデューサ(ユーザまたは人間のオペレータ)は、プロパティ構成サブパネル344を使用して、アニメーション化されたコンテンツアイテム360がビューポート中を第1の(すなわち、開始)位置と第3の(すなわち、中央の)位置との間で移動するときに、第1の位置依存設定がアニメーション化されたコンテンツアイテム360を時計回りに回転させるように構成することができる。コンテンツ発行者コンピューティングデバイス120を使用するコンテンツプロデューサ(ユーザまたは人間のオペレータ)はまた、プロパティ構成サブパネル344を使用して、アニメーション化されたコンテンツアイテム360がビューポート中を第3の位置と第2の位置との間で移動するときに、第2の(すなわち、終了)位置依存設定がアニメーション化されたコンテンツアイテム360を反時計回りに回転させるように構成することができる。
別の例では、コンテンツ発行者コンピューティングデバイス120を使用するコンテンツプロデューサ(ユーザまたは人間のオペレータ)は、プロパティ構成サブパネル344を使用して、アニメーション化されたコンテンツアイテム360が第1の位置と第3の(たとえば、中央の)位置との間でビューポートの下部から上部(たとえば、ビューポート下部422からビューポート上部420)へとビューポートの中を移動するときに、第1の(たとえば、開始)位置依存設定がアニメーション化されたコンテンツアイテム360を時計回りに回転させるように構成することができる。対照的に、コンテンツ発行者コンピューティングデバイス120は、プロパティ構成サブパネル344を使用して、アニメーション化されたコンテンツアイテム360がビューポートの中を第1の位置と第3の位置との間でビューポートの上部から下部(たとえば、ビューポート上部420からビューポート下部422)に移動するときに、第1の位置依存設定がアニメーション化されたコンテンツアイテム360を反時計回りに回転させるように構成することができる。さらに、コンテンツ発行者コンピューティングデバイス120を使用するコンテンツプロデューサ(ユーザまたは人間のオペレータ)はまた、プロパティ構成サブパネル344を使用して、アニメーション化されたコンテンツアイテム360が第3の位置と第2の位置との間でビューポートの下部から上部(たとえば、ビューポート下部422からビューポート上部420)へとビューポートの中を移動するときに、第2の(たとえば、終了)位置依存設定がアニメーション化されたコンテンツアイテム360を反時計回りに回転させるように構成することができる。対照的に、コンテンツ発行者コンピューティングデバイス120は、プロパティ構成サブパネル344を使用して、アニメーション化されたコンテンツアイテム360がビューポートの中を第3の位置と第2の位置との間でビューポートの上部から下部(たとえば、ビューポート上部420からビューポート下部422)に移動するときに、第2の位置依存設定がアニメーション化されたコンテンツアイテム360を時計回りに回転させるように構成することができる。
いくつかの実装形態では、アニメーション構成インターフェース300は、開始ボタン352、中央ボタン354、終了ボタン356、プレビューボタン358、アニメーション化されたコンテンツアイテム360、およびズームウィジェット362を含むことができるメインパネル350を含むことができる。パネルの上部にある各ボタン(開始ボタン352、中央ボタン354、終了ボタン356、プレビューボタン358)は、選択されると、アニメーション化されたコンテンツアイテム360の提示を修正する。ズームウィジェット362は、選択されると、アニメーション構成インターフェースに、アニメーション化されたコンテンツアイテム360の拡大提示またはアニメーション化されたコンテンツアイテム360の非拡大提示をメインパネル350内に生成させることができる。
いくつかの実装形態では、開始ボタン352は、選択されると、アニメーション設定インターフェース300に、アセットパネル310を使用してオブジェクトを追加または削除することができ、層パネル330を使用して層を追加または削除することができ、プロパティパネル340を使用してプロパティ(たとえば、変換、不透明度、サイズ)を追加または削除することができる、アニメーション化されたコンテンツアイテム360に関連付けられる第1の(たとえば、開始)位置依存設定の提示を生成させることができる。提示は、第1の位置依存設定に関連付けられる1つまたは複数のプロパティ(たとえば、変換、不透明度、サイズ)を提示するアニメーション化されたシーケンスにおいて始動することができる。
いくつかの実装形態では、中央ボタン354は、選択されると、アニメーション設定インターフェース300に、アセットパネル310を使用してオブジェクトパネルを追加または削除することができ、層パネル330を使用して層を追加または削除することができ、プロパティパネル340を使用してプロパティ(たとえば、変換、不透明度、サイズ)を追加または削除することができ、アニメーション化されたコンテンツアイテム360に関連付けられる第3の(たとえば、中央)位置依存設定の提示を生成させることができる。提示は、第3の位置依存設定に関連付けられる1つまたは複数のプロパティ(たとえば、変換、不透明度、サイズ)を提示するアニメーション化されたシーケンスにおいて始動することができる。
いくつかの実装形態では、終了ボタン356は、選択されると、アニメーション設定インターフェース300に、アセットパネル310を使用してオブジェクトを追加または削除することができ、層パネル330を使用して層を追加または削除することができ、プロパティパネル340を使用してプロパティ(たとえば、変換、不透明度、サイズ)を追加または削除することができ、アニメーション化されたコンテンツアイテム360に関連付けられる第2(たとえば、終了)の位置依存設定の提示を生成させることができる。提示は、第2の位置依存設定に関連付けられる1つまたは複数のプロパティ(たとえば、変換、不透明度、サイズ)を提示するアニメーション化されたシーケンスにおいて始動することができる。
いくつかの実装形態では、プレビューボタン358は、選択されると、アニメーション構成インターフェース300に、アニメーション化されたコンテンツアイテム360のプレビューを生成させることができ、オブジェクトは、位置に依存する設定の1つまたは複数のプロパティ(たとえば、変換、不透明度、サイズ)を示す位置(たとえば、第1の位置と第3の位置、第3の位置と第2の位置)のアニメーション化されたシーケンスにおいて始動する。いくつかの実装形態では、アニメーション化されたコンテンツアイテムが存在する位置は、アニメーション化されたコンテンツアイテムスロット(たとえば、アニメーション化されたコンテンツアイテムスロット426)と呼ばれ得る。
いくつかの実装形態では、アニメーション構成インターフェース300は、保存ボタン372およびキャンセルボタン374を含むことができるフッタパネル370を含むことができる。保存ボタン372は、選択されると、アニメーション構成インターフェース300に、アニメーション化されたコンテンツアイテム360の構成を、データベース116、またはコンテンツ発行者コンピューティングデバイス120のデータストレージユニットに保存させることができる。キャンセルボタン374は、選択されると、アニメーション構成インターフェース300に、以前に保存されていなかったアニメーション化されたコンテンツアイテム360のすべての構成を削除させることができる。いくつかの実装形態では、アニメーション構成インターフェース300は、全画面モードを構成するためのパネルなどの他の機能を含み得る。全画面モードは、アニメーション化されたコンテンツアイテム360がビューポート全体に提示されるように構成することができる。全画面モードは、終了オプションと、全画面におけるアニメーション化されたコンテンツアイテムのトリガアニメーション、カメラズーム(紹介用)などの追加のオーバーレイ機能を含むことができ、ユーザコンピューティングデバイス140のユーザがオブジェクトの色を変更すること、またはズームインして、アニメーション化されたコンテンツアイテムの機能をより詳細に表示することを可能にする。
いくつかの実装形態では、アニメーション構成インターフェース300は、支払い設定を構成するためのパネルなどの他の機能を含み得る。支払い設定は、寄付、商品購入、または任意の他のタイプの金融取引などの金融取引のオプションを含むことができる。いくつかの実装形態では、アニメーション構成インターフェース300は、マップおよび/またはジオロケーション機能のためのパネルなどの他の機能を含み得る。いくつかの実装形態では、アニメーション構成インターフェースは、アドイン用のパネルなどの他の機能を含み得る。たとえば、アニメーション化されたコンテンツアイテム360と対話するユーザが、通話を実行するためにアニメーション化されたコンテンツアイテム360を選択することを可能にする電話番号アドインである。いくつかの実装形態では、アニメーション構成インターフェース300は、ビデオ編集用のパネルなどの他の機能を含み得る。いくつかの実装形態では、アニメーション構成インターフェース300は、位置タイミング設定用のパネルなどの他の機能を含み得る。位置タイミング設定は、時間に基づいてアニメーション化されたコンテンツアイテムの開始を遅らせることを含むことができる。
以下に説明する図4は、アニメーション構成インターフェース300内のアニメーションタイミングパネル400の例示的な実装形態を示している。アニメーションタイミングパネル400は、コンピューティングデバイス(たとえば、ユーザコンピューティングデバイス140)のビューポート418によってアニメーション化されたコンテンツアイテム360が提示され得る、スマートフォンまたはタブレットなどのユーザコンピューティングデバイステンプレート402を示す。いくつかの実装形態では、ビューポート418は、向きによって定義され、向きは、ビューポート上部420(たとえば、100%)、ビューポート下部422(たとえば、0%)、および中央ガイドライン(たとえば、50%)を含む。いくつかの実装形態では、アニメーション化されたコンテンツアイテム360は、アニメーション化されたコンテンツアイテムスロット426内に提示される。アニメーションタイミングパネル400は、1つまたは複数の構成可能な設定を含むことができる。いくつかの実装形態では、アニメーションタイミングパネル400は、グラフィックフレーム406、スライダインターフェース424、スライダ設定点408、スライダ設定点410、グラフィックフレーム412、入力フィールド414、および入力フィールド416を含むことができる。いくつかの実装形態では、各フレーム、スライダ、フィールドの組合せ(たとえば、グラフィックフレーム406、スライダ設定点408、入力フィールド414、またはグラフィックフレーム412、スライダ設定点410、入力フィールド416)は、同様の機能を実行することができ、入力フィールドが変更されるたびに、スライダとグラフィックフレームも入力フィールドに従って変更されるように、交換可能に構成することができる。
一般に、各グラフィックフレームは、アニメーション化されたコンテンツアイテム360の1つまたは複数のプロパティが変化するビューポート418内の新しい位置を設定するために移動可能なビューポート418内のアニメーション化されたコンテンツアイテム360の位置のグラフィック表現であり得る。たとえば、グラフィックフレームの境界内のどこかをクリックして、グラフィックフレームをビューポート418内の別の位置にドラッグすることによって。各スライダ設定点は、アニメーション化されたコンテンツアイテム360の1つまたは複数のプロパティが変化するライダインターフェース424に新しい位置を設定するために移動可能なビューポート418内のアニメーション化されたコンテンツアイテム360の位置のスライダ設定点表示であり得る。たとえば、スライダ設定点のうちの1つをクリックして、スライダ設定点をスライダインターフェース424上の異なる位置にドラッグすることによって。各入力フィールドは、アニメーション化されたコンテンツアイテム360の1つまたは複数のプロパティが変化する新しい位置を設定するための入力を受信することができるビューポート418内のアニメーション化されたコンテンツアイテム360の位置の数値表現とすることができる。たとえば、入力フィールドに別の数値を入力することによって。
いくつかの実装形態では、各グラフィックフレームは、たとえば、コンテンツ発行者コンピューティングデバイス120の入力デバイス(たとえば、ポインティングデバイス、キーボード、タッチスクリーン、または別の形態の入力デバイス)を使用して選択および移動することができる。いくつかの実装形態では、グラフィックフレーム412は、アニメーション化されたコンテンツアイテム360の1つまたは複数のアニメーションが提示を開始する第1の位置を選択するために移動可能なビューポート418内のアニメーション化されたコンテンツアイテム360の第1の位置のグラフィック表現であり得る。いくつかの実装形態では、グラフィックフレーム406は、アニメーション化されたコンテンツアイテム360の1つまたは複数のアニメーションが提示を終了する第2の位置を選択するために移動可能なビューポート418内のアニメーション化されたコンテンツアイテム360の第2の位置のグラフィック表現であり得る。
たとえば、コンテンツ発行者コンピューティングデバイス120を使用するコンテンツプロデューサ(ユーザまたは人間のオペレータ)は、スクロールイベントがコンピューティングデバイス(たとえば、ユーザコンピューティングデバイス140)によって受信され、アニメーション化されたコンテンツアイテム360がビューポート418内の第1の位置に到達した後に、アニメーション化されたコンテンツアイテム360が提示を開始するようにグラフィックフレーム412を構成することができる。図示されるように、グラフィックフレーム412は、アニメーション化されたコンテンツアイテム360がビューポート下部422に到達した後、アニメーション化されたコンテンツアイテム360の提示を開始するように構成される。
いくつかの実装形態では、各スライダ設定点は、たとえば、コンテンツ発行者コンピューティングデバイス120の入力デバイス(たとえば、ポインティングデバイス、キーボード、タッチスクリーン、または別の形態の入力デバイス)を使用して、スライダインターフェース424に沿って選択および移動することができる。いくつかの実装形態では、スライダ設定点408は、アニメーション化されたコンテンツアイテム360の1つまたは複数のアニメーションが提示を開始する第1の位置を選択するためにスライダインターフェース424に沿って移動可能なビューポート418内のアニメーション化されたコンテンツアイテム360の第1の位置のスライダ設定点表現であり得る。いくつかの実装形態では、スライダ設定点410は、アニメーション化されたコンテンツアイテム360の1つまたは複数のアニメーションが提示を終了する第2の位置を選択するためにスライダインターフェース424に沿って移動可能なビューポート418内のアニメーション化されたコンテンツアイテム360の第2の位置のスライダ設定点表現であり得る。
たとえば、コンテンツ発行者コンピューティングデバイス120を使用するコンテンツプロデューサ(ユーザまたは人間のオペレータ)は、スクロールイベントがコンピューティングデバイス(たとえば、ユーザコンピューティングデバイス140)によって受信され、アニメーション化されたコンテンツアイテム360がビューポート418内の第1の位置に到達した後に、アニメーション化されたコンテンツアイテム360が提示を開始するようにスライダ設定点410を構成することができる。図示されるように、スライダ設定点410は、アニメーション化されたコンテンツアイテム360がビューポート下部422に到達した後、アニメーション化されたコンテンツアイテム360の提示を開始するように構成される。
いくつかの実装形態では、各入力フィールドは、たとえば、コンテンツ発行者コンピューティングデバイス120の入力デバイス(たとえば、ポインティングデバイス、キーボード、タッチスクリーン、または別の形態の入力デバイス)を使用して、入力を受信することができる。いくつかの実装形態では、入力フィールド416は、アニメーション化されたコンテンツアイテム360の1つまたは複数のアニメーションが提示を開始する第1の位置を設定するために入力を受信することができるビューポート418内のアニメーション化されたコンテンツアイテム360の第1の位置の数値表現であり得る。いくつかの実装形態では、入力フィールド414は、アニメーション化されたコンテンツアイテム360の1つまたは複数のアニメーションが提示を終了する第2の位置を設定するために入力を受信することができるビューポート418内のアニメーション化されたコンテンツアイテム360の第2の位置の数値表現であり得る。
たとえば、コンテンツ発行者コンピューティングデバイス120を使用するコンテンツプロデューサ(ユーザまたは人間のオペレータ)は、スクロールイベントがコンピューティングデバイス(たとえば、ユーザコンピューティングデバイス140)によって受信され、アニメーション化されたコンテンツアイテム360がビューポート418内の第1の位置に到達した後に、アニメーション化されたコンテンツアイテム360が提示を開始するように数値特性を入力フィールド416に入力することができる。図示されるように、入力フィールド416は、アニメーション化されたコンテンツアイテム360がビューポート下部422に到達した後、アニメーション化されたコンテンツアイテム360の提示を開始するように構成される。
いくつかの実装形態では、1つまたは複数の位置依存プロパティは、ユーザデバイス(たとえば、ユーザコンピューティングデバイス140)上で構成される。いくつかの実装形態では、アニメーション化されたコンテンツアイテム360は、ビューポート418内の任意の位置において提示を開始し、ビューポート418内の任意の位置(たとえば、アニメーション化されたコンテンツアイテムスロット426によって決定される)において提示を終了することができる。たとえば、位置依存プロパティは、ユーザデバイスに、ビューポート上部420とビューポート下部422(たとえば、アニメーション化されたコンテンツアイテムスロット426)の間にある位置依存プロパティのうちの1つまたは複数の位置を設定させることができる。たとえば、位置依存プロパティは、5%、10%、15%、80%、85%、90%、またはビューポート上部420とビューポート下部422との間の任意の他のパーセンテージ値とすることができる。図5における例を考えると、たとえば、位置依存プロパティは、ビューポート518内の15%と85%との間の位置に配置される。したがって、アニメーション化されたコンテンツアイテムスロットは15%と85%との間であり、したがって、アニメーション化されたコンテンツアイテム360がアニメーション化されたコンテンツアイテムスロット526の間にのみ存在することを示している。したがって、コンテンツ発行者コンピューティングデバイス120を使用してコンテンツプロデューサ(ユーザまたは人間のオペレータ)によって構成される位置依存プロパティはまた、アニメーション化されたコンテンツアイテムスロット426を確立するためにビューポート418内の位置の任意の組合せを構成することができ、その結果、アニメーション化されたコンテンツアイテム360がそれらの位置の間に存在する。
いくつかの実装形態では、図7における例を考えると、たとえば、位置依存プロパティは15%と85%との間に配置され、50%位置において位置依存プロパティも含まれる。いくつかの実装形態では、アニメーション化されたコンテンツアイテム360に追加の柔軟性および機能性を提供するので、コンテンツプロデューサが複数の位置依存プロパティをアニメーション化されたコンテンツアイテム360に追加することは有利である。たとえば、ビューポート718内のスクロールイベントが15%~50%の間の位置依存設定であるため、アニメーション化されたコンテンツアイテム360の複数のテキストは、指定された方向(たとえば、水平または垂直)にスライドすることができる。あるいは、ビューポート718内のスクロールイベントが50%~85%の間であるため、動画コンテンツアイテム360の複数のテキストは、異なる指定された方向にスライドすることができる。いくつかの実装形態では、ビューポート監視ライブラリ114は、アニメーション化されたコンテンツアイテム360が15%~50%の間、または50%~85%の間にあるときに、アニメーション化されたコンテンツアイテム360の1つまたは複数のプロパティの値を補間することができるように、ユーザデバイス(たとえば、ユーザコンピューティングデバイス140)に提供することができる。
以下に説明する図5は、アニメーション構成インターフェース300内のアニメーションタイミングパネル500の例示的な実装形態を示している。アニメーションタイミングパネル500は、図4を参照して詳細に説明される、類似の特徴および機能に似ている。図示されるように、グラフィックフレーム512、スライダ設定点510、または入力フィールド516のいずれかを使用して、第1の位置が15%に設定され、その結果、アニメーション化されたコンテンツアイテム360は、スクロールイベントがコンピューティングデバイス(たとえば、ユーザコンピューティングデバイス140)によって受信されたとき、およびアニメーション化されたコンテンツアイテム360がビューポート418内の第1の位置(たとえば、15%)に到達した後(たとえば、アニメーション化されたコンテンツアイテムスロット526内に)提示を開始する。また図示されるように、グラフィックフレーム506、スライダ設定点510、または入力フィールド514のいずれかを使用して、第2の位置が85%に設定され、その結果、アニメーション化されたコンテンツアイテム360は、スクロールイベントがコンピューティングデバイス(たとえば、ユーザコンピューティングデバイス140)によって受信されたとき、およびアニメーション化されたコンテンツアイテム360がビューポート418内の第2の位置(たとえば、85%)に到達した後(たとえば、アニメーション化されたコンテンツアイテムスロット526内ではない)提示を終了する。
以下に説明する図6は、アニメーション構成インターフェース300内のアニメーションタイミングパネル600の例示的な実装形態を示している。アニメーションタイミングパネル600は、図4を参照して詳細に説明される、類似の特徴および機能に似ている。しかしながら、いくつかの実装形態では、アニメーション構成インターフェース300は、グラフィックフレーム628、スライダ設定点630、および入力フィールド632を含み得る。たとえば、アニメーション化されたコンテンツアイテム360の1つまたは複数のプロパティが変化するビューポート418内の2つの位置を有する代わりに、アニメーションタイミングパネルは、コンテンツ発行者コンピューティングデバイス120を使用するコンテンツプロデューサ(ユーザまたは人間のオペレータ)が、グラフィックフレーム628、スライダ設定点630、または入力フィールド632を使用して、アニメーション化されたコンテンツアイテムスロット626内の第3の位置を構成することを可能にすることができる。いくつかの実装形態では、アニメーションタイミングパネルは、コンテンツ発行者コンピューティングデバイス120を使用するコンテンツプロデューサ(ユーザまたは人間のオペレータ)が、異なるグラフィックフレーム、異なるスライダ設定点、または異なる入力フィールドを使用して、アニメーション化されたコンテンツアイテムスロット626内の第4の位置を構成することを可能にすることができる。図6に示される例では、第3の位置のスライダ設定点630は、グラフィックフレーム628がビューポート618の中央部分に対応するように、ビューポート618の中央点604に設定される。
以下に説明する図7は、アニメーション構成インターフェース300内のアニメーションタイミングパネル700の例示的な実装形態を示している。アニメーションタイミングパネル700は、図4および図6を参照して詳細に説明される、類似の特徴および機能に似ている。図示されるように、グラフィックフレーム712、スライダ設定点710、または入力フィールド716のいずれかを使用して、第1の位置が15%に設定され、その結果、アニメーション化されたコンテンツアイテム360は、スクロールイベントがコンピューティングデバイス(たとえば、ユーザコンピューティングデバイス140)によって受信されたとき、およびアニメーション化されたコンテンツアイテム360がビューポート718内の第1の位置(たとえば、15%)に到達した後(すなわち、アニメーション化されたコンテンツアイテムスロット726内に)提示を開始する。また図示されるように、グラフィックフレーム706、スライダ設定点708、または入力フィールド714のいずれかを使用して、第2の位置が85%に設定され、その結果、アニメーション化されたコンテンツアイテム360は、スクロールイベントがコンピューティングデバイス(たとえば、ユーザコンピューティングデバイス140)によって受信されたとき、およびアニメーション化されたコンテンツアイテム360がビューポート718内の第2の位置(たとえば、85%)に到達した後(たとえば、アニメーション化されたコンテンツアイテムスロット726内ではない)提示を終了する。さらに、図示されるように、グラフィックフレーム728、スライダ設定点730、または入力フィールド732のいずれかを使用して、第3の位置が50%に設定され、その結果、アニメーション化されたコンテンツアイテム360のうちの1つまたは複数のプロパティは、アニメーション化されたコンテンツアイテム360が、ビューポート718内の第3の位置(たとえば、50%)に到達した後に変化し得る。
以下に説明する図8は、アニメーション構成インターフェース300内のアニメーションタイミングパネル800の例示的な構成を示している。アニメーションタイミングパネル800は、図4および図6を参照して詳細に説明される、類似の特徴および機能に似ている。さらに、アニメーションタイミングパネル800は、ビューポート内の位置に基づいて、アニメーション化されたコンテンツアイテム360の1つまたは複数のプロパティを構成するための機能を含むことができる。いくつかの実装形態では、アニメーションタイミングパネル800は、第1~第3の位置プロパティ836、第1~第3の位置プロパティ840、第2~第3の位置プロパティ834、および第2~第3の位置プロパティ838を含むことができる。各第1~第3の位置プロパティは、アニメーション化されたコンテンツアイテム360が第1の位置(たとえば、スライダ設定点810)と第3の位置(たとえば、スライダ設定点830)との間のスロット826内に提示されるときに、アニメーション化されたコンテンツアイテム360が、構成されたプロパティに従って提示されるように構成される。たとえば、図示されるように、アニメーション化されたコンテンツアイテム360は、不透明度プロパティが不透明度100%、塗りつぶし不透明度100%、ならびにサイズプロパティが幅50%および高さ75%で、第1の位置と第3の位置との間に提示する。アニメーション化されたコンテンツアイテム360全体の不透明度を制御する不透明度と、塗りつぶし色(たとえば、アニメーション化されたコンテンツアイテム360の背景色)の不透明度のみを制御する塗りつぶし不透明度。対照的に、各第3~第2の位置プロパティは、アニメーション化されたコンテンツアイテム360が第3の位置(たとえば、スライダ設定点830)と第2の位置(たとえば、スライダ設定点808)との間のアニメーション化されたコンテンツアイテムスロット826内に提示されるときに、アニメーション化されたコンテンツアイテム360が、構成されたプロパティに従って提示されるように構成される。たとえば、図示されるように、アニメーション化されたコンテンツアイテム360は、不透明度プロパティが不透明度50%、塗りつぶし不透明度75%、第1~第3の位置プロパティのサイズプロパティをミラーリングする(たとえば、まったく同じ)サイズプロパティで、第3の位置と第2の位置との間に提示する。
次に図9を参照すると、例示的な実装形態による、例示的なコンピューティングシステム901のブロック図が示されている。コンピューティングシステム901は、例示的な実装形態に従って、本明細書で説明されるコンピュータ化されたコンポーネントを実装する際の使用に適している。大まかな概要では、コンピューティングシステム901は、たとえばキャッシュメモリ903に保持されている命令などの命令に従ってアクションを実行するためのプロセッサ902を含む。図示される例示的なコンピューティングシステム901は、バス905を介して、メインメモリ906、ネットワークインターフェースコントローラ907、入力/出力(I/O)インターフェース908、およびデータストレージ909と通信する1つまたは複数のプロセッサ902およびコプロセッサ904を含む。いくつかの実装形態では、コンピューティングシステム901は、追加のインターフェースまたは他のコンポーネント916を含み得る。
いくつかの実装形態では、プロセッサ902は、メインメモリ906から(または、データストレージ909から)命令をキャッシュメモリ903にロードするように構成することができる。さらに、プロセッサ902は、キャッシュメモリ903からオンボードレジスタに命令をロードし、オンボードレジスタから命令を実行するように構成することができる。いくつかの実装形態では、命令は、図示されていないが、読取り専用メモリ(ROM)またはファームウェアメモリチップ(たとえば、基本入出力システム(BIOS)の命令を記憶するなど)に符号化され、そこから読み取られる。
図示されるように、プロセッサ902は、キャッシュメモリ903に直接接続される。しかしながら、いくつかの実装形態では、キャッシュメモリ903は、プロセッサ902に統合され、および/またはプロセッサ902と同じ回路またはチップ上に実装される。いくつかの実装形態は、それぞれがプロセッサ902からさらに削除された、キャッシュメモリ903の複数の層またはレベルを含む。いくつかの実装形態は、追加の専用命令(たとえば、数学コプロセッサ、浮動小数点コプロセッサ、および/またはグラフィックスコプロセッサ)のサポートでプロセッサ902を増強する複数のプロセッサ902および/またはコプロセッサ904を含む。図示されるように、コプロセッサ904は、プロセッサ902に密接に接続される。しかしながら、いくつかの実装形態では、コプロセッサ904は、プロセッサ902に統合されるか、またはプロセッサ902と同じ回路またはチップ上に実装される。いくつかの実装形態では、コプロセッサ904は、たとえば、バス905に接続されたプロセッサ902からさらに削除される。
ネットワークインターフェースコントローラ907は、ネットワークデバイス914への接続のために(たとえば、ネットワーク130へのアクセスのために)1つまたは複数のネットワークインターフェース917を制御するように構成することができる。I/Oインターフェース908は、これらに限定されないが、キーボード、タッチスクリーン、マイクロフォン、モーションセンサ、ビデオディスプレイ、スピーカ、触覚フィードバックデバイス、プリンタなどの、様々なI/Oデバイス918へのデータの送受信を容易にするように構成することができる。いくつかの実装形態では、I/Oデバイス918のうちの1つまたは複数は、コンピューティングシステム901に統合される。いくつかの実装形態では、I/Oデバイス918のうちの1つまたは複数は、コンピューティングシステム901の外部にあり、そこから分離可能である。いくつかの実装形態では、コンピューティングシステム901は、たとえば特定用途向け集積回路(ASIC)などの専用論理回路、または、プロセッサ902および1つまたは複数の追加コンポーネント、たとえばキャッシュメモリ903、ネットワークインターフェースコントローラ907およびネットワークインターフェース917、ならびに1つまたは複数のI/Oインターフェース908を含むシステムオンチップ(SoC)半導体デバイスを使用して実装される。
プロセッサ902は、たとえば、キャッシュメモリ903、メインメモリ906、データストレージ909、または図示されていない他のメモリからフェッチされた命令などの命令を処理する任意の論理回路であり得る。プロセッサ902は、いくつかのデータおよび命令レジスタを含む。いくつかの実装形態では、スタートアップ(ブート)時に、プロセッサ902は、より多くの命令をロードするための命令を含む初期命令をBIOSからレジスタにロードし、レジスタから命令を実行するように構成することができる。いくつかの実装形態では、BIOS命令は、プロセッサ902にオペレーティングシステム(OS)をロードさせ、それにより、プロセッサ902に1つまたは複数のプログラムをロードおよび実行させる。
プロセッサ902は、特定の目的のための専用命令セットを備えた補助処理ユニットである1つまたは複数の補助コプロセッサ904によって増強され得る。いくつかの実装形態では、認識されない命令に直面したプロセッサ902は、たとえば、特殊なバスを介して命令をコプロセッサ904に渡し、コプロセッサ904も命令を認識しない場合にのみ、認識されない命令フォルトを生成する。プロセッサ902およびコプロセッサ904はそれぞれ、シングルコアまたはマルチコアプロセッサであり得る。
コンピューティングシステム901は、複数の別個のプロセッサ902および/または複数の別個のコプロセッサ904を含み得る。たとえば、いくつかの実装形態では、マルチコア中央処理装置(CPU)などの汎用プロセッサ902は、数学コプロセッサ、浮動小数点コプロセッサ、またはグラフィックス処理ユニット(GPU)などの1つまたは複数の専用コプロセッサ904で増強され得る。たとえば、数学コプロセッサ904は、高精度または複雑な計算でプロセッサ902を支援することができる。いくつかの実装形態では、プロセッサ902およびコプロセッサ904は、1つまたは複数のチップ上の回路として実装される。コンピューティングシステム901は、本明細書で説明するように動作することができる任意のプロセッサ902、あるいはプロセッサ902および/またはコプロセッサ904のセットに基づくことができる。
キャッシュメモリ903は、一般に、高速アクセス時間のためにプロセッサ902に近接して配置されたコンピュータメモリの形態である。いくつかの実装形態では、キャッシュメモリ903は、プロセッサ902の一部であるか、それと同じチップ上にあるメモリ回路である。いくつかの実装形態では、複数のレベルのキャッシュメモリ903、たとえば、L2およびL3キャッシュ層がある。いくつかの実装形態では、複数のプロセッサ902、および/またはプロセッサ902の複数のコアは、同じキャッシュメモリ903へのアクセスを共有する。
メインメモリ906は、コンピュータ可読データを記憶するために適した任意のデバイスであり得る。メインメモリ906は、指定されたアドレスへの直接アクセスをサポートするデバイスであり、たとえば、メインメモリ906はランダムアクセスメモリ(RAM)である。いくつかの実装形態では、メインメモリ906は、ダイナミックランダムアクセスメモリ(DRAM)、同期ダイナミックランダムアクセスメモリ(SDRAM)、ダブルデータレートSDRAM(DDR SDRAM)、スタティックランダムアクセスメモリ(SRAM)、T-RAM、Z-RAMなどの揮発性半導体メモリデバイスである。コンピューティングシステム901は、メインメモリ906として機能する任意の数のデバイスを有し得る。
データストレージ909は、電源サイクルの間にコンピュータ可読データを記憶するために適した任意のデバイスであり得る。いくつかの実装形態では、データストレージ909は、たとえばハードディスクドライブ(HDD)などの磁気ディスクなどの固定ストレージ媒体を備えたデバイスである。いくつかの実装形態では、データストレージ909は、磁気ディスクなどのリムーバブルストレージ媒体(たとえば、フロッピーディスクドライブまたはリムーバブルHDD)、磁気テープ、光磁気ディスク、または光ディスク(たとえば、CD ROM、DVD-ROM、またはブルーレイディスク)を備えたデバイスである。いくつかの実装形態では、データストレージ909は、消去可能プログラマブル読取り専用メモリ(EPROM)、電気的消去可能プログラマブル読取り専用メモリ(EPROM)、またはフラッシュメモリなどの不揮発性半導体メモリデバイスである。いくつかの実装形態では、メインメモリ906は、たとえばマルチレベルセル(MLC)NANDベースのフラッシュメモリを使用するソリッドステートドライブ(SSD)である。コンピューティングシステム901は、データストレージ909として機能する任意の数のデバイスを有し得る。
引き続き図9を参照すると、バス905は、たとえば、プロセッサ902をメインメモリ906、ネットワークインターフェースコントローラ907、I/Oインターフェース908、およびデータストレージ909に接続するなど、コンピューティングシステム901の様々な内部コンポーネント間のデータ交換を提供するインターフェースである。いくつかの実装形態では、バス905は、コンピューティングシステム901の外部の1つまたは複数のコンポーネント、たとえば他のコンポーネント916とのデータ交換をさらに提供する。いくつかの実装形態では、バス905は、シリアルおよび/またはパラレル通信リンクを含む。いくつかの実装形態では、バス905は、統合ドライブエレクトロニクス(IDE)、周辺コンポーネント相互接続エクスプレス(PCI)、小型コンピュータシステムインターフェース(SCSI)、またはユニバーサルシリアルバス(USB)などのデータバス標準を実装する。いくつかの実装形態では、コンピューティングシステム901は、複数のバス905を有する。
コンピューティングシステム901は、1つまたは複数の入力または出力(I/O)デバイス918を含んでもよく、1つまたは複数の入力または出力(I/O)デバイス918にインターフェース908を提供してもよい。I/Oデバイス918は、これらに限定されないが、キーボード、タッチスクリーン、タッチパッド(たとえば、電磁誘導パッド、静電パッド、容量性パッドなど)、マイクロフォン、ジョイスティック、フットペダル、慣性測定ユニット(IMU)、加速度計、ジャイロスコープ、傾斜センサ、モーションセンサ、環境センサ、MIDI機器(たとえば、MIDIキーボード)などの楽器デジタルインターフェース(MIDI)入力デバイス、スタイラス、およびマウスまたはトラックボールなどのポインティングデバイスなどの入力デバイスを含む。出力デバイスは、これらに限定されないが、ビデオディスプレイ、スピーカ、触覚フィードバックデバイス、更新可能な点字ターミナル、ライト、サーボ、MIDIシンセサイザなどのMIDI出力デバイス、および2次元または3次元プリンタ(これらに限定されないが、インクジェットプリンタ、レーザプリンタ、サーモグラフィプリンタ、ステレオリソグラフィープリンタ、押出し蒸着プリンタ、および金属焼結プリンタなどを含む)を含む。
ネットワーク130は、コンピューティングシステム901などの様々なノードとネットワークデバイス914との間の通信を可能にする。いくつかの実装形態では、データは、たとえばオープンシステム相互接続(OSI)層によるデータパケットの形態で、データパケットのフローとしてソースノードから宛先ノードへネットワーク130を通って流れる。パケットのフローは、たとえば、ネットワーク130を介して送信される、IPv4またはIPv6などのインターネットプロトコル(IP)などのOSI層3ネットワークプロトコルを介して階層化された、ユーザデータグラムプロトコル(UDP)、伝送制御プロトコル(TCP)、またはストリーム制御伝送プロトコル(SCTP)などのOSI層4トランスポートプロトコルを使用し得る。ネットワーク130は、参加デバイス間の1つまたは複数のデータ通信パスを形成するために一緒にリンクされる様々なネットワークデバイス(ノード)から構成される。各ネットワークデバイスは、通常1つまたは複数のデータパケットとしてデータを受信および/または送信するための少なくとも1つのネットワークインターフェースを含む。例示的なネットワーク130はインターネットである。しかしながら、他のネットワークが使用されてもよい。ネットワーク130は、自律システム(AS)、すなわち、一貫した統一ルーティングポリシの下で動作される(または、少なくともASネットワークの外部から見える)ネットワークであり得、一般に、単一の管理主体(たとえば、システムオペレータ、管理者、または管理グループ)によって管理される。
ネットワーク130は、複数の接続されたサブネットワークまたはASネットワークから構成され得、これらは、介在ネットワーク(トランジットネットワーク)、デュアルホームゲートウェイノード、ポイントオブプレゼンス(POP)、インターネット交換ポイント(IXP)、および/または他の追加のネットワーク境界の1つまたは複数を満たし得る。ネットワーク130は、企業イントラネットなどのローカルエリアネットワーク(LAN)、メトロポリタンエリアネットワーク(MAN)、ワイドエリアネットワーク(WAN)、インターネットなどのインターネットワーク、または、たとえばアドホックWi-Fiピアツーピアネットワークなどのピアツーピアネットワークであり得る。ネットワーク130内のノード間のデータリンクは、物理リンク(たとえば、光ファイバ、メッシュ、同軸、Cat-5またはCat-6などのツイストペア)および/またはワイヤレスリンク(たとえば、ラジオ、衛星、マイクロ波など)の任意の組合せであり得る。
ネットワーク130は、モバイル通信デバイス用のキャリアネットワーク、たとえば、グローバルシステムフォーモバイルコミュニケーションズ(GSM)、符号分割多元接続(CDMA)、時分割同期符号分割多元接続(TD-SCDMA)、ロングタームエボリューション(LTE)、または、これらに限定されないが、いわゆるジェネレーション3G、4G、および5Gプロトコルを含む、任意の他のそのようなプロトコルなどのワイヤレス通信プロトコルを実装するネットワークを含むことができる。ネットワーク130は、たとえば、パーソナルエリアネットワーク(PAN)またはメッシュネットワークと呼ばれることもある、たとえば、Wi-Fi、ブルートゥース(登録商標)、BLE、またはZIGBEE(登録商標)を介した短距離ワイヤレスリンクを含むことができる。ネットワークは、パブリックネットワーク、プライベートネットワーク、またはパブリックネットワークとプライベートネットワークの組合せであり得る。ネットワーク130は、任意のタイプおよび/または形態のデータネットワークおよび/または通信ネットワークであり得る。
ネットワークインターフェースコントローラ907は、ネットワークインターフェース917(ネットワークインターフェースポートと呼ばれることもある)を介して、ネットワーク130内のデバイス(たとえば、ネットワークデバイス914)とのデータ交換を管理する。ネットワークインターフェースコントローラ907は、ネットワーク通信のための開放型システム間相互接続(OSI)モデルの物理層およびデータリンク層を処理する。いくつかの実装形態では、ネットワークインターフェースコントローラのタスクのうちのいくつかは、プロセッサ902および/またはコプロセッサ904によって処理される。いくつかの実装形態では、ネットワークインターフェースコントローラ907は、たとえば、同じチップ上の回路として、プロセッサ902に組み込まれる。いくつかの実装形態では、コンピューティングシステム901は、単一のコントローラ907によって制御される複数のネットワークインターフェース917を有する。いくつかの実装形態では、コンピューティングシステム901は、複数のネットワークインターフェースコントローラ907を有する。いくつかの実装形態では、各ネットワークインターフェース917は、物理ネットワークリンク(たとえば、Cat-5イーサネットリンク)の接続ポイントである。
いくつかの実装形態では、ネットワークインターフェースコントローラ907はワイヤレスネットワーク接続をサポートし、インターフェース917はワイヤレス(たとえば、無線)受信機/送信機(たとえば、IEEE802.11 Wi-Fiプロトコル、近距離無線通信(NFC)、ブルートゥース(登録商標)、ブルートゥース(登録商標)LOW ENERGY(BLE)、ZIGBEE(登録商標)、ANT、または他のワイヤレスプロトコルのいずれか)である。いくつかの実装形態では、ネットワークインターフェースコントローラ907は、イーサネットなどの1つまたは複数のネットワークプロトコルを実装する。一般に、コンピューティングシステム901は、ネットワークインターフェース917を通じた物理リンクまたはワイヤレスリンクを介して他のコンピューティングデバイスとデータを交換するように構成することができる。ネットワークインターフェース917は、コンピューティングシステム901をネットワーク130に接続する中間デバイス、たとえば、ハブ、ブリッジ、スイッチ、またはルータなどのネットワークデバイス914を介して別のデバイスにリンクしてもよいし、別のデバイスに直接にリンクしてもよい。
ネットワークデバイス914は、ハブ、スイッチ、ルータ、モデム、ネットワークブリッジ、別のコンピューティングシステム901、または任意の他のネットワークノードであり得る。いくつかの実装形態では、ネットワークデバイス914は、ネットワークゲートウェイである。いくつかの実装形態では、ネットワークデバイス914は、専用プロセッサおよび/または三元コンテンツアドレス可能メモリ(TCAM)などのカスタマイズされたハードウェアを使用して実装されるルーティングデバイスである。
他のコンポーネント916は、代替のI/Oインターフェース、外部シリアルデバイスポート、およびバス905を介して接続される任意の追加のコプロセッサ904を含み得る。たとえば、コンピューティングシステム901は、外部入力デバイス、出力デバイス、または追加のメモリデバイス(たとえば、ポータブルフラッシュドライブまたは外部メディアドライブ)を接続するためのインターフェース(たとえば、ユニバーサルシリアルバス(USB)インターフェース)を含み得る。
図示されるコンピューティングシステム901は、データを管理または編成するシステムを実装するために適している。たとえば、いくつかの実装形態では、コンピューティングシステム901はデータベースをホストする。データベース、または、より具体的にはデータベース管理システム(DBMS)は、たとえばデータベーススキーマなどのデータベース定義に従ってデータを編成する。たとえば、リレーショナルデータベースにおいては、DBMSはデータを表のようなデータ構造で維持する。各表には列があり、それぞれがエントリタイプ、分類、または目的に対応している。たとえば、表には数値データの列、テキストデータの列(たとえば、数値データの説明)、日付データの列などがある。いくつかの実装形態では、列は、複数のデータ要素を1つの列にグループ化した構造化データを表す。リレーショナルデータベースでは、表内の列の各エントリはまた、そのエントリを表内の他の列からのエントリと関連付ける行でもある。
場合によっては、エントリ(または、エントリの組合せ)は、ある表の行を別の表内の1つまたは複数の行に関連付ける。いくつかのDBMS実装形態では、「ビュー」と呼ばれる仮想表は、1つまたは複数の表からプルされたデータを、あたかも表であるかのように表す(すなわち、ビューはデータベースクライアントまたはユーザにとって表であるかのように見えるが、必ずしもそのように記憶されるわけではない)。様々なタイプのリレーショナルデータベース、オブジェクト指向データベース、ドキュメント指向データベース、拡張マークアップ言語(XML)データベース、NoSQLデータベースなどを含む、他のタイプのデータベース管理システムも使用することができる。これらのデータベースタイプの多くは、リレーショナルデータベースを参照して上記で説明したのと同様の方法で、表または表のような構造を使用する。いくつかのデータベース実装形態では、データは、表以外の方法で、たとえばデータタプルのコレクションとして記憶または表される。
データベースのクライアントまたはユーザは、構造化クエリ言語(SQL)などのデータベースクエリ言語のクエリなどのデータベース命令を使用して、データベースにデータを追加したり、データを修正したり、データベースからデータを検索したりすることができる。1つまたは複数のデータベース命令を1つのデータベーストランザクションにグループ化することができる。従来、データベースはトランザクションの原子性の一貫性、分離、および耐久性を提供する。これらのプロパティは、ACIDという頭字語で知られている。いくつかの実装形態では、DBMSはすべてのACIDプロパティを提供する。しかしながら、いくつかの実装形態では、DBMSはすべてのACIDプロパティを提供するわけではない。
いくつかの実装形態では、1つまたは複数のクライアントデバイス120、たとえば、コンピューティングシステム901のインスタンスは、たとえば、直接リンクを介して、またはネットワーク130を介して、DBMSと通信している。いくつかの実装形態では、クライアントのうちの1つまたは複数は、構造化クエリ言語(SQL)、ハイパーテキスト構造化クエリ言語(HTSQL)、コンテキストクエリ言語(CQL)、データマイニング拡張機能(DMX)、またはXMLクエリ(XQuery)などの正式なクエリ言語のクエリを使用して、DBMSからデータを取得する。いくつかの実装形態では、クライアントのうちの1つまたは複数は、コモンオブジェクトリクエストブローカアーキテクチャ(CORBA)、遠隔手続き呼出し(RPC)、オブジェクトのリンクと埋込み(OLE)、コンポーネントオブジェクトモデル(COM)、または分散コンポーネントオブジェクトモデル(DCOM)などのプロセス間通信アーキテクチャを使用して、DBMSからデータを取得する。いくつかの実装形態では、クライアントのうちの1つまたは複数は、自然言語またはセマンティッククエリを使用してDBMSからデータを取得する。いくつかの実装形態では、クライアントのうちの1つまたは複数は、視覚化APIクエリ言語などのカスタムクエリ言語のクエリを使用して、DBMSからデータを取得する。本明細書で説明する主題および動作の実装形態は、デジタル電子回路、または本明細書で開示された構造とその構造的等価物、あるいはそれらの1つまたは複数の組合せを含む有形の媒体、ファームウェア、またはハードウェアにおいて具現化されるコンピュータソフトウェアにおいて実装することができる。本明細書に記載されている主題の実装形態は、有形の媒体、すなわちコンピュータプログラム命令の1つまたは複数のモジュールにおいて具現化される1つまたは複数のコンピュータプログラムとして実装し、データ処理装置(たとえば、プロセッサ902を含む)によって実行するために、またはデータ処理装置の動作を制御するために、1つまたは複数のコンピュータストレージ媒体に符号化することができる。コンピュータストレージ媒体は、コンピュータ可読ストレージデバイス、コンピュータ可読ストレージ基板、ランダムまたはシリアルアクセスメモリアレイまたはデバイス、あるいはそれらの1つまたは複数の組合せであり得るか、またはそれらに含まれ得る。コンピュータストレージ媒体はまた、1つまたは複数の別個のコンポーネントまたは媒体(たとえば、複数のCD、ディスク、または他のストレージデバイス)であり得るか、またはそれらに含まれ得る。コンピューストレージ記憶媒体は有形である。コンピュータストレージ媒体は、データ、たとえばコンピュータ実行可能命令を非一時的な形態で記憶する。
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、またはコードとしても知られる)は、コンパイラ型言語、インタープリタ型言語、宣言型言語、および手続き型言語を含む、あらゆる形態のプログラミング言語で記述することができ、コンピュータプログラムは、スタンドアロンプログラムとして、またはモジュール、コンポーネント、サブルーチン、オブジェクト、またはコンピューティング環境における使用に適した他のユニットとしてなど、任意の形態で展開することができる。コンピュータプログラムは、必ずしもそうである必要はないが、ファイルシステム内のファイルに対応する場合がある。プログラムは、他のプログラムまたはデータ(たとえば、マークアップ言語ドキュメントに記憶された1つまたは複数のスクリプト)を保持するファイルの一部、問題のプログラム専用の単一ファイル、または複数の調整ファイル(たとえば、1つまたは複数のモジュール、ライブラリ、サブプログラム、またはコードの一部を記憶するファイル)に記憶することができる。コンピュータプログラムは、1つのコンピュータ、または1つのサイトに配置されているか、複数のサイトに分散され、通信ネットワークによって相互接続されている複数のコンピュータで実行されるように展開することができる。
本明細書で説明するプロセスおよび論理フローは、入力データを動作して出力を生成することによってアクションを実行するために1つまたは複数のコンピュータプログラムを実行する1つまたは複数のプログラム可能なプロセッサによって実行することができる。プロセスおよび論理フローはまた、たとえば、フィールドプログラマブルゲートアレイ(「FPGA」)または特定用途向け集積回路(「ASIC」)などの専用論理回路によって実行することもでき、それらとして実装することもできる。そのような専用回路は、たとえ汎用プロセッサではなくても、コンピュータプロセッサと呼ばれることがある。
本明細書は多くの特定の実装形態の詳細を含むが、これらは発明の範囲やクレームされる内容の制限として解釈されるべきではなく、特定の発明の特定の実装形態に固有の機能の説明として解釈されるべきである。本明細書において個別の実装形態のコンテキストで説明されている特定の機能は、単一の実装形態に組み合わせて実装することもできる。逆に、単一の実装形態のコンテキストで説明されている様々な機能は、複数の実装形態において個別に実装することも、任意の適切なサブコンビネーションにおいて実装することもできる。さらに、機能は特定の組合せで動作するものとして上記で説明され、最初にそのようにクレームされたとしても、クレームされた組合せからの1つまたは複数の機能は場合によってはその組合せから削除され、クレームされた組合せは、サブコンビネーション、またはサブコンビネーションのバリエーションに向けられる。
同様に、動作は図面において特定の順序で示されているが、これは、望ましい結果を達成するために、そのような動作が特定の順序または連続した順序で実行されること、あるいはすべての例示された動作が実行されることを必要とするものとして理解されるべきではない。特定の状況では、マルチタスキングおよび並列処理が有利な場合がある。さらに、上述の実装形態における様々なシステムコンポーネントの分離は、すべての実装形態においてそのような分離を必要とするものとして理解されるべきではなく、説明されたプログラムコンポーネントおよびシステムは、一般に単一のソフトウェア製品に統合されるか、または複数のソフトウェア製品にパッケージ化できることを理解されるべきである。
「または」への言及は、「または」を使用して説明される任意の用語が、説明される用語のうちの1つ、複数、およびすべてのいずれかを示し得るように、包括的であると解釈され得る。「第1」、「第2」、「第3」などのラベルは、必ずしも順序を示すことを意味するものではなく、一般に、同様または類似のアイテムまたは要素を区別するためにのみ使用される。
したがって、主題の特定の実装形態について説明した。他の実装形態は、以下の特許請求の範囲内にある。場合によっては、特許請求の範囲に記載されているアクションを異なる順序で実行しても、依然として望ましい結果を達成することができる。さらに、添付の図面に示されたプロセスは、望ましい結果を達成するために、必ずしも示された特定の順序、または連続した順序を必要としない。特定の実装形態では、マルチタスキングまたは並列処理が使用され得る。