>   >  内製エンジン「RE ENGINE」の設計思想からタイトルでの技術活用まで 〜カプコンオープンカンファレンス RE:2019(1)
内製エンジン「RE ENGINE」の設計思想からタイトルでの技術活用まで 〜カプコンオープンカンファレンス RE:2019(1)

内製エンジン「RE ENGINE」の設計思想からタイトルでの技術活用まで 〜カプコンオープンカンファレンス RE:2019(1)

数ある人気タイトルをリリースし続けるカプコンが、東京は9月19日(木)にCIRQ新宿8Fホール、大阪は9月24日(火)にブリーゼプラザ・小ホールにて「カプコンオープンカンファレンス RE:2019」を開催した。同イベントは、カプコンが開発する内製ゲームエンジン「RE ENGINE」の進化や改善に向けての取り組み、開発現場における活用方法や実装事例を解説するために開かれた、無料のカンファレンスだ。参加希望者が殺到し、抽選参加となった同カンファレンス。特に東京では定員の2倍を超える応募があったそうだ。

ここでは、複数あるセッションから抜粋し3回に分けてレポートする。前篇の本稿では、「RE ENGINE」の設計について言及。中篇はアニメーション技術解説のセッションから『バイオハザードRE:2』での活用事例、後篇はリアルタイムグラフィックス技術解説のセッションから『デビル メイ クライ5』での活用事例について紹介する。

TEXT&PHOTO_室井美優 / Miyu Muroi(Playce)i
EDIT_小村仁美 / Hitomi Komura(CGWORLD)、山田桃子 / Momoko Yamada

カプコンが内製エンジンの開発にこだわる理由とは

竹内 潤氏(カプコン 第一開発統括)

同カンファレンスのオープニングに登壇したのは、第一開発統括で常務執行役員でもある竹内 潤氏。なぜカプコンが内製エンジンの開発にこだわるのか、熱い想いを語った。

カプコンも、その昔は外販エンジンをテストしていたことがあったという。しかし、もっと自由に自分たちのポテンシャルを発揮できるエンジンを求める声が多かった。そこで、エンジンによる制約を受けず、カプコンの独自性を保ちながら自由にクオリティの高いゲーム開発を行うため、内製エンジンの開発が始まったのだ。

ゲームエンジンで加工や処理、その他様々なことを行うことができる昨今、もはやエンジンは、ゲームを動かすだけのものではなく、「開発スタジオ」という位置づけになっていると竹内氏は語る。

そして、そのスタジオを構成しているのが、カプコンが最も大切にしている「技術」、「手法」、「環境」、「人員」という4つの要素だ。「技術」を用いて、主体的に開発が行える「環境」をつくり出す。そして、「環境」が整えばそこでより良い「人員」を育むことができる。「人員」が「環境」を保つために「手法」を採り入れ、その「手法」を支える「技術」がまた生まれる......。4つの要素がそれぞれきちんと機能しつつも、非常に強い相互連携を維持しているのがカプコンの開発の屋台骨なのだという。「RE ENGINE」は、その屋台骨を構成する「技術」の部分にあたる。今回のカンファレンスは「RE ENGINE」つまり「技術」の話を通して"カプコン"という会社を垣間見るものだと言えよう。

次世代を見据えた「RE ENGINE」、その強みと設計

石田智史氏(カプコン 技術研究開発部) 

「複数のAAAタイトル開発に堪える汎用ゲームエンジンの設計と運用」と題して「RE ENGINE」の設計にいたる経緯や、その特徴についての講演を行なったのは、技術研究開発部のリードプログラマー、石田智史氏。

内製エンジンの歴史。「MT FRAMEWORK」を主軸とし、ニンテンドー3DS用の「MT FRAMEWORK Lite」やiOS、Android対応の「MT FRAMEWORK Mobile」などの派生エンジンが誕生。『モンスターハンター:ワールド』シリーズ専用エンジン「WORLD ENGINE」も活躍中

■カプコン内製エンジンの歴史

まず初めに紹介されたのは、カプコンの内製エンジンの歴史について。タイトルごとに共通ライブラリをカスタムしゲーム開発を行なっていたが、2005年ごろ、社内でエンジンの共通化を求める声が高まり「MT FRAMEWORK」の開発がスタートした。以後、同エンジンを使用し『バイオハザード6』(2012)や『ロックマン11 運命の歯車!!』(2018)など、様々なゲームを世に送り出してきた。

15年という長きに渡り使用されてきた「MT FRAMEWORK」だが、運用上いくつかの問題点があった。まず、大幅な新機能の追加や仕様変更が困難だということだ。例えば、試作フェーズでは新機能を追加し、試行錯誤しながらの開発が望まれるが、量産フェーズに入ると仕様変更は好まれないだろう。そのため両フェーズが同時進行していると、バージョンアップは容易ではなかったのだ。また、タイトルごとにエンジンコードの書き換えが行われていたため、互換性の喪失へとつながっていたという。

こうした反省点を踏まえて、設計されたのが「RE ENGINE」だ。設計に際しては、以下の2つの指針を打ち立てた。

①独自のエンジンコード書き換えを禁止し、1つのエンジンで全てのタイトルを開発できるようにすること
②高速なイテレーションを実現し、生産性を向上させること

こうして、社内で複数のAAAタイトルを開発可能なエンジンの設計がスタートしたのだという。

■「RE ENGINE」の大きな特徴

続いて「RE ENGINE」の代表的な特徴が紹介された。

RE ENGINEの特徴は大きく分けて5つある

①モジュラー構造

