2015年11月9日 12:00
なぜマリオはキノコを取ったとき縦に伸びるのか - ドット表現の限界への挑戦
なぜ16かというと、8×8ピクセルでは小さすぎてキャラクターが描けないからです。通常時のマリオやクリボー、パタパタなどは、すべてこの16×16ピクセルに収まる大きさとなります。ちなみにシューティングゲームの弾などは小さいので、8×8ピクセルで描かれていました。
さて、マリオはキノコを取ることでパワーアップし、巨大化するわけですが、ここで問題が発生します。
というのは、ファミコンのグラフィックはハードとしての仕様上、スプライトを横に64ピクセル分までしか同時表示できないのです。16ピクセルが1キャラ分ですから、64ピクセルだと4キャラ分。つまり、8×8のスプライトを8個しか並べることができませんでした。
よって、「スーパーマリオブラザーズ」では横に4キャラ(スプライト8個分)並んでしまうと、5キャラ目が表示できなくなってしまうというわけです(表示には優先順位が付けられるので、必ず右端のキャラクターが表示できないわけではありません)。
縦にずれていれば問題ないのですが、「スーパーマリオブラザーズ」では平坦なコースが多いため、キャラクターが横に並ぶ場面が多々発生します。この状況でマリオがキノコを取って横に大きくなってしまうと、ただでさえ少ない64ピクセルをさらに消費してしまい、敵キャラを表示する余裕がなくなります。