スーパーFXチップ
出典: フリー百科事典『ウィキペディア(Wikipedia)』
スーパーFXチップ(スーパーエフエックスチップ、Super FX Chip)はスーパーファミコンの一部のロムカセットに内蔵されているコプロセッサである。
目次 |
[編集] 概説
任天堂の関連会社A/N Software Inc.によって開発され、『スターフォックス』や『スーパーマリオ ヨッシーアイランド』などに搭載された。
「三次元描画方面強化回路」と銘打っており、表向きには3次元コンピュータグラフィックス、ポリゴン技術の性能補強とされている。スーパーファミコンにはグラフィックの拡大縮小および回転を行う機能は搭載されていることが知られているが、こうした機能を最大限に駆使することによって、擬似的に三次元空間描写を行うというものが本当のところである。
この機能はパーソナルコンピュータなどにおいてGraphics Processing Unit(GPU)に相当する回路である。
[編集] 三次元描画の仕組
具体的な仕組みは次の通りである。
スーパーファミコンをはじめとする、いわゆるゲーム機の多くにはスプライトやスクリーンという機能が存在する。これはごく簡単に例をあげるならば、セルアニメにおけるセル画と背景画のように、絵を何枚か重ねてひとつの画面を作り出す電子的なからくりと言える。スーパーファミコンには拡大縮小および回転機能が存在するが、既存のスクリーンの何枚かに対してこれらの機能を用いることで『ファイナルファンタジー』シリーズの飛空挺操縦時に見られるような擬似的に三次元的な演出が可能となる。
しかし、この方法で行える三次元的描写はあくまでも地上や天空といった、凹凸のないものが限界である。簡単なレースゲーム程度であれば、これだけでもそれ相応の表現は可能であろうが、様々な障害物や建造物などの背景を描くことは困難であるし、自動車や飛行機といったオブジェクトの回り込み的な回転は不可能である。『クロノトリガー』のミニゲーム「ジェットバイク」は360度回転可能のレースゲームであったが、これは16方向それぞれから見た絵を個別にスプライトとして持つことで、あくまでも擬似的にこの問題を解決していた。
そこでスクリーンそのものを適当なサイズに切り、いわゆるポリゴン面と見立てて扱うという方法が考え出された。しかしこれを行うためにはスクリーンの枚数をハードウェアが仕様として持つ上限を越えて増やさねばならず、さらに、それだけの枚数のスクリーンを制御するためには補助的な演算装置も必要となる。スーパーFXチップとはすなわち、この「スクリーン枚数の増加」と「演算補佐役」を司る回路なのである。
[編集] 技術的な仕様詳細
初期の番号を付さない、いわゆる「スーパーFXチップ」と呼ばれるバージョンは、21メガヘルツのクロック周波数の処理能力を有していたが、内部的にはその半分である10.5メガヘルツの性能しか出せなかった。後のスーパーFX GSU-2では設計修正が行われ、初期バージョンの問題点が改善され、仕様通り21メガヘルツ相当の性能を引出すことが可能となった。
スーパーFXチップはいずれのバージョンにおいても命令セット、およびその機能の面で互換性を有しており、個々の違いはクロック周波数と出力ピンにある。カートリッジに搭載されるチップの変更される際には、結果を得るためのピンを任意のものに割り当てることで、ゲームプログラム本体の収められたROMやRAMが、その処理結果を参照し、画面に反映させることができた。
[編集] ポリゴン描写機能を持つハードウェアとの違い
ポリゴンとは「多角形」という意味であり、一般には立体的多面体を三角形単位に分解してデータとして持ち、カメラと対象物の位置や角度を計算で求め、前後関係や大きさ、歪みの度合いを弾き出して描画する仕組みを呼ぶ。最近のハードウェアでは演算能力の向上などからほとんど見られなくなってきたが、かつては長方形をした平面に張られたテクスチャーが三角形単位で歪むという現象がしばしば起きていた。これはその長方形をした平面が、歪んでいる三角形単位で1つのポリゴン面を構成していたからである。
一方、スーパーFXチップによるスーパーファミコンの三次元描写は、立体オブジェクトは三角形単位というよりも、平面の枚数で分解される。実際のデータ上ではポリゴンによってモデリングされたものを扱うのであれば三角形単位になりうるが、理論上は少なくともスーパーファミコンとスーパーFXチップの中では、例えば八面体であれば8枚のスクリーンを組み合わせれば再現が可能である。ジャギーの問題を別とすれば、いわゆる「透明色」を用いることで、複雑な形状をした平面を作ることができる。
[編集] テクスチャーマッピング
こうした仕組みのため、演算的には三次元処理を行っていても、スーパーファミコンとスーパーFXチップによる三次元描画はポリゴンとは呼べないとする解釈もあるが、しかしこの方法による解決を行ったため、スーパーファミコンは、ハードウェアとしての性能は初代のプレイステーションやセガサターンに劣りながらも、擬似的にテクスチャーマッピングを施した「擬似的三次元グラフィック」を実現できた。
一般にポリゴン描写機能の場合、三角形単位による画面上の座標位置を算出し、それぞれを頂点とする形状に、マッピングされるべきテクスチャーの回転や歪みを行って張り付ける。このため、単に三次元演算を行うだけではなくテクスチャーの歪みを改めて処理し、表示するプロセスを要し、それだけハードウェアへの負荷は大きい。
スーパーFXチップでは、最初からグラフィックスの描かれているスクリーンを操作しているだけであり、こうした負荷を回避し、ハードウェアの性能レベル以上という三次元描画を見かけ上ではあるが実現している。
[編集] 限界や問題点
過剰な負荷を避けることで三次元描画を可能にしたスーパーFXチップではあるが、この方法には問題点もある。
ポリゴンによる描画では、シェーディング、レンダリングの仕様にもよるが、複数のオブジェクトが衝突し、立体座標において重なった場合、いわゆる「ポリゴンの喰い合い」が生じる。これはオブジェクトや背景同士が貫通し合うという現実には有り得ない絵を生み出す原因にはなるが、パーツを組み合わせて人体を作るなどの「間接ポリゴン」によるオブジェクトを可能としているなど、メリットも多い。また、ゲームでは多くの場合、衝突判定によって次の描画フレームではお互いのオブジェクトは反発しあって引き離されるため、あまり問題になることもないといえる。
しかしスーパーFXチップによる擬似的三次元描画では、スクリーンの拡大縮小や回転によってポリゴン面のようなものを作り出しているに過ぎず、仮にオブジェクトが衝突しても、それぞれのスクリーンがカメラから遠い順に描かれていくだけであって、そのスクリーンが他のスクリーンと喰い合ったり貫通したりということは有り得ない。従って喰い合うような状況を極めて避けねばならないし、衝突判定は大きく取る必要もあった。また、他オブジェクトや壁などの障害物と大きく喰い合う状況を作りかねない高速度のレースゲームなどは結果的に困難であり、開発されることもなかった。『スターフォックス』では『F-ZERO』で登場した架空の反重力発生装置である「G-ディフューザーシステム」を使用しているという設定により、地面との接触を回避する理由付けがゲーム要素として盛り込まれていた。スーパーFXチップによる擬似的三次元描画技術の開発とG-ディフューザーシステムという設定のどちらが先にあったのかはともかく、この設定の所以によって「衝突が発生しづらい」状況をシナリオの側面から人為的に作り出していたことになる。
この他、ポリゴンによる描画では、そのポリゴン面をリアルタイムに変形させて人体の間接や、オブジェクト自体の滑らかな動きを作る、いわゆる「変形ポリゴン」という技術が存在する。スーパーファミコンではこうした表現は不可能とはいえないが、スクリーンの透明処理や分解をリアルタイムに行う必要があり、処理能力的に困難であった。
さらに通常3次元コンピュータグラフィックスにはワイヤーフレーム、フラットシェーディング、グーローシェーディングなどがあるが、スーパーファミコンによるこの方式ではワイヤーフレームによるグラフィックと面を張ったグラフィックとは、根本的に別物である。また、いわゆるフラットシェーディングのような描画しかできず、グーローシェーディングという概念自体が存在しない。
[編集] ワイルドトラックス
スーパーFXチップといえば『スターフォックス』が有名であるが、この回路の機能を最大限に引出した作品としては『ワイルドトラックス』が挙げられる。見た目はフルポリゴンによるレースゲームであり、セガの『バーチャレーシング』を小規模にしたようなイメージである。マップ、すなわち地上が全て三次元描画となっており、道は勿論、凹凸や立体交差も存在するため、使用されたスクリーンの枚数は極めて多い。絵の描かれた看板も登場し、スーパーファミコンの限界に挑んだ意欲作といえた。
このような表現が可能であったのも、スーパーFXチップによる描画がポリゴンではなく、あくまでも擬似的三次元であったことによるものである。また、喰い合いが起こせず、著しい衝突を避けるため、レースゲームとしてはむしろ重たく挙動の悪いクルマであり、スピード的な爽快感は抑えられていたが、それを逆にゲーム性として盛り込む工夫が施されていた。
ステージによっては水上に掛かる橋があり、コースアウトすると落水する。しかしここでも水面に自機を沈めるといった表現は「ポリゴンの喰い合い」が描けないために不可能であり、コースアウトした直後、視点設定がどのようになっていようとも自機を画面外に出して水面だけを表示し、フェードアウトさせるという演出を以ってまとめていた。
[編集] 備考
スーパーFXチップの搭載されたロムカセットとは、つまりプログラム本体が書き込まれたROMのほかに、くだんのチップが組み込まれているということになる。ところでスーパーファミコンはファミリーコンピュータと同様に、ソフトウェアの記録されたカートリッジ式のロムカセットを本体に差込むハードウェアであるが、この先代であるファミリーコンピュータの頃からこのようにプログラム本体以外のアクセラレーターを積むという考え方は存在した。
特にファミコン時代中期以降になると常套手段のように行われたものが音源チップの搭載である。ファミリーコンピュータ本体の同時発音数の上限は3声であり、音楽的にいえば主旋律(メロディー)と伴奏とベースで使い切ってしまうという代物であった。効果音を鳴らすときには、いずれのチャンネルを効果音発声用に回さなければならない。幸いファミリーコンピュータにはカートリッジのピンの1つがアナログ信号用に割り当てられており、ロムカセット側に音源を搭載することでチャンネル数を増やしたり、倍音成分を追加して多彩な音色を作り出すことが可能であった。ファミコン時代後期にリリースされたソフトの中には人間の声を喋らせたり、10チャンネルを越えるシンセサイザーを搭載したものも登場した。