JP3721623B2 - 描画色変更方法、及び動画再生装置 - Google Patents
描画色変更方法、及び動画再生装置 Download PDFInfo
- Publication number
- JP3721623B2 JP3721623B2 JP35251895A JP35251895A JP3721623B2 JP 3721623 B2 JP3721623 B2 JP 3721623B2 JP 35251895 A JP35251895 A JP 35251895A JP 35251895 A JP35251895 A JP 35251895A JP 3721623 B2 JP3721623 B2 JP 3721623B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- animation
- color
- character
- image
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Description
【発明の属する技術分野】
本発明は、予め用意された複数の部分画像を用いて動画再生を行う技術に関し、特にはその部分画像の描画色を変更するための技術に関する。
【0002】
【従来の技術】
画像を作成する方式の一つとして、スプライト方式がある。このスプライト方式は、スプライト(オブジェクト)、バックグランド等の部分画像を合成する(組み合わせる)ことで画像を作成する方式である。このスプライト方式には、他の方式と比較して高速に画像の再生を行えるという利点がある。このため、テレビゲーム機等の高速な画像再生が要求される装置に広く採用されている。
【0003】
スプライト方式による画像の再生(描画)は、通常、各部分画像に対して優先度をそれぞれ設定し、各部分画像を設定した優先度に従い、優先度が低いほうから高いほうに部分画像を積み重ねる(合成する)ことで行われる。この合成方法で作成された画像では、優先度が高い部分画像がそれよりも優先度が低い部分画像を隠すような形になり、画像上には部分画像が択一的に表示される。その他には、例えば優先度に応じた比率で部分画像の重なっている部分を混ぜ合わせることで、それよりも優先度が高い部分画像に隠れている部分画像を表現する合成方法もある。
【0004】
このようなスプライト方式を採用した従来の動画再生装置では、描画(配置)させる部分画像、及びその位置や、部分画像の描画色を選択することにより、所望する任意の画像を作成することができる。また、例えば少しずつその形状が異なる部分画像を複数用意し、これら複数の部分画像を、時間管理を行って表示画面上に配置していくことにより、アニメーション再生(動画再生)を行うことができる。
【0005】
【発明が解決しようとする課題】
上記した従来の動画再生装置では、表示させる部分画像を選択し、それを時間管理して配置させることで、ユーザは所望のアニメーション(動画)再生を行わせることができる。しかし、部分画像の描画色は、それぞれ別々に管理しているため、それまでとは異なる描画色で部分画像をアニメーション再生させる場合、そのアニメーション再生に用いられる部分画像のなかで描画色を変更させたい部分画像毎に、それぞれ描画色を新たに指定(設定)しなければならなかった。その作業は、アニメーション用のセル画を1枚ずつ塗り替えていくようなものとなり、その作業には非常に面倒な操作と長い時間を要することから、簡単には行えないという問題点が生じていた。
【0006】
操作が面倒(操作性が悪い)、作業に時間がかかる、といった問題点は、ユーザに悪い印象を与え、製品の売り上げを低下させる大きな要因となることから、その問題点の解決は常に希求されている。
【0007】
また、各部分画像毎にその描画色を管理しているため、各部分画像毎に、それに設定されている描画色のデータ、或いは描画色を示すデータを記憶させておかなければならず、そのデータの格納に大きな記憶領域を必要としていたという問題点もあった。
【0008】
部分画像の画像(グラフィック)データは、普通、予め用意されるが、周知のように、画像(グラフィック)データの格納には大きな記憶領域が必要なため、上記の問題点は深刻である。
【0009】
本発明の課題は、所望する描画色でのアニメーション再生を容易にするとともに、部分画像の描画色の管理に必要なデータ量を低減することにある。
【0010】
【課題を解決するための手段】
本発明の描画色変更方法は、記憶手段に記憶されている複数の部分画像の中から、予め定められた表示管理用情報により順次指定される再生位置に基づきひとつの部分画像を選択し、当該選択された部分画像を表示画面上に配置していくことにより、動画再生を行う方法に適用されることを前提とし、複数の所定再生位置で選択されるべき前記部分画像の描画色を指定し、前記表示管理用情報により順次指定される再生位置に基づいて選択される部分画像の描画色を、前記指定された再生位置と前記複数の所定再生位置にて指定された描画色とに基づいて決定する。
【0013】
本発明の動画再生装置は、予め用意された複数の部分画像を記憶する記憶手段を備え、この記憶手段に記憶されている複数の部分画像の中から、予め定められた表示管理用情報により順次指定される再生位置に基づきひとつの部分画像を選択し、当該選択された部分画像を表示画面上に配置していくことにより、動画の再生を行うことを前提とし、複数の所定再生位置で選択されるべき前記部分画像の描画色を指定する指定手段と、前記表示管理用情報により順次指定される再生位置に基づいて選択される部分画像の描画色を、前記指定された再生位置と前記複数の所定再生位置にて指定された描画色とに基づいて決定する制御手段と、
を具備する。
【0017】
上記動画再生方法(動画再生装置)では、通常、動作を表現するために、複数の部分画像が予め用意される。例えば、ある人物(部分画像)の動きを表現するために、その人物の形状等を変えてそれを複数用意する。これにより、例えば、その複数用意した同じ人物のなかから選択して表示画面上に配置していくことで、その人物の動作を表現することができるようになる。
【0018】
このように、上記動画再生方法(或いは、その装置)では、動作させる部分画像は複数用意されているのが普通であることから、それらをグループにまとめて一元的に管理し、アニメーション再生中に描画色を変更させていく視覚的効果を付加する場合には、ユーザから与えられた情報を基に、それを加工していくことで行う。言い換えれば、少ない情報を基にして、多くの情報を作成するようにする。
【0019】
その情報を作成する方法を予め設定しておくことにより、ユーザは、所望の視覚的効果が得られる情報(描画色)を与えるだけで、その情報を与える部分画像が人物であればその人物に対して所望の視覚的効果を付加したアニメーション再生が可能となる。また、ユーザが与えなければならない情報量が少ないことから、その情報を与えるための作業は簡単化して短時間で行えるようになり、作成できる情報は随時作成すれば良いことから、情報の記憶に要する領域は非常に小さくなる。
【0020】
【発明の実施の形態】
以下、図面を参照しながら、本発明の実施の形態につき詳細に説明する。
<第1の実施の形態>
・回路の全体構成、及びその動作
図1は、第1の実施の形態が適用されたシステムの全体回路構成図である。この図1に示すシステムは、テレビ108と、そのテレビ108に接続させて用いられる動画再生装置とから構成される。
【0021】
図1に示すように、本システムは、システム全体の制御を実行するCPU101と、制御プログラム、各種データ等を格納したプログラム/データROM102と、主にCPU101がワーク用として使用するワークRAM103と、CPU101に接続された入力装置104と、プログラム/データROM102に格納されている画像データを用いた画像処理を行うVDP(ビデオディスプレイプロセッサ)105と、スプライト(オブジェクト)、バックグラウンドの各部分画像の画像(グラフィック)データが格納されるSRAM(スタティックRAM)106と、VDP105が出力したRGBアナログ映像信号をNTSC方式の信号に変換するエンコーダ107と、上記テレビ108とを備えて構成されている。
【0022】
上記入力装置104としては、例えば図1に示したようなコントロールパッドが採用される。このコントロールパッド104上には、ユーザにより操作される各種キーが備えられている。具体的には、テレビ108の画面上に表示されたカーソルアイコンを移動させるためのカーソル移動キーKY1、アニメーション再生のスタート/ストップを指示するためのスタート/ストップキーKY2、アニメーション再生させる画像を最初の画像に戻すためのリセットキーKY3、設定されているモードを変更するためのモード変更キーKY4、画像(動画)の作成において選択した内容を確定させるための決定キーKY5、アニメーションとして表示させる画像を順序方向(正方向)に、1コマ分だけ進める正方向コマ送りキーKY6、及びその逆方向に1コマ分だけ戻す逆方向コマ送りキーKY7を備えている。
【0023】
以上の構成において、動作の概略を説明する。
CPU101は、プログラム/データROM102から読み出した制御プログラムを実行することで、ワークRAM103を使用しながら、コントロールパッド104に対して行われたキー操作の検出、及びVDP105の制御を行う。
【0024】
プログラム/データROM102には、画像を構成するスプライト(オブジェクト)、バックグラウンドの各部分画像の画像(グラフィック)データが格納されている。スプライト(オブジェクト)は、主として動く(形状の変化を含む)ものを表現するためのパーツであり、他方のバックグラウンドは、背景を表現するためのパーツである。CPU101は、このROM102に格納されている画像(グラフィック)データをVDP105に転送し、VDP105に、その画像(グラフィック)データをSRAM106に格納させる。CPU101は、VDP105に転送する画像(グラフィック)データを、予め定められた設定、ユーザがコントロールパッド104に対して行った操作内容等から決定する。
【0025】
CPU101から画像(グラフィック)データを転送されたVDP105は、転送された画像(グラフィック)データを所定の形式でSRAM106に格納する。CPU101から転送された画像(グラフィック)データを上記SRAM106に格納した後は、SRAM106に格納した画像(グラフィック)データを用いて、表示させる画像のRGBアナログ映像信号を1走査線毎に生成する。
【0026】
VDP105が生成したRGBアナログ映像信号は、エンコーダ107に出力される。エンコーダ107は、この映像信号で表現される画像をテレビ108の画面上に表示させるために、その映像信号をテレビ規格であるNTSC方式の映像信号に変換した後、テレビ108に出力する。このテレビ108は、画面をラスタ走査することで、画面上に画像を描画する。
・VDP105の構成、及び動作
図2は、VDP105の構成図である。
【0027】
このVDP105は、上記したように、表示させる画像のRGBデータを生成することにより、テレビ108への画面表示を制御する。その構成としては、以下のものを備える。
【0028】
先ず、CPUインタフェース部201は、CPU101との間のデータ転送時におけるインタフェースを制御する。
SRAMインタフェース部202は、後述するオブジェクトジェネレータ部203、及びバックグラウンドジェネレータ部205が、SRAM106に格納されているスプライト(オブジェクト)又はバックグラウンド(背景)の画像(グラフィック)データをアクセスする場合のインタフェースを制御する。また、CPU101から転送されたスプライト(オブジェクト)、バックグラウンドの画像(グラフィック)データを、CPUインターフェイス部201、データバス214を介して受け取り、CPU101がCPUインターフェイス部201、アドレスバス213を介して指定したアドレスに従ってSRAM106にそれを格納する。
【0029】
オブジェクトジェネレータ部203、及びバックグラウンドジェネレータ部204は、各水平期間(図13参照)毎に、SRAM106から、次の水平表示期間内の各ドットの表示座標に配置されるスプライト(オブジェクト)、或いはバックグラウンドの画像(グラフィック)データを読み込み、それぞれの内部のバッファに格納する。
【0030】
オブジェクトアトリビュートメモリ(OAM)部205は、SRAM106に格納されているスプライト(オブジェクト)の表示座標を格納する。この表示座標は、オブジェクトジェネレータ部205が、SRAM106からSRAMインタフェース部202を介してスプライト(オブジェクト)の画像(グラフィック)データを読み出すときのタイミングに対応する。オブジェクトジェネレータ部203は、各スプライト(オブジェクト)の表示座標に従い、SRAM106からSRAMインタフェース部202を介して対象とするスプライト(オブジェクト)の画像(グラフィック)データの読み出しを行う。
【0031】
画像(グラフィック)データは、例えば各ドットの描画色を示す色コードの集合体として用意される。プライオリティコントローラ部206は、各水平表示期間内に対応している各ドット毎に、オブジェクトジェネレータ部203、或いはバックグラウンドジェネレータ部204がそれぞれ出力した色コードのうちの1つを予め定められたプライオリティ(優先順位)に従って選択して出力する。
【0032】
カラールックアップテーブル部207は、各色コードに割り当てられたR(赤)、G(緑)、B(青)のデジタルデータ(RGBデータ)をそれぞれ別の記憶領域に格納しており、プライオリティコントローラ部206が出力した色コードに割り当てられているRGBデータを選択してRGB D/A変換部208に出力する。
【0033】
RGB D/A変換部208は、カラールックアップテーブル部207が出力したRGBデジタルデータをRGBアナログ映像信号に変換して出力する。
オシレータ部209は、VDP105の各部が動作するうえで必要な各種クロックを生成する。
【0034】
水平/垂直同期カウンタ部210は、オシレータ部209が出力するクロックに従って、画像表示に必要な水平同期カウンタ値(水平同期信号)及び垂直同期カウンタ値(垂直同期信号)を生成するためのカウンタ回路である。
【0035】
デコーダ部211は、水平/垂直同期カウンタ部210が出力するカウンタ値から水平同期カウンタ値及び垂直同期カウンタ値をデコードし、VDP105内の各部に供給する。
【0036】
ビデオ信号ジェネレータ部212は、デコーダ部211が出力する水平同期カウンタ値及び垂直同期カウンタ値から、エンコーダ107が必要とするビデオ信号を生成し、エンコーダ107に供給する。
【0037】
次に、上述の構成を有するVDP105の概略動作について説明する。
本実施の形態によるVDP105は、図3に示すように、各ジェネレータ部203〜204が出力する画像(グラフィック)データで表現される画像をそれぞれ仮想的な表示面とし、これらの表示面を重ねることで1枚の表示画面(画像)を形成させる。
【0038】
図3において、背景面はバックグラウンドジェネレータ部204によって作成され、その他の表示面であるオブジェクト面、及びアイコン面はオブジェクトジェネレータ部203によって作成される。これらの表示面は、奥から手前に向けて、背景面、オブジェクト面、アイコン面の順に配置されている。
【0039】
VDP105内の特には図示しない表示制御レジスタには、これら背景面、オブジェクト面、アイコン面のそれぞれの表示の有無を示すフラグが格納される。CPU101は、この表示制御レジスタにアクセスして、各表示面の表示/非表示を設定する。
【0040】
各表示面のプライオリティは、手前の表示面ほど高く設定されている。プライオリティコントローラ部206は、各表示面に設定されている優先度に従い、各ドット毎に、各ジェネレータ部203〜204から出力された画像(グラフィック)データ(色コード)のなかから1つを選択してそれをカラールックアップテーブル部207に出力する。この選択は、当然のことながら、各ジェネレータ部204〜206のなかで選択の対称となる色コード(透明色が設定されていない色コード)を出力しているものの間で行う。これにより、各表示面は、プライオリティが高い表示面がそれよりもプライオリティが低い表示面を隠すような形で合成される。
【0041】
背景面には背景がアサインされ、オブジェクト面には表示画面上で動かすものがアサインされ、アイコン面には画像の作成に必要な各種アイコン類等がアサインされる。具体的には、図3に示すように、オブジェクト面にはキャラクタがアサインされ、アイコン面にはパレット変更アイコン、パレットアイコン群、及びカーソルアイコンがアサインされている。以降の説明は、各表示面に、図3に示す部分画像がそれぞれアサインされていることを前提として行う。これは、説明を具体的にすることにより、理解を容易とするためである。また、表示面に配置されるパーツについては、それを特定しない場合には部分画像と表現することとする。
【0042】
本実施の形態では、オブジェクト面にアサインされている部分画像、即ちキャラクタの表示の有無、及び表示させる部分画像の描画色を指定することにより、1画面分の画像の作成が行われる。特に詳細な説明は省略するが、表示させる部分画像の選択は、例えば表示可能な部分画像の名称(アイコン面にアサインされる)を表示させたなかから、ユーザがカーソルキーKY1、決定キーKY5等を操作することで行われる。
【0043】
また、本実施の形態では、これらの部分画像の画像(グラフィック)データの他に、これら部分画像を動作させる、いわゆるアニメーションとしての再生を行うためのデータがプログラム/データROM102に格納されている。
【0044】
図4は、キャラクタの表示に関わるデータの構成図であり、同図(a)はキャラクタ表示用、同図(b)はキャラクタ動作用のデータの構成例である。これらは、プログラム/データROM102に格納されているデータである。
【0045】
キャラクタ表示用のデータは、アニメーションデータと画像(グラフィック)データとからなる。
図4(a)のアニメーションデータは、画像(グラフィック)データに付与した番号である画像(グラフィック)データ番号と、その画像(グラフィック)データ番号の画像(グラフィック)データを表示させている時間を示す待ち時間とからなる。待ち時間は、予め定められた時間単位で表現した際の値で用意されている。データ#16の<最初に戻る>コマンドは、アニメーションデータの最初のデータ#0に戻すことを意味する。
【0046】
図4(b)の移動量データは、キャラクタが前回の表示位置から移動させるX方向、Y方向の移動量、及び待ち時間からなる。これらは、キャラクタの表示位置管理を行うためのデータである。一方、初期位置データは、キャラクタの初期表示位置を示すデータである。初期のX座標、Y座標、及び最初に移動量データが加算されるまでの待ち時間からなる。
【0047】
部分画像の描画色は、図3に示すパレットアイコン群のなかからパレットアイコンを一つ選択し、その選択したパレットアイコンで描画させたい部分(部分画像を構成する1領域)を指定することで変更(設定)する。パレットアイコンの選択は、カーソルアイコンを所望のパレットアイコンの位置に移動させた後、決定キーKY5を操作することで行う。描画色の変更を所望する部分の指定は、カーソルアイコンをその部分に移動させた後、決定キーKY5を操作することで行う。
【0048】
本実施の形態では、ユーザの様々な要求に対応できるように、パレットアイコン群(パレット)を複数用意している。パレット変更アイコンは、表示させるパレットアイコン群(パレット)の変更を指示するためのものであり、パレット変更アイコンがクリックされる度に、パレット(パレットアイコン群)が所定の順序でサイクリックに切り替わって表示される。このパレット(パレットアイコン群)毎に表示させる描画色のデータ(RGBデータ)は、図5に示すフォーマットでプログラム/データROM102に格納されている(図中、#を付けて示す数字はパレット番号)。
【0049】
プログラム/データROM102に格納されているこれら各種データは、デフォルトで指定されている内容、或いはユーザがコントロールパッド104を操作することで指定した内容に従ってCPU101により読み出される。CPU101は、これらのデータを読み出すと、データの種類により、そのまま、或いは加工してVDP105に送出する。
【0050】
CPU101がVDP105に送出した画像(グラフィック)データは、CPUインターフェイス部201、データバス214、及びSRAMインターフェイス部202を介してSRAM106に送られる。SRAM106は、CPUインターフェイス部201、アドレスバス213、及びSRAMインターフェイス部202を介してCPU101が指定したアドレスに、CPU101から送られた画像(グラフィック)データを図6に示すフォーマットで格納する。
【0051】
背景を除く部分画像は、座標位置の設定により、それが配置(表示)される位置が制御される。CPU101は、SRAM106に格納されている部分画像(画像(グラフィック)データ)を表示させる座標位置等の属性を示すデータ(属性データ)を生成し、VDP105に送出する。VDP105は、この属性データを、CPUインターフェイス部201、データバス214を介してOAM部205に送る。OAM部205は、この送られた属性データを、CPUインターフェイス部201、アドレスバス213を介してCPU101が指定したアドレスに図6に示すフォーマットで格納する。
【0052】
図6に示すように、各部分画像の画像(グラフィック)データとその属性データは、それが格納される領域が予め定められており、それらは対応づけられて格納される。各部分画像は、それがアサインされている表示面のプライオリティの他に、同一の表示面内におけるプライオリティが設定されている。この同一の表示面内におけるプライオリティは、OAM部205(SRAM106)に格納される位置により制御されている。図7において上方に位置しているものほどプライオリティが高く設定されている。具体的には、アイコン面においてはカーソルアイコン、パレット変更アイコン、パレットアイコン群の順に高いプライオリティが設定されている。
【0053】
なお、上記部分画像の属性データは、図6に示すように、その部分画像を左右に反転表示させるか否かを示す左右反転フラグ、この属性データに対応するSRAM106内の部分画像を特定させるキャラクタ番号(図中、キャラクタ#N(Nは整数)で表現)、その部分画像を表示させるX、Y座標から構成される。
【0054】
オブジェクトジェネレータ部203は、各水平期間内の時分割された各タイミングで、SRAMインターフェイス部202をアクセスする。このとき、オブジェクトジェネレータ部203は、OAM部205に格納された属性データを基に、SRAM106から読み出された画像(グラフィック)データを内部のラインバッファに格納するタイミングを計算し、そのタイミングで画像(グラフィック)データを各表示面別のラインバッファに格納する。これらのラインバッファには、同一の表示面内におけるプライオリティの高さで優先させて、部分画像の画像(グラフィック)データが格納される。
【0055】
他方のバックグラウンドジェネレータ部204は、オブジェクトジェネレータ部203とは別に、各水平期間内の時分割された各タイミングで、SRAMインターフェイス部202をアクセスして、SRAM106から次の水平期間内に表示すべき背景の画像(グラフィック)データを1ライン分読み出し、それを内部のラインバッファに格納する。
【0056】
このようにして、オブジェクトジェネレータ部203内の2つのラインバッファには、オブジェクト面、アイコン面にそれぞれ配置させる次の1ライン分の画像(グラフィック)データ(色コード)が、各水平期間毎に格納される。他方のバックグラウンドジェネレータ部204内のラインバッファには、背景面に配置させる次の1ライン分の画像(グラフィック)データ(色コード)が、各水平期間毎に格納される。
【0057】
オブジェクトジェネレータ部203、バックグラウンドジェネレータ部204は、水平/垂直同期カウンタ部210から出力される水平同期カウンタ値を入力し、該カウント値に対応する色コードをその内部のラインバッファから読み出してプライオリティコントローラ部206に出力する。
【0058】
プライオリティコントローラ部206は、各ジェネレータ部203、204から出力されたラインバッファ(表示面)毎の色コードを入力すると、各表示面に設定されているプライオリティの高さでそのなかからひとつの色コードを選択してCLT部207に出力する。
【0059】
上述したように、CLT部207は、各色コード毎にそれに割り当てたRGBデータをそれぞれ別の記憶領域に格納したものであり、プライオリティコントローラ部206が出力した色コードに設定されているRGBデータをRGB D/A変換部208に出力する。本実施の形態では、図7に示すように、部分画像の種類毎に色コードを割り当て、また、その部分画像を構成する各部分(領域)の色コードは全て同じ値に統一させている(図10〜図12参照)。
【0060】
スプライト方式によるアニメーション再生では、その表示位置、その形状の変形等を行うことにより、部分画像の動作を実現する手法が用いられる。本実施の形態においては、図4から判るように、同一の種類として分類される部分画像を複数用意し、その部分画像の表示切り換え、及びそれの表示位置の移動を行うことにより、部分画像の動作を実現させている。
【0061】
アニメーション再生を行う場合、複数用意されている各部分画像にはそれぞれ描画色が設定されている。このことから、従来、部分画像の描画色の変更には、各部分画像に設定されている描画色をそれぞれ変更しなければならず、そのために非常に面倒な作業が要求されていた。
【0062】
本実施の形態は、表示画面(各表示面を合成後のもの)を構成する各ドットのRGBデータを、CLT部207を用いて生成する方式を採用しているシステムに本発明を適用させたものである。このため、図7に示すように、各部分画像の種類毎に色コードを割り当て、各色コードに設定されているRGBデータを、CLT部207のその色コードに割り当てた記憶領域に格納することにより、部分画像の描画色の変更を種類別に一度に行うことができる。言い換えれば、種類別にグループにまとめた複数の部分画像の描画色を一元的に管理することができる。これにより、描画色の変更に要する作業が簡易化するとともに、ユーザはその作業を短時間で終了させることができる。また、各部分画像別にその描画色の設定情報を記憶しておく必要がなくなるので、ワークRAM104、更にはプログラム/データROM102に必要な記憶容量を小さくさせることができる。
【0063】
図10〜図12は、各表示面(背景面、オブジェクト面、アイコン面)にアサインされた各部分画像を構成する各領域(主要部分)に割り当てた色コードを示している。
【0064】
本実施の形態では、キャラクタ、背景等においても、それらは複数の領域から構成され、複数の描画色で表現されるようになっている。このため、部分画像の種類毎に複数の色コードを割り当てている。
【0065】
図10は、キャラクタを構成する各部分に割り当てた色コードを示す図である。図10に示すように、キャラクタは、髪、肌、服等の複数の部分(領域)に分けられる。本実施の形態では、キャラクタの動作を表現するために、このような複数の部分(領域)に分けられるキャラクタを複数(全部で8)用意している。しかし、これら形状が異なる各キャラクタにおいて、髪に割り当てた色コードは2、肌に割り当てた色コードは3といったように、キャラクタを構成する各領域に割り当てた色コードの値は同じ値に統一させている。これら色コードは、キャラクタを構成する各部分(領域)を示す識別子となる。
【0066】
パレットアイコン、パレットアイコン群の各パレットアイコン、カーソルアイコンにおいても、図7及び図12に示すように、それぞれ色コードが割り当てられている。
【0067】
上記背景は、煙、木、屋根、雲、山、池等の複数の部分(領域)に分けられる。屋根には色コード54、煙には色コード55、木には色コード56、雲には色コード50、山には色コード51、池には色コード52がそれぞれ割り当てられている。背景においても、それを構成する各部分(領域)に割り当てた色コードは、それが割り当てられた部分(領域)を示す識別子となる。なお、各部分(領域)の境界を示す輪郭線には、部分画像の種類に関わらず、その描画色として黒が設定される色コード1が割り当てられている。
【0068】
各部分画像を構成する各部分(領域)の描画色は、ユーザにより指定される。このユーザによる描画色の指定に対応するために、CLT部207に格納されているRGBデータの書き換えが行われる。その書き換えは、CPU101がCPUインターフェイス部201、データバス214を介して送出したRGBデータを、CPU101がCPUインターフェイス部201、アドレスバス213を介して指定したアドレスに書き込むことにより実現される。これにより、ユーザが指定した描画色で各部分画像が表現され、ユーザが所望する表示画面が作成される。
【0069】
ところで、周知のように、テレビ108は画面をラスタ走査することで画像を描画する。このため、VDP105は、その走査(フレーム周期)に対応させてRGBアナログ映像信号を出力する。
【0070】
テレビ108の走査に対応させた映像信号の出力は、デコーダ部211が出力する水平同期カウンタ値、及び垂直同期カウンタ値をそれぞれ水平同期信号、垂直同期信号とし、VDP105の各部をこれらのカウンタ値に応じて動作させることで実現される。図13は、画面表示タイミングの説明図である。これは各カウンタ値とその値で示されるドットの表示座標の関係を表したものであり、VDP105の各部は各カウンタ値によって動作が制御される。
【0071】
図13に示すように、デコーダ部211から出力される水平同期カウンタ値が000h〜2FFh(“h”は16進数を示す)まで変化する期間が1水平期間であり、そのうち000h〜0FFhの256カウント分の水平同期カウンタ値に対応する期間が256ドットからなる1ライン分の水平表示期間、それ以外の水平同期カウンタ値に対応する期間が水平ブランク期間である。また、デコーダ部211から出力される垂直同期カウンタ値が000h〜1FFhまで変化する期間が1垂直期間であり、これがテレビ108上の1画面(フィールド)分の表示期間となる。この垂直期間において、000h〜0DFhの224カウント分の垂直同期カウンタ値に対応する期間が垂直方向224ライン分の垂直表示期間、それ以外の垂直同期カウンタ値に対応する期間が垂直ブランク期間である。
【0072】
CLT部207からRGB値 D/A変換部208へは、水平同期カウンタ値がカウントアップされる毎に、1組ずつ(1ドット)のRGBデータが出力される。
【0073】
CPU101からSRAM106、或いはオブジェクトアトリビュートメモリ(OAM)部205への各種データの設定、及び転送は、例えば各垂直ブランク期間内に実行され、これにより表示画面を刻々と変化させることができる。また、本実施の形態においては、CLT部207に格納されているRGBデータの書き換えは垂直ブランク期間を利用して行っている。
・CPU101の詳細動作
先ず、図8、図9、図14〜図16を参照して、CPU101のアニメーション再生動作について具体的に説明する。図15は、キャラクタ用のアニメーションデータ、初期位置データ、移動量データを示す。これは、キャラクタの動作を管理するためのデータである。図14は、アニメーションとしての動作例を示すタイミングチャートである。これは、図15に示すデータでアニメーション再生を行った場合に、キャラクタが動作表現される様子を示したものである。
【0074】
図8は、ワークRAM103のデータ構成図である。CPU101は、ワークRAM103をワーク領域として利用しながら、アニメーション再生を行う。図8は、アニメーション再生を行うためにCPU101がワークRAM103に格納する各種管理用データの構成を示したものである。
【0075】
図8に示すように、管理用データは種類毎に分けられる。
キャラクタ管理用データは、移動量カウンタ、移動量データ番号、アニメーションカウンタ、及びアニメーションデータ番号から構成される。移動量カウンタ、及び移動量データ番号は、キャラクタの移動を管理するためのデータであり、図15の移動量データにおいて、移動量カウンタにはデータ#2の待ち時間、移動量データ番号には現在処理中のデータ番号(データ#2を除く)がそれぞれセットされる。
【0076】
アニメーションカウンタ、及びアニメーションデータ番号は、表示させるキャラクタを管理するためのデータであり、図15において、アニメーションカウンタには待ち時間、アニメーションデータ番号には現在表示中のキャラクタ(画像(グラフィック)データ)に割り当てた番号がそれぞれセットされる。
【0077】
アニメーション管理用データは、アニメーション再生を全体的に管理するためのデータであり、アニメーションモード、及びアニメーションフレーム番号から構成される。
【0078】
モード管理用データのメインモードは、現在設定されているモードを示す。本実施の形態では、アニメーション再生を行うアニメーションモードと、部分画像に対して描画色の設定を行うペイントモードがある。これらのモードは、図1のモード変更キーKY4を操作することにより、交互に設定が切り替わる。
【0079】
アニメーション管理用データは、アニメーションモードが設定されていた場合に、アニメーション再生を管理するためのデータである。アニメーションモードは、アニメーションモード内で設定されているモード、即ち、アニメーション再生を現在行っているか、或いはその再生を停止させている(ポーズ中)かを示す。アニメーションフレーム番号は、アニメーション再生を開始してから経過したフレーム数を示すデータである。
【0080】
アニメーションフレームの周波数は、図14に示すように60である。NTSC方式のフレーム周波数は30であり、1フレームは2フィールドから構成されるので、1フィールドが1アニメーションフレームに対応する。各部分画像用に用意されている待ち時間は、この1アニメーションフレームを基準時間としての値である。CPU101は、例えば、それが備えたタイマ機能により、或いはVDP105の水平/垂直同期カウンタ部210から出力された垂直同期カウンタ値(図13参照)を入力することにより、1アニメーションフレームの時間を認識する。
【0081】
アニメーション再生を行う場合、CPU101は、例えばキャラクタ管理用データのアニメーションカウンタに待ち時間をセットすると、そのセットした値をアニメーションフレームの経過に合わせてデクリメントしていき、その値が0となったらアニメーションデータ番号が示すプログラム/データROM102のアニメーションデータ中のデータを読み出し(図4(a)参照)、次に表示すべきキャラクタ(画像(グラフィック)データ)を特定する。
【0082】
そのキャラクタ(画像(グラフィック)データ)を特定した後は、アニメーションカウンタにはその特定したキャラクタ(画像(グラフィック)データ)を表示させておく待ち時間をセットし、アニメーションデータ番号には更にその次に表示すべきキャラクタ(画像(グラフィック)データ)の番号が格納されているアニメーションデータ中のデータ番号をセットする。他のカウンタとデータ番号の使用方法も上記と同様である。
【0083】
図15において、アニメーションデータにおける全ての待ち時間(データ#1、#3、・・・#15)は6であり、移動量データにおいては、X方向移動量は1、Y方向移動量は0、待ち時間は1である。このため、図14に示すように、6アニメーションフレーム毎にキャラクタの画像(グラフィック)データが切り換えられ、1アニメーションフレーム毎にその表示位置がX方向の正方向に1ずつ移動することになる。なお、X方向、及びY方向の移動量は、例えば表示画面上のドットを基準とした値である。移動量1が1ドットに相当する場合には、キャラクタは1アニメーションフレーム期間(1/60秒)が経過する度に1ドット移動する。
【0084】
一方、CPU101は、アニメーション再生を開始するときに、アニメーション管理用データのアニメーションフレーム番号に0をセットする。0をセットした後は、1アニメーションフレーム期間が経過する度に、そのセットされている値をインクリメントする。
【0085】
本実施の形態では、図14に示すように、アニメーション再生を行う期間を10秒間としている。このため、アニメーション再生を開始してから10秒が経過すると、即ちアニメーションフレーム番号が599になると、アニメーション再生を終了させる。
【0086】
図5に示すように、本実施の形態では複数のパレット(パレットアイコン群)を用意している。パレット管理用データのパレット番号は、現在選択(アイコン面に配置)しているパレット(パレットアイコン群)を示す番号である。
【0087】
図16は、モード遷移図である。これは、モード変更キーKY4を操作することにより、表示される画面を示したものである。
図16に示すように、アニメーションモードが設定されていた場合にユーザがモード変更キーKY4を操作すると、CPU101はペイントモードに設定を切り換える。言い換えれば、モード管理用データのメインモードの設定を変更する。このモード切り換えを行うと、アニメーションフレーム番号で示される現在の再生位置に関わらず、アニメーションフレーム番号が0のときの画面を表示させる。このアニメーションモードを設定させている場合、CPU101は、アイコン面を非表示にさせる。
【0088】
ペイントモードにおいて、CPU101は、各コマ送りキーKY6、KY7の操作に応じて、表示させる画面を、アニメーションフレーム番号が0のもの(最初の画面)とアニメーションフレーム番号が599のもの(最後の画面)とに交互に切り換える。一方、アニメーションモードでは非表示とさせていたアイコン面を表示させる。これにより、ユーザは、各コマ送りキーKY6、KY7を操作することで、所望の画面を表示させ、カーソル移動キーKY1、決定キーKY4を操作して、各画面毎に描画色の指定を行うことができる。
【0089】
図9に示すように、ワークRAM103には、各部分画像毎に、それに割り当てられた色コードに応じて、ユーザが指定した描画色のRGBデータ(パレットデータ)を格納する領域が用意されている。CPU101は、上記ペイントモードを設定させていた際に、各画面毎にユーザが指定した描画色のRGBデータをパレットデータとして、図9に示すフォーマットでワークRAM103に格納する。その後、モード変更キーKY4が操作され、アニメーションモードに設定を切り換えると、ワークRAM103に格納されているパレットデータを用いて、アニメーション再生において表示させる部分画像の描画色を、その再生の進行に合わせて変更させる。アニメーション再生に合わせた描画色の変更は、例えばそのRGBデータを各成分にわけ、数1を用いて行う。
【0090】
【数1】
【0091】
数1から判るように、本実施の形態では、ユーザが指定した描画色のRGBデータ、即ちパレットデータを用いて、そのパレットデータが指定された再生位置の間の描画色(RGBデータ)を補間して作成する。このため、アニメーションの再生位置毎に部分画像の描画色のRGBデータを格納する必要がなくなり、パレットデータを格納させるワークRAM103上の格納領域を小さくすることができるとともに、アニメーション再生中に部分画像(例えばキャラクタ)を様々な描画色で表現させることができる。また、部分画像の描画色は、2ペイントフレームの画面上で指定するだけなので、簡単、且つ短時間にそのための作業を行うことができる。更には、上述したように、部分画像の描画色をグループ毎に一元的に管理しているため、アニメーション再生中での部分画像に対する描画色の設定も容易であるという効果もある。
【0092】
処理フローの説明
図17〜図31に示す動作フローチャートを参照して、CPU101の動作を詳細に説明する。各種の動作フローチャートは、プログラム/データROM102に格納されている制御プログラムをCPU101が実行することにより実現される。
【0093】
図16は、全体処理の動作フローチャートである。
システムの電源がオンされると、先ず、ステップ1701のイニシャル処理を実行する。このイニシャル処理は、VDP105の初期設定等を行う処理である。この処理を実行することにより、テレビ108には初期画面が表示される。その処理の詳細については後述する。
【0094】
ステップ1701のイニシャル処理が終了すると、次に、コントロールパッド104上の各種キーを走査し、それら各種キーの操作状態の情報を取り込む処理を行う(ステップ1702)。このステップ1702の処理が終了すると、ステップ1703の処理に移行する。
【0095】
ステップ1703では、ステップ1702で取り込んだ各種キーの操作状態の情報から、現在操作されているキーの種類を判別する。このステップ1703において、操作されているキーが存在しないと判別した場合、ステップ1718の処理に移行する。何らかのキーが操作されていると判別した場合には、その判別結果に応じて、ステップ1704〜1717の処理を実行する。
【0096】
ステップ1703でカーソル移動キーKY1が操作されていると判別した場合、次にステップ1704の処理に移行する。このステップ1704では、現在設定されているメインモードを判定する。その判定は、ワークRAM103に格納されているモード管理用データ(図8参照)から判定する。メインモードとしてアニメーションモードが設定されていた場合、ステップ1718の処理に移行し、ペイントモードが設定されていた場合には、ステップ1705の処理に移行する。
【0097】
カーソル移動キーKY1は、上下左右キーから構成される。ステップ1705では、カーソルアイコンの現在の表示位置(XY座標)に対し、カーソル移動キーKY1において操作されたキーの種類に応じた演算を行うことにより、カーソルアイコンを次に表示すべき位置を算出する。この算出した値は、ワークRAM103の所定の格納領域に格納する。この新たに算出した表示位置(XY座標)は、後述するステップ1719において、カーソルアイコンの属性データとして図2に示すOAM部205に送出される。これにより、ユーザがカーソル移動キーKY1に対して行った操作に追従してカーソルアイコンが表示画面上を移動することになる。ステップ1705の処理を終了した後は、ステップ1718の処理に移行する。
【0098】
ステップ1703で決定キーKY5が操作されていると判別した場合、次にステップ1706の処理に移行する。決定キーKY5は、上述したように、所望する内容を実現するための動作の実行をユーザが指示するためのキーである。ステップ1706に続くステップ1707〜1713の処理は、ユーザが実現を指示した内容に応じて行われる。
【0099】
ステップ1706では、現在設定されているメインモードを判定する。その判定は、ワークRAM103に格納されているモード管理用データ(図8参照)から判定する。メインモードとしてアニメーションモードが設定されていた場合、ステップ1718の処理に移行し、ペイントモードが設定されていた場合には、ステップ1707の処理に移行する。
【0100】
ステップ1707では、カーソルアイコンがパレットアイコン群の何れかのパレットアイコン上にあるか否か判定する。ユーザがカーソルアイコンを表示されている何れかのパレットアイコン上に移動させた後、決定キーKY5を操作した場合、その判定はYESとなってステップ1708の処理に移行する。そうでない場合、その判定はNOとなってステップ1709の処理に移行する。
【0101】
なお、パレットアイコン群を表示させるための画像(グラフィック)データには、色コードが0、即ち透明となっている部分もある(図7参照)。この透明となっている部分(領域)は表示されないことから、カーソルアイコンがその部分(領域)に位置していた場合には、ステップ1707ではカーソルアイコンはパレットアイコン上に位置していないと判定する。これは、カーソルアイコンが他の部分画像上に位置しているか否かを判定する場合も同様である。
【0102】
カーソルアイコンがパレットアイコン上に位置しているか否かは、例えばOAM部205に現在格納させているカーソルアイコンのXY座標と、OAM部205に格納させているパレットアイコン群のXY座標とを比較することにより行う。これは、カーソルアイコンが他の部分画像上に位置しているか否かを判定する場合も同様である。OAM部205に格納されている各種部分画像のXY座標は、ワークRAM103にも格納されており、CPU101は、このワークRAM103から該当する部分画像のXY座標を読み出して、上記の判定を行う。
【0103】
ユーザがカーソルアイコンを表示されている何れかのパレットアイコン上に移動させた後、決定キーKY5を操作した場合、そのパレットアイコンに割り当てられた色コードの選択色(RGBデータ)が、部分画像(それを構成する部分)を塗る描画色となる。ステップ1708では、パレットアイコンに割り当てた色コードのRGBデータを、カーソルアイコンに割り当てた色コードのRGBデータとする描画色変更処理を実行する。その後、ステップ1718の処理に移行する。
【0104】
ステップ1709では、カーソルアイコンがパレット変更アイコン(図3参照)上に位置しているか否か判定する。ユーザが、カーソルアイコンをパレット変更アイコン上に移動させた後、決定キーKY5を操作した場合、その判定はYESとなってステップ1710の処理に移行する。そうでない場合、その判定はNOとなってステップ1711の処理に移行する。
【0105】
パレット変更アイコンは、表示されているパレット(パレットアイコン群)を他のパレット(パレットアイコン群)に変更することをユーザが指示するためのものである。ステップ1710では、表示させるパレット(パレットアイコン群)を変更するパレット変更処理を実行し、その後、ステップ1718の処理に移行する。
【0106】
ステップ1711〜1713では、決定キーKY5が操作されたときにカーソルアイコンが位置している部分画像に応じて、カーソルアイコンに設定されている描画色にその位置の描画色を変更するための処理が行われる。
【0107】
ステップ1711では、カーソルアイコンがキャラクタ(図10参照)上に位置しているか否か判定する。ユーザが、キャラクタ上にカーソルアイコンを移動させた後、決定キーKY5を操作した場合、その判定はYESとなってステップ1712の処理に移行する。そうでない場合、その判定はNOとなってステップ1713の処理に移行する。
【0108】
ステップ1712では、ユーザがキャラクタの色変更を指示したとして、カーソルアイコンが位置しているキャラクタの部分(領域)をカーソルアイコンの描画色に変更する色変更処理を実行する。この処理が終了した後は、ステップ1718の処理に移行する。
【0109】
ステップ1713では、ユーザが背景の色変更を指示したとして、カーソルアイコンが位置している背景の部分(領域)をカーソルアイコンの描画色に変更する色変更処理を実行する。この処理が終了した後は、ステップ1718の処理に移行する。
【0110】
一方、ステップ1703でモード変更キーKY4が操作されていると判定した場合、次にステップ1714のメインモード変更処理を実行する。このステップ1714のメインモード変更処理は、モード変更キーKY4に対する操作に応じて、アニメーションモードからペイントモードに、或いはペイントモードからアニメーションに、モード設定の切り換えを行う。この処理が終了した後は、ステップ1718の処理に移行する。
【0111】
ステップ1703でその他のキー、即ちスタート/ストップキーKY2、リセットキーKY3、正方向コマ送りキーKY6、逆方向コマ送りキーKY7の何れかが操作されていると判別した場合には、次にステップ1715の処理を実行する。ステップ1715では、現在設定されているメインモードを判定する。その判定は、ワークRAM103に格納されているモード管理用データ(図8参照)から判定する。メインモードとしてアニメーションモードが設定されていた場合、次にステップ1716のアニメーションモード変更処理を実行し、ペイントモードが設定されていた場合には、次にステップ1717のペイントフレーム変更処理を実行する。
【0112】
ステップ1716のアニメーションモード変更処理は、ユーザが操作したキーに応じてその内部の処理が行われる。この処理が終了した後は、ステップ1718の処理に移行する。他方のステップ1717のペイントフレーム変更処理は、各コマ送りキーKY6、KY7に対して行われた操作に応じて、描画色の指定を行う再生位置(ペイントフレーム)の表示画面を表示させる。これが終了した後、ステップ1718の処理に移行する。
【0113】
ステップ1718では、アニメーション再生を進行させるためのアニメーション処理を実行する。この処理が終了すると、上述したステップ1704〜1817を実行した結果として生じたVDP105に転送すべきデータを、垂直ブランク期間(図13参照)を利用して転送する処理を行う。この転送処理が終了した後、ステップ1702の処理に戻り、それ以降の処理を同様に実行する。
【0114】
図18は、図17に示すステップ1701として実行されるイニシャル処理の動作フローチャートである。このイニシャル処理を実行することにより、テレビ108の画面上に初期画面が表示される。
【0115】
先ず、ステップ1801では、VDP105内のOAM部205等の初期化を行う。この初期化が終了すると、次にステップ1802において、アニメーションモードをポーズ中に設定し、続くステップ1803では、アニメーションフレーム番号を0に設定する。これらステップ1802、1803の処理を実行すると、ワークRAM103に格納されているアニメーション管理用データ、即ちアニメーションモード、アニメーションフレーム番号には、ポーズ中であることを示す値、0がそれぞれ設定される。
【0116】
ステップ1803に続くステップ1804では、キャラクタを図4(b)の初期位置データが示す表示位置に配置するアニメーションイニシャル処理を実行する。この処理が終了した後、ステップ1805の処理に移行する。
【0117】
ステップ1805では、メインモードにアニメーションモードを設定する。続くステップ1806では、アイコン面を非表示に設定する。アニメーションモードの設定は、図8のモード管理用データに対して行われ、アイコン面の非表示は、VDP105内の表示制御レジスタに対して行われる。これらが終了すると、ステップ1807の処理に移行する。
【0118】
ステップ1807〜1811では、輪郭線、キャラクタ、及び背景にそれぞれ割り当てられた色コードやパレットデータに、それに対応する描画色(RGBデータ)を初期設定する。具体的には、輪郭線に対しては黒を設定し、その他には全て白を設定する。この設定により、初期画面は、白一色を背景として、その背景に各部分画像が有する輪郭線が黒く描かれたものとなる。
【0119】
ステップ1811に続くステップ1812〜1814では、パレット、及びカーソルアイコンの表示に関わる処理が行われる。これらの処理を行うことにより、パレット(パレットアイコン群)、カーソルアイコンは、予め設定されている描画色で初期表示される。
【0120】
先ず、ステップ1812では、パレット管理用データであるパレット番号(図8参照)に0をセットする。続くステップ1813では、パレット番号が0の各パレットアイコンに割り当てられている選択色(全部で10)をプログラム/データROM102から読み出し(図5参照)、これらをCLT部207の色コード246〜255に対応する選択色(RGBデータ)としてセットする。その後、ステップ1814において、色コード245が割り当てられているカーソルアイコンの描画色を、ステップ1813でセットした色コード246の選択色にセットする。
【0121】
ステップ1814に続くステップ1815では、SRAM106に転送すべき画像(グラフィック)データ、VDP105内のOAM部205、CLT部207に書き込むべきデータを、垂直ブランク期間(図13参照)を待って転送する処理を行う。このステップ1815の処理が終了することで、一連の処理が終了する。
【0122】
ワークRAM103には、表示すべき各部分画像の画像(グラフィック)データの番号、それを表示(配置)させる位置、それを構成する各部分(領域)に割り当てられている色コードの描画色(RGBデータ)等の各種データが制御管理用に格納される。上述したステップ1804〜1814の処理を実行した結果は、ワークRAM103に格納されている上記制御管理用データに反映される。上記ステップ1815の処理は、この制御管理用データに基づいて行われる。
【0123】
次に、図18に示すステップ1804のキャラクタのアニメーションイニシャル処理について、図19に示すその動作フローチャートを参照して詳細に説明する。このキャラクタのアニメーションイニシャル処理は、図4に示すアニメーションデータ、初期位置データ等を基にして、ワークRAM103に格納するキャラクタ管理用データ(図8参照)、VDP105内のOAM部205に格納させるデータの初期設定を行う処理である。
【0124】
先ず、ステップ1901では、OAM部205内のキャラクタに割り当てられている記憶領域に格納するX座標、Y座標を、プログラム/データROM102から読み出したキャラクタの初期位置データ(図4参照)の初期X座標、初期Y座標にセットする。続くステップ1902では、ワークRAM103に格納されるキャラクタ管理用データを構成する移動量カウンタ(図8参照)に、上記初期位置データの待ち時間をセットする。その後、ステップ1903において、上記キャラクタ管理用データを構成する移動量データ番号に0セットする。この0は、上述したように、図4(b)の移動量データにおいてデータ#0で示すデータを指示するものである。移動量データ番号に0をセットした後は、ステップ1904の処理に移行する。
【0125】
ステップ1904では、図4(a)のアニメーションデータのデータ#0から、SRAM106に格納すべきキャラクタの画像(グラフィック)データを特定する。この特定した画像(グラフィック)データは、図18のステップ1815の処理でSRAM106に転送される。
【0126】
続くステップ1905では、キャラクタ管理用データを構成するアニメーションカウンタに、図4(a)のアニメーションのデータ#1、即ち待ち時間をセットする。この待ち時間のセットが終了した後、ステップ1906において、キャラクタ管理用データを構成するアニメーションデータ番号に2をセットする。この2は、上述したように、図4(a)のアニメーションデータにおいてデータ#2で示すデータを指示するものである。アニメーションデータ番号に2をセットした後、一連の処理を終了する。
【0127】
次に、図17の全体処理においてステップ1708、1710、1712、及び1713として実行される各変更処理について、図20〜図23の動作フローチャートを参照して詳細に説明する。これら各変更処理は、ペイントコードが設定されていた場合にのみ実行されるものである。
【0128】
これら各変更処理は、それに対応する部分画像の色コードに割り当てるRGBデータの設定を、ユーザが指定した内容に応じたRGBデータに変更するものである。
【0129】
最初に、上記ステップ1708として実行される描画色変更処理について、図20に示すその動作フローチャートを参照して説明する。この描画色変更処理は、上述したように、カーソルアイコンの描画色(図12(b)に示すように、その色コードは245である)を、ユーザがパレット(パレットアイコン群)のなかから指定した描画色に変更する処理である。
【0130】
先ず、ステップ2001では、ユーザが決定キーKY5を操作したときにカーソルアイコンが表示されていたパレットアイコンの色コードを判定する。図12(a)に示すように、パレット(パレットアイコン群)には246〜255の色コードが割り当てられている。このことから、カーソルアイコンが表示されていたパレットアイコンの色コードが246〜255のなかの何れかであればステップ2002に移行し、そうでなければ一連の処理を終了する。
【0131】
ステップ2002では、ワークRAM103に格納されているパレット番号(図8参照)、ステップ2001で判定した色コードを基に、例えばプログラム/データROM102から該当するRGBデータ(図5参照)を読み取り、このRGBデータを、VDP105内のCLT部207の色コード245のRGBデータとしてセットする。このRGBデータのセットは、ワークRAM103に制御管理用に格納されている色コード毎のRGBデータに対して行われる。それが終了した後、一連の処理を終了する。
【0132】
図21は、図17のステップ1710として実行されるパレット変更処理の動作フローチャートである。次に、この図21を参照して、パレット変更処理について詳細に説明する。
【0133】
このパレット変更処理は、上述したように、カーソルアイコンがパレット変更アイコン上に表示されている状態でユーザが決定キーKY5を操作した場合に実行される。
【0134】
先ず、ステップ2101では、ワークRAM103に格納させているパレット番号を更新する。この更新は、例えばそれまでの値をインクリメントし、このインクリメントによりその値がパレット番号の最大値(図5におけるm)よりも大きくなった場合には0をその値とすることで行われる。
【0135】
ステップ2101に続くステップ2102では、ステップ2101で更新したパレット番号に割り当てられている10個のRGBデータ(図5参照)を、VDP105内のCLT部207の色コード246〜255のRGBデータとしてセットする。このRGBデータのセットは、ワークRAM103に制御管理用に格納されている色コード毎のRGBデータに対して行われる。これが終了した後、一連の処理を終了する。
【0136】
図22は、図17のステップ1712として実行されるキャラクタの色変更処理の動作フローチャートである。次に、この図22を参照して、キャラクタの色変更処理について詳細に説明する。
【0137】
このキャラクタの色変更処理は、上述したように、カーソルアイコンがキャラクタ上に表示されている状態でユーザが決定キーKY5を操作した場合に実行される。
【0138】
先ず、ステップ2201では、ユーザが決定キーKY5を操作したときにカーソルアイコンが表示されていたキャラクタ上の色コードは1(輪郭線)か否か判定する。その色コードが1であれば一連の処理を終了し、そうでなければステップ2202の処理に移行する。
【0139】
本実施の形態では、描画色を指定できる再生位置(ペイントフレーム)を、アニメーションフレーム番号が0と599の2つに限定している(図16参照)。そのペイントフレームは、コマ送りキーKY6、KY7を操作することで選択されるものである。このため、ステップ2202では、アニメーション管理用データとしてワークRAM103に格納されているアニメーションフレーム番号を判定し、それに続くステップ2203、2204では、ステップ2202で判定したアニメーションフレーム番号に応じて、ユーザが指定した描画色のRGBデータ、即ちカーソルアイコンに割り当てた色コード245に設定されている描画色のRGBデータを、ワークRAM103にパレットデータとして格納する。これは、図10に示すように、キャラクタは複数の部分(領域)から構成されていることから、現在カーソルアイコンが表示されているキャラクタ上の部分(領域)に応じて行われる。それらの処理はその実行が終了すると、ステップ2205の処理に移行する。
【0140】
ステップ2205では、ステップ2203、或いは2204でパレットデータとして設定したRGBデータを、ワークRAM103に制御管理用に格納されている色コード毎のRGBデータに対して反映させる。この制御用管理用に格納されている色コード毎のRGBデータは、VDP105のCLT部207に格納、或いは格納させるものである。このステップ2205の処理が終了すると、一連の処理を終了する。
【0141】
図23は、図17のステップ1713として実行される背景の色変更処理の動作フローチャートである。次に、この図23を参照して、背景の色変更処理について詳細に説明する。
【0142】
この背景の色変更処理は、上述したように、カーソルアイコンが背景上に表示されている状態でユーザが決定キーKY5を操作した場合に実行される。
先ず、ステップ2301では、ユーザが決定キーKY5を操作したときにカーソルアイコンが表示されていた背景上の色コードは1(輪郭線)か否か判定する。その色コードが1であれば一連の処理を終了し、そうでなければステップ2302の処理に移行する。
【0143】
本実施の形態では、描画色を指定できる再生位置(ペイントフレーム)を、アニメーションフレーム番号が0と599の2つに限定している(図16参照)。そのペイントフレームは、コマ送りキーKY6、KY7を操作することで選択されるものである。このため、ステップ2302では、アニメーション管理用データとしてワークRAM103に格納されているアニメーションフレーム番号を判定し、それに続くステップ2303、2304では、ステップ2202で判定したアニメーションフレーム番号に応じて、ユーザが指定した描画色のRGBデータ、即ちカーソルアイコンに割り当てた色コード245に設定されている描画色のRGBデータを、ワークRAM103にパレットデータとして格納する。これは、図11に示すように、背景は複数の部分(領域)から構成されていることから、現在カーソルアイコンが表示されている背景上の部分(領域)に応じて行われる。それらの処理はその実行が終了すると、ステップ2305の処理に移行する。
【0144】
ステップ2305では、ステップ2303、或いは2304でパレットデータとして設定したRGBデータを、ワークRAM103に制御管理用に格納されている色コード毎のRGBデータに対して反映させる。この制御用管理用に格納されている色コード毎のRGBデータは、VDP105のCLT部207に格納、或いは格納させるものである。このステップ2305の処理が終了すると、一連の処理を終了する。
【0145】
図24は、図17のステップ1714として実行されるメインモード変更処理の動作フローチャートである。次に、この図24を参照して、メインモード変更処理について詳細に説明する。
【0146】
このメインモード変更処理は、上述したように、ユーザがモード変更キーKY4を操作した場合に実行される。
先ず、ステップ2401では、ワークRAM103に格納されているアニメーション管理用データのアニメーションモードをポーズ中に設定する。続くステップ2402では、アニメーション管理用データのアニメーションフレーム番号を0に設定する。これにより、モード変更キーKY4を操作した場合には、メインモードとして設定されているモードに関わらず、アニメーション再生における初期画面が表示されることになる。
【0147】
ステップ2402に続くステップ2403では、現在メインモードとして設定されているモードを判定する。これは、ワークRAM103に格納されているモード管理用データから判定する。現在、メインモードとしてアニメーションモードが設定されていると判定した場合、ステップ2404の処理に移行し、そうでない場合には、ステップ2406の処理に移行する。
【0148】
ステップ2404では、メインモードにペイントモードを設定する。続くステップ2405では、アイコン面を表示に設定する。その後、ステップ2408の処理に移行する。他方、ステップ2406では、メインモードにアニメーションモードを設定し、続くステップ2407では、アイコン面を非表示に設定する。その後、ステップ2408の処理に移行する。
【0149】
ステップ2408では、モードの切り換えに伴い、初期画面を表示させるためにキャラクタのアニメーションイニシャル処理を実行する。これは、図19に示す処理と同じものである。続くステップ1409では、ワークRAM103に格納されている、アニメーションフレーム番号が0のキャラクタのパレットデータを、キャラクタの描画色のRGBデータとして設定する。これに続いて行われるステップ2410では、上記ステップ2409と同様に、ワークRAM103に格納されている、アニメーションフレーム番号が0の背景のパレットデータを、背景の描画色のRGBデータとして設定する。その設定が終了した後、一連の処理を終了する。
【0150】
なお、上記部分画像の描画色のRGBデータの設定は、ワークRAM103に制御用管理用に格納されている色コード毎のRGBデータに対して行われるものである。
【0151】
図25は、図17のステップ1716として実行されるアニメーションモード変更処理について、図25に示すその動作フローチャートを参照して詳細に説明する。このアニメーションモード変更処理は、上述したように、メインモードとしてアニメーションモードが設定されていた場合に、ユーザがスタート/ストップキーKY12、リセットキーKY3、正方向コマ送りキーKY6、或いは逆方向コマ送りキーKY7を操作することで実行される。
【0152】
先ず、ステップ2501では、ユーザが操作したキーの種類を判別する。これ以降に行われるステップ2502〜2520の処理は、ユーザが操作したキーの種類に応じて行われる。
【0153】
ステップ2501において、ユーザが操作したキーはスタート/ストップキーKY2と判別した場合、ステップ2502の処理に移行する。
ステップ2502では、ワークRAM103に格納されるアニメーション管理用データを構成するアニメーションモードから、現在のアニメーションモードにおけるモード、即ちアニメーション再生を行っているか否か判定する。
【0154】
ステップ2502で現在アニメーション再生を行っていると判定した場合、次にステップ2503において上記アニメーションモードをポーズ中に設定した後、一連の処理を終了する。ステップ2502で現在アニメーション再生がポーズ中であると判定した場合には、次にステップ2504において上記アニメーションモードを再生中に設定した後、一連の処理を終了する。
【0155】
ステップ2501において、ユーザが操作したキーは正方向コマ送りキーKY6と判別した場合、ステップ2505の処理に移行する。
ステップ2505では、ワークRAM103に格納されるアニメーション管理用データを構成するアニメーションモードから、現在のアニメーションモードにおけるモード、即ちアニメーション再生を行っているか否か判定する。
【0156】
ステップ2505で現在アニメーション再生を行っていると判定した場合、ここで一連の処理を終了する。ステップ2505で現在アニメーション再生がポーズ中であると判定した場合には、ステップ2506の処理に移行する。
【0157】
ステップ2506では、ワークRAM103に格納されるアニメーション管理用データを構成するアニメーションフレーム番号をコマ送り量だけ進める(加算する)。
【0158】
上記コマ送り量は、正方向コマ送りキーKY6に対する一度の操作で進めるアニメーションのフレーム数(1フレーム期間は1/60秒)であり、そのフレーム数は、配置(表示)されるキャラクタが切り替わる(コマ送りされる)ような値とする必要がある。このため、コマ送り量は、例えばキャラクタ管理用データのアニメーションカウンタの値から決定する。なお、図15に示すようにキャラクタのアニメーションデータが設定されていた場合には、キャラクタの待ち時間は6なので、コマ送り量は6(アニメーションフレーム数)とすることにより、コマ送りを確実に実現させることができる。
【0159】
ステップ2505に続くステップ2506では、アニメーション管理用データのアニメーションフレーム番号が599(図15参照)以上か否か判定する。アニメーション再生を最後まで行った場合、その判定はYESとなって一連の処理を終了する。そうでない場合には、その判定はNOとなってステップ2507の処理に移行する。
ステップ2507では、ステップ2506の処理で決定されたコマ送り量に従い、キャラクタを正方向にコマ送りするコマ送り処理を実行する。これが終了すると、次にステップ2508において、そのコマ送りに応じて、キャラクタに設定すべき描画色のRGBデータを求める色補間処理を実行する。続くステップ2510では、ステップ2509と同様に、背景に設定すべき描画色のRGBデータを求める色補間処理を実行する。この色補間処理が終了した後、一連の処理を終了する。
【0160】
ステップ2501において、ユーザが操作したキーは逆方向コマ送りキーKY7と判別した場合、ステップ2511の処理に移行する。
ステップ2511では、ワークRAM103に格納されるアニメーション管理用データを構成するアニメーションモードから、現在のアニメーションモードにおけるモード、即ちアニメーション再生を行っているか否か判定する。
【0161】
ステップ2511で現在アニメーション再生を行っていると判定した場合、ここで一連の処理を終了する。ステップ2511で現在アニメーション再生がポーズ中であると判定した場合には、ステップ2512の処理に移行する。
【0162】
ステップ2512では、ワークRAM103に格納されるアニメーション管理用データを構成するアニメーションフレーム番号をコマ送り量だけ戻す(減算する)。
【0163】
上記コマ送り量は、逆方向コマ送りキーKY7に対する一度の操作で戻すアニメーションのフレーム数(1フレーム期間は1/60秒)であり、そのフレーム数は、上述した正方向のコマ送り量と同様に、配置(表示)されるキャラクタが切り替わるような値とする必要がある。このため、コマ送り量は、例えばキャラクタ管理用データのアニメーションカウンタの値から決定する。なお、図15に示すようにキャラクタのアニメーションデータが設定されていた場合には、キャラクタの待ち時間は6なので、コマ送り量を6(アニメーションフレーム数)とすることにより、逆方向のコマ送りを確実に実現させることができる。
【0164】
ステップ2512に続くステップ2513では、ステップ2512において逆方向のコマ送り量だけ戻したアニメーションフレーム番号が0以下か否か判定する。システムの電源をオンすると、図17のステップ1701で図18のイニシャル処理が実行され、アニメーションフレーム番号には0がセットされる。アニメーションフレーム番号が0のときが、アニメーション再生される表示画面が初期画面となる。アニメーションフレーム番号が0以下であれば、その判定はYESとなってステップ2517の処理に移行し、その番号が0よりも大きければ、その判定はNOとなってステップ2514の処理に移行する。後述するように、ステップ2517以降の処理は、初期画面を表示させるための処理である。
【0165】
ステップ2514では、ステップ2512の処理で決定されたコマ送り量に従い、キャラクタを逆方向にコマ送りするコマ送り処理を実行する。これが終了すると、次にステップ2515において、そのコマ送りに応じて、キャラクタに設定すべき描画色のRGBデータを求める色補間処理を実行する。続くステップ2516では、ステップ2515と同様に、背景に設定すべき描画色のRGBデータを求める色補間処理を実行する。この色補間処理が終了した後、一連の処理を終了する。
【0166】
ステップ2501において、ユーザが操作したキーはリセットキーKY3と判別した場合、ステップ2517の処理に移行する。ステップ2517〜2520では、上述したように、初期画面を表示させるための一連の処理が行われる。
【0167】
先ず、ステップ2517では、上記アニメーションフレーム番号を0にセットする。続くステップ2518では、上述した内容のキャラクタのアニメーションイニシャル処理を実行する。その後、ステップ2519の処理に移行する。
【0168】
ステップ2519では、ワークRAM103に格納されている、アニメーションフレーム番号が0のキャラクタのパレットデータを、キャラクタの描画色のRGBデータとして設定する。続くステップ2520では、ワークRAM103に格納されている、アニメーションフレーム番号が0の背景のパレットデータを、背景の描画色のRGBデータとして設定する。これらの設定は、ワークRAM103に格納されている色コード毎のRGBデータに対して行われ、それらの設定が終了した後、一連の処理を終了する。
アニメーションフレーム番号を判定し、それに続くステップ2203、2204では、ステップ2202で判定したアニメーションフレーム番号に応じて、ユーザが指定した描画色のRGBデータ、即ちカーソルアイコンに割り当てた色コード245に設定されている描画色のRGBデータを、ワークRAM103にパレットデータとして格納する。これは、図10に示すように、キャラクタは複数の部分(領域)から構成されていることから、現在カーソルアイコンが表示されているキャラクタ上の部分(領域)に応じて行われる。それらの処理はその実行が終了すると、ステップ2205の処理に移行する。
【0169】
次に、上述した図25のアニメーションモード変更処理内で実行されるステップ2508〜2510、及び2514の各サブルーチン処理について、図26〜図29の動作フローチャートを参照して詳細に説明する。なお、ステップ2515の処理とステップ2515の処理は、その内容が同じであり、また、ステップ2510の処理とステップ2516の処理も、その内容は同じである。
【0170】
先ず、図26の動作フローチャートを参照して、キャラクタの正方向コマ送り処理について詳細に説明する。上述したように、この正方向コマ送り処理は、図25のステップ2507で決定されたコマ送り量に従い、キャラクタを正方向にコマ送りする処理である。その全体の処理の流れは、ワークRAM103に格納されるキャラクタ管理用データを構成する移動量カウンタ、及びアニメーションカウンタ(図8参照)のデクリメントをコマ送り量分繰り返し、その1回のデクリメントを行う度に、デクリメントした後の各カウンタの値に応じて、キャラクタの移動量、SRAM106に格納させるその画像(グラフィック)データを特定していくものである。
【0171】
先ず、ステップ2601では、上記移動量カウンタをデクリメントする。続くステップ2602では、そのデクリメント後の移動量カウンタの値が0か否か判定する。移動量カウンタの値が0よりも大きい場合、その判定はNOとなってステップ2608の処理に移行する。そうでない場合には、その判定はYESとなってステップ2603の処理に移行する。
【0172】
移動量カウンタの値が0になると、上述したようにキャラクタの移動が行われる。ステップ2603では、ワークRAM103に格納されるキャラクタ管理用データを構成する移動量データ番号をみて、その番号によって指示される移動量データ(図4(b)参照)中のデータであるX、Y方向移動量を、ワークRAM103に格納させている現在のキャラクタのX、Y座標にそれぞれ加える。このX、Y座標は、OAM部205に格納されている、或いは格納すべきキャラクタの表示位置を示すデータである。
【0173】
ステップ2603に続くステップ2604では、上記移動量データを構成する待ち時間を、キャラクタ管理用データを構成する移動量カウンタにセットする。この移動量カウンタへのセットが終了すると、次にステップ2605において、移動量データ番号を先に進め(本実施の形態では3を加算)、その値を更新する。その後、ステップ2606の処理に移行する。
【0174】
ステップ2606では、更新した移動量データ番号が指示するデータが、「最初に戻る」コマンド(図4(b)参照)か否か判定する。そのデータが「最初に戻る」コマンドであった場合、その判定はYESとなってステップ2607の処理に移行する。そうでない場合、その判定はNOとなってステップ2608の処理に移行する。ステップ2607では、そのコマンドに従い、移動量データ番号を先頭のデータ番号、即ち0にセットする。その後、ステップ2608の処理に移行する。
【0175】
上述したステップ2601〜2607は、キャラクタの表示位置を決定するための処理である。これに続くステップ2608〜2614では、表示させるキャラクタを決定するための処理が行われる。
【0176】
先ず、ステップ2608では、上記アニメーションカウンタをデクリメントする。続くステップ2609では、そのデクリメント後のアニメーションカウンタの値が0か否か判定する。アニメーションカウンタの値が0よりも大きい場合、その判定はNOとなってステップ2615の処理に移行する。そうでない場合には、その判定はYESとなってステップ2610の処理に移行する。
【0177】
アニメーションカウンタの値が0になると、上述したように表示させるキャラクタの切り換えが行われる。ステップ2610では、ワークRAM103に格納されるキャラクタ管理用データを構成するアニメーションデータ番号をみて、その番号が指示する図4(a)のアニメーションデータ中のデータからSRAM106に新たに書き込むべき画像(グラフィック)データを特定する。
【0178】
ステップ2610に続くステップ2611では、上記画像(グラフィック)データに対応するアニメーションデータ中の待ち時間をアニメーションカウンタにセットする。このアニメーションカウンタへの待ち時間のセットが終了すると、次にステップ2612において、アニメーションデータ番号を先に進め(本実施の形態では2を加算)、その更新を行う。その後、ステップ2613の処理に移行する。
【0179】
ステップ2613では、更新したアニメーションデータ番号が指示するデータが、「最初に戻る」コマンド(図4(a)参照)か否か判定する。そのデータが「最初に戻る」コマンドであった場合、その判定はYESとなってステップ2614の処理に移行する。そうでない場合、その判定はNOとなってステップ2615の処理に移行する。ステップ2614では、そのコマンドに従い、アニメーションデータ番号を先頭のデータ番号、即ち0にセットする。その後、ステップ2615の処理に移行する。
【0180】
ステップ2615では、コマ送り量分各カウンタをデクリメントしたか否か判定する。コマ送り量分のデクリメントを各カウンタに対して行っていない場合、その判定はNOとなってステップ2601の処理に戻る。そうでない場合、その判定はYESとなり、一連の処理を終了する。
【0181】
図27は、図25のステップ2509として実行されるキャラクタの色補間処理の動作フローチャートである。次に、この図27を参照して、キャラクタの色補間処理について詳細に説明する。
【0182】
この色補間処理は、アニメーション管理用データのアニメーションフレーム番号で示される現在のアニメーション再生位置に応じて、キャラクタの描画色を設定するものである。キャラクタの描画色は、上述したように、ワークRAM103に格納されているパレットデータ(図9参照)、即ちアニメーションフレーム番号が0と599のときのユーザが指定した描画色のRGBデータを用いて、上記数1により求められる。キャラクタは、髪、肌、服等の複数の部分(領域)からなり、各部分(領域)にはそれぞれ色コードが割り当てられている。このため、この色補間処理では、各色コード毎に、描画色のRGBデータを求める。
【0183】
先ず、ステップ2701では、ワークRAM103に格納されている、アニメーションフレーム番号が0のパレットデータから、所定の順序で1つの色コードのRGBデータを抽出し、それをRGBの各成分に分ける。続くステップ2702では、アニメーションフレーム番号が599のパレットデータから、ステップ2701で抽出したRGBデータに対応するRGBデータを抽出し、それをRGBの各成分に分ける。その後、ステップ2703の処理に移行する。
【0184】
ステップ2703では、上記ステップ2701、2702で得たアニメーションフレーム番号が0と599のときのRGB各成分、及びアニメーションフレーム番号を上記数1に代入して、設定すべきRGBデータを算出する。続くステップ2704では、この算出したRGBデータを、それが対応する色コードの描画色として設定する。この設定は、ワークRAM103に色コード別に格納されているRGBデータに対して行われる。
【0185】
ステップ2704に続くステップ2705では、キャラクタの色コードの描画色を全て補間作成したか否か判定する。キャラクタを構成する各部分(領域)の描画色を全て新たに設定した場合、その判定はYESとなって一連の処理を終了する。そうでない場合には、ステップ2701に戻り、所定の順序に従って、ワークRAM103から次の色コードのパレットデータ(RGBデータ)を抽出する。
【0186】
図28は、図25のステップ2510として実行される背景の色補間処理の動作フローチャートである。次に、この図28を参照して、背景の色補間処理について詳細に説明する。
【0187】
この背景の色補間処理は、キャラクタの色補間処理と同様に、アニメーション管理用データのアニメーションフレーム番号で示される現在のアニメーション再生位置に応じて、背景の描画色を設定するものである。背景の描画色は、上述したように、ワークRAM103に格納されているパレットデータ(図9参照)、即ちアニメーションフレーム番号が0と599のときのユーザが指定した描画色のRGBデータを用いて、上記数1により求められる。背景もキャラクタと同様に、屋根、煙、山等の複数の部分(領域)からなり、各部分(領域)にはそれぞれ色コードが割り当てられている。このため、背景の描画色は、各色コード毎に、そのRGBデータを求めることで行われる。
【0188】
先ず、ステップ2801では、ワークRAM103に格納されている、アニメーションフレーム番号が0のパレットデータから、所定の順序で1つの色コードのRGBデータを抽出し、それをRGBの各成分に分ける。続くステップ2802では、アニメーションフレーム番号が599のパレットデータから、ステップ2801で抽出したRGBデータに対応するRGBデータを抽出し、それをRGBの各成分に分ける。その後、ステップ2803の処理に移行する。
【0189】
ステップ2803では、上記ステップ2801、2802で得たアニメーションフレーム番号が0と599のときのRGB各成分、及びアニメーションフレーム番号を上記数1に代入して、設定すべきRGBデータを算出する。続くステップ2804では、この算出したRGBデータを、それが対応する色コードの描画色として設定する。この設定は、ワークRAM103に色コード別に格納されているRGBデータに対して行われる。
【0190】
ステップ2804に続くステップ2805では、背景の色コードの描画色を全て補間作成したか否か判定する。キャラクタを構成する各部分(領域)の描画色を全て新たに設定した場合、その判定はYESとなって一連の処理を終了する。そうでない場合には、ステップ2801に戻り、所定の順序に従って、ワークRAM103から次の色コードのパレットデータ(RGBデータ)を抽出し、それ以降の処理を同様に実行する。
【0191】
図29は、図25のステップ2514として実行されるキャラクタの逆方向コマ送り処理の動作フローチャートである。次に、この図29を参照して、キャラクタの逆方向コマ送り処理について詳細に説明する。
【0192】
上述したように、この逆方向コマ送り処理は、図25のステップ2512で決定されたコマ送り量に従い、キャラクタを逆方向にコマ送りする処理である。その全体の処理の流れは、ワークRAM103に格納されるキャラクタ管理用データを構成する移動量カウンタ、及びアニメーションカウンタ(図8参照)のインクリメントをコマ送り量分繰り返し、その1回のインクリメントを行う度に、インクリメント後の各カウンタの値に応じて、キャラクタの移動量、SRAM106に格納させるその画像(グラフィック)データを特定していくものである。
【0193】
先ず、ステップ2901では、上記移動量カウンタをインクリメントする。続くステップ2902では、そのインクリメント後の移動量カウンタの値が、それに前回設定した待ち時間を超えたか否か判定する。その待ち時間よりも移動量カウンタの値が大きい場合、その判定はYESとなってステップ2903の処理に移行する。そうでない場合には、その判定はNOとなってステップ2908の処理に移行する。
【0194】
設定した待ち時間よりも移動量カウンタの値が大きくなることは、キャラクタを逆方向に移動させる必要が生じたことを意味する。ステップ2903では、ワークRAM103に格納されるキャラクタ管理用データを構成する移動量データ番号を戻し(3を減算)、そのデータ番号を更新する。その後、ステップ2904の処理に移行する。
【0195】
ステップ2904では、更新後の移動量データ番号が0よりも小さいか否か判定する。そのデータ番号が0よりも小さい場合、その判定はYESとなってステップ2905の処理に移行する。そうでない場合には、その判定はNOとなってステップ2906の処理に移行する。ステップ2905では、移動量データ番号に、「最初に戻る」コマンドの3つ前のデータ番号の値、即ち0をセットする。その後、ステップ2906の処理に移行する。
【0196】
ステップ2906では、移動量データ番号により指示される移動量データ(図4(b)参照)中のデータであるX、Y方向移動量を、ワークRAM103に格納させている現在のキャラクタのX、Y座標からそれぞれ減算する。このX、Y座標は、上述したように、OAM部205に格納されている、或いは格納すべきキャラクタの表示位置を示すデータである。
【0197】
ステップ2906に続くステップ2907では、次にキャラクタを逆方向に移動させる移動量をそのX、Y座標から減算するタイミングをとるために、移動量カウンタに1をセットする。その後、ステップ2908の処理に移行する。
【0198】
上述したステップ2901〜2907は、キャラクタの表示位置を決定するための処理である。これに続くステップ2908〜2914では、表示させるキャラクタを決定するための処理が行われる。
【0199】
先ず、ステップ2908では、上記アニメーションカウンタをインクリメントする。続くステップ2909では、そのインクリメント後のアニメーションカウンタの値が前回それに設定した待ち時間を超えたか否か判定する。その待ち時間よりもアニメーションカウンタの値が大きい場合、その判定はYESとなってステップ2910の処理に移行する。そうでない場合には、その判定はNOとなってステップ2915の処理に移行する。
【0200】
設定した待ち時間よりもアニメーションカウンタの値が大きくなることは、キャラクタを切り換える必要が生じたことを意味する。ステップ2910では、ワークRAM103に格納されるキャラクタ管理用データを構成するアニメーションデータ番号を戻し(2を減算)、そのデータ番号を更新する。その後、ステップ2911の処理に移行する。
【0201】
ステップ2911では、更新後のアニメーションデータ番号が0よりも小さいか否か判定する。そのデータ番号が0よりも小さい場合、その判定はYESとなってステップ2912の処理に移行する。そうでない場合には、その判定はNOとなってステップ2913の処理に移行する。ステップ2912では、アニメーションデータ番号に、「最初に戻る」コマンドの2つ前のデータ番号の値、即ち14をセットする(図4(a)参照)。これにより、キャラクタをアニメーション再生とは逆の順序にサイクリックに切り換えることができる。その後、ステップ2913の処理に移行する。
【0202】
ステップ2913では、ステップ2910、或いはステップ2912で設定されたアニメーションデータ番号をみて、キャラクタとして表示すべき画像(グラフィック)データを特定する。続くステップ2914では、次にキャラクタを切り換えるタイミングをとるために、アニメーションカウンタに1をセットする。その後、ステップ2915の処理に移行する。
【0203】
ステップ2915では、コマ送り量分各カウンタをインクリメントしたか否か判定する。コマ送り量分のインクリメントを各カウンタに対して行っていない場合、その判定はNOとなってステップ2901の処理に戻る。そうでない場合、その判定はYESとなり、一連の処理を終了する。
【0204】
図30は、図17のステップ1717として実行されるペイントフレーム変更処理の動作フローチャートである。次に、この図30を参照して、ペイントフレーム変更処理について詳細に説明する。
【0205】
本実施の形態では、上述したように、部分画像の描画色を設定する再生位置を固定、即ちペイントフレームを最初と最後の画面のみとしている。このペイントフレーム変更処理は、そのペイントフレームを変更するものであり、上述したように、ユーザがペイントモードを設定している場合に実行される。
【0206】
先ず、ステップ3001では、ユーザが操作したキーの種類を判別する。それ以降は、その判別結果に従って行われる。ユーザが正方向コマ送りキーKY6を操作した場合、ステップ3002に移行し、逆方向コマ送りキーKY7を操作した場合には、ステップ3003の処理に移行する。その他のキーをユーザが操作した場合には、ここで一連の処理を終了する。
【0207】
ステップ3002では、ユーザが正方向コマ送りキーKY6を操作したとして、アニメーション管理用データのアニメーションフレーム番号を599、即ち最後の画面を設定する。その後、ステップ3004の処理に移行する。他方、ステップ3003では、ユーザが逆方向コマ送りキーKY7を操作したとして、アニメーションフレーム番号を0、即ち最初の画面を設定する。その後、ステップ3004の処理に移行する。
【0208】
ステップ3004、3005では、上記ステップ3002、或いは3003の処理の実行後のアニメーションフレーム番号に応じて、ワークRAM103から部分画像、即ちキャラクタ、背景のパレットデータを読み出して(図9参照)、各部分画像の描画色に設定する。これは、CPU101が、各部分画像に設定した描画色のRGBデータを、ワークRAM103に制御管理用として格納することで実現される。この各部分画像の描画色の設定が終了すると、一連の処理を終了する。
【0209】
このように、ユーザは、ペイントモードが設定されている場合、正方向コマ送りキーKY6を操作すると最終画面、逆方向コマ送りキーKY7を操作すると初期画面を表示させることができる。
【0210】
図31は、図17のステップ1718として実行されるアニメーション処理の動作フローチャートである。次に、図31を参照して、アニメーション処理について詳細に説明する。このアニメーション処理は、アニメーションモードが再生中であった場合に、時間の経過に合わせて、図4に示すキャラクタのアニメーションデータ、移動量データに従ってキャラクタを配置し、また、ワークRAM103に格納されているパレットデータを基に各部分画像の描画色を設定することにより、アニメーション再生を進行させる処理である。このアニメーション処理は、1アニメーションフレーム毎、即ち1/60秒毎に行われる。
【0211】
先ず、ステップ3101では、現在のアニメーションモードの判定を行う。この判定は、ワークRAM103に格納されているアニメーション管理用データを構成するアニメーションモード(図8参照)を読み出すことで行われる。そのアニメーションモードが再生中であった場合、ステップ3102の処理に移行し、それがポーズ中であった場合には、ここで一連の処理を終了する。
【0212】
ステップ3102では、アニメーション管理用データのアニメーションフレーム番号を読み出し、その番号が599以上か否か判定する。図16に示すように、本実施の形態では、アニメーション再生期間を10秒間としている。これは、アニメーションフレーム番号が0〜599になるまでの期間である。アニメーション再生を開始してから10秒以上経過した場合、その判定はYESとなって一連の処理を終了する。そうでない場合には、その判定はNOとなってステップ3103の処理に移行する。
【0213】
ステップ3103〜3119は、経過した時間に応じた画面を表示させるための処理が行われる。そのなかのステップ3103〜3116は、キャラクタの配置に関する処理が行われる。
【0214】
上述したように、アニメーション処理は1アニメーションフレーム毎に行われ、また、キャラクタのアニメーションデータ、移動量データ等の中の待ち時間はアニメーションフレーム期間を基準とした値であるので、ワークRAM103に格納されているキャラクタ管理用データを構成する移動量カウンタ、アニメーションカウンタをデクリメントし、各カウンタのそのデクリメント後の値に応じて処理が行われる。
【0215】
先ず、ステップ3103では、上記移動量カウンタをデクリメントする。続くステップ3104では、そのデクリメント後の移動量カウンタの値が0か否か判定する。移動量カウンタの値が0よりも大きい場合、その判定はNOとなってステップ3110の処理に移行する。そうでない場合には、その判定はYESとなってステップ3105の処理に移行する。
【0216】
移動量カウンタの値が0になったことは、キャラクタを移動させる必要が生じたことを意味する。ステップ3105では、ワークRAM103に格納されている移動量データ番号をみて、その番号によって指示される移動量データ(図4(b)参照)中のデータであるX、Y方向移動量を、ワークRAM103に格納させている現在のキャラクタのX、Y座標にそれぞれ加える。このX、Y座標は、OAM部205に格納されている、或いは格納すべきキャラクタの表示位置を示すデータである。
【0217】
ステップ3105に続くステップ3106では、上記移動量データを構成する待ち時間を、キャラクタ管理用データを構成する移動量カウンタにセットする。この移動量カウンタへの待ち時間のセットが終了すると、次にステップ3107において、移動量データ番号を先に進め(本実施の形態では3を加算)、その値を更新する。その後、ステップ3108の処理に移行する。
【0218】
ステップ3108では、更新した移動量データ番号が指示するデータが、「最初に戻る」コマンド(図4(b)参照)か否か判定する。そのデータが「最初に戻る」コマンドであった場合、その判定はYESとなってステップ3109の処理に移行する。そうでない場合、その判定はNOとなってステップ3110の処理に移行する。ステップ3109では、そのコマンドに従い、移動量データ番号を先頭のデータ番号、即ち0にセットする。その後、ステップ3110の処理に移行する。
【0219】
上述したステップ3103〜3109は、キャラクタの表示位置を決定するための処理である。これに続くステップ3110〜3116では、表示させるキャラクタを決定するための処理が行われる。
【0220】
先ず、ステップ3110では、上記アニメーションカウンタをデクリメントする。続くステップ3111では、そのデクリメント後のアニメーションカウンタの値が0か否か判定する。アニメーションカウンタの値が0よりも大きい場合、その判定はNOとなってステップ3117の処理に移行する。そうでない場合には、その判定はYESとなってステップ3112の処理に移行する。
【0221】
アニメーションカウンタの値が0になったことは、上述したように表示させるキャラクタの表示切り換えを行う必要が生じたことを意味する。ステップ3112では、ワークRAM103に格納されるキャラクタ管理用データを構成するアニメーションデータ番号をみて、その番号が指示する図4(a)のアニメーションデータ中のデータからSRAM106に新たに書き込むべき画像(グラフィック)データを特定する。
【0222】
ステップ3112に続くステップ3113では、上記画像(グラフィック)データに対応するアニメーションデータ中の待ち時間をアニメーションカウンタにセットする。このアニメーションカウンタへの待ち時間のセットが終了すると、次にステップ3114において、アニメーションデータ番号を先に進め(本実施の形態では2を加算)、その更新を行う。その後、ステップ3115の処理に移行する。
【0223】
ステップ3115では、更新したアニメーションデータ番号が指示するデータが、「最初に戻る」コマンド(図4(a)参照)か否か判定する。そのデータが「最初に戻る」コマンドであった場合、その判定はYESとなってステップ3116の処理に移行する。そうでない場合、その判定はNOとなってステップ3117の処理に移行する。ステップ3116では、そのコマンドに従い、アニメーションデータ番号を先頭のデータ番号、即ち0にセットする。その後、ステップ3117の処理に移行する。
【0224】
ステップ3117〜3118では、キャラクタ、背景の各部分画像の描画色を設定する処理が行われる。具体的には、ステップ3117でキャラクタの色補間処理を実行し、ステップ3118で背景の色補間処理を実行する。これらの色補間処理は、図27、或いは図28に示すものである。
【0225】
ステップ3118の背景の色補間処理が終了すると、ステップ3119の処理に移行する。ステップ3119では、アニメーション管理用データのアニメーションフレーム番号をインクリメントする。その後、一連の処理を終了する。
・変形例
本実施の形態では、描画色の設定を行える再生位置を固定にしているが、ユーザが任意に指定できるようにしても良い。また、描画色が行える再生位置(ペイントフレーム)数も、本実施の形態のように固定にせず、ユーザが所望するだけ選択できるようにしても良い。部分画像に設定する描画色においては、例えば3点(ペイントフレーム)で描画色を設定した場合、最初のペイントフレームと次のペイントフレーム(中間ペイントフレーム)まではそれらのペイントフレームで設定された描画色のRGBデータを用いて補間演算を行い、中間ペイントフレームから最後のペイントフレームまでは、中間ペイントフレームで設定された描画色のRGBデータに固定させるようにしても良い。
【0226】
また、例えば描画色を指定したペイントフレームが一つだけであれば、そのペイントフレームを、描画色を変更させる期間の開始点、或いは終了点とし、時間の経過に合わせて、例えばペイントフレームで設定された描画色を時間が経過するに従って暗くするように、所定の方法でその期間内の描画色を変更させるようにしても良い。また、例えば、アニメーション再生の開始付近、再生終了付近では描画色の変化を緩やかにし、中央付近ではその変化を急激にさせるように、アニメーション再生期間におけるペイントフレームの位置のみに応じて、描画色の変化を制御するようにしても良い。
【0227】
また、本実施の形態では、描画色を変更していく方法は1つだけであるが、その方法を幾つか用意し、ユーザがそのなかから選択できるようにしてもよく、更には、ユーザがそれを任意に設定できるようにしても良い。
【0228】
本実施の形態では、背景、キャラクタとも同じペイントフレームで描画色を指定するようにしているが、部分画像の種類別に異なるペイントフレームで描画色の指定を行えるようにしても良い。また、部分画像の描画色を変更させる方法も同じとしているが、部分画像毎にその方法を換えられるようにしても良い。
【0229】
何れにしても、少ないデータ量で様々な描画色を作成することができるので、ユーザは、簡易、且つ短時間の作業を行うだけで、視覚的効果が反映されたアニメーション再生を楽しむことができる。
【0230】
本実施の形態では、キャラクタの動作を表現するために、複数のキャラクタを用意していることから、それら複数のキャラクタに対し、それを構成する各部分(領域)毎に共通の色コードを割り当てている。言い換えれば、部分画像の種類別に共通の色コードの割り当てを行っている。しかし、例えば、木と、その木が映った水面を有する構成の画像の場合には、その木と水面に映った木を同一のグループとして分類し、その一方に対して描画色の変更が行われると、それに応じて他方の描画色の変更を行うようにしても良い。このようにした場合、それらの描画色は必ずしも同一でなくても良い。
【0231】
また、本実施の形態では、キャラクタ自体の動作を表現するために、キャラクタ全体の表示切り換えを行っているが、例えば背景における背景オブジェクトのように、キャラクタの一部分をマスクするオブジェクトを複数用意し、そのオブジェクトの表示切り換えを行うことにより、キャラクタ自体の動作を表現するようにしても良い。このようにした場合には、そのオブジェクトに割り当てる色コードをキャラクタのそれに対応する色コードとすればよく、本発明の適用は容易である。これは、表示画面を複数用意し、その表示画面の表示切り換えを行うことにより、表示画面内の物の動作を表現するような方式を採用した場合であっても同様である。
【0232】
また、本実施例では、入力装置104としてコントロールパッドを採用し、そのコントロールパッド104上に設けられている各種キーをユーザが操作することで、任意の描画色を所望する部分画像に設定するようにしているが、表示画面上に更にアイコン等を表示させ、全ての操作をマウス等のポインティングデバイスのみで行えるようにしても良い。その逆に、コントロールパッド104上に設けたキーで全ての操作を行えるようにしても良い。
【0233】
パレット(パレットアイコン群)については、本実施の形態ではユーザはプログラム/データROM102に予め用意されているものしか利用できないが、各パレットアイコンの描画色(RGBデータ)をユーザが自由に設定できるようにしても良い。各部分画像の動作を決定するアニメーションデータ、移動量データ等においては、例えば、それらを複数用意し、ユーザがそのなかから自由に選択できるようにしても良く、ユーザがそれらのデータを自由に設定できるようにしても良い。このようにすることにより、ユーザに対してより幅広い楽しみ方を提供することができるようになる。
<第2の実施の形態>
・第2の実施の形態の概要
上述した第1の実施の形態は、アニメーション再生の開始点と終了点の2つの点で設定された描画色のRGBデータを用いた直線補間を行うことにより、各再生位置での描画色を求めていたが、これではその描画色の変化が単調になる傾向がある。この第2の実施の形態は、より複雑な描画色の変化が得られるようにしたものである。
【0234】
図32は、ベジェ曲線による色補間例を説明する図であり、これは、第2の実施の形態において描画色(RGBデータのR成分の値)が時間の経過に従って変化していく様子を示したものである。
【0235】
第2の実施の形態では、図32に示すように、描画色を4点で設定できるようにしている。その4点とは、アニメーションフレーム番号で表現すると、その番号が0の点、200の点、400の点、及び599の点である(図中、#N(N=0,200,400,599)で示す)。第2の実施の形態では、ベジェのパラメータ3次多項式を用いてアニメーション再生期間中の描画色を変化させることから、上記の4点を、始点、制御点1、制御点2、及び終点とそれぞれ呼ぶことにする。
【0236】
図32において、R0 は始点で設定された描画色のRGBデータのR成分値であり、以下同様に、R200 は制御点1、R400 は制御点2、R599 は終点で設定された描画色のRGBデータのR成分値である、また、図中のtは、数2において使用される助定数であり、その値は各制御点でのアニメーションフレーム番号の値をアニメーション再生期間の総アニメーションフレーム数で割った値である。従って、例えば制御点1では、t=200/600=1/3となる。第2の実施の形態において使用するベジェの3次多項式を数2に示す。
【0237】
【数2】
【0238】
周知のように、ベジェの3次多項式を用いることで、所望の曲線を表現することができる。このため、描画色においても、ユーザはその変化を容易に制御することが可能となる。これにより、描画色が滑らかに、且つ複雑に変化するアニメーション再生をユーザは楽しむことができる。
【0239】
第2の実施の形態では、第1の実施の形態と比較して、上記の効果が得られるが、その構成、及び各部の動作は第1の実施の形態のそれとほぼ同じである。このため、第1の実施の形態から異なる部分についてのみ説明する。
・CPU101の概略動作
図33は、第2の実施の形態においてワークRAM103上に格納される背景のパレットデータの構成図である。第2の実施の形態では、背景の描画色のみ、数2を用いて変化させる。
【0240】
図33に示すように、ワークRAM103には、ユーザが設定した描画色のRGBデータ(パレットデータ)が、各制御点毎にまとめて格納される。各制御点は、ペイントモードを設定した状態で、コマ送りキーKY6、KY7を操作することで指定することができる。ペイントモードを設定している場合、CPU101は、コマ送りキーKY6、KY7の操作に応じて制御点を変更する。
【0241】
その一方でCPU101は、カーソル移動キーKY1、決定キーKY5に対して行われた操作に応じてカーソルアイコンに設定されている描画色を変更し、決定キーKY4が操作された場合には、カーソルアイコンが表示されていた領域上の部分(領域)、即ち色コードを特定し、カーソルアイコンの描画色のRGBデータを、現在させている制御点のその色データのパレットデータとして、ワークRAM103への書き込みを行う。アニメーション再生では、ワークRAM103に書き込まれた各制御点のパレットデータを用いて、アニメーション再生の進行に合わせた描画色の変更を行う。
・CPU101の詳細動作
図34〜図36に示す各動作フローチャートを参照して、CPU101の動作を詳細に説明する。第2の実施の形態では、第1の実施の形態から、図17のステップ1717のペイントフレーム変更処理、ステップ1713の背景の色変更処理、及び図25のステップ2510、図31のステップ3118等で実行される背景の色補間処理のみが異なっている。このため、これら各サブルーチン処理についてのみ説明する。
【0242】
図34は、図17のステップ1713として実行される背景の色変更処理の動作フローチャートである。この図36を参照して、最初に、第2の実施の形態による背景の色変更処理について詳細に説明する。
【0243】
この背景の色変更処理は、上述したように、カーソルアイコンが背景上に表示されている状態でユーザが決定キーKY5を操作した場合に実行される。
先ず、ステップ3401では、ユーザが決定キーKY5を操作したときにカーソルアイコンが表示されていた背景上の色コードは1(輪郭線)か否か判定する。その色コードが1であれば一連の処理を終了し、そうでなければステップ3402の処理に移行する。
【0244】
本実施の形態では、描画色を指定できる再生位置(制御点)を、アニメーションフレーム番号が0、200、400、及び599の4つに固定している(図32参照)。その制御点は、コマ送りキーKY6、KY7を操作することで選択されるものである。このため、ステップ3402では、アニメーション管理用データとしてワークRAM103に格納されているアニメーションフレーム番号を判定し、それに続くステップ3403〜3406では、ステップ3402で判定したアニメーションフレーム番号に応じて、ユーザが指定した描画色のRGBデータ、即ちカーソルアイコンに割り当てた色コード245に設定されている描画色のRGBデータを、ワークRAM103にパレットデータとして格納する。これは、図11に示すように、背景は複数の部分(領域)から構成されていることから、現在カーソルアイコンが表示されている背景上の部分(領域)に応じて行われる。それらの処理はその実行が終了すると、ステップ3407の処理に移行する。
【0245】
ステップ3407では、ステップ3403〜3406の何れかでパレットデータとして設定したRGBデータを、ワークRAM103に制御管理用に格納されている色コード毎のRGBデータに対して反映させる。この制御用管理用に格納されている色コード毎のRGBデータは、VDP105のCLT部207に格納、或いは格納させるものである。このステップ3407の処理が終了した後、一連の処理を終了する。
【0246】
図35は、図25のステップ2510、図31のステップ3118等として実行される背景の色補間処理の動作フローチャートである。次に、この図35を参照して、第2の実施の形態による背景の色補間処理について詳細に説明する。
【0247】
この背景の色補間処理は、アニメーション管理用データのアニメーションフレーム番号で示される現在のアニメーション再生位置に応じて、背景の描画色を設定するものである。背景の描画色は、上述したように、ワークRAM103に格納されているパレットデータ(図33参照)、即ちアニメーションフレーム番号が0、200、400、及び599のときにユーザが指定した描画色のRGBデータを用いて、上記数2により求められる。背景は、屋根、煙、山等の複数の部分(領域)からなり、各部分(領域)にはそれぞれ色コードが割り当てられている。このため、背景の描画色は、各色コード毎に、そのRGBデータを求めることで行われる。
【0248】
先ず、ステップ3501では、ワークRAM103に格納されている、アニメーションフレーム番号が0、200、400、599の各パレットデータから、所定の順序で1つの色コードのRGBデータをそれぞれ抽出し、それをRGBの各成分に分ける。続くステップ3502では、上記ステップ3501で抽出した各アニメーションフレーム番号(制御点)のRGB各成分、及び現在のアニメーションフレーム番号(ワークRAM103のアニメーション管理用データ)を数2に代入して、現在の描画色のRGBデータを求める。
【0249】
ステップ3503に続くステップ3504では、背景の色コードの描画色を全て数2を用いて補間作成したか否か判定する。キャラクタを構成する各部分(領域)の描画色を全て新たに設定した場合、その判定はYESとなって一連の処理を終了する。そうでない場合には、ステップ3501に戻り、所定の順序に従って、ワークRAM103から次の色コードのパレットデータ(RGBデータ)を抽出し、それ以降の処理を同様に実行する。
【0250】
図36は、図17のステップ1717として実行されるペイントフレーム変更処理の動作フローチャートである。次に、この図36を参照して、第2の実施の形態によるペイントフレーム変更処理について詳細に説明する。
【0251】
本実施の形態では、上述したように、部分画像の描画色を設定する再生位置(ペイントフレーム)を固定、即ち制御点を4点のみとしている。このペイントフレーム変更処理は、そのペイントフレームを変更するものであり、上述したように、ユーザがペイントモードを設定している場合に実行される。
【0252】
先ず、ステップ3601では、ユーザが操作したキーの種類を判別する。それ以降は、その判別結果に従って行われる。ユーザが正方向コマ送りキーKY6を操作した場合、ステップ3602に移行し、逆方向コマ送りキーKY7を操作した場合には、ステップ3603の処理に移行する。その他のキーをユーザが操作した場合には、ここで一連の処理を終了する。
【0253】
ステップ3602では、ユーザが正方向コマ送りキーKY6を操作したとして、アニメーション管理用データのアニメーションフレーム番号を0から200、200から400、或いは400から599に進める。その後、ステップ3604の処理に移行する。他方、ステップ3603では、ユーザが逆方向コマ送りキーKY7を操作したとして、アニメーションフレーム番号を599から400、400から200、200から0に戻す。その後、ステップ3604の処理に移行する。
【0254】
ステップ3604では、上記ステップ3602、或いは3603の処理の実行後のアニメーションフレーム番号に応じて、ワークRAM103からその番号のパレットデータを読み出して(図33参照)、背景の描画色に設定する。これは、CPU101が、背景に設定した描画色のRGBデータを、ワークRAM103に制御管理用として格納することで実現される。その後、一連の処理を終了する。
・変形例
第2の実施の形態では、アニメーション再生期間における制御点の位置、その数を固定させているが、これらをユーザが任意に指定できるようにしても良い。ベジェ曲線では、制御点の位置がその曲線の形状に大きな影響を与えることから、これによってユーザは、より様々な視覚的効果を得ることができるようになる。このときには、ベジェの式でRGBデータを補間作成する区間をユーザが選択できるようにしても良い。更には、各区間毎に、その間のRGBデータを補間作成する方法を別々に設定できるようにしても良い。
【0255】
また、例えば図32のように4つの制御点をユーザが指定した場合に、例えば始点のRGBデータを基準とし、制御点1〜終点の区間はベジェの式を用いた補間演算を行い、その演算後の値に、始点のRGBデータを用いた所定の演算を行うようにして、描画色をアニメーション再生に合わせて変化させても良い。このように、本発明は、様々な変形を行えるものである。
【0256】
【発明の効果】
以上説明したように本発明は、複数の部分画像をグループに分け、各グループ毎にその描画色を一元的に管理し、ユーザが指定した描画色を基にして、アニメーション再生中の部分画像の描画色のデータを作成する。このため、ユーザは、簡単、且つ短時間の作業を行うだけで、所望の視覚的効果を付加したアニメーション再生を行わせることができる。
【0257】
また、描画色を指定する回数が少なく、言い換えれば、指定された描画色のデータ量が小さく、その一方では、作成できる描画色のデータは必要に応じて作成すれば良いため、部分画像に設定されている描画色のデータの格納に要する記憶領域を小さくすることができる。
【図面の簡単な説明】
【図1】第1の実施の形態が適用されたシステムの全体回路構成図である。
【図2】VDPの構成図である。
【図3】表示画面の階層構造を説明する図である。
【図4】ROMのデータ構成図である(その1)。
【図5】ROMのデータ構成図である(その2)。
【図6】SRAMとOAM部のデータ構成図である。
【図7】CLT部のデータ構成図である。
【図8】ワークRAMのデータ構成図である(その1)。
【図9】ワークRAMのデータ構成図である(その2)。
【図10】部分画像の各部分に割り当てた色コードを示す図である(その1)。
【図11】部分画像の各部分に割り当てた色コードを示す図である(その2)。
【図12】部分画像の各部分に割り当てた色コードを示す図である(その3)。
【図13】画面表示タイミングの説明図である。
【図14】アニメーションとしての動作例を示すタイミングチャートである。
【図15】アニメーション用のデータ例を示す図である。
【図16】モード遷移図である。
【図17】全体処理の動作フローチャートである。
【図18】イニシャル処理の動作フローチャートである。
【図19】キャラクタのアニメーションイニシャル処理の動作フローチャートである。
【図20】描画色変更処理の動作フローチャートである。
【図21】パレット変更処理の動作フローチャートである。
【図22】キャラクタの色変更処理の動作フローチャートである。
【図23】背景の色変更処理の動作フローチャートである。
【図24】メインモード変更処理の動作フローチャートである。
【図25】アニメーションモード変更処理の動作フローチャートである。
【図26】キャラクタの正方向コマ送り処理の動作フローチャートである。
【図27】キャラクタの色補間処理の動作フローチャートである。
【図28】背景の色補間処理の動作フローチャートである。
【図29】キャラクタの逆方向コマ送り処理の動作フローチャートである。
【図30】ペイントフレーム変更処理の動作フローチャートである。
【図31】アニメーション処理の動作フローチャートである。
【図32】ベジェ曲線による色補間例を説明する図である(第2の実施の形態)。
【図33】ワークRAM上の背景パレットデータの構成図である(第2の実施の形態)。
【図34】背景の色変更処理の動作フローチャートである(第2の実施の形態)。
【図35】背景の色補間処理の動作フローチャートである(第2の実施の形態)。
【図36】ペイントフレーム変更処理の動作フローチャートである(第2の実施の形態)。
【符号の説明】
101 CPU
102 プログラム/データROM
104 入力装置
105 VDP
106 SRAM
108 テレビ
207 カラールックアップテーブル部
Claims (2)
- 記憶手段に記憶されている複数の部分画像の中から、予め定められた表示管理用情報により順次指定される再生位置に基づきひとつの部分画像を選択し、当該選択された部分画像を表示画面上に配置していくことにより、動画再生を行う方法に適用される描画色変更方法であって、
複数の所定再生位置で選択されるべき前記部分画像の描画色を指定し、
前記表示管理用情報により順次指定される再生位置に基づいて選択される部分画像の描画色を、前記指定された再生位置と前記複数の所定再生位置にて指定された描画色とに基づいて決定する、
ことを特徴とする描画色変更方法。 - 予め用意された複数の部分画像を記憶する記憶手段を備え、この記憶手段に記憶されている複数の部分画像の中から、予め定められた表示管理用情報により順次指定される再生位置に基づきひとつの部分画像を選択し、当該選択された部分画像を表示画面上に配置していくことにより、動画の再生を行う装置であって、
複数の所定再生位置で選択されるべき前記部分画像の描画色を指定する指定手段と、
前記表示管理用情報により順次指定される再生位置に基づいて選択される部分画像の描画色を、前記指定された再生位置と前記複数の所定再生位置にて指定された描画色とに基づいて決定する制御手段と、
を具備したことを特徴とする動画再生装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP35251895A JP3721623B2 (ja) | 1995-12-29 | 1995-12-29 | 描画色変更方法、及び動画再生装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP35251895A JP3721623B2 (ja) | 1995-12-29 | 1995-12-29 | 描画色変更方法、及び動画再生装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH09185699A JPH09185699A (ja) | 1997-07-15 |
JP3721623B2 true JP3721623B2 (ja) | 2005-11-30 |
Family
ID=18424620
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP35251895A Expired - Fee Related JP3721623B2 (ja) | 1995-12-29 | 1995-12-29 | 描画色変更方法、及び動画再生装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3721623B2 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU5652700A (en) * | 1999-09-24 | 2001-03-29 | Nintendo Co., Ltd. | Method and apparatus for providing non-photorealistic cartoon outlining within a 3D vodeographic system |
JP5593879B2 (ja) * | 2010-06-30 | 2014-09-24 | カシオ計算機株式会社 | 図形表示装置およびプログラム |
CN112489129A (zh) * | 2020-12-18 | 2021-03-12 | 深圳市优必选科技股份有限公司 | 位姿识别模型训练方法、装置、位姿识别方法和终端设备 |
-
1995
- 1995-12-29 JP JP35251895A patent/JP3721623B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH09185699A (ja) | 1997-07-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100411534B1 (ko) | 영상데이터생성방법,생성장치및생성회로,및게임재생장치 | |
CA2055702C (en) | Display range control apparatus and external storage unit for use therewith | |
JPS62288984A (ja) | ビデオ表示装置 | |
US5363119A (en) | Scaling processor for raster images | |
US9697638B2 (en) | Image processing apparatus, image processing method, and data structure of image file | |
JP2003515766A (ja) | ハンドヘルドlcd素子に高い色解像度を表示するための方法および装置 | |
JPH10261102A (ja) | アニメーション生成装置およびアニメーション生成方法 | |
US7715642B1 (en) | Bitmap image compressing | |
JP7027023B2 (ja) | 画像処理装置、画像処理プログラム、画像処理方法および画像処理システム | |
US20030025710A1 (en) | Rendering processing method | |
JPH0778710B2 (ja) | ビデオ画像形成装置 | |
JP3285860B2 (ja) | モザイク画像表示装置 | |
JP3721623B2 (ja) | 描画色変更方法、及び動画再生装置 | |
CA1257719A (en) | Graphics display system | |
EP0062669B1 (en) | Graphic and textual image generator for a raster scan display | |
JP3750171B2 (ja) | 描画色変更方法、及び画像作成装置 | |
JPH11331700A (ja) | 画像処理装置および画像処理方法 | |
JP3680351B2 (ja) | 画像制御装置 | |
JP3688765B2 (ja) | 描画方法およびグラフィックス装置 | |
JP3680352B2 (ja) | 画像制御装置 | |
JP3557067B2 (ja) | 走査型画像生成回路手段 | |
JP3252359B2 (ja) | 画像処理装置 | |
JP2989642B2 (ja) | 動画表示装置 | |
JP3738328B2 (ja) | 画像処理装置 | |
JP3829341B2 (ja) | 画像処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20050603 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050614 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050720 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20050823 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050905 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |