>   >  "世界最速の開発"を可能にする! 『バイオハザード7 レジデント イービル』を支えるカプコンの新ゲームエンジン「RE ENGINE」とは?

"世界最速の開発"を可能にする! 『バイオハザード7 レジデント イービル』を支えるカプコンの新ゲームエンジン「RE ENGINE」とは?

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つのタイトルに囚われない柔軟な拡張性

特集