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