(57)【特許請求の範囲】
【請求項１】
コンピュータプログラムを用いて図形のアニメーションを表示装置上に表示するためのアニメーション表示方法であって、
各々が、表示時刻を特定するための情報と、当該表示時刻に表示フレーム内に表示されるべき図形の特徴を特定するための図形情報とを含む、複数のキーフレーム情報をメモリ内に準備するステップと、
現在の表示時刻を得るステップと、
前記複数のキーフレーム情報のうち、得られた表示時刻の前後の表示時刻をそれぞれ有する少なくとも２つのキーフレーム情報を選択するステップと、
前記少なくとも２つのキーフレーム情報にそれぞれ含まれた対応の図形情報の間で所定の補間計算を行なうことにより、当該得られた表示時刻において表示されるべき図形情報を作成するステップと、
作成された図形情報に基づいて、当該得られた表示時刻におけるフレームを表示装置上に表示するステップと、
前記現在の表示時刻を得るステップと、前記選択するステップと、前記作成するステップと、前記表示するステップとを、所定時刻が経過するまで繰返すステップとを含む、アニメーション表示方法。
【請求項２】
前記複数のキーフレーム情報は、先頭に表示されるべきフレームに関する先頭キーフレーム情報を含み、前記方法はさらに、アニメーション表示の開始時に、前記先頭キーフレーム情報に基づいて先頭フレームを表示するステップを含み、前記現在の表示時刻を得るステップは、１つのフレームの描画処理が完了したことに応答して、タイマを参照し、その時点でのタイマの値を表示時刻として得るステップを含む、請求項１に記載のアニメーション表示方法。
【請求項３】
前記図形情報が、図形の特徴点の座標情報を含む、請求項１または２に記載のアニメーション表示方法。
【請求項４】
前記図形情報が、図形の色彩情報を含む、請求項１または２に記載のアニメーション表示方法。
【請求項５】
前記図形情報が、図形の透明度の情報を含む、請求項１または２に記載のアニメーション表示方法。
【請求項６】
前記図形情報が、図形を構成する線の太さの情報を含む、請求項１または２に記載のアニメーション表示方法。
【請求項７】
前記図形情報が、図形を構成する線の、描画部分と非描画部分との比率の情報を含む、請求項１または２に記載のアニメーション表示方法。
【請求項８】
表示されるべき図形が文字であり、前記図形情報が、文字フォントの大きさの情報を含む、請求項１または２に記載のアニメーション表示方法。
【請求項９】
表示されるべき図形が複数個の図形を含む図形群であり、
前記図形情報が、図形群の基準点の座標を含む、請求項１または２に記載のアニメーション表示方法。
【請求項１０】
表示されるべき図形が複数個の図形を含む図形群であり、
前記図形情報が、図形群の表示上の縮尺比率を含む、請求項１または２に記載のアニメーション表示方法。
【請求項１１】
前記作成するステップは、前記少なくとも２つのキーフレーム情報にそれぞれ含まれる対応の図形情報の間で所定の線形計算による補間計算を行なうステップと、
前記補間計算により得られた図形情報を、予め定められた変換方法により変換するステップを含む、請求項１または２に記載のアニメーション表示方法。
【請求項１２】
アニメーションの表示の開始に先立って、前記図形情報を変換するためのテーブルを準備するステップをさらに含み、
前記変換するステップは、前記補間計算を行なうステップで作成された図形情報に対応する変換後の図形情報を前記テーブルからルックアップするステップを含む、請求項１１に記載のアニメーション表示方法。
【請求項１３】
前記変換するステップは、前記補間計算を行なうステップで作成された図形情報を所定の関数の変数に代入し、前記所定の関数の値を変換後の図形情報とするステップを含む、請求項１１に記載のアニメーション表示方法。
【請求項１４】
前記テーブルからルックアップするステップは、
前記変換するためのテーブルは、識別するための番号を持ち、前記図形情報は、前記テーブルに対応づけるための番号を持つと共に、あらかじめ図形ごとに個別に対応づけられたテーブルからルックアップするステップを含む、請求項１２に記載のアニメーション表示方法。
【請求項１５】
コンピュータプログラムを用いて図形のアニメーションを表示装置上に表示するためのアニメーション表示プログラムを記録した記録媒体であって、
各々が、表示時刻を特定するための情報と、当該表示時刻に表示フレーム内に表示されるべき図形の特徴を特定するための図形情報とを含む、複数のキーフレーム情報をメモリ内に準備するステップと、
現在の表示時刻を得るステップと、
前記複数のキーフレーム情報のうち、得られた表示時刻の前後の表示時刻をそれぞれ有する少なくとも２つのキーフレーム情報を選択するステップと、
前記少なくとも２つのキーフレーム情報にそれぞれ含まれた対応の図形情報の間で所定の補間計算を行なうことにより、当該得られた表示時刻において表示されるべき図形情報を作成するステップと、
作成された図形情報に基づいて、当該得られた表示時刻におけるフレームを表示装置上に表示するステップと、
前記現在の表示時刻を得るステップと、前記選択するステップと、前記作成するステップと、前記表示するステップとを、所定時刻が経過するまで繰返すステップとを実現するためのアニメーション表示プログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項１６】
表示させる時刻を特定するための時刻情報と表示させる図形を特定するための図形情報とを含む複数のキーフレーム情報に基づいてアニメーションを表示させるアニメーション表示方法であって、
現在の表示時刻を得るステップと、
上記複数のキーフレームのうち少なくとも２つのキーフレームに含まれる時刻情報及び図形情報と、上記取得された現在時刻とに基づいて所定の補間計算を行ない、現在時刻に対応して表示させる図形を特定するための図形情報を含む中間フレームを生成するステップと、
上記生成された中間フレームを表示させるステップと、を有し、
上記現在時刻は、上記中間フレームの表示が完了したことに応答して取得されることを特徴とするアニメーション表示方法。
【請求項１７】
上記２つのキーフレームは、時間軸上でそれぞれ上記現在時刻の前後のキーフレームであることを特徴とする請求項１６に記載のアニメーション表示方法。
【請求項１８】
表示させる時刻を特定するための表示時刻と表示させる図形を特定するための図形情報とを含む複数のキーフレーム情報に基づいてアニメーションを表示させるアニメーション表示プログラムを記録したコンピュータ読み取り可能な記録媒体であって、
現在の表示時刻を得るステップと、
上記複数のキーフレームのうち少なくとも２つのキーフレームに含まれる時刻情報及び図形情報と、上記取得された現在時刻とに基づいて所定の補間計算を行ない、現在時刻に対応して表示させる図形を特定するための図形情報を含む中間フレームを生成するステップと、
上記生成された中間フレームを表示させるステップと、を実行させ、
上記現在時刻は、上記中間フレームの表示が完了したことに応答して取得される、アニメーション表示プログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、コンピュータを用いて図形のアニメーションを再生するアニメーション再生方法に関し、特に、時系列内のキーとなるフレーム（キーフレーム）の画像をもとにして、キーフレーム間の画像を実時間で生成して再生するアニメーションの再生方法に関する。
【０００２】
【従来の技術】
コンピュータを用いたアニメーションの再生方法として、時系列中のすべてのフレームの画像ではなく、キーとなる時刻におけるフレームの画像の座標データをもとにして、キーフレーム間のフレームを生成してアニメーションを再生する方法がある。
【０００３】
図１９を参照して、特開昭６０−１９１３６６号公報において提案された従来の方法について説明する。この方法では、アニメーションのすべてのフレームの画像を記憶しておくわけではなく、特定のキーフレームの画像のみを予め記憶しておく。図１９に示す図形３６２および３６４がそうしたキーフレームの図形であり、これらが互いに時間軸上で隣接したキーフレームに属する図形であるものとする。特開昭６０−１９１３６６号公報では、この隣接するキーフレームの図形３６２および３６４の間の時間をｎ等分し、中間フレーム３６６、３６８および３７０（ｎ＝３と想定する。）の画像の中の対応する各点を、キーフレーム内の対応する画像図形３６２および３６４の間での線形補間によって求める。こうして、図１９において矢印で示される方向に時間軸が進むものとすれば、まず図形３６２を含むキーフレームが、続いて中間の図形３６６、３６８および３７０をそれぞれ含む３つの中間フレームが、最後に図形３６４を含むキーフレームが表示されてアニメーションが再生されることになる。図形３６４を含むキーフレームを表示した後は、このキーフレームと、この次のキーフレームとの間で同様の補間計算を行ってアニメーション再生が行なわれる。
【０００４】
【発明が解決しようとする課題】
このようなアニメーション再生方法は、アニメーション再生のために必要とされるデータ量が、すべてのフレームの情報を持つ場合と比較して遙かに少なくてすむという利点がある。従来はこのようなアニメーション再生方法を実現するのは困難であったが、近年のＣＰＵ（中央演算処理装置）の処理能力の向上により、実現されようとしている。しかし、この方法では中間フレームをＣＰＵが演算により生成しているために、次のような問題点がある。
【０００５】
図２０を参照して、３つのフレーム３８２〜３８６が、上述した従来の方法における中間フレームに相当する場合を想定する。各フレームについて、描画に要する時間を０．１秒とする。すなわちこの３つのフレームを再生するのには、合計で０．３秒を必要とする。このアニメーションを、音声と並行として実時間で再生しようとすると次のような問題が生ずる。
【０００６】
第１の問題点は、アニメーション作成時の想定よりも処理速度の遅いＣＰＵでこのアニメーションを再生しようとした場合に生ずる。この場合には、図２１に示すように、１フレームを描画するのに要する時間が０．１秒より長く、たとえば０．１２秒を要する。そのためフレーム３９２〜３９６を順に再生していくと、再生時間が想定よりも長くかかることになり、しかも最初に想定された再生時間との遅れが徐々に大きくなる。一方で音声は、最初に想定された時間で再生される。結果として、表示される図形の動きと音声とのずれが次第に大きくなる。たとえば図２１に示されるようにフレーム３９２、３９４および３９６と進むに従って、画面に再生される人物の口の形と音声とが合わないようになってしまう。
【０００７】
第２の問題点は、第１の問題点とは逆に、アニメーション作成時の想定よりも処理能力の高いＣＰＵでこのアニメーションを再生しようとした場合に生ずる。この場合図２２に示されるように、フレーム４０２、４０４および４０６の各々を描画するのに要する時間が０．１秒よりも短く、たとえば０．０６秒しか要しないことがあり得る。そのためアニメーションの再生時間が、アニメーション作成時の想定よりも短くなる。音声の再生速度が一定であるとすれば、図２２に示される場合にも、動きと音声とのずれが生じる。この場合にはアニメーションの動きの方が音声よりも早くなる。
【０００８】
以上述べたのはＣＰＵの処理能力の相違により生ずる問題であった。しかしこのような問題は、各フレームごとに必要とされる描画量の変動によっても生じる。たとえば図２３を参照して、フレーム４１２、４１４および４１６と、時間軸上を進むに従って、描画される図形が大きくなる場合を考える。こうした場合、図形が大きくなるほど描画に要する時間が長くなる。たとえばフレーム４１２の描画には０．１秒、フレーム４１４の描画には０．１１秒、およびフレーム４１６の描画には０．１２秒を要するものとする。この場合にも、フレーム４１４では０．０１秒の遅れが生じ、フレーム４１６では０．０１＋０．０２＝０．０３秒の描画の遅れが生じる。したがってこの場合にも、各フレームの再生タイミングが音声の再生タイミングとずれてしまう。
【０００９】
このように音声と画面との同期に関する問題点を解決するために、先頭フレームを基準として、各フレームの描画処理の開始時刻を決めておくという方式も考えられる。しかしこの方式では次のような問題点が生ずる。この場合にも図２０に示される例を想定する。
【００１０】
まず図２４を参照して、ＣＰＵの処理能力が、想定されたものよりも低い場合を考える。この場合、たとえば３つのフレーム４２２、４２４および４２６の各々について割当てられた描画時間は０．１秒と定まっている。ＣＰＵの処理速度が遅いと、この与えられた描画時間中にすべての描画を完了することができない場合がある。すると、図２４のフレーム４２２、４２４または４２６に示されるように、各フレームが不完全なまま次のフレームの描画が始まってしまうという問題が生じる。
【００１１】
逆にＣＰＵの処理能力が想定された処理能力よりも高い場合には次のような問題が生ずる。図２５を参照して、各フレーム４３２、４３４および４３６を処理能力の高いＣＰＵで再生すると、たとえば各フレームの描画に要する時間が０．０６秒しか必要としないことになる。各フレームの描画に割当てられた時間は０．１秒ずつである。したがって各フレームについて、描画処理が終了した後０．０４秒の休止時間が生じることになる。この間にはＣＰＵは遊んでしまう。ＣＰＵの処理能力を最大限に生かせば、図２５に示されるような３枚のフレーム４３２、４３４および４３６だけではなく、図２５に示されるように、たとえば５枚のフレーム４４２、４４４、４４６、４４８および４５０を再生することが可能なはずである。単位時間中に再生されるフレーム数が多いほどアニメーションの動きが滑らかとなることから、図２５に示されるような休止時間の発生をできるだけ避け、図２６に示されるような再生が行なえるようにした方が好ましい。
【００１２】
また、このようなアニメーションの再生で処理すべき対象としては、図形の位置および大きさだけではなく、たとえば図形の色彩、透明度、図形を構成する線の太さ、たとえば図形を構成する線が破線である場合の、描画部分と非描画部分との比率、文字を表示する場合のフォントサイズなどについても適用できれば好ましい。また、単一の図形だけではなく、一群の基本図形からなる図形群の移動についても同様の処理を行なえると望ましい。これはグループの表示上の縮尺比率についても同様である。さらに、キーフレームから中間フレームを生成する際に、単純な動きだけではなく時間の進行に対して特定の変化を持たせたアニメーション再生を行なえるようにできれば、より好ましい。
【００１３】
それゆえに請求項１に記載の発明および請求項２に記載の発明の目的は、アニメーションの再生速度を一定に保ちつつ、可能な限り多いフレーム数で、キーフレーム間の中間フレームを生成してアニメーションを再生することができるアニメーション再生方法を提供することである。
【００１４】
請求項３〜１０に記載の発明の目的は、請求項１または２に記載の発明の目的に加えて、それぞれ図形の特徴点の時系列変化、図形の色彩の時系列変化、図形の透明度の時系列変化、図形を構成する線の太さの時系列変化、図形を構成する線の、描画部分と非描画部分との比率の時系列変化、図形が文字である場合のフォントサイズの時系列変化、図形が、図形群である場合に、その図形群の基準点の時系列変化、同じく図形群の表示上の縮尺比率の時系列変化、をアニメーション表示することができるアニメーション再生方法を提供することである。
【００１５】
請求項１１〜１３に記載の発明の目的は、請求項１または２に記載の発明の目的に加えて、アニメーションの動きに変化を与えることができるアニメーション再生方法を提供することである。
【００１６】
【課題を解決するための手段】
請求項１に記載の発明に係るアニメーション表示方法は、コンピュータプログラムを用いて図形のアニメーションを表示装置上に表示するためのものであって、各々が、表示時刻を特定するための情報と、当該表示時刻に表示フレーム内に表示されるべき図形の特徴を特定するための図形情報とを含む、複数のキーフレーム情報をメモリ内に準備するステップと、現在の表示時刻を得るステップと、上記した複数のキーフレーム情報のうち、得られた表示時刻の前後の表示時刻をそれぞれ有する少なくとも２つのキーフレーム情報を選択するステップと、この少なくとも２つのキーフレーム情報にそれぞれ含まれる対応の図形情報の間で所定の補間計算を行なうことにより、当該得られた表示時刻において表示されるべき図形情報を作成するステップと、作成された図形情報に基づいて、当該得られた表示時刻におけるフレームを描画するステップと、上記した現在の表示時刻を得るステップと、選択するステップと、作成するステップと、表示するステップとを、所定時刻が経過するまで繰返すステップとを含んでいる。
【００１７】
予め、複数のキーフレーム情報がメモリ内に準備された後、以下の繰返しが行なわれる。まず現在の表示時刻を得る。そしてこの前後の２つのキーフレーム情報を選択する。これら２つのキーフレーム情報に含まれる対応の図形情報の間で所定の補間演算を行なって、得られた表示時刻において表示されるべき図形情報を作成し描画する。１フレームをすべて描画しなければ次のフレームの図形情報の作成を行なわないので、各フレームを完全に描画することができる。また予め表示時刻が定められているわけではないので、処理能力の高いＣＰＵの場合には多数の中間フレームを、処理能力の低いＣＰＵでは少数の中間フレームを作成することになり、ＣＰＵの能力に応じたアニメーション表示を行なうことができる。
【００１８】
請求項２に記載の発明に係るアニメーション表示方法は、請求項１に記載の発明の構成に加えて、複数のキーフレーム情報が、先頭に表示されるべきフレームに関する先頭キーフレーム情報を含んでいる。そしてこのアニメーション表示方法はさらに、アニメーション表示の開始時に、先頭キーフレーム情報に基づいて先頭のフレームを表示するステップを含む。また現在の表示時刻を得るステップは、１つのフレームの描画処理が完了したことに応答してタイマを参照し、その時点でのタイマの値を表示時刻として得るステップを含んでいる。
【００１９】
先頭のフレームの描画処理が完了すると、その完了に応答して次のフレームの表示時刻が得られる。この表示時刻でのフレームの描画が完了すると、その完了に応答してさらに次の表示時刻が得られる。このようにして次々とあるフレームの描画処理が完了するとその完了の時点の表示時刻でのフレームの作成と描画が繰返し行なわれるので、遊び時間がなく、ＣＰＵの能力を最大限に利用することができる。
【００２０】
請求項３〜請求項１０に記載の発明は、請求項１または２に記載の発明の構成に加えて、図形情報が、図形の特徴点の座標情報、図形の色彩情報、図形の透明度の情報、図形を構成する線の太さの情報、図形を構成する線の、描画部分と非描画部分との比率の情報、文字フォントの大きさ、図形群の基準点の座標、図形群の表示上の縮尺比率をそれぞれ含んでいる。こうした図形情報の間での補間演算で中間フレームでの図形情報を作成し描画することにより、図形の変形または移動、図形の色彩の変化、図形の透明度の変化、図形の線の太さ、図形を構成する線の破線の態様、文字フォントの大きさ、図形群の移動、図形群の表示上の縮尺比率の変化を含んだアニメーションを作成することができる。
【００２１】
請求項１１に記載の発明に係るアニメーション表示方法は、請求項１または２に記載の発明の構成に加えて、作成するステップが、２つのキーフレーム情報にそれぞれ含まれる対応の図形情報の間で所定の線形計算により補間計算を行なうステップと、この補間計算により得られた図形情報を、予め定められた変換方法により変換するステップとを含む。
【００２２】
一旦線形計算による補間計算で生成された図形情報にさらに変換を行なうことで、たとえば加速度を伴った動きなど、時間に対して非直線の動きを表現することが可能となる。すなわち、アニメーションにおいて、時間軸上で変化をつけることが可能になる。
【００２３】
請求項１２に記載の発明に係るアニメーション表示方法は、請求項１１に記載の発明の構成に加えて、アニメーションの表示の開始に先立って、図形情報を変換するためのテーブルを準備するステップをさらに含んでいる。そして変換するステップは、作成するステップで作成された図形情報に対応する変換後の図形情報を、上記したテーブルからルックアップするステップを含む。
【００２４】
このように、一旦補間計算により作成された図形情報を、テーブルを用いて変換し変換後の図形情報によってアニメーションを表示することで、時間軸上の恣意的な変化をアニメーション上で実現することができる。
【００２５】
請求項１３に記載の発明に係るアニメーション表示方法は、請求項１１に記載の発明の構成に加えて、変換するステップが、作成するステップで作成された図形情報を所定の関数の変数に代入し、この関数の値を変換後の図形情報とするステップを含んでいる。
【００２６】
線形計算による補間計算で得られた図形情報を、さらに所定の関数の変数に代入して変換するので、線形でない動きをもアニメーション上で実現することができる。さらにそのために必要なデータ量は少なくて済むという特徴がある。
【００２７】
請求項１４に記載の発明に係るアニメーション表示方法は、請求項１２に記載の発明の構成に加えて、前記テーブルからルックアップするステップは、前記変換するためのテーブルは、識別するための番号を持ち、前記図形情報は、前記テーブルに対応づけるための番号を持つと共に、あらかじめ図形ごとに個別に対応づけられたテーブルからルックアップするステップを含んでいる。
【００２８】
変換テーブルを複数個準備し、それぞれの図形情報に付加されたテーブル番号によって、それぞれ異なる変換テーブルからルックアップするステップを含んでいる。これにより、２つだけのキーフレーム間で、それぞれの図形に、より複雑な動きを表現させることが可能となる。さらにそのために多数のキーフレーム作成の手間を軽減し、必要なデータ量は少なくて済むという特徴がある。
【００２９】
請求項１５に記載のアニメーション表示プログラムを記録したコンピュータ読み取り可能な記録媒体は、コンピュータプログラムを用いて図形のアニメーションを表示装置上に表示するためのアニメーション表示プログラムを記録した記録媒体であって、各々が、表示時刻を特定するための情報と、当該表示時刻に表示フレーム内に表示されるべき図形の特徴を特定するための図形情報とを含む、複数のキーフレーム情報をメモリ内に準備するステップと、現在の表示時刻を得るステップと、前記複数のキーフレーム情報のうち、得られた表示時刻の前後の表示時刻をそれぞれ有する少なくとも２つのキーフレーム情報を選択するステップと、前記少なくとも２つのキーフレーム情報にそれぞれ含まれた対応の図形情報の間で所定の補間計算を行なうことにより、当該得られた表示時刻において表示されるべき図形情報を作成するステップと、作成された図形情報に基づいて、当該得られた表示時刻におけるフレームを表示装置上に表示するステップと、前記現在の表示時刻を得るステップと、前記選択するステップと、前記作成するステップと、前記表示するステップとを、所定時刻が経過するまで繰返すステップとを実現するためのアニメーション表示プログラムを記録したコンピュータ読み取り可能な記録媒体であることを特徴とする。
また、本発明は、表示させる時刻を特定するための時刻情報と表示させる図形を特定するための図形情報とを含む複数のキーフレーム情報に基づいてアニメーションを表示させるアニメーション表示方法であって、現在時刻を取得するステップと、上記複数のキーフレームのうち少なくとも２つのキーフレームに含まれる時刻情報及び図形情報と、上記取得された現在時刻とに基づいて所定の補間計算を行ない、現在時刻に対応して表示させる図形を特定するための図形情報を含む中間フレームを生成するステップと、上記生成された中間フレームを表示させるステップと、を有し、上記現在時刻は、上記中間フレームの表示が完了したことに応答して取得されることを特徴とするアニメーション表示方法を提供する。
また、本発明は、上記２つのキーフレームは、時間軸上でそれぞれ上記現在時刻の前後のキーフレームであることを特徴とするアニメーション表示方法を提供する。
また、本発明は、表示させる時刻を特定するための表示時刻と表示させる図形を特定するための図形情報とを含む複数のキーフレーム情報に基づいてアニメーションを表示させるアニメーション表示プログラムを記録したコンピュータ読み取り可能な記録媒体であって、現在時刻を取得するステップと、上記複数のキーフレームのうち少なくとも２つのキーフレームに含まれる時刻情報及び図形情報と、上記取得された現在時刻とに基づいて所定の補間計算を行ない、現在時刻に対応して表示させる図形を特定するための図形情報を含む中間フレームを生成するステップと、上記生成された中間フレームを表示させるステップと、を実行させ、上記現在時刻は、上記中間フレームの表示が完了したことに応答して取得されるアニメーション表示プログラムを記録したコンピュータ読取可能な記録媒体を提供する。
【００３０】
【発明の実施の形態】
図１を参照して、本願発明のアニメーション表示方法はコンピュータ３０により実現される。コンピュータ３０は、所定のプログラムを実行することにより本願発明の各ステップの処理を実現するためのＣＰＵ３２と、ＣＰＵ３２がアニメーション画像を書込むグラフィックメモリ３６と、グラフィックメモリ３６上の画像を表示するためのディスプレイ画面３８と、ＣＰＵ３２に接続されたメモリ３４と、時刻に関する情報をＣＰＵ３２が得るためのタイマ４０とを含んでいる。メモリ３４は、複数のキーフレーム情報を記憶するキーフレーム情報記憶部４２と、ＣＰＵ３２が実行する、本願発明のアニメーション表示方法を実現するためのプログラム情報を記憶するプログラム情報記憶部４４とを含んでいる。
【００３１】
図２を参照して、キーフレーム情報記憶部４２は、複数個のキーフレーム情報６２、６４および６６を含んでいる。なお通常キーフレームの数はこれよりも多いが、この例では説明を簡略にするためにキーフレームとして３つの場合のみを考えることとする。
【００３２】
たとえば第１のキーフレーム情報６２は、第１のキーフレームが表示されるべき時刻を特定するための情報、すなわちアニメーションの表示開始から第１のキーフレーム表示までの予定経過時間７２と、予定経過時間７２の経過後にフレーム上に表示されるべき図形の特徴を特定するための図形情報７４、７８および８２とを含んでいる。第１のキーフレーム６２が表示されるのはアニメーションの開始時であるため、第１のキーフレームでは予定経過時間＝０である。各図形情報７４、７８および８２はそれぞれ、後述する第２のキーフレームの対応する図形が格納された領域へのポインタ７６、８０および８４を有している。図形情報の内容については図５を参照して後述する。
【００３３】
同様にして第２のキーフレーム情報６４は、予定経過時間９２と、図形情報９４、９８、１０２および１０６とを含んでいる。第１のキーフレーム情報６２の図形情報７４、７８および８２のポインタ７６、８０および８４はそれぞれ、第２のキーフレーム６４の図形情報９４、９８および１０２の領域の先頭を指し示している。同様にして第２のキーフレーム情報６４の図形情報９４、９８、１０２および１０６はポインタ９６、１００、１０４および１０８を有している。これらのうちポインタ９６、１００および１０８は、後述する第３のキーフレーム６６の対応する図形情報の領域の先頭を指し示している。第３の図形情報１０２のポインタ１０４は、キーフレームが終端であることを示す値を格納している。
【００３４】
同様にして第３のキーフレーム情報６６は、予定経過時間１１２と、図形情報１１４、１１８および１２２とを含んでいる。第２のキーフレーム情報６４のポインタ９６、１００および１０８はそれぞれ、この第３のキーフレーム情報６６の図形情報１１４、１１８および１２２の領域の先頭を指し示している。図形情報１１４、１１８および１２２はそれぞれポインタ１１６、１２０および１２４を有しているが、本例ではこの第３のキーフレームが最終フレームであるものと仮定しているので、これらポインタはいずれも終端であることを示す値を格納している。
【００３５】
図２に示されるキーフレーム情報６２、６４および６６が表わすアニメーションの概略を図３に示す。図３を参照して、このアニメーションは、画面１３０内を、三角形１３２が移動するものである。この三角形１３２は、図３に示されるように画面１３０の左上から中央上部に１秒かけて平行移動し、さらにそこから画面１３０の右下位置に１．５秒をかけて平行移動するものとする。図３において実線で示されている三角形は、それぞれ図２に示される第１のキーフレーム情報６２、第２のキーフレーム情報６４および第３のキーフレーム情報６６によって特定される図形の形状および位置を示している。既に述べたように第１のキーフレーム６２の予定経過時間は０である。第２のキーフレームで表示される三角形位置まで三角形１３２が移動する所要時間が１秒、さらにそこから第３のキーフレーム上で三角形１３２が表示される位置までの所要時間が１．５秒であるから、図２に示される第２のキーフレーム６４の予定経過時間９２は「１秒」であり、第３のキーフレーム６６の予定経過時間１１２は「１＋１．５＝２．５秒」である。
【００３６】
図４（ａ）、（ｂ）および（ｃ）にそれぞれ、図２に示されるキーフレーム情報６２、６４および６６によって特定されるキーフレームを示す。これら各キーフレームにおける三角形１３２の位置については既に述べたとおりである。
【００３７】
図５を参照して、図２に示されるキーフレーム情報６２、６４および６６の内容について、説明する。この場合図３に示されるように、表示される図形は三角形１３２の１つであるから、図形情報としては１番目の図形情報７４、９４および１１４（図２参照）のみを想定する。図５（ａ）を参照して、第１のキーフレーム情報６２の意味は次のとおりである。
【００３８】
「第１のキーフレームに対応する予定経過時間は０秒である。この第１のキーフレームの中には、図形情報７４により特定される第１の図形が存在する。」
この第１の図形情報７４の意味は、図５（ａ）に示される例では次のとおりである。
【００３９】
「第１の図形は、３個の点を持つ閉多角形である。すなわちこの図形は三角形である。三角形の３頂点の座標はそれぞれ（１，２）（２，３）（１，４）である。この第１の図形に対応する図形は、第２のキーフレームの中にも存在しており、その図形情報は、図５（ｂ）に示される第２のキーフレーム情報６４内の第１の図形情報９４である。」
同様にして図５（ｂ）の第２のキーフレーム情報６４の意味は次のとおりである。
【００４０】
「第２のキーフレームに対応する予定経過時間は１秒である。第２のキーフレームの中には第１の図形が存在し、その図形情報は図形情報９４である。この図形情報９４により特定される図形は、第１のキーフレーム情報６２内の第１の図形情報７４により特定される図形と連続している。図形情報９４により特定される図形は、三角形であり、その３頂点の座標は（５，２）（６，３）（５，４）である。第１の図形に対応する図形が第３のキーフレーム内にも存在しており、その位置はポインタ９６により示されている。」
第３のキーフレーム情報６６の意味は次のとおりである。
【００４１】
「第３のキーフレームに対応する予定経過時間は２．５秒である。第３のキーフレームには図形情報１１４により特定される図形が存在しており、その図形は三角形である。その三角形の３頂点の座標はそれぞれ（１０，６）（１１，７）および（１０，８）である。この図形は、第２のキーフレームの第１の図形から連続しているが、この第３のキーフレームで途切れている。」
図１に示されるプログラム情報記憶部４４により記憶されており、ＣＰＵ３２により実行されることにより、特許請求の範囲に記載された各ステップの機能を実現するプログラムの制御の流れについて図６を参照して説明する。まずステップＳ１においてタイマ４０（図１参照）が初期化される。本実施の形態では、初期化によりタイマ４０の値が０にリセットされる。他の形態として、タイマ４０は連続的に動作しており、この初期化時のタイマ４０の値がメモリ３４上の所定の領域に複写されて、以後の処理の基準値を示す値として利用されてもよい。
【００４２】
なお通常は、図６に示される処理に先立って、キーフレーム情報が、図１に示されないハードディスクなどの外部記憶装置からメモリ３４のキーフレーム情報記憶部４２内にロードされる。
【００４３】
続いてステップＳ２で、図５（ａ）に示される第１のキーフレーム情報６２に基づき、１枚目のキーフレーム（図４（ａ））がグラフィックメモリ３６（図１参照）上に描画される。ディスプレイ画面３８（図１参照）は、グラフィックメモリ３６に書込まれた第１のキーフレームを表示する。
【００４４】
ところで、グラフィックメモリ３６に図形を描画しその図形をディスプレイ画面３８に描画する場合、描画対象となるメモリ領域と、表示中のデータが格納されているメモリ領域とを別にする方が、画面のちらつきを少なくできることが知られている。これを実現するためには２通りの方法が通常行なわれている。１つは、汎用メモリ上の領域をビットマップとみなしてここに図形を描画した後、描画された領域のデータをグラフィックメモリに高速に転送する方法である。他の１つは、グラフィックメモリを２画面分用意し、この２画面の双方に対して交互に図形を描画するとともに、描画が完了した領域の画面のみをディスプレイ画面に表示するという方法である。ここでは、いずれの方法を用いてもよい。どちらの方法を使用するにあたっても、そのための特有の処理を行なう必要があるが、それらは当業者の知識の範囲内であるから、ここではその詳細についは繰返さない。
【００４５】
次にステップＳ３で、キーフレーム番号を格納するための作業用レジスタｉに初期値１を設定する。以後、各レジスタｘの値を「変数ｘ」と呼ぶこととする。ステップＳ４で、変数ｔに、ステップＳ１からの経過時間を格納する。図６に示されるように、ステップＳ１でタイマを初期化してから、ステップＳ２およびＳ３の処理を行なっているので、ステップＳ４時点での経過時間は０ではない。実際には、ステップＳ２およびＳ３のうち、ステップＳ２で行なわれる描画処理が最も複雑な処理であるから、経過時間の大部分をステップＳ２の処理時間が占めている。
【００４６】
以後、ｉ番目のキーフレームの予定経過時間をＰｉ  と呼ぶこととする。ステップＳ５で、ｉ＋１番目のキーフレーム（ｉ＝１であれば２番目のキーフレーム）の経過時間が変数ｔ以下であるか否かについて判断を行なう。ｉ＝１の場合、Ｐｉ＋１＝Ｐ２＝１秒である（図５（ｂ））。この条件が成立すれば制御はステップＳ６に、成立しなければ制御はステップＳ８にそれぞれ進む。仮にステップＳ５の処理が最初に行なわれるとき（ｉ＝１）のｔの値が０．３秒とする。この値と、図５（ｂ）に示される第２のキーフレーム情報６４内での予定経過時間の情報（＝１秒）とが比較される。この場合には条件は成立しないので制御はステップＳ８に進むことになる。
【００４７】
ステップＳ８では、次に描画すべきフレームの位置づけを示す値ｈが次の式により計算される。
【００４８】
【数１】
0003616241.tif 000002
【００４９】
この場合の値ｈの示す位置を図解すると図７のようになる。図７に示されるように、ｔ＝０．３は、時間軸上で、第１のキーフレームの表示される時刻と、第２のキーフレームが表示される時刻との間であって、第１のキーフレームが表示される時刻から第２のキーフレームが表示される時刻に向かって３０％の位置に相当する。そこで値ｈがこのｔの位置づけを示しており、「次に描画すべき中間フレームの、時間軸上での位置づけ」を示しているものとする。
【００５０】
ｉ＝１の場合であって、かつ上述のようにｔ＝０．３と仮定すると、Ｐｉ＝０、Ｐｉ＋１＝１であるから、ｈ＝０．３となる。
【００５１】
続いてステップＳ９で、変数ｈで特定される時点に対応する中間フレームの各図形の各特徴値の座標が次のように計算される。これら各座標値を含めてｉ番目のキーフレームのすべての図形のパラメータをＱｉと表わし、ｉ＋１番目のキーフレームでの対応するパラメータをＱｉ＋１と表わすと、パラメータＱｉとパラメータＱｉ＋１に対応するパラメータをＲとすると、Ｒは次のようにして計算される。
【００５２】
【数２】
0003616241.tif 000003
【００５３】
図３〜図５に示される例を用いて具体的に示すと次のようになる。
【００５４】
【表１】
0003616241.tif 000004
【００５５】
すなわち、経過時間ｔ＝０．３（秒）に対応する中間フレームに描かれるべき三角形の各頂点の座標、すなわち座標１、座標２および座標３はそれぞれ（２．２，２）（３．２，３）および（２．２，４）となる。
【００５６】
このようにしてすべてのパラメータＱｉについてＲを求めて、このＲの値を用いて中間フレームの全図形を描画する（ステップＳ１０）。この全図形の描画が終了すると、処理はステップＳ４に戻る。すなわち、ある中間フレームの全図形を描画すると、その時点で次のフレームの描画を始めることとなり、その時点までの経過時間をステップＳ４で求めて以後の処理を繰返し実行する。
【００５７】
ところで、ステップＳ１０で行なわれる図形描画にも一定の処理時間が必要とされる。この例では、図４（ａ）および（ｂ）に示されるように、第１のキーフレームと第２のキーフレームとで、描くべき図形自体は同じ三角形１３２である。ｔ＝０．３の時点で描くべき三角形も、たとえば図４（ａ）に示される初期状態（ｔ＝０）での三角形１３２と同一の大きさである。この場合にはｔ＝０．３の時点での図形の描画量自体は、ｔ＝０の時点と変わっていない。この中間フレームを描くために要する時間もまた、ｔ＝０のときの値とほぼ同じ０．３秒となるであろう。したがって、ステップＳ４の２回目の実行での経過時間ｔはｔ＝０．６となる。
【００５８】
上述の繰返し処理において、ステップＳ５での判断がＹＥＳとなると処理はステップＳ６に進む。ステップＳ６では変数ｉに１を加算する。さらにステップＳ７で、加算後のｉを用いてｉ＋１が、当初用意されたキーフレームの数ｎよりも大きいか否かについての判断が行なわれる。この条件が成立しなければ制御はステップＳ５に進んで以下の処理を繰返し実行する。ステップＳ７の条件が成立すると、最後のキーフレームの予定経過時間を過ぎたということであるから、処理を終了する。
【００５９】
上記した例では、中間フレームで描画されるべき描画量は変化しない。したがって各中間フレームの描画に要する時間は０．３秒である。またｎ＝３である。したがってこの例で図６の処理を実行することにより、図８に示されるようなタイミングでフレームの描画が行なわれる。すなわちまずｔ＝０で第１のキーフレームが描画される。さらにｔ＝０．３、０．６および０．９の時点で、第１のキーフレームと第２のキーフレームとの間での補間計算から得られた中間フレームが描画される。さらにｔ＝１．２、１．５、１．８、２．１、および２．４の時点で、第２のキーフレームと第３のキーフレームとの間での補間計算により得られた中間フレームが描画される。すなわち各時点を起点として合計９枚のフレームが描かれ、連続したアニメーションとして表現される。
【００６０】
このときの画面１３０上に描かれる三角形１３２の軌跡を図９に、各図形の描かれる時点とともに示す。図９において、実線で示されているのがキーフレームの図形であり、破線で示されているのが中間フレームで描かれる図形である。図９に示される例で特徴となっているのは、キーフレームのうち最初のキーフレームはｔ＝０の時点で描かれているが、他のキーフレーム（第２および第３のキーフレーム）は描画されていないということである。
【００６１】
なお、図８および図９に示されるｔ＝０〜２．４の０．３秒おきの各時点は、描画の開始の時刻を示している。実際に画面に表示されるまでには、各フレームの描画に対する所要時間が必要であるから、その分だけの遅れが生じる。
【００６２】
上述の例では、アニメーション表示される三角形の大きさが変化せずただ移動のみする場合を示した。しかし、今までに示した装置およびプログラムを用いて、キーフレーム間で三角形の大きさが変化するようなアニメーションを表示することもできる。この場合には、上述の例のように三角形の大きさが変化しない場合と比較して、三角形の面積が変化するために、描画量が変わり中間フレームの描画に要する時間が変わってくる。したがって、全く同じ装置およびプログラムを用いても、見かけ上の動作が上述の例とは異なってくる。
【００６３】
図１０（ａ）〜（ｃ）に、このアニメーションのための３つのキーフレームを示す。図１０（ａ）に示すように、画面１３０の左上に、三角形１３４が描かれるのが第１のキーフレームである。図１０（ｂ）を参照して、第１のキーフレームの三角形１３４が大きくなり（２倍）、三角形１３６として表示されるのが第２のキーフレームである。図１０（ｃ）を参照して、三角形１３６が画面左上から画面右上に移動した後の状態が第３のキーフレームである。
【００６４】
図１１に、図１０（ａ）〜（ｃ）に示される３つのキーフレームに対応するキーフレームデータ１６２、１６４および１６６を示す。図１１を参照して、第１のキーフレームのためのキーフレーム情報１６２は、経過時間（＝０秒）と、三角形１３４を示す第１の図形情報１７４とを含んでいる。図形の種類は閉多角形であり点の数は３、すなわち三角形である。この三角形の３頂点は（１，２）（２，３）（１，４）という座標を有する。第１の図形情報１７４のポインタ１７６は、第２のキーフレームのキーフレーム情報１６４に含まれる第１の図形情報１９４の領域の先頭を示している。
【００６５】
第２のキーフレームのキーフレーム情報１６４は、経過時間（＝１秒）と、第２のキーフレームでの三角形１３６に対応する図形情報１９４とを含んでいる。図形情報１９４によれば、描画の種類は閉多角形であり、その点の数は３、すなわち三角形である。三角形の３つの頂点の座標はそれぞれ（１，１）（３，３）（１，５）である。ポインタ１９６は、第３のキーフレームのためのキーフレーム情報１６６の第１の図形情報２１４の領域の先頭を指し示している。
【００６６】
第３のキーフレームのためのキーフレーム情報１６６は、予定経過時間（＝２．５秒）と、第１の図形のための図形情報２１４とを含んでいる。第１の図形情報２１４によれば、図形の処理は閉多角形であり、その頂点の数は３、すなわち三角形である。この三角形の３頂点の座標はそれぞれ（８，１）（１０，３）（８，５）である。第１の図形情報２１４のポインタ２１６は、この図形が第３のキーフレームで終端となっていることを示している。
【００６７】
図１０（ａ）および（ｂ）を参照して、この間の時間では、三角形１３４が徐々に拡大され三角形１３６となるアニメーションが生成される。この例では、三角形の外形を描くのみであるものとすると、描くべき図形の大きさがａ倍になると、その図形を描くための処理時間もほぼａ倍となる。図１０（ａ）（ｂ）においては、描くべき図形は三角形１３４および１３６のみであるから、図１０（ｂ）に示される第２のキーフレームを描画するための処理時間は、図１０（ａ）に示される第１のキーフレームを描画するための処理時間のほぼａ倍となる。この例ではａ＝２であるから、第２のキーフレームの処理時間は第１のキーフレームのほぼ２倍である。但し前述したとおり、第２のキーフレームは実際には描画されない。
【００６８】
なお、上述の例では三角形の外形を描くのみであるが、三角形の内部を特定の色で塗り潰す場合には、縮尺がａ倍になると面積はａ２倍となるため、塗り潰しを行なうために必要な描画量がほぼａ２倍となる。したがって描画量の増加率は、図１０（ａ）および（ｂ）のように外形のみを描く場合よりも大きくなる。
【００６９】
図１０（ｂ）および（ｃ）を参照して、第２のキーフレームから第３のキーフレームの間は、拡大された三角形が平行移動するアニメーションが行なわれる。この場合、１フレーム当りに必要な描画量は変化しないので、１フレーム当りの描画時間も変化せず、第２のキーフレームの処理時間と同様の処理時間を各フレームに対して必要とする。
【００７０】
すなわち、図１０（ａ）〜（ｃ）に示されるようにキーフレームからアニメーションの中間フレームを生成してアニメーション再生した場合、フレームの描画開始タイミングは図１２に示すようになる。まず第１のキーフレームの描画を開始する（ｔ＝０）。第１のキーフレームの描画が、第１の例の場合と同様に０．３秒を要するものとすると、第２のキーフレームの描画はｔ＝０．３の時点で開始される。図１１に示される図形情報１７４および１９４によれば、第２のキーフレーム（ｔ＝１に相当）での三角形の大きさは、第１のキーフレームでの三角形１３４の大きさの２倍である。この間、三角形の拡大は線形的に行なわれるものとすれば、ｔ＝０．３の時点では、三角形１３４を１．３倍した大きさの三角形を描画する必要が生じる。この場合、０．３×１．３＝０．３９（秒）、すなわち約０．４秒の処理時間を要する。ｔ＝０．３の時点で描画処理を開始した中間フレームの処理はｔ＝０．７の時点で終了する。さらにｔ＝０．７に相当する時点での描画されるべき三角形の大きさは、図１０（ａ）の三角形１３４を１．７倍した大きさとなる。その描画に要する時間は０．３×１．７＝０．５１（秒）、すなわち約０．５秒である。したがってこの中間フレームの描画はｔ＝１．２秒の時点で終了し、次のフレームの描画が開始される。ｔ＝１．２秒の時点では描かれるべき三角形は既に図１０（ｂ）に示される三角形１３６の大きさとなり、これ以後その大きさには変化はない。したがって以後の描画に要する時間は一定である。この描画には、０．３×２＝０．６秒を要する。このようにして各中間フレームの描画が開始されるタイミングを示したのが図１２である。こうして、図１２に示されるように、ｔ＝０、０．３、０．７、１．２、１．８および２．４に相当する時刻を起点とした６枚のフレームが描かれて連続したアニメーションとして表現される。
【００７１】
図８と図１２とを参照して、図８に示される例では各フレームを描画するための処理時間は一定であったのに対し、図１２に示される例ではそれらは一定ではない。しかしいずれの場合にも、各キーフレームに保持されている予定経過時間情報に沿ってアニメーションの再生が行なわれ、かつ全体の再生時間も両者ともほぼ２．５秒となることがわかる。つまり、各フレーム当りの描画量が変化しても、その変化が全体のアニメーションの表示の進行には影響を与えないということがわかる。
【００７２】
同様の考え方によれば、たとえばＣＰＵの処理能力が２倍になった場合を考える。図８に示す例の場合、ＣＰＵの処理能力が２倍になれば、各フレームの描画が開始されるタイミングは図１３に示されるように０．１５秒おきとなり、全体で１７枚のフレームが再生される。また図１０に示される例を同じく処理能力が２倍のＣＰＵで再生した場合、各フレームの描画の開始タイミングは図１４に示されるようになる。この場合、第１のキーフレームから第２のキーフレームまでの間に中間フレームの描画に要する時間は徐々に増加するが、全体としては１０枚のフレームでこのアニメーションを再生することができる。図８と図１３とを参照すれば、同じアニメーションが、同じ時間経過に沿って再生されることがわかる。しかもこの場合には、この間に生成されるフレーム数がほぼ２倍となり、より滑らかなアニメーションを得ることができる。図１２と図１４とを比較しても同様である。したがって、アニメーションの作成時にどのような処理能力のＣＰＵを想定していたとしても、また再生時に実際にどのような処理能力のＣＰＵでこのアニメーションを再生したとしても、この方法によりアニメーションを再生する限り、同じ時間経過に沿って、かつＣＰＵの処理能力に応じた滑らかさでアニメーションが再生されることになる。
【００７３】
以上、図形の特徴点の座標が変化する場合について例とした示したが、同様の方法を用いて、データの中身を変えることにより、かつ図形を描画する場合に、データの内容に応じて異なる図形描画処理を行なうようにすれば、上述の実施の形態１のコンピュータおよびプログラムを用いて、図形の色、透明度、図形を構成する線の太さ、図形を構成する線が破線の場合の実線部と空白部との比率、図形が文字である場合のフォントのサイズ、図形が複数個の図形からなる図形群の場合に、この図形群の基準点の座標、同じく図形群の表示上の縮尺比率などを、各キーフレームごとに指定しておき、中間フレームをこれらキーフレームの対応する情報の間で行なう補間計算により得ることができる。
【００７４】
たとえば図１５（ａ）に、図形の種類が多角形の場合に考えられる図形情報２６２のデータ構造を示す。図１５（ｂ）に、図形の種類として一群の文字からなるテキストが指定された場合の図形情報２６４のデータ構造の例を示す。図１５（ｃ）には、図形の種類として図形群が指定された場合の図形情報２６６のデータ構造の例を示す。
【００７５】
図１５（ａ）を参照して、図形の種類が多角形の場合には、点の数と、点の数に応じた数の座標と、図形内部を塗り潰すべき色と、透明度と、図形を構成する線の太さと、その線種と、線種が破線である場合の実線部と空白部との比率を示すデータ等が格納される。たとえば色であれば、光の三原色である赤（Ｒ）、緑（Ｇ）、青（Ｂ）の数値により表現できる。連続した２つのキーフレーム中の図形の属性情報として、この（Ｒ、Ｇ、Ｂ）を指定しておけば、対応するデータの間での補間計算を行なって中間フレームの図形を塗り潰すべき色を特定する（Ｒ、Ｇ、Ｂ）を計算することができる。透明度、線の太さ、線種が破線の場合の実線部／空白部の比率などについても全く同様である。
【００７６】
図１５（ｂ）を参照して、図形の種類がテキストである場合には、そのテキストを描画すべき座標（この場合にはテキストの基準位置の座標）と、テキスト内容と、テキストを表示すべきフォントの種類と、テキストを表示すべきフォントのサイズを示すフォントポイント数と、テキスト表示の色を指定する情報と、フォントを表示する際のそのフォントのスタイル（標準、イタリック体、ゴールド体など）と、テキスト中の文字間隔、行間隔、各行についての行揃えを示す情報、などが格納される。特に文字の場合、連続した２つのキーフレームの中のテキストの属性情報として、ポイントフォント数があれば、その値に対して補間計算を行なうことにより中間フレームで表示すべきテキストの文字の大きさを決定することができる。この場合、ポイント数が端数であってもそのポイント数に従った大きさの文字を表示できる場合には問題ないが、特定のポイント数の文字しか表示できない場合には、補間によって得られたポイント数に最も近いポイント数の文字を表示するようにしてもよい。
【００７７】
図１５（ｃ）を参照して、図形情報２６６の種類が図形群の場合には、この情報２６６には、その図形群に含まれる図形の数と、各図形に対応する図形情報への、その図形の数に対応したポインタと、図形群全体を表示する際の基準点の座標と、図形群を表示する際の表示上の縮尺比率などが格納される。この場合のポインタは、この図形群の図形情報２６６が格納されているキーフレームの中に別の図形情報として格納されている個々の図形情報へのポインタである。図１５（ｃ）に示される例の場合、基準点座標、表示上の縮尺比率などを、隣接する２つのキーフレーム間の補間計算により求めることができる。
【００７８】
次に、本発明の実施の形態２に係るアニメーション表示方法を実現するための装置について図１６を参照して説明する。実施の形態１では、隣接する２つのキーフレーム間で対応する図形情報のうち対応する特徴データの間で線形計算による補間計算で中間フレームの図形情報の対応する特徴データを生成していた。実施の形態２の方法では、このようにして補間計算により得られた特徴データをさらに所定の方法で変換して、時間軸上での各図形の動きに、線形計算では得られない変化を与えることを特徴としている。
【００７９】
図１６に、実施の形態２の方法を実現するためのコンピュータ３３０のブロック図を示す。このコンピュータ３３０が図１に示される実施の形態１を実現するためのコンピュータ３０と比較して異なるのは、メモリ３４内に、実施の形態１のためのプログラムとは異なるプログラムを記憶したプログラム情報記憶部３４４と、上述のように一旦線形計算による補間計算により得られた図形の特徴データをさらに変換する際に用いられる変換テーブル３４６とを含んでいる点である。その他の点では図１６に示されるコンピュータ３３０は図１に示されるコンピュータ３０と同様である。同一の部品には同一の参照符号および名称を与えており、それらの機能も同一である。したがってここではそれらについての詳細は繰返さない。
【００８０】
図１７を参照して、変換テーブル３４６は、実施の形態１で説明された、「次に描画すべき中間フレームの位置づけ」を示す値ｈを予め計算し、そのｈの各値に対して、その時点で実際の変化量としてとるべき値ｋを予め定め、ｈとｋとの対をテーブルとして予め準備したものである。図１７に示される変換テーブル３４６では、ｈに対してｋ＝ｈ２の関係が想定されている。なお、ｋとしてｈと上述したような関数関係を想定して変換テーブル３４６を作成してもよいが、変換テーブルを用いた場合には、必ずしもそうした関数関係に基づかず、アニメーション作成者の恣意的な意図によってｋを定めることができ、それによって単純な関数では得られないような特殊な動きを実現することが可能になる。
【００８１】
図２７を参照して、このような変換テーブルを複数個準備し、それぞれの図形情報に付加されたテーブル番号によって、それぞれ異なる変換テーブルを対応付けることにより、キーフレームが２つだけであっても、それぞれの図形に、時間軸に対して異なる動きを表現させることが可能になる。なお、ここではテーブル番号＝０は、変換テーブルを用いないということを表すものである。
【００８２】
また、図２８を参照して、テーブル番号１はｋの変化量が次第に増加する加速度運動、テーブル番号２はｋの値が０と１の間で振動する反復運動を表している。図２９を参照して、等速で移動する飛行機の絵１００１には変換テーブルを対応させないものとし、落下するリンゴの絵１００２にはテーブル番号１すなわち加速度運動を対応させ、しゃべる人物の絵１００３にはテーブル番号２すなわち反復運動を対応させるものとすると、キーフレーム１とキーフレーム２の２つのキーフレームだけで、３種類の異なる性質の動きを同時に実現することが可能となる。
【００８３】
図１８に、図１６に示すプログラム情報記憶部３４４に格納されるプログラムの制御の流れを示す。図１８に示すフローチャートが図６に示される実施の形態１のプログラムのフローチャートと異なるのは、ステップＳ８の後に、ステップＳ８で得られたｈを、変換テーブル３４６を参照してｋに変換するステップＳ１１が含まれることと、図６のステップＳ９でｈの代わりにｋを用いてステップＳ９と同様の処理を行なうステップＳ１２が挿入されていることとである。他の点では図１８は図６に示されるフローチャートと全く同様である。
【００８４】
このように、線形計算による補間計算により得られた値ｈを、変換テーブル３４６を用いてｋに変換しｋを用いて中間フレームの対応パラメータを計算して図形を生成する。こうした処理をたとえば図形の座標点に対して適用すると、たとえば加速度を伴った図形の動きなど、時間の進行に対して非直線の動きを表現することが可能になる。また、既に述べたようにテーブル３４６の内容を自由に設定できることから、時間に対して恣意的な動きを設定することができるという利点がある。また図形の色に対して適用すると、時間軸上で色が変化する特殊な効果を出すことができる。
【００８５】
このように一旦ｈを計算した後、ｈを別の値ｋに変換する方法としては、テーブル変換ではなく或る関数の変数としてｈを代入し、そのときの関数の値をｋとすることも考えられる。たとえばｋ＝ｈ２という演算を行なってｋを得ることが考えられる。もちろんこの例は一例であり、他のどのような関数を用いてもよい。この場合、図１８のステップＳ１１で、上述の関数による変換を行なえばよい。この場合には、テーブル変換による場合と比較して、保有しなければならないデータ量がより少なくなるという利点がある。
【００８６】
上述のように本発明によれば、隣接するキーフレームの対応する図形の対応するパラメータ間で補間を行なうことにより中間フレームを作成するキーフレーム補間方式のコンピュータアニメーションにおいて、ＣＰＵ速度や１フレーム当り必要とされる描画量に依存せず、全体の再生時間を一定とすることが可能となる。そのため画像は、音声と同期して再生させることが容易となる。また、ＣＰＵの処理能力に応じて増加する中間フレーム数でアニメーションを再生することができ、かつＣＰＵに遊び時間が発生することがないため、ＣＰＵの処理能力の増大に応じ過去に作成したデータを修正することなく、より滑らかなアニメーションを再生することができる。
【００８７】
本発明におけるアニメーション表示プログラムは、磁気テープ又はＣＤ−ＲＯＭ等の記録媒体におって供給される。当該アニメーション表示プログラムはコンピュータ本体によって実行され、操作者はグラフィックディスプレイ装置を見ながらキーボードまたはマウスを操作することによってアニメーション表示を行う。また、アニメーション表示プログラムは他のコンピュータより通信回路を経由し、通信モデムを介してコンピュータ本体に供給されてもよい。
【図面の簡単な説明】
【図１】本発明を実現するためのコンピュータのブロック図である。
【図２】キーフレーム情報を模式的に示す図である。
【図３】アニメーションの一例を模式的に示す図である。
【図４】図３に示されるアニメーションを再生する上で必要とされるキーフレームの画像を示す図である。
【図５】図４に示されるキーフレームのためのキーフレーム情報を示す図である。
【図６】実施の形態１でのアニメーション表示方法を実現するためのプログラムのフローチャートである。
【図７】中間フレームの生成タイミングを模式的に示す図である。
【図８】描画量が一定の場合の、中間フレームの描画開始タイミングを模式的に示す図である。
【図９】図３に示されるアニメーションを再生する場合の、中間フレームの各図形を模式的に示す図である。
【図１０】図形の描画量が変化するアニメーションのためのキーフレームを示す図である。
【図１１】図１０に示されるアニメーションのキーフレーム情報を示す図である。
【図１２】図１０に示されるキーフレームから再生されるアニメーションの、各フレームの描画開始タイミングを模式的に示す図である。
【図１３】図３に示されるアニメーションを、処理能力の高いＣＰＵで処理した場合の、各フレームの描画開始タイミングを模式的に示す図である。
【図１４】図１０に示されるアニメーションを、処理能力の高いＣＰＵで処理した場合の、各フレームの描画開始タイミングを示す模式図である。
【図１５】図形の色など、座標情報以外のデータを格納した図形情報の構成の例を示す図である。
【図１６】本発明の実施の形態２を実現するためのコンピュータのブロック図である。
【図１７】変換テーブルを模式的に示す図である。
【図１８】実施の形態２の方法を実現するためのプログラムのフローチャートである。
【図１９】従来のキーフレーム補間方式のアニメーションの原理を模式的に示す図である。
【図２０】従来方式によるアニメーション表示の一例を示す図である。
【図２１】従来技術によるキーフレーム補間方式のアニメーションの問題点を示すための図である。
【図２２】従来技術によるキーフレーム補間方式のアニメーションの問題点を示すための図である。
【図２３】従来技術によるキーフレーム補間方式のアニメーションの問題点を示すための図である。
【図２４】従来技術によるキーフレーム補間方式のアニメーションの問題点を示すための図である。
【図２５】従来技術によるキーフレーム補間方式のアニメーションの問題点を示すための図である。
【図２６】従来技術によるキーフレーム補間方式のアニメーションの問題点を示すための図である。
【図２７】本発明の実施の形態２における複数の変換テーブルを持つ場合のキーフレーム情報を模式的に示すための図である。
【図２８】本発明の実施の形態２における複数の変換テーブルの例を示すための図である。
【図２９】本発明の実施の形態２における複数の変換テーブルを利用したアニメーションのキーフレームの例を示すための図である。
【符号の説明】
３０、３３０  コンピュータ
３２  ＣＰＵ
３４  メモリ
３６  グラフィックメモリ
３８  ディスプレイ画面
４０  タイマ
６２、６４、６６、１６２、１６４、１６６  キーフレーム情報
３４６  変換テーブル
【図１】
0003616241.tif 000005
【図２】
0003616241.tif 000006
【図３】
0003616241.tif 000007
【図４】
0003616241.tif 000008
【図５】
0003616241.tif 000009
【図６】
0003616241.tif 000010
【図７】
0003616241.tif 000011
【図８】
0003616241.tif 000012
【図９】
0003616241.tif 000013
【図１０】
0003616241.tif 000014
【図１１】
0003616241.tif 000015
【図１２】
0003616241.tif 000016
【図１３】
0003616241.tif 000017
【図１４】
0003616241.tif 000018
【図１５】
0003616241.tif 000019
【図１６】
0003616241.tif 000020
【図１７】
0003616241.tif 000021
【図１８】
0003616241.tif 000022
【図１９】
0003616241.tif 000023
【図２０】
0003616241.tif 000024
【図２１】
0003616241.tif 000025
【図２２】
0003616241.tif 000026
【図２３】
0003616241.tif 000027
【図２４】
0003616241.tif 000028
【図２５】
0003616241.tif 000029
【図２６】
0003616241.tif 000030
【図２７】
0003616241.tif 000031
【図２８】
0003616241.tif 000032
【図２９】
0003616241.tif 000033