セガ・サターン

目次

画面技術

スプライト

描画オプション半透明について処理限界

背景画面

画面モード

機能を使い切る?

ニコニコ動画で解説を発見!


描画オプション

さて、メガドライブまでのラインバッファ…走査線1本の時間では複雑すぎてできなかったことでも、フレームバッファなら時間の余裕があり、可能となります。

サターンのスプライトは、四角の4つの頂点の位置を自由に指定可能でした。4頂点をうまく「回転」させればスプライトの回転を表現できますし、変形させることでポリゴンの表現も可能でした。


必ず4頂点を指定しないといけない、と言うわけではなく、従来のスプライトのような、縦横座標の指定だけで表示することもできます。これだと回転はできませんが、スプライトなので上下・左右の反転機能は持っていました。

スプライト表示原点座標指定時は、座標位置がスプライトの「どこ」を示すのか…左上なのか、中央下なのかなど…を、9か所の点から選ぶことができました。(「端」と「中央」を縦横で組み合わせられる)

キャラクターが人間のように「立っている」ゲームであれば、下中央を原点にすれば、どんなサイズのキャラクターでも「立っている」座標に簡単に表示できます。シューティングゲームなどでは、中央を表示位置に指定すると作りやすいでしょう。

その程度の位置指定なら、簡単な足し算・引き算で求まります。ゲームを作るうえで特に必要な機能ではありません。原点指定は、「拡大・縮小率」の指定と組み合わせた時に真価を発揮します。

サターンのスプライトには拡大縮小機能がありますが、「原点」はサイズを変更した際にも動かない点となります。

それまでのゲーム機のように、原点が左上固定ではなかった。非常に些細なことですが、こうした些細なことの積み重ねは、ゲームの作りやすさにつながります。この点も、サターンが究極の2Dゲーム機だった、とするゆえんです。


さらに、こんな機能も用意されています。


・「画像」を指定せず、位置の指定だけで枠を描く(ワイヤーフレーム)

・上と同様に、中を塗りつぶす(フラットシェーディング)

・2点を指定し線を引く

・4隅に色を指定し、グラデーションを生成しながらスプライト画像と合成(グーローシェーディング。テクスチャ無しでも使える)

・後で 背景面と重ねる際の半透明演算指定

・すでに描かれたスプライトとの半透明演算

・市松模様に描画を行う(擬似半透明)


スプライト同士の半透明や、他の背景との半透明が指定できますが、使用時に各種制限があるのはすでに書いた通りです。


その他の半透明の制限として、変形スプライトでは他スプライトとの半透明が使えないことがあります。これは、変形スプライトの描画方法に起因するものです。

描画方法の詳細はややこしいので書きませんが、壁にハケでペンキを塗っているようなものだと想像してください。まっすぐに塗ることはできますが、広い面積を一気に塗ることはできません。

1列塗ったらすぐ隣をまた塗るのですが、この際に、すでに塗ったところに少し重なるように塗らなくてはなりません。無駄な作業にみえますが、こうしないと隙間があいて、みっともない仕上がりになるかもしれないのです。

サターンの変形スプライトも、これと同じことをしています。一度描いたところを、もう一度描く場合があるのです。そうしないと隙間があいて、みっともない仕上がりになるかもしれないためです。

そして、これと「スプライト同士の半透明」を組み合わせると、問題が出ます。一度描いた自分自身の一部を、別のスプライトだと考えて「半透明処理」をしてしまうのです。結果、半透明度にムラが生じ、みっともない仕上がりになります (^^;

仕上がりを綺麗にするために何度も同じ個所を描いているのに、それによって仕上がりがひどくなる…。皮肉なものです。


わかる人のために書いておくと、プレステなどではスプライトは「ラスタライズ」されますが、サターンでは「マッピング」されているのです。
ラスタライズは、表示先のドットに対し、元となるテクスチャがどこにあるかを調べて表示する方法。マッピングは、テクスチャを取り出して、それを表示先に書き込んでいく方法。

先ほど書きましたが、2Dゲームではスプライトとの半透明と背景との半透明がが別の指定だったため、半透明は使いづらいものでした。そして、3Dゲームでは、スプライトの半透明は描画アルゴリズムの関係で、使い物にならないものでした。じゃぁ、半透明使えないじゃん!

これを解決するのが「擬似半透明」です。メッシュとも呼ばれます。X+Y が奇数の座標か、偶数の座標か、いずれかを選んで描画ができます。


奇偶が同じ擬似半透明スプライト同士が重なると、下にあるスプライトは完全に上描きされてしまい、半透明にはなりません。逆に、奇偶が違う擬似半透明スプライト同士だと、下にあるスプライトの「穴」の部分を上のスプライトが埋めるだけで、下になったスプライトは半透明ではなくなります。

擬似半透明はあくまでも「擬似」であり、半透明とは異なるのです。でも、一番「つかえた」機能でした。


半透明機能だけで3種類あり、それぞれに一長一短があるわけです。

完璧な半透明があればよかったのに! …というのは当然思うところですが、製造コスト(回路規模)の都合もあり、一長一短の3つの機能として用意し、プログラマーに工夫してもらう、というのが現実解だったようです。


ゲーム機は「おもちゃ」として作られているのだから、これも仕方のないところ。むしろ、おもちゃの制約の中で3つも半透明を用意するなんて! と褒めてあげましょう :-)

