Project Scorpioのネイティブ4Kに落とし穴はないか? ゲーム開発の多様化について考える

 Project Scorpio(コードネーム。以下,Scorpio)の最終仕様が発表され,今年末にはScorpioが実際に発売され,SIEとMicrosoftの中間世代のゲーム機が出揃う。性能はアップしているものの,次世代機ではなく,既存の機種の上位版という位置付けのゲーム機に対してはどんな注意が必要なのだろうか。公開された性能指標はどのように解釈すればいいのだろうか。ここでは公開された性能指標をもとに,ゲーム開発でマルチプラットフォーム展開を行うという前提条で,これらの中間世代新機種にはどのように対応していけばいいのかを探ってみたい。なお,スペックについては,先に4Gamerでの西川善司氏による考察を先に読んでおいてほしい。


GPUの演算性能とゲーム性能


 まず,確認しておくと,PS4 ProもScorpioも旧世代機種で動かないゲームを作ることは推奨されていない。PS4 ProとScorpioに対応したゲームを制作するというのは,PS4,PS4 Pro,Xbox One,Scorpioの4機種に対応したゲームを作るということになる。おそらくはPCを加えたマルチプラットフォーム展開というのが,多くのゲーム会社の望む展開であろう。しかし,それぞれ性能が違うのでゲームの仕様も変わってくる。最初にそれぞれの性能を確認しておこう。

 PS4もXbox OneもAMDのSoCを使ったソリューションであり,基本的なハードウェアの構成要素はほぼ共通している。もともとメモリの構成やGPUコア数くらいしか大きな違いがなかった。
 ゲームハードウェア性能のうち,ゲーム性能はほぼGPU性能と同義となる。CPU性能での違いもないではないが,割合としては非常に小さいのが常だ。昨今のGPU性能は,ほぼ演算能力と直結しており,演算性能をもって大雑把にゲーム性能を見積もることが可能だ。これは現在のゲームグラフィックスが1ピクセルごとに多くの浮動小数点演算を行って,そのピクセルの色を決定しているためであり,GPUの浮動小数点演算性能が2倍違えば,ゲーム性能もだいたい2倍違うと思ってほぼ間違いない。
 参考までにGPUの性能指標となるTFLOPS値(1秒間に何兆回の単精度浮動小数点演算ができるか)を示すと以下のようになる。


 一方で,描画ピクセル数が増えると,ほぼピクセル数に反比例してフレームレートは低下する。1画面ごとに必要な演算力がピクセル数分だけ増えるのでこれは分かりやすいだろう。いわゆるフルHD解像度(1920×1080ドット,以下フルHDないし2K)に対して4K解像度(3840×2160ドット)では4倍の演算能力が要求される。同様に,30fpsのゲームを60fpsにするには倍の演算能力が必要だ。

 フルHDを対象にした旧世代であれば,PS4の仕様から少し削ってXbox One版を作る,ないしXbox Oneの仕様を少し盛ってPS4版を作るといったアプローチになるはずだ。これに新世代が加わるとどうなるか。

 上のTFLOPS値から見て分かるように,Xbox Oneの上位版となるScorpioとPS4の上位版となるPS4 Proは,それぞれ旧機種に対して,4.58倍,2.28倍の性能を持っている。これらの新機種は,ともにAMDのPolarisアーキテクチャによるGPUコアを搭載して4K解像度をターゲットとしているが,両者のコンセプトは少々異なる。
 PS4 Proの性能比2.28倍というのは,4K化に必要な4倍を大きく下回っているのに対し,Scorpioでは4倍を上回るパワーが与えられている。これはPS4 Proは擬似4Kで4K出力をするように設計されているのに対し,Scorpioはネイティブ4K出力をするように設計されていることに起因する。

 PS4はだいたい3通りの4K出力法が想定されている(参考記事)。
 まずはスケーリングだ。画面の負荷に応じて,4Kより小さい大きさでレンダリングして,最後に4Kに拡大して映像出力するという方法である。これは実装が簡単で,負荷に応じた調整ができる。もちろんネイティプ4Kと比べてる画質は落ちるのだが,動きを重視する場合には最も有効な手法となる。SIEではスケーリング用に非常に高性能な専用ハード機構をGPU部分に搭載しており,非常に使い勝手のよいものとなっているのも特徴だ。

 次に,描画のエッジだけを高解像度化するジオメトリレンダリングだ。アンチエイリアス用にZバッファだけを4K化して,レンダリングは2Kのまま主にエッジ部分を4K化する手法である。実際のところ,フルHDの画面と4Kの画面を見比べて,エッジ部分以外で違いを検出できる人はほとんどいない。基本的に2Kレンダリングなので互換性もとりやすく,多くのゲームで非常にリーズナブルな4K化手法となる可能性は高い。やろうと思えばパワーアップされた分の演算能力をほかのレンダリング技術に投入できるなど,これはこれで楽しみなソリューションだ。

