鯨井 亨 (くじらい・とおる)
『SEGA AGES 2500シリーズ Vol.16 バーチャファイター2』 ディレクター

セガ入社後、SEGA-AM2にて、PS2 『エアロダンシング4 ニュージェネレーション』、 PS2 『バーチャファイター4 エボリューション』、PS2 『超時空要塞マクロス』 (発売・バンダイ) などのテクニカルディレクションを手がける。その後、PS2 『SEGA AGES 2500シリーズ Vol.16 バーチャファイター2』 のディレクターおよびプログラマー(グラフィック表示部担当)を兼任。
鯨井 亨 氏


—— 下村さんより、バグもふくめてほぼ完全移植、というお話をうかがいましたが、PS2 と MODEL 2 では、ハードのスペックが違うと思います。開発時に苦労された点などを教えてください。


PlayStation 2
鯨井■ 今回の 「VF2 を PS2 に移植して欲しい」という依頼が来たとき、まず最初にどのような手法で移植するか、を検討しました。

MODEL 2 と PS2 を比較した場合、メインCPU、及び、ポリゴン性能が共に10倍以上も違うので、当初それ程苦労せずに出来るだろうと思いました。
 そこでまず、元のアーケード版のソースプログラムとグラフィックデータを手元に用意して、具体的作業を考えようとしたのですが、この段階で壁にぶつかりました。

アーケード版のリリースから10年も経っていることもあり、“2” の後にリリースされた “2.1” のROMに対応していると断定できるソースプログラムを発見できず、また、グラフィックデータについても当時のCGツール用のデータを発見することが出来ませんでした。

 仮に発見することが出来たとしても、当時のソースをビルドして動かしたり、グラフィックデータを読み込んで確認したりする環境が残っていないため、検証することが出来ません。

そこで頭に浮かんだのは、“エミュレーション(PS2上に MODEL 2 のプログラム動作環境を仮想的に再現する)” という手法でした。

確実なソースプログラムが無い状況で 『バグも含めてほぼ完全な移植』 というミッションであること、また、ハード性能が10倍以上向上していることもあり、この方法しかないと考えました。

幸いなことに、コプロセッサ (メインCPUの演算を補助するCPU) の確実なソースプログラムは残っていたこと、また、BGM/SE/VOICE のデータはサウンドチームに残っていたこともあり、“エミュレーション” はメインCPU処理とグラフィック処理のみで済むので、何とかなると思いました。

ところが、実際に “エミュレーション” システムの開発をしてみると、下記の点に時間が掛かりました。

・メインCPUのエミュレーション性能を出す

最初に動作するようになったとき、他の処理もしなければならないにも関わらず、メインCPUだけでも処理 が全然間に合っていませんでした。
 重たい処理は “エミュレーション” ではなく、一部PS2ネイティブコードに置き換えました。

・少ないメモリで動かす

MODEL 2 では、メインCPU や ジオメトリエンジン (3次元計算や光源計算を行うハード) からアクセスするデータは、広大なメモリ空間にいつでもアクセス出来るように配置されています。
 しかし PS2 ではそれより少ないメモリしかないため、対戦中は各ステージの開始直前に次に必要になる敵キャラクタとステージのグラフィックデータをCDからローディングする処理を追加しています。
 ローディング処理で大変だったのは、アドバタイズの演武デモとエンディングのリプレイデモの対応です。画面を動かしながら、バックグラウンドでは次のシーンに表示するデータをシーンが切り替わるまでに読み込み終わる必要がありました。

・グラフィック表示処理の性能を出す

ポリゴン表示だけなら確かに10倍以上の性能差がありますが、MODEL 2 は 2D表示専用の “スクロール” というハードウェアがあります。 “スクロール” のA/B面毎に “ウィンドウ” という表示面もあるため、最大合計4面の2D面がマスク/連結処理して表示出来るようになっています。
 また、“ラスタスクロール” という水平1ライン毎に横方向へズラす機能があることもあり、PS2でのグラフィック処理負荷の約半分は “スクロール” 表示処理となっています。

・ MODEL 2 と同じグラフィックを出す

スクロール表示の再現も苦労しましたが、ポリゴン表示も大変でした。
 当時のプログラマ向けの MODEL 2 仕様書は直ぐに入手できたのですが、いざその情報だけでポリゴン表示を “エミュレーション” するには予想以上に時間が掛かりました。
 特に、MODEL 2 のテクスチャメモリ内のデータをポリゴンにどうマッピングさせるかは記述が無く、当時の変換ツールのソースを発掘・解析・実験して出来るようになりました。


MODEL 2 全体として、次のような段階を経て完成に至りました。

 1. ノンテクスチャポリゴンモデルを画面に表示する
 2. モデルにグレースケールのテクスチャを張る
 3. 光源計算処理を入れる
 4. テクスチャに正しい色を付ける
 5. 繰り返し模様を正しく表示する
 6. ポリゴンのプライオリティを正しく表示する
 7. エミュレーションで同じ表示に出来なかった箇所を個別対応する


▲テクスチャとカラーパレットの確認画面。

▲モノクロ (色無し) テクスチャモデルの画面。

▲ノンテクスチャモデルの画面。
※画面はすべて、開発機材より出力しました。
 


—— 特に、ポリゴンの表示方法や色味が違うので、かなり苦労したはず、という話もでましたが、具体的にどのように解決したのでしょうか?

