連載:「ロスト プラネット」グラフィックスオプションに見る3Dゲームの最新事情

カプコンに聞く「ロスト プラネット」のグラフィックスオプション(後編)

1 2 3 4

 

並列処理
選択肢:1〜8

 

 Xbox 360(やPlayStation 3),そしてPCでは,マルチCPU,あるいはマルチCPUコア化が進んでおり,ゲームエンジン側にも積極的なマルチコア対応が要求されつつある。
 そんな要求に対し,ゲームデベロッパとしてのカプコンが回答として用意したのが,初めからマルチスレッド最適化を前提としたゲームエンジン(で,前編の冒頭にその名を挙げた)「MT Framework」である。

 

 MT Framework採用の第1弾はXbox 360用「デッドライジング」で,ロスト プラネットは2作めに当たる。余談だが,MT Frameworkの「MT」には「マルチスレッド」(Multi-Thread),「メタツール」(Meta Tools),「マルチターゲット」(Multi-Target)の意味が込められているという。

 

 さてこの「並列処理」オプションは,そのMT Frameworkでフォーカスされる,マルチスレッドに関する動作を設定するものになる。
 MT Frameworkでは,レンダリング処理をはじめ,敵の動きやカメラ(視点)制御,サウンド処理といった,同時多発的に起こるさまざまな処理を,処理単位「ジョブ」として管理し,実際に処理を実行してくるセクションにジョブを委託する(キューに積む)ような仕組みになっている。

 

 イメージとしては,「こういう仕事をしてくださいね」という命令書(ジョブ)が,机(キュー)に積まれていく感じ。積まれた命令書に従って実行部員が仕事をこなしていくことになるのだが,その実行部員の数を1〜8の範囲で設定するのが「並列処理」と考えていいだろう。
 ただ,こう聞くとシンプルに思えるかもしれないが,実際に同時多発するジョブそれぞれには依存関係があったりするので,それほど簡単ではない。そこでカプコンでは,ゲームプログラム構造を分析し,マルチスレッド実行が可能なものと,そうでないものに大別。マルチスレッド実行に向いてない処理についてはシングルスレッドで集中的に実行させ,向いているものについては依存関係が破綻しないようにスレッドの実行を操作&制御する仕組みを設計し,これをMT Frameworkに実装させている。

 

ゲームプログラムに限らず,プログラムの実行をデータに着目して見ると,「更新」と「同期」という処理に大別できる そこで,データ処理のうち並列実行できるものについては並列実行させ(並列更新),それを取りまとめる(同期更新)流れで処理を進めていく仕組みを設計

 

並列更新と同期更新のそれぞれについて,処理に矛盾を出さず,かつ最大パフォーマンスが得られるようなルールやテクニックを実装していく

 

 Xbox 360のCPUは3コア構成で,1コアあたり2 SMT(Simultaneous Multi-Threading,物理的に1個のCPUコアを論理的に2個に見せることで,実行ユニットの効率化を図る技術。IntelのHyper-ThreadingもSMTの一種)に対応しているため,ハードウェア的に6スレッドの同時実行が可能だ。
 Xbox 360版では,この6 SMTスレッドのうちメインスレッド(ジョブ処理兼用)が1,レンダリングとサウンド優先スレッドが1で,残りの4スレッドが汎用ジョブ実行専用スレッドに割り当てられていた。

 

Xbox 360版「ロスト プラネット」でのマルチスレッドパフォーマンスに関するスライド

 

 その点PCの場合は,1台1台ハードウェア構成が異なるため,ゲームエンジン=MT Framework側でマルチスレッド構造のスケーラビリティに対応できるようになっているというわけだ。

 

カプコンが制作したオリジナルツール「ユニットマネージャ」。処理のそれぞれがどれだけ時間を要するかをチェックできる

 選択肢は1〜8としたが,最大値はPCが搭載しているCPUコアの総数になる。デュアルコアCPU搭載PCなら最大は2になり,クアッドコアCPUなら4だ。「(グラフィックス描画にボトルネックが発生しない限りは)値を増やしていくと徐々にパフォーマンスは向上していきますが,1,2,3……と増やして行くにつれ,パフォーマンスの向上度合いは落ちていきますね。コストパフォーマンス的には,クアッドコアCPUシステムでの4設定が一番お得かもしれません」と述べた石田氏によると,デュアルコアCPUだとパフォーマンスは若干足りないくらいかもしれないという。「まあそれでも,デュアルコアだとシングル時から1.6〜1.7倍くらいパフォーマンスの向上があります。ちなみにクアッドコアでシングル時から2.4〜2.5倍くらい,オクタ(8)コアで3.0〜3.3倍くらいですかね」
 このあたり,4Gamerでは実際にオクタコア環境で検証しているので,興味のある人はぜひチェックしてみてほしい。

 

 

