サターンの3D性能
前回は、サターンが究極の2Dハードだった話をしました。
しかし、現実にはサターンでは3Dゲームが沢山発売されましたし、ライバルのプレステは3Dゲームを前提としたゲーム機でした。
普及台数、ソフトの数を見る限りでは、サターンはプレステに敗北を喫しました。これは紛れもない事実。
原因はいろいろ言われています。かなり鋭い指摘もありますし、根も葉もない都市伝説もあります。…そんな噂まで出るというのは、それだけサターンが愛されている証拠でしょう :-)
その中の一つに、サターンは3Dに弱かった、と言う指摘があります。でも、前回書きましたが、表示性能に関してはプレステに決して引けは取りません。
問題は計算性能ですね。これに関しては「CPU を2つも積んだが使いこなせていない」説もよく聞かれます。
今回は、ここら辺の事情を書こうと思います。
目次
セガ・サターン(別ページ)
サターンのCPU(別ページ)
太陽系の惑星たち(別ページ)
細かな話題(別ページ)
3Dゲームの文法
最初に、なぜサターンが「究極の2Dゲーム機」を目指したのかを書きましょう。
3Dに弱かった、という指摘はもっともで、サターンは2Dが機能の中心なのです。3D表現もできるようになっていたけど、決して得意ではない。
じゃぁ、なぜあの時代に、2Dを中心にしたゲーム機を設計したの?
3DO 、サターン、プレステ、PC-FX、そして少し遅れて NINTENDO64。
プレイディアもあるけど、公式にゲーム機ではないことになっているので置いといて(笑)
3DO とプレステと NINTENDO64は、背景面などを持たない「完全な3Dゲーム機」です。
3D機能を一切持たない PC-FX は時代を完全に読み間違えていましたが、サターンも2Dを中心に据えた「時代遅れの」設計でした。
ファミコンの時代から、「3D」のゲームはありました。
ポリゴンなどは当然表示できず、擬似的な3Dではありましたが、ゲーム作者が3Dで表現しようとしたものは、3Dとします。
表示されるテレビの画面というのは、実際には平面です。これは当然のことです。
その中に3D空間を表現するというのは現実的には無理な話で、3Dゲームにはいくつもの「約束事」がありました。
たとえば、地面に落ちる影は、大抵「キャラクターの真下」にあります。言い換えると、X Y Z の3つの座標のうち、Y を「使わないで」描かれるのです。
これは、「2次元のテレビ画面で3次元を表現するのは無理」だから取られた表現方法です。3次元の表現は無理だから、影を2次元で表現する。これは2次元なので把握できます。そして、キャラクターを見ると影には表現されていない「Y座標」の位置も知ることができます。これによって、テレビからは受け取れるはずのない「3D」の位置関係を把握できるのです。
もちろん、すべてのゲームがこの方法を取ったわけではありません。画面からの距離をキャラクターの色で表現したり、一定の基準のある大きさで表現したり…。いずれにしても、3Dゲームには「3Dの表現は無理」と言う自己否定ともいえる前提があり、それでも3Dを伝えようとする工夫があるのです。
平面しか表示できない画面上で、「奥行」をどのように遊ぶ人に伝えるか。3Dゲームの歴史はそのための試行錯誤の歴史でした。
このため、3Dゲームは、それぞれのゲームごとに異なる文法で「奥行」を把握できるようになった人だけが楽しめる、マニア向けのゲームでした。
臨場感がありカッコイイ、遊んでみたい! と思うのとは裏腹に、実際には自分がどこにいるかすら把握できない、マニア以外には理解できないゲームが多かったのです。
サターンや、その他のライバル機の開発は、1990年代の初期に始まっています。この頃にはパソコンの速度競争が激しくなり始めており、アメリカではこの技術を活かした3Dゲームが流行し始めていました。
3Dポリゴン・アクションアドベンチャーの元祖である ALONE IN THE DARK も 1992年。
アメリカで大ブームとなったマイクロソフトフライトシミュレーター Ver.5 が 1993年。
セガサターンの開発開始は不明だが、CPU選定が1992年ごろ。
3DO はこのブームを受けて計画された「3Dに特化したハード」でしたが、発売後の結果は惨敗でした。3Dはやはりまだマニア向けのもので、3Dのゲームが遊べることは販売の決め手にはならなかったのです。現実にはまだ多くのゲームが2Dの機能を必要としていました。
サターン開発時には、発売ゲームタイトルにおける「2D」と「3D」の比率を調査したそうです。3Dのゲームはマニア向けで、当然ながらそれほど発売タイトルも多くありませんでした。
その結果、3Dゲームはこれからもマニア向けのもので、多くのゲームは今後も2Dだろう、と想定されました。このためサターンは2Dを中心とし、3Dも十分に作れる性能を持つゲーム機として開発されます。
実は「ゲームは今後も2D」という想定は今でも間違ってはおらず、さすがにゲームを専門としてきた会社だけのことはあります。
ただ、開発の数年の間に、ゲーム業界は大きく変わりました。変えたのは他ならぬセガ自身が発表した「バーチャファイター」でした。
3D描画の技術を使ってリアルな画像を作り出し、技術の力を見せ付けてくれたゲームですが…技術に目を奪われず、ゲームとしてみると、奥行きのない2D対戦格闘であることがわかります。
ここには、「3Dゲームは奥行きが把握できない」という問題はありません。だって、ゲームとしては2Dなんですから。でも、技術的には3Dなんです。
これからのゲームは2Dか3Dか? というセガの想定を超える、「3D技術を活用した2Dゲーム」という新ジャンルが登場したのです。これ以降、このジャンルのゲームは急増します。
セガサターンの開発が完了し、発売される頃には、このジャンルのゲームが非常に多くなっていました。今後もゲームは2Dだろう、という読みは間違っていませんでしたが、それは3D技術はおまけでよい、ということではなくなっていたのです。
ポリゴン
サターンは変形スプライトでポリゴンを表現しました。これは、前回画面表示技術について書いた際に説明した通りです。
3次元の座標は、回転行列によって空間内を自由に移動でき、透視変換によって2次元の座標に変換できます。この計算を繰り返し、4つの点を2次元に変換したら、その4つの点を頂点として「四角」を描きます。これがポリゴンです。4点で色を計算してグラデーションをかけたり、あらかじめ用意した絵を貼ったりもできます。これらの計算には時間がかかるため表示性能が少し落ちます。
プレステの場合、点を3つにして三角形にするか、4つにして四角形にするか選べましたが、基本的には仕組みは同じ。ですから、ポリゴンの表示能力の差は、スプライトの表示能力の差と同じです。
前回書きましたが、サターンのスプライト表示能力は、プレステの2倍近くありました。意外に思われるかもしれませんが、サターンの方がポリゴンの表示能力は上なのです。
「でも、サターンの方が3Dゲーム苦手だったでしょ?」という疑問を持った方は、もっともです。
後ほど書きますが、3D 空間に置かれたものを、カメラ位置などを考慮しながら 2D に変換する…という演算処理の能力が、プレステは段違いに高いです。
よく、変形スプライトはポリゴンではない、と考えている人がいるのですが、そんなことはありません。サターンは立派にポリゴン描画ができました。じゃぁ、なぜ「擬似ポリゴン」などと呼ばれるのでしょう?
サターンでは、CPU が3D空間内での頂点計算を行い、2D上の画面座標に変換するところまでを行います。そして、任意の4つの頂点を4隅として、スプライトを「変形して」表示します。これで1つの面が描けます。表示したいすべての面についてこれを行えば、立体形状を描き出せます。
ここの説明ではスプライトとしましたが、前回書いたようにスプライトを描画する際には「塗りつぶし」や「ワイヤーフレーム」のみを指定することも、普通に絵を表示することも可能でした。また、4隅に色を指定し、グラデーションを生成して重ねながら描画を行うことも可能でした。これが、テクスチャのあるなしや、グーローシェーディングに相当します。
スプライトのグラフィックは、横方向は8ドット単位、縦方向は1ドット単位の任意のサイズで描けました。横は8ドット単位、というのが少し融通の利かないところで、貼りたい「面」のサイズが微妙に違っても対応できず、面ごとに貼られているテクスチャの解像度が違うように見えることもありました。
沢山ある面を1枚づつ描かなくてはなりませんが、これは開発環境のツールでどうにでもなる問題です。詳細は後でもう一度書くことにしましょう。
つまり、サターンでは「頂点の計算」と「面の描画」が分離していて、面を繰り返し描画することで「ポリゴンモデル」を生成しました。
サターンのポリゴン描画の仕組みとしては、以上です。何も複雑なことはないし、3D専用のハードウェアなんて持っていない当時のパソコンなどでは普通に使われていた方法。これを「ポリゴンじゃない」なんていう人は誰もいませんでした。
いつからサターンが「擬似ポリゴン」と呼ばれるようになったのかはわかりませんが、「擬似」と言うからには他の方法との違いがあるはずです。ここでちょっと、当時の他の「ポリゴンゲーム機」と比較してみます。
まずはライバルだったプレステと比較してみましょう。
サターンが「頂点」と「面」を分離して処理していたのに対し、プレステは「面の描画」を直接行うハードウェア構成をとっていました。プレステに特有の「ポリゴンの間に隙間ができる」という問題は、頂点の共有などを行っていないことに起因します。
ポリゴン表示の際、プレステは内部的には全ての面を「三角形」として扱いますが、これは内部的な話です。面を作るには四角の方が効率が良いため、モデルを作成する際には通常は四角で指定します。三角形「も」つかえる、と言う感じで、サターンとの違いはあまり感じられません。
テクスチャは256x256で用意しておき、面の各頂点がテクスチャのどの座標に相当するのかを指示します(uv座標、などと呼ばれます)。座標は1ドット単位で指定できるため、「場所によって解像度が異なる」ように見えることもありません。この方式は、当時の 3D-CAD で使われる方法と同じで、データの作成が容易でした。
図がないとわかりにくいので、具体的な話を。
まず、ポリゴン形状について。右に、六、七、八角形の分割図を示します。
プレステでも四角ポリゴンは使えます。三角ポリゴンを2回表示するよりも、四角ポリゴンを1回表示するほうが効率が良いため、四角ポリゴンを使用するのが基本です。
六角形と八角形は、分割することで二個、三個の四角の組み合わせで表現できることがお分かりいただけると思います。問題は七角形で、どうしても三角形状が出てしまいます。
プレステでは、このような場合は三角ポリゴンが使えます。サターンでは、三次元の1つの頂点を、テクスチャの四角の2つの頂点で共有することで、三角形にします。(わかりにくいですが、四角の二つの頂点を同じ位置に打てば三角になる、と言う意味です)
というわけで、どちらでも同じポリゴン表現は可能です。方法に違いはありますが、優劣はありません。
つぎに、左図のようなポリゴン形状を作ってみます。ジュースの缶をイメージしたものですが、ここでは六角柱で表現しています。当時は頂点数が少ないほうがよかったため、よく使われた表現です。
缶の側面の模様は、右図のようになっています。
プレステの場合、この画像に対して、缶の各頂点がどの部分になるのか、座標(uv座標)で指定することでテクスチャをぐるりと周囲に貼っていきます。
サターンの場合は、あらかじめ画像を分割する必要がありました。
テクスチャを「貼っていく」と言うよりは、分割した画像をパネルにして面を作っていく感じです。
この例では、分割と言っても単純に切ればよい程度の話で、たいした手間ではありません。この程度なら、ツールを作って対応可能です。
しかし、ここで上面の六角形(四角形二枚に分割する)に、プルタブの絵を描きたい、と考えたとしましょう。
uv 座標指定の場合、四角い絵を描いたうえで、それを六角形に切り出すように uv 座標を指定することができます。これにより、簡単にプルタブを貼り付けることができます。
しかし、四角に分割する方法だと、プルタブの絵は「歪んで平行四辺形になることを考慮して」描く必要がありました。この点は、サターンの方式が明らかに劣っていました。
やっぱプレステの方が3Dが使いやすかったんだ! …と、これだけで言えないのがつらいところ。プレステのやり方は、理論上は間違っていないのですが、実際にはいろいろ問題がありました。
話が少し難しくなりますが、uv座標によって与えられる頂点を結ぶ「辺」は直線です。しかし、実際にはドットで描かれたテクスチャを読まなくてはならないため、折れ線となり形が歪みます。そして、そのテクスチャを貼りつける際も、ポリゴンをもとに計算された領域に対し、ドットとして書き込みます。ここでまた歪みますが、先ほどの歪みとは別の原因で生じた歪みとなります。
これがプレステの弱点とされる「テクスチャが大きくゆがむ」問題です。サターンの場合、読み込みで歪みは発生せず、表示の際のみ歪みます。このため、歪みを考慮に入れたテクスチャを描くのも難しくはありません。
プレステのやり方は、「テクスチャサイズが非常に大きい場合」には、歪みの影響が相対的に小さくなって無視できるようになります。しかし、実際のプレステのメモリは非常に小さく、テクスチャの歪みは無視できない問題だったのです。
3Dとして教科書的なハードを作ったが現実を見据えていなかったプレステと、力技で強引に3D化しているが、現実的なサターン、と言うところでしょうか。ここも、実のところ優劣はありません。
もう一つ、セガが作成した業務用機、「MODEL 1」とも比較してみましょう。
MODEL 1 で作成された「バーチャファイター」は、サターンの発売時タイトルの目玉でした。しかし、MODEL 1 は頂点計算を行うハードウェアを持っていたため、サターン移植に当たっては処理速度の面で苦労したようです。
ちなみに、MODEL 1 の CPU はサターンよりもずっと遅いです。ですからサターンでは頂点計算をソフトウェアでやっても何とか間に合っているわけですが…。
サターンでは、テクスチャ無しの MODEL 1 の雰囲気を残すためか、テクスチャ無しのポリゴンが使用されていました。こうすることで描画性能が上がる、という理由もあったのかもしれません。(テクスチャ無しは秒間90万ポリゴン、ありだと30万ポリゴン)
さて、ここからは少し記憶があいまいなところ。
たしか、サターン発売時の雑誌で、バーチャファイターの移植に関するインタビューがあったと思うんですよ。で、そこで MODEL 1 からの移植の苦労を聞かれ、「サターンではポリゴンを表示する仕組みがあるわけではないので大変だった」というような答えをしていたように思います。
この答え自体は、MODEL 1 とサターンの違いを分かっていれば納得できます。MODEL 1 では3次元座標の指定でポリゴンが表示できるけど、サターンでは自分で計算しないといけないから大変だった、と言っているだけです。
でも、技術を知らない人には「サターンはポリゴンを表示できない」=「サターンは擬似ポリゴン」と言われる原因になっているのではないかな、と想像しています。セガの人へのインタビューですから、公式見解に準じるものとされたのではないでしょうか。
ポリゴンと言うのは概念で、細かな技術のことじゃないです。三角形じゃない、テクスチャマッピングが uv座標ではない、ハードウェアで計算してない…というのは、いずれも事実ですが、それらはそもそも「ポリゴン」の定義ですらありません。プレステとは違う、と言われるのなら理解できるのですが、なぜ「ポリゴンではない」と言われるのかがわかりません。
となると、公式見解に準じるインタビューで MODEL 1 のようなポリゴン表示の仕組みがあるわけではない、という発言が曲解された結果なのではないかな、と思うのです。