PS Vita: WipEout 2048開発者へのインタビュー。
WipEout 2048はPS3版をそっくりそのままVitaに持ってくるという離れ業をやってのけた。ロンチタイトルにおいて、地味なタイトルながらも大変重要な作品だ。
Digital FoundryはWipEout 2048を開発したStudio LiverpoolのStuart Lovegrove氏(Technical Director)とChris Roberts氏(Technical Director of Graphics Tools and Technologies)にインタビューし、PS3とVitaでの開発がどのような点で異なっており、一方ツールやコーディング技術がどこまで共通であるのかを尋ねた。
DF: WipEout 2048の開発とハードウェアとツールの作成は、どの程度並行して行なわれたか。
SL: 終始並行して行った。
CR: SCEはVitaの開発の初期から参加させてくれたので、Vitaで何ができるかは初めから見当をつけることができた。HWのスペックがあまりブレなかったものもよかった。開発でわかったことはVitaのHWやライブラリの開発チームに随時フィードバックした。こちらのコードでコンパイラやコードがテストできた等、SCEにも大きなメリットがあったと思う。
DF: PS3と違いVitaでは全てのユーザが同じディスプレイを使っている。そのことのメリットは。
CR: そんなに。ただ美術担当にとっては頭痛のタネが一つ減っただろう。
SL: HDからSDへの移植が簡単になるというメリットはある。
DF: コーディングと開発の観点から、Cell+RSX(PS3)とARM+SGX(Vita)の主な相違点と共通点は何か。
CR: PS VitaとPS3は全く別。最大の違いはVitaにはSPUがないこと。SPUは気が遠くなるほど速い一方、使いこなすには多くの時間と工夫が必要。WipEout HD/Furyの場合、多くのコードはSPUにありGPUはそれをサポートする役割を担っていた。ジオメトリ演算、ライティング、レンダリングコール等だ。VitaのGPUは携帯機のものとしては極めて高性能で、うまく使えばSPUにも張り合うことができる。ARMアーキテクチャはすばらしくかつ効率的で、大幅な妥協をすることなしに、大変うまくWipEoutのコードを処理することができた。
SL: ARMのパイプラインはコードを非常に高速に処理できた。おかげで最適化はそれほど必要としなかった。ライティングやエフェクトはPS3と共通性が極めて高く、同じシェーダのコードを動作させるができたほどだった。
DF: WipEout HD/Furyでは先進的なシェーダ処理を行っている。Vitaでどうやって対応したか?
CR: WipEout 2048はWipEout HD/Furyと全く同じシェーダシステムを使っている。Vitaでの開発に極めて短期に移るれたのはこのためだ。流石にフレームレートはそのままとはいかなかったが、VitaではHD/Furyのシェーダと同じように処理できた。開発時間の大部分は、シェーダをPS VitaのGPUにあうように手作業で最適化したことだ。
SL: アートの点でも、チーム全体から見ても、PS3とVitaの作業には違いがない。携帯機でそのようなことができたのは初めて。Vitaでの開発は据置機での開発と本当に同じだった。
DF: WipEout 2048のライティングは非常に美しい。技術的な説明をしてほしい。
CR: PS VitaでのライティングはWipEout HD/Furyと実質的に同じ。 違いといえば、PS Vitaのリアルタイムシャドウは、レンダリングの際にシャドウの深度バッファではなくアンチエイリアスのカラーバッファを使用していることぐらいだ。
これによってシャドウに透明性を持たせることができ、アンチエイリアスのメモリコストを節約することができた。4xMSAAのカラーバッファは32bitの深度バッファが必要なのに対して、カラーバッファはピクセルあたり8bitしか必要としないからだ。このため、シップのセルフシャドウは犠牲にしなければならなかったのだが。
WipEout 2048ではポストエフェクトが多少改善された。PS Vitaはハードウェアがサポートするバッファのフォーマットを持っており、露出制御とブルーム効果がWipEout HD/Furyよりも優れたものとなったために、トーンマッピングはより正しくなっている。WipEout 2048では長いトラックのため、より多くのライトマップテクスチャ空間を必要とする傾向がある。幸いなことにSGXは高い圧縮率のテクスチャ圧縮をサポートしているため、長いトラックをを考慮しても、事前計算ライティングの解像度も改善されている。
DF: WipEout 2048は、ビジュアルをPS3版と遜色ないレベルにするためフレームレートを犠牲にしている。その理由は。
CR: プロジェクトの最初期段階で決めた。受け取ったVitaの仕様に従ったものだ。仕様からVitaはPS3と同じレベルの画面を約30Hz程度で処理できるものと予想した。PS3のコードを出発点として、美術チームとの徹底的な議論を並行して行いながら、技術を習得しつつそれを高めていったのだ。WipEout 2048はロンチタイトルであり前提にできるノウハウはなかった。時間は限られていたし、チームには予測でき達成が可能な目標が必要だった。30Hzのが最初から目標だった訳だ。
SL: 常時30FPSは低いとは思わない。携帯機で常時60FPSを出せるレースゲームはほとんどないはずだ。
DF: WipEout 2048でも動的なフレームバッファが使われているか。
CR: 解像度の調整はWipEout 2048でも行っている。 WipEout HD/Furyと同様だ。フレームレートや解像度をロックすると、ゲーム全体を一番処理が重くなるケースにあわせて調整することになってしまう。各フレームがほとんどかわらないような絵を出すゲームであればそれも良いだろう。だが各フレームが非常にランダムで予測不可能なゲームでは、大半のフレームでGPUの性能の半分も使っていないということになる。
WipEout 2048は通常、ハードウェアのネイティブの960x544の解像度でレンダリングしている。だがPS3版と同じく、パフォーマンスを維持するために画素数を削減することはできる。これはVitaのゲームが非常によく管理できる点だ。
フレームがいつ低下するか予測するのは不可能なので、唯一の実用的なアプローチは、V-SYNCが再度まわってくる前に(解像度を落とすことによって)できるだけすばやくFPSを回復することだ。
フレームレートの低下と、たまに起こるティアリングとグラフィック全体的な低下との間で妥協する必要があるということだ。WipEoutはFPSが大きく低下してよいタイプのゲームではない。まれに起こるティアリングを防ぐよりも、フレームレートを安定させる方を選んだ。
PS3版と同様、処理量が最大に達して解像度が最も低くなる場合であっても、プレイヤーにそれとわかるほど顕著なものにはならない。特にゲームをプレイしている場合には。
DF: HWのAA(アンチエイリアス)を使っているか、それともポストプロセスを行っているか。
CR: 使える限りHWのAAを使っている。PS3とのクロスプレイトラックは反射・屈折効果を特徴としているが、これらのバッファには、ビルボードでのクロスプレイトラックと同様に4×MSAAが使われている。 PS VitaでのMSAAのオーバーヘッドは、メモリとパフォーマンスの両面で、他のGPUプラットフォームに比べて間違いなく非常に低いものだ。
POWERVR SGX543 MP4+グラフィックス·コアのタイルベースの遅延レンダリング技術は、Vitaにおいてアンチエイリアス処理の負荷を軽減しており、WipEout 2048でそれをうまく利用できたということだ。
DF: クロスプレイトラックといえば、WipEout 2048がPS3に来るの可能性はあるか。
SL: WipEout 2048のPS3版をプレイしたいかどうか、むしろこちらが聞きたい。
DF: Vitaはスタンダードなアーキテクチャと標準的なチップで構成されている。Vitaは今後数年間、モバイルゲームの最先端であり続けるか。
CR: PS3と同じようにずっと先端でありつづけるだろう。VitaのAPIはペラペラで、ドライバや抽象化レイヤー等はほとんど/まったく含まないライトなものだ。そのAPIにしたところで、全てVitaに専用に設計されている。ファームウェアはOpenGL ESに準拠するためのコードも不要で、ハードウェアに最適化されている。これは標準化されたAPIの一般的な問題だが、幅広く採用され多くの技術者がいることと引き換えに、処理には大量のオーバーヘッドがかかり、最適化も不可能にしてしまうのだ。
SL: ソフトウェア開発の観点から言えば、安定し習熟が進んだプラットフォームでは、次々と置き換わるプラットフォームよりもはるかに良い作品を作ることができる。ゲームを作るのはハードウェアだけではない。
NS:Eurogamer
http: //www.eurogamer.net/articles/digitalfoundry-wipeout-2048-tech-interview
みらい的コメント
WipEout 2048とWipEout HDが近いものだとは知っていたが、コアな部分がほとんどベタ移植だったということはこの記事ではじめて知った。HD機からのベタ移植が可能だとは、Vita恐るべし。
とはいいつつも変態アーキのCellからの最適化は、それはそれで結構難しいというのも尤もだし、これまでに出ているタイトルが、パフォーマンスの点で結構バラツキがあることにも納得がいく。
Digital Foundryのテクニカル記事は毎回面白いのだが、若干長くかつ内容がやや専門的なので、紹介するかどうかいつも迷う。(訳にも時間がかかるしね!)
今回の記事はVita関係で、内容も特に面白かったので試しに上げてみたが、需要ってあるのだろうか?