並列レンダリング
選択肢:オフ/オン

 

石田智史氏

 ロスト プラネットでは,グラフィックス描画エンジン部も,独立して動作できるスレッドとして設計されている。この描画スレッドを,前述したマルチスレッドのうちの一つを消費して並列処理実行させるのか(オン設定),それとも逐次実行させるのか(オフ設定)を選択できるのがここだ。
 ここは,石田氏に解説をお願いしたい。「当然ですが,レンダリングのスレッドも1スレッド消費します。ここの設定を『オフ』にすると,並列処理としてのレンダリングがキャンセルされますね。レンダリングしてからの表示が1フレーム分早まることになるので,入力からの遅延感が低減されるかもしれません」

 

 もしかすると,対戦などフレーム単位のシビアな戦いでは「オフ」にしたほうが優位に進められることがあるかもしれない。もっとも,LAN対戦ならともかく,インターネット対戦ではネットワーク遅延のほうが大きいため,この項目を「オン」から変更する意味はあまりなさそうだが……。

 

 

マルチGPU
選択肢:オフ/オン

 

 複数のGPUを1システムに搭載したマルチGPU環境における最適化を有効にするかを設定する項目。「オン」で有効化される。念のためにいっておくと,マルチGPU環境とはNVIDIA SLIもしくはCrossFire構成を搭載したシステムのこと。

 

 マルチGPU環境において最大のパフォーマンスが得られるのは,複数のGPUにおいて互いに異なるフレームをレンダリングするAFR(Alternative Frame Rendering)メソッドのほうだ。PC版ロスト プラネットには,このAFRメソッドが効果的に動作できるような工夫が盛り込まれている。
 シーンをテクスチャ素材としてレンダリングするような動的なテクスチャ生成を考えてみよう。このとき,あるGPUで生成した素材をもう一方のGPUで参照する場合には,そのテクスチャ素材をGPU間で転送する必要が出てきてしまい,これが遅延となってしまう。AFRメソッドで最大パフォーマンスを得るためには,このGPU間の素材の同期取りがネックになってくるのだ。

 

映り込みに利用する環境マップテクスチャ(ここでは水に映った雲と家)を,GPUで動的に生成する場合を考えてみる

 その点ロスト プラネットでは,動的な環境マップが利用される状況において,同一用途にもかかわらず,便宜上,そのシーンで使う動的環境マップ生成をそれぞれのGPUが(それぞれのカード上にある)グラフィックスメモリ内で行う工夫がなされている(図2)。一見すると冗長だが,マルチGPUで動作させるには有効な工夫なのだ。そうした最適化の甲斐あって,SLI時のパフォーマンス向上率はかなりよいものになっているという。

 

図2 ロスト プラネットにおけるマルチGPU最適化の仕組み

 

 「SLIのパフォーマンスは,GeForce 8600 GTSでシングル時の約1.7倍になります。GeForce 8800 GTXの場合,DirectX 9版で約1.3倍,DirectX 10版で約1.7倍でした。DirectX 9版の約1.3倍はちょっと疑問が残るところなので,現在はNVIDIAと協力して原因を究明中です。AMDのCrossFireも対応はしていますが,パフォーマンス向上率については未計測ですね」(石田氏)

 

 

まだ“成長”するロスト プラネット
次世代MT Frameworkの開発者も募集中

 

 実は,今回の取材では,ここで紹介しきれないくらいの情報をもらっているので,それらについては,回を改めて紹介していきたいと思う。現在カプコンではロスト プラネットのグラフィックス面におけるさらなる強化アップデートを予定しており,実際,今回の取材ではDirectX 10の新フィーチャーを活用した新エフェクトを見る機会に恵まれた。それらについては,アップデートのタイミングに,改めて技術解説を行う予定だ。

 

 ところで,なぜカプコンは,MT Frameworkでマルチプラットフォーム戦略を採るに至ったのか。そして,マルチプラットフォーム戦略を前提としたゲームエンジンを国内メーカーとしていち早く実用化してきた,その流れはどのように生まれたのだろうか。
 この点について,ロスト プラネットのプロデューサーである竹内 潤氏は次のように述べる。

 

