ゲームエンジンプログラマのritaと申します。
学生時代からゲームプログラミングに没頭し、ゲームそのもの以上に「作る環境」に強く関心を持つようになったことから、これまでの職歴でもミドルウェアやインハウスのゲームエンジンを開発・運用するといった経験を積んできました。
そんな私にとって、カプコンさんは内製エンジン開発における大先輩であり、偉大なるリファレンス的存在です!
ベルサール秋葉原で行われたRE ENGINEの体験型イベント
東京会場はベルサール秋葉原で、広く取ったスペースの中に21種類の展示が並んでいました。展示は動画を視聴する形式と、実際にRE ENGINEを触る体験コーナーの2通りあり、今回は体験コーナーにフォーカスを当てて取材をしていきます。
体験可能な展示は予約することで整理券をもらえるシステムでしたので、限られた時間内に触れそうな展示の予約を取りつつ、その中で判明したRE ENGINEの機能やツールUIの片鱗を紐解いていきます。
ついにRE ENGINEを体験!メニューからエンジンの仕組みを理解する
まずは『表情をより自然に、豊かにするフェイシャル技術』という展示からスタート。
ここではプレイヤーキャラクターとオトモアイルーのフェイシャルを操作できるシーンがプレイでき、パッド操作に応じてどのようにメッシュ構造が変化するのか、といったことが確認できるようになっていました。
しかし私の目はゲーム画面の外に釘付けでした。ゲーム画面を取り囲むように配置されているウィンドウこそが、RE ENGINEのツール画面だからです!
まず、アセットブラウザ・ヒエラルキー・インスペクターという、馴染みのあるパネルが目を引きます。これらはゲームエンジンのUIとしては非常にポピュラーなもので、名前の違いこそありますが、大抵のエンジンには対応するものが存在します。
それぞれのパネルは、概ね以下のような機能を持ちます。
- ヒエラルキー
- シーンの中に存在する要素をツリー構造で表示するUI
- 要素をクリックすることで選択状態になる
- 要素の表示/非表示やリロードなども行える
- インスペクター
- ヒエラルキーで選択した要素の内容が表示されるUI
- 要素に更に色々な機能(恐らくコンポーネント)をアタッチする
- ここで変更した内容はゲームに即反映される
- アセットブラウザ
- エンジンで使えるアセットを検索できるUI
- フォルダ構造を辿ったり、お気に入りを登録する機能も
- ここからヒエラルキーやビューポートにドラッグ&ドロップすることで、ゲーム中に登場させることができる
これらが存在するということは、RE ENGINEが既存の汎用エンジンからかけ離れた設計思想を持つ物ではなく、一般的なゲームエンジンの設計と近しい、あるいは地続きになっていることを意味していると言えそうです。独特な設計思想であるよりは、一般的な設計との共通項がある方が習得コストも低く済むため、合理的な選択といえます。
ヒエラルキー内には「Resident」と「Title」という名前の要素が見つかりました。これは推測ですが、ゲームの起動中はずっと常駐しているシーンと、ゲームの進行に応じて読み込まれたり破棄されたりするシーンが存在していると考えられます。エンジンの機能のみならず、データの構造まで拝見できるのは、ワークフローの観点からも非常に参考になります。
メニューバーから他のウィンドウも開こうとしてみましたが、展示モードということで機能が制限されており、片っ端から開くことはできませんでした。しかし、このメニュー項目からも、RE ENGINEがカバーする範囲が多岐にわたっていることは想像が付くと思います。
シーンを再生したまま、複数カメラからのビューを同時に確認できるモードも存在しました。各ビューで表示する内容のレンダリングモードも選択でき、描画処理の内部を追跡調査するのも大いに捗りそうです。
続いて、『遊べる設計図「グレーボックス」制作工程』では、アセットをシーン内に配置して、プレイして確認するという一連のワークフローを体験できました。
先ほどのフェイシャルシーンとは異なり、各UIのレイアウトが見通せるようになっています。お題のクリアを目指しながら、細かいところにも色々注目していってみましょう。
アセットブラウザに表示される物は『プレハブアセット』という粒度の要素で、単純な3Dモデルではなく、ゲームロジックとなるスクリプトなども含んだものになっているようです。レベルデザインの段階では、配置する要素はしっかり作り込んでプレハブ化することが想定されているようです。
マウスカーソルを合わせると、大抵のUIにはツールチップが表示されて詳細情報が確認できます。これはアセットブラウザの表示要素の詳細情報で、ファイルの実体がjsonファイルであることが分かります。「ここにいろいろと構成要素が記述されているのだろうなあ」と推測できます。
インスペクタを指さしながら、同行者と「ああなってるんじゃない?」「こうなってるんじゃないすか?」とワイワイガヤガヤやっている様子です。本当は「アイテムに近づいたらメッセージが表示され、Aボタンを押したら拾う」という処理がどこに書かれているのかを確認したかったのですが、体験時間内では見つけられず。
この「拾う」という文字列は、UIを開いた直後にはGUIDが表示されていました。メッセージテキストごとにGUIDが割り振られており、表示しようとする段階になったら言語設定に応じて実際に表示する文字列を参照しているように見えました。
配置されているアセットは、ビューポート上でクリックすることで選択状態となり、コピー・カット・ペースト・複製・削除といった操作が可能です。これ自体はごく当たり前のように思えますが、RE ENGINEはランタイムとツールが別々のプロセスで動作しているはずなので、ここまで自然に一体化しているように見えるのは素晴らしいです。
ここまでで、2つの展示を通じてRE ENGINEの触れる部分を触り倒しました。そこから得られた所感をまとめたいと思います。
- ヒエラルキー・インスペクタといった一般的な概念は外していない
- ワークフローを構築する要素をプレハブアセットとして徹底的にまとめ上げている
- 参照要素の遅延解決を行うことでUIの最初の表示速度を徹底削減
- ビューポート上での操作にも、プロセスをまたいでいることを感じさせない操作感
汎用エンジンにもある機能を軽快な動作で提供しつつ、柔軟な作り込みが可能なプレハブアセットシステムを介して、ゲームタイトルごとに異なるワークフローを実現できるエンジン、と理解しました。
最新技術をいち早く導入できることが内製エンジンの強み
体験展示の合間に拝見した展示から、印象的だったものをいくつか紹介します。
シェーダーエディタ
シェーダーによる視覚表現の作り込みは、ゲームタイトルごとに異なる方向性で行われることが多いため、ゲームエンジン上で編集可能な場合が多いです。RE ENGINEでもシェーダー編集機能はサポートされています。
グラフィカルなノードを繋ぎ合わせてグラフを構築し、そこに外部から与えるパラメータをインスペクタから指定できるようにすることで、パラメータ違いのバリエーションを量産できるようになっています。
シェーダーコードのスニペット(断片)を記述するプログラマ、それを繋いで表現を作り込むアーティスト、それを調整しつつ利用してレベルを量産するレベルデザイナー、というワークフローのリレーをワンストップで実現していると言えます。
シーンメモ
ゲームシーン内に直接メモを書き込み、サーバーにも投稿してチームメンバーと共有できる仕組みが展示されていました。これに似たシステムは、2017年のCEDECにて、任天堂が『ゼルダの伝説・ブレスオブザワイルド』に関するセッションで発表した実績があり、国内のゲーム開発者は大きな刺激を受けたことと思います。
RE ENGINEのすごいところは、この機能を非常にわかりやすくプレゼンテーションしている点です。スクリーンショットを見ただけで、ある程度ゲーム開発経験のある人なら、どういう機能なのかがすぐに理解できます。
モーションマッチング
私が今回の展示において、最もテクニカルなトピックを扱っていると感じたのが、このモーションブレンドです。この技術の価値を理解するためには前提知識が必要なので、簡単に説明します。
3Dキャラクターのアニメーションは、プレイヤーの操作やAIの判断によって、再生するモーションがリアルタイムに切り替わります。この切り替えを瞬間的に行ってしまうと、いきなり姿勢が変化する不自然な動きになってしまうため、複数のモーションをブレンドしながら切り替える手法がよく用いられてきました。
しかし、このブレンドを適切に破綻させないように行うためには、「この状態からこの状態に移行する時には、モーションAとモーションBをこの比率で遷移させながらブレンドする」といった情報を大量に設定する必要があり、制作も管理も非常に高コストです。これを自動化しよう、というのがモーションマッチングの狙いです。
「詳しくはRE:2019を」とあるように、3年前の2019年時点でこの技術をプレゼンテーションできるレベルで実装していたというところに、同社のR&Dに対する積極性が窺えます。
一般的な汎用エンジンのように「新しい技術がエンジンに実装され、動作するようになってからタイトルの開発を始める」といった動き方では到底出せないスピード感です。必要な最新技術をいち早くエンジンに取り込む姿勢が、RE ENGINEの価値を大いに高めていると感じられました。
理想とするワークフローの体現がゲームエンジンの役割
内製ゲームエンジンと聞いた時に、一番関心を持つのが「どういう機能を持っているか」である、という人は多いと思います。私も最初に期待していたのはそこでした。しかし、今回の展示から感じ取れたのは「ワークフローの体現こそがRE ENGINEの本懐である」ということでした。
タスク管理システムとの連携や、最終的な実行パッケージに含めるアセットの管理など、ゲームを作るという観点からすれば、一見地味な内容の展示もありました。ゲームを作る部分だけにフォーカスするのではなく、リリースするまでの工程をカバーしてこそゲームエンジンなのである、というメッセージのようにも受け取れます。
実際に触ったり、紹介した展示においても、「開発の工程においてどのように使われるのか」というビジョンが明確に伝わってきました。これは、実際にリリースされたタイトルのアセットを題材としていたことで、実感しやすかったのかもしれません。RE ENGINEとしての機能を切り離した展示では、ここまで踏み込んで理解するのは難しかったと思います。
RE ENGINEの体験というテーマを超えて、カプコンのゲーム開発に対する姿勢や哲学が感じられた、とても貴重な時間となりました。
カプコン『オープンカンファレンス RE:2022』 公式サイト
ゲームエンジンプログラマ。シリコンスタジオ、ゲームフリークを経て、現在はフリーランス的に活動中。低レイヤ・描画などのランタイムから、ツール・アセットパイプラインまで、ゲームに関する技術はなんでも守備範囲です。RPG・音ゲー・格ゲー・紳士ゲー・お馬さんなどなど幅広く嗜みます。新作を待ちわびているのは『世界樹の迷宮』『ブレイズアンドブレイド』『バーチャロン』など。