半透明について

ついでなので、擬似半透明でない「半透明」について、ちょっとだけ書いておきます。スプライトだけでなく、背景との重ね合わせの際も同じです。

よく、プレステの方が半透明が綺麗で、サターンの半透明はなんか汚い…と言われていました。これ、処理方法の違いに起因します。

サターンの半透明は、色の「平均」を取る処理です。加重平均…いわゆる半透明度を付けることもできました。半透明と言えば普通はこの処理。

プレステの半透明は、平均だけでなく各種演算ができたようです。僕自身プレステプログラムを作ったことがないので、詳細は知らないのですが…


半透明平均でない半透明処理として代表的なものとして、スクリーン合成があります。映画のスクリーンの上に、別のライトで絵を投影して重ねた処理、だと考えてください。厳密なことを言えば「半透明」ではないのですが、重なったところは元の画像より明るくなります。

プレステでは、半透明を重ねて「光」を表現する技法がよく使われていました。実際の演算は不明ですが、おそらくはスクリーン合成なのでしょう。元の絵より明るくなる表現ができていました。

それに対し、サターンは色の平均なので、必ず「明るいほうの色が、より暗くなる」決まりでした。半透明で光の表現をするのはできません。


光の表現が無理なわけではなく、グーローシェーディングなどで光源設定して光らせることは可能です。
でも、それと半透明エフェクトは、やっぱり別の問題。

サターンの強烈な支持者だった故・飯野賢治さんは、サターンは油絵でプレステはアクリル絵の具だ、と言っていましたね。油絵は重厚感がありますし、アクリル絵は透明感がある。でも、それが絵の良し悪しではない、という意味合いでした。


処理限界

スプライトの表示限界は、「枚数」ではなく、「ピクセル数」に左右されます。

拡大縮小ができるのですから、大きいスプライトと小さいスプライトでは描く速度も違うのは当たり前です。これを一緒にして「枚数」で語れないのは当然の話。


スプライト表示枚数の公称値は「無限大」となっています(なんだそりゃ)。

…公称値をあきらめて、雑誌インタビューや「開発中」のスペックを参考にすると、どうやら秒間2400万ピクセル、というのが理想状況での性能のようです。

ポリゴン表示に関しては公称値で秒間 30万ポリゴン(テクスチャあり)なので…この表示数も謎ですが、8x8 のテクスチャを「4隅を指定」して表示する(回路的には変形したことになっている)のをポリゴンだとしているのだとすると、1920万ピクセルになります。変形コストは案外かかるのですね。


ともあれ、スプライトなら秒間2400万ピクセルとして、良くゲームで使われる 16x16 ドットで考えると、1/60秒で1500枚程度表示できることになります。

これに、さらに4枚の背景画面を重ねられるわけです。


ライバルであったプレステのスプライト描画能力は、公称値を基に計算すると、同じ条件の2Dスプライトで 1000枚程度になります。サターンと違って、背景もスプライトを使って描画する必要がありました。2画面重ね合わせを想定すると…背景を作るのに500枚ほど使用する必要があります。


となると、2Dゲームを作る際に、見た目上のスプライト表示枚数(背景を含まない)でいえば、サターンの1500枚に対してプレステは500枚。3分の1しか表示できません。

サターンが3Dよりも2Dを重視している、「究極の2Dゲーム機」だというのがお分かりいただけるかと思います。


次ページ: 背景画面


前ページ 1 2 3 4 次ページ

(ページ作成 2013-10-29)
(最終更新 2018-01-26)

戻る     次記事:サターンの3D性能
トップページへ

-- share --

300000

-- follow --




- Reverse Link -