(57)【要約】【課題】  結合されたオブジェクトレベルおよびプロパティレベルのキーフレーム処理システム、方法およびユーザインターフェースを提供すること。【解決手段】  第１の複合キーフレームが第１の時間で作成され、次いでオブジェクトのための第２の時間が受信され、もう１つの複合キーフレームが第２の時間で作成される。オブジェクトのための追加の時間を受信し、後に関連複合キーフレームの作成を追加の時間の各々で行う。プロパティへの変更を、第２の複合キーフレームの作成に先立って受信し、この場合、第２の複合キーフレームはこの変更を組み込む。【選択図】  図４
2005301995.tif 000002
【特許請求の範囲】
【請求項１】
オブジェクトをキーフレーム処理する方法であって、
前記オブジェクトのための少なくとも１つのプロパティおよび時間を識別するステップと、
第１の複合キーフレームを前記時間で作成するステップと、
前記オブジェクトのための第２の時間を受信するステップと、
第２の複合キーフレームを前記第２の時間で作成するステップと
を備えることを特徴とする方法。
【請求項２】
前記オブジェクトのための追加の時間を受信し、関連複合キーフレームを前記追加の時間の各々で作成するステップをさらに備えることを特徴とする請求項１に記載の方法。
【請求項３】
前記オブジェクトのための前記第２の時間を受信するステップは、プレイヘッドをユーザインターフェース内のタイムライン上の位置へ移動させるステップであって、前記位置は前記第２の時間に対応するステップを備えることを特徴とする請求項１に記載の方法。
【請求項４】
前記第１の複合キーフレームの作成に先立ってアニメートモードに入るステップをさらに備えることを特徴とする請求項１に記載の方法。
【請求項５】
前記第１および第２の複合キーフレームの各々は、関連付けられた時間で前記オブジェクト上の前記少なくとも１つのプロパティの状態を表現することを特徴とする請求項１に記載の方法。
【請求項６】
前記第２の複合キーフレームの作成に先立って、前記少なくとも１つのプロパティへの変更を受信するステップであって、前記第２の複合キーフレームは、前記少なくとも１つのプロパティへの前記変更を組み込むステップをさらに備えることを特徴とする請求項１に記載の方法。
【請求項７】
受信された変更が受信される時間で前記少なくとも１つのプロパティのための属性キーフレームが存在しない場合、属性キーフレームを、前記少なくとも１つのプロパティへの前記受信された変更に応答して作成するステップと、前記受信された変更が受信される前記時間で既存の属性キーフレームが存在する場合、前記既存の属性キーフレームを、前記少なくとも１つのプロパティへの前記受信された変更に応答して変更するステップとをさらに備えることを特徴とする請求項６に記載の方法。
【請求項８】
オブジェクトをキーフレーム処理する方法であって、
第１の時間で前記オブジェクトのための属性のための値を受信するステップと、
前記属性に対応する属性キーフレームが前記第１の時間に存在する場合、前記属性のための受信された値に応答して前記属性キーフレームを修正するステップと、
そうでない場合、オブジェクトキーフレームが存在する場合、隣接するオブジェクトキーフレームを属性キーフレームによりポピュレートするステップと
を備えることを特徴とする方法。
【請求項９】
前記第１の時間に属性キーフレームもオブジェクトキーフレームも存在しない場合、前記第１の時間に属性キーフレームを作成するステップをさらに備えることを特徴とする請求項８に記載の方法。
【請求項１０】
前記隣接するオブジェクトキーフレームをポピュレートするステップは、
前記隣接するオブジェクトキーフレームが前記第１の時間より遅い時間に存在し、属性キーフレームが前記第１の時間より遅い時間に存在する場合、第１の値を、前記第１の時間より遅い時間に存在する前記属性キーフレームの値に設定するステップと、
前記隣接するオブジェクトキーフレームが前記第１の時間より遅い時間に存在し、属性キーフレームが前記第１の時間より遅い時間に存在しない場合、前記第１の値を、記録された最後の属性キーフレームの値、または何も存在しない場合はベース値に設定するステップと、
新しい属性キーフレームを、前記隣接するオブジェクトキーフレームで、前記第１の値を使用して作成するステップと
を備えることを特徴とする請求項８に記載の方法。
【請求項１１】
存在するオブジェクトキーが前記第１の時間より早い時間にあり、属性キーフレームが前記第１の時間より早い時間に存在する場合、第２の値を、前記第１の時間より早い時間に存在する前記属性キーフレームの値に設定するステップと、
前記存在するオブジェクトキーが前記第１の時間より早い時間にあり、属性キーフレームが前記第１の時間より早い時間に存在しない場合、前記第２の値を、前記属性のための最初に受信された値の値に設定するステップと、
新しい属性キーフレームを、前記隣接するオブジェクトキーフレームで、前記第２の値を使用して作成するステップと
をさらに備えることを特徴とする請求項１０に記載の方法。
【請求項１２】
前記隣接するオブジェクトキーフレームをポピュレートするステップは、
存在するオブジェクトキーが前記第１の時間より早い時間にあり、属性キーフレームが前記第１の時間より早い時間に存在する場合、第１の値を、前記第１の時間より早い時間に存在する前記属性キーフレームの値に設定するステップと、
前記存在するオブジェクトキーが前記第１の時間より早い時間にあり、属性キーフレームが前記第１の時間より早い時間に存在しない場合、前記第１の値を、前記属性のための最初に受信された値の値に設定するステップと、
新しい属性キーフレームを、前記隣接するオブジェクトキーフレームで、前記第１の値を使用して作成するステップと
を備えることを特徴とする請求項８に記載の方法。
【請求項１３】
ディスプレイおよびユーザインターフェース選択デバイスを含む、グラフィカルユーザインターフェースを有するコンピュータシステムにおいて、前記ディスプレイ上でタイムライン要素を介してオブジェクトをキーフレーム処理する方法であって、
前記ユーザインターフェース選択デバイスが前記オブジェクトのための少なくとも１つのプロパティおよび時間を選択することを示す選択信号を受信するステップと、
第１の複合キーフレームを、前記タイムライン要素上の前記時間で表示するステップと、
前記ユーザインターフェース選択デバイスが前記オブジェクトのための第２の時間を選択することを示す選択信号を受信するステップと、
第２の複合キーフレームを、前記タイムライン要素上の前記第２の時間で表示するステップと
を備えることを特徴とする方法。
【請求項１４】
前記ユーザインターフェース選択デバイスが前記オブジェクトのための追加の時間を選択することを示す追加の選択信号を受信するステップと、関連複合キーフレームを前記タイムライン要素上の前記追加の時間の各々で表示するステップとをさらに備えることを特徴とする請求項１３に記載の方法。
【請求項１５】
前記ユーザインターフェース選択デバイスが前記オブジェクトのための第２の時間を選択することを示す前記選択信号を受信するステップは、ユーザがプレイヘッドを前記タイムライン要素内のタイムライン上の位置へ移動させることを示す実行信号を受信するステップであって、前記位置は前記第２の時間に対応するステップを備えることを特徴とする請求項１３に記載の方法。
【請求項１６】
ユーザが前記第１の複合キーフレームの表示に先立ってアニメートモードを選択することを示す実行信号を受信するステップをさらに備えることを特徴とする請求項１３に記載の方法。
【請求項１７】
前記ユーザインターフェース選択デバイスが前記第２の複合キーフレームの表示に先立って前記少なくとも１つのプロパティへの変更を選択することを示す選択信号を受信するステップであって、前記第２の複合キーフレームは、前記少なくとも１つのプロパティへの前記変更を組み込むステップをさらに備えることを特徴とする請求項１３に記載の方法。
【請求項１８】
受信された変更が受信される時間で前記少なくとも１つのプロパティのための属性キーフレームが存在しない場合、属性キーフレームを、前記タイムライン要素上で前記少なくとも１つのプロパティへの前記受信された変更に応答して表示するステップと、前記受信された変更が受信される前記時間で既存の表示された属性キーフレームが存在する場合、前記既存の表示された属性キーフレームを、前記少なくとも１つのプロパティへの前記受信された変更に応答して変更するステップとをさらに備えることを特徴とする請求項１７に記載の方法。
【請求項１９】
オブジェクトをキーフレーム処理するためのタイムライン要素をその上にレンダリングした表示デバイスであって、キーフレーム処理は、前記オブジェクトのための少なくとも１つのプロパティおよび時間の選択を示す選択信号を受信すること、第１の複合キーフレームを前記タイムライン要素上の前記時間で表示すること、前記オブジェクトのための第２の時間の選択を示す選択信号を受信すること、および、第２の複合キーフレームを、前記タイムライン要素上の前記第２の時間で表示することによって行うことを特徴とする表示デバイス。
【請求項２０】
前記タイムライン要素は、前記オブジェクトのための追加の時間の選択を示す追加の選択信号を受信するように、および、関連複合キーフレームを前記タイムライン要素上の前記追加の時間の各々で表示するように適合されることを特徴とする請求項１９に記載の表示デバイス。
【請求項２１】
前記タイムライン要素は可動プレイヘッドを備えることを特徴とする請求項１９に記載の表示デバイス。
【請求項２２】
前記タイムライン要素は、ユーザがアニメートモードを選択することを示す実行信号を受信するように適合されることを特徴とする請求項１９に記載の表示デバイス。
【請求項２３】
前記タイムライン要素は、前記第２の複合キーフレームの表示に先立って前記少なくとも１つのプロパティへの変更の選択を示す選択信号を受信するように適合され、前記第２の複合キーフレームは、前記少なくとも１つのプロパティへの前記変更を組み込むことを特徴とする請求項１９に記載の表示デバイス。
【請求項２４】
前記タイムライン要素は、受信された変更が受信される時間で前記少なくとも１つのプロパティのための属性キーフレームが存在しない場合、属性キーフレームを、前記タイムライン要素上で前記少なくとも１つのプロパティへの前記受信された変更に応答して表示するように、および、前記受信された変更が受信される前記時間で既存の表示された属性キーフレームが存在する場合、前記既存の表示された属性キーフレームを、前記少なくとも１つのプロパティへの前記受信された変更に応答して変更するようにさらに適合されることを特徴とする請求項２３に記載の表示デバイス。
【請求項２５】
コンピュータシステムにおいて表示デバイス上でオブジェクトのキーフレーム処理を表示するための方法であって、
第１の時間で前記オブジェクトのための属性のための値の指示をユーザから受信するステップと、
受信されたユーザ指示による前記属性に対応する属性キーフレームが前記第１の時間に存在する場合、前記表示デバイス上で、前記属性のための受信された値に応答して前記属性キーフレームを表示するステップと、
そうでない場合、オブジェクトキーフレームが存在する場合、前記表示デバイス上で、隣接するオブジェクトキーフレームを属性キーフレームと共に表示するステップとを備えることを特徴とする方法。
【請求項２６】
前記第１の時間に属性キーフレームもオブジェクトキーフレームも存在しない場合、前記第１の時間に属性キーフレームを表示するステップをさらに備えることを特徴とする請求項２５に記載の方法。
【請求項２７】
前記表示デバイス上で、前記隣接するオブジェクトキーフレームを表示するステップは、
前記隣接するオブジェクトキーフレームが前記第１の時間より遅い時間に存在し、属性キーフレームが前記第１の時間より遅い時間に存在する場合、第１の値を、前記第１の時間より遅い時間に存在する前記属性キーフレームの値に設定するステップと、
前記隣接するオブジェクトキーフレームが前記第１の時間より遅い時間に存在し、属性キーフレームが前記第１の時間より遅い時間に存在しない場合、前記第１の値を、記録された最後の属性キーフレームの値、または何も存在しない場合はベース値に設定するステップと、
新しい属性キーフレームを、前記隣接するオブジェクトキーフレームで、前記第１の値を使用して表示するステップと
を備えることを特徴とする請求項２５に記載の方法。
【請求項２８】
存在するオブジェクトキーが前記第１の時間より早い時間にあり、属性キーフレームが前記第１の時間より早い時間に存在する場合、第２の値を、前記第１の時間より早い時間に存在する前記属性キーフレームの値に設定するステップと、
存在するオブジェクトキーが前記第１の時間より早い時間にあり、属性キーフレームが前記第１の時間より早い時間に存在しない場合、前記第２の値を、前記属性のための最初に受信された値の値に設定するステップと、
新しい属性キーフレームを、前記隣接するオブジェクトキーフレームで、前記第２の値を使用して表示するステップと
をさらに備えることを特徴とする請求項２７に記載の方法。
【請求項２９】
前記表示デバイス上で、前記隣接するオブジェクトキーフレームを表示するステップは、
存在するオブジェクトキーが前記第１の時間より早い時間にあり、属性キーフレームが前記第１の時間より早い時間に存在する場合、第１の値を、前記第１の時間より早い時間に存在する前記属性キーフレームの値に設定するステップと、
存在するオブジェクトキーが前記第１の時間より早い時間にあり、属性キーフレームが前記第１の時間より早い時間に存在しない場合、前記第１の値を、前記属性のための最初に受信された値の値に設定するステップと、
新しい属性キーフレームを、前記隣接するオブジェクトキーフレームで、前記第１の値を使用して表示するステップと
を備えることを特徴とする請求項２５に記載の方法。
【請求項３０】
ディスプレイおよびユーザインターフェース選択デバイスを含む、グラフィカルユーザインターフェースを有するコンピュータシステムにおいて、オンオブジェクトユーザインターフェースを前記ディスプレイ上で提供する方法であって、
前記ユーザインターフェース選択デバイスがオブジェクトを選択することを示す選択信号を受信するステップと、
前記ユーザインターフェース選択デバイスが変更するための前記オブジェクトのプロパティを選択することを示す選択信号を受信するステップと、
ユーザインターフェースを前記オブジェクトに近接して表示するステップと
を備えることを特徴とする方法。
【請求項３１】
表示されたユーザインターフェースは、オーサリングツールユーザインターフェース内で行われた変更がアニメーションシステムによって記録中である時を示すことを特徴とする請求項３０に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般にコンピュータグラフィックスの分野に関する。より詳細には、本発明はアニメーションオーサリングツールに関する。
【背景技術】
【０００２】
アニメーションオーサリングツールのための業界標準は、時の中の１つの点（時点）として定義されるキーフレーム（注．アニメーションの中でキーとなる変化を属性の形態で定義するフレーム）、および、その時点で発生するプロパティの変更のセットを使用する。プロパティは、例えば、オブジェクトの色からシーンのコンテンツ全体まで、いかなる物とすることもできる。Ｍａｃｒｏｍｅｄｉａ  Ｆｌａｓｈなど、いくつかのツールはキーフレームをレイヤレベルで表現し、その時点のそのレイヤ内のすべてのオブジェクトの全体の状態を格納する。Ａｄｏｂｅ  Ｌｉｖｅ  Ｍｏｔｉｏｎなど、他のツールはキーフレームをオブジェクトの属性において表現するので、インジケータがオブジェクトのあらゆるプロパティ上に格納され、インジケータはそのプロパティがアニメートされるかどうかを伝える。両方の手法にはいくつかの欠点がある。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
キーフレームをレイヤレベルで表現し、その時点のそのレイヤ内のすべてのオブジェクトの全体の状態を格納するという欠点は、ユーザがユーザインターフェースから、任意の特定のオブジェクトにおいてどのプロパティがアニメートされているか判定することが困難であることである。この手法のもう１つの欠点は、ユーザが、プロパティの値をこれらのキーフレームのうち１つに渡ってアニメートすることが非常に困難であることである。例えば、ユーザがあるオブジェクトの色の値を赤から青へ、１秒で開始して３秒で終了するように変更させることを望む場合、１秒で赤色を含むキーフレーム、および、３秒で青色を含むキーフレームをセットアップすることによって、これを行うことができる。次いで、ユーザが時間２でオブジェクトの移動を開始させたいと望むならば、時間２でキーフレームを設定することによってこれを行うことができるであろう。しかし、キーフレームモデルのため、このキーフレームはまた時間２でも色の値を含むようになる。ユーザがこれまでにこのキーフレームの時間の値を変更した場合、色のアニメーションも変化するようになる。ユーザがこれを解決する方法は、そのキーフレーム内に格納された色の値を手動でリセットして、赤から青への滑らかな補間がリストアされるようにする以外にない。
【０００４】
キーフレームをオブジェクトの属性上でのみ表現する手法には、オブジェクトのいかなるプロパティをアニメートするためにも、ユーザはオブジェクトのすべてのプロパティのリスト中をサーチして、そのプロパティがアニメートされるようにスイッチを設定し、キーフレームがそのプロパティのために格納されることを可能にしなければならないという欠点がある。さらに、この手法は、ユーザがアニメートすることを望む各プロパティ上でボタンを選択またはクリックすることを必要とする。これは、アニメーションを作成しようと試みている場合、煩わしい。また、この手法を使用すると、ユーザが画面上の要素についてのすべてのプロパティを見ることができない場合、どの時間でオブジェクトの特定のプロパティがアニメートされているかを迅速に決定することが困難である。
【０００５】
現在市場に出ている２Ｄアニメーションツールの多数（Ｆｌａｓｈ、Ａｆｔｅｒ  Ｅｆｆｅｃｔｓなど）は、アニメーションをそれらの主要なオーサリングのモードとして有する。すなわち、ユーザがツールと対話中である大抵の時間、ユーザはアニメーションで作業中である。しかし、その主要タスクがユーザインターフェースのデザインであるツールとしては、ユーザがアニメーションについて考える必要なしにシーンと対話することができることが、より望ましい。例えば、ユーザは、小刻みに動くアニメーションを、自分のフォーム上に配置したボタン上にキーフレーム処理（ｋｅｙｆｒａｍｉｎｇ、属性を設定することやキーフレームを作成することなどのキーフレームに関わる情報処理）し、次いで、ボタンがフォーム上の正しい位置にないと決定する場合がある。小刻みに動くアニメーション内のすべてのキーフレームを修正することなく、ユーザがこれを行うことができることが望ましい。他の２Ｄツールでは、ユーザは、現在のタイムマーカがデザインまたはオーサリングで使用されたタイムライン内のどこにあるか（および、いくつかのツールでは、編集中のプロパティをキーフレーム処理することができるかどうか）を、常に認識していなければならない。
【０００６】
前述に鑑みて、従来技術の制限および欠点を克服するシステムおよび方法が求められている。
【課題を解決するための手段】
【０００７】
本発明は、結合されたオブジェクトレベルおよびプロパティレベルのキーフレーム処理システム、方法およびユーザインターフェースを目的とする。ユーザは、プロパティへのいかなる変更もキーフレーム処理のアクション（例えば、作成または編集）として、タイムラインによって指示される現在時間で記録されるモードに入ることができる。キーフレームがこのモードで作成される場合、周囲のオブジェクトレベルキーフレームが検査されて、ユーザがオブジェクトレベルキーフレームから期待する機能性が維持されることが保証される。ユーザが明示的に、オブジェクトレベルキーフレームにスパンする属性のアニメーションを作成する場合、そのアニメーションのためのスパンは、ユーザが編集する通りに維持される。
【０００８】
例示的実施形態は、オブジェクトをキーフレーム処理する方法を含み、この方法において、オブジェクトのための少なくとも１つのプロパティおよび時間が識別される。例えば図１〜３に関してさらに後述するように、属性キーフレームは属性レベルのキーフレームであり、複合キーフレームはオブジェクトレベルのキーフレームである。複合キーフレームは本質的に、すべての可能な属性における「仮想属性キーフレーム」のためのプレースホルダとして考えることができる。後述のように、他の属性キーフレームはこの仮想属性キーフレームに強制的に、それらの属性においてそれ自体を明示させる。
【０００９】
第１の複合キーフレームが第１の時間で作成され、次いでオブジェクトのための第２の時間が受信され、これは例えば、タイムライン要素内のプレイヘッドを移動させることによって行われる。もう１つの複合キーフレームが第２の時間で作成される。オブジェクトのための追加の時間を受信し、後に関連複合キーフレームの作成を追加の時間の各々で行う。プロパティへの変更を、第２の複合キーフレームの作成に先立って受信し、この場合、第２の複合キーフレームはこの変更を組み込む。加えて、受信された変更が受信される時間でプロパティのための属性キーフレームが存在しない場合、属性キーフレームを、受信されたプロパティ変更に応答して作成する。代替として、受信された変更が受信される時間で既存の属性キーフレームが存在する場合、既存の属性キーフレームを、受信されたプロパティ変更に応答して変更することができる。
【００１０】
追加の実施形態によれば、第１の時間でオブジェクトのための属性のための値を受信すること、および次いで、この属性に対応する属性キーフレームが第１の時間に存在する場合、属性のための受信された値に応答して属性キーフレームを修正すること、そうでない場合、オブジェクトキーフレームが存在する場合、隣接するオブジェクトキーフレーム（本明細書で複合キーフレームとも称する）を属性キーフレームによりポピュレートすることによって、オブジェクトをキーフレーム処理することができる。
【００１１】
隣接するオブジェクトキーフレームをポピュレートすることは、（１）隣接するオブジェクトキーフレームが第１の時間より遅い時間に存在し、属性キーフレームが第１の時間より遅い時間に存在する場合、第１の値を、第１の時間より遅い時間に存在する属性キーフレームの値に設定すること、または（２）隣接するオブジェクトキーフレームが第１の時間より遅い時間に存在し、属性キーフレームが第１の時間より遅い時間に存在しない場合、第１の値を、属性のための最初に受信された値の値に設定すること、および、新しい属性キーフレームを、隣接するオブジェクトキーフレームで、第１の値を使用して作成することを備えてもよい。
【００１２】
加えて、隣接するオブジェクトキーフレームをポピュレートすることは、（１）存在するオブジェクトキーが第１の時間より早い時間にあり、属性キーフレームが第１の時間より早い時間に存在する場合、第１の値を、第１の時間より早い時間に存在する属性キーフレームの値に設定すること、または（２）存在するオブジェクトキーが第１の時間より早い時間にあり、属性キーフレームが第１の時間より早い時間に存在しない場合、第１の値を、属性のための最初に受信された値の値に設定すること、および、新しい属性キーフレームを、隣接するオブジェクトキーフレームで、第１の値を使用して作成することを備えてもよい。
【００１３】
本発明の追加の特徴および利点は、添付の図面を参照して進行する、以下の例示的実施形態の詳細な説明から明らかになるであろう。
【００１４】
前述の要約、ならびに以下の好ましい実施形態の詳細な説明は、付属の図面と共に読まれる場合によりよく理解される。本発明を例示するため、図面において本発明の例示的構成を示すが、本発明は、開示された特定の方法および手段に限定されない。図面においては以下の通りである。
【発明を実施するための最良の形態】
【００１５】
本発明は、結合されたオブジェクトレベルおよびプロパティレベルのキーフレーム処理システム、方法およびユーザインターフェースを対象とする。本発明による例示的キーフレームは、特定の時間でのオブジェクトのジオメトリおよびプロパティ値を備え、個々のオブジェクトに対して作成することができる。このようなキーフレームを、オブジェクトが特定の時間でアニメートされる場合に示すことができる。ユーザは、プロパティ（本明細書で属性とも称する）へのいかなる変更も、作成または編集などのキーフレーム処理のアクションとして、タイムライン要素によって、あるいはタイムライン要素上に指示される現在時間で記録されるモードに入ることができる。キーフレームがこのモードで作成される場合、周囲のオブジェクトレベルキーフレームが検査されて、ユーザがオブジェクトレベルキーフレームから期待する機能性が維持されることが保証される。ユーザが明示的に、オブジェクトレベルキーフレームにスパンする属性のアニメーションを作成する場合、そのアニメーションのためのスパンは、ユーザが編集する通りに維持される。
【００１６】
例示的キーフレームオーサリングユーザインターフェース（ＵＩ）を図１に示し、これは複合キーフレーム１０および属性キーフレーム２０を備える。例示的キーフレームオーサリングＵＩタイムライン要素５は、キーフレームをオブジェクトレベル（複合キーフレームと呼ばれる）および属性レベル（属性キーフレームと呼ばれる）で表現し、キーフレーム処理の両方のモデルを活用して、キーフレーム処理のアニメーションの作成をより効率的にする。特定の時間に移動させてプロパティ、キーフレームなどを設定することができるプレイヘッド７が提供される。
【００１７】
新しい属性キーフレーム２０が作成される場合、これはオブジェクトレベルで複合（またはオブジェクトレベル）キーフレーム１０と共にタイムライン上に表現される。オブジェクトレベルキーフレームを明示的に作成することができ、このオブジェクトレベルキーフレームは、後述のキーフレームを追加するためのビヘイビアが与えられると、その時間でこれらの属性の各々のための属性キーフレームを実際に作成することなく、その時点でオブジェクト上の属性の全体の状態を効果的に表現するようになる。例えば、ユーザがオブジェクトをシーン内で選択し、次いで「新しいキーフレーム」ボタンを選択する（あるいは、実質的に類似の機能を作動または選択する）場合、新しいオブジェクトレベルキーフレームが現在時間で作成される。新しい属性キーフレームが、その複合キーフレームに近接した時間の領域内に追加される場合、その複合キーフレームは属性キーフレームによりポピュレートされて、その時間のオブジェクトの状態が維持される。
【００１８】
ユーザがキーフレームをアニメーションに追加する場合、オブジェクトレベルキーフレームは、新たにアニメートされた属性のスパンを決定するために使用される。ユーザが、オブジェクトを（１０，１０）の位置から（１００，１００）の位置へ、時間１から時間２まで移動させるアニメーションを作成しているシナリオを考察する。このような例示的タイムライン要素（ＵＩの一部として提供または表示される場合がある）を図２に示し、この図では、オブジェクト「楕円１」は第１の位置Ａ（Ａは、下にある位置（１０，１０）に対応すると仮定する）から第２の位置Ｂ（Ｂは、下にある位置（１００，１００）に対応すると仮定する）へ移動するように設定される。そのため、時間１で、オブジェクトレベルキーフレームが開始のために生成され、時間２で、オブジェクトレベルキーフレームが終了のために生成される。
【００１９】
ここで、ユーザが、オブジェクトをその元のサイズの１５０％まで拡大し、時間１から時間２までの動きの間にその元のサイズまで戻すことを望むと仮定する。本発明によれば、図３のように、現在時間マーカ（すなわち、プレイヘッド７）を時間１．５まで移動させ、タイムライン要素が変更を記録中であることを確認し、その時点でスケールプロパティの値を１５０％に変更することによって、これを実施することができる。すなわち、時間１．５で、スケールが変更され、オブジェクトレベルのスナップショットが作成される。次いで、図４に関して説明するようなポピュレーションプロセスが使用されて、現在時間（時間１．５）での、近接したオブジェクトレベル（直前および直後、ここでは時間１および時間２のオブジェクトレベル）でのプロパティ（属性）キーフレームが決定される。従来の補間アルゴリズムを使用することができる。
【００２０】
より詳細には、ユーザがこの変更を図３のように行う場合、この新たに作成されたキーフレームより以前に存在する複合キーフレーム（ここでは、時間１の要素１２）が、時間において新たに作成されたキーフレームの直後の複合キーフレーム（ここでは、時間２の要素１６）と共に検査される。これらのキーフレームのいずれかまたは両方がオブジェクトのスケールのための属性キーフレームを有していない場合、スケールのための適切な値が、これらのキーフレームのために入力される。このシナリオでは、それぞれ１００％スケールの値のための属性キーフレーム２２、２６が、図３のように以前の複合キーフレーム１２の下に、および、次の複合キーフレーム１６の下に作成されるようになる。
【００２１】
上述の例示的プロセスのためのロジックを、図４の流れ図に関してより詳細に説明する。図４では、隣接するオブジェクトレベルキーフレームが検査およびポピュレートされる。新しいキーフレームが追加される場合、後進および前進が行われる。属性キーフレームが存在しない場合、またオブジェクトキーフレームも存在しない場合（早い時間および遅い時間で）、新しい属性キーフレームが作成され、オブジェクトレベルキーフレームの作成を引き起こす。
【００２２】
より詳細には、ステップ４０５で、属性値がアニメーションモードで変更される。ステップ４１０で、属性キーフレームが現在時間に存在するかどうか判定される。そうである場合、ステップ４９０でキーフレーム値が修正され、プロセスは完了する。しかし、属性キーフレームが現在時間に存在しない場合、ステップ４１５で、オブジェクトキーフレームが現在時間より遅くに存在するかどうか判定される。
【００２３】
ステップ４１５で、オブジェクトキーフレームが遅い時間に存在しない場合、ステップ４２０で、オブジェクトキーフレームが現在時間より早くに存在するかどうか判定される。そうでない場合、ステップ４９５で、新しい属性キーフレームが現在時間のために作成されるが、オブジェクトキーフレームが現在時間より早くに存在する場合、ステップ４２５で、この属性のための属性キーフレームが現在時間より早くにあるかどうか判定される。この属性のための属性キーフレームが現在時間より早くにある場合、ステップ４５５で、そのキーフレームでの値がそのキーフレームで維持される。この属性のための属性キーフレームが現在時間より早くにない場合、ステップ４５０で、プロパティの元の値がその値として維持される。いずれの場合も、ステップ４５０またはステップ４５５の後、ステップ４６０で、早い方のオブジェクトキーフレームが、ステップ４５０またはステップ４５５からの保持または維持された値の値を含むキーフレームによりポピュレートされる。次いで処理はステップ４９５に続き、新しい属性キーフレームが現在時間のために作成される。現在時間が時間＝０である場合、時間＝０は最小可能な時間値であるとみなされるので、より早い時間を見る必要はない。
【００２４】
ステップ４１５から、オブジェクトキーフレームが現在時間より遅くに存在すると判定される場合、ステップ４３０で、現在時間より遅くに存在するこの属性のための属性キーフレームがあるかどうか判定される。この属性のための属性キーフレームが現在時間より遅くに存在する場合、ステップ４４０で、そのキーフレームでの値がそのキーフレームで維持される。この属性のための属性キーフレームが現在時間より遅くにない場合、ステップ４３５で、使用される値は、記録された最後の属性キーフレームの値、または何も存在しない場合はベース値（予め決定することができる）である。いずれの場合も、ステップ４３５またはステップ４４０の後、ステップ４４５で、遅い方のオブジェクトキーフレームが、ステップ４３５またはステップ４４０からの保持または維持された値の値を含むキーフレームによりポピュレートされる。次いで処理は、上述のようなステップ４２０に続く。
【００２５】
図４に関して上述の例示的キーフレームポピュレーション方法は、新しいキーフレームの作成において発生する。現在時間マーカが既存の属性キーフレーム上にあり、キーフレーム処理が可能にされる間にその属性が修正される場合、その時間でのキーフレームの値が修正される。これにより、システムは、ユーザによって明示的に作成されたタイムスパンを維持することができる。例えば、ユーザが明示的にオブジェクトの属性を見て、２つの他の属性キーフレームの間である属性キーフレームを削除する場合、タイムスパンの境界となる属性キーフレームのいずれかが修正される場合はそのタイムスパンが維持されるようになる。
【００２６】
キーフレームでの値を記録するための例示的方法により、システムは、ユーザによっていかなるプロパティにも行われたすべての編集が自動的にアニメーションキーフレームを生成する対話のモードを、規定することができる。このモードには、例えば、ユーザが、キーフレームモードを切り替えるトグルボタンを押すことによって、入ることができる。このモードは、多数のキーフレームの高速作成を短期間内で可能にする。ユーザによって必要とされるクリックまたは他の入力の数は、他のキーフレーム処理用インターフェースよりも著しく低減される。
【００２７】
キーフレーム処理モード内の場合、ユーザが行うほぼあらゆる編集によりユーザがキーフレームを設定中であることを、ユーザに示すことが望ましくなる。これは好ましくは、インジケータを編集との関連で提供して、ユーザが実行したばかりの編集のためのキーフレームが記録されていることをユーザに通知することによって、実施される。このインジケータはまたユーザに、設定されたばかりのキーフレームをキャンセルするために、あるいは、行ったばかりの変更を解釈するための他のオプションを選ぶために、選択することができるボタンをも与える。このオンオブジェクトユーザインターフェースは変更との関連で提供され、そのため図５に関して、ユーザがオブジェクト５１０をシーン５００内でドラッグして、その位置を変更する場合、ＵＩ５２０がシーン内に現れるようになる。例えば、ユーザが色選択ＵＩ内でオブジェクトの色を変更する場合、オンオブジェクトユーザインターフェースが色エディタ上にポップアップされる。オンオブジェクトＵＩは、オーサリングツールＵＩの残りにおいて行われた変更がアニメーションシステムによって記録中である時を示す。プロパティがキーフレーム処理中に変更される場合、キーフレームが変更されたことを示すビジュアルインジケータがあることが望ましい。変更することができる項目には、例えば、ｘ、ｙ、高さ、幅、色、回転、スキューが含まれる。
【００２８】
シーン内のオブジェクトと対話する、２つの別々の方法があり、一方ではアニメーションが中心に扱われ、もう一方ではレイアウトが中心に扱われる。「アニメート」モードでは、ユーザは特に、アニメーションのためのキーフレームの作成を中心に扱うようにされる。ユーザがプロパティに行う変更は自動的に、これらのプロパティのアニメーションにおけるキーフレームとして記録されるようになる。「レイアウト」モードでは、ユーザの変更は、可能な場合はプロパティの非アニメート値への変更として解釈されるようになる。
【００２９】
要素における可能なプロパティのセットを分割する１つの例示的方法は、これらのプロパティを構成プロパティおよび非構成プロパティに分割することである。構成プロパティは、単純なオペレーションを通じて有意的に構成することができるプロパティである。例えば、フロートは、加算によって別の値と共に構成することができるので、構成プロパティ値である。非構成プロパティは、単純なオペレーションによって有意的に構成することができない。例えば、色値は、加算などのオペレーションを通じて構成することにより、全範囲外の状態および他の望ましくないビヘイビアを引き起こすようになるので、構成値ではない。
【００３０】
これらの２つのタイプのプロパティを区別する理由は、これらのプロパティがアニメートされる場合、構成プロパティをレイアウトモードで有意的に変更することはできるが、非構成プロパティをそうすることはできないからである。例えば、ユーザが要素の最上のプロパティ（その値はフロート）上でアニメーションを有し、次いでユーザがその要素をレイアウトモードで動かす場合、その変化をアニメーションにより有意的に構成することができる（要素はこの時、その現在位置からアニメートするようになる）。より具体的には、ユーザが最上のプロパティ上で規定したアニメーションは、要素上の現在の最上値に関連する。これは、最上のプロパティが、構成中である値を有するので、可能である（アニメーションエンジンは要素の元の位置を取り、アニメーションによって出力された値を加算して、要素の現在のアニメートされた位置を得る）。したがって、ユーザが要素をレイアウトモードで動かす場合、最上のプロパティのためのベース値が更新され、アニメーションエンジンは自動的に変更を選択し、要素の新しい位置からアニメートするようになる。
【００３１】
ユーザが、アニメートされた非構成プロパティをレイアウトモードで変更する場合、システムは、その変更を有意的にそのプロパティに組み込むことはできないことを示すことが望ましい。例えば、ユーザは、自分がレイアウトモードにいることを忘れて、キーフレームを現在時間で作成するつもりであったか、あるいは、ユーザは、そのプロパティのベース値を変更するなど、何か他のことを考えていた。この場合、ユーザに、キーフレームを作成することなく新しい値を現在のアニメーションに組み込むことはできないことが警告されることが望ましい。加えて、マーカがタイムラインに追加されて、このアクションが発生するであろう場所が示されることが望ましく、また、この値がシーン内で可視となることが望ましい。ユーザがアニメートモードに入る場合、この値がキーフレーム値に変換されるようになる。ユーザがタイムラインをシークする場合、ユーザが追加した新しい値はアニメーションによってオーバーライドされるので、失われるようになる。
【００３２】
複合キーフレームは、タイムライン上で設定される時間で属する先のオブジェクトの状態を表現するように意図されている。しかし、アニメーションの効率的な表現を維持するために、アニメーションに影響を与えるプロパティへの変更のみが格納され、ユーザインターフェース内で表現されることが望ましい。
【００３３】
アニメートモードで、ユーザは例えば、新しいキーフレームを追加し、形状を追加し、プロパティを変更し、あるいは選択を変更することを選択することができる。新しいキーフレームが追加される場合、図４に関して上述のプロセスを実施することができ、さらなる実施例を以下に挙げる（例えば、図９に関連）。ユーザが０より遅い時間で形状を追加することを望む場合、不透明度のためのベース値は０に設定されることが好ましく、キーフレームは現在時間で追加され、不透明度は１に設定される。
【００３４】
ユーザがプロパティを変更することを選ぶ場合、このプロパティのためのキーフレームが現在時間に存在するかどうか判定される。そうである場合、現在時間でのキーフレーム値はそれに応じて修正される。このプロパティのためのキーフレームが現在時間に存在しない場合、新しい属性キーフレームが作成される（例えば、図８参照）。
【００３５】
ユーザが選択を変更することを選ぶ場合、現在の選択が複合キーフレームを有するかどうか判定される。そうである場合、この選択はそれに応じて変更される。そうでない場合、複合キーフレームが現在時間で作成される。
【００３６】
一実施形態の一態様によれば、レイアウトモードで、ユーザは一時的キーフレームを実際のキーフレームに変換するか、あるいは一時的キーフレームを生成することができる。例えば、ユーザがプロパティを変更する場合、プロパティが構成である場合、プロパティのためのベース値は、現在時間で編集された値をプロパティ値が満たすように修正されることが望ましい。プロパティが構成ではない場合、および、プロパティがアニメートされる場合、一時的キーフレームが示される。しかし、プロパティが構成ではなく、アニメートされない場合、プロパティ値は更新され、プロセスはレイアウトモードのための開始状態に戻ることが望ましい。
【００３７】
一時的キーフレームの代替として、ユーザインターフェースはユーザに、ベース値を編集するため（例えば、ユーザインターフェース内で「なし」タブを選択することによる）、または、アニメーションキーフレームを設定するため（例えば、タイムラインタブを選択することによる）のオプションを提供することができる。このような一実施形態（ユーザが「なし」タブ上にいる場合）では、現在時間はアクティブではなく（すなわち、特定の値に設定されない）、アニメーションモードはアクティブではない。特定のタイムラインのタブにおいて、現在時間およびアニメーションモードは共にアクティブであることに留意されたい。
【００３８】
例示的システムはレイアウトモードで開始する。いかなるアニメーションが提示される前にも、ユーザは、自分のＵＩの静的レイアウトのために望ましいような形態においてコントロールを配列するであろう可能性が高い。ユーザがアニメートボタンを押す場合、ユーザはアニメートモードに入ることが望ましく、アニメートモードでは、ユーザが変更する値のためにキーフレームが自動的に作成される。このモードでは、新しいキーフレームの追加ボタンが使用可能であることが望ましい。
【００３９】
アニメーション作成の一実施例を、ここで図６Ａ〜６Ｆおよび図７に関して説明する。ユーザは、楕円を左から右へ３０秒に渡って移動させ、楕円を３０秒間静止したまま保持し、次いで楕円を元の位置に戻すように移動させる、単純なアニメーションを作成することを望むと仮定する。最初に楕円が作成され（ステップ７００）、画面上の位置に配置され、開始時間が与えられる（ステップ７０５）。アニメートモードに入り（ステップ７１０）、これは、アニメートボタンをクリックするか、あるいは類似のタイプの選択を行うことによって行われる。新しい複合キーフレームが楕円のために現在時間で作成される（ステップ７１５）。例えば、図６Ａでは、アニメーションのための開始時間はタイムライン上の時間＝０．５で識別される。
【００４０】
プレイヘッド６００は０．５秒前方へ、図６Ｂのように１秒まで移動される（ステップ７２０）。次いで、図６Ｃのように、楕円の位置（例えば、Ｘ、Ｙ位置）は変更され、キーフレームが１秒で追加される（ステップ７２５）。処理はステップ７２０へ続く。プレイヘッド６００はさらに０．５秒前方へ、図６Ｄのように１秒から１．５秒まで移動され、図６Ｅのようにキーフレームが追加され（例えば、ユーザが「キーフレームの追加」ボタンを例えばＵＩ上でアクチベートすることによる）、楕円がその位置を１秒と１．５秒の間で保つべきであると規定される。
【００４１】
次いで、図６Ｆのように、プレイヘッド６００はさらに０．５秒前方へ、時間＝２まで移動され、楕円の位置はその開始点まで戻るように変更され、キーフレームがそれに応じて追加される。この時点で、ユーザは所望のアニメーションを作成しており、アニメートモードを出て、キーフレームを作成することなくシーンのレイアウトを変更することができ、あるいはアニメートモードに留まり、追加のアニメーションをキーフレーム処理することができる。
【００４２】
ユーザがアニメートモードにいる場合、ユーザはオブジェクトハンドルおよびパレットを使用してオブジェクト属性を調整する場合に、キーフレームを現在の時点で追加および調整することができる。ユーザが所与の時間に変更する各属性について、属性キーフレームが追加される。オブジェクト上の複合キーフレームもまた、それらの意味を保つために考慮に入れられる。また、ユーザがプロパティを変更し、そのプロパティのための属性キーフレームが現在時間にある場合、属性キーフレームが編集されることが望ましい。そうでない場合、ユーザがプロパティを変更し、そのプロパティのための属性キーフレームが現在時間にない場合、後述のようにいくつかの場合があり、その実施例を図８Ａ〜８Ｈに関して説明する。
【００４３】
図８Ａのように、プレイヘッド６００が要素上の唯一の複合キーフレーム上にある場合、図８Ｂのように、属性キーフレームが新しい値のために現在時間で追加される。
【００４４】
図８Ｃのように、プレイヘッド６００が要素上のすべての複合キーフレームより前である場合、この場合、次の複合キーフレームが、変更されたプロパティのための属性キーフレームを有していない場合、プロパティの古い値によりポピュレートされる。図８Ｄのように、属性キーフレームもまた現在時間で新しい値により作成される。
【００４５】
図８Ｅのように、プレイヘッド６００が要素上のすべての複合キーフレームより後に配置される場合、この場合、以前の複合キーフレームが、変更されたプロパティのための属性キーフレームを有していない場合、プロパティの古い値によりポピュレートされる。図８Ｆのように、属性キーフレームもまた現在時間で新しい値により作成される。
【００４６】
図８Ｇのように、プレイヘッド６００が要素上の２つの複合キーフレームの間に配置される場合、この場合、現在時間より前の複合キーフレームおよび現在時間より後の複合キーフレームが共にチェックされる。いずれも、変更されたプロパティのための属性キーフレームを有していない場合、プロパティの古い値によりポピュレートされる。図８Ｈのように、属性キーフレームもまた現在時間で新しい値により作成される。複合キーフレームを超えるいずれかの時間で規定された属性キーフレームがある場合（例えば、図４のステップ４３５に関して上述した場合に類似）、ベース値が必ずしも使用されるとは限らないことに留意されたい。
【００４７】
図８Ａ〜８Ｈに関して上述した実施例への例示的事前条件は、自動キーフレームボタンが望ましくはアクチベートされることである。望ましい事後条件は、ユーザが属性に行う変更が属性キーフレームとして記録されることである。図８Ａ〜８Ｈに関して上述した実施例のパラメータは以下の通りである。属性の時間および値は、自動キーフレーム処理モードにいる間に設定されることが望ましい。複合キーフレームが現在時間になかった場合、複合キーフレームが作成され、この要素の親に提供されて、新しい属性キーフレームが表現されることが望ましい。プロパティが以前に可視でなかった場合、プロパティはユーザにとって見えるように提供される。この例示的パラメータをオプションとして使用不可能にすることができることが企図される。
【００４８】
複合キーフレームを要素に現在時間で追加して、アニメーションの作成中に状態を保持することができることが望ましい。保持キーフレームをこの機能性により作成することができる。例示的ＵＩは、キーフレーム処理／アニメートモードにいる場合に使用可能にされるキーフレームの追加ボタンを備えるようになることが企図される。ユーザは望ましくは「複合キーフレームの追加」ボタンまたはセレクタを選択し、新しい複合キーフレームが現在時間で追加およびポピュレートされる。すでに複合キーフレームが現在時間にある場合、変更は行われない。
【００４９】
複合キーフレームをポピュレートするため、複合キーフレームが追加されている要素上で現在でアニメートされる各プロパティについて（図９Ａのように）、システムは、プロパティの現在のアニメートされた値を備える属性キーフレームを追加することが望ましい。新しい例示的複合キーフレームを図９Ｂに示す。新しい複合キーフレームは、現在時間でのすべてのアニメーションの現在値によりポピュレートされることが望ましい。ユーザはこの複合キーフレームを作成するために値を変更しなくてもよかったことに留意されたい。
【００５０】
複合キーフレーム作成に対する例示的事前条件は、ユーザがキーフレームを設定することを望む時間へシークすることである。例えば、ユーザは「タイムライン−＞キーフレームの追加」をＵＩ上で選択するか、あるいはキーフレームの追加ボタンをタイムライン要素上で押すことができる。
【００５１】
ユーザは明示的に属性キーフレームを追加することができる。これは、ユーザが現在のキーフレームと同じ値を有するキーフレームを望む場合に望ましい。このような場合、例示的ＵＩでは、ユーザは現在時間をキーフレームのための所望の時間までスクロールさせ、マウスを所望の時間のためのタイムラインエリア上に移動させ、キーフレームの設定ボタンを押すようになる。代替として、例えば、ユーザに「キーフレームの追加」をプルダウンメニュー内で選択するオプションを提供することができる。新しい属性キーフレームはこのように、属性に現在時間で追加される。
【００５２】
したがって、例示的ＵＩは属性キーフレーム時間のためのユーザプリファレンスを、属性キーフレーム値への編集を介して維持することができることが企図される。また、例示的ユーザインターフェースは、オブジェクトレベルおよび属性レベルキーフレームの作成を可能にし、属性キーフレーム値を、周囲のオブジェクトキーフレームに基づいてポピュレートし、特定のオブジェクトまたは属性のためのキーフレームの明示的作成を必要としない。
【００５３】
さらに、本発明を２次元変換ならびに３次元変換と共に使用することができるが、本発明はこれらのタイプの変換のみに限定されるべきでないことが企図される。
【００５４】
例示的コンピューティング環境
図１０は、本発明を実施することができる適切なコンピューティングシステム環境８００の一実施例を例示する。コンピューティングシステム環境８００は適切なコンピューティング環境の一実施例でしかなく、本発明の使用または機能性の範囲についてのいかなる限定をも示唆するように意図されない。また、コンピューティング環境８００は、例示的オペレーティング環境８００内に例示されたコンポーネントのいずれか１つまたは組合せに関係するいかなる依存性または要件も有するとして解釈されるべきではない。
【００５５】
本発明は、多数の他の汎用または専用のコンピューティングシステム環境または構成と共に動作する。本発明と共に使用するために適切である可能性のある周知のコンピューティングシステム、環境および／または構成の例には、それだけに限定されないが、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドまたはラップトップデバイス、マルチプロセッサシステム、マルチプロセッサベースシステム、セットトップボックス、プログラマブルなコンシューマエレクトロニクス、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ、上記のシステムまたはデバイスのいずれかを含む分散コンピューティング環境などが含まれる。
【００５６】
本発明を一般に、コンピュータによって実行されるプログラムモジュールなど、コンピュータ実行可能命令に関連して説明することができる。一般に、プログラムモジュールには、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造などが含まれ、これらは特定のタスクを実行するか、あるいは特定の抽象データ型を実装する。本発明をまた分散コンピューティング環境において実施することもでき、この環境ではタスクが、通信ネットワークまたは他のデータ伝送メディアを通じてリンクされるリモート処理デバイスによって実行される。分散コンピューティング環境では、プログラムモジュールおよび他のデータは、メモリストレージデバイスを含む、ローカルおよびリモートのコンピュータストレージメディア内に位置することができる。
【００５７】
図１０を参照すると、本発明を実施するための例示的システムは、コンピュータ８１０の形態における汎用コンピューティングデバイスを含む。コンピュータ８１０のコンポーネントには、それだけに限定されないが、処理装置８２０、システムメモリ８３０、および、システムメモリを含む様々なシステムコンポーネントを処理装置８２０に結合するシステムバス８２１が含まれる。システムバス８２１をいくつかのタイプのバス構造のいずれにすることもでき、これらのバス構造には、様々なバスアーキテクチャのいずれかを使用するメモリバスまたはメモリコントローラ、周辺バスおよびローカルバスが含まれる。例として、限定ではなく、このようなアーキテクチャには、業界標準アーキテクチャ（ＩＳＡ）バス、マイクロチャネルアーキテクチャ（ＭＣＡ）バス、拡張ＩＳＡ（ＥＩＳＡ）バス、Ｖｉｄｅｏ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｓｔａｎｄａｒｄｓ  Ａｓｓｏｃｉａｔｉｏｎ（ＶＥＳＡ）ローカルバス、および、Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ（ＰＣＩ）バス（メザニンバスとしても知られる）が含まれる。
【００５８】
コンピュータ８１０は通常、様々なコンピュータ可読メディアを含む。コンピュータ可読メディアは、コンピュータ８１０によってアクセスすることができるいかなる使用可能なメディアにすることもでき、揮発性および不揮発性のメディア、リムーバブルおよび非リムーバブルのメディアが含まれる。例として、限定ではなく、コンピュータ可読メディアは、コンピュータストレージメディアおよび通信メディアを含むことができる。コンピュータストレージメディアには、揮発性および不揮発性、リムーバブルおよび非リムーバブルのメディアが含まれ、これらのメディアは、コンピュータ可読命令、データ構造、プログラムモジュールまたは他のデータなど、情報の格納のためのいずれかの方法または技術において実装される。コンピュータストレージメディアには、それだけに限定されないが、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリもしくは他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）もしくは他の光ディスクストレージ、磁気カセット、磁気テープ、磁気ディスクストレージもしくは他の磁気ストレージデバイス、または、所望の情報を格納するために使用することができ、コンピュータ８１０によってアクセスすることができる他のいかなるメディアもが含まれる。通信メディアは通常、コンピュータ可読命令、データ構造、プログラムモジュールまたは他のデータを、搬送波または他の移送メカニズムなどの変調データ信号において実施し、いかなる情報配信メディアをも含む。「変調データ信号」という用語は、信号に情報を符号化するようにその特性の１つまたは複数が設定または変更されている信号を意味する。例として、限定ではなく、通信メディアには、有線ネットワークまたは直接有線接続などの有線メディア、ならびに、音響、ＲＦ、赤外線および他の無線メディアなどの無線メディアが含まれる。上記のいずれの組合せも、コンピュータ可読メディアの範囲内に含まれるべきである。
【００５９】
システムメモリ８３０は、ＲＯＭ８３１およびＲＡＭ８３２など、揮発性および／または不揮発性メモリの形態におけるコンピュータストレージメディアを含む。基本入出力システム８３３（ＢＩＯＳ）は、起動中など、コンピュータ８１０内の複数の要素の間で情報を転送する助けとなる基本ルーチンを含み、通常はＲＯＭ８３１に格納される。ＲＡＭ８３２は通常、処理装置８２０によって即時アクセス可能および／または現在操作中であるデータおよび／またはプログラムモジュールを含む。例として、限定ではなく、図１０は、オペレーティングシステム８３４、アプリケーションプログラム８３５、他のプログラムモジュール８３６およびプログラムデータ８３７を例示する。
【００６０】
コンピュータシステム８１０はまた、他のリムーバブル／非リムーバブル、揮発性／不揮発性のコンピュータストレージメディアも含むことができる。例としてのみ、図１０は、非リムーバブル、不揮発性の磁気メディアに対する読み書きを行うハードディスクドライブ８４１、リムーバブル、不揮発性磁気ディスク８５２に対する読み書きを行う磁気ディスクドライブ８５１、および、ＣＤ  ＲＯＭまたは他の光メディアなど、リムーバブル、不揮発性の光ディスク８５６に対する読み書きを行う光ディスクドライブ８５５を例示する。例示的オペレーティング環境で使用することができる他のリムーバブル／非リムーバブル、揮発性／不揮発性のコンピュータストレージメディアには、それだけに限定されないが、磁気テープカセット、フラッシュメモリカード、デジタル多用途ディスク、デジタルビデオテープ、ソリッドステートＲＡＭ、ソリッドステートＲＯＭなどが含まれる。ハードディスクドライブ８４１は通常システムバス８２１に、インターフェース８４０などの非リムーバブルメモリインターフェースを通じて接続され、磁気ディスクドライブ８５１および光ディスクドライブ８５５は通常システムバス８２１に、インターフェース８５０などのリムーバブルメモリインターフェースによって接続される。
【００６１】
これらのドライブおよびそれらの関連付けられたコンピュータストレージメディアは、コンピュータ８１０用のコンピュータ可読命令、データ構造、プログラムモジュールおよび他のデータのストレージを提供する。図１０では、例えば、ハードディスクドライブ８４１は、オペレーティングシステム８４４、アプリケーションプログラム８４５、他のプログラムモジュール８４６およびプログラムデータ８４７を格納するとして例示される。これらのコンポーネントを、オペレーティングシステム８３４、アプリケーションプログラム８３５、他のプログラムモジュール８３６およびプログラムデータ８３７と同じ物にも異なる物にもすることができることに留意されたい。オペレーティングシステム８４４、アプリケーションプログラム８４５、他のプログラムモジュール８４６およびプログラムデータ８４７にはここで異なる番号が与えられて、最低でも、それらが異なるコピーであることが例示される。ユーザはコマンドおよび情報をコンピュータ８１０へ、キーボード８６２、および、一般にマウス、トラックボールまたはタッチパッドと呼ばれるポインティングデバイス８６１などの入力デバイスを通じて、入力することができる。他の入力デバイス（図示せず）には、マイクロフォン、ジョイスティック、ゲームパッド、衛星パラボラアンテナ、スキャナなどが含まれる。これらおよび他の入力デバイスはしばしば処理装置８２０へ、システムバスに結合されるユーザ入力インターフェース８６０を通じて接続されるが、パラレルポート、ゲームポートまたはユニバーサルシリアルバス（ＵＳＢ）など、他のインターフェースおよびバス構造によって接続することができる。モニタ８９１または他のタイプの表示デバイスもまたシステムバス８２１へ、ビデオインターフェース８９０などのインターフェースを介して接続される。モニタに加えて、コンピュータにはまた、スピーカ８９７およびプリンタ８９６など、出力周辺インターフェース８９５を通じて接続することができる他の周辺出力デバイスが含まれる。
【００６２】
コンピュータ８１０はネットワーク環境において、リモートコンピュータ８８０など、１つまたは複数のリモートコンピュータへの論理接続を使用して動作することができる。リモートコンピュータ８８０は、パーソナルコンピュータ、サーバ、ルータ、ネットワークＰＣ、ピアデバイスまたは他の共通ネットワークノードにすることができ、通常は、コンピュータ８１０に関連して上述した要素の多数またはすべてを含むが、メモリストレージデバイス８８１のみが図１０において例示されている。図示の論理接続にはＬＡＮ８７１およびＷＡＮ８７３が含まれるが、他のネットワークが含まれる可能性もある。このようなネットワーキング環境は、オフィス、企業全体のコンピュータネットワーク、イントラネットおよびインターネットにおいて一般的である。
【００６３】
ＬＡＮネットワーキング環境において使用する場合、コンピュータ８１０はＬＡＮ８７１へ、ネットワークインターフェースまたはアダプタ８７０を通じて接続される。ＷＡＮネットワーキング環境において使用する場合、コンピュータ８１０は通常、モデム８７２、またはインターネットなどのＷＡＮ８７３を介して通信を確立するための他の手段を含む。モデム８７２を内部または外部にすることができ、システムバス８２１へ、ユーザ入力インターフェース８６０または他の適切なメカニズムを介して接続することができる。ネットワーク環境では、コンピュータ８１０に関連して示したプログラムモジュールまたはその一部を、リモートメモリストレージデバイスに格納することができる。例として、限定ではなく、図１０はリモートアプリケーションプログラム８８５をメモリデバイス８８１上に存在するとして例示する。図示のネットワーク接続は例示的であり、複数のコンピュータの間で通信リンクを確立する他の手段を使用することができることは理解されよう。
【００６４】
上述のように、本発明の例示的実施形態を様々なコンピューティングデバイスに関連して説明したが、基本的概念をいかなるコンピューティングデバイスまたはシステムにも適用することができる。
【００６５】
本明細書で説明した様々な技術を、ハードウェアもしくはソフトウェア、または適切な場合には両方の組合せに関連して実装することができる。したがって、本発明の方法および装置、またはある態様もしくはその一部は、フロッピー（登録商標）ディスケット、ＣＤ−ＲＯＭ、ハードドライブ、または他のいかなる機械可読ストレージメディアなど、有形メディアにおいて実施されたプログラムコード（すなわち、命令）の形態を取ることができ、これにおいて、プログラムコードがコンピュータなどの機械にロードされ、実行される場合、この機械は本発明を実施するための装置となる。プログラマブルなコンピュータ上のプログラムコード実行の場合、コンピューティングデバイスには一般に、プロセッサ、プロセッサによって可読なストレージメディア（揮発性および不揮発性のメモリおよび／またはストレージ要素を含む）、少なくとも１つの入力デバイス、および少なくとも１つの出力デバイスが含まれるようになる。プログラムを、望まれる場合はアセンブリまたは機械語で実装することができる。いかなる場合も、言語はコンパイルまたは解釈された言語にすることができ、ハードウェア実装と結合することができる。
【００６６】
本発明の方法および装置をまた、電気配線もしくはケーブル配線を介して、光ファイバーを通じて、または、他のいかなる形態の伝送をも介してなど、ある伝送メディアを介して伝送されるプログラムコードの形態で実施された通信を介して実施することもでき、これにおいて、プログラムコードが、ＥＰＲＯＭ、ゲートアレイ、プログラマブルロジックデバイス（ＰＬＤ）、クライアントコンピュータなどの機械に受信およびロードされ、実行される場合、この機械は本発明を実施するための装置となる。汎用プロセッサ上で実装される場合、プログラムコードはプロセッサと結合して、本発明の機能性を呼び出すように動作するユニークな装置を提供する。加えて、本発明と共に使用されたいかなるストレージ技術も、常にハードウェアおよびソフトウェアの組合せにすることができる。
【００６７】
本発明を、様々な図の好ましい実施形態に関連して説明したが、本発明から逸脱することなく、本発明の同じ機能を実行するために、他の類似の実施形態を使用することができ、あるいは、上述の実施形態に修正および追加を行うことができることを理解されたい。したがって、本発明はいずれかの単一の実施形態に限定されるべきではなく、むしろ、付属の特許請求の範囲による幅および範囲において解釈されるべきである。
【図面の簡単な説明】
【００６８】
【図１】本発明によるプレイヘッドを有する例示的タイムライン要素の図である。
【図２】本発明による例示的タイムライン要素の図である。
【図３】本発明による例示的キーフレーム化（キーフレーム処理）を示す、もう１つの例示的タイムライン要素の図である。
【図４】本発明によるキーフレーム化の例示的方法の流れ図である。
【図５】本発明によるユーザインターフェースを有するシーン内の例示的オブジェクトの図である。
【図６Ａ】本発明によるアニメーション要素を作成する方法を例示するために有用な、例示的タイムライン要素の図である。
【図６Ｂ】本発明によるアニメーション要素を作成する方法を例示するために有用な、例示的タイムライン要素の図である。
【図６Ｃ】本発明によるアニメーション要素を作成する方法を例示するために有用な、例示的タイムライン要素の図である。
【図６Ｄ】本発明によるアニメーション要素を作成する方法を例示するために有用な、例示的タイムライン要素の図である。
【図６Ｅ】本発明によるアニメーション要素を作成する方法を例示するために有用な、例示的タイムライン要素の図である。
【図６Ｆ】本発明によるアニメーション要素を作成する方法を例示するために有用な、例示的タイムライン要素の図である。
【図７】本発明によるアニメーション要素を作成する例示的プロセスの流れ図である。
【図８Ａ】本発明による例示的キーフレーム自動追加シナリオを例示するために有用な、例示的タイムライン要素の図である。
【図８Ｂ】本発明による例示的キーフレーム自動追加シナリオを例示するために有用な、例示的タイムライン要素の図である。
【図８Ｃ】本発明による例示的キーフレーム自動追加シナリオを例示するために有用な、例示的タイムライン要素の図である。
【図８Ｄ】本発明による例示的キーフレーム自動追加シナリオを例示するために有用な、例示的タイムライン要素の図である。
【図８Ｅ】本発明による例示的キーフレーム自動追加シナリオを例示するために有用な、例示的タイムライン要素の図である。
【図８Ｆ】本発明による例示的キーフレーム自動追加シナリオを例示するために有用な、例示的タイムライン要素の図である。
【図８Ｇ】本発明による例示的キーフレーム自動追加シナリオを例示するために有用な、例示的タイムライン要素の図である。
【図８Ｈ】本発明による例示的キーフレーム自動追加シナリオを例示するために有用な、例示的タイムライン要素の図である。
【図９Ａ】本発明による例示的複合キーフレームシナリオを例示するために有用な、例示的タイムライン要素の図である。
【図９Ｂ】本発明による例示的複合キーフレームシナリオを例示するために有用な、例示的タイムライン要素の図である。
【図１０】本発明の態様を実施することができる例示的コンピューティング環境を示すブロック図である。
【符号の説明】
【００６９】
＃１  時間
＃２  シーン
＃３  楕円１
＃４  位置
＃５  スケール
８００  コンピューティング環境
８２０  処理装置
８２１  システムバス
８３０  システムメモリ
８３４  オペレーティングシステム
８３５  アプリケーションプログラム
８３６  他のプログラムモジュール
８３７  プログラムデータ
８４０  非リムーバブル不揮発性メモリインターフェース
８４４  オペレーティングシステム
８４５  アプリケーションプログラム
８４６  他のプログラムモジュール
８４７  プログラムデータ
８５０  リムーバブル不揮発性メモリインターフェース
８６０  ユーザ入力インターフェース
８６１  マウス
８６２  キーボード
８７０  ネットワークインターフェース
８７１  ローカルエリアネットワーク
８７２  モデム
８７３  ワイドエリアネットワーク
８８０  リモートコンピュータ
８８５  リモートアプリケーションプログラム
８９０  ビデオインターフェース
８９１  モニタ
８９５  出力周辺インターフェース
８９６  プリンタ
８９７  スピーカ
【図１】
2005301995.tif 000003
【図２】
2005301995.tif 000004
【図３】
2005301995.tif 000005
【図４】
2005301995.tif 000006
【図５】
2005301995.tif 000007
【図６Ａ】
2005301995.tif 000008
【図６Ｂ】
2005301995.tif 000009
【図６Ｃ】
2005301995.tif 000010
【図６Ｄ】
2005301995.tif 000011
【図６Ｅ】
2005301995.tif 000012
【図６Ｆ】
2005301995.tif 000013
【図７】
2005301995.tif 000014
【図８Ａ】
2005301995.tif 000015
【図８Ｂ】
2005301995.tif 000016
【図８Ｃ】
2005301995.tif 000017
【図８Ｄ】
2005301995.tif 000018
【図８Ｅ】
2005301995.tif 000019
【図８Ｆ】
2005301995.tif 000020
【図８Ｇ】
2005301995.tif 000021
【図８Ｈ】
2005301995.tif 000022
【図９Ａ】
2005301995.tif 000023
【図９Ｂ】
2005301995.tif 000024
【図１０】
2005301995.tif 000025