(57)【特許請求の範囲】
【請求項１】
コンピューティング装置によって、入力を、パン・アニメーションに対応すると認識する段階と；
コンピューティング装置によって出力されるユーザー・インターフェースにおいて前記パン・アニメーションが進む距離を、前記入力に関連する速度に基づいて計算する段階であって、前記距離は、所定の最大距離によって制限される、段階と；
前記パン・アニメーションを、前記コンピューティング装置によって、計算された距離を進むよう出力する段階と；
前記パン・アニメーションの出力中に受領されたもう一つの入力を、もう一つのパン・アニメーションに対応すると認識する段階と；
前記コンピューティング装置によって出力される前記ユーザー・インターフェースにおいて前記もう一つのパン・アニメーションが進むもう一つの距離を計算する段階であって、前記もう一つの距離は、前記出力されたパン・アニメーションの距離を計算するために使われた前記所定の最大距離よりも大きいもう一つの所定の最大距離によって制限される、段階と；
前記もう一つのパン・アニメーションを、前記コンピューティング装置によって、計算された前記もう一つの距離を進むよう出力する段階とを含む、
方法。
【請求項２】
前記入力が、前記コンピューティング装置のタッチ機能を使って検出されるタッチ入力である、請求項１記載の方法。
【請求項３】
前記最大距離が、前記コンピューティング装置によって表示される前記ユーザー・インターフェースに対応する表示領域のサイズに基づいて定義される、請求項１記載の方法。
【請求項４】
前記表示領域のサイズが、前記ユーザー・インターフェースが表示されるウィンドーによって定義される、請求項３記載の方法。
【請求項５】
前記表示領域のサイズが、前記ユーザー・インターフェースを表示するために使われる表示装置によって定義される、請求項３記載の方法。
【請求項６】
前記パン・アニメーションの出力を実行するために使われる時間を計算する段階であって、前記時間は所定の最大時間によって制限される、段階をさらに含む、
請求項１記載の方法。
【請求項７】
前記時間が前記入力に関連する速度と、減速率とに基づく、請求項６記載の方法。
【請求項８】
前記パン・アニメーションを出力する段階が、前記入力に関連する速度で始まり、計算された時間にわたって計算された距離を進んで止まるよう決定された曲線に従って実行される、請求項６または７記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本願はパン・アニメーション（panning  animation）に関する。
【背景技術】
【０００２】
ユーザー・インターフェース内をナビゲートしていくためにユーザーには多様な異なる方法がある。しかしながら、このナビゲーションに対応する動きを表示するために利用されていた通常の技法は予測がつかないことがあり、不完全なユーザー経験につながることがある。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
たとえば、ユーザー・インターフェースを通じて動きを表示するためにアニメーションに関わっていた通常の技法は、予測がつかないことがある。たとえば、ユーザーは、アニメーションに関わる動きがユーザー・インターフェースにおいて「どこで」「終わる」かを規則正しく決定できないことがある。この予測不能性は、コンピューティング装置の資源の非効率的な使用につながることがある。たとえば、ユーザーはユーザー・インターフェースに、所望される位置を過ぎてナビゲートさせる入力を与えてしまうことがありうる。よって、ユーザーは所望される位置まで戻るようナビゲートする追加的な入力を与えることがある。これは時間がかかり、非効率的であり、ユーザーのイライラにつながることがある。
【課題を解決するための手段】
【０００４】
パン・アニメーション技法が記述される。一つまたは複数の実装において、コンピューティング装置によって入力がパン・アニメーションに対応すると認識される。コンピューティング装置によって出力されるユーザー・インターフェースにおいて該パン・アニメーションが進む距離が計算される。該距離は、所定の最大距離によって制限される。パン・アニメーションはコンピューティング装置によって、計算された距離を進むよう出力される。
【０００５】
一つまたは複数の実装では、第一の入力を第一のパン・アニメーションに対応すると認識するのに応答して、前記第一のパン・アニメーションは、コンピューティング装置によって出力されるユーザー・インターフェースにおいて第一の距離を進むよう出力される。第一の距離は、コンピューティング装置によって、第一のあらかじめ定義された最大距離によって制限されるよう計算される。前記第一のパン・アニメーションの出力中に受領される第二の入力を第二のパン・アニメーションに対応すると認識するのに応答して、前記第二のパン・アニメーションは、コンピューティング装置によって出力されるユーザー・インターフェースにおいて第二の距離を進むよう出力される。第二の距離は、コンピューティング装置によって、前記第一のあらかじめ定義された最大距離より大きい第二のあらかじめ定義された最大距離によって制限されるよう計算される。
【０００６】
一つまたは複数の実装では、システムが、少なくとも部分的にコンピューティング装置のハードウェアにおいて実装され、コンピューティング装置によって検出された一つまたは複数の入力の認識に応答してパン・アニメーションを出力するよう構成されているパン・アニメーション・モジュールを含む。パン・アニメーション・モジュールは、コンピューティング装置によって出力されるユーザー・インターフェースにおいて前記パン・アニメーションが進む距離を計算するよう構成されたパン距離モジュールを含む。前記パン・アニメーション・モジュールは、コンピューティング装置によって出力されるユーザー・インターフェースにおいて前記パン・アニメーションを出力するために使われる時間の量を計算するよう構成されたパン時間モジュールをも含む。前記時間の量は、あらかじめ定義された最大時間によって制限される。
【０００７】
この概要は、下記の詳細な説明においてさらに説明される概念のセレクションを単純化した形で紹介するために与えられている。この概要は、特許請求される主題のキーとなる特徴または本質的な特徴を同定するために意図されたものではなく、特許請求される主題の範囲を決定する際の補助として使われることも意図されていない。
【図面の簡単な説明】
【０００８】
詳細な説明は、付属の図面を参照して記述される。図面では、参照符号の左端の数字がその参照符号が最初に現われる図面を同定する。詳細な説明および図面における異なるインスタンスにおける同じ参照番号の使用は、同様のまたは同一の項目を指示することがある。図に表わされているエンティティは一つまたは複数のエンティティを示すことがあり、よって議論においては該エンティティの単数形または複数形に交換可能に言及することがある。
【図１】パン・アニメーション技法を用いるよう動作可能な例示的な実装における環境の図解である。
【図２】図１のユーザー・インターフェースがパン・アニメーション・モジュールとともにより詳細に示される例示的な実装の図解である。
【図３】パン・アニメーションのために計算される距離が所定の最大距離によって制限される例示的な実装における手順を描く流れ図である。
【図４】アニメーションを通じてナビゲートするために一連の入力が使われる例示的な実装における手順を描く流れ図である。
【図５】本稿に記載される技法の実施形態を実装するために図１および図２を参照して記述されたコンピューティング装置の任意の型として実装されることができる例示的な装置のさまざまなコンポーネントを含む例示的なシステムを示す図である。
【発明を実施するための形態】
【０００９】
ユーザー・インターフェースにおける動き（たとえばタッチ・ジェスチャーに応答するパン）を示すためにアニメーションを用いる通常の技法はしばしば予測がつかなかった。そのため、そうした通常の技法とのユーザー対話はしばしば非効率的であり、ユーザーのイライラにつながることがあった。
【００１０】
パン・アニメーション技法が記述される。一つまたは複数の実装において、パン・アニメーション技法は、ユーザーの入力に比例して応答するよう構成される。それにより、ユーザーが該技法を用いるユーザー・インターフェースと対話するとき、一定の予測可能性をユーザーに与える。そうした技法は、多様な異なる機能をサポートするよう構成されることがある。たとえば、該技法は、アニメーションを出力するために使用される最大距離および／または最大時間をサポートするよう構成されることがある。たとえば、距離は、その動きを表示するユーザー・インターフェースに関連付けられたディスプレイ領域の量に基づいていてもよい。
【００１１】
さらに、該技法は、距離の計算を、アニメーションの出力のために使われる時間から分離するために使われてもよい。たとえば、動きは、入力に関連付けられた速度に基づいて計算されてもよく、アニメーションを「遅くする」ために減速率を使ってもよい。アニメーションを出力するための時間の量も計算されてもよい。すると、距離および時間がアニメーションを実行するためにアニメーション曲線に適用されてもよい。
【００１２】
さらに、本技法は、一連の入力をサポートするよう構成されていてもよい。たとえば、パン・アニメーションは「フリック」ジェスチャーのようなタッチ入力に応答して出力されてもよい。出力の間、ユーザーは、その動きを続ける、ユーザー・インターフェースにおいてより速くおよび／またはより遠くに動くなどのために、もう一つの入力（たとえばもう一つのフリック・ジェスチャー）を与えることがある。よって、初期アニメーションに適用される最大距離が、その後の入力に応答して延長されてもよく、それによってユーザーの入力に対処してもよい。これらおよびその他の技法のさらなる議論は、以下の節に関係して見出されうる。
【００１３】
以下の議論では、まず本稿に記載される技法を用いうる例示的な環境が記述される。次いで、該例示的な環境および他の環境において実行されうる例示的な手順が記述される。したがって、例示的な手順の実行は例示的な環境に限定されず、例示的な環境は例示的な手順の実行に限定されない。
【００１４】
〈例示的な環境〉
図１は、本稿に記載される動き終点発見技法を用いるよう動作可能な例示的な実装における環境１００の図解である。図示した環境１００は、多様な仕方で構成されうるコンピューティング装置１０２を含む。たとえば、コンピューティング装置１０２は、デスクトップ・コンピュータ、モバイル・ステーション、娯楽機器、表示装置に通信上結合されたセットトップボックス、無線電話、スレート（たとえばタブレット）、ゲーム・コンソールなどとして構成されてもよい。よって、コンピューティング装置１０２は、実質的なメモリおよびプロセッサ資源をもつフル資源装置（たとえば、パーソナル・コンピュータ、ゲーム・コンソール）から限られたメモリおよび／または処理資源をもつ低資源装置（たとえば、伝統的なセットトップボックス、ハンドヘルド型ゲーム・コンソール）まで幅がありうる。さらに、単一のコンピューティング装置１０２が示されているが、コンピューティング装置１０２はリモコンおよびセットトップボックスの組み合わせ、ジェスチャーを捕捉するよう構成された画像捕捉装置およびゲーム・コンソールなど、複数の異なる装置を表わしていてもよい。
【００１５】
コンピューティング装置１０２は、処理システム１０４およびメモリ１０６を含むものとしても図示されている。処理システム１０４は、命令の実行、構成設定を通じるなどした一つまたは複数の動作を実行するためのコンピューティング装置１０２の機能を、特定用途向け集積回路を通じるなどして「シリコンで」実装される一つまたは複数の機能ブロックとして表わす。それは、下記のモジュールの議論においてさらに記述されるよう。
【００１６】
コンピューティング装置１０２は、オペレーティング・システム１０８を含むものとしてさらに示されている。オペレーティング・システム１０８は、コンピューティング装置１０２の根底にある機能を、コンピューティング装置１０２上で実行可能なアプリケーション１１０に対して抽象化するよう構成されている。たとえば、オペレーティング・システム１０８は、コンピューティング装置１０２の処理システム１０４、メモリ１０６、ネットワークおよび／または表示機能（たとえば表示装置１１２）を抽象化して、この根底にある機能が「どのように」実装されているかを知ることなくアプリケーション１１０を書くことができるようにしてもよい。たとえば、アプリケーション１１０は、レンダリングされ、表示装置１１２によって表示されるべくデータをオペレーティング・システム１０８に与えてもよいが、このレンダリングがどのように実行されるかを理解しないままでもよい。オペレーティング・システム１０８は、ファイル・システムおよびコンピューティング装置１０２のユーザーがナビゲートできるユーザー・インターフェースを管理するなど、多様な他の機能をも表わしていてもよい。
【００１７】
オペレーティング・システム１０８は、ナビゲーション・モジュール１１４を含むものとしても図示されている。ナビゲーション・モジュール１１４は、表示装置１１２上での表示のために出力されるユーザー・インターフェース１１６内をナビゲートする機能を表わす。たとえば、図示したユーザー・インターフェース１１６は、任意の一つの時点において表示装置上に表示できるより多くの量の検索結果を含むよう構成されている。よって、ナビゲーション・モジュール１１４は、関心対象の諸部分を見るためにユーザー・インターフェース１１６内をナビゲートしていくために使用されうる技法をサポートしてもよい。
【００１８】
このナビゲーションは多様な仕方で実行されうる。たとえば、コンピューティング装置１０２は、ユーザーの手１１８によってなされるジェスチャーの検出を通じるなどして、ユーザーから一つまたは複数の入力を受領してもよい。ジェスチャーは、（たとえば表示装置１１２および／またはトラック・パッドの）タッチ機能を通じて、カメラを使って検出されてなど、多様な仕方で検出されてもよい。キーボード、カーソル制御デバイス（たとえばマウス）および他のハードウェア装置を通じてなど、多様な他の入力も考えられる。
【００１９】
使用される入力技法に関わりなく、ナビゲーション・モジュール１１４は、入力の識別に応答してユーザー・インターフェース１１６における動きを表示するようアニメーションを開始してもよい。動きを表示するよう構成される機能の例は、パン・アニメーション・モジュール１２０の使用を通じて例解される。パン・アニメーション・モジュール１２０は、表示装置１１２上での表示のためにコンピューティング装置１０２によってパン・アニメーションを構成し、出力する機能を表わす。
【００２０】
パン・アニメーション・モジュール１２０は、パン距離モジュール１２２およびパン時間モジュール１２４を含むものとして示されている。よって、この例では、パン・アニメーション・モジュール１２０は距離の計算を時間から分離するよう構成されており、パン・アニメーションの構成においてより多大な柔軟性を提供しうる。しかしながら、距離および時間を一緒に計算するなど、幅広く多様な他の例も考えられることは容易に明白となるはずである。
【００２１】
パン距離モジュール１２２は、パン・アニメーションによってユーザー・インターフェース１１６において進む距離を計算するためのパン・アニメーション・モジュール１２０の機能を表わす。同様に、パン時間モジュール１２４は、パン・アニメーションを出力するために使われる時間の量を計算するパン・アニメーション・モジュール１２０の機能を表わす。パン・アニメーション・モジュール１２０およびその対応するパン距離モジュール１２２およびパン時間モジュール１２４の動作のさらなる議論は、次の図に関係して始まることが見出されうる。
【００２２】
図２は、図１のユーザー・インターフェース１１６がパン・アニメーション・モジュール１２０とともにより詳細に示されている例示的な実装２００の図解である。この例におけるユーザー・インターフェース１１６は第一、第二および第三のセクション２０２、２０４、２０６を有するよう示されている。これらのセクションのそれぞれは、任意の一つの時点において、たとえばカレント・ウィンドーにおいておよび／または表示装置１１２によって所与の倍率で表示可能な、ユーザー・インターフェース１１６の量を表わす。
【００２３】
第一のセクション２０２は、表示装置１１２によって現在表示されているボックス内に示されている。一方、第二および第三のセクション２０４、２０６は点線で示されている。この例では、第一のセクション２０２の表示中に入力が受領される。先述したように、これは、表示装置１１２のタッチ機能を使って検出されるジェスチャーの使用を通じてなど、多様な仕方で実行されうる。入力装置（たとえばカーソル制御デバイスのスクロール・ホイール）、キーボードなどの使用を通じてなど、多様な他の例も考えられる。
【００２４】
ジェスチャーはたとえば、ユーザーの手１１８の指の、表示装置１１２に対する配置およびある方向へのその後の動きに関わっていてもよい。該動きは図示した例では、矢印の使用を通じて示されるように、垂直上向きの動きに関わる。パン・アニメーション・モジュール１２０はこの動きをパン・アニメーションに対応するとして認識するよう構成されていてもよい。
【００２５】
たとえば、パン・アニメーション・モジュール１２０は、パン・アニメーションの出力を通じてユーザーの手１１８の指の動きに従うユーザー・インターフェース１１６の動きを開始してもよい。パン・アニメーション・モジュール１２０は、該入力が止められたあとにもパン・アニメーションの出力が続き、ユーザー・インターフェース１１６の動きが物理的な属性をもつように見えるよう、慣性を用いるよう構成されていてもよい。
【００２６】
パン・アニメーション・モジュール１２０は、多様な仕方でパン・アニメーションを構成してもよい。たとえば、ユーザーの手１１８の指が表示装置１１２から持ち上げられた時に対応する速度が検出されてもよい。次いでこの速度がパン距離モジュール１２２によって、ユーザー・インターフェース１１６において進むべき距離を計算するために使用されてもよい。
【００２７】
一つまたは複数の実装において、パン距離モジュール１２２は、パン距離モジュール１２２によって実行される計算の一部として、あらかじめ定義された最大距離を用いるよう構成される。パン距離モジュール１２２はたとえば、ユーザー・インターフェース１１６が入力に応答して動く距離を決定するよう上記の入力の速度を利用してもよい。最大距離は、許されるユーザー・インターフェース１１６における動きの量を制限するために、パン距離モジュール１２２によって用いられてもよい。たとえば、パン距離モジュール１２２による前記入力に対応する距離の初期の計算がその最大距離を超える場合、その最大距離が、ユーザー・インターフェース１１６において動かされる距離として使われる。このように、最大距離は、ユーザー・インターフェース１１６における動きに予測可能性を与えるために使用されうる。
【００２８】
最大距離は、多様な仕方で定義されていてもよい。たとえば、最大距離は、ユーザー・インターフェース１１６に関連した表示領域の量に基づいていてもよい。パン距離モジュール１２２は、たとえば、最大距離を、表示領域の量の倍数、たとえば表示領域の三倍に基づくものとしてもよい。
【００２９】
最大距離の基礎のはたらきをする表示領域は、多様な仕方で定義されうる。これは、第一のセクション２０２において示されるユーザー・インターフェースを表示するために使われるユーザー・インターフェースのウィンドーのサイズを含んでいてもよい。このサイズは、ウィンドーによって現在消費されている表示環境の量、たとえば表示装置１１２によって表示可能な前記ウィンドーの量に基づいていてもよい。したがって、この例では、現在表示されていない（たとえば「画面の外にある」）前記ウィンドーの部分は上記計算の基礎としては使われない。ウィンドーの全体が画面上にあるかどうかにかかわらずウィンドーの定義された領域など、他の例も考えられる。この距離を、表示装置１１２の利用可能な表示領域、複数の表示装置を利用する表示環境（たとえばマルチモニタ環境）の利用可能な表示領域などに基づくものとするなど、多様な他の例も考えられる。
【００３０】
先述したように、パン時間モジュール１２４は、パン・アニメーションを出力するための時間の量を計算するよう構成されている機能を表わす。パン時間モジュール１２４は、計算の一部として、あらかじめ定義された最大時間を用いるよう構成されていてもよい。それは、ユーザー・インターフェース１１６とのユーザー対話にさらに予測可能性を加えるために使用されうる。
【００３１】
たとえば、パン距離モジュール１２２は、パン・アニメーションの一部として動きを表示するために使われるべき時間の量を決定するために上記の入力の速度を利用してもよい。パン・アニメーションの動きを表示するために許されるユーザー・インターフェース１１６における時間の量を制限するために、パン時間モジュール１２４によって時間の最大量が用いられてもよい。たとえば、パン時間モジュール１２４による前記入力に対応する時間の量の初期の計算が最大時間量に対応する場合、最大時間量が、ユーザー・インターフェース１１６において動きを出力するために使われる時間の量として使われる。このように、最大時間量は、ユーザー・インターフェース１１６における動きに予測可能性を提供するために使用されてもよい。一つまたは複数の実装において、時間の量の計算は、パン距離モジュール１２２からの距離の計算に基づいていてもよい。
【００３２】
パン・アニメーション・モジュール１２０は、パン・アニメーションを構成するために、パン距離モジュール１２２によって計算される距離およびパン時間モジュール１２４によって計算される時間を受け容れるよう構成されていてもよい。たとえばパン・アニメーション・モジュール１２０は、パン・アニメーションを実行するためにアニメーション曲線にこれらの値を適用してもよい。パン・アニメーションは、表示装置１１２による表示のためにユーザー・インターフェース１１６を通じた動きを表示するために出力されてもよい。
【００３３】
このように、パン・アニメーション・モジュール１２０は、入力の速度および減速値に基づいて、ある最大距離までの距離を計算するためにパン距離モジュール１２２を使ってもよい。パン時間モジュール１２４は、前記速度および減速値（これは距離のための前記減速値と同じまたは異なる定数であってもよい）に基づいて、一定の最大時間量までの時間を計算してもよい。
【００３４】
多様な異なるアニメーション曲線は、パン・アニメーション・モジュール１２０によってパン・アニメーションの構成の一部として用いられてもよい。たとえば、計算された量の時間にわたって計算された距離を進むよう、三次ベジエ・アニメーション曲線が、パン・アニメーション・モジュール１２０によって用いられてもよい。このように、三次ベジエ・アニメーション曲線は、いくらであれ計算される距離および時間に適合するよう「伸張」または「圧縮」されうる。たとえば、あらかじめ定義された三次ベジエ曲線が使用されてもよく、該三次ベジエ曲線の制御点が、たとえばジェスチャーの終わりにおいて、入力の速度を近似するために動的に修正される。これは、パン・アニメーションが入力の近似的な速度で始まり、それによりユーザーの動きをなめらかに継続することを保証する。
【００３５】
さらに、減速値の使用を通じて、三次ベジエ・アニメーション曲線は、開始時に比較的迅速に実行され、その後減速して終わりにおいてゆっくりと「着地」するパン・アニメーションに関わる慣性を構成してもよい。これは、ユーザー・インターフェース１１６とのユーザー対話を補助する多様な異なる機能をサポートするために使われてもよい。たとえば、パン・アニメーションは、ユーザー・インターフェース１１６において、アニメーションの行き先までの距離のかなりの部分を迅速に動かすよう構成されていてもよい。これは、パン・アニメーションが比較的速く実行されかつ予測可能であるように見えさせることができる。よって、ユーザーは、アニメーションが行き先を示すまで長く待つことを強いられない。
【００３６】
もう一つの例では、ゆっくりした着地は、ユーザーに、比較的迅速に、ユーザー・インターフェース１１６における行き先に位置する内容を見て識別することを許容する。このようにして、ユーザーは、さらなるパンが所望されるかどうかを知る前にアニメーションが完全に停止するのを待つことを強いられない。この減速は、ユーザー・インターフェース１１６に物理性の感触をも提供することができ、よって、ユーザー・インターフェース１１６が、物理的な世界におけるものと同様の仕方で触れられ、操作されうるエンティティであるというユーザー経験を補強する。
【００３７】
さらに、上記のように、パン・アニメーションは、ユーザー・インターフェース１１６に関連した表示領域のサイズに基づく最大距離を用いてもよい。これは、ユーザー・インターフェース１１６がユーザーによって、たとえばフリック・ジェスチャーに応答して、期せずして遠くまでパンされすぎないことを保証するために使用されうる。
【００３８】
さらに、距離の予測可能性は、コンピューティング装置１０２の資源の効率的な使用を増進しうる。たとえば、この距離制限は、パンによって達成される距離について計画し、しかるべき反応することを、アプリケーションおよびシステム・コントロールに許容しうる。たとえば、距離制限が三ページであれば、アプリケーション１１０は、コンピューティング装置１０２による不完全なレンダリングのためにパンする間にユーザーが空の画面を見せられる可能性を下げるよう、三ページ分のコンテンツをキャッシュしてもよい。
【００３９】
パン・アニメーション・モジュール１２０は、一連の入力に対処するよう構成されていてもよい。たとえば、ユーザーが相続けて複数回パンするとき（たとえば、一つのパンが同じ方向の直前のパンの慣性アニメーションに割り込む）、パン距離モジュール１２２によってパンのための距離を制限するために使われる最大距離は増大されてもよい。このようにして、ユーザーは、効率的に、ユーザー・インターフェース１１６においてより大きな距離をカバーしうる。
【００４０】
たとえば、ユーザー・インターフェースに第一のセクション２０２から第二のセクション２０４にユーザー・インターフェースにおいてパンさせるよう、第一の入力が、パン・アニメーション・モジュール１２０によって受領されてもよい。応答して、パン・アニメーション・モジュール１２０がユーザー・インターフェース１１６の動きを開始してもよい。これは、第一のセクション２０２の一部が「画面の外」に動かされるにつれ第二のセクション２０４の一部が表示装置１１２上での表示のために「画面上に」動かされるスクロール・アニメーションを表示するなど、多様な仕方で実行されうる。このように、この例では、アニメーションの間、第二のセクション２０４の一部が、第一のセクション２０２の一部を置き換えるために使われる。
【００４１】
第二のセクション２０４を表示するためのアニメーションが表示装置１１２上での表示のために出力される際に、ユーザー・インターフェース１１６における動きを続けるようユーザーから第二の入力が受領されることがある。第二の入力は、第二のセクションを出力するために受領された第一の入力と同じであっても、異なっていてもよい。この例では、第二の入力もユーザー・インターフェース１１６を、ユーザー・インターフェース１１６を通じて同じ下向きの方向にパンさせるよう構成されている。
【００４２】
前記入力は、第二のセクション２０４の表示に関わるアニメーションの出力において前記入力が受領された点を示すための、ユーザー・インターフェース１１６に対する矢印２０８の使用を通じて示されている。たとえば、言及された矢印は、「アクション・スポーツ（Action  Sports）」を含む第二のセクション２０４の一部が表示装置１１２による表示のために出力されたことを示す。しかしながら、矢印より「下」にある第二のポーションの他の諸部分はまだ出力されていない。
【００４３】
応答して、パン・アニメーション・モジュール１２０は、第一のアニメーションに関わる慣性部分、すなわち前記入力にリアルタイムで従うのではない動きの部分の出力に割り込むよう構成されていてもよい。むしろ、ユーザー・インターフェース１１６は、第二の入力にリアルタイムで従うよう構成されてもよい。それによりたとえば、ユーザー・インターフェース１１６は第二の入力、たとえばユーザーの手１１８の指の動きにマッチするよう動かされる。
【００４４】
ひとたびこの動きが終わったら（たとえば、ユーザーの手１１８の指が表示装置から持ち上げられたら）、パン・アニメーション・モジュール１２０は、前と同様に、パン距離モジュール１２２およびパン時間モジュール１２４を用いてもよい。しかしながら、この例では、アニメーションのためにパン距離モジュール１２２によってあらかじめ定義されている最大距離は、第一のアニメーションについて使われた最大距離に比べて、たとえば三画面から五画面に、増大させられる。このように、この例では、一連の入力は、それらの入力が個々に処理されるとした場合よりも、パン・アニメーション・モジュール１２０によってユーザー・インターフェース１１６を通じてより遠くまでナビゲートするために用いられてもよい。これらおよび他の技法のさらなる議論は、以下の手順に関係して見出されうる。
【００４５】
〈例示的な手順〉
以下の議論は、先述したシステムおよび装置を利用して実装されうるパン・アニメーション技法を記述する。各手順の諸側面はハードウェア、ファームウェアまたはソフトウェアまたはそれらの組み合わせにおいて実装されてもよい。手順は、一つまたは複数の装置によって実行される動作を指定するブロックの集合として示される。それらは必ずしもそれぞれのブロックによって動作を実行するための示された順序に限定されない。以下の議論の諸部分では、図１の環境１００および図２の例示的な実装２００が参照される。
【００４６】
図３は、パン・アニメーションのために計算される距離が所定の最大距離によって制限される例示的な実装における手順３００を描いている。入力が、コンピューティング装置によって、パン・アニメーションに対応すると認識される（ブロック３０２）。入力はたとえば、タッチ機能またはカメラ、マウスのスクロール・ホイールのようなカーソル制御デバイスの使用などを使って検出されるジェスチャーであってもよい。
【００４７】
コンピューティング装置によって出力されるユーザー・インターフェースにおいてパン・アニメーションが進む距離が計算される。この距離は、所定の最大距離によって制限される（ブロック３０４）。パン距離モジュール１２２は、たとえば、この距離を、前記入力の速度に基づいて計算してもよい。さらに、この距離は、先述した最大距離によって制限されてもよい。
【００４８】
パン・アニメーションは、コンピューティング装置によって、計算された距離だけ進むよう出力される（ブロック３０６）。たとえば、パン・アニメーションは、動きが入力の提供が止まったあとにも続くよう、たとえば「フリック」ジェスチャー後にも続くよう、慣性の表示を含むよう構成されていてもよい。多様な他の例も考えられる。
【００４９】
図４は、一連の入力がアニメーションを通じてナビゲートするために使用される例示的な実装における手順４００を描いている。第一の入力が第一のパン・アニメーションに対応するとの認識に応答して、第一のパン・アニメーションが、コンピューティング装置によって出力されるユーザー・インターフェースにおいて第一の距離進むよう出力される。第一の距離は、コンピューティング装置によって、第一の所定の最大距離によって制限されるよう計算される（ブロック４０２）。前と同様、第一の距離は、前記入力の速度または前記入力の他の特性、たとえば前記入力の長さ、前記入力を与えるのにかかった時間の長さなどに基づくなど、パン距離モジュール１２２によって多様な仕方で計算されうる。
【００５０】
第一のパン・アニメーションの出力中に受領された第二の入力が第二のパン・アニメーションに対応するとの認識に応答して、第二のパン・アニメーションが、コンピューティング装置によって出力されるユーザー・インターフェースにおいて第二の距離進むよう、出力される。第二の距離は、第一の所定の最大距離より大きい第二の所定の最大距離によって制限されるよう、コンピューティング装置によって計算される（ブロック４０４）。この例では、第二の入力は、第一のアニメーションの出力中に受領される。よって、パン距離モジュール１２２は、第一のパン・アニメーションについて使われた最大距離より大きい第二のパン・アニメーションについての最大距離を使ってもよい。このように、この例では、アニメーションの出力の間に提供される入力は、個々に提供されたとした場合よりも、すなわち前のアニメーションの出力中に出力されたのではない場合よりも、ユーザー・インターフェース１１６においてより遠くまで進むために使用されうる。
【００５１】
〈例示的なシステムおよび装置〉
図５は、本稿に記載したさまざまな技法を実装しうる一つまたは複数のコンピューティング・システムおよび／または装置を表わす例示的なコンピューティング装置５０２を含む例示的なシステムを概括的に５００において示している。コンピューティング装置５０２はたとえば、サービス・プロバイダーのサーバー、クライアントに関連する装置（たとえばクライアント装置）、オンチップ・システムおよび／または他の任意の好適なコンピューティング装置またはコンピューティング・システムであってもよい。
【００５２】
図示した例示的なコンピューティング装置５０２は、互いに通信上結合されている、処理システム５０４、一つまたは複数のコンピュータ可読媒体５０６および一つまたは複数のI/Oインターフェース５０８を含んでいる。図示していないが、コンピューティング装置５０２はさらに、上記のさまざまなコンポーネントを互いに結合する、システム・バスまたは他のデータおよびコマンド転送システムを含んでいてもよい。システム・バスは、多様なバス・アーキテクチャを利用する、メモリ・バスまたはメモリ・コントローラ、周辺バス、ユニバーサル・シリアル・バスおよび／またはプロセッサまたはローカル・バスといった、種々のバス構造の任意の一つまたは組み合わせを含むことができる。制御線およびデータ線といった、多様な他の例も考えられる。
【００５３】
処理システム５０４は、ハードウェアを使って一つまたは複数の動作を実行する機能を表わす。よって、処理システム５０４は、プロセッサ、機能ブロックなどとして構成されうるハードウェア要素５１０を含むものとして示されている。これは、特定用途向け集積回路または一つまたは複数の半導体を使う他の論理デバイスとしてハードウェアにおける実装を含んでいてもよい。ハードウェア要素５１０は、該ハードウェア要素が形成される材料やその中で用いられる処理機能によって制限されない。たとえば、プロセッサは、半導体（単数または複数）および／またはトランジスタ（たとえば電子集積回路（IC））から構成されていてもよい。そのようなコンテキストでは、プロセッサ実行可能命令は電子的に実行可能な命令であってもよい。
【００５４】
コンピュータ可読媒体５０６は、メモリ／記憶５１２を含むものとして示されている。メモリ／記憶５１２は、一つまたは複数のコンピュータ可読媒体に関連するメモリ／記憶容量を表わす。メモリ／記憶５１２は揮発性媒体（ランダム・アクセス・メモリ（RAM）のような）および／または不揮発性媒体（読み出し専用メモリ（ROM）、フラッシュメモリ、光ディスク、磁気ディスクなどのような）を含んでいてもよい。メモリ／記憶５１２は固定媒体（たとえばRAM、ROM、固定ハードドライブなど）も着脱可能媒体（たとえば、フラッシュメモリ、リムーバブルハードドライブ、光ディスクなど）も含んでいてもよい。コンピュータ可読媒体５０６は、後述するように多様な他の仕方で構成されてもよい。
【００５５】
入出力インターフェース（単数または複数）５０８は、ユーザーがコマンドおよび情報をコンピューティング装置５０２に入力することを許容するとともに、ユーザーおよび／または他のコンポーネントもしくは装置に対して、さまざまな入出力装置を使って情報が提示されることを許容する機能を表わす。入力装置の例は、キーボード、カーソル制御デバイス（たとえばマウス）、マイクロホン、スキャナ、タッチ機能（たとえば容量性または物理的なタッチを検出するよう構成されている他のセンサー）、カメラ（たとえばタッチに関わらないジェスチャーのような動きを検出するために、可視または赤外線周波数のような非可視波長を用いうるもの）などを含む。出力装置の例は、表示装置（たとえばモニターまたはプロジェクター）、スピーカー、プリンター、ネットワーク・カード、触覚応答装置などを含む。このように、コンピューティング装置５０２は、ユーザー対話をサポートするためにさらに後述するように、多様な仕方で構成されうる。
【００５６】
本稿ではさまざまな技法がソフトウェア、ハードウェア要素またはプログラム・モジュールの一般的なコンテキストにおいて記述されていることがある。一般に、そのようなモジュールは、特定のタスクを実行するまたは特定の抽象的なデータ型を実装するルーチン、プログラム、オブジェクト、要素、コンポーネント、データ構造などを含む。本稿で使われるところの用語「モジュール」、「機能」および「コンポーネント」は一般に、ソフトウェア、ファームウェア、ハードウェアまたはその組み合わせを表わす。本稿に記載される技法の特徴は、プラットフォーム独立である。これは、本技法が多様なプロセッサを有する多様な商用コンピューティング・プラットフォーム上で実装されうることを意味する。
【００５７】
記載されるモジュールおよび技法の実装は、何らかの形のコンピュータ可読媒体上に記憶されるまたはコンピュータ可読媒体を通じて伝送されうる。コンピュータ可読媒体は、コンピューティング装置５０２によってアクセスされうる多様な媒体を含んでいてもよい。限定ではなく例として、コンピュータ可読媒体は「コンピュータ可読記憶媒体」および「コンピュータ可読信号媒体」を含みうる。
【００５８】
「コンピュータ可読記憶媒体」は、単なる信号伝送、搬送波または信号自身とは対照的に、情報の持続的および／または非一時的な記憶を可能にする媒体および／またはデバイスを指しうる。よって、コンピュータ可読記憶媒体は非信号担持媒体を指す。コンピュータ可読記憶媒体は、コンピュータ可読命令、データ構造、プログラム・モジュール、論理要素／回路または他のデータのような情報の記憶のために好適な方法または技術において実装される、揮発性および不揮発性、リムーバブルおよび非リムーバブルな媒体および／または記憶装置といったハードウェアを含む。コンピュータ可読記憶媒体の例は、RAM、ROM、EEPROM、フラッシュメモリまたは他のメモリ技術、CD-ROM、デジタル多用途ディスク（DVD）または他の光学式記憶、ハードディスク、磁気カセット、磁気テープ、磁気ディスク記憶または他の磁気記憶装置または他の記憶装置、有体の媒体または所望される情報を記憶するのに好適でありコンピュータによってアクセスされうる製造物を含みうるが、これらに限られない。
【００５９】
「コンピュータ可読信号媒体」は、ネットワークを介するなどしてコンピューティング装置５０２のハードウェアに命令を送信するよう構成されている信号担持媒体を指しうる。信号媒体は典型的には、搬送波、データ信号または他の転送機構のような変調されたデータ信号において、コンピュータ可読命令、データ構造、プログラム・モジュールまたは他のデータを具現してもよい。信号媒体は任意の情報送達媒体をも含む。用語「変調されたデータ信号」は、その特性の一つまたは複数が当該信号中で情報をエンコードするような仕方で設定または変更されている信号を意味する。限定ではなく例として、通信媒体は、有線ネットワークまたは直接有線接続のような有線媒体および音響、RF、赤外線または他の無線媒体のような無線媒体を含む。
【００６０】
先述したように、ハードウェア要素５１０およびコンピュータ可読媒体５０６は、本稿に記載される技法の少なくともいくつかの側面を実装するためにいくつかの実施形態において用いられうるハードウェア形態で実装される命令、モジュール、プログラム可能デバイス論理および／または固定デバイス論理を表わす。ハードウェアは、集積回路またはオンチップ・システム、特定用途向け集積回路（ASIC）、フィールドプログラム可能ゲートアレイ（FPGA）、複合プログラム可能論理デバイス（CPLD）およびシリコンもしくは他のハードウェア・デバイスでの他の実装のコンポーネントを含んでいてもよい。このコンテキストにおいて、ハードウェアは、前記ハードウェアならびに実行のための命令を記憶するために利用されるハードウェア、たとえば先述したコンピュータ可読記憶媒体によって具現される命令、モジュールおよび／または論理によって定義されるプログラム・タスクを実行する処理装置として動作してもよい。
【００６１】
以上の組み合わせが、本稿に記載されるさまざまな技法およびモジュールを実装するために用いられてもよい。よって、ソフトウェア、ハードウェアまたは実行可能モジュールは、何らかの形のコンピュータ可読記憶媒体上におよび／または一つまたは複数のハードウェア要素５１０によって具現される一つまたは複数の命令および／または論理として実装されてもよい。コンピューティング装置５０２は、ソフトウェアおよび／またはハードウェア・モジュールに対応する特定の命令および／または機能を実装するよう構成されていてもよい。よって、コンピューティング装置５０２によって実行可能なモジュールのソフトウェアとしての実装は少なくとも部分的には、ハードウェアにおいて、たとえばコンピュータ可読記憶媒体および／または処理システムのハードウェア要素５１０の使用を通じて達成されてもよい。命令および／または機能は、本稿に記載される技法、モジュールおよび例を実装するよう一つまたは複数の製造物（たとえば、一つまたは複数のコンピューティング装置５０２および／または処理システム５０４）によって実行可能／動作可能であってもよい。
【００６２】
図５にさらに示されるように、例示的なシステム５００は、パーソナル・コンピュータ（PC）、テレビジョン装置および／またはモバイル装置上でアプリケーションを走らせるときのシームレスなユーザー経験のための普遍的な環境を可能にする。サービスおよびアプリケーションは、アプリケーションを利用する、ビデオ・ゲームをプレイする、ビデオを見るなどの間に一つの装置から次の装置に移行するときに、共通のユーザー経験のために、三つすべての環境において実質的に同様に走る。
【００６３】
例示的なシステム５００では、複数の装置が中央コンピューティング装置を通じて相互接続される。中央コンピューティング装置は、それら複数の装置にローカルであってもよく、あるいはそれらの複数の装置からはリモートに位置されていてもよい。ある実施形態では、中央コンピューティング装置は、ネットワーク、インターネットまたは他のデータ通信リンクを通じてそれら複数の装置に接続される一つまたは複数のサーバー・コンピュータのクラウドであってもよい。
【００６４】
ある実施形態では、この相互接続アーキテクチャは、それら複数の装置のユーザーに対して共通かつシームレスな経験を提供するために、機能が複数の装置を横断して送達されることを可能にする。それら複数の装置のそれぞれは、異なる物理的な要件および機能をもつことがあり、中央コンピューティング装置は、当該装置に合わせて調整されておりかつそれでいてすべての装置に共通である経験を当該装置に送達することを可能にするためにプラットフォームを使う。ある実施形態では、ターゲット装置のクラスが生成され、経験が装置の一般的なクラスに合わせて調整される。装置のクラスは物理的な特徴、使用の型または装置の他の一般的な特性によって定義されてもよい。
【００６５】
さまざまな実装では、コンピューティング装置５０２は、コンピュータ５１４、モバイル５１６およびテレビジョン５１８使用などのために多様な異なる構成を取りうる。これらの構成のそれぞれは、一般に異なる構造および機能を有することがある装置を含み、よってコンピューティング装置５０２は、それら異なる装置クラスの一つまたは複数に従って構成されうる。たとえば、コンピューティング装置５０２は、パーソナル・コンピュータ、デスクトップ・コンピュータ、マルチスクリーン・コンピュータ、ラップトップ・コンピュータ、ネットブックなどを含むコンピュータ５１４クラスの装置として実装されてもよい。
【００６６】
コンピューティング装置５０２は、携帯電話、携帯音楽プレーヤー、携帯ゲーム機、タブレット・コンピュータ、マルチスクリーン・コンピュータなどといったモバイル装置を含むモバイル５１６クラスの装置として実装されてもよい。コンピューティング装置５０２は、カジュアルな視聴環境における一般により大きなスクリーンをもつまたは該スクリーンに接続される装置を含むテレビジョン５１８クラスの装置として実装されてもよい。これらの装置は、テレビジョン、セットトップボックス、ゲーム・コンソールなどを含む。
【００６７】
本稿に記載された技法は、コンピューティング装置５０２のこれらさまざまな構成によってサポートされてもよく、ナビゲーション・モジュール１１４を含めることを通じて示されるような、本稿に記載される技法の特定の例に限定されない。ナビゲーション・モジュール１１４のこの機能は、全部または部分的に、下記で述べるようなプラットフォーム５２２を介した「クラウド」５２０を通じてなど、分散式システムの使用を通じて実装されてもよい。
【００６８】
クラウド５２０は、資源５２４のためのプラットフォーム５２２を含むおよび／または代表する。プラットフォーム５２２は、クラウド５２０のハードウェア（たとえばサーバー）およびソフトウェア資源の基礎的な機能を抽象化する。資源５２４は、コンピューティング装置５０２からリモートであるサーバー上でコンピュータ処理が実行されている間に利用されることができるアプリケーションおよび／またはデータを含んでいてもよい。資源５２４は、インターネットを通じておよび／またはセルラーまたはWi-Fiネットワークのような加入者ネットワークを通じて提供されるサービスをも含むことができる。
【００６９】
プラットフォーム５２２は、コンピューティング装置５０２を他のコンピューティング装置と接続するための資源および機能を抽象化してもよい。プラットフォーム５２２は、プラットフォーム５２２を介して実装される資源５２４のための遭遇される需要に対して対応するレベルのスケールを提供するよう資源のスケーリングを抽象化するはたらきをしてもよい。よって、相互接続された装置実施形態において、本稿に記載される機能の実装は、システム５００を通じて分散されていてもよい。たとえば、機能は、部分的にはコンピューティング装置５０２上に、またクラウド５２０の機能を抽象化するプラットフォーム５２２を介して実装されてもよい。
【００７０】
〈結語〉
本発明は、後続的な特徴および／または方法論的な工程に固有の言辞において記載されてきたが、付属の請求項において定義される発明は必ずしも記載される特定の特徴または工程に限定されるものではないことは理解されるものとする。むしろ、そうした特定の特徴および工程は、特許請求される発明を実装する例示的な形として開示されているのである。
いくつかの態様を記載しておく。
〔態様１〕
コンピューティング装置によって、入力を、パン・アニメーションに対応すると認識する段階と；
コンピューティング装置によって出力されるユーザー・インターフェースにおいて前記パン・アニメーションが進む距離を計算する段階であって、前記距離は、所定の最大距離によって制限される、段階と；
前記パン・アニメーションを、前記コンピューティング装置によって、計算された距離を進むよう出力する段階とを含む、
方法。
〔態様２〕
前記入力が、前記コンピューティング装置のタッチ機能を使って検出されるタッチ入力である、態様１記載の方法。
〔態様３〕
前記最大距離が、前記コンピューティング装置によって表示される前記ユーザー・インターフェースに対応する表示領域のサイズに基づいて定義される、態様１記載の方法。
〔態様４〕
前記表示領域のサイズが、前記ユーザー・インターフェースが表示されるウィンドーによって定義される、態様３記載の方法。
〔態様５〕
前記表示領域のサイズが、前記ユーザー・インターフェースを表示するために使われる表示装置によって定義される、態様３記載の方法。
〔態様６〕
前記距離が、前記入力に関連する速度に基づいて計算される、態様１記載の方法。
〔態様７〕
前記パン・アニメーションを出力する段階が、前記計算された距離を進むよう前記入力に関連する速度に減速率を適用することを含む、
態様１記載の方法。
〔態様８〕
態様１記載の方法であって、さらに：
前記パン・アニメーションの出力中に受領されたもう一つの入力を、もう一つのパン・アニメーションに対応すると認識する段階と；
前記コンピューティング装置によって出力される前記ユーザー・インターフェースにおいて前記もう一つのパン・アニメーションが進むもう一つの距離を計算する段階であって、前記もう一つの距離は、前記出力されたパン・アニメーションの距離を計算するために使われた前記所定の最大距離よりも大きいもう一つの所定の最大距離によって制限される、段階と；
前記もう一つのパン・アニメーションを、前記コンピューティング装置によって、計算された前記もう一つの距離を進むよう出力する段階とを含む、
方法。
〔態様９〕
前記パン・アニメーションの出力を実行するために使われる時間を計算する段階であって、前記時間は所定の最大時間によって制限される、段階をさらに含む、
態様１記載の方法。
〔態様１０〕
前記時間が前記入力に関連する速度に基づく、態様９記載の方法。
【図１】
0006522343.tif 000002
【図２】
0006522343.tif 000003
【図３】
0006522343.tif 000004
【図４】
0006522343.tif 000005
【図５】
0006522343.tif 000006