ジオメトリデンダリングによるinFAMOUS First Lightの4Kスクリーンショット
Project Scorpioのネイティブ4Kに落とし穴はないか? ゲーム開発の多様化について考える
上は画像を加工して2K相当にしてみたもの。下はジオメトリレンダリングでの部分拡大図

 最後にチェッカーボードレンダリングによる4K化がある。これは画面を市松模様状に1ピクセル飛ばしで4Kの半分のピクセル数をレンダリングし,残りは周辺や直前のフレームの画素から補間するという手法だ。オブジェクトIDや動き検出,直前フレームとはレンダリングピクセルの位置を入れ替えるなどの手法で非常に高精度に補間を行う。補間には,GPUのアンチエイリアス機能が利用されるので,余分な負荷はほとんどかからないという,ある意味とてもスマートな4K化手法だ。レンダリング負荷はフルHDの2倍,4Kの半分なので,PS4 Proはこのモードを前提に設計されていると思われる。

 気になるのは擬似4Kとネイティブ4Kでどれくらい違いがあるのかだ。PS4 Proのチェッカーボード式4Kで作られているゲームとしては,「Call of Duty: Infinite Warfare」「Horizon Zero Dawn」「Rise of the Tomb Raider」などがあるのだが,おそらく画面を見ても擬似4Kであると分かる人はほぼいないと思われる。しかし,すでに改良版のアルゴリズムも存在するので,画質的になんらかの瑕疵はあるのではあろう。

Project Scorpioのネイティブ4Kに落とし穴はないか? ゲーム開発の多様化について考える
チェッカーボードレンダリングによる4Kスクリーンショットと部分拡大。ネイティブ4Kと変わりなさそうな部分もある半面,2×2ドットの構成要素が少し目立ったり,エッジのアンチエイリアスの入り方が少しおかしい部分もある

 対するScorpioは「ネイティブ4K」をウリにしているので,素直に4倍のピクセルをレンダリングする。1.31TFLOPSのGPUがフルHD解像度で60fpsを出せるところ,6TFLOPSのGPUが4K解像度で60fpsを出すことにはとくに不思議はない。計算上は87%のGPU使用率となるはずだが,実際のところ66%程度だというのなら,GRAMの高速化など(もしかするとDX12化も?)が効いているのだろう。計算上は4.58倍のパワーアップが行われているので,Xbox Oneのゲームをネイティブ4K化(描画負荷4倍)するのに必要な演算パワーは十分に有している。

 さて,ScorpioのGPUはRadeon RX 480相当だと説明されている。Xbox Oneと比べて4.5倍の性能というのはいいのだが,ではPCの場合で考えて,RX 480で4Kのゲームが動くかというと,最高品質では難しいという結論になる。もちろん動作はするが,60fpsをキープするには多くのゲームで画質設定を調整する必要があるだろう。つまり,PCのフルHDクオリティレベルとXbox OneのフルHDクオリティレベルは同じではないのだ。おそらくPS4をそのまま4K化したものと比べても見劣りすることになるだろう。
 MicrosoftではScorpioでテクスチャフィルタリングの変更や4K用アセットの使用などを推奨しているのはこれが要因かもしれない。これはScorpioでちゃんとクオリティを出そうとすると,多少開発に余分な手間が必要になるということでもある。


