2022年8月23日から25日にかけての3日間にわたって開催された、日本最大のコンピュータエンターテインメント開発者向けカンファレンス“CEDEC2022”。

 本記事では2日目に行われた『ELDEN RING』(エルデンリング)に関するセッション“ELDEN RINGのオープンなフィールドに対応するためのエンジニア取り組み事例紹介”の模様をお届け。

 登壇したのはフロム・ソフトウェアの設計セクションサブリーダー・松本 龍氏。エンジニアの観点から、広大なオープンフィールドを構築する際の苦労や工夫が語られた。

『ELDEN RING』(PS5)の購入はこちら (Amazon.co.jp) 『ELDEN RING』(PS4)の購入はこちら (Amazon.co.jp)
CEDEC001
CEDEC002

広大なフィールドの作りかた

 『エルデンリング』は超広大なフィールドを自由に冒険するアクションRPG。本作のフィールドは『DARK SOULS III』序盤のマップである“ロスリックの高壁”と比較すると後者が豆粒に見えるほどのスケールで、さらに地下のフィールドやダンジョンも存在するため、とにかく広大! 通常のフィールドは開発上では“オープンマップ”と呼んでいるそうだ。

 さらに、一部の作り込まれたダンジョンは“レガシーマップ”と呼ばれており、たとえば序盤に迎えるストームヴィル城がこれにあたる(プレイヤー間などではレガシーダンジョンと呼んでいた場所)。ストームヴィル城だけでロスリックの高壁の約3倍の広さを誇ることから、いかに『エルデンリング』の規模が広大なのかがわかる。

 そのため『DARK SOULS III』と同じ作りかたでは、物量的に絶対に問題が起きると予測。それに対する対策を披露したのが、本セッションの内容だ。

CEDEC003
CEDEC004

 まずはマップの構成について。『DARK SOULS III』はひとつのマップごとにデータを管理しており、エリア移動が近くなると接続されたマップのデータをロードするのだという。レガシーマップについては、『エルデンリング』もその作りかたで問題ないと判断。

 ただしオープンマップではプレイヤーがより自由に移動できることや、リムグレイブ北側だけで11個ものレガシーダンジョンがあることから、ロードに問題が起きるだろうと分析。

 そのためマップを細かいマス目のエリアで分けて、マス目の周囲のエリアをロードする仕組みにしたという。すべてのエリアが同じ範囲になっているのではなく、巨大なボスとの戦いや高速移動が必要となる場所ではエリアの範囲を大きくして対処したそうだ。

CEDEC005
CEDEC006
CEDEC007

 続いて、マップの作りかたについて。『DARK SOULS III』ではまず背景となる建物などを含めたマップを作り、その後インタラクトできるオブジェクトを配置して作成していた。作り込まれたひとつのマップを作るなら、この方法で十分だそうだ。

 『エルデンリング』ではマップ自体はベースとなる地形形状のみにし、その後からアセット(※)を配置して、建物やオブジェクトを配置していったそうだ。そのおかげで、一度しか使わないようなデータを減らし、アセットどうしを組み合わせることで多彩なマップを作りだせるようになったという。

※ゲームを作る素材・部品のこと。

CEDEC008
CEDEC009

 制作したマップを敵などのNPCが動く際、障害物のことを考慮して移動する必要がある。『エルデンリング』ではナビメッシュという処理で、敵が地形の経路を探索して移動するそうだ。『DARK SOULS III』はある程度自動で作成され、要所は手付けで生成していたとのこと。

 『エルデンリング』では物量が多いことや、敵もジャンプなどの高低差移動をすることから、従来の方法では難しいと判断。“ここからここはジャンプできます”、“ここは飛び降りできます”といったデータを、自動生成するようにして対処したそうだ。

 また、巨大な敵が障害物や段差を細かく判定してしまうと、巨体な敵の移動がかなり大変になってしまう。そのため、巨大な敵は専用の経路を探索する仕組みにし、通常の敵よりも段差や高低差をゆるく判定してプレイヤーに向かってくるようにしたのだとか。

CEDEC010
CEDEC011
CEDEC012
CEDEC013

多彩な箇所をサポート

 続いては、細かな調整についてのお話。『エルデンリング』では“情報地図”という、マップに何が設置されているのか俯瞰的に見れるアプリを使用しているという。クリックすればその設置物の詳細情報が見れるほか、その位置までゲーム内でワープできるのだとか。

 さらに、自動テストも導入している。自動でマップの上を隅から隅までひたすら全部走らせて、処理負荷やエラー情報などさまざまなデータを取っていたそうだ。開発中はいろいろな要素が追加・変更・削除などがどんどん加わるため、定期的にチェックしていたという。それらの情報も情報地図に書き込まれる。

CEDEC014
CEDEC015

 そのほかにも、“依存関係データベース”というリストツールを作成した。これはデータどうしの依存関係を調べて、データを変更した際にほかのデータに影響が出るのかどうか、未使用データがあるのかを判別するためのもの。また、発売前におこなわれたネットワークテストではテスト範囲外のデータを含めたくなかったので、その際の確認にも役立ったという。

 ただし依存関係を把握するのは人力では難しく、しかも『エルデンリング』のデータ量は膨大だ。そこで“依存関係データベース”を制作。自動でファイルの依存関係がわかるほか、どの開発ラインで作ったファイルなのかも把握できるのだとか。

CEDEC016
CEDEC017
CEDEC018
CEDEC019

 また、レガシーマップは配置物が多いため、処理負荷を軽くするために、壁の向こうなどの見えない場所は極力グラフィックとして描画されないようにしたい。そこを表示するのか否か、という設定も自動生成しているという。

 従来はグラフィッカーが手付けで設定していたそうだが、『SEKIRO: SHADOWS DIE TWICE』の開発の際に、空中アクションなども関わることからグラフィッカーの仕事量が増えてしまうほか、判断が難しくなってしまうので、自動生成機能を実装したとのこと。それが『エルデンリング』にも活用されている、ということだ。

CEDEC020
CEDEC021
CEDEC022
CEDEC023
CEDEC024

 なおエンジニアの仕事はこれだけではなく、ゲームシステム設計も担当している。たとえばNPCを味方として召喚できる“霊体”や、マルチプレイのサインを探しやすくする“サイン溜まり”に関するシステム設計も、一例として担当したことを明かしていた。

CEDEC025

 こういったゲーム制作の土台を支えていたのが、エンジニアの皆さんのお仕事。セッションでは「自動化しました」とひと言で済ませていたが、おそらく自動化自体もかなりの苦労があるはずだ。地味ながらもゲーム制作を効率的かつ効果的に進められる地盤固めのおかげで、『エルデンリング』のような素晴らしい作品ができあがったのだと感じられた。