ここ2週間の埋め合わせとはいえこう毎日代わる代わるイタリアンデートに付き合わされていては幾ら何でも忙しない。前回からあんまりFFが進まないつかプレイする時間が無い。。。ストーリーを忘れてしまうよ!
コツコツなんとか4章までいきました。楽しい。ライトニングが彼女DLL:Bに似ていて本人にしか見えなくなってきた。なんか性格もちょっと似てるし。ヤツはPS3持っていないのでこの事は知らない。もう一度言うが俺はMじゃない。

 その上、これだけ呑み食いしていては太ってしまう。俺は結構太り易い体質なのだ。
運動や筋トレは大好きなので色々と頑張りながら常にベスト体重から1~2段下の体脂肪率を20年保っているが、それでも油断するとすぐに2kgくらい増える。
忘年会シーズンなんて大嫌いだ。嘘だ、大好きだ。

  前回のFFネタエントリー「外資系現代ゲームプログラマが、国産代表作FF13でお茶吹いた」において、興味深いコメントを頂いたので一件エントリーを組んでみた。
無記名の方からのコメントでしたが、エントリー作りのヒントになりました。有り難う。


 前回、まだ序盤ではあるがその時点までに判断できる事に限って言えば、FF13は総合的に大変な傑作であるという褒め褒めエントリーに対し、以下の様なコメントを頂いた。

 くだんのコメントだ。

>4. 2009年12月19日 13:31
>リアルタイムシーンの
>フレームレートの低さは気にならなかったんですか?


 なるほど。
これは確かに提供者としての意識をお伝えしておくべき内容だ。

 フレームレートという表現だけが先行している感があるが、通常、あくまでも「良質なゲームにおいての通常」は、フレームレートと引き替えに画像クオリティが高まっているという事を認識しなければならない。単に技術不足なメーカーが処理落ちしまくっているゲームを作っている事とは異なり、ここはトレードオフの問題なのだ

 我々プログラマは、開発の早い段階においてチーム全体にある決定を迫る。「フレームレート維持」か、「雑誌掲載受けを重視するか」。
タイトルにより千差万別であるが、まあ大まかに言えばこの様な内容だ。

 レースゲームを担当しているチームなのであれば、答えは自ずから前者になるであろう。チーム全体がそう思う筈だ。我々プログラマ側からの設問はあくまでも形式的な物になるであろう。フレームレートガタガタのレースゲームなんざプレイ出来たモンではない。
 アクションゲームならば事情はやや微妙だ。競合作品との瞬間静止画での競争力の為に常時30フレを選択するタイトルが大半を占めるであろう。
しかしFPS等はこれを許さないユーザーも多い。

 フレームレートを落した方がより多くのリソースをレンダリング出来る点は言わずもがなであるが、ともあれ低フレームレートは雑誌向けの静止画などにおいて大変に有利だ。広報スキルが激しく売り上げを左右する現代ゲームにおいて、高フレームレート維持をプログラマの意地だけで選択出来る時代ではない。
大半はまず政治であり、そのゲームジャンルの方向性であり、最後にプログラマのマンパワーが発揮される。どの選択枝においても我々プログラマの仕事は変わりはない。最善のパフォーマンスを目指すのみだ。

 勿論、ジャンルによってチューニングの方法は異なる。
ここは少し、プログラマのパフォーマンスチューニング事情にも触れてみよう

 所謂無双系であるのならば、まずはデザイナ陣へ高度にマテリアル最適化を促した上で、姿勢行列パレットの更新のみで次々と何百体ものスキンモデルを描画出来る様にエンジンをカスタマイズするであろう。各個体の姿勢行列は当然ダブルバッファだ。恐らく100本以上にもなるボーン行列の更新は別のコアの仕事となり、描画パケットとしてキックしていく仕事とは分ける事になる。ここに物理系のエンジンが介入するならばトリプルバッファも視野に入れる。