本当にネイティブ4Kは凄いのか?


 以上のように,旧世代機はフルHD,新型は4Kをターゲットにするのがごく自然な流れである。

 ScorpioとPS4 Proで4Kモードに対応し,PS4 Proではチェッカーボードが主流になったとした場合,1ピクセルの描画あたりに割ける演算パワーを見てみよう。Xbox Oneを1.31(TFLOPS値だが,ここでは指標として使用)とすると,

 Xbox One 1.31
 Scorpio 1.5
 PS4 1.84
 PS4 Pro 2.1

の割合となる。
 現状のPCハイエンドであるGeForce GTX 1080Tiの場合,ネイティブ4K解像度時に2.835なので,PS4 Proのチェッカーボードレンダリングはかなり効率が高いともいえる(チェッカーボード以外の方式を使うと数値は倍近くになるだろうが)。
 もちろんScorpioでチェッカーボードやスケーリングをやればもっと凄いことになるわけだが,少なくとも現時点ではMicrosoftはネイティブ4Kにこだわったアピールを行っており,実際にそれを行うだけのパワーがあるのも事実だ。これはPS4 Proにはマネできない部分であり,最大の強みであることは間違いない。とはいえ,上記のようにPS4 Proがチェッカーボード前提のシステムだと考えると,その方針は必ずしも有利とはいえないかもしれないことが分かるだろう。

 4K対応ゲームが出てきた場合,ネイティブレンダリングという意味でのクオリティではScorpioが優位になるが,解像度以外の追加レンダリング要素などを加味するとPS4 Proのほうがクオリティが高いという評価になることもありそうだ。そもそも,普通の人には2Kと4Kの見分けがつきにくいという実験結果もあり,下手をするとPS4版のほうが綺麗に見える可能性すらある。Scorpioの開発では4K対応がMUSTであるのは当然として,性能分の期待を裏切らない絵作りをするにはかなりの努力が必要になるかもしれない。

 ピクセル単位の演算量で前世代との比較を行うとちょっと面白い結果となる。

PS4 → PS4 Pro 1.14倍
Xbox One → Scorpio 1.15倍

 つまり,どちらも前世代機用のゲームに15%程度の負荷となる追加要素を入れて4K化(擬似4K化)を行うとちょうど計算が合うわけだ。

 念のためにいっておくと,演算能力が高いというのは必ずしもよいことばかりではない。同じアーキテクチャとプロセスのコアであればワットあたりの性能はほぼ同じなので,ScorpioがPS4 Proに対して1.5倍の演算パワーを持つということは1.5倍の消費電力と発熱になると考えていい。チップの価格も当然上がる。現時点で,Scorpioの価格は700ドル(約7万8000円)以上になると見積っている人もいる(関連英文記事)。

 電力はともかく価格についてはシビアな見方をする人もいるだろう。現状のMicrosoftの方針のまま,同社から出るタイトルがWindows 10でも動くのであれば,Scorpioを導入するよりも,手持ちのPCのグラフィックスカードをアップグレードしたほうが安くついて性能も上がるのではないかという試算もできてしまう。現在だとGeForce GTX 1080でも6万円台から,Scrpioと同等の演算能力のGTX 1070なら2万円台で手に入るのだ。

 また,Scorpioに関しては,気になる部分でありながら情報がない部分も残っている。
 Scorpioのスペックの発表では,PS4 Proでは対応していたVagaの要素,つまりFP16(16bit浮動小数点フォーマット)演算の倍速化が搭載されているのかが明言されていなかった。AMDで対応可能な技術であり当然搭載していると見るか,アピールされていない以上搭載されていないと見るか判断が難しいが,これはSIEがPolarisに加えてカスタマイズで載せた機能であるため,Scorpioでサポートされていない可能性もあるように思われる。
 FP16は,数値として考えればFP32ですらかなり精度は低いわけで,3D演算などでの用途は限られるものの,HDRではカラーコンポーネントの処理に多用されるデータ型となるため,この部分の高速化は侮れない。もちろん,この機能が適切に使われなければ宝の持ち腐れになるだけだが,この機能をサポートするするのは,NVVIDIAのPascal世代のGPU,AMDのVega世代のGPU,モバイルではImagination TechnologiesのPower VR Series 7以降(要するにiPhone),そしてPS4 Proなどとなっているので,主要ゲームエンジンがレンダラーを最適化してきてもまったく不思議はない。