まずは、各エンジン機能のモジュール化について。モジュールの構成から連携、ループの実行までの手順を説明した。「MT FRAMEWORK」では全ての機能がフレームワーク層に実装されていたのに対し、「RE ENGINE」では自由にモジュールを組み合わせることができるようになった。しかし、組み立てにはモジュール間の依存関係も考慮しなければならない。例えば、ムービーモジュールでは、音が鳴らせるサウンドモジュールが必要となるので内製サウンドモジュールやWwiseのモジュールが必要となる。そういった依存関係の範囲内であれば、自由に構成が可能だ。開発者は、自分の必要とするモジュールのみを選択して利用することができるので、ビルド時間の大幅な削減にもつながったと話した。

モジュール構成ダイアログ。矢印は各モジュールの依存関係を表している。不要モジュールは自由にOFFにすることができる

②下位互換性の維持

次に、下位互換性の維持についてだ。「RE ENGINE」では、リリース済みのものから開発中のものまで、全てのタイトルが最新のエンジンで動作するように保証されている。ここでは、互換性維持のために行なっているアプローチを紹介した。

基本的には、プロジェクト設定で互換オプションを設定し、切り替えを行えるようにしているそうだが、大幅な仕様変更に関しては、モジュールを分離することも。既存モジュール内に別のルートヘッダを追加してバリエーションとして実装するか、まったく新しいモジュールをつくってしまうこともあるようだ。また、開発終了後のタイトルについては、エンジン開発チームの管理に移し、仕様変更時は担当者がアセットを修正、コミットしている。このように下位互換性がきちんと維持されているので、当然2017年1月リリースの『バイオハザード7 レジデント イービル』も、最新エンジンで同様の動作が可能だ。

『バイオハザード7』における新旧エンジン、シェーディングモデルの比較。2019年版ではより自然な表現に改良されただけでなく、処理の高速化、数百MB単位でのメモリ削減も実現。確実に最適化が進んでいるのがわかるだろう

「保守している過去タイトルは、エンジンのテストケースとして最適です。なぜならば、過去タイトルはすでにQAが終わっているので、不具合が出るとエンジン起因だということが明確です。また、ゲームを使うとエンジン単体テストでは見つけられないようなバグが見つけやすくなるのです。過去タイトルを動かし続けることは、エンジンの安定性の確保にもつながっています」(石田氏)。

③ツールプロセスの分解

実機でのリモート編集が可能な点も特徴のひとつだ。ランタイムとツールのプロセスが分離しており、TCP/IPで同期しているという。ランタイムをPS4やXbox Oneどに切り分けることで、ランタイムがクラッシュしてもPC上の編集データは保護されることになる。さらに、クラウド編集にも対応済みだ。実機への描写結果をストリーミングで転送し、自分の席にない実機を共有することができる。また、「Stadia」「Ubitus」といったクラウドプラットフォーム上の編集も可能となったそうだ。これによって、実機でのテストをより気軽に行うことができるため、パフォーマンスの問題やバグの早期発見につながるという。

④リソースアクセスの制限

「RE ENGINE」では、アプリケーションによるリソースロードと、エンジン自体の同期ロードを廃止。これによって、ロードは完全にエンジン側でコントロール可能となり、様々な最適化が可能となった。

例えばHDDの場合。シーク時間の長さが問題だったが、非同期ロードであれば依存関係が存在しないため、ロード順を自由に入れ替えてシーク時間を最小にすることができる。「RE ENGINE」は、パッチによってファイルの一部が差し替わった場合でも、パッチを考慮してロード順序を並び替えることで、ロード時間への影響も最小に抑えることができたのだ。

⑤C#スクリプトシステム

何よりの特徴は、全てのゲームロジックをC#言語でコーディングしている点だろう。これによってC++言語によるアプリケーション開発と比較してビルド時間を大幅に短縮することに成功したのだ。「完全にスクリプト化をしたことで、ビルド時間の短縮以外にも、頻発していたクラッシュが抑えられるなど、様々なメリットがありました」(石田氏)。

発売済みタイトルのC#コードの規模。コード行数が30~40万行の規模でありながら、一般的なCPUによるフルビルドでも10秒かからない。C++でのコーディングであれば100倍のビルド時間がかかるだろうと、石田氏は述べた

C#コードは、「REVM」と呼ばれる独自開発した仮想マシン上で動作している。さらに、「FrameGC」という独自開発のゲーム用ガベージコレクションアルゴリズムを採用。これにより、C++によるコーディング時と変わらないパフォーマンスを実現することが可能となっている。

IL2CPPによってC++コードに変換され、そのままプラットフォームに最適化がかかることで、ビヘイビアの処理時間も許容範囲に収めることができた。ガベージコレクションタイムの短さも注目だ

「RE ENGINE」の強みともいえる特徴を通して、内製エンジンの設計について解説した同セッション。最後に石田氏は、「RE ENGINE」は、次世代を見据えて設計したものなのだと改めて強調した。

「今後対応するプラットフォームが増えたとしても、クラウド化に対応しているため開発効率の面も心配ありません。そして次世代のタイトルは、さらにコード規模が拡大し膨大なオブジェクトを扱うことになると思います。しかし、RE ENGINEのC#スクリプトシステムなら、問題なく対応していけると思います」(石田氏)。



  • 「カプコンオープンカンファレンス RE:2019」
    ●東京会場
    日時:2019年9月19日(木)13:10~19:20
    場所:CIRQ新宿8Fホール
    ●大阪会場
    日時:2019年9月24日(火)13:10~19:20
    場所:ブリーゼプラザ・小ホール
    www.capcom.co.jp/RE2019/

特集