レースゲームであればスキン系のシェーダー起動を最小の優先に落とし、まずは地形情報に特化した設計となるわけだ。動的ロード及びマテリアルソートは当然。かなりの遠方までレンダリングしなければならない以上、手前から不透明物を描画。全体描画フェイズのかなり早い段階でシーンZ値を確定し、ピクセルシェーダーの起動回数を大幅に制限する事になるであろう。

 この様に、フレームレートの決定にはまずはジャンルによって様々な実装方法があり、デザイナの求めるリソース量が有り、何よりも政治的広報的な理由があるのだ。


 FF13を見てみよう。

 なるほど確かにプリレンダのムービーは腰を抜かす程に美しい。
しかし、リアルタイムのシーンへの移行後はフレームレートが落ちている。


 hmm。だから何だというのだ?


 いいか?良く聞くんだ。
RPGなのにここでFF13が強引にフレームレート維持方針を採っていたならばどうなっていたのか、それを超リアルかつ超マメにシミュレートして差し上げよう


 まず、制作されたムービーがあり、リアルタイムシーン班が動く。
現状のFF13ではプリレンダと相違無い程にモデルが素晴らしい。これはFF12辺りでもかなりの職人技であったが、更に昇華されている。一般の人には見分けがつかないのでは無いかという完成度だ。

 フレームレート絶対維持であるのならば、まずはここへ大幅な手が入る。ポリゴン数は3分の1。背景シーンは4分の1だ。PS3ではバーテックスシェーダーが使い物にならずSPUが代行している。SPUには他にも沢山の仕事があるため、まずはポリ数が削られていくのだ。

各種ポストエフェクトも大幅カット。
まずはトーンマッピング。平均輝度を求める為の全スクリーンピクセルシェーダー->半スクリーン->8分の1スクリーン->etc.平均輝度算出後の再度のフルスクリーンピクセルシェーダー。だいたいこれで合算3ミリ秒かかる。即カットだ。これにより色味に味も何もないPS2の様なクオリティへ落ちかける。

 シャドウ系も投影のみだ。キャスターは主人公達のみになり、レシーバーは背景のみになる。「主人公達の影だけが背景に落ちる。勿論主人公達自身の足や腕には影がおちない」という事態だ。所謂PS2だ。

 被写界深度系は単純な処理ではあるが、やはりフルスクリーンQuad走査だ。2ミリ秒程度か。渋々カットだ。ここで単にポリ数の多いPS2と化す。

 ポストエフェクトは残すところブルーム等がある。まあこれも数ミリかかるが幾ら何でも切れない。が、これしか残っていないためやたら係数を上げて、無駄にビカビカさせるしかない。HDRなんてやっていないけれど、やっているかの様に見せなければならない。もうピッカピカだ。道ばたに落ちている白いゴミ箱とかもビカビカに光る。
まぶしいゲームだ。
まさにPS2後期のゲームだ。

 ここまですれば全編においてフレームレートを維持したFF13が出来上がるであろう。超美麗なムービーの後に、イキナリ前時代へ立ち返った様なギャグとしか思えない素ポリのビカビカ光るローポリゴンシーン、だけれども「ヌルヌル動く」リアルタイムデモが流れる。


 こんなん、世界中が悲しいわ!w

 

 まあ面白おかしく書いてはみたのであって、少し大げさな点は申し訳無い。
要するにここまでとは言わないまでも、十分に優れたプログラマが担当しているプロジェクトにおいては、フレームレートだけに目を向けさせてしまった場合にはこういった悲劇が現実に起こりうるのだ。
この辺りはまさしくバランス感覚であるのだ。
静止画を綺麗に見せたい。しかしフレームレートは確かに高い方がユーザーは嬉しい。だからと言ってそれだけに注視していては販促で不利になる。

 この辺りのバランス感覚は各社のスキルであると言って良い。俺達も俺達なりの方策を持っているが、FF13が採った決断に何の不満点もありはしない。

ここまでのプレイで見たところ、最大で瞬間最低風速20フレ程度にまで落ちているかな。15は無い様に思うが詳細はともかく。

 ほんと、だから何なの?
プリレンダに迫るほど綺麗じゃん!
腰抜かすほど綺麗じゃん!
そもそもデモじゃん!
ライトニング超可愛いじゃん!

 

最後の一行は、俺の性的な戯言なので無視してくれ。
つーか、無視しろ。
お願いだ。