(57)【特許請求の範囲】
【請求項１】
記憶手段に記憶されている複数の部分画像の中から、予め定められた表示管理用情報により順次指定される再生位置に基づきひとつの部分画像を選択し、当該選択された部分画像を表示画面上に配置していくことにより、動画再生を行う方法に適用される描画色変更方法であって、
複数の所定再生位置で選択されるべき前記部分画像の描画色を指定し、
前記表示管理用情報により順次指定される再生位置に基づいて選択される部分画像の描画色を、前記指定された再生位置と前記複数の所定再生位置にて指定された描画色とに基づいて決定する、
ことを特徴とする描画色変更方法。
【請求項２】
予め用意された複数の部分画像を記憶する記憶手段を備え、この記憶手段に記憶されている複数の部分画像の中から、予め定められた表示管理用情報により順次指定される再生位置に基づきひとつの部分画像を選択し、当該選択された部分画像を表示画面上に配置していくことにより、動画の再生を行う装置であって、
複数の所定再生位置で選択されるべき前記部分画像の描画色を指定する指定手段と、
前記表示管理用情報により順次指定される再生位置に基づいて選択される部分画像の描画色を、前記指定された再生位置と前記複数の所定再生位置にて指定された描画色とに基づいて決定する制御手段と、
を具備したことを特徴とする動画再生装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、予め用意された複数の部分画像を用いて動画再生を行う技術に関し、特にはその部分画像の描画色を変更するための技術に関する。
【０００２】
【従来の技術】
画像を作成する方式の一つとして、スプライト方式がある。このスプライト方式は、スプライト（オブジェクト）、バックグランド等の部分画像を合成する（組み合わせる）ことで画像を作成する方式である。このスプライト方式には、他の方式と比較して高速に画像の再生を行えるという利点がある。このため、テレビゲーム機等の高速な画像再生が要求される装置に広く採用されている。
【０００３】
スプライト方式による画像の再生（描画）は、通常、各部分画像に対して優先度をそれぞれ設定し、各部分画像を設定した優先度に従い、優先度が低いほうから高いほうに部分画像を積み重ねる（合成する）ことで行われる。この合成方法で作成された画像では、優先度が高い部分画像がそれよりも優先度が低い部分画像を隠すような形になり、画像上には部分画像が択一的に表示される。その他には、例えば優先度に応じた比率で部分画像の重なっている部分を混ぜ合わせることで、それよりも優先度が高い部分画像に隠れている部分画像を表現する合成方法もある。
【０００４】
このようなスプライト方式を採用した従来の動画再生装置では、描画（配置）させる部分画像、及びその位置や、部分画像の描画色を選択することにより、所望する任意の画像を作成することができる。また、例えば少しずつその形状が異なる部分画像を複数用意し、これら複数の部分画像を、時間管理を行って表示画面上に配置していくことにより、アニメーション再生（動画再生）を行うことができる。
【０００５】
【発明が解決しようとする課題】
上記した従来の動画再生装置では、表示させる部分画像を選択し、それを時間管理して配置させることで、ユーザは所望のアニメーション（動画）再生を行わせることができる。しかし、部分画像の描画色は、それぞれ別々に管理しているため、それまでとは異なる描画色で部分画像をアニメーション再生させる場合、そのアニメーション再生に用いられる部分画像のなかで描画色を変更させたい部分画像毎に、それぞれ描画色を新たに指定（設定）しなければならなかった。その作業は、アニメーション用のセル画を１枚ずつ塗り替えていくようなものとなり、その作業には非常に面倒な操作と長い時間を要することから、簡単には行えないという問題点が生じていた。
【０００６】
操作が面倒（操作性が悪い）、作業に時間がかかる、といった問題点は、ユーザに悪い印象を与え、製品の売り上げを低下させる大きな要因となることから、その問題点の解決は常に希求されている。
【０００７】
また、各部分画像毎にその描画色を管理しているため、各部分画像毎に、それに設定されている描画色のデータ、或いは描画色を示すデータを記憶させておかなければならず、そのデータの格納に大きな記憶領域を必要としていたという問題点もあった。
【０００８】
部分画像の画像（グラフィック）データは、普通、予め用意されるが、周知のように、画像（グラフィック）データの格納には大きな記憶領域が必要なため、上記の問題点は深刻である。
【０００９】
本発明の課題は、所望する描画色でのアニメーション再生を容易にするとともに、部分画像の描画色の管理に必要なデータ量を低減することにある。
【００１０】
【課題を解決するための手段】
本発明の描画色変更方法は、記憶手段に記憶されている複数の部分画像の中から、予め定められた表示管理用情報により順次指定される再生位置に基づきひとつの部分画像を選択し、当該選択された部分画像を表示画面上に配置していくことにより、動画再生を行う方法に適用されることを前提とし、複数の所定再生位置で選択されるべき前記部分画像の描画色を指定し、前記表示管理用情報により順次指定される再生位置に基づいて選択される部分画像の描画色を、前記指定された再生位置と前記複数の所定再生位置にて指定された描画色とに基づいて決定する。
【００１３】
本発明の動画再生装置は、予め用意された複数の部分画像を記憶する記憶手段を備え、この記憶手段に記憶されている複数の部分画像の中から、予め定められた表示管理用情報により順次指定される再生位置に基づきひとつの部分画像を選択し、当該選択された部分画像を表示画面上に配置していくことにより、動画の再生を行うことを前提とし、複数の所定再生位置で選択されるべき前記部分画像の描画色を指定する指定手段と、前記表示管理用情報により順次指定される再生位置に基づいて選択される部分画像の描画色を、前記指定された再生位置と前記複数の所定再生位置にて指定された描画色とに基づいて決定する制御手段と、
を具備する。
【００１７】
上記動画再生方法（動画再生装置）では、通常、動作を表現するために、複数の部分画像が予め用意される。例えば、ある人物（部分画像）の動きを表現するために、その人物の形状等を変えてそれを複数用意する。これにより、例えば、その複数用意した同じ人物のなかから選択して表示画面上に配置していくことで、その人物の動作を表現することができるようになる。
【００１８】
このように、上記動画再生方法（或いは、その装置）では、動作させる部分画像は複数用意されているのが普通であることから、それらをグループにまとめて一元的に管理し、アニメーション再生中に描画色を変更させていく視覚的効果を付加する場合には、ユーザから与えられた情報を基に、それを加工していくことで行う。言い換えれば、少ない情報を基にして、多くの情報を作成するようにする。
【００１９】
その情報を作成する方法を予め設定しておくことにより、ユーザは、所望の視覚的効果が得られる情報（描画色）を与えるだけで、その情報を与える部分画像が人物であればその人物に対して所望の視覚的効果を付加したアニメーション再生が可能となる。また、ユーザが与えなければならない情報量が少ないことから、その情報を与えるための作業は簡単化して短時間で行えるようになり、作成できる情報は随時作成すれば良いことから、情報の記憶に要する領域は非常に小さくなる。
【００２０】
【発明の実施の形態】
以下、図面を参照しながら、本発明の実施の形態につき詳細に説明する。
＜第１の実施の形態＞
・回路の全体構成、及びその動作
図１は、第１の実施の形態が適用されたシステムの全体回路構成図である。この図１に示すシステムは、テレビ１０８と、そのテレビ１０８に接続させて用いられる動画再生装置とから構成される。
【００２１】
図１に示すように、本システムは、システム全体の制御を実行するＣＰＵ１０１と、制御プログラム、各種データ等を格納したプログラム／データＲＯＭ１０２と、主にＣＰＵ１０１がワーク用として使用するワークＲＡＭ１０３と、ＣＰＵ１０１に接続された入力装置１０４と、プログラム／データＲＯＭ１０２に格納されている画像データを用いた画像処理を行うＶＤＰ（ビデオディスプレイプロセッサ）１０５と、スプライト（オブジェクト）、バックグラウンドの各部分画像の画像（グラフィック）データが格納されるＳＲＡＭ（スタティックＲＡＭ）１０６と、ＶＤＰ１０５が出力したＲＧＢアナログ映像信号をＮＴＳＣ方式の信号に変換するエンコーダ１０７と、上記テレビ１０８とを備えて構成されている。
【００２２】
上記入力装置１０４としては、例えば図１に示したようなコントロールパッドが採用される。このコントロールパッド１０４上には、ユーザにより操作される各種キーが備えられている。具体的には、テレビ１０８の画面上に表示されたカーソルアイコンを移動させるためのカーソル移動キーＫＹ１、アニメーション再生のスタート／ストップを指示するためのスタート／ストップキーＫＹ２、アニメーション再生させる画像を最初の画像に戻すためのリセットキーＫＹ３、設定されているモードを変更するためのモード変更キーＫＹ４、画像（動画）の作成において選択した内容を確定させるための決定キーＫＹ５、アニメーションとして表示させる画像を順序方向（正方向）に、１コマ分だけ進める正方向コマ送りキーＫＹ６、及びその逆方向に１コマ分だけ戻す逆方向コマ送りキーＫＹ７を備えている。
【００２３】
以上の構成において、動作の概略を説明する。
ＣＰＵ１０１は、プログラム／データＲＯＭ１０２から読み出した制御プログラムを実行することで、ワークＲＡＭ１０３を使用しながら、コントロールパッド１０４に対して行われたキー操作の検出、及びＶＤＰ１０５の制御を行う。
【００２４】
プログラム／データＲＯＭ１０２には、画像を構成するスプライト（オブジェクト）、バックグラウンドの各部分画像の画像（グラフィック）データが格納されている。スプライト（オブジェクト）は、主として動く（形状の変化を含む）ものを表現するためのパーツであり、他方のバックグラウンドは、背景を表現するためのパーツである。ＣＰＵ１０１は、このＲＯＭ１０２に格納されている画像（グラフィック）データをＶＤＰ１０５に転送し、ＶＤＰ１０５に、その画像（グラフィック）データをＳＲＡＭ１０６に格納させる。ＣＰＵ１０１は、ＶＤＰ１０５に転送する画像（グラフィック）データを、予め定められた設定、ユーザがコントロールパッド１０４に対して行った操作内容等から決定する。
【００２５】
ＣＰＵ１０１から画像（グラフィック）データを転送されたＶＤＰ１０５は、転送された画像（グラフィック）データを所定の形式でＳＲＡＭ１０６に格納する。ＣＰＵ１０１から転送された画像（グラフィック）データを上記ＳＲＡＭ１０６に格納した後は、ＳＲＡＭ１０６に格納した画像（グラフィック）データを用いて、表示させる画像のＲＧＢアナログ映像信号を１走査線毎に生成する。
【００２６】
ＶＤＰ１０５が生成したＲＧＢアナログ映像信号は、エンコーダ１０７に出力される。エンコーダ１０７は、この映像信号で表現される画像をテレビ１０８の画面上に表示させるために、その映像信号をテレビ規格であるＮＴＳＣ方式の映像信号に変換した後、テレビ１０８に出力する。このテレビ１０８は、画面をラスタ走査することで、画面上に画像を描画する。
・ＶＤＰ１０５の構成、及び動作
図２は、ＶＤＰ１０５の構成図である。
【００２７】
このＶＤＰ１０５は、上記したように、表示させる画像のＲＧＢデータを生成することにより、テレビ１０８への画面表示を制御する。その構成としては、以下のものを備える。
【００２８】
先ず、ＣＰＵインタフェース部２０１は、ＣＰＵ１０１との間のデータ転送時におけるインタフェースを制御する。
ＳＲＡＭインタフェース部２０２は、後述するオブジェクトジェネレータ部２０３、及びバックグラウンドジェネレータ部２０５が、ＳＲＡＭ１０６に格納されているスプライト（オブジェクト）又はバックグラウンド（背景）の画像（グラフィック）データをアクセスする場合のインタフェースを制御する。また、ＣＰＵ１０１から転送されたスプライト（オブジェクト）、バックグラウンドの画像（グラフィック）データを、ＣＰＵインターフェイス部２０１、データバス２１４を介して受け取り、ＣＰＵ１０１がＣＰＵインターフェイス部２０１、アドレスバス２１３を介して指定したアドレスに従ってＳＲＡＭ１０６にそれを格納する。
【００２９】
オブジェクトジェネレータ部２０３、及びバックグラウンドジェネレータ部２０４は、各水平期間（図１３参照）毎に、ＳＲＡＭ１０６から、次の水平表示期間内の各ドットの表示座標に配置されるスプライト（オブジェクト）、或いはバックグラウンドの画像（グラフィック）データを読み込み、それぞれの内部のバッファに格納する。
【００３０】
オブジェクトアトリビュートメモリ（ＯＡＭ）部２０５は、ＳＲＡＭ１０６に格納されているスプライト（オブジェクト）の表示座標を格納する。この表示座標は、オブジェクトジェネレータ部２０５が、ＳＲＡＭ１０６からＳＲＡＭインタフェース部２０２を介してスプライト（オブジェクト）の画像（グラフィック）データを読み出すときのタイミングに対応する。オブジェクトジェネレータ部２０３は、各スプライト（オブジェクト）の表示座標に従い、ＳＲＡＭ１０６からＳＲＡＭインタフェース部２０２を介して対象とするスプライト（オブジェクト）の画像（グラフィック）データの読み出しを行う。
【００３１】
画像（グラフィック）データは、例えば各ドットの描画色を示す色コードの集合体として用意される。プライオリティコントローラ部２０６は、各水平表示期間内に対応している各ドット毎に、オブジェクトジェネレータ部２０３、或いはバックグラウンドジェネレータ部２０４がそれぞれ出力した色コードのうちの１つを予め定められたプライオリティ（優先順位）に従って選択して出力する。
【００３２】
カラールックアップテーブル部２０７は、各色コードに割り当てられたＲ（赤）、Ｇ（緑）、Ｂ（青）のデジタルデータ（ＲＧＢデータ）をそれぞれ別の記憶領域に格納しており、プライオリティコントローラ部２０６が出力した色コードに割り当てられているＲＧＢデータを選択してＲＧＢ  Ｄ／Ａ変換部２０８に出力する。
【００３３】
ＲＧＢ  Ｄ／Ａ変換部２０８は、カラールックアップテーブル部２０７が出力したＲＧＢデジタルデータをＲＧＢアナログ映像信号に変換して出力する。
オシレータ部２０９は、ＶＤＰ１０５の各部が動作するうえで必要な各種クロックを生成する。
【００３４】
水平／垂直同期カウンタ部２１０は、オシレータ部２０９が出力するクロックに従って、画像表示に必要な水平同期カウンタ値（水平同期信号）及び垂直同期カウンタ値（垂直同期信号）を生成するためのカウンタ回路である。
【００３５】
デコーダ部２１１は、水平／垂直同期カウンタ部２１０が出力するカウンタ値から水平同期カウンタ値及び垂直同期カウンタ値をデコードし、ＶＤＰ１０５内の各部に供給する。
【００３６】
ビデオ信号ジェネレータ部２１２は、デコーダ部２１１が出力する水平同期カウンタ値及び垂直同期カウンタ値から、エンコーダ１０７が必要とするビデオ信号を生成し、エンコーダ１０７に供給する。
【００３７】
次に、上述の構成を有するＶＤＰ１０５の概略動作について説明する。
本実施の形態によるＶＤＰ１０５は、図３に示すように、各ジェネレータ部２０３〜２０４が出力する画像（グラフィック）データで表現される画像をそれぞれ仮想的な表示面とし、これらの表示面を重ねることで１枚の表示画面（画像）を形成させる。
【００３８】
図３において、背景面はバックグラウンドジェネレータ部２０４によって作成され、その他の表示面であるオブジェクト面、及びアイコン面はオブジェクトジェネレータ部２０３によって作成される。これらの表示面は、奥から手前に向けて、背景面、オブジェクト面、アイコン面の順に配置されている。
【００３９】
ＶＤＰ１０５内の特には図示しない表示制御レジスタには、これら背景面、オブジェクト面、アイコン面のそれぞれの表示の有無を示すフラグが格納される。ＣＰＵ１０１は、この表示制御レジスタにアクセスして、各表示面の表示／非表示を設定する。
【００４０】
各表示面のプライオリティは、手前の表示面ほど高く設定されている。プライオリティコントローラ部２０６は、各表示面に設定されている優先度に従い、各ドット毎に、各ジェネレータ部２０３〜２０４から出力された画像（グラフィック）データ（色コード）のなかから１つを選択してそれをカラールックアップテーブル部２０７に出力する。この選択は、当然のことながら、各ジェネレータ部２０４〜２０６のなかで選択の対称となる色コード（透明色が設定されていない色コード）を出力しているものの間で行う。これにより、各表示面は、プライオリティが高い表示面がそれよりもプライオリティが低い表示面を隠すような形で合成される。
【００４１】
背景面には背景がアサインされ、オブジェクト面には表示画面上で動かすものがアサインされ、アイコン面には画像の作成に必要な各種アイコン類等がアサインされる。具体的には、図３に示すように、オブジェクト面にはキャラクタがアサインされ、アイコン面にはパレット変更アイコン、パレットアイコン群、及びカーソルアイコンがアサインされている。以降の説明は、各表示面に、図３に示す部分画像がそれぞれアサインされていることを前提として行う。これは、説明を具体的にすることにより、理解を容易とするためである。また、表示面に配置されるパーツについては、それを特定しない場合には部分画像と表現することとする。
【００４２】
本実施の形態では、オブジェクト面にアサインされている部分画像、即ちキャラクタの表示の有無、及び表示させる部分画像の描画色を指定することにより、１画面分の画像の作成が行われる。特に詳細な説明は省略するが、表示させる部分画像の選択は、例えば表示可能な部分画像の名称（アイコン面にアサインされる）を表示させたなかから、ユーザがカーソルキーＫＹ１、決定キーＫＹ５等を操作することで行われる。
【００４３】
また、本実施の形態では、これらの部分画像の画像（グラフィック）データの他に、これら部分画像を動作させる、いわゆるアニメーションとしての再生を行うためのデータがプログラム／データＲＯＭ１０２に格納されている。
【００４４】
図４は、キャラクタの表示に関わるデータの構成図であり、同図（ａ）はキャラクタ表示用、同図（ｂ）はキャラクタ動作用のデータの構成例である。これらは、プログラム／データＲＯＭ１０２に格納されているデータである。
【００４５】
キャラクタ表示用のデータは、アニメーションデータと画像（グラフィック）データとからなる。
図４（ａ）のアニメーションデータは、画像（グラフィック）データに付与した番号である画像（グラフィック）データ番号と、その画像（グラフィック）データ番号の画像（グラフィック）データを表示させている時間を示す待ち時間とからなる。待ち時間は、予め定められた時間単位で表現した際の値で用意されている。データ＃１６の＜最初に戻る＞コマンドは、アニメーションデータの最初のデータ＃０に戻すことを意味する。
【００４６】
図４（ｂ）の移動量データは、キャラクタが前回の表示位置から移動させるＸ方向、Ｙ方向の移動量、及び待ち時間からなる。これらは、キャラクタの表示位置管理を行うためのデータである。一方、初期位置データは、キャラクタの初期表示位置を示すデータである。初期のＸ座標、Ｙ座標、及び最初に移動量データが加算されるまでの待ち時間からなる。
【００４７】
部分画像の描画色は、図３に示すパレットアイコン群のなかからパレットアイコンを一つ選択し、その選択したパレットアイコンで描画させたい部分（部分画像を構成する１領域）を指定することで変更（設定）する。パレットアイコンの選択は、カーソルアイコンを所望のパレットアイコンの位置に移動させた後、決定キーＫＹ５を操作することで行う。描画色の変更を所望する部分の指定は、カーソルアイコンをその部分に移動させた後、決定キーＫＹ５を操作することで行う。
【００４８】
本実施の形態では、ユーザの様々な要求に対応できるように、パレットアイコン群（パレット）を複数用意している。パレット変更アイコンは、表示させるパレットアイコン群（パレット）の変更を指示するためのものであり、パレット変更アイコンがクリックされる度に、パレット（パレットアイコン群）が所定の順序でサイクリックに切り替わって表示される。このパレット（パレットアイコン群）毎に表示させる描画色のデータ（ＲＧＢデータ）は、図５に示すフォーマットでプログラム／データＲＯＭ１０２に格納されている（図中、＃を付けて示す数字はパレット番号）。
【００４９】
プログラム／データＲＯＭ１０２に格納されているこれら各種データは、デフォルトで指定されている内容、或いはユーザがコントロールパッド１０４を操作することで指定した内容に従ってＣＰＵ１０１により読み出される。ＣＰＵ１０１は、これらのデータを読み出すと、データの種類により、そのまま、或いは加工してＶＤＰ１０５に送出する。
【００５０】
ＣＰＵ１０１がＶＤＰ１０５に送出した画像（グラフィック）データは、ＣＰＵインターフェイス部２０１、データバス２１４、及びＳＲＡＭインターフェイス部２０２を介してＳＲＡＭ１０６に送られる。ＳＲＡＭ１０６は、ＣＰＵインターフェイス部２０１、アドレスバス２１３、及びＳＲＡＭインターフェイス部２０２を介してＣＰＵ１０１が指定したアドレスに、ＣＰＵ１０１から送られた画像（グラフィック）データを図６に示すフォーマットで格納する。
【００５１】
背景を除く部分画像は、座標位置の設定により、それが配置（表示）される位置が制御される。ＣＰＵ１０１は、ＳＲＡＭ１０６に格納されている部分画像（画像（グラフィック）データ）を表示させる座標位置等の属性を示すデータ（属性データ）を生成し、ＶＤＰ１０５に送出する。ＶＤＰ１０５は、この属性データを、ＣＰＵインターフェイス部２０１、データバス２１４を介してＯＡＭ部２０５に送る。ＯＡＭ部２０５は、この送られた属性データを、ＣＰＵインターフェイス部２０１、アドレスバス２１３を介してＣＰＵ１０１が指定したアドレスに図６に示すフォーマットで格納する。
【００５２】
図６に示すように、各部分画像の画像（グラフィック）データとその属性データは、それが格納される領域が予め定められており、それらは対応づけられて格納される。各部分画像は、それがアサインされている表示面のプライオリティの他に、同一の表示面内におけるプライオリティが設定されている。この同一の表示面内におけるプライオリティは、ＯＡＭ部２０５（ＳＲＡＭ１０６）に格納される位置により制御されている。図７において上方に位置しているものほどプライオリティが高く設定されている。具体的には、アイコン面においてはカーソルアイコン、パレット変更アイコン、パレットアイコン群の順に高いプライオリティが設定されている。
【００５３】
なお、上記部分画像の属性データは、図６に示すように、その部分画像を左右に反転表示させるか否かを示す左右反転フラグ、この属性データに対応するＳＲＡＭ１０６内の部分画像を特定させるキャラクタ番号（図中、キャラクタ＃Ｎ（Ｎは整数）で表現）、その部分画像を表示させるＸ、Ｙ座標から構成される。
【００５４】
オブジェクトジェネレータ部２０３は、各水平期間内の時分割された各タイミングで、ＳＲＡＭインターフェイス部２０２をアクセスする。このとき、オブジェクトジェネレータ部２０３は、ＯＡＭ部２０５に格納された属性データを基に、ＳＲＡＭ１０６から読み出された画像（グラフィック）データを内部のラインバッファに格納するタイミングを計算し、そのタイミングで画像（グラフィック）データを各表示面別のラインバッファに格納する。これらのラインバッファには、同一の表示面内におけるプライオリティの高さで優先させて、部分画像の画像（グラフィック）データが格納される。
【００５５】
他方のバックグラウンドジェネレータ部２０４は、オブジェクトジェネレータ部２０３とは別に、各水平期間内の時分割された各タイミングで、ＳＲＡＭインターフェイス部２０２をアクセスして、ＳＲＡＭ１０６から次の水平期間内に表示すべき背景の画像（グラフィック）データを１ライン分読み出し、それを内部のラインバッファに格納する。
【００５６】
このようにして、オブジェクトジェネレータ部２０３内の２つのラインバッファには、オブジェクト面、アイコン面にそれぞれ配置させる次の１ライン分の画像（グラフィック）データ（色コード）が、各水平期間毎に格納される。他方のバックグラウンドジェネレータ部２０４内のラインバッファには、背景面に配置させる次の１ライン分の画像（グラフィック）データ（色コード）が、各水平期間毎に格納される。
【００５７】
オブジェクトジェネレータ部２０３、バックグラウンドジェネレータ部２０４は、水平／垂直同期カウンタ部２１０から出力される水平同期カウンタ値を入力し、該カウント値に対応する色コードをその内部のラインバッファから読み出してプライオリティコントローラ部２０６に出力する。
【００５８】
プライオリティコントローラ部２０６は、各ジェネレータ部２０３、２０４から出力されたラインバッファ（表示面）毎の色コードを入力すると、各表示面に設定されているプライオリティの高さでそのなかからひとつの色コードを選択してＣＬＴ部２０７に出力する。
【００５９】
上述したように、ＣＬＴ部２０７は、各色コード毎にそれに割り当てたＲＧＢデータをそれぞれ別の記憶領域に格納したものであり、プライオリティコントローラ部２０６が出力した色コードに設定されているＲＧＢデータをＲＧＢ  Ｄ／Ａ変換部２０８に出力する。本実施の形態では、図７に示すように、部分画像の種類毎に色コードを割り当て、また、その部分画像を構成する各部分（領域）の色コードは全て同じ値に統一させている（図１０〜図１２参照）。
【００６０】
スプライト方式によるアニメーション再生では、その表示位置、その形状の変形等を行うことにより、部分画像の動作を実現する手法が用いられる。本実施の形態においては、図４から判るように、同一の種類として分類される部分画像を複数用意し、その部分画像の表示切り換え、及びそれの表示位置の移動を行うことにより、部分画像の動作を実現させている。
【００６１】
アニメーション再生を行う場合、複数用意されている各部分画像にはそれぞれ描画色が設定されている。このことから、従来、部分画像の描画色の変更には、各部分画像に設定されている描画色をそれぞれ変更しなければならず、そのために非常に面倒な作業が要求されていた。
【００６２】
本実施の形態は、表示画面（各表示面を合成後のもの）を構成する各ドットのＲＧＢデータを、ＣＬＴ部２０７を用いて生成する方式を採用しているシステムに本発明を適用させたものである。このため、図７に示すように、各部分画像の種類毎に色コードを割り当て、各色コードに設定されているＲＧＢデータを、ＣＬＴ部２０７のその色コードに割り当てた記憶領域に格納することにより、部分画像の描画色の変更を種類別に一度に行うことができる。言い換えれば、種類別にグループにまとめた複数の部分画像の描画色を一元的に管理することができる。これにより、描画色の変更に要する作業が簡易化するとともに、ユーザはその作業を短時間で終了させることができる。また、各部分画像別にその描画色の設定情報を記憶しておく必要がなくなるので、ワークＲＡＭ１０４、更にはプログラム／データＲＯＭ１０２に必要な記憶容量を小さくさせることができる。
【００６３】
図１０〜図１２は、各表示面（背景面、オブジェクト面、アイコン面）にアサインされた各部分画像を構成する各領域（主要部分）に割り当てた色コードを示している。
【００６４】
本実施の形態では、キャラクタ、背景等においても、それらは複数の領域から構成され、複数の描画色で表現されるようになっている。このため、部分画像の種類毎に複数の色コードを割り当てている。
【００６５】
図１０は、キャラクタを構成する各部分に割り当てた色コードを示す図である。図１０に示すように、キャラクタは、髪、肌、服等の複数の部分（領域）に分けられる。本実施の形態では、キャラクタの動作を表現するために、このような複数の部分（領域）に分けられるキャラクタを複数（全部で８）用意している。しかし、これら形状が異なる各キャラクタにおいて、髪に割り当てた色コードは２、肌に割り当てた色コードは３といったように、キャラクタを構成する各領域に割り当てた色コードの値は同じ値に統一させている。これら色コードは、キャラクタを構成する各部分（領域）を示す識別子となる。
【００６６】
パレットアイコン、パレットアイコン群の各パレットアイコン、カーソルアイコンにおいても、図７及び図１２に示すように、それぞれ色コードが割り当てられている。
【００６７】
上記背景は、煙、木、屋根、雲、山、池等の複数の部分（領域）に分けられる。屋根には色コード５４、煙には色コード５５、木には色コード５６、雲には色コード５０、山には色コード５１、池には色コード５２がそれぞれ割り当てられている。背景においても、それを構成する各部分（領域）に割り当てた色コードは、それが割り当てられた部分（領域）を示す識別子となる。なお、各部分（領域）の境界を示す輪郭線には、部分画像の種類に関わらず、その描画色として黒が設定される色コード１が割り当てられている。
【００６８】
各部分画像を構成する各部分（領域）の描画色は、ユーザにより指定される。このユーザによる描画色の指定に対応するために、ＣＬＴ部２０７に格納されているＲＧＢデータの書き換えが行われる。その書き換えは、ＣＰＵ１０１がＣＰＵインターフェイス部２０１、データバス２１４を介して送出したＲＧＢデータを、ＣＰＵ１０１がＣＰＵインターフェイス部２０１、アドレスバス２１３を介して指定したアドレスに書き込むことにより実現される。これにより、ユーザが指定した描画色で各部分画像が表現され、ユーザが所望する表示画面が作成される。
【００６９】
ところで、周知のように、テレビ１０８は画面をラスタ走査することで画像を描画する。このため、ＶＤＰ１０５は、その走査（フレーム周期）に対応させてＲＧＢアナログ映像信号を出力する。
【００７０】
テレビ１０８の走査に対応させた映像信号の出力は、デコーダ部２１１が出力する水平同期カウンタ値、及び垂直同期カウンタ値をそれぞれ水平同期信号、垂直同期信号とし、ＶＤＰ１０５の各部をこれらのカウンタ値に応じて動作させることで実現される。図１３は、画面表示タイミングの説明図である。これは各カウンタ値とその値で示されるドットの表示座標の関係を表したものであり、ＶＤＰ１０５の各部は各カウンタ値によって動作が制御される。
【００７１】
図１３に示すように、デコーダ部２１１から出力される水平同期カウンタ値が０００ｈ〜２ＦＦｈ（“ｈ”は１６進数を示す）まで変化する期間が１水平期間であり、そのうち０００ｈ〜０ＦＦｈの２５６カウント分の水平同期カウンタ値に対応する期間が２５６ドットからなる１ライン分の水平表示期間、それ以外の水平同期カウンタ値に対応する期間が水平ブランク期間である。また、デコーダ部２１１から出力される垂直同期カウンタ値が０００ｈ〜１ＦＦｈまで変化する期間が１垂直期間であり、これがテレビ１０８上の１画面（フィールド）分の表示期間となる。この垂直期間において、０００ｈ〜０ＤＦｈの２２４カウント分の垂直同期カウンタ値に対応する期間が垂直方向２２４ライン分の垂直表示期間、それ以外の垂直同期カウンタ値に対応する期間が垂直ブランク期間である。
【００７２】
ＣＬＴ部２０７からＲＧＢ値  Ｄ／Ａ変換部２０８へは、水平同期カウンタ値がカウントアップされる毎に、１組ずつ（１ドット）のＲＧＢデータが出力される。
【００７３】
ＣＰＵ１０１からＳＲＡＭ１０６、或いはオブジェクトアトリビュートメモリ（ＯＡＭ）部２０５への各種データの設定、及び転送は、例えば各垂直ブランク期間内に実行され、これにより表示画面を刻々と変化させることができる。また、本実施の形態においては、ＣＬＴ部２０７に格納されているＲＧＢデータの書き換えは垂直ブランク期間を利用して行っている。
・ＣＰＵ１０１の詳細動作
先ず、図８、図９、図１４〜図１６を参照して、ＣＰＵ１０１のアニメーション再生動作について具体的に説明する。図１５は、キャラクタ用のアニメーションデータ、初期位置データ、移動量データを示す。これは、キャラクタの動作を管理するためのデータである。図１４は、アニメーションとしての動作例を示すタイミングチャートである。これは、図１５に示すデータでアニメーション再生を行った場合に、キャラクタが動作表現される様子を示したものである。
【００７４】
図８は、ワークＲＡＭ１０３のデータ構成図である。ＣＰＵ１０１は、ワークＲＡＭ１０３をワーク領域として利用しながら、アニメーション再生を行う。図８は、アニメーション再生を行うためにＣＰＵ１０１がワークＲＡＭ１０３に格納する各種管理用データの構成を示したものである。
【００７５】
図８に示すように、管理用データは種類毎に分けられる。
キャラクタ管理用データは、移動量カウンタ、移動量データ番号、アニメーションカウンタ、及びアニメーションデータ番号から構成される。移動量カウンタ、及び移動量データ番号は、キャラクタの移動を管理するためのデータであり、図１５の移動量データにおいて、移動量カウンタにはデータ＃２の待ち時間、移動量データ番号には現在処理中のデータ番号（データ＃２を除く）がそれぞれセットされる。
【００７６】
アニメーションカウンタ、及びアニメーションデータ番号は、表示させるキャラクタを管理するためのデータであり、図１５において、アニメーションカウンタには待ち時間、アニメーションデータ番号には現在表示中のキャラクタ（画像（グラフィック）データ）に割り当てた番号がそれぞれセットされる。
【００７７】
アニメーション管理用データは、アニメーション再生を全体的に管理するためのデータであり、アニメーションモード、及びアニメーションフレーム番号から構成される。
【００７８】
モード管理用データのメインモードは、現在設定されているモードを示す。本実施の形態では、アニメーション再生を行うアニメーションモードと、部分画像に対して描画色の設定を行うペイントモードがある。これらのモードは、図１のモード変更キーＫＹ４を操作することにより、交互に設定が切り替わる。
【００７９】
アニメーション管理用データは、アニメーションモードが設定されていた場合に、アニメーション再生を管理するためのデータである。アニメーションモードは、アニメーションモード内で設定されているモード、即ち、アニメーション再生を現在行っているか、或いはその再生を停止させている（ポーズ中）かを示す。アニメーションフレーム番号は、アニメーション再生を開始してから経過したフレーム数を示すデータである。
【００８０】
アニメーションフレームの周波数は、図１４に示すように６０である。ＮＴＳＣ方式のフレーム周波数は３０であり、１フレームは２フィールドから構成されるので、１フィールドが１アニメーションフレームに対応する。各部分画像用に用意されている待ち時間は、この１アニメーションフレームを基準時間としての値である。ＣＰＵ１０１は、例えば、それが備えたタイマ機能により、或いはＶＤＰ１０５の水平／垂直同期カウンタ部２１０から出力された垂直同期カウンタ値（図１３参照）を入力することにより、１アニメーションフレームの時間を認識する。
【００８１】
アニメーション再生を行う場合、ＣＰＵ１０１は、例えばキャラクタ管理用データのアニメーションカウンタに待ち時間をセットすると、そのセットした値をアニメーションフレームの経過に合わせてデクリメントしていき、その値が０となったらアニメーションデータ番号が示すプログラム／データＲＯＭ１０２のアニメーションデータ中のデータを読み出し（図４（ａ）参照）、次に表示すべきキャラクタ（画像（グラフィック）データ）を特定する。
【００８２】
そのキャラクタ（画像（グラフィック）データ）を特定した後は、アニメーションカウンタにはその特定したキャラクタ（画像（グラフィック）データ）を表示させておく待ち時間をセットし、アニメーションデータ番号には更にその次に表示すべきキャラクタ（画像（グラフィック）データ）の番号が格納されているアニメーションデータ中のデータ番号をセットする。他のカウンタとデータ番号の使用方法も上記と同様である。
【００８３】
図１５において、アニメーションデータにおける全ての待ち時間（データ＃１、＃３、・・・＃１５）は６であり、移動量データにおいては、Ｘ方向移動量は１、Ｙ方向移動量は０、待ち時間は１である。このため、図１４に示すように、６アニメーションフレーム毎にキャラクタの画像（グラフィック）データが切り換えられ、１アニメーションフレーム毎にその表示位置がＸ方向の正方向に１ずつ移動することになる。なお、Ｘ方向、及びＹ方向の移動量は、例えば表示画面上のドットを基準とした値である。移動量１が１ドットに相当する場合には、キャラクタは１アニメーションフレーム期間（１／６０秒）が経過する度に１ドット移動する。
【００８４】
一方、ＣＰＵ１０１は、アニメーション再生を開始するときに、アニメーション管理用データのアニメーションフレーム番号に０をセットする。０をセットした後は、１アニメーションフレーム期間が経過する度に、そのセットされている値をインクリメントする。
【００８５】
本実施の形態では、図１４に示すように、アニメーション再生を行う期間を１０秒間としている。このため、アニメーション再生を開始してから１０秒が経過すると、即ちアニメーションフレーム番号が５９９になると、アニメーション再生を終了させる。
【００８６】
図５に示すように、本実施の形態では複数のパレット（パレットアイコン群）を用意している。パレット管理用データのパレット番号は、現在選択（アイコン面に配置）しているパレット（パレットアイコン群）を示す番号である。
【００８７】
図１６は、モード遷移図である。これは、モード変更キーＫＹ４を操作することにより、表示される画面を示したものである。
図１６に示すように、アニメーションモードが設定されていた場合にユーザがモード変更キーＫＹ４を操作すると、ＣＰＵ１０１はペイントモードに設定を切り換える。言い換えれば、モード管理用データのメインモードの設定を変更する。このモード切り換えを行うと、アニメーションフレーム番号で示される現在の再生位置に関わらず、アニメーションフレーム番号が０のときの画面を表示させる。このアニメーションモードを設定させている場合、ＣＰＵ１０１は、アイコン面を非表示にさせる。
【００８８】
ペイントモードにおいて、ＣＰＵ１０１は、各コマ送りキーＫＹ６、ＫＹ７の操作に応じて、表示させる画面を、アニメーションフレーム番号が０のもの（最初の画面）とアニメーションフレーム番号が５９９のもの（最後の画面）とに交互に切り換える。一方、アニメーションモードでは非表示とさせていたアイコン面を表示させる。これにより、ユーザは、各コマ送りキーＫＹ６、ＫＹ７を操作することで、所望の画面を表示させ、カーソル移動キーＫＹ１、決定キーＫＹ４を操作して、各画面毎に描画色の指定を行うことができる。
【００８９】
図９に示すように、ワークＲＡＭ１０３には、各部分画像毎に、それに割り当てられた色コードに応じて、ユーザが指定した描画色のＲＧＢデータ（パレットデータ）を格納する領域が用意されている。ＣＰＵ１０１は、上記ペイントモードを設定させていた際に、各画面毎にユーザが指定した描画色のＲＧＢデータをパレットデータとして、図９に示すフォーマットでワークＲＡＭ１０３に格納する。その後、モード変更キーＫＹ４が操作され、アニメーションモードに設定を切り換えると、ワークＲＡＭ１０３に格納されているパレットデータを用いて、アニメーション再生において表示させる部分画像の描画色を、その再生の進行に合わせて変更させる。アニメーション再生に合わせた描画色の変更は、例えばそのＲＧＢデータを各成分にわけ、数１を用いて行う。
【００９０】
【数１】
0003721623.tif 000002
【００９１】
数１から判るように、本実施の形態では、ユーザが指定した描画色のＲＧＢデータ、即ちパレットデータを用いて、そのパレットデータが指定された再生位置の間の描画色（ＲＧＢデータ）を補間して作成する。このため、アニメーションの再生位置毎に部分画像の描画色のＲＧＢデータを格納する必要がなくなり、パレットデータを格納させるワークＲＡＭ１０３上の格納領域を小さくすることができるとともに、アニメーション再生中に部分画像（例えばキャラクタ）を様々な描画色で表現させることができる。また、部分画像の描画色は、２ペイントフレームの画面上で指定するだけなので、簡単、且つ短時間にそのための作業を行うことができる。更には、上述したように、部分画像の描画色をグループ毎に一元的に管理しているため、アニメーション再生中での部分画像に対する描画色の設定も容易であるという効果もある。
【００９２】
処理フローの説明
図１７〜図３１に示す動作フローチャートを参照して、ＣＰＵ１０１の動作を詳細に説明する。各種の動作フローチャートは、プログラム／データＲＯＭ１０２に格納されている制御プログラムをＣＰＵ１０１が実行することにより実現される。
【００９３】
図１６は、全体処理の動作フローチャートである。
システムの電源がオンされると、先ず、ステップ１７０１のイニシャル処理を実行する。このイニシャル処理は、ＶＤＰ１０５の初期設定等を行う処理である。この処理を実行することにより、テレビ１０８には初期画面が表示される。その処理の詳細については後述する。
【００９４】
ステップ１７０１のイニシャル処理が終了すると、次に、コントロールパッド１０４上の各種キーを走査し、それら各種キーの操作状態の情報を取り込む処理を行う（ステップ１７０２）。このステップ１７０２の処理が終了すると、ステップ１７０３の処理に移行する。
【００９５】
ステップ１７０３では、ステップ１７０２で取り込んだ各種キーの操作状態の情報から、現在操作されているキーの種類を判別する。このステップ１７０３において、操作されているキーが存在しないと判別した場合、ステップ１７１８の処理に移行する。何らかのキーが操作されていると判別した場合には、その判別結果に応じて、ステップ１７０４〜１７１７の処理を実行する。
【００９６】
ステップ１７０３でカーソル移動キーＫＹ１が操作されていると判別した場合、次にステップ１７０４の処理に移行する。このステップ１７０４では、現在設定されているメインモードを判定する。その判定は、ワークＲＡＭ１０３に格納されているモード管理用データ（図８参照）から判定する。メインモードとしてアニメーションモードが設定されていた場合、ステップ１７１８の処理に移行し、ペイントモードが設定されていた場合には、ステップ１７０５の処理に移行する。
【００９７】
カーソル移動キーＫＹ１は、上下左右キーから構成される。ステップ１７０５では、カーソルアイコンの現在の表示位置（ＸＹ座標）に対し、カーソル移動キーＫＹ１において操作されたキーの種類に応じた演算を行うことにより、カーソルアイコンを次に表示すべき位置を算出する。この算出した値は、ワークＲＡＭ１０３の所定の格納領域に格納する。この新たに算出した表示位置（ＸＹ座標）は、後述するステップ１７１９において、カーソルアイコンの属性データとして図２に示すＯＡＭ部２０５に送出される。これにより、ユーザがカーソル移動キーＫＹ１に対して行った操作に追従してカーソルアイコンが表示画面上を移動することになる。ステップ１７０５の処理を終了した後は、ステップ１７１８の処理に移行する。
【００９８】
ステップ１７０３で決定キーＫＹ５が操作されていると判別した場合、次にステップ１７０６の処理に移行する。決定キーＫＹ５は、上述したように、所望する内容を実現するための動作の実行をユーザが指示するためのキーである。ステップ１７０６に続くステップ１７０７〜１７１３の処理は、ユーザが実現を指示した内容に応じて行われる。
【００９９】
ステップ１７０６では、現在設定されているメインモードを判定する。その判定は、ワークＲＡＭ１０３に格納されているモード管理用データ（図８参照）から判定する。メインモードとしてアニメーションモードが設定されていた場合、ステップ１７１８の処理に移行し、ペイントモードが設定されていた場合には、ステップ１７０７の処理に移行する。
【０１００】
ステップ１７０７では、カーソルアイコンがパレットアイコン群の何れかのパレットアイコン上にあるか否か判定する。ユーザがカーソルアイコンを表示されている何れかのパレットアイコン上に移動させた後、決定キーＫＹ５を操作した場合、その判定はＹＥＳとなってステップ１７０８の処理に移行する。そうでない場合、その判定はＮＯとなってステップ１７０９の処理に移行する。
【０１０１】
なお、パレットアイコン群を表示させるための画像（グラフィック）データには、色コードが０、即ち透明となっている部分もある（図７参照）。この透明となっている部分（領域）は表示されないことから、カーソルアイコンがその部分（領域）に位置していた場合には、ステップ１７０７ではカーソルアイコンはパレットアイコン上に位置していないと判定する。これは、カーソルアイコンが他の部分画像上に位置しているか否かを判定する場合も同様である。
【０１０２】
カーソルアイコンがパレットアイコン上に位置しているか否かは、例えばＯＡＭ部２０５に現在格納させているカーソルアイコンのＸＹ座標と、ＯＡＭ部２０５に格納させているパレットアイコン群のＸＹ座標とを比較することにより行う。これは、カーソルアイコンが他の部分画像上に位置しているか否かを判定する場合も同様である。ＯＡＭ部２０５に格納されている各種部分画像のＸＹ座標は、ワークＲＡＭ１０３にも格納されており、ＣＰＵ１０１は、このワークＲＡＭ１０３から該当する部分画像のＸＹ座標を読み出して、上記の判定を行う。
【０１０３】
ユーザがカーソルアイコンを表示されている何れかのパレットアイコン上に移動させた後、決定キーＫＹ５を操作した場合、そのパレットアイコンに割り当てられた色コードの選択色（ＲＧＢデータ）が、部分画像（それを構成する部分）を塗る描画色となる。ステップ１７０８では、パレットアイコンに割り当てた色コードのＲＧＢデータを、カーソルアイコンに割り当てた色コードのＲＧＢデータとする描画色変更処理を実行する。その後、ステップ１７１８の処理に移行する。
【０１０４】
ステップ１７０９では、カーソルアイコンがパレット変更アイコン（図３参照）上に位置しているか否か判定する。ユーザが、カーソルアイコンをパレット変更アイコン上に移動させた後、決定キーＫＹ５を操作した場合、その判定はＹＥＳとなってステップ１７１０の処理に移行する。そうでない場合、その判定はＮＯとなってステップ１７１１の処理に移行する。
【０１０５】
パレット変更アイコンは、表示されているパレット（パレットアイコン群）を他のパレット（パレットアイコン群）に変更することをユーザが指示するためのものである。ステップ１７１０では、表示させるパレット（パレットアイコン群）を変更するパレット変更処理を実行し、その後、ステップ１７１８の処理に移行する。
【０１０６】
ステップ１７１１〜１７１３では、決定キーＫＹ５が操作されたときにカーソルアイコンが位置している部分画像に応じて、カーソルアイコンに設定されている描画色にその位置の描画色を変更するための処理が行われる。
【０１０７】
ステップ１７１１では、カーソルアイコンがキャラクタ（図１０参照）上に位置しているか否か判定する。ユーザが、キャラクタ上にカーソルアイコンを移動させた後、決定キーＫＹ５を操作した場合、その判定はＹＥＳとなってステップ１７１２の処理に移行する。そうでない場合、その判定はＮＯとなってステップ１７１３の処理に移行する。
【０１０８】
ステップ１７１２では、ユーザがキャラクタの色変更を指示したとして、カーソルアイコンが位置しているキャラクタの部分（領域）をカーソルアイコンの描画色に変更する色変更処理を実行する。この処理が終了した後は、ステップ１７１８の処理に移行する。
【０１０９】
ステップ１７１３では、ユーザが背景の色変更を指示したとして、カーソルアイコンが位置している背景の部分（領域）をカーソルアイコンの描画色に変更する色変更処理を実行する。この処理が終了した後は、ステップ１７１８の処理に移行する。
【０１１０】
一方、ステップ１７０３でモード変更キーＫＹ４が操作されていると判定した場合、次にステップ１７１４のメインモード変更処理を実行する。このステップ１７１４のメインモード変更処理は、モード変更キーＫＹ４に対する操作に応じて、アニメーションモードからペイントモードに、或いはペイントモードからアニメーションに、モード設定の切り換えを行う。この処理が終了した後は、ステップ１７１８の処理に移行する。
【０１１１】
ステップ１７０３でその他のキー、即ちスタート／ストップキーＫＹ２、リセットキーＫＹ３、正方向コマ送りキーＫＹ６、逆方向コマ送りキーＫＹ７の何れかが操作されていると判別した場合には、次にステップ１７１５の処理を実行する。ステップ１７１５では、現在設定されているメインモードを判定する。その判定は、ワークＲＡＭ１０３に格納されているモード管理用データ（図８参照）から判定する。メインモードとしてアニメーションモードが設定されていた場合、次にステップ１７１６のアニメーションモード変更処理を実行し、ペイントモードが設定されていた場合には、次にステップ１７１７のペイントフレーム変更処理を実行する。
【０１１２】
ステップ１７１６のアニメーションモード変更処理は、ユーザが操作したキーに応じてその内部の処理が行われる。この処理が終了した後は、ステップ１７１８の処理に移行する。他方のステップ１７１７のペイントフレーム変更処理は、各コマ送りキーＫＹ６、ＫＹ７に対して行われた操作に応じて、描画色の指定を行う再生位置（ペイントフレーム）の表示画面を表示させる。これが終了した後、ステップ１７１８の処理に移行する。
【０１１３】
ステップ１７１８では、アニメーション再生を進行させるためのアニメーション処理を実行する。この処理が終了すると、上述したステップ１７０４〜１８１７を実行した結果として生じたＶＤＰ１０５に転送すべきデータを、垂直ブランク期間（図１３参照）を利用して転送する処理を行う。この転送処理が終了した後、ステップ１７０２の処理に戻り、それ以降の処理を同様に実行する。
【０１１４】
図１８は、図１７に示すステップ１７０１として実行されるイニシャル処理の動作フローチャートである。このイニシャル処理を実行することにより、テレビ１０８の画面上に初期画面が表示される。
【０１１５】
先ず、ステップ１８０１では、ＶＤＰ１０５内のＯＡＭ部２０５等の初期化を行う。この初期化が終了すると、次にステップ１８０２において、アニメーションモードをポーズ中に設定し、続くステップ１８０３では、アニメーションフレーム番号を０に設定する。これらステップ１８０２、１８０３の処理を実行すると、ワークＲＡＭ１０３に格納されているアニメーション管理用データ、即ちアニメーションモード、アニメーションフレーム番号には、ポーズ中であることを示す値、０がそれぞれ設定される。
【０１１６】
ステップ１８０３に続くステップ１８０４では、キャラクタを図４（ｂ）の初期位置データが示す表示位置に配置するアニメーションイニシャル処理を実行する。この処理が終了した後、ステップ１８０５の処理に移行する。
【０１１７】
ステップ１８０５では、メインモードにアニメーションモードを設定する。続くステップ１８０６では、アイコン面を非表示に設定する。アニメーションモードの設定は、図８のモード管理用データに対して行われ、アイコン面の非表示は、ＶＤＰ１０５内の表示制御レジスタに対して行われる。これらが終了すると、ステップ１８０７の処理に移行する。
【０１１８】
ステップ１８０７〜１８１１では、輪郭線、キャラクタ、及び背景にそれぞれ割り当てられた色コードやパレットデータに、それに対応する描画色（ＲＧＢデータ）を初期設定する。具体的には、輪郭線に対しては黒を設定し、その他には全て白を設定する。この設定により、初期画面は、白一色を背景として、その背景に各部分画像が有する輪郭線が黒く描かれたものとなる。
【０１１９】
ステップ１８１１に続くステップ１８１２〜１８１４では、パレット、及びカーソルアイコンの表示に関わる処理が行われる。これらの処理を行うことにより、パレット（パレットアイコン群）、カーソルアイコンは、予め設定されている描画色で初期表示される。
【０１２０】
先ず、ステップ１８１２では、パレット管理用データであるパレット番号（図８参照）に０をセットする。続くステップ１８１３では、パレット番号が０の各パレットアイコンに割り当てられている選択色（全部で１０）をプログラム／データＲＯＭ１０２から読み出し（図５参照）、これらをＣＬＴ部２０７の色コード２４６〜２５５に対応する選択色（ＲＧＢデータ）としてセットする。その後、ステップ１８１４において、色コード２４５が割り当てられているカーソルアイコンの描画色を、ステップ１８１３でセットした色コード２４６の選択色にセットする。
【０１２１】
ステップ１８１４に続くステップ１８１５では、ＳＲＡＭ１０６に転送すべき画像（グラフィック）データ、ＶＤＰ１０５内のＯＡＭ部２０５、ＣＬＴ部２０７に書き込むべきデータを、垂直ブランク期間（図１３参照）を待って転送する処理を行う。このステップ１８１５の処理が終了することで、一連の処理が終了する。
【０１２２】
ワークＲＡＭ１０３には、表示すべき各部分画像の画像（グラフィック）データの番号、それを表示（配置）させる位置、それを構成する各部分（領域）に割り当てられている色コードの描画色（ＲＧＢデータ）等の各種データが制御管理用に格納される。上述したステップ１８０４〜１８１４の処理を実行した結果は、ワークＲＡＭ１０３に格納されている上記制御管理用データに反映される。上記ステップ１８１５の処理は、この制御管理用データに基づいて行われる。
【０１２３】
次に、図１８に示すステップ１８０４のキャラクタのアニメーションイニシャル処理について、図１９に示すその動作フローチャートを参照して詳細に説明する。このキャラクタのアニメーションイニシャル処理は、図４に示すアニメーションデータ、初期位置データ等を基にして、ワークＲＡＭ１０３に格納するキャラクタ管理用データ（図８参照）、ＶＤＰ１０５内のＯＡＭ部２０５に格納させるデータの初期設定を行う処理である。
【０１２４】
先ず、ステップ１９０１では、ＯＡＭ部２０５内のキャラクタに割り当てられている記憶領域に格納するＸ座標、Ｙ座標を、プログラム／データＲＯＭ１０２から読み出したキャラクタの初期位置データ（図４参照）の初期Ｘ座標、初期Ｙ座標にセットする。続くステップ１９０２では、ワークＲＡＭ１０３に格納されるキャラクタ管理用データを構成する移動量カウンタ（図８参照）に、上記初期位置データの待ち時間をセットする。その後、ステップ１９０３において、上記キャラクタ管理用データを構成する移動量データ番号に０セットする。この０は、上述したように、図４（ｂ）の移動量データにおいてデータ＃０で示すデータを指示するものである。移動量データ番号に０をセットした後は、ステップ１９０４の処理に移行する。
【０１２５】
ステップ１９０４では、図４（ａ）のアニメーションデータのデータ＃０から、ＳＲＡＭ１０６に格納すべきキャラクタの画像（グラフィック）データを特定する。この特定した画像（グラフィック）データは、図１８のステップ１８１５の処理でＳＲＡＭ１０６に転送される。
【０１２６】
続くステップ１９０５では、キャラクタ管理用データを構成するアニメーションカウンタに、図４（ａ）のアニメーションのデータ＃１、即ち待ち時間をセットする。この待ち時間のセットが終了した後、ステップ１９０６において、キャラクタ管理用データを構成するアニメーションデータ番号に２をセットする。この２は、上述したように、図４（ａ）のアニメーションデータにおいてデータ＃２で示すデータを指示するものである。アニメーションデータ番号に２をセットした後、一連の処理を終了する。
【０１２７】
次に、図１７の全体処理においてステップ１７０８、１７１０、１７１２、及び１７１３として実行される各変更処理について、図２０〜図２３の動作フローチャートを参照して詳細に説明する。これら各変更処理は、ペイントコードが設定されていた場合にのみ実行されるものである。
【０１２８】
これら各変更処理は、それに対応する部分画像の色コードに割り当てるＲＧＢデータの設定を、ユーザが指定した内容に応じたＲＧＢデータに変更するものである。
【０１２９】
最初に、上記ステップ１７０８として実行される描画色変更処理について、図２０に示すその動作フローチャートを参照して説明する。この描画色変更処理は、上述したように、カーソルアイコンの描画色（図１２（ｂ）に示すように、その色コードは２４５である）を、ユーザがパレット（パレットアイコン群）のなかから指定した描画色に変更する処理である。
【０１３０】
先ず、ステップ２００１では、ユーザが決定キーＫＹ５を操作したときにカーソルアイコンが表示されていたパレットアイコンの色コードを判定する。図１２（ａ）に示すように、パレット（パレットアイコン群）には２４６〜２５５の色コードが割り当てられている。このことから、カーソルアイコンが表示されていたパレットアイコンの色コードが２４６〜２５５のなかの何れかであればステップ２００２に移行し、そうでなければ一連の処理を終了する。
【０１３１】
ステップ２００２では、ワークＲＡＭ１０３に格納されているパレット番号（図８参照）、ステップ２００１で判定した色コードを基に、例えばプログラム／データＲＯＭ１０２から該当するＲＧＢデータ（図５参照）を読み取り、このＲＧＢデータを、ＶＤＰ１０５内のＣＬＴ部２０７の色コード２４５のＲＧＢデータとしてセットする。このＲＧＢデータのセットは、ワークＲＡＭ１０３に制御管理用に格納されている色コード毎のＲＧＢデータに対して行われる。それが終了した後、一連の処理を終了する。
【０１３２】
図２１は、図１７のステップ１７１０として実行されるパレット変更処理の動作フローチャートである。次に、この図２１を参照して、パレット変更処理について詳細に説明する。
【０１３３】
このパレット変更処理は、上述したように、カーソルアイコンがパレット変更アイコン上に表示されている状態でユーザが決定キーＫＹ５を操作した場合に実行される。
【０１３４】
先ず、ステップ２１０１では、ワークＲＡＭ１０３に格納させているパレット番号を更新する。この更新は、例えばそれまでの値をインクリメントし、このインクリメントによりその値がパレット番号の最大値（図５におけるｍ）よりも大きくなった場合には０をその値とすることで行われる。
【０１３５】
ステップ２１０１に続くステップ２１０２では、ステップ２１０１で更新したパレット番号に割り当てられている１０個のＲＧＢデータ（図５参照）を、ＶＤＰ１０５内のＣＬＴ部２０７の色コード２４６〜２５５のＲＧＢデータとしてセットする。このＲＧＢデータのセットは、ワークＲＡＭ１０３に制御管理用に格納されている色コード毎のＲＧＢデータに対して行われる。これが終了した後、一連の処理を終了する。
【０１３６】
図２２は、図１７のステップ１７１２として実行されるキャラクタの色変更処理の動作フローチャートである。次に、この図２２を参照して、キャラクタの色変更処理について詳細に説明する。
【０１３７】
このキャラクタの色変更処理は、上述したように、カーソルアイコンがキャラクタ上に表示されている状態でユーザが決定キーＫＹ５を操作した場合に実行される。
【０１３８】
先ず、ステップ２２０１では、ユーザが決定キーＫＹ５を操作したときにカーソルアイコンが表示されていたキャラクタ上の色コードは１（輪郭線）か否か判定する。その色コードが１であれば一連の処理を終了し、そうでなければステップ２２０２の処理に移行する。
【０１３９】
本実施の形態では、描画色を指定できる再生位置（ペイントフレーム）を、アニメーションフレーム番号が０と５９９の２つに限定している（図１６参照）。そのペイントフレームは、コマ送りキーＫＹ６、ＫＹ７を操作することで選択されるものである。このため、ステップ２２０２では、アニメーション管理用データとしてワークＲＡＭ１０３に格納されているアニメーションフレーム番号を判定し、それに続くステップ２２０３、２２０４では、ステップ２２０２で判定したアニメーションフレーム番号に応じて、ユーザが指定した描画色のＲＧＢデータ、即ちカーソルアイコンに割り当てた色コード２４５に設定されている描画色のＲＧＢデータを、ワークＲＡＭ１０３にパレットデータとして格納する。これは、図１０に示すように、キャラクタは複数の部分（領域）から構成されていることから、現在カーソルアイコンが表示されているキャラクタ上の部分（領域）に応じて行われる。それらの処理はその実行が終了すると、ステップ２２０５の処理に移行する。
【０１４０】
ステップ２２０５では、ステップ２２０３、或いは２２０４でパレットデータとして設定したＲＧＢデータを、ワークＲＡＭ１０３に制御管理用に格納されている色コード毎のＲＧＢデータに対して反映させる。この制御用管理用に格納されている色コード毎のＲＧＢデータは、ＶＤＰ１０５のＣＬＴ部２０７に格納、或いは格納させるものである。このステップ２２０５の処理が終了すると、一連の処理を終了する。
【０１４１】
図２３は、図１７のステップ１７１３として実行される背景の色変更処理の動作フローチャートである。次に、この図２３を参照して、背景の色変更処理について詳細に説明する。
【０１４２】
この背景の色変更処理は、上述したように、カーソルアイコンが背景上に表示されている状態でユーザが決定キーＫＹ５を操作した場合に実行される。
先ず、ステップ２３０１では、ユーザが決定キーＫＹ５を操作したときにカーソルアイコンが表示されていた背景上の色コードは１（輪郭線）か否か判定する。その色コードが１であれば一連の処理を終了し、そうでなければステップ２３０２の処理に移行する。
【０１４３】
本実施の形態では、描画色を指定できる再生位置（ペイントフレーム）を、アニメーションフレーム番号が０と５９９の２つに限定している（図１６参照）。そのペイントフレームは、コマ送りキーＫＹ６、ＫＹ７を操作することで選択されるものである。このため、ステップ２３０２では、アニメーション管理用データとしてワークＲＡＭ１０３に格納されているアニメーションフレーム番号を判定し、それに続くステップ２３０３、２３０４では、ステップ２２０２で判定したアニメーションフレーム番号に応じて、ユーザが指定した描画色のＲＧＢデータ、即ちカーソルアイコンに割り当てた色コード２４５に設定されている描画色のＲＧＢデータを、ワークＲＡＭ１０３にパレットデータとして格納する。これは、図１１に示すように、背景は複数の部分（領域）から構成されていることから、現在カーソルアイコンが表示されている背景上の部分（領域）に応じて行われる。それらの処理はその実行が終了すると、ステップ２３０５の処理に移行する。
【０１４４】
ステップ２３０５では、ステップ２３０３、或いは２３０４でパレットデータとして設定したＲＧＢデータを、ワークＲＡＭ１０３に制御管理用に格納されている色コード毎のＲＧＢデータに対して反映させる。この制御用管理用に格納されている色コード毎のＲＧＢデータは、ＶＤＰ１０５のＣＬＴ部２０７に格納、或いは格納させるものである。このステップ２３０５の処理が終了すると、一連の処理を終了する。
【０１４５】
図２４は、図１７のステップ１７１４として実行されるメインモード変更処理の動作フローチャートである。次に、この図２４を参照して、メインモード変更処理について詳細に説明する。
【０１４６】
このメインモード変更処理は、上述したように、ユーザがモード変更キーＫＹ４を操作した場合に実行される。
先ず、ステップ２４０１では、ワークＲＡＭ１０３に格納されているアニメーション管理用データのアニメーションモードをポーズ中に設定する。続くステップ２４０２では、アニメーション管理用データのアニメーションフレーム番号を０に設定する。これにより、モード変更キーＫＹ４を操作した場合には、メインモードとして設定されているモードに関わらず、アニメーション再生における初期画面が表示されることになる。
【０１４７】
ステップ２４０２に続くステップ２４０３では、現在メインモードとして設定されているモードを判定する。これは、ワークＲＡＭ１０３に格納されているモード管理用データから判定する。現在、メインモードとしてアニメーションモードが設定されていると判定した場合、ステップ２４０４の処理に移行し、そうでない場合には、ステップ２４０６の処理に移行する。
【０１４８】
ステップ２４０４では、メインモードにペイントモードを設定する。続くステップ２４０５では、アイコン面を表示に設定する。その後、ステップ２４０８の処理に移行する。他方、ステップ２４０６では、メインモードにアニメーションモードを設定し、続くステップ２４０７では、アイコン面を非表示に設定する。その後、ステップ２４０８の処理に移行する。
【０１４９】
ステップ２４０８では、モードの切り換えに伴い、初期画面を表示させるためにキャラクタのアニメーションイニシャル処理を実行する。これは、図１９に示す処理と同じものである。続くステップ１４０９では、ワークＲＡＭ１０３に格納されている、アニメーションフレーム番号が０のキャラクタのパレットデータを、キャラクタの描画色のＲＧＢデータとして設定する。これに続いて行われるステップ２４１０では、上記ステップ２４０９と同様に、ワークＲＡＭ１０３に格納されている、アニメーションフレーム番号が０の背景のパレットデータを、背景の描画色のＲＧＢデータとして設定する。その設定が終了した後、一連の処理を終了する。
【０１５０】
なお、上記部分画像の描画色のＲＧＢデータの設定は、ワークＲＡＭ１０３に制御用管理用に格納されている色コード毎のＲＧＢデータに対して行われるものである。
【０１５１】
図２５は、図１７のステップ１７１６として実行されるアニメーションモード変更処理について、図２５に示すその動作フローチャートを参照して詳細に説明する。このアニメーションモード変更処理は、上述したように、メインモードとしてアニメーションモードが設定されていた場合に、ユーザがスタート／ストップキーＫＹ１２、リセットキーＫＹ３、正方向コマ送りキーＫＹ６、或いは逆方向コマ送りキーＫＹ７を操作することで実行される。
【０１５２】
先ず、ステップ２５０１では、ユーザが操作したキーの種類を判別する。これ以降に行われるステップ２５０２〜２５２０の処理は、ユーザが操作したキーの種類に応じて行われる。
【０１５３】
ステップ２５０１において、ユーザが操作したキーはスタート／ストップキーＫＹ２と判別した場合、ステップ２５０２の処理に移行する。
ステップ２５０２では、ワークＲＡＭ１０３に格納されるアニメーション管理用データを構成するアニメーションモードから、現在のアニメーションモードにおけるモード、即ちアニメーション再生を行っているか否か判定する。
【０１５４】
ステップ２５０２で現在アニメーション再生を行っていると判定した場合、次にステップ２５０３において上記アニメーションモードをポーズ中に設定した後、一連の処理を終了する。ステップ２５０２で現在アニメーション再生がポーズ中であると判定した場合には、次にステップ２５０４において上記アニメーションモードを再生中に設定した後、一連の処理を終了する。
【０１５５】
ステップ２５０１において、ユーザが操作したキーは正方向コマ送りキーＫＹ６と判別した場合、ステップ２５０５の処理に移行する。
ステップ２５０５では、ワークＲＡＭ１０３に格納されるアニメーション管理用データを構成するアニメーションモードから、現在のアニメーションモードにおけるモード、即ちアニメーション再生を行っているか否か判定する。
【０１５６】
ステップ２５０５で現在アニメーション再生を行っていると判定した場合、ここで一連の処理を終了する。ステップ２５０５で現在アニメーション再生がポーズ中であると判定した場合には、ステップ２５０６の処理に移行する。
【０１５７】
ステップ２５０６では、ワークＲＡＭ１０３に格納されるアニメーション管理用データを構成するアニメーションフレーム番号をコマ送り量だけ進める（加算する）。
【０１５８】
上記コマ送り量は、正方向コマ送りキーＫＹ６に対する一度の操作で進めるアニメーションのフレーム数（１フレーム期間は１／６０秒）であり、そのフレーム数は、配置（表示）されるキャラクタが切り替わる（コマ送りされる）ような値とする必要がある。このため、コマ送り量は、例えばキャラクタ管理用データのアニメーションカウンタの値から決定する。なお、図１５に示すようにキャラクタのアニメーションデータが設定されていた場合には、キャラクタの待ち時間は６なので、コマ送り量は６（アニメーションフレーム数）とすることにより、コマ送りを確実に実現させることができる。
【０１５９】
ステップ２５０５に続くステップ２５０６では、アニメーション管理用データのアニメーションフレーム番号が５９９（図１５参照）以上か否か判定する。アニメーション再生を最後まで行った場合、その判定はＹＥＳとなって一連の処理を終了する。そうでない場合には、その判定はＮＯとなってステップ２５０７の処理に移行する。
ステップ２５０７では、ステップ２５０６の処理で決定されたコマ送り量に従い、キャラクタを正方向にコマ送りするコマ送り処理を実行する。これが終了すると、次にステップ２５０８において、そのコマ送りに応じて、キャラクタに設定すべき描画色のＲＧＢデータを求める色補間処理を実行する。続くステップ２５１０では、ステップ２５０９と同様に、背景に設定すべき描画色のＲＧＢデータを求める色補間処理を実行する。この色補間処理が終了した後、一連の処理を終了する。
【０１６０】
ステップ２５０１において、ユーザが操作したキーは逆方向コマ送りキーＫＹ７と判別した場合、ステップ２５１１の処理に移行する。
ステップ２５１１では、ワークＲＡＭ１０３に格納されるアニメーション管理用データを構成するアニメーションモードから、現在のアニメーションモードにおけるモード、即ちアニメーション再生を行っているか否か判定する。
【０１６１】
ステップ２５１１で現在アニメーション再生を行っていると判定した場合、ここで一連の処理を終了する。ステップ２５１１で現在アニメーション再生がポーズ中であると判定した場合には、ステップ２５１２の処理に移行する。
【０１６２】
ステップ２５１２では、ワークＲＡＭ１０３に格納されるアニメーション管理用データを構成するアニメーションフレーム番号をコマ送り量だけ戻す（減算する）。
【０１６３】
上記コマ送り量は、逆方向コマ送りキーＫＹ７に対する一度の操作で戻すアニメーションのフレーム数（１フレーム期間は１／６０秒）であり、そのフレーム数は、上述した正方向のコマ送り量と同様に、配置（表示）されるキャラクタが切り替わるような値とする必要がある。このため、コマ送り量は、例えばキャラクタ管理用データのアニメーションカウンタの値から決定する。なお、図１５に示すようにキャラクタのアニメーションデータが設定されていた場合には、キャラクタの待ち時間は６なので、コマ送り量を６（アニメーションフレーム数）とすることにより、逆方向のコマ送りを確実に実現させることができる。
【０１６４】
ステップ２５１２に続くステップ２５１３では、ステップ２５１２において逆方向のコマ送り量だけ戻したアニメーションフレーム番号が０以下か否か判定する。システムの電源をオンすると、図１７のステップ１７０１で図１８のイニシャル処理が実行され、アニメーションフレーム番号には０がセットされる。アニメーションフレーム番号が０のときが、アニメーション再生される表示画面が初期画面となる。アニメーションフレーム番号が０以下であれば、その判定はＹＥＳとなってステップ２５１７の処理に移行し、その番号が０よりも大きければ、その判定はＮＯとなってステップ２５１４の処理に移行する。後述するように、ステップ２５１７以降の処理は、初期画面を表示させるための処理である。
【０１６５】
ステップ２５１４では、ステップ２５１２の処理で決定されたコマ送り量に従い、キャラクタを逆方向にコマ送りするコマ送り処理を実行する。これが終了すると、次にステップ２５１５において、そのコマ送りに応じて、キャラクタに設定すべき描画色のＲＧＢデータを求める色補間処理を実行する。続くステップ２５１６では、ステップ２５１５と同様に、背景に設定すべき描画色のＲＧＢデータを求める色補間処理を実行する。この色補間処理が終了した後、一連の処理を終了する。
【０１６６】
ステップ２５０１において、ユーザが操作したキーはリセットキーＫＹ３と判別した場合、ステップ２５１７の処理に移行する。ステップ２５１７〜２５２０では、上述したように、初期画面を表示させるための一連の処理が行われる。
【０１６７】
先ず、ステップ２５１７では、上記アニメーションフレーム番号を０にセットする。続くステップ２５１８では、上述した内容のキャラクタのアニメーションイニシャル処理を実行する。その後、ステップ２５１９の処理に移行する。
【０１６８】
ステップ２５１９では、ワークＲＡＭ１０３に格納されている、アニメーションフレーム番号が０のキャラクタのパレットデータを、キャラクタの描画色のＲＧＢデータとして設定する。続くステップ２５２０では、ワークＲＡＭ１０３に格納されている、アニメーションフレーム番号が０の背景のパレットデータを、背景の描画色のＲＧＢデータとして設定する。これらの設定は、ワークＲＡＭ１０３に格納されている色コード毎のＲＧＢデータに対して行われ、それらの設定が終了した後、一連の処理を終了する。
アニメーションフレーム番号を判定し、それに続くステップ２２０３、２２０４では、ステップ２２０２で判定したアニメーションフレーム番号に応じて、ユーザが指定した描画色のＲＧＢデータ、即ちカーソルアイコンに割り当てた色コード２４５に設定されている描画色のＲＧＢデータを、ワークＲＡＭ１０３にパレットデータとして格納する。これは、図１０に示すように、キャラクタは複数の部分（領域）から構成されていることから、現在カーソルアイコンが表示されているキャラクタ上の部分（領域）に応じて行われる。それらの処理はその実行が終了すると、ステップ２２０５の処理に移行する。
【０１６９】
次に、上述した図２５のアニメーションモード変更処理内で実行されるステップ２５０８〜２５１０、及び２５１４の各サブルーチン処理について、図２６〜図２９の動作フローチャートを参照して詳細に説明する。なお、ステップ２５１５の処理とステップ２５１５の処理は、その内容が同じであり、また、ステップ２５１０の処理とステップ２５１６の処理も、その内容は同じである。
【０１７０】
先ず、図２６の動作フローチャートを参照して、キャラクタの正方向コマ送り処理について詳細に説明する。上述したように、この正方向コマ送り処理は、図２５のステップ２５０７で決定されたコマ送り量に従い、キャラクタを正方向にコマ送りする処理である。その全体の処理の流れは、ワークＲＡＭ１０３に格納されるキャラクタ管理用データを構成する移動量カウンタ、及びアニメーションカウンタ（図８参照）のデクリメントをコマ送り量分繰り返し、その１回のデクリメントを行う度に、デクリメントした後の各カウンタの値に応じて、キャラクタの移動量、ＳＲＡＭ１０６に格納させるその画像（グラフィック）データを特定していくものである。
【０１７１】
先ず、ステップ２６０１では、上記移動量カウンタをデクリメントする。続くステップ２６０２では、そのデクリメント後の移動量カウンタの値が０か否か判定する。移動量カウンタの値が０よりも大きい場合、その判定はＮＯとなってステップ２６０８の処理に移行する。そうでない場合には、その判定はＹＥＳとなってステップ２６０３の処理に移行する。
【０１７２】
移動量カウンタの値が０になると、上述したようにキャラクタの移動が行われる。ステップ２６０３では、ワークＲＡＭ１０３に格納されるキャラクタ管理用データを構成する移動量データ番号をみて、その番号によって指示される移動量データ（図４（ｂ）参照）中のデータであるＸ、Ｙ方向移動量を、ワークＲＡＭ１０３に格納させている現在のキャラクタのＸ、Ｙ座標にそれぞれ加える。このＸ、Ｙ座標は、ＯＡＭ部２０５に格納されている、或いは格納すべきキャラクタの表示位置を示すデータである。
【０１７３】
ステップ２６０３に続くステップ２６０４では、上記移動量データを構成する待ち時間を、キャラクタ管理用データを構成する移動量カウンタにセットする。この移動量カウンタへのセットが終了すると、次にステップ２６０５において、移動量データ番号を先に進め（本実施の形態では３を加算）、その値を更新する。その後、ステップ２６０６の処理に移行する。
【０１７４】
ステップ２６０６では、更新した移動量データ番号が指示するデータが、「最初に戻る」コマンド（図４（ｂ）参照）か否か判定する。そのデータが「最初に戻る」コマンドであった場合、その判定はＹＥＳとなってステップ２６０７の処理に移行する。そうでない場合、その判定はＮＯとなってステップ２６０８の処理に移行する。ステップ２６０７では、そのコマンドに従い、移動量データ番号を先頭のデータ番号、即ち０にセットする。その後、ステップ２６０８の処理に移行する。
【０１７５】
上述したステップ２６０１〜２６０７は、キャラクタの表示位置を決定するための処理である。これに続くステップ２６０８〜２６１４では、表示させるキャラクタを決定するための処理が行われる。
【０１７６】
先ず、ステップ２６０８では、上記アニメーションカウンタをデクリメントする。続くステップ２６０９では、そのデクリメント後のアニメーションカウンタの値が０か否か判定する。アニメーションカウンタの値が０よりも大きい場合、その判定はＮＯとなってステップ２６１５の処理に移行する。そうでない場合には、その判定はＹＥＳとなってステップ２６１０の処理に移行する。
【０１７７】
アニメーションカウンタの値が０になると、上述したように表示させるキャラクタの切り換えが行われる。ステップ２６１０では、ワークＲＡＭ１０３に格納されるキャラクタ管理用データを構成するアニメーションデータ番号をみて、その番号が指示する図４（ａ）のアニメーションデータ中のデータからＳＲＡＭ１０６に新たに書き込むべき画像（グラフィック）データを特定する。
【０１７８】
ステップ２６１０に続くステップ２６１１では、上記画像（グラフィック）データに対応するアニメーションデータ中の待ち時間をアニメーションカウンタにセットする。このアニメーションカウンタへの待ち時間のセットが終了すると、次にステップ２６１２において、アニメーションデータ番号を先に進め（本実施の形態では２を加算）、その更新を行う。その後、ステップ２６１３の処理に移行する。
【０１７９】
ステップ２６１３では、更新したアニメーションデータ番号が指示するデータが、「最初に戻る」コマンド（図４（ａ）参照）か否か判定する。そのデータが「最初に戻る」コマンドであった場合、その判定はＹＥＳとなってステップ２６１４の処理に移行する。そうでない場合、その判定はＮＯとなってステップ２６１５の処理に移行する。ステップ２６１４では、そのコマンドに従い、アニメーションデータ番号を先頭のデータ番号、即ち０にセットする。その後、ステップ２６１５の処理に移行する。
【０１８０】
ステップ２６１５では、コマ送り量分各カウンタをデクリメントしたか否か判定する。コマ送り量分のデクリメントを各カウンタに対して行っていない場合、その判定はＮＯとなってステップ２６０１の処理に戻る。そうでない場合、その判定はＹＥＳとなり、一連の処理を終了する。
【０１８１】
図２７は、図２５のステップ２５０９として実行されるキャラクタの色補間処理の動作フローチャートである。次に、この図２７を参照して、キャラクタの色補間処理について詳細に説明する。
【０１８２】
この色補間処理は、アニメーション管理用データのアニメーションフレーム番号で示される現在のアニメーション再生位置に応じて、キャラクタの描画色を設定するものである。キャラクタの描画色は、上述したように、ワークＲＡＭ１０３に格納されているパレットデータ（図９参照）、即ちアニメーションフレーム番号が０と５９９のときのユーザが指定した描画色のＲＧＢデータを用いて、上記数１により求められる。キャラクタは、髪、肌、服等の複数の部分（領域）からなり、各部分（領域）にはそれぞれ色コードが割り当てられている。このため、この色補間処理では、各色コード毎に、描画色のＲＧＢデータを求める。
【０１８３】
先ず、ステップ２７０１では、ワークＲＡＭ１０３に格納されている、アニメーションフレーム番号が０のパレットデータから、所定の順序で１つの色コードのＲＧＢデータを抽出し、それをＲＧＢの各成分に分ける。続くステップ２７０２では、アニメーションフレーム番号が５９９のパレットデータから、ステップ２７０１で抽出したＲＧＢデータに対応するＲＧＢデータを抽出し、それをＲＧＢの各成分に分ける。その後、ステップ２７０３の処理に移行する。
【０１８４】
ステップ２７０３では、上記ステップ２７０１、２７０２で得たアニメーションフレーム番号が０と５９９のときのＲＧＢ各成分、及びアニメーションフレーム番号を上記数１に代入して、設定すべきＲＧＢデータを算出する。続くステップ２７０４では、この算出したＲＧＢデータを、それが対応する色コードの描画色として設定する。この設定は、ワークＲＡＭ１０３に色コード別に格納されているＲＧＢデータに対して行われる。
【０１８５】
ステップ２７０４に続くステップ２７０５では、キャラクタの色コードの描画色を全て補間作成したか否か判定する。キャラクタを構成する各部分（領域）の描画色を全て新たに設定した場合、その判定はＹＥＳとなって一連の処理を終了する。そうでない場合には、ステップ２７０１に戻り、所定の順序に従って、ワークＲＡＭ１０３から次の色コードのパレットデータ（ＲＧＢデータ）を抽出する。
【０１８６】
図２８は、図２５のステップ２５１０として実行される背景の色補間処理の動作フローチャートである。次に、この図２８を参照して、背景の色補間処理について詳細に説明する。
【０１８７】
この背景の色補間処理は、キャラクタの色補間処理と同様に、アニメーション管理用データのアニメーションフレーム番号で示される現在のアニメーション再生位置に応じて、背景の描画色を設定するものである。背景の描画色は、上述したように、ワークＲＡＭ１０３に格納されているパレットデータ（図９参照）、即ちアニメーションフレーム番号が０と５９９のときのユーザが指定した描画色のＲＧＢデータを用いて、上記数１により求められる。背景もキャラクタと同様に、屋根、煙、山等の複数の部分（領域）からなり、各部分（領域）にはそれぞれ色コードが割り当てられている。このため、背景の描画色は、各色コード毎に、そのＲＧＢデータを求めることで行われる。
【０１８８】
先ず、ステップ２８０１では、ワークＲＡＭ１０３に格納されている、アニメーションフレーム番号が０のパレットデータから、所定の順序で１つの色コードのＲＧＢデータを抽出し、それをＲＧＢの各成分に分ける。続くステップ２８０２では、アニメーションフレーム番号が５９９のパレットデータから、ステップ２８０１で抽出したＲＧＢデータに対応するＲＧＢデータを抽出し、それをＲＧＢの各成分に分ける。その後、ステップ２８０３の処理に移行する。
【０１８９】
ステップ２８０３では、上記ステップ２８０１、２８０２で得たアニメーションフレーム番号が０と５９９のときのＲＧＢ各成分、及びアニメーションフレーム番号を上記数１に代入して、設定すべきＲＧＢデータを算出する。続くステップ２８０４では、この算出したＲＧＢデータを、それが対応する色コードの描画色として設定する。この設定は、ワークＲＡＭ１０３に色コード別に格納されているＲＧＢデータに対して行われる。
【０１９０】
ステップ２８０４に続くステップ２８０５では、背景の色コードの描画色を全て補間作成したか否か判定する。キャラクタを構成する各部分（領域）の描画色を全て新たに設定した場合、その判定はＹＥＳとなって一連の処理を終了する。そうでない場合には、ステップ２８０１に戻り、所定の順序に従って、ワークＲＡＭ１０３から次の色コードのパレットデータ（ＲＧＢデータ）を抽出し、それ以降の処理を同様に実行する。
【０１９１】
図２９は、図２５のステップ２５１４として実行されるキャラクタの逆方向コマ送り処理の動作フローチャートである。次に、この図２９を参照して、キャラクタの逆方向コマ送り処理について詳細に説明する。
【０１９２】
上述したように、この逆方向コマ送り処理は、図２５のステップ２５１２で決定されたコマ送り量に従い、キャラクタを逆方向にコマ送りする処理である。その全体の処理の流れは、ワークＲＡＭ１０３に格納されるキャラクタ管理用データを構成する移動量カウンタ、及びアニメーションカウンタ（図８参照）のインクリメントをコマ送り量分繰り返し、その１回のインクリメントを行う度に、インクリメント後の各カウンタの値に応じて、キャラクタの移動量、ＳＲＡＭ１０６に格納させるその画像（グラフィック）データを特定していくものである。
【０１９３】
先ず、ステップ２９０１では、上記移動量カウンタをインクリメントする。続くステップ２９０２では、そのインクリメント後の移動量カウンタの値が、それに前回設定した待ち時間を超えたか否か判定する。その待ち時間よりも移動量カウンタの値が大きい場合、その判定はＹＥＳとなってステップ２９０３の処理に移行する。そうでない場合には、その判定はＮＯとなってステップ２９０８の処理に移行する。
【０１９４】
設定した待ち時間よりも移動量カウンタの値が大きくなることは、キャラクタを逆方向に移動させる必要が生じたことを意味する。ステップ２９０３では、ワークＲＡＭ１０３に格納されるキャラクタ管理用データを構成する移動量データ番号を戻し（３を減算）、そのデータ番号を更新する。その後、ステップ２９０４の処理に移行する。
【０１９５】
ステップ２９０４では、更新後の移動量データ番号が０よりも小さいか否か判定する。そのデータ番号が０よりも小さい場合、その判定はＹＥＳとなってステップ２９０５の処理に移行する。そうでない場合には、その判定はＮＯとなってステップ２９０６の処理に移行する。ステップ２９０５では、移動量データ番号に、「最初に戻る」コマンドの３つ前のデータ番号の値、即ち０をセットする。その後、ステップ２９０６の処理に移行する。
【０１９６】
ステップ２９０６では、移動量データ番号により指示される移動量データ（図４（ｂ）参照）中のデータであるＸ、Ｙ方向移動量を、ワークＲＡＭ１０３に格納させている現在のキャラクタのＸ、Ｙ座標からそれぞれ減算する。このＸ、Ｙ座標は、上述したように、ＯＡＭ部２０５に格納されている、或いは格納すべきキャラクタの表示位置を示すデータである。
【０１９７】
ステップ２９０６に続くステップ２９０７では、次にキャラクタを逆方向に移動させる移動量をそのＸ、Ｙ座標から減算するタイミングをとるために、移動量カウンタに１をセットする。その後、ステップ２９０８の処理に移行する。
【０１９８】
上述したステップ２９０１〜２９０７は、キャラクタの表示位置を決定するための処理である。これに続くステップ２９０８〜２９１４では、表示させるキャラクタを決定するための処理が行われる。
【０１９９】
先ず、ステップ２９０８では、上記アニメーションカウンタをインクリメントする。続くステップ２９０９では、そのインクリメント後のアニメーションカウンタの値が前回それに設定した待ち時間を超えたか否か判定する。その待ち時間よりもアニメーションカウンタの値が大きい場合、その判定はＹＥＳとなってステップ２９１０の処理に移行する。そうでない場合には、その判定はＮＯとなってステップ２９１５の処理に移行する。
【０２００】
設定した待ち時間よりもアニメーションカウンタの値が大きくなることは、キャラクタを切り換える必要が生じたことを意味する。ステップ２９１０では、ワークＲＡＭ１０３に格納されるキャラクタ管理用データを構成するアニメーションデータ番号を戻し（２を減算）、そのデータ番号を更新する。その後、ステップ２９１１の処理に移行する。
【０２０１】
ステップ２９１１では、更新後のアニメーションデータ番号が０よりも小さいか否か判定する。そのデータ番号が０よりも小さい場合、その判定はＹＥＳとなってステップ２９１２の処理に移行する。そうでない場合には、その判定はＮＯとなってステップ２９１３の処理に移行する。ステップ２９１２では、アニメーションデータ番号に、「最初に戻る」コマンドの２つ前のデータ番号の値、即ち１４をセットする（図４（ａ）参照）。これにより、キャラクタをアニメーション再生とは逆の順序にサイクリックに切り換えることができる。その後、ステップ２９１３の処理に移行する。
【０２０２】
ステップ２９１３では、ステップ２９１０、或いはステップ２９１２で設定されたアニメーションデータ番号をみて、キャラクタとして表示すべき画像（グラフィック）データを特定する。続くステップ２９１４では、次にキャラクタを切り換えるタイミングをとるために、アニメーションカウンタに１をセットする。その後、ステップ２９１５の処理に移行する。
【０２０３】
ステップ２９１５では、コマ送り量分各カウンタをインクリメントしたか否か判定する。コマ送り量分のインクリメントを各カウンタに対して行っていない場合、その判定はＮＯとなってステップ２９０１の処理に戻る。そうでない場合、その判定はＹＥＳとなり、一連の処理を終了する。
【０２０４】
図３０は、図１７のステップ１７１７として実行されるペイントフレーム変更処理の動作フローチャートである。次に、この図３０を参照して、ペイントフレーム変更処理について詳細に説明する。
【０２０５】
本実施の形態では、上述したように、部分画像の描画色を設定する再生位置を固定、即ちペイントフレームを最初と最後の画面のみとしている。このペイントフレーム変更処理は、そのペイントフレームを変更するものであり、上述したように、ユーザがペイントモードを設定している場合に実行される。
【０２０６】
先ず、ステップ３００１では、ユーザが操作したキーの種類を判別する。それ以降は、その判別結果に従って行われる。ユーザが正方向コマ送りキーＫＹ６を操作した場合、ステップ３００２に移行し、逆方向コマ送りキーＫＹ７を操作した場合には、ステップ３００３の処理に移行する。その他のキーをユーザが操作した場合には、ここで一連の処理を終了する。
【０２０７】
ステップ３００２では、ユーザが正方向コマ送りキーＫＹ６を操作したとして、アニメーション管理用データのアニメーションフレーム番号を５９９、即ち最後の画面を設定する。その後、ステップ３００４の処理に移行する。他方、ステップ３００３では、ユーザが逆方向コマ送りキーＫＹ７を操作したとして、アニメーションフレーム番号を０、即ち最初の画面を設定する。その後、ステップ３００４の処理に移行する。
【０２０８】
ステップ３００４、３００５では、上記ステップ３００２、或いは３００３の処理の実行後のアニメーションフレーム番号に応じて、ワークＲＡＭ１０３から部分画像、即ちキャラクタ、背景のパレットデータを読み出して（図９参照）、各部分画像の描画色に設定する。これは、ＣＰＵ１０１が、各部分画像に設定した描画色のＲＧＢデータを、ワークＲＡＭ１０３に制御管理用として格納することで実現される。この各部分画像の描画色の設定が終了すると、一連の処理を終了する。
【０２０９】
このように、ユーザは、ペイントモードが設定されている場合、正方向コマ送りキーＫＹ６を操作すると最終画面、逆方向コマ送りキーＫＹ７を操作すると初期画面を表示させることができる。
【０２１０】
図３１は、図１７のステップ１７１８として実行されるアニメーション処理の動作フローチャートである。次に、図３１を参照して、アニメーション処理について詳細に説明する。このアニメーション処理は、アニメーションモードが再生中であった場合に、時間の経過に合わせて、図４に示すキャラクタのアニメーションデータ、移動量データに従ってキャラクタを配置し、また、ワークＲＡＭ１０３に格納されているパレットデータを基に各部分画像の描画色を設定することにより、アニメーション再生を進行させる処理である。このアニメーション処理は、１アニメーションフレーム毎、即ち１／６０秒毎に行われる。
【０２１１】
先ず、ステップ３１０１では、現在のアニメーションモードの判定を行う。この判定は、ワークＲＡＭ１０３に格納されているアニメーション管理用データを構成するアニメーションモード（図８参照）を読み出すことで行われる。そのアニメーションモードが再生中であった場合、ステップ３１０２の処理に移行し、それがポーズ中であった場合には、ここで一連の処理を終了する。
【０２１２】
ステップ３１０２では、アニメーション管理用データのアニメーションフレーム番号を読み出し、その番号が５９９以上か否か判定する。図１６に示すように、本実施の形態では、アニメーション再生期間を１０秒間としている。これは、アニメーションフレーム番号が０〜５９９になるまでの期間である。アニメーション再生を開始してから１０秒以上経過した場合、その判定はＹＥＳとなって一連の処理を終了する。そうでない場合には、その判定はＮＯとなってステップ３１０３の処理に移行する。
【０２１３】
ステップ３１０３〜３１１９は、経過した時間に応じた画面を表示させるための処理が行われる。そのなかのステップ３１０３〜３１１６は、キャラクタの配置に関する処理が行われる。
【０２１４】
上述したように、アニメーション処理は１アニメーションフレーム毎に行われ、また、キャラクタのアニメーションデータ、移動量データ等の中の待ち時間はアニメーションフレーム期間を基準とした値であるので、ワークＲＡＭ１０３に格納されているキャラクタ管理用データを構成する移動量カウンタ、アニメーションカウンタをデクリメントし、各カウンタのそのデクリメント後の値に応じて処理が行われる。
【０２１５】
先ず、ステップ３１０３では、上記移動量カウンタをデクリメントする。続くステップ３１０４では、そのデクリメント後の移動量カウンタの値が０か否か判定する。移動量カウンタの値が０よりも大きい場合、その判定はＮＯとなってステップ３１１０の処理に移行する。そうでない場合には、その判定はＹＥＳとなってステップ３１０５の処理に移行する。
【０２１６】
移動量カウンタの値が０になったことは、キャラクタを移動させる必要が生じたことを意味する。ステップ３１０５では、ワークＲＡＭ１０３に格納されている移動量データ番号をみて、その番号によって指示される移動量データ（図４（ｂ）参照）中のデータであるＸ、Ｙ方向移動量を、ワークＲＡＭ１０３に格納させている現在のキャラクタのＸ、Ｙ座標にそれぞれ加える。このＸ、Ｙ座標は、ＯＡＭ部２０５に格納されている、或いは格納すべきキャラクタの表示位置を示すデータである。
【０２１７】
ステップ３１０５に続くステップ３１０６では、上記移動量データを構成する待ち時間を、キャラクタ管理用データを構成する移動量カウンタにセットする。この移動量カウンタへの待ち時間のセットが終了すると、次にステップ３１０７において、移動量データ番号を先に進め（本実施の形態では３を加算）、その値を更新する。その後、ステップ３１０８の処理に移行する。
【０２１８】
ステップ３１０８では、更新した移動量データ番号が指示するデータが、「最初に戻る」コマンド（図４（ｂ）参照）か否か判定する。そのデータが「最初に戻る」コマンドであった場合、その判定はＹＥＳとなってステップ３１０９の処理に移行する。そうでない場合、その判定はＮＯとなってステップ３１１０の処理に移行する。ステップ３１０９では、そのコマンドに従い、移動量データ番号を先頭のデータ番号、即ち０にセットする。その後、ステップ３１１０の処理に移行する。
【０２１９】
上述したステップ３１０３〜３１０９は、キャラクタの表示位置を決定するための処理である。これに続くステップ３１１０〜３１１６では、表示させるキャラクタを決定するための処理が行われる。
【０２２０】
先ず、ステップ３１１０では、上記アニメーションカウンタをデクリメントする。続くステップ３１１１では、そのデクリメント後のアニメーションカウンタの値が０か否か判定する。アニメーションカウンタの値が０よりも大きい場合、その判定はＮＯとなってステップ３１１７の処理に移行する。そうでない場合には、その判定はＹＥＳとなってステップ３１１２の処理に移行する。
【０２２１】
アニメーションカウンタの値が０になったことは、上述したように表示させるキャラクタの表示切り換えを行う必要が生じたことを意味する。ステップ３１１２では、ワークＲＡＭ１０３に格納されるキャラクタ管理用データを構成するアニメーションデータ番号をみて、その番号が指示する図４（ａ）のアニメーションデータ中のデータからＳＲＡＭ１０６に新たに書き込むべき画像（グラフィック）データを特定する。
【０２２２】
ステップ３１１２に続くステップ３１１３では、上記画像（グラフィック）データに対応するアニメーションデータ中の待ち時間をアニメーションカウンタにセットする。このアニメーションカウンタへの待ち時間のセットが終了すると、次にステップ３１１４において、アニメーションデータ番号を先に進め（本実施の形態では２を加算）、その更新を行う。その後、ステップ３１１５の処理に移行する。
【０２２３】
ステップ３１１５では、更新したアニメーションデータ番号が指示するデータが、「最初に戻る」コマンド（図４（ａ）参照）か否か判定する。そのデータが「最初に戻る」コマンドであった場合、その判定はＹＥＳとなってステップ３１１６の処理に移行する。そうでない場合、その判定はＮＯとなってステップ３１１７の処理に移行する。ステップ３１１６では、そのコマンドに従い、アニメーションデータ番号を先頭のデータ番号、即ち０にセットする。その後、ステップ３１１７の処理に移行する。
【０２２４】
ステップ３１１７〜３１１８では、キャラクタ、背景の各部分画像の描画色を設定する処理が行われる。具体的には、ステップ３１１７でキャラクタの色補間処理を実行し、ステップ３１１８で背景の色補間処理を実行する。これらの色補間処理は、図２７、或いは図２８に示すものである。
【０２２５】
ステップ３１１８の背景の色補間処理が終了すると、ステップ３１１９の処理に移行する。ステップ３１１９では、アニメーション管理用データのアニメーションフレーム番号をインクリメントする。その後、一連の処理を終了する。
・変形例
本実施の形態では、描画色の設定を行える再生位置を固定にしているが、ユーザが任意に指定できるようにしても良い。また、描画色が行える再生位置（ペイントフレーム）数も、本実施の形態のように固定にせず、ユーザが所望するだけ選択できるようにしても良い。部分画像に設定する描画色においては、例えば３点（ペイントフレーム）で描画色を設定した場合、最初のペイントフレームと次のペイントフレーム（中間ペイントフレーム）まではそれらのペイントフレームで設定された描画色のＲＧＢデータを用いて補間演算を行い、中間ペイントフレームから最後のペイントフレームまでは、中間ペイントフレームで設定された描画色のＲＧＢデータに固定させるようにしても良い。
【０２２６】
また、例えば描画色を指定したペイントフレームが一つだけであれば、そのペイントフレームを、描画色を変更させる期間の開始点、或いは終了点とし、時間の経過に合わせて、例えばペイントフレームで設定された描画色を時間が経過するに従って暗くするように、所定の方法でその期間内の描画色を変更させるようにしても良い。また、例えば、アニメーション再生の開始付近、再生終了付近では描画色の変化を緩やかにし、中央付近ではその変化を急激にさせるように、アニメーション再生期間におけるペイントフレームの位置のみに応じて、描画色の変化を制御するようにしても良い。
【０２２７】
また、本実施の形態では、描画色を変更していく方法は１つだけであるが、その方法を幾つか用意し、ユーザがそのなかから選択できるようにしてもよく、更には、ユーザがそれを任意に設定できるようにしても良い。
【０２２８】
本実施の形態では、背景、キャラクタとも同じペイントフレームで描画色を指定するようにしているが、部分画像の種類別に異なるペイントフレームで描画色の指定を行えるようにしても良い。また、部分画像の描画色を変更させる方法も同じとしているが、部分画像毎にその方法を換えられるようにしても良い。
【０２２９】
何れにしても、少ないデータ量で様々な描画色を作成することができるので、ユーザは、簡易、且つ短時間の作業を行うだけで、視覚的効果が反映されたアニメーション再生を楽しむことができる。
【０２３０】
本実施の形態では、キャラクタの動作を表現するために、複数のキャラクタを用意していることから、それら複数のキャラクタに対し、それを構成する各部分（領域）毎に共通の色コードを割り当てている。言い換えれば、部分画像の種類別に共通の色コードの割り当てを行っている。しかし、例えば、木と、その木が映った水面を有する構成の画像の場合には、その木と水面に映った木を同一のグループとして分類し、その一方に対して描画色の変更が行われると、それに応じて他方の描画色の変更を行うようにしても良い。このようにした場合、それらの描画色は必ずしも同一でなくても良い。
【０２３１】
また、本実施の形態では、キャラクタ自体の動作を表現するために、キャラクタ全体の表示切り換えを行っているが、例えば背景における背景オブジェクトのように、キャラクタの一部分をマスクするオブジェクトを複数用意し、そのオブジェクトの表示切り換えを行うことにより、キャラクタ自体の動作を表現するようにしても良い。このようにした場合には、そのオブジェクトに割り当てる色コードをキャラクタのそれに対応する色コードとすればよく、本発明の適用は容易である。これは、表示画面を複数用意し、その表示画面の表示切り換えを行うことにより、表示画面内の物の動作を表現するような方式を採用した場合であっても同様である。
【０２３２】
また、本実施例では、入力装置１０４としてコントロールパッドを採用し、そのコントロールパッド１０４上に設けられている各種キーをユーザが操作することで、任意の描画色を所望する部分画像に設定するようにしているが、表示画面上に更にアイコン等を表示させ、全ての操作をマウス等のポインティングデバイスのみで行えるようにしても良い。その逆に、コントロールパッド１０４上に設けたキーで全ての操作を行えるようにしても良い。
【０２３３】
パレット（パレットアイコン群）については、本実施の形態ではユーザはプログラム／データＲＯＭ１０２に予め用意されているものしか利用できないが、各パレットアイコンの描画色（ＲＧＢデータ）をユーザが自由に設定できるようにしても良い。各部分画像の動作を決定するアニメーションデータ、移動量データ等においては、例えば、それらを複数用意し、ユーザがそのなかから自由に選択できるようにしても良く、ユーザがそれらのデータを自由に設定できるようにしても良い。このようにすることにより、ユーザに対してより幅広い楽しみ方を提供することができるようになる。
＜第２の実施の形態＞
・第２の実施の形態の概要
上述した第１の実施の形態は、アニメーション再生の開始点と終了点の２つの点で設定された描画色のＲＧＢデータを用いた直線補間を行うことにより、各再生位置での描画色を求めていたが、これではその描画色の変化が単調になる傾向がある。この第２の実施の形態は、より複雑な描画色の変化が得られるようにしたものである。
【０２３４】
図３２は、ベジェ曲線による色補間例を説明する図であり、これは、第２の実施の形態において描画色（ＲＧＢデータのＲ成分の値）が時間の経過に従って変化していく様子を示したものである。
【０２３５】
第２の実施の形態では、図３２に示すように、描画色を４点で設定できるようにしている。その４点とは、アニメーションフレーム番号で表現すると、その番号が０の点、２００の点、４００の点、及び５９９の点である（図中、＃Ｎ（Ｎ＝０，２００，４００，５９９）で示す）。第２の実施の形態では、ベジェのパラメータ３次多項式を用いてアニメーション再生期間中の描画色を変化させることから、上記の４点を、始点、制御点１、制御点２、及び終点とそれぞれ呼ぶことにする。
【０２３６】
図３２において、Ｒ0 は始点で設定された描画色のＲＧＢデータのＲ成分値であり、以下同様に、Ｒ200 は制御点１、Ｒ400 は制御点２、Ｒ599 は終点で設定された描画色のＲＧＢデータのＲ成分値である、また、図中のｔは、数２において使用される助定数であり、その値は各制御点でのアニメーションフレーム番号の値をアニメーション再生期間の総アニメーションフレーム数で割った値である。従って、例えば制御点１では、ｔ＝２００／６００＝１／３となる。第２の実施の形態において使用するベジェの３次多項式を数２に示す。
【０２３７】
【数２】
0003721623.tif 000003
【０２３８】
周知のように、ベジェの３次多項式を用いることで、所望の曲線を表現することができる。このため、描画色においても、ユーザはその変化を容易に制御することが可能となる。これにより、描画色が滑らかに、且つ複雑に変化するアニメーション再生をユーザは楽しむことができる。
【０２３９】
第２の実施の形態では、第１の実施の形態と比較して、上記の効果が得られるが、その構成、及び各部の動作は第１の実施の形態のそれとほぼ同じである。このため、第１の実施の形態から異なる部分についてのみ説明する。
・ＣＰＵ１０１の概略動作
図３３は、第２の実施の形態においてワークＲＡＭ１０３上に格納される背景のパレットデータの構成図である。第２の実施の形態では、背景の描画色のみ、数２を用いて変化させる。
【０２４０】
図３３に示すように、ワークＲＡＭ１０３には、ユーザが設定した描画色のＲＧＢデータ（パレットデータ）が、各制御点毎にまとめて格納される。各制御点は、ペイントモードを設定した状態で、コマ送りキーＫＹ６、ＫＹ７を操作することで指定することができる。ペイントモードを設定している場合、ＣＰＵ１０１は、コマ送りキーＫＹ６、ＫＹ７の操作に応じて制御点を変更する。
【０２４１】
その一方でＣＰＵ１０１は、カーソル移動キーＫＹ１、決定キーＫＹ５に対して行われた操作に応じてカーソルアイコンに設定されている描画色を変更し、決定キーＫＹ４が操作された場合には、カーソルアイコンが表示されていた領域上の部分（領域）、即ち色コードを特定し、カーソルアイコンの描画色のＲＧＢデータを、現在させている制御点のその色データのパレットデータとして、ワークＲＡＭ１０３への書き込みを行う。アニメーション再生では、ワークＲＡＭ１０３に書き込まれた各制御点のパレットデータを用いて、アニメーション再生の進行に合わせた描画色の変更を行う。
・ＣＰＵ１０１の詳細動作
図３４〜図３６に示す各動作フローチャートを参照して、ＣＰＵ１０１の動作を詳細に説明する。第２の実施の形態では、第１の実施の形態から、図１７のステップ１７１７のペイントフレーム変更処理、ステップ１７１３の背景の色変更処理、及び図２５のステップ２５１０、図３１のステップ３１１８等で実行される背景の色補間処理のみが異なっている。このため、これら各サブルーチン処理についてのみ説明する。
【０２４２】
図３４は、図１７のステップ１７１３として実行される背景の色変更処理の動作フローチャートである。この図３６を参照して、最初に、第２の実施の形態による背景の色変更処理について詳細に説明する。
【０２４３】
この背景の色変更処理は、上述したように、カーソルアイコンが背景上に表示されている状態でユーザが決定キーＫＹ５を操作した場合に実行される。
先ず、ステップ３４０１では、ユーザが決定キーＫＹ５を操作したときにカーソルアイコンが表示されていた背景上の色コードは１（輪郭線）か否か判定する。その色コードが１であれば一連の処理を終了し、そうでなければステップ３４０２の処理に移行する。
【０２４４】
本実施の形態では、描画色を指定できる再生位置（制御点）を、アニメーションフレーム番号が０、２００、４００、及び５９９の４つに固定している（図３２参照）。その制御点は、コマ送りキーＫＹ６、ＫＹ７を操作することで選択されるものである。このため、ステップ３４０２では、アニメーション管理用データとしてワークＲＡＭ１０３に格納されているアニメーションフレーム番号を判定し、それに続くステップ３４０３〜３４０６では、ステップ３４０２で判定したアニメーションフレーム番号に応じて、ユーザが指定した描画色のＲＧＢデータ、即ちカーソルアイコンに割り当てた色コード２４５に設定されている描画色のＲＧＢデータを、ワークＲＡＭ１０３にパレットデータとして格納する。これは、図１１に示すように、背景は複数の部分（領域）から構成されていることから、現在カーソルアイコンが表示されている背景上の部分（領域）に応じて行われる。それらの処理はその実行が終了すると、ステップ３４０７の処理に移行する。
【０２４５】
ステップ３４０７では、ステップ３４０３〜３４０６の何れかでパレットデータとして設定したＲＧＢデータを、ワークＲＡＭ１０３に制御管理用に格納されている色コード毎のＲＧＢデータに対して反映させる。この制御用管理用に格納されている色コード毎のＲＧＢデータは、ＶＤＰ１０５のＣＬＴ部２０７に格納、或いは格納させるものである。このステップ３４０７の処理が終了した後、一連の処理を終了する。
【０２４６】
図３５は、図２５のステップ２５１０、図３１のステップ３１１８等として実行される背景の色補間処理の動作フローチャートである。次に、この図３５を参照して、第２の実施の形態による背景の色補間処理について詳細に説明する。
【０２４７】
この背景の色補間処理は、アニメーション管理用データのアニメーションフレーム番号で示される現在のアニメーション再生位置に応じて、背景の描画色を設定するものである。背景の描画色は、上述したように、ワークＲＡＭ１０３に格納されているパレットデータ（図３３参照）、即ちアニメーションフレーム番号が０、２００、４００、及び５９９のときにユーザが指定した描画色のＲＧＢデータを用いて、上記数２により求められる。背景は、屋根、煙、山等の複数の部分（領域）からなり、各部分（領域）にはそれぞれ色コードが割り当てられている。このため、背景の描画色は、各色コード毎に、そのＲＧＢデータを求めることで行われる。
【０２４８】
先ず、ステップ３５０１では、ワークＲＡＭ１０３に格納されている、アニメーションフレーム番号が０、２００、４００、５９９の各パレットデータから、所定の順序で１つの色コードのＲＧＢデータをそれぞれ抽出し、それをＲＧＢの各成分に分ける。続くステップ３５０２では、上記ステップ３５０１で抽出した各アニメーションフレーム番号（制御点）のＲＧＢ各成分、及び現在のアニメーションフレーム番号（ワークＲＡＭ１０３のアニメーション管理用データ）を数２に代入して、現在の描画色のＲＧＢデータを求める。
【０２４９】
ステップ３５０３に続くステップ３５０４では、背景の色コードの描画色を全て数２を用いて補間作成したか否か判定する。キャラクタを構成する各部分（領域）の描画色を全て新たに設定した場合、その判定はＹＥＳとなって一連の処理を終了する。そうでない場合には、ステップ３５０１に戻り、所定の順序に従って、ワークＲＡＭ１０３から次の色コードのパレットデータ（ＲＧＢデータ）を抽出し、それ以降の処理を同様に実行する。
【０２５０】
図３６は、図１７のステップ１７１７として実行されるペイントフレーム変更処理の動作フローチャートである。次に、この図３６を参照して、第２の実施の形態によるペイントフレーム変更処理について詳細に説明する。
【０２５１】
本実施の形態では、上述したように、部分画像の描画色を設定する再生位置（ペイントフレーム）を固定、即ち制御点を４点のみとしている。このペイントフレーム変更処理は、そのペイントフレームを変更するものであり、上述したように、ユーザがペイントモードを設定している場合に実行される。
【０２５２】
先ず、ステップ３６０１では、ユーザが操作したキーの種類を判別する。それ以降は、その判別結果に従って行われる。ユーザが正方向コマ送りキーＫＹ６を操作した場合、ステップ３６０２に移行し、逆方向コマ送りキーＫＹ７を操作した場合には、ステップ３６０３の処理に移行する。その他のキーをユーザが操作した場合には、ここで一連の処理を終了する。
【０２５３】
ステップ３６０２では、ユーザが正方向コマ送りキーＫＹ６を操作したとして、アニメーション管理用データのアニメーションフレーム番号を０から２００、２００から４００、或いは４００から５９９に進める。その後、ステップ３６０４の処理に移行する。他方、ステップ３６０３では、ユーザが逆方向コマ送りキーＫＹ７を操作したとして、アニメーションフレーム番号を５９９から４００、４００から２００、２００から０に戻す。その後、ステップ３６０４の処理に移行する。
【０２５４】
ステップ３６０４では、上記ステップ３６０２、或いは３６０３の処理の実行後のアニメーションフレーム番号に応じて、ワークＲＡＭ１０３からその番号のパレットデータを読み出して（図３３参照）、背景の描画色に設定する。これは、ＣＰＵ１０１が、背景に設定した描画色のＲＧＢデータを、ワークＲＡＭ１０３に制御管理用として格納することで実現される。その後、一連の処理を終了する。
・変形例
第２の実施の形態では、アニメーション再生期間における制御点の位置、その数を固定させているが、これらをユーザが任意に指定できるようにしても良い。ベジェ曲線では、制御点の位置がその曲線の形状に大きな影響を与えることから、これによってユーザは、より様々な視覚的効果を得ることができるようになる。このときには、ベジェの式でＲＧＢデータを補間作成する区間をユーザが選択できるようにしても良い。更には、各区間毎に、その間のＲＧＢデータを補間作成する方法を別々に設定できるようにしても良い。
【０２５５】
また、例えば図３２のように４つの制御点をユーザが指定した場合に、例えば始点のＲＧＢデータを基準とし、制御点１〜終点の区間はベジェの式を用いた補間演算を行い、その演算後の値に、始点のＲＧＢデータを用いた所定の演算を行うようにして、描画色をアニメーション再生に合わせて変化させても良い。このように、本発明は、様々な変形を行えるものである。
【０２５６】
【発明の効果】
以上説明したように本発明は、複数の部分画像をグループに分け、各グループ毎にその描画色を一元的に管理し、ユーザが指定した描画色を基にして、アニメーション再生中の部分画像の描画色のデータを作成する。このため、ユーザは、簡単、且つ短時間の作業を行うだけで、所望の視覚的効果を付加したアニメーション再生を行わせることができる。
【０２５７】
また、描画色を指定する回数が少なく、言い換えれば、指定された描画色のデータ量が小さく、その一方では、作成できる描画色のデータは必要に応じて作成すれば良いため、部分画像に設定されている描画色のデータの格納に要する記憶領域を小さくすることができる。
【図面の簡単な説明】
【図１】第１の実施の形態が適用されたシステムの全体回路構成図である。
【図２】ＶＤＰの構成図である。
【図３】表示画面の階層構造を説明する図である。
【図４】ＲＯＭのデータ構成図である（その１）。
【図５】ＲＯＭのデータ構成図である（その２）。
【図６】ＳＲＡＭとＯＡＭ部のデータ構成図である。
【図７】ＣＬＴ部のデータ構成図である。
【図８】ワークＲＡＭのデータ構成図である（その１）。
【図９】ワークＲＡＭのデータ構成図である（その２）。
【図１０】部分画像の各部分に割り当てた色コードを示す図である（その１）。
【図１１】部分画像の各部分に割り当てた色コードを示す図である（その２）。
【図１２】部分画像の各部分に割り当てた色コードを示す図である（その３）。
【図１３】画面表示タイミングの説明図である。
【図１４】アニメーションとしての動作例を示すタイミングチャートである。
【図１５】アニメーション用のデータ例を示す図である。
【図１６】モード遷移図である。
【図１７】全体処理の動作フローチャートである。
【図１８】イニシャル処理の動作フローチャートである。
【図１９】キャラクタのアニメーションイニシャル処理の動作フローチャートである。
【図２０】描画色変更処理の動作フローチャートである。
【図２１】パレット変更処理の動作フローチャートである。
【図２２】キャラクタの色変更処理の動作フローチャートである。
【図２３】背景の色変更処理の動作フローチャートである。
【図２４】メインモード変更処理の動作フローチャートである。
【図２５】アニメーションモード変更処理の動作フローチャートである。
【図２６】キャラクタの正方向コマ送り処理の動作フローチャートである。
【図２７】キャラクタの色補間処理の動作フローチャートである。
【図２８】背景の色補間処理の動作フローチャートである。
【図２９】キャラクタの逆方向コマ送り処理の動作フローチャートである。
【図３０】ペイントフレーム変更処理の動作フローチャートである。
【図３１】アニメーション処理の動作フローチャートである。
【図３２】ベジェ曲線による色補間例を説明する図である（第２の実施の形態）。
【図３３】ワークＲＡＭ上の背景パレットデータの構成図である（第２の実施の形態）。
【図３４】背景の色変更処理の動作フローチャートである（第２の実施の形態）。
【図３５】背景の色補間処理の動作フローチャートである（第２の実施の形態）。
【図３６】ペイントフレーム変更処理の動作フローチャートである（第２の実施の形態）。
【符号の説明】
１０１  ＣＰＵ
１０２  プログラム／データＲＯＭ
１０４  入力装置
１０５  ＶＤＰ
１０６  ＳＲＡＭ
１０８  テレビ
２０７  カラールックアップテーブル部
【図１】
0003721623.tif 000004
【図２】
0003721623.tif 000005
【図３】
0003721623.tif 000006
【図４】
0003721623.tif 000007
【図５】
0003721623.tif 000008
【図６】
0003721623.tif 000009
【図７】
0003721623.tif 000010
【図８】
0003721623.tif 000011
【図９】
0003721623.tif 000012
【図１０】
0003721623.tif 000013
【図１１】
0003721623.tif 000014
【図１２】
0003721623.tif 000015
【図１３】
0003721623.tif 000016
【図１４】
0003721623.tif 000017
【図１５】
0003721623.tif 000018
【図１６】
0003721623.tif 000019
【図１７】
0003721623.tif 000020
【図１８】
0003721623.tif 000021
【図１９】
0003721623.tif 000022
【図２０】
0003721623.tif 000023
【図２１】
0003721623.tif 000024
【図２２】
0003721623.tif 000025
【図２３】
0003721623.tif 000026
【図２４】
0003721623.tif 000027
【図２５】
0003721623.tif 000028
【図２６】
0003721623.tif 000029
【図２７】
0003721623.tif 000030
【図２８】
0003721623.tif 000031
【図２９】
0003721623.tif 000032
【図３０】
0003721623.tif 000033
【図３１】
0003721623.tif 000034
【図３２】
0003721623.tif 000035
【図３３】
0003721623.tif 000036
【図３４】
0003721623.tif 000037
【図３５】
0003721623.tif 000038
【図３６】
0003721623.tif 000039