カプコンが内製エンジンの開発にこだわるのか、熱い想いを語った。カプコンも、その昔は外販エンジンをテストしていたことがあったという。自由に自分たちのポテンシャルを発揮できるエンジンを求める声が多かった。そこで、エンジンによる制約を受けず、カプコンの独自性を保ちながら自由にクオリティの高いゲーム開発を行うため、内製エンジンの開発が始まったのだ。ゲームエンジンで加工や処理、その他様々なことを行うことができる昨今、もはやエンジンは、ゲームを動かすだけのものではなく、「開発スタジオ」という位置づけになっていると竹内氏は語る。「技術」を用いて、主体的に開発が行える「環境」をつくり出す。「環境」が整えばそこでより良い「人員」を育むことができる。「人員」が「環境」を保つために「手法」を採り入れ、その「手法」を支える「技術」がまた生まれる......。4つの要素がそれぞれきちんと機能しつつも、非常に強い相互連携を維持しているのがカプコンの開発の屋台骨なのだという。ENGINE」は、その屋台骨を構成する「技術」の部分にあたる。ENGINE」つまり「技術」の話を通して"カプコン"という会社を垣間見るものだと言えよう。Mobile」などの派生エンジンが誕生。ENGINEの特徴は大きく分けて5つある1モジュラー構造まずは、各エンジン機能のモジュール化について。モジュールの構成から連携、ループの実行までの手順を説明した。ENGINE」では自由にモジュールを組み合わせることができるようになった。組み立てにはモジュール間の依存関係も考慮しなければならない。ムービーモジュールでは、音が鳴らせるサウンドモジュールが必要となるので内製サウンドモジュールやWwiseのモジュールが必要となる。いった依存関係の範囲内であれば、自由に構成が可能だ。開発者は、自分の必要とするモジュールのみを選択して利用することができるので、ビルド時間の大幅な削減にもつながったと話した。モジュール構成ダイアログ。矢印は各モジュールの依存関係を表している。次に、下位互換性の維持についてだ。ENGINE」では、リリース済みのものから開発中のものまで、全てのタイトルが最新のエンジンで動作するように保証されている。ここでは、互換性維持のために行なっているアプローチを紹介した。基本的には、プロジェクト設定で互換オプションを設定し、切り替えを行えるようにしているそうだが、大幅な仕様変更に関しては、モジュールを分離することも。既存モジュール内に別のルートヘッダを追加してバリエーションとして実装するか、まったく新しいモジュールをつくってしまうこともあるようだ。開発終了後のタイトルについては、エンジン開発チームの管理に移し、仕様変更時は担当者がアセットを修正、コミットしている。イービル』も、最新エンジンで同様の動作が可能だ。『バイオハザード7』における新旧エンジン、シェーディングモデルの比較。2019年版ではより自然な表現に改良されただけでなく、処理の高速化、数百MB単位でのメモリ削減も実現。確実に最適化が進んでいるのがわかるだろう「保守している過去タイトルは、エンジンのテストケースとして最適です。過去タイトルはすでにQAが終わっているので、不具合が出るとエンジン起因だということが明確です。ゲームを使うとエンジン単体テストでは見つけられないようなバグが見つけやすくなるのです。過去タイトルを動かし続けることは、エンジンの安定性の確保にもつながっています」(石田氏)。実機でのリモート編集が可能な点も特徴のひとつだ。ランタイムとツールのプロセスが分離しており、TCP/IPで同期しているという。Oneどに切り分けることで、ランタイムがクラッシュしてもPC上の編集データは保護されることになる。クラウド編集にも対応済みだ。実機への描写結果をストリーミングで転送し、自分の席にない実機を共有することができる。「Stadia」や「Ubitus」といったクラウドプラットフォーム上の編集も可能となったそうだ。これによって、実機でのテストをより気軽に行うことができるため、パフォーマンスの問題やバグの早期発見につながるという。ENGINE」では、アプリケーションによるリソースロードと、エンジン自体の同期ロードを廃止。これによって、ロードは完全にエンジン側でコントロール可能となり、様々な最適化が可能となった。シーク時間の長さが問題だったが、非同期ロードであれば依存関係が存在しないため、ロード順を自由に入れ替えてシーク時間を最小にすることができる。ENGINE」は、パッチによってファイルの一部が差し替わった場合でも、パッチを考慮してロード順序を並び替えることで、ロード時間への影響も最小に抑えることができたのだ。5C#スクリプトシステム何よりの特徴は、全てのゲームロジックをC#言語でコーディングしている点だろう。これによってC++言語によるアプリケーション開発と比較してビルド時間を大幅に短縮することに成功したのだ。「完全にスクリプト化をしたことで、ビルド時間の短縮以外にも、頻発していたクラッシュが抑えられるなど、様々なメリットがありました」(石田氏)。発売済みタイトルのC#コードの規模。コード行数が30~40万行の規模でありながら、一般的なCPUによるフルビルドでも10秒かからない。C++でのコーディングであれば100倍のビルド時間がかかるだろうと、石田氏は述べたC#コードは、「REVM」と呼ばれる独自開発した仮想マシン上で動作している。「FrameGC」という独自開発のゲーム用ガベージコレクションアルゴリズムを採用。これにより、C++によるコーディング時と変わらないパフォーマンスを実現することが可能となっている。IL2CPPによってC++コードに変換され、そのままプラットフォームに最適化がかかることで、ビヘイビアの処理時間も許容範囲に収めることができた。ENGINE」の強みともいえる特徴を通して、内製エンジンの設計について解説した同セッション。ENGINE」は、次世代を見据えて設計したものなのだと改めて強調した。「今後対応するプラットフォームが増えたとしても、クラウド化に対応しているため開発効率の面も心配ありません。次世代のタイトルは、さらにコード規模が拡大し膨大なオブジェクトを扱うことになると思います。ENGINEのC#スクリプトシステムなら、問題なく対応していけると思います」(石田氏)。FIX!森田悠揮氏、マーザ・アニメーションプラネット、カヤック、ユニティ・テクノロジーズ・ジャパン合同会社、萌、SNKの登壇が決定。...2019/12/28ニュース【CGWORLDゼミ】2月2日(日)オレンジによる『BEASTARS』アニメCGメイキングセミナーの開催が決定。山下大輔氏がアプライドのクリエイター向けPCをレビュー。現在は主にMAYAで静止画を作成してますが、これからは動画等にもチャレンジしてきたいと思っています。