2017年1月26日(木)に発売された『バイオハザード7 レジデント イービル』。その開発を支えたカプコン内製の次世代ゲームエンジンが「RE ENGINE(アールイーエンジン)」だ。カプコンのゲーム哲学が色濃く出た最先端の本エンジンについて、その詳細に迫る。

※本記事は月刊「CGWORLD + digital video」vol. 222(2017年2月号)からの転載となります

TEXT_ 椎葉
EDIT_藤井紀明 / Noriaki Fujii(CGWORLD)、山田桃子 / Momoko Yamada
©CAPCOM CO., LTD. 2017 ALL RIGHTS RESERVED.

AAAタイトルを制作できる新しいエンジンを

ゲームエンジンはその名の通りゲーム開発を駆動し推進させる、まさに「エンジン」として今世代の多くのゲーム開発の現場に採用されている。カプコンにおいてもそれは例外ではなく、これまでの開 発タイトルでは「MT FRAMEWORK」と呼ばれる内製ゲームエンジンを長く使用してきた。しかし、カプコンの代表作のひとつ『バイオハザード』シリーズのナンバリングタイトル『バイオハザード7 レジデント イービル』(以下、『バイオ7』)の開発に際し、現場から求められたのはさらなる表現力の向上、効率的な開発を可能とするゲームエンジンだった。「そこでカプコンでは新たに"社内でAAAタイトルを作成可能なエンジン"を目標に、『RE ENGINE』という新エンジンの開発をスタートさせました」(プロデューサー・川田将央氏)。


  • 左から、RE ENGINE 統括マネージャー・田原武文氏、プロデューサー・川田将央氏、グラフィックスプログラマー・三嶋 仁氏、RE ENGINE リードプログラマー・石田智史氏(以上、カプコン

こうしてRE ENGINEは『バイオ7』の開発と並行して、2014年4月より開発のスタートを切ることとなる。しかしその開発の道のりは決して平坦なものではなかったようだ。「2014年末に『バイオ7』のバーティカルスライス(※1つのステージにゲームの主要機能を詰め込んだ試作)の完成。そこを目標としてRE ENGINEをある程度かたちにする必要がありました」(リードプログラマー・石田智史氏)。厳しいスケジュールと高い目標、その両立を目指し、当初はRE ENGINE統括マネージャーの田原武文氏や石田氏をはじめとする3名という少人数でエンジンの基本的な部分を設計。その後、グラフィックスプログラマーの三嶋 仁氏などコアメンバーを4~5名ほど増やし、現在では50名ほどの規模で開発を継続している。

世界最速を目指した「ラピッドイテレーション」

RE ENGINEの主たる特徴は、その開発イテレーションの速さにある。MT FRAMEWORK時代よりカプコンではゲーム開発効率を重視した開発を行なってきたが、今世代になってアセットの数、容量など、ゲームの規模の爆発的増大に伴い、これまでのエンジンでは対応できない状況が増えてきた。例えば、ゲームコードの一部を修正し再ビルドするのに15分ほどかかることがあり、根本的なゲームエンジンの再設計を行う必要に迫られていた。そこで、RE ENGINEでは全てのアーキテクチャを一新。イテレーション速度に主眼を置いた各機能の実装を行なっている。

その筆頭となるのが、C#によるゲームコードの記述だ(A-1) 。RE ENGINEでは全ゲームロジックをC++からC#によるコーディングへと変更しており、それによってC++時代に悩まされていた長時間のビルドから解放されている。しかし、C#による開発は汎用エンジンのUnityなども取り入れているが、その開発効率の高さと共に、大規模化するにつれてのパフォーマンス問題も語られることが多い。そこでカプコンではRE ENGINEをAAAタイトルの制作にも耐えうるエンジンとするため、独自の仮想マシン「REVM」を開発(A-2) 。これによってC#を用いてもC++による開発と変わらない、場合によってはそれ以上のパフォーマンスを実現させることに成功している。「C#を使用することで、自動メモリ管理によってメモリリーク、多発するクラッシュなども抑えられ、プログラマーの開発速度を格段にスピードアップさせることができました」(石田氏)。

また、RE ENGINEはリモートによる実機編集も可能としている(A-3) 。RE ENGINEではランタイムとツール間を完全に分離。TCP/IPで同期させることによって、ツールはPCで、ランタイムはPS4でという切り分けた動作が可能になっている。これにより、従来ではPS4などでの実機確認を行うためには、わざわざパッケージを作成し実機へデプロイ(展開)などする必要があったが、RE ENGINEではこのプロセスを完全に排除。開発作業中にリアルタイムの実機確認が可能だ。また、ウィジェットと呼ばれるランタイム上で動作するツールも提供されており、作業効率化の一翼を担っている。VRなどの開発手 法が確立していない分野においては実機確認をいかにこなすかがクオリティに直結するため、これらの機能が非常に重要であることはまちがいないだろう。また、ツールとランタイムを切り分けることによって、MT FRAMEWORK時代に問題となっていたランタイムのクラッシュによる編集データ損失も防いでいる。

A-1 C#によるリアルタイムコーディング

RE ENGINEではイテレーション速度を優先し、開発時にはC#コードをIL(中間言語)から独自のマイクロコードに変換して実行している。そのため、再起動なしにリアルタイムにコード変更を反映することが可能だ


RE ENGINEのエディタ上でゲームプレイ


C#で手のマテリアルに制御コードを追加


ゲームプレイを中断することなくリアルタイムにコード変更を反映。マテリアルが書き換わっているのがわかる

A-2 REVMによるパフォーマンス比較



  • REVMのベンチマーク結果(PS4)。緑がC#(REVM)、赤がC#の例外機能無効化時(REVM)、青がC++。数値は小さい方が高速。REVMのパフォーマンスがC++に劣らない、場合によっては勝っていることがわかる



  • REVMの開発時とリリース時のパフォーマンス比較。リリース時は実行パフォーマンスを優先し、C#コードをILからC++コードに変換している。その結果スクリプトの実行速度が2~3倍程度高速になっているのがわかる

A-3 REVMによるパフォーマンス比較


PS4にリモートで接続し、実機上で直接編集を行なっている様子。画面左側がRE ENGINE、右側がPS4実機画面。RE ENGINEでの編集はリモートオブジェクトを介することで即座にPS4上に反映される

次ページ:
1つのタイトルに囚われない柔軟な拡張性

[[SplitPage]]

1つのタイトルに囚われない柔軟な拡張性

MT FRAMEWORK時代には、その総合開発環境の利便性から多くのタイトルがゲームエンジンを採用したが、それによる問題も生まれた。そのひとつがタイトルに特化したエンジン改良による互換性の喪失だ。例えば、アセットの管理手法などは開発タイトル、開発チームに大きく依存する。それによって多数の追加機能の要望が各チームからエンジン開発陣に集まるが、全ての要望を満たしたアセットブラウザを実装すると、逆に使い勝手は悪くなってしまう。しかし、かと言ってその機能を実装しないわけにもいかず、ついにはタイトルごとに個別機能が実装された"別のゲームエンジン"が大量に生まれることになってしまう。この"別のゲームエンジン"は互いに互換性がなく、アセットや資産の流用が行えなくなってしまっていた。

そこで、その問題を解決するためRE ENGINEが採用したのが各エンジン機能のモジュール化だ。例えば『バイオ7』では、物理演算はHavok、サウンドシステムはWwiseを採用している。もちろんカプコン内製の物理演算ライブラリなども存在するが、『バイオ7』ではアーティストが使い慣れたツールでの開発を重視し、ミドルウェアの採用を決定した。しかし、すでにRE ENGINEで開発が行われている他のタイトルにおいてそれは同様ではない。RE ENGINEにおいては各種内製のライブラリ採用やレンダリングシステムの入れ替え、ミドルウェアのインテグレートなどを選択的に行えるように設計されている。これによりエンジンのコア部分に手を入れずとも、タイトルごとの柔軟な対応を可能としている。もちろんその際、エ ンジンの基礎部分は統一化されているので各種リソースは互換性を保ち、流用することができるというわけだ。

さらにそのRE ENGINEの互換性を大きく補助するのがPythonを利用したマクロ拡張機能だ(B-1)。RE ENGINEがいくら選択的にエンジン機能を設計できるといっても、あらゆる全ての機能を網羅することは難しい。そこでRE ENGINEでは、各種機能にPythonを用いてアクセスできるように多数のAPIを公開。Pythonスクリプトで記述することで、様々なツールを部分的に後付け拡張できるようになっている。特に、Pythonは各種DCCツールで多く採用されていることも後押しとなり、各アーティストがほしい機能をほしい部分に柔軟に追加することが可能になっている。

B-1 Pythonマクロによる機能拡張

RE ENGINE上でPythonマクロを記述している様子。Pythonマクロ用のエディタも用意されている


Pythonからアクセスすることのできる多数のRE ENGINE API。見やすくドキュメント化されており、サンプルも豊富だ



アーティストが作成したPythonマクロ。クリックひとつでMayaからRE ENGINEへエクスポートし、自動でアセット化までしてくれる。そのほか面白いものでは、テレメトリに溜めたユーザーのプレイデータをRE ENGINE上でヒートマップとして表示するマクロなどもある。大小の機能を合わせると現在100種を超えるマクロが存在しており、日々増えていっているそうだ

『バイオ7』を表現可能な最先端グラフィックス

RE ENGINEにおいては、その開発速度と共にもうひとつの進化が求められた。それが最先端のグラフィックス表現だ。RE ENGINEでは開発目標とするタイトルが『バイオ7』というAAAタイトルである。『バイオ7』においては、実写と見紛うほどのフォトリアル表現、かつ完全VR対応でありつつフルHDの60フレーム厳守という、表現・パフォーマンス共に厳しい達成目標が課せられていた。その要望を満たすレンダリングシステムの構築はかなり難易度の高いものだったようだが、RE ENGINEは巧みに実現している。

まずレンダリングシステムには「Clustered Deferred」を採用。多数の部屋を行き来するレベルデザインになっている『バイオ7』では、部屋ごとに配置してあるライトをいかにカリングするかが重要であり、深度方向のライトカリングが可能な「Clustered」はまさにうってつけだったと言える。さらに、PS VRを含めた複数のプラットフォームに対して開発を行う必要のある『バイオ7』においては、パフォーマンス調整のしやすい現行スタンダードの「Deferred」の採用も必然だったと言えるだろう。影計算においても可能な限り削減するため、キャッシュシステムを実装している(C-1) 。

また、『バイオ7』ではホラーを突き詰めることがコンセプトのひとつとなっており、静的・動的なものに関わらず一体感のあるライティングが求められた。それにより採用されたのが「プローブネットワーク」による間接照明である(C-2) 。従来、カプコンではこの間接照明にライトマップ方式を採用することが多かったが、RE ENGINEではそれを完全に排除した。「プローブネットワークを採用することで、これまで問題となっていたキャラクターや背景の間に生まれるライティングの 差異を解決することができました。さらには、ライトマップ作成のための長いベイク時間などを削減することで高速なイテレーションにも一役買っています」と三嶋氏は自信をのぞかせる。プローブネットワークの採用の効果はメモリや処理負荷においても現れている。ライトマップ手法と比べるとプローブネットワークは使用メモリを2/3ほどに削減。さらにはライトマップUVのレイアウトがなくなったおかげで内部的にはインスタンシングレンダリングが可能になり、CPU・GPUの処理負荷軽減にも寄与している。この点はパフォーマンスに高い目標を課せられていた『バイオ7』において非常に重要な効果があったと言えるだろう。

C-1 影キャッシュ


最終的なレンダリングシーン


シーンにおいて使用されている各ライトのシャドウマップ。これらのシャドウマップはキャッシュ化されており、動的な物体(キャラクターなど)が映るまでは更新されない。ゲームにおいてリアルタイムな影の描画は非常に高コストであり、この点を効率化するのはRE ENGINEのレンダリングシステムにおいては非常に重要だったと言える

C-2 プローブライティング



  • 最終的なレンダリングシーン



  • プローブネットワークを可視化した画像。プローブ間の接続関係は四面体構造で管理されており、インゲームではBSP-Treeを用いて探査している。また、探査時には1フレーム前の結果を再利用するなどしてパフォーマンス改善も行なっている



  • プローブネットワークによる間接照明。従来のライトマップ手法の場合法線情報は考慮されなかったが、プローブネットワークを用いると立体感のある陰影が出ていることがわかる



  • 各プローブの影響度合い

次ページ:
アーティストの創造を支える多彩な機能群

[[SplitPage]]

アーティストの創造を支える多彩な機能群

RE ENGINEではレンダリングシステムの根本的な改革だけではなく、アーティストが使用する表現機能においても多くの進化を遂げている。現行ゲームエンジンではデファクトスタンダードとなっているPBRはもちろん、アーティスト自身が自由にシェーダを作成可能なノードグラフ(D-1)、ボリュメトリックな表現が行えるライトシャフト(D-2)なども搭載されている。特にエフェクト表現において実装されている2D流体シミュレーション(D-3)は『バイオ7』の世界観を表すのに重要な機能と言え、最大8個の速度エミッタや障害物とインタラクションが行えるようになっている。2Dに処理を限定することで、60fpsでも動作可能な高パフォーマンスを実現させており、流血表現のみならず火や煙、水面においても使用され、プレイヤーの没入感に貢献している。

また、スクリーンスペース系のエフェクトも充実している。SSR(スクリーンスペース・リフレクション)はSIGGRAPH 2015でFrostbiteが発表したStochastic Screen-Space Reflectionsをベースに実装されており、現行最先端と言っていいだろう。SSAO(スクリーンスペース・アンビエントオクルージョン)にはSIGGRAPH 2012にNVIDIAが発表したScalable Ambient Obscuranceと2015年にMicrosoftが公開したDirectX 12のグラフィックスライブラリMiniEngineのSSAOを組み合わせたものが実装されており、SSSSS(スクリーンスペース・サブサーフェス・スキャタリング)なども実装されている。もちろんこれらのスクリーンスペース系のエフェクトはゲーム中適宜選択的に使用することが可能になっており、パフォーマンス対策やスケーラビリティの調整に利用されている。

さらに、今後業界スタンダードになっていく可能性の高い、HDRや4Kレンダリングにもいち早く対応しており、HDRに関しては全プラットフォームにおいて使用することができる(D-4) 。4Kに関してはPS4 ProとPCにおいて対応しており、GUIをベクターでラスタライズすることで小さな文字なども視認性を確保した上で美しく描画することが可能だ。

D-1 ノードベースシェーダエディタ


アーティストが作成したノードグラフ。複雑に動作するシェーダもアーティストが思いのまま作成することが可能だ。もちろん各ノードはアーティストが作業しやすいよう各種用意されている


アーティストが作成したシェーダ。徐々に部屋の壁がカビていくのがわかる。特殊なシェーダ制作に対するアーティストの熱意は高く、「もはやどうやって作成されているのかわからないものも多いくらいです(笑)」と三嶋氏

D-2 ボリュメトリックライトシャフト

ボリュメトリックライトシャフトを使用しているシーン。シャドウマップを利用したレイマーチング を行うことでボリュメトリックな表現を可能としている


RE ENGINEエディタ上でライトシャフトの調整をしている様子。実装されているライトシャフトの各パラメータはエディタ上に公開されており、アーティストの望むとおり調整することができる

D-3 2D流体シミュレーション

クルマの挙動で避ける煙

手を伝う流血表現

キャラクターの動きに反応する水面。2D流体シミュレーションにはキャラクターや障害物とのインタラクションのほかに、ディテールを増すためのCurlノイズも加えられている。水面にはテッセレーションも使用されており、さらにはアーティストの設定したマテリアルを適用することで表現の幅を広げることも可能だ

D-4 HDR対応


HDR対応前


HDR対応後。白飛びして潰れてしまっていた蛍光灯の高輝度部分の情報が、HDR対応することで美しく 描画されていることがわかる

総括 これからのカプコンを背負うにふさわしい未来志向エンジン

UnityやUnreal Enginelなど汎用エンジンのシェアは年々拡大しており、一定のクオリティを上げるという点で言えば、内製エンジンを開発するよりも汎用エンジンを使用する方がコストパフォーマンスに秀でている......と考える開発会社が多くなってきていることはまちがいないだろう。そんな状況の中、世界でAAAタイトルを制作する各社が内製エンジンの開発にこだわるのは、自社の強みを最大限活かしたいという強い想いがあるからにちがいない。

今回RE ENGINEから感じたのは、とにかく「イテレーションを回す」という一点に対する強烈な哲学だ。何度も挑戦し、失敗し、くり返し、そして成功へ導く。ある意味泥くさいとも言えるその開発哲学は、まさにカプコンイズムを体現していると言える。「今後の弊社の5年10年を見ていてください」と田原氏も自信をにじませる。ゲームの面白さを何より重視するカプコンイズムをふんだんに感じられるRE ENGINEは、今後もきっと私たちの期待に大きく応えてくれるはずだ。



  • 『バイオハザード7 レジデント イービル』

    発売/開発:カプコン
    発売中
    価格:7,990円+税(通常版・パッケージ版)
    Platform:PS4/Xbox One/PC
    ジャンル:サバイバルホラー
    www.capcom.co.jp/biohazard7
    ©CAPCOM CO., LTD. 2017 ALL RIGHTS RESERVED.

  • 月刊CGWORLD + digital video vol.222(2017年1月号)
    第1特集:Houdini徹底ガイド
    第2特集:ハイエンドゲーム開発の現場

    定価:1,512円(税込)
    判型:A4ワイド
    総ページ数:144
    発売日:2017年1月10日
    ASIN:B01MXRSEI0