ファミコンの画面について
目次
バンク切り替え
BG とスプライト、それぞれに 256種類だけのキャラクターでは、ゲームを作る際の制限がきつ過ぎます。
初代ドラクエで、主人公がずっと正面を向いていたのを覚えている方も多いかと思いますが、あれはキャラクタ数が少ないための制限でした。
ドラクエ2では、主人公は進んでいる方向を向くようになりました。
実は、1と2の発売の間の半年ほどの間に「バンク切り替え」の手法が編み出されたのです。
バンク切り替えは、「ゲームを通して 256種類」だったキャラクターを、「同時に使えるのは 256種類」に緩和します。
どういうことかと言うと、ドラクエでいえば「町の中」「町の外」「戦闘中」など、状況を区切って使えるキャラクターを変えられるのです。
初代ドラクエはバンク切り替えしていないと思っていたのですが、実際にはすでにバンク切り替えが使われている、と言う情報を、公開後にいただきました。
ドラクエは「誰が遊んでも不自由な感じを受けた」上に、「後のシリーズで解消された」という好例で、他に良いものが思いつきません。
バンク切り替えはあっても、初期のものは容量が少なく、ドラクエの作成では苦労もあったのでしょう。
そのため、「キャラクタ数が少なくて苦労した」例としては、変更はせずにドラクエのままとします。
ただ、「ドラクエは実際はバンク切り替えしていた」ということでよろしくお願いします。
バンク切り替えにより、ファミコンの表現力はかなり豊かになりました。
もちろん、カートリッジの容量が増えれば値段も高くなりますし、無制限に増やすことはできないのですが…
当時の回路設計・製造の技術に、小さな回路部品を集めただけの半完成品を大量生産しておき、作りたい回路に応じて部品の間の配線だけを行う、という手法がありました。
この方法を、ゲートアレイと呼びます。トランジスタ回路(ゲート)をたくさん並べた(アレイ)と言う意味です。
コナミは、独自開発したバンク切り替え回路をカートリッジに搭載し、「ゲートアレイ搭載」と宣伝していました。
バンク切り替えでは、たとえば「キャラクターを全部変更する」だけではなく「一部を変更する」ことも可能でした。
ただ、バンク切り替えが登場しても、当初は「全部一度に」しか変えられませんでしたし、その後も「半分づつ」程度にしか変えられませんでした。
コナミのバンク切り替え回路は、なんと全体を8個(256÷8 = 32パターンづつ)に分け、1つづつ自由に交換することができました。これを使うと、MSX のPCG書き換えによるアニメーションのようなことができます。
YouTube にあった、ファミコンのグラディウスII の動画を引用しておきます。
当時のファミコンゲームとしては敵のアニメーションが滑らかだったり、恒星の炎が常に動いていたりするのは、このLSIの機能によるものです。
メタルスレイダー・グローリー
メタルスレイダー・グローリーは、スーパーファミコン発売後の1991年にファミコンで発売され、唯一の 8Mbit (1MByte) ROM を搭載したゲームです。
ROM が大きいから、バンク切り替えもたくさんできました。これを使って、非常に多くの絵を入れたアドベンチャーゲームです。
「たくさんの絵を入れられる」と言っても、1つづつの画面では今まで書いた制限は変わりません。やはり、ファミコンは非常に絵が描きづらいです。
…にもかかわらず、この絵。当時、ファミコンの限界を超えていると言われたようです。
今から「ファミコン風の絵を描いてみたい」と思う人には、限界点の一つとして参考になるでしょう。
当時は僕は高校生で、ファミコンは「卒業」して MSX2 で遊んでました。グローリーの存在を知ったのは、Wii のバーチャルコンソールで発売になってから。
画面が上下に分割され、上は画像、下はテキストです。
画像はさらに枠に入っているため、224x128 のサイズ。キャラクタ単位で書けば 28x16 キャラクタです。
448 キャラクタあればすべてを埋められますが、それはファミコンなので無理と言うもの。ここに 256 キャラクタでベースとなる画像を描きます。
水平線の位置を色が変えられる 16dot の境界に設定したり、右端の建物の壁も 16dot や 8dot の境界に設定したり、さりげなく描かれていますが、巧妙に計算された構図になっています。
さらに、色が3色では足りない部分…人物と背景の境界付近とか、右上にある看板の色が違う部分とかを、スプライトを置いて表現します。
スプライトが 64 枚使えるので、厳密には 448 キャラクタのサイズを、256+64 キャラクタで埋めることになりますね。
この際も、スプライトが横に8枚までしか並べられない制限を回避するために、縦方向を微妙にずらして置くなど、細かな技術を駆使しています。
先に挙げた画面であれば、立っている女性が横を向いたり、表情が変わったり。派手なアニメではありませんが、セリフに応じて微妙に表情が変わることで、非常に生きいきとしたキャラクターを作り出しています。
…もちろん、上下を分割するあたりの走査線でバンクを切り替えているのです。
その際にはパレットも「テキスト用」に切り替え、登場人物ごとのセリフに色を付けられるようにしています。
ファミコンでは、テキストを1行おきに表示し、濁点半濁点は文字の上に付けるのが普通でした。
この方法自体、ポートピア連続殺人事件が最初に使ったものだと思いますが、このように表示していれば、ファミコンの色が 16x16 ドット単位でしかつけられないことを気にしなくてもよくなります。
文字は通常横に連続するものですから、横方向には同じ色でよいでしょう。そして、縦には最初から16ドットの幅が用意されることになります。
(絵文字文化を広めた i-mode 発売よりも8年も前に、感情表現を当たり前に絵文字で行っています。)
8dot フォントでの漢字表示は、キャラクタ数に制限のない MSX では結構行われていました。
しかし、ファミコンソフトでは少ないのではないかと思います。
ここで示した絵では、画面上に15色を使っていました。…ファミコンの理論上の限界値は 25色ですが、実際には重複して持たないといけない色があったり、25色を使い切ることなんてできません。
先に BG画面で絵を描く例として挙げた、ビッグバイパーは6色で描かれていました。15色「も」使うというのは、驚異的なことなのです。
その中で15色なので、やはりファミコンで多くの色を使うのは難しいのかもしれません。
…技術的な解説をすれば、「あぁ、なるほど」で終わりかもしれませんね。でも、この方法で絵を描くのは非常に大変だったようです。
絵を描くだけで4年半、それも作画者がファミコンの性能を熟知し、構図段階から限界を意識して描いていたのだとか。
詳細は、スーパーファミコン版の「ディレクターズカット」が発売された際のニンテンドーオンラインマガジンにインタビューがあります。