竹内 潤氏(カプコン 開発統括本部 CS開発統括 編成部長)

「我々はPlayStation 2用『鬼武者3』のときから,PlayStation 2用ゲーム開発におけるエンジンの共有化を独自に進めてきました。それが一段落して,PlayStation 3やXbox 360といった次世代機へと移行していく流れのなかで,この『エンジン共有化の方針』をマルチプラットフォーム展開することにしたんです。そうして生まれたのがMT Frameworkだったんですね。今世代は,北米がXbox 360,日本やヨーロッパがWiiという具合で,地域ごとに普及プラットフォームに違いが見られるようになっています。そのプラットフォームごとに個別にゲームを開発していたら大変ですが,幸いなことに我々のMT Frameworkは,そんな状況にうまいこと対応できるんです」

 

 ロスト プラネットは2006年末にXbox 360向けに発売されたばかり。わずか半年でPC版がリリースされたわけだが,これは非常に衝撃的である。というのも,今まで国内ゲームメーカーの家庭用ゲーム機向けタイトルがPCに移植されることは少なく,移植されるにしても,時間が経ってからというのが常だったからだ。
 技術的な側面から見れば,このスピード移植はMT Frameworkというマルチプラットフォーム対応のフレームワーク設計が功を奏した結果なのだろうが,市場戦略的に考えるとこれはとてもユニークだ。この点についても竹内氏は明快に述べる。

 

「北米,ヨーロッパ,アジア。世界で次世代ゲーム機と呼ばれたPlayStation 3やXbox 360,Wiiが発売されたとはいえ,世界視点で見ると,ゲームプラットフォームとしてのPC市場は非常に大きいんですよ。とくにヨーロッパでは,コアゲーマーはPCをメインとしていますし。マルチプラットフォームで展開するという我々の戦略において,この大きなPCプラットフォームはもはや無視できないんです」

 

 すると,今後,カプコンタイトルのPC版はゲーム機版の登場から間をおかずに登場することになるのだろうか。

 

「実はですね,我々カプコンとしては,PlayStation 3版とXbox 360版,PC版はほぼ同時発売にしたいと思っているんです。ユーザーさんがカプコンタイトルで興味を持ったものがあったときに,プラットフォームを問わずに遊べる状況を実現したいんですね。『デビルメイクライ4』もPC版を提供する予定ですよ。ぜひ期待していてください」(竹内氏)

 

 そんな攻勢をかけるカプコンは,MT Frameworkをさらに進化/発展させていくために開発スタッフの募集を開始した。詳細は2007年7月3日の記事を参照してほしいが,「ぜひとも告知を!」とのことだったので,MT Framework開発のトップである伊集院 勝氏のコメントを掲載して,今回のまとめとしたい。

 

伊集院 勝氏(カプコン 第二制作部 ソフトウェア制作室 室長)

「MT Frameworkやカプコンタイトルにおける今後の強化ポイントは,AIや物理シミュレーション部分なんですね。ここをさらに強化して,より完成度の高いエンジンにしていきたいと思っています。日本国内のゲームスタジオで,こうした規模の大きいゲームエンジンを自由に作れるところって少ないと思いますので,世界に誇れるゲームエンジンの開発に参加したい人はぜひともうちに来てほしいと思います。募集の告知はカプコンのWebサイトなどでも行っていますので,ぜひチェックしてください!」

 

1 2 3 4

 

タイトル ロスト プラネット エクストリーム コンディション
開発元 カプコン 発売元 カプコン
発売日 2007/07/12 価格 7340円(税込)
 
動作環境 OS:Windows XP/Vista(+DirectX 9.0c以上),CPU:Hyper-Threading Technology対応Pentium 4以上[Core 2 Duo推奨],メインメモリ:512MB以上[1GB以上推奨](Windows Vistaでは1GB以上[2GB以上推奨]),グラフィックスチップ:GeForce 6600以上(GeForce 7300を除く)[GeForce 8600以上推奨],HDD空き容量:8GB以上,ネットワーク環境:1Mbps以上,ゲームパッド「Xbox 360 Controller for Windows」の利用を推奨

Character Wayne by (C)Lee Byung Hun /BH Entertainment CO., LTD, RIGHTS RESERVED. (C)CAPCOM CO., LTD. 2006,2007 ALL RIGHTS RESERVED.

【この記事へのリンクはこちら】

http://www.4gamer.net/specials/3de/lost_planet/lost_planet_04.shtml