MODEL 2 と PS2 をはじめとする現在の3Dグラフィックハードウェアとではアーキテクチャが全く異なりますが、同じグラフィックを表示するためには MODEL 2 と同じ処理をしなければなりませんでした。

・テクスチャ

MODEL 2 では、基本的に1色の濃淡で模様を付けるモノクロテクスチャしか使えません。
 画面に描画される実際の色は、この濃淡のベースカラーと、光源計算結果の輝度値を トランスレータマップ と呼ぶテーブルで1回変換した値との2つで決まります。
 この2つの値から カラーRAM と呼ぶ色のテーブルが参照され画面に色が出ます。

通常の使い方ではモノクロの濃淡しか色が付きませんが、VF2 ではこれらのテーブルを上手く使うことにより、一部のテクスチャに16色カラーを使っていました。

従って、PS2 でも MODEL 2 と完全に同じ処理をする必要がありました。

このため、フラットシェーディング とは言え、Zソート計算と合わせて、通常の グーローシェーディング 以上の負荷が掛かる処理を PS2 でしています。

・Zソート

PS2 をはじめ現在のほとんどの3Dグラフィックハードウェアにおける陰面消去は、Zバッファ を使用してピクセル単位の処理をハードウェアで行っています。
 MODEL 2 では、ポリゴン単位で代表の Z値 を決定しその Z値 を元にポリゴン単位のソーティングを行い、一番奥になるポリゴンから順に描画することで、陰面消去を実現しています。

PS2 では、このソーティングを、ポリゴン各頂点の Z値 を同じ値に設定して Zバッファ に書き込むことで実現しています。

この Zソート は曲者で、代表Z値の決め方が3通りあり、きちんと MODEL 2 のデータの順番に処理を行い正しくZ値計算しないと、ポリゴン同士のプライオリティが不正になり、同じグラフィックになりません。
 現在のハードウェアなら1枚のテクスチャで1枚のポリゴンに収まるようなモデルでも、テクスチャがモノクロであるため、服の刺繍や壁の模様といったモデルも複数のポリゴンを重ね合わせて実現しており、そのため、Zソート が正しくないと MODEL 2 と同じ画面になりませんでした。

・繰り返し模様のテクスチャ

PS2 ではテクスチャの繰り返し回数に上限がありますが、MODEL 2 のデータの一部にはこの制限を超えるデータがあり、このような場合は、元のポリゴンを分割してテクスチャを張り直すことをしています。

・発色の違い

アーケード用のモニタ と 通常のテレビ では、同じデータを表示しても発色の仕方 (特性) が異なります。
 アーケード版 VF2 に何も手を加えずそのまま表示するとハレーション (白色に飽和) を起こしてしまうため、アーケードの画面とテレビ画面を見比べながらカラー設定を調整しました。


—— 昔からの 『バーチャ』 ジャンキーに向けて、特にここは見てほしい、ということなどありましたら、おしえてください。

入力タイミングの再現を見て欲しいと思います。


NEW ASTRO CITY 2 セガサターン版 VF2 を以前移植したスタッフが当時のユーザーから受けた指摘を聞いたのですが、それは 「入力がアーケード版と比べて速い」 ことだったそうです。
 確認してみると、確かに MODEL 2 は 約57.5フレーム/秒 であり、PS2 や当時の セガサターン と比べて僅かに遅かったことがわかりました。これはゲームの処理単位を決めるビデオの同期タイミング (映像のフレームと次のフレームの時間間隔) が MODEL 2 では 17.384ミリ秒 (=約1/57.5秒) であるのに対して通常のテレビでは 約16.667ミリ秒 (=1/60秒) であることが理由です。

セガサターン版スタッフも、このことは理解していて、ゲームの処理単位時間は 1/60秒 から変更できないため、操作感が同じになるよう MODEL 2 の元データにかなり手を入れ調整したとのことです。

PS2版では、“エミュレーション” 手法で動かしているため、ゲームを 約1/57.5秒 で動かすことは技術的に可能でしたが、コントローラからの入力も1/60秒から約1/57.5秒周期に合わせなければ意味がないということで、SCEさんに駄目元で入力周期の変更が出来ないか確認してみました。
その結果、モデル2の入力タイミングの再現に至ったわけです。

是非プレイして、体で覚えている記憶を呼び覚ましてください。



—— そのほか、開発秘話などありましたら、何でも教えていただければ幸いです。

・テクスチャ解像度について、MODEL 2 のテクスチャ用メモリサイズは、PS2 に比べて大きいこと、また、 先に説明したように MODEL 2 と同じ処理をするためグラフィック処理負荷が高かったことから、残念 ながら MODEL 2 の処理が間に合うギリギリのサイズに縮小しています。

・BGM にはセガサターン版のアレンジバージョンも収録していますが、ゲーム中には再生されない2曲 (以前発売されたサウンドトラックに収録されていたとのこと) が入っています。

また、OPTIONS全般、OPTIONS内RECORDS、OPTIONS内CREDITS で流れる3曲は新曲です。
OPTIONS -> SOUNDS -> MUSIC TESTで聞くことが出来ます。



前のページへ 今週のトップへ
SEGA公式今週のトップへ スペース
Copyright(C)2004 SEGA Corporation. All Rights Reserved.