JPH0683320A - スプライト制御方法 - Google Patents

スプライト制御方法

Info

Publication number
JPH0683320A
JPH0683320A JP25886192A JP25886192A JPH0683320A JP H0683320 A JPH0683320 A JP H0683320A JP 25886192 A JP25886192 A JP 25886192A JP 25886192 A JP25886192 A JP 25886192A JP H0683320 A JPH0683320 A JP H0683320A
Authority
JP
Japan
Prior art keywords
sprite
display
sprites
pattern
background
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.)
Pending
Application number
JP25886192A
Other languages
English (en)
Inventor
Yukio Takeoka
幸夫 武岡
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hudson Soft Co Ltd
Original Assignee
Hudson Soft Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hudson Soft Co Ltd filed Critical Hudson Soft Co Ltd
Priority to JP25886192A priority Critical patent/JPH0683320A/ja
Publication of JPH0683320A publication Critical patent/JPH0683320A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Image Processing (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

(57)【要約】 【目的】 バックグラウンドとスプライトの2種類の画
面を重ね合わせる方式により画面形成を行うコンピュー
タ画面形成方法において、効率的にスプライトを制御す
る。 【構成】 スプライトアトリビュートテーブルにスプラ
イトジェネレータに登録されたパターンを指定するフィ
ールド、スプライトの座標を指示するフィールド、上下
左右の反転を指定するフィールド、X方向およびY方向
へのスプライトの連結を指定するフィールドなどを設定
して、スプライトを制御する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、バックグラウンドとス
プライトの2種類の画面を重ね合わせる方式により画面
形成を行うコンピュータ画面形成方法に関する。詳細に
はスプライトの制御方法に関する。
【0002】
【従来の技術】コンピュータ画面の形成方法としては、
一般にビットマップディスプレイ方式や、文字表示で良
く用いられる専用のテキストVRAMを用いる方法など
がある。これらの一般的な画面形成方法のほかに、ゲー
ムなどで良く用いられる方式として背景と主表示物を表
すバックグラウンドとスプライトの2種類の画面を重ね
合わせて画面形成を行う方法がある。
【0003】一般に写真を写したり、ビデオを撮ったり
するとき、写そうとする対象とその背景を考えると、1
つの絵の中に背景と主表示物の2種の対象物が混じり合
っている。写真やビデオなら自然にこの2つが融け込ん
で表現できる。
【0004】しかしゲームなどのグラフィックをコンピ
ュータで表現するときは、すべての表示物をプログラム
で管理しなければならない。このため、管理がしやす
く、プログラミングも楽に行える設計を考える必要があ
る。そこで、このようなバックグラウンドとスプライト
の2種類の画面をもちいて、画面を背景と主表示物に分
けて管理するものである。以下、例に基づいて説明す
る。
【0005】バックグラウンド画面は「キャラクタ」と
呼ばれるパターンを単位として全体の画面が構成されて
いる。ここでは、キャラクタが8×8ドットを1単位と
する場合を例にとって説明する。
【0006】図1は表示画面を構成する各レジスタの設
定値を示す図である。各水平方向の設定値はキャラクタ
数を単位とし、垂直方向はラスタ数を単位としている。
図2に示すように画面全体が32×32個のキャラクタ
で構成される場合を考える。枠内の数字は16進で表し
たアドレスを示す。
【0007】バックグラウンドアトリビュートテーブル
は、仮想スクリーン上の各キャラクタ位置にどのような
キャラクタをどのような色で表示するかを指定するため
に、VRAM中に設定するテーブルである。図3はバッ
クグラウンドアトリビュートテーブルのVRAM中での
位置とその内容を示す図である。
【0008】各々のアドレス毎にキャラクタのパターン
を表すキャラクタコードと色を表すCGカラーコードが
指定される。図4に示すように、この例ではCGカラー
コードは4ビット、キャラクタコードは12ビットのデ
ータで指定されている。
【0009】キャラクタコードは、VRAM内のキャラ
クタジェネレータ(CG)で定義されているキャラクタ
番号が指定され、この番号に対応して、CGには実際の
キャラクタのパターンが登録されている。
【0010】キャラクタジェネレータ(CG)ではキャ
ラクタパターンは図5のように定義されている。画面中
で8×8ドットで構成されるキャラクタは、各ドットを
4bitのカラーコードを定義する必要から、キャラク
タジェネレータ中では8×8ドットの面を4面使用す
る。各面はCH0,CH1,CH2,CH3とよばれ、
合計16ワードの情報で一つのパターンを定義してい
る。
【0011】バックグラウンドの表示制御は水平表示期
間に行われる。1キャラクタを表示するためのデータの
流れを図6〜10に説明する。図6に示すように、ま
ず、ラスタの位置からアドレスを生成してバックグラウ
ンドアトリビュートテーブルを読み、キャラクタコード
とCG COLORを得る。
【0012】つぎに図7および図8に示すように、その
キャラクタコードからキャラクタジェネレータのアドレ
スを生成し、パターンを読み、ビデオディスプレイコン
トローラ内のシフトレジスタに取り込む。この場合、キ
ャラクタジェネレータのアクセスは、16色表示では2
ワード(CH0、CH1およびCH2,CH3)、4色
表示では1ワード(CH0、CH1またはCH2、CH
3)を読み込む。
【0013】そして図9に示すように、CG COLO
Rと取り込まれたパターンデータをともにシフトレジス
タから出力する。このときのビデオ出力は図10(a)
に示すようになる。VD7〜VD4はCG COLOR
が、VD3〜VD0にはCH3〜CH0の各ビットがで
る。VD8(SPBG)は0が出力される。
【0014】帰線期間中の表示出力は図10(b)に示
すように、VD8(SPBG)=1、VD7〜VD0=
0となる。
【0015】また、バックグラウンド画面はビデオコン
トローラにより水平、垂直方向にスムーズスクロールさ
せることができる。垂直スクロールは、図1に示すBG
Yスクロールレジスタを制御することによりラスタ単位
で行え、水平スクロールは、BGXスクロールレジスタ
を制御することにより、ドット単位で行うことができ
る。
【0016】背景をこのようなキャラクタによって描く
ことにして、主表示物は背景とは別の画として管理する
ことができる。背景は主表示物の動きによって自動的に
変化する周りの状況を表す表示対象であり、主表示物は
ユーザー(ゲームプレイヤ)の操作ないしは自動的に変
化する主対象(登場人物などのゲームの中心となる表示
物)である。
【0017】主表示物はあらかじめ決められた数のドッ
トを単位としたパターンから構成され、これを「スプラ
イト」と呼ぶ。
【0018】
【発明が解決しようとする課題】上記のようなバックグ
ラウンドとスプライトの2種の画面で構成する方法にお
いては、スプライト表示方法は個人に任されていた。こ
のため、スプライトを表示するプログラムの内容は一定
せず、複数の人間がひとつのアプリケーションを開発す
るときは、そのつどインターフェイスを取り決める必要
があった。このため、開発に時間が掛り、またプログラ
ムに統一性ががないために、ソフトの維持管理が難しか
った。
【0019】開発、管理面だけでなく、表示方法やメモ
リ管理面においても多くの問題を抱えていた。たとえ
ば、X方向右向きに走る自動車を、逆方向に走らせると
きには、逆向きの自動車のパターンも用意しなければな
らなかった。また、スプライトの基本単位を超える大き
な表示物を描く場合には、各プログラマの責任において
パターン管理をしなければならなかった。これは非常に
厄介な作業であり、プログラミングを一層複雑なものに
していた。
【0020】本発明は、スプライト表示方法の統一と、
プログラミングを容易にするためのテーブル管理・利用
方法の開発を主眼に置き、さらに資源の有効活用を図る
ために、メモリの効果的な使い方にも考慮することをも
目的とする。
【0021】
【課題を解決するための手段】本発明は、スプライトを
管理するテーブルを導入し、このテーブルをもとにスプ
ライトを管理し、効率のよい表示方法と管理の仕方を図
っていく方法である。スプライトの表示ルールを定め、
それを実現するためにRAM上にスプライトアトリビュ
ートテーブルとスプライトジェネレータを設定する。
【0022】本発明のスプライトアトリビュートテーブ
ルにはスプライトジェネレータに登録されたパターンを
指定するフィールド、スプライトの座標を指示するフィ
ールド、上下左右の反転を指定するフィールド、X方向
およびY方向へのスプライトの連結を指定するフィール
ドを含んでいる。
【0023】本発明のスプライトの管理方法について、
一つの例に基づいて以下に説明する。図11は、実画面
系の(32、64)をスプライト座標系の(0,0)に
割り当てた例である。この図に示すようにそれぞれの座
標位置は、0から1,023の値が取れる。
【0024】もちろんこの値はハードウェアやシステム
によってもの違ってこようが、仮想スクリーン(スプラ
イト画面)上での座標位置であるから、実際のスクリー
ン座標を意識することなくスプライト位置が指定できる
という利点がある。実画面と仮想スクリーンとの関連づ
けは表示前に1回だけ行っておけばよく、あとはシステ
ムが自動的に実画面との対応を取り、表示を行う。この
例ではスプライトはサイズを16×16ドットを単位と
し、主表示物をこの整数倍の大きさのパターンで表現す
る。
【0025】各スプライトは座標を変更することによっ
て表示画面内を自由に移動することができ、パターンの
再定義を一切必要としない。また、スプライトに優先順
位を設定し、2つ以上のスププライトが重なっている場
合、優先順位の低い順に消していくことができる。
【0026】このようなルールに従うスプライトを管理
するためにスプライトアトリビュートテーブル(SA
T)を導入する。スプライトアトリビュートテーブルは
前述のバックグラウンドアトリビュートテーブルと同様
にVRAM上に定義されるテーブルであり、図12に示
すような構成になっている。
【0027】スプライトアトリビュートテーブルの各構
成要素の意味は以下のとおりである。図13に示すよう
に、スプライトアトリビュートテーブル中にはX座標、
Y座標、パターン番号、SPLITE COLOR、Y
バー、CGY、Xバー、CGX、SPBGなどのフィー
ルドがある。
【0028】図14に示すように、スプライトアトリビ
ュートテーブルはこの例ではSP#0からSP#63ま
での64個が定義できる。
【0029】X座標およびY座標はスプライトを表示す
る垂直位置と水平位置を指定するフィールドである。
X、Y座標を変えるだけで、スプライトのパターンを再
定義することなく、画面の好きな位置にスプライトの移
動が行える。
【0030】パターン番号は、スプライトのパターンを
指定する番号で、図15に示すように11ビットから成
り、上位10ビットにパターンが格納されているVRA
Mのアドレスを指定する。パターンが格納されているこ
の領域をスプライトジェネレータ(SG)と呼ぶ。図1
6はスプライトジェネレータへスプライトパターンが格
納されていることを示す説明図である。
【0031】パターン番号フィールドの最下位ビット
は、スプライトのドット幅を2ドット4色としたとき、
(SG0,SG1)または(SG2,SG3)のどちら
を選択するかを指定するのに用いる。
【0032】256色中16色選択表示の場合は、スプ
ライトジェネレータに定義するパターンは色情報を含む
ために、図16に示すようにSG0、SG1、SG2、
SG3の4面からなる。4色表示では2つの色情報でよ
いから(SG0,SG1)か(SG2,SG3)のいず
れかの選択になる。実際の表示ではこの重ね合わせでス
プライトが表示される。このようにパターン番号によ
り、スプライトアトリビュートテーブルとスプライトジ
ェネレータの関連が付けられる。
【0033】スプライトアトリビュートテーブルのパタ
ーン番号はスプライトジェネレータのアドレスになって
いる。といっても、アドレスは1ワード(=16ビッ
ト)であるから、パターン番号の上位10ビットがアド
レスの上位10ビットに対応しているのである。
【0034】上位10ビットで対応できるのは、SG0
のアドレスの下位6ビットが(000000)2になる
位置に設置されるように設計しているからである。な
お、()2は2進数を表すとする。実際のスプライトジ
ェネレータには図16に示すようにデータが記録されて
いる。
【0035】1個のスプライトは16×16ドットの面
が4面で構成されているから、各面SG0、SG1、S
G2、SG3のアドレスの下位8ビットは(0000
0000)2、(0100 0000)2、(1000
0000)2、(11000000)2になる。
【0036】パターン番号が(XX XXXX XXX
X)2と指定されていれば、このパターン番号がポイン
トするSG0のアドレスは(XXXX XXXX XX
000000)2であり、残りの3面も自動的に計算で
きる。10ビットのパターン番号指定は取り扱いが楽で
あり、メモリの有効利用にもなる。
【0037】SPRITE COLORはスプライトの
エリアカラーコードを4ビットで指定するフィールドで
ある。
【0038】SPBGはバックグラウンド表示とスプラ
イト表示の優先度を指定するビットで、「0」でバック
グラウンド表示、「1」でスプライト表示を行う。
【0039】XバーおよびYバーはスプライトのパター
ンを反転させる指示を行う。Xバーに「1」を設定する
とスプライトを左右に反転させて表示し、Yバーに
「1」を設定するとスプライトを上下に反転表示させ
る。これによって定義するパターンを少なくすることが
できる。
【0040】図17は、XバーとYバーを利用したスプ
ライトの表示例である。(1)はスプライトジェネレー
タに登録してあるパターンで、Xバー=0、Yバー=0
と指定したときに表示されるスプライトである。
【0041】(2)はXバー=1、Yバー=0としたと
きに表示されるスプライトで、左右が反転する。(3)
は、Xバー=0、Yバー=1と指定したときで、上下が
反転する。(4)はXバー=1、Yバー=1と指定した
ときで、左右上下が反転した表示となる。
【0042】このような反転指定項目をスプライトアト
リビュートテーブルに設けることによって、スプライト
ジェネレータに登録するパターンは1つで、4つのパタ
ーンが表現できる。したがって、面倒なパターン登録が
少なく、またメモリの節約にもなっている。
【0043】CGXは水平方向(X方向)の、CGYは
垂直方向(Y方向)の、それぞれつなぎ合わせを指定す
るフィールドである。この例ではCGXは1ビットであ
るから、「0」か「1」のいずれである。
【0044】図18は、CGX=1としたときのスプラ
イトのスプライトアトリビュートテーブルの例である。
図19のように、スプライトジェネレータのアドレス
(0000 1000 1000 0000)2から6
4ワードには自動車の前半分が、アドレス(0000
1000 1100 0000)2から64ワードには
後ろ半分が登録されている。
【0045】スプライトアトリビュートテーブルのパタ
ーン番号のアドレスに関する情報は上位10ビットであ
るから、上位10ビットを(00 0010 001
1)2とすると、スプライトジェネレータのアドレス
(0000 1000 11000000)2をポイン
トすることになる。
【0046】すなわち、自動車の後ろ半分のパターン部
分がポイントされていることになる。CGY=0、CG
X=0としてした場合には、画面にはスプライト1単位
しか表示されないから、自動車の後ろ半分だけが表示さ
れる。
【0047】CGXに「1」を設定すると、表示指定さ
れたスプライトのパターン番号のビット1(PC1)を
「0」としたスプライトが左側に、PC1を「1」とし
たスプライトを右側に、2個を水平につないで表示す
る。すなわち、Xバー、Yバーの値に応じて自動車の前
半分を左に、後ろ半分を右につなぎ合わせて図20のよ
うに表示される。
【0048】従来の方法では、SATのパターン番号の
上位10ビットを(0000 1000 10)2を左
に、(0000 1000 11)2を右にと、2つの
SATを使ってプログラマが用意しなければならなかっ
た。しかも2つがうまくつながるようにするためには、
X座標を正しく計算しておく必要があった。
【0049】この煩雑さをCGXとXバーの指定を導入
することにより、2つにまたがるスプライトをあたかも
1つのスプライトのように扱え、プログラムの煩雑さが
解消される。この結果、プログラマへの負担が減り、プ
ログラム開発期間の短縮が図れる。
【0050】つぎに、フィールドCGYについて説明す
る。CGYは2ビットであるから4つの組合せが可能で
ある。ただし、1つは未使用である。図21はCGYの
4つの組み合わせを説明する図である。表示指定された
パターン番号のビット3(PC3)とビット2(PC
2)の組合せによって、(0,0)、(0,1)、
(1,0)、(1,1)としたスプライトを2個ないし
4個を垂直方向につないで表示する。すなわち、ノーマ
ル指定の場合はスプライトを単独表示し、2CGY指定
のときは2個をつなぎ、4CGYのときは4個をつなぎ
合わせて表示する。
【0051】図22は、CGYに「11」を指定した2
CGYのときのスプライトアトリビュートテーブルの例
である。図23に示すように、スプライトジェネレータ
のアドレス(0000 1100 0000 000
0)2から64ワードには鉛筆の先端部が、アドレス
(0000 1100 1000 0000)2には鉛
筆の軸上部が、アドレス(0000 1101 000
0 0000)2には鉛筆の軸下部が、アドレス(00
00 1101 1000 0000)2には鉛筆の後
端部がそれぞれ登録されている。
【0052】したがって、図22のようなスプライトア
トリビュートテーブルの設定がなされた場合は、Xバ
ー、Yバーの値に応じて図24のように4つのパターン
がつながって表示される。
【0053】このように、CGXとCGYとの組み合せ
で、スプライトのつなぎ合わせ表示が行え、これによっ
て、複数のスプライトをつなぎ合わせて表示するプログ
ラム記述が効率よく、かつ容易になる。
【0054】また、CGX、CGY、Xバー、Yバーは
組合せて使えるから、水平(X)方向に2スプライト、
垂直(Y)方向に4スプライトまでの組合せが、正方
向、逆方向に自由に表現できる。
【0055】以上は、本発明の一例である。したがっ
て、水平方向では2つのスプライトを、垂直方向では4
つのスプライトがそれぞれ同時につなぎ合わせることが
できた。もし必要ならこれ以上のスプライトのつなぎ合
わせも可能である。その場合には、上記の考え方をその
まま応用することができる。
【0056】すなわち、スプライトアトリビュートテー
ブルのCGX、CGYのフィールドを増やし、つなぎ合
わせルーチンをシステムで用意してやらばよいからであ
る。
【0057】
【発明の効果】本発明は、スプライトアトリビュートテ
ーブルとCGによるスプライト管理に主眼を置いてい
る。とくに複数のスプライトをつなぎ合わせるCGX、
CGYの導入と、スプライトの向きを反転表示させるX
バー、Yバーの導入とによって、登録するパターンの数
を減らすことができ、またとかく複雑になりがちな画像
表示のプログラムを分かりやすいものにすることができ
る。
【0058】そこから発生する効果として、プログラム
内容の統一化、開発時間の短縮化、メモリの有効利用等
が期待できるなどの効果がある。
【図面の簡単な説明】
【図1】表示画面の定義の説明図である。
【図2】仮想スクリーンのキャラクタのバックグラウン
ドアトリビュート中のアドレスの説明図である。
【図3】VRAM中のバックグラウンドアトリビュート
(BAT)の位置と内容を示す説明図である。
【図4】バックグラウンドアトリビュートテーブルの構
成を示す説明図である。
【図5】VRAM中のキャラクタジェネレータ(CG)
の位置と内容を示す説明図である。
【図6】バックグラウンド表示制御の説明図である。
【図7】バックグラウンド表示制御の説明図である。
【図8】バックグラウンド表示制御の説明図である。
【図9】バックグラウンド表示制御の説明図である。
【図10】バックグラウンドのビデオ出力の説明図であ
る。
【図11】実画面系の(32、64)をスプライト座標
系の(0,0)に割り当てた場合の説明図である。
【図12】VRAM上にスプライトアトリビュートテー
ブル(SAT)およびスプライトジェネレータ(SG)
を設けた状態を示す説明図である。
【図13】スプライトアトリビュートテーブルの構成を
示す説明図である。
【図14】VRAM上のスプライトアトリビュートテー
ブルの詳細を示す説明図である。
【図15】スプライトアトリビュートテーブルのパター
ン番号フィールドの説明図である。
【図16】スプライトジェネレータの詳細を示す説明図
である。
【図17】スプライトの反転等を示す説明図である。
【図18】X方向へのスプライトの連結を行うスプライ
トアトリビュートテーブルを示す説明図である。
【図19】スプライトジェネレータのアドレスマップの
例の説明図である。
【図20】X方向へスプライトを連結した様子を示す説
明図である。
【図21】フィールドCGYの機能の説明図である。
【図22】Y方向へのスプライトの連結を行うスプライ
トアトリビュートテーブルを示す説明図である。
【図23】スプライトジェネレータのアドレスマップの
例の説明図である。
【図24】Y方向へスプライトを連結した様子を示す説
明図である。

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】バックグラウンドとスプライトの2種類の
    画面を重ね合わせることにより画面形成を行うコンピュ
    ータ画面形成方法において、少なくとも、スプライトジ
    ェネレータに登録されたパターンを指定する手段、スプ
    ライトの上下左右の反転を指定する手段、X方向および
    Y方向へのスプライトの連結を指定する手段を含むこと
    を特徴とするスプライト制御方法。
JP25886192A 1992-09-03 1992-09-03 スプライト制御方法 Pending JPH0683320A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP25886192A JPH0683320A (ja) 1992-09-03 1992-09-03 スプライト制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP25886192A JPH0683320A (ja) 1992-09-03 1992-09-03 スプライト制御方法

Publications (1)

Publication Number Publication Date
JPH0683320A true JPH0683320A (ja) 1994-03-25

Family

ID=17326059

Family Applications (1)

Application Number Title Priority Date Filing Date
JP25886192A Pending JPH0683320A (ja) 1992-09-03 1992-09-03 スプライト制御方法

Country Status (1)

Country Link
JP (1) JPH0683320A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5940068A (en) * 1995-02-14 1999-08-17 Snk Corporation Display controlling apparatus and control method thereof

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5940068A (en) * 1995-02-14 1999-08-17 Snk Corporation Display controlling apparatus and control method thereof

Similar Documents

Publication Publication Date Title
US5459529A (en) Video processing for composite images
US5546518A (en) System and method for composing a display frame of multiple layered graphic sprites
DE69429205T2 (de) Verfahren und Vorrichtung zur Erzeugung eines dreidimensionalen Bildsignals und zu dessen zweidimensionaler Anzeige
US6369827B1 (en) Method and apparatus for displaying higher color resolution on a hand-held LCD device
EP0590961A2 (en) Image processing apparatus
CA1257719A (en) Graphics display system
US4763118A (en) Graphic display system for personal computer
JPH0683320A (ja) スプライト制御方法
EP0660298A1 (en) Image processing device and method therefor, and game machine having image processing part
JP2916322B2 (ja) 疑似多重スクロール方法
JPH0916799A (ja) 表示画面作成装置
JPH0767136B2 (ja) 画像処理装置
JP3257925B2 (ja) 半透明色画像生成装置
KR20000052433A (ko) 2차원 형상 그리기 시스템
JPH06223199A (ja) 画像合成装置
JP3324580B2 (ja) 画像処理装置
JPS60258680A (ja) 画像処理装置
JPH07210139A (ja) 全画面高速アニメーション表示方法
JP2914829B2 (ja) コンピュータゲームにおける文字形成方法
JPS6283789A (ja) 動画表示装置
JPS62222305A (ja) 数値制御装置における画像表示方式
JP2997601B2 (ja) カラーチェンジによる疑似多重スクロール方法
JPH07210142A (ja) 画面表示方法
JPS61103195A (ja) フレ−ムメモリ書込み制御方式
JP2000035781A (ja) 画像表示制御方法および装置