超暇人MSX

超光速移動妖精

スプライトとは?

80年代〜90年代初頭にかけて、ビデオゲームの画面上で動くキャラクターには“スプライト”が多用されました。ファミコンのマリオも、ドラクエの主人公も、動くキャラは大抵スプライトでした。アーケードのゲームも動き回るキャラは殆どがスプライトでした

一時は説明する必要の無いくらい有名な機能でしたが、スプライトとは、アニメの背景にセル画を重ねるように、背景画面の前に別の透明な面 (MSXではプレーンと呼ぶ) を用意して、そこに16×16ピクセル注1といった規定の大きさ以内のサイズの画像 (例えばマリオのキャラ) を描き、簡単な指定で表示する内容や位置を変えられる機能で、背景画面には何の影響もありません。背景画面の絵を一々ソフトで書き換えてキャラを動かすより高速なのです注2。透過面を複数用意すれば、その数だけキャラを表示できます

80年代にお子様だった人は、このスプライト = パステルカラーの妖精さんに魅了されていたのです

MSX2のスプライト構成

 注1.日本ではモニター画面の画素も、画像の1点もドットと言う事が多いが、正     しくは、モニター画面の画素=ドット、表示する画像の1点=ピクセル、で     あるらしい(最近では両方共ピクセルと言うか?)。1024×768ドッ     トの液晶モニター画面に、全画面表示で256×192の画像を(補間せず     そのまま)拡大表示した場合、1ピクセル=4×4=16ドットである。ま     あ、このページでもごっちゃに書いてるが

注2.MSXのグラフィック2モードと3モード時では、名称テーブルを2バイト     書き換えれば、背景に描いたキャラを8ドット単位で動かせるので、スプラ     イトを動かすより早い場合もあるかも?? 8×8で横に8ドットずつしか     移動しないキャラが1つだけ動くとか(^^;)。あるいは常に画面の大半を書     き換える(たとえばソフトでスクロールさせる)ゲームとか。あくまで8ド     ット単位、マシン語でだけど

ページのTOPへもどる

激突ファミコン対MSX

元々スプライトは、テキサスインストゥルメント社の特許で、スプライト (妖精) というネーミングも同社です。歴代MSXのVDP (今で言うGPU) は、テキサスインストゥルメント社製、及びその和製強化版なので、MSXには当時の家庭用ゲーム機に匹敵するスプライト機能があります

 MSX2のスプライト機能  ・8×8ピクセル256枚、又は16×16ピクセル64枚登録可能  ・スプライトのサイズを2倍に拡大して表示可能(ピクセル数は同じ)  ・横1ラインにつき1色ずつ、最大16色(内1色は透過色)指定可能  ・指定できる色は背景と同じパレットで、512色中の16色  ・2枚重ねた場合、重なった部分の2枚の色を論理和した色で表示可能  ・横に8枚、1画面に32枚まで同時表示可能
 

ではここで、MSX2のスプライトをファミコンと比較してみます。といっても、BIOSのソースまで公開出版していたMSX系と違い、どうもファミコンの仕様は謎で、ネット辞書等の表記も (私には) とても分かり辛く、少し調べた程度では理解不能な部分があります。ここでは、ネット辞書+『ファミリーベーシック注1』の本 (『絵でわかるファミコンベーシック』『オリジナルゲーム集25』) から私が推測したスプライトの仕様で比較します

 謎のファミコンスプライト仕様  ・8×8ピクセル、又は8×16ピクセル、64枚登録可能??  ・指定できる色は25色中一枚につき4色(内1色は透過色)使用可能??  ・スプライトに4種類のパレットが使えるので、同時表示色12色??  ・背景面とスプライト面の表示優先度を切り替え可能??  ・8×8ピクセル時、横に8枚、1画面に64枚表示可能??  ・スプライトの左右を反転して表示可能??

