SFCの「ファイナルファイト」と「スーパーマリオカート」はどうやって3Dを表現しているのか?

「スーパーマリオカート」は「Mode 7」を利用している。これは1枚の2D背景平面を回転・拡大縮小・アフィン変換し、さらにスキャンラインごとに変換量を変えることで、地面に遠近感を与える仕組み。一方、ゲーム内部ではコース上のX・Y位置とは別に、ジャンプなどの高さZを扱うことができるのは「ファイナルファイト」と同じなんだよね。

「Mode 7」では、1枚の2D背景平面に回転・拡大縮小・せん断などのアフィン変換をかけることができるような設計になってる。これに加え、走査線ごとに変換パラメータを変えることで、手前は大きくかつ奥は小さく描画して、平らな背景をあたかも奥へ伸びる地面のように見せることができるのだ。これが「スーパーマリオカート」の凄いところなんだ。

だから複雑さで言うと、むしろ「Mode 7」の変換アルゴリズムの部分を除けば、むしろ「ファイナルファイト」のほうが天才的な方程式による描画が出来ているって言っても良いとは思う(描画の軸と判定軸とは別になっている点で)。かって猫忍者コアの作ってた、C&Cの古典的な2.5Dゲー「金マイライフ」も、確か「ファイナルファイト」と同じように作られてたと思うな。

まったく同じ文言で繰り返すんだけど、巷で言われているように「SFCは3Dが出来ない」わけじゃないんだ。「SFCは3D描画機能が弱い」だけであって(特にポリゴンの取り扱いができない)、「3Dのゲームが作れないわけじゃない」んだよね。エンジンが2D向けに作られているからといって、3D表現が根拠なく出来ない、というわけではない。むしろZ軸の取り扱いは変数で可能なのだ。

ただ、ポリゴン処理で(X,Y,Z)こう投影は出来ねえ。これは合っている。その代わりに3Dみたいに見せるため、(X,Y)+Zとしてる。