4Kだけでいいのか? 家庭用ゲームも多様性の時代に


 4Kテレビはどれくらい普及するのだろうか。
 ひょっとしたら業界的に,「今後は4K」というコンセンサスはできているのかもしれないが,冷静に見てちょっと綺麗になるだけなのに,描画負荷は4倍になるというのは,どう考えてもリーズナブルではないと思う。4K HDRテレビの本命もまだ現れておらず,ある程度満足のいく性能のテレビは40万円くらいはするというのが現状だ。4Kテレビの普及を待つしかないが,一般ユーザーは4Kテレビを導入することなくScorpioやPS4 Proを買うことも少なくないだろう。その場合,「4K時に差別化できます」というだけでは納得はしてもらえないかもしれない。上位機種で2K時に拡張要素を入れると,当然ながら工数もコストも増えていく。

 PS4 Proではブーストモードが解禁されたが,試してみると可変フレームレートでないタイトルについては驚くほどなにも変わらなかった。PS4で30fpsだったゲームなら,ブーストモードで60fpsになってもおかしくなさそうなのだが,いくつかのゲーム(海外サイトで効果があるとされたタイトル)で計測してみても30fpsのままだったのだ。CPUボトルネックになっている可能性はあるが,最適化の結果としてゲームの作り方が厳密に所定のフレームレートに固定されている可能性もあると見ている。ゲームを作る側からすれば性能向上は想定外の事態であろう。
 中間世代のゲーム機が今後発売されないという保証もなく,パフォーマンスについては柔軟に対応できる設計にしておくほうがよいかもしれない。1つのプラットフォームへの対応だけでも,SDR/HDR,2K/4K,低性能/高性能と対応すべき選択肢は多く,プラットフォームが2つになると,もはやコンシューマゲーム機で伝統的に行われていたような個別で厳密に最適化していくよりも,従来PCで行われているような,自動で推奨設定にしつつオプションをユーザーに選ばせる方式のほうが現実的になりそうだ。
 従来,ゲーム機では「テレビ」というデバイスで出力方式は固定されており,本体側の性能も固定化されていて,それがガチガチの最適化ができていた理由でもあり,PCとの違いでもあった。現在では,出力先の仕様が多様化し,本体側の性能でもバリエーションが出てきている。ゲームの作り方も変わるべきなのだ。

 以上,Scorpioの性能を中心に今後のゲーム開発の行方を考察してみた。
 単純に数値だけを見たScorpioの演算性能は家庭用ゲーム機としては驚異的である。しかし,4Kを前庭にすると決して余裕があるわけではない。Xbox OneとPS4で画質に差があるゲームの場合,ネイティブ4Kにこだわっていると,それらを4K化したときにScorpioではPS4 Proと同等の画質に持っていけない可能性もある。チェッカーボード時のPS4 Proと同じ仕様の絵をきちんとしたネイティブクオリティで出すには,8.4TFLOPSが必要なのだから。スペックの数字だけから見ただけだが,Scorpioも擬似4Kでいかざるをえないはずだというのが結論だ。

 「ネイティブ4K」というのは,PS4 Proとの差別化を図るうえでマーケティング上は便利な言葉なのだろうが,それにこだわることは無益であろう。
 同様に,PS4 Proでチェッカーボードがベストの手法とも限らない。両機種ともそれぞれ特徴があるとしても,ゲームを作る側としては同じ方式で作れたほうが楽だと考える人も多いだろう。ということで,両方とも負荷による可変解像度のスケーリングで擬似4Kに対応させるのが,最も柔軟な対応法ではないだろうか。性能が高いほうが画面は心持ち綺麗になる。これでUIだけ4Kで上書きしてやれば,たぶん気づく人はほとんどいないと思うのだが。
 とにかく,家庭用ゲーム機はどんどん多様化していく。いろいろな環境でいかに柔軟に対応できるかを念頭にシステムを作ることが肝要になるのではないだろうか。