ゲームボーイの背景面とウィンドウ2017年12月16日 00:19
この記事はGame Boy Advent Calendar 2017の16日目です。
15日目はtakeshi0406さんのPythonプログラマーがGBでチップチューンを始めて変わったこと・驚いたことです。
17日目はch3coohさんのゲームボーイアドバンスのカセット収納ケースの決定版です。
15日目はtakeshi0406さんのPythonプログラマーがGBでチップチューンを始めて変わったこと・驚いたことです。
17日目はch3coohさんのゲームボーイアドバンスのカセット収納ケースの決定版です。
一般的な2次元ゲーム機の画面は背景面とスプライトからできている。
ファミコンでは背景面が1枚だけだったのに対し後年のゲーム機は複数枚の背景面を持つのが当たり前になり、多重スクロールなどの技法で差を見せつけたものだ。
さてゲームボーイだが、これが背景面は1枚だけなのだが、特徴的な「ウィンドウ」という機能を持っていて、背景面1枚ではできないような表現が少しだけ実現できる。いわば背景面1.5枚とでもいえる面白い仕組みだ。
背景面が2枚あると、2枚の絵を用意してそれらを重ねて動かすことができる。上の絵の透過しているところでは下の絵が見える。
対してゲームボーイは、扱える背景面は1枚だけなのだが、その背景面の右下の一部を「ウィンドウ」の内容で置き換えたものを表示できる。
図で示すと分かりやすいだろうか。
例えばこのような2枚の絵があったとして、


背景面が2枚あるとこういうことができる。

一方、ウィンドウではこういうことしかできない。

これを何に使うかというと、最も一般的な使い方は画面下部にステータス表示を出すことだ。
ウィンドウ側に書いたステータス表示を固定したまま、画面の残りの部分を自由にスクロールすることができる。
ファミコンで同様のことをするにはラスタースクロールが必要だが、ゲームボーイではウィンドウのおかげで画面下部に出すなら同じことを楽にできる。(ウィンドウの制限として、上部にはできない)
例はいくらでも見つかると思うが、とりあえず「ゼルダの伝説夢をみる島」を挙げておこう。ポーズをかけるとウィンドウ部がそのまませり上がってくる独特の挙動を示す。

この作品、恐らく1画面の*ゼルダシリーズで唯一ステータス表示が画面下部にある。ゲームボーイでは画面上部にステータスを出すことが困難だったことの証左だ。
なお同じゲームボーイ(カラーだが)でも「ふしぎの木の実」では恐らくラスタースクロール的に頑張って画面上部に出している。
* 2画面のゼルダでは2画面の中央あたり(下画面上部・上画面下部)だったりする
ステータス以外にも、背景面に描いた大きな物体の下部を隠したい時に使える。
例えばこちらは「パロディウスだ!」の猫戦艦。水面から出現するところにウィンドウが使われている。

ここで背景面が2枚あれば波の間を透過できたところだが、ウィンドウではできない。
さて下に何か出すだけならラスタースクロールでもできる。
ウィンドウでは、画面の右側にも何か出すことが可能だ。(左にはできない)
「F1スピリット」がそのような表示を使っている。
左右に分割するのはラスタースクロールでは不可能だ。
ファミコンで同様の表示をしたゲームには「ロードファイター」があるが、
これはスプライトで書かれているので、(ゲーム画面本体も含めて)複雑な内容は表示できない。
変わった使い方としては「ポケットモンスター金・銀」の英語版。

一見何も変わったところは無いように見えるが8×8のグリッドを描いてみると…

画面の左側だけ文字の配置が3pxずれている。背景が1枚なら普通には8ドットのマス目に沿ってしか文字は表示できないはずだ。
これは右半分だけウィンドウに描画した上でずらして重ねているのだ。
さり気ない、しかし重要な使われ方だ。
最後に「P・マン(原題 Prehistorik Man)」を紹介しよう。
このゲームは凄まじいゲームで、飛び跳ねるアイテムを背景面を書き換えて表示したり、パースの付いた文字が流れたり、ライン中に画面を書き換えて文字を表示したりと様々な技術が詰め込まれている。
そんな中でウィンドウが使われているのがオープニングのこの画面。

主人公と木がスプライト、引かれている枠がウィンドウだ。
下が切れているがこれはラスタースクロール的に消しているのだろう。
ウィンドウの制限として枠が決して画面右端から離れられないのだが、その制限を感じさせないところが上手い。
以上、ウィンドウが特徴的なゲームを挙げたが、この機能はもうちょっと面白い使い方ができそうな気がしてならない。
巨大な敵を真っ二つにするとか、ラスタースクロールと併用して右上に行く階段とか、右半分を自由な形に隠すとか(左はスプライトでどうにかする)。
暇があったら何か作ってみたい。
2017/12/16訂正: 「ロードファイター」について、1ドットずらしだと記憶していたのだが、実際には単なるスプライトだと指摘をいただいた。1ドットずらしの技法はどこかで読んだ気がして、確かこのゲームだと思っていたのだが、記憶は当てにならないものである。
2017/12/18更新: 前日と翌日の記事が投稿されていたのでリンクを張った。
Post time : 2017年12月16日 00:19│Comments(0)