マリオやドラクエの様な16×16ピクセルのキャラを、1画面に最大16個、横4個まで同時表示みたいな感じになるのだと思います。おおよそ、ファミコンとMSX2のスプライト機能は、実用上同程度に使えるというところでしょう

◎ MSX2のスプライトでマリオを描く

MSX2のスプライトでマリオを描く
↑スプライト1↑スプライト2↑重ねて完成↑ファミコン版
↑スプライト1↑スプライト2↑重ねてアレレ?↑ファミコン版
↑スプライト1変形↑スプライト2変形↑重ねて成功↑ファミコン版

実際のところ、ファミコンのマリオは8×8スプライト4枚で作られているようですが、MSX2では通常16×16の2枚で1つのキャラを作るので、今回も頑張って2枚で作ります。MSX2のスプライトは横1ラインにつき1色なので、2枚重ねないとマリオは出来ません。MSX2は横に8つまで、ファミコンは横に4つまで16×16ピクセル大のキャラを並べられますから、機能制限的には同等となります。
 (なお、このページのファミコンマリオ画像は、単にキャプった画像を拡大修正したもので、16×16内の表示位置はズレているかもしれませんが、ここでの趣旨には影響ありませんので悪しからず)

MSX2では、横1ラインに3色ある所の3色目は、2つのスプライトのラインの色をOR(論理和)した色で作ります (一色ずつ3枚使ってもいいケド)。 結果的にマリオのパンツの種類が変わってしまいましたが、かえってイイ感じかも??
 2段目のパンチする(?)マリオは、そのままの状態では再現できないので、3段目のような状態に変形・変色してみました。怒りのマリオパンチという感じで良くないですか(^^;)?

ファミコンからMSX2にゲームを移植する場合に、よく問題とされる点は、MSX2に無いハードウェア横スクロール機能注2ですが、スプライトの3色目をどうするかも、中々頭を使うところだと思います。
 『悪魔城ドラキュラ』『ザナックEX』では、2枚のスプライトのOR色で3色キャラを表現しています。ハッキリ言って、ファミコンよりカラフルです。 もし、どうしても2枚のOR色が上手くいかなければ、3枚以上使うしかありません。まあ、元々のファミコンでも2枚とか4枚のスプライトを使ったキャラが多いらしいのですが

少ない枚数のスプライトで何か描いてみる
MSX2、16×16の1枚ファミコン8×16の2枚マリオは8×8の4枚
ファミコンのパレットの制限がよく分からないので色は適当 (スーパーマリオの画面から拾った色) です

注1.初代の使用可能メモリが2キロバイト弱、新型が4キロと超少なく、スタッ     クは256バイト固定で、スプライトも用意された16種類のキャラ固定(     ただし、マリオやレディにはアニメパターンがあるし、色の組みも4種類)。     キーボードはゲーム使用不可なので“ファミコン版○○ツクール”とも言え     ないくらいの使い出しかないかも? CPU6502のマシン語を覚えて超     頑張るとか!? でも、本体と合わせるとMSX2が買える値段だったしぃ

注2.『ウルティマ 恐怖のエクソダス』や『魔界島 HIGEMARU』(Bボ     タンで高速スクロールもOK)のように実際に移植された作品を見る限り、     大抵のものはMSX2でも綺麗なスクロールが再現可能だと思われる。ファ     ミコン本家『スーパーマリオ・・』は4ピクセルスクロールのようだし??

ページのTOPへもどる

スプライトの裏技

MSX2ではVDPが画面の横1ラインを描く毎に割り込みを掛けられるので、割り込みを使って画面をいじる技が幾つかあります。コンパイル製のシューティングゲーム『アレスタ2』等では、割り込み (のいずれか) 毎にスプライトを再定義して、点滅などさせずに普通の状態で、通常の制限の2倍の枚数を表示させる技が使用されています。具体的にどうするのかは知りませんけど (オイオイ!) いや、たぶん画面の上半分で32枚、割り込んで定義を変え下半分で別の32枚とやるんですよネ? それを巧みに繋いで同じキャラに見せたり

MSX2版『孔雀王』では、タイトル画面の文字と背景の燃えるお堂が同時に表示されますが、元のファミコン版では両方ともスプライトで描いているため、文字が出ると炎が消えてしまいます。このようにファミコンでは、背景や文字を補う形でこっそりスプライトを使う技が多用されています。このスプライトの裏技もそうですが、ファミコンほど各社が総力を挙げて研究し、極限まで使いこなされたゲーム機は無いんじゃないでしょうか?注1 うらやましい(^^;)

急な火災も即消火するファミコン版『孔雀王』
MSX2版孔雀王タイトル  ファミコン版、孔雀王タイトル
MSX2版ファミコン版

また、ファミコン (と、他の80年代後半ゲーム機) の動くキャラは、ほぼスプライトであるといって良いでしょうが、MSX2では、他のパソコン同様、背景画面に描く擬似的なスプライトも (描画速度は本物のスプライトに劣りますが) 使えるので、巨大なキャラ、アニメパターンが多いキャラは、背景画面にそのまま描かれていることが多いです。そういうところまで使い分けて、丁寧にMSXソフトを作ってくれるソフトハウスは少数派でしたが。 えっ、「スプライトの裏技じゃないジャン」だって(^^;)?

注1.ファミコンのROM生産ラインを持っていたK社やT社は、部品をロットで     注文した方が安い為、またラインや雇用者を遊ばせておかない為、同じライ     ンでMSX2ROMを作っていたのだが、ROM容量を同時期生産のファミ     コンROMと合わせなければならない為、本来MSX2が持つ性能が発揮で     きない場合がしばしばあった(色数や絵や音を多く使えば、当然それだけR     OM容量が必要になる)。MSXだけ8メガROMなんてことは(殆ど)し     てくれなかった

ページのTOPへもどる

消えたスプライト

MSX1と同じグラフィックチップ = TMS9918系を元に、主にゲーム用に強化されたVDPを搭載したSEGAマークIIIには、発売時点の家庭用ゲーム機中で最強レベルの強力なスプライト機能がありました。
 しかしビデオゲームというものは、もちろん好みもありますが、画面の表示能力や音源といったハード機能とは、また別のところに面白さの本質注1があって、その時代のメーカーではなくユーザーが求める最低限のハード性能さえあれば、値段の安さとソフトの出来が物を言うので、SEGAマークIIIとその後継機SEGAマスターシステムは、国内の人気ではファミコンに及びませんでした (欧米ではNES(海外版ファミコン)同等の人気があり台数も同程度出ています。その辺りが民族性なのかな?)

その後もPCエンジン、メガドライブ、スーパーファミコンと、より強力なスプライト機能をもったゲーム機が発売されました。パソコンではX68000という機種が強力なスプライト機能を売りの1つにして (MSX2が10台以上買える値段で) 発売されました。が、それから20年程たったこの10年ばかり、スプライト性能を謳った新型機の話は耳にしません。現行のPCやゲーム機には、特別なハードを使わなくても画面に沢山の大きな2Dキャラを重ねて描いて高速に動かすのに十分なパワーがありますし、Direct3D機能を使ったWindowsのゲームでは2D表示でも3D機能を使う方が描画が速いそうです

スプライトは、やはり、突然現れて、いつの間にか消えていくコンピュータの妖精だったのでしょうネ(^^;)

コンピュータの妖精
妖精は死なず、ただ消え去るのみ・・・ん?

 

注1.例えば、ハリウッド映画の様に大金をかけて作った、ニューヨークの超高層     ビルに飛行機が突っ込んで大爆発するCG映像よりも、そこら辺の空き地で     変な衣装のおじさん達が集団で「イー」とか「とおっ」とか殴り合っている     チープな場面のほうが面白かったりする、でしょ? それと同じ(そうか)

ページのTOPへもどる

このページは、1024×768画面に合わせて作りました。ちゃんと見えなかったらスミマセン