
ゲーム開発者向け大規模カンファレンス「CEDEC2023」にて実施されたセッション「『ストリートファイター6』ワールドツアーモードにおける2D格闘システムと3Dレベルデザインの関係」のレポートをお届けします。本作の目玉のひとつである「ワールドツアーモード」のシームレスな探索&格闘システムは、どのようにして構築されたのでしょうか。

このセッションには、カプコンのゲームデザイナーであるレーベボリ・テオドール氏が登壇。同氏はワールドツアーモードのレベルデザイナーやマップ制作とバトルエリア全般の企画を担当しています。

「ワールドツアーモード」メトロシティは至るところがバトルラインとなる!

『ストリートファイター6』には、通常の対戦モードとなる「ファイティンググラウンド」と多くのプレイヤー達が集まる「バトルハブ」、そしてオープンワールドタイプのシングルプレイ用ストーリーモード「ワールドツアーモード」が搭載されています。

本作の「ワールドツアーモード」は、舞台となるメトロシティを探索したり、様々な格闘家やNPCと2D格闘バトルを繰り広げていく新モードです。
このワールドツアーモードの特徴として「画面を暗転させることなく、3D操作のオープンワールド探索状態からスムーズに2Dバトルへ移行すること」が挙げられます。このバトルラインを構築するためのスペースは、リアルタイムに計算して成り立たせているのだそう。バトルの相手を確認し、スペースを地面確認から横確認し、さらに回転して完成する……というフローを経て「バトルライン」が完成します。

バトルラインに必要なスペースは「横7×12mの面積と高さ5mの空間」です。バトルラインは、戦う両キャラクターが存在するファイター領域、カメラ領域、観戦者領域を合わせた空間で構成。ファイター領域の奥行きは、最大領域を使うザンギエフのダブルラリアットを基準に設定しています。

カメラはファイター領域左右の両幅0.5mずつ延長された移動範囲と手前9mの幅を持ち、観戦者領域はファイター領域の後ろの奥行き3mに配置。また地面の高低差も重要な要素です。地面の高低差は、プレイキャラの判定が見た目とズレてしまうためプラスマイナス15cm以内に収まるルールを定めています。

バトルのために設計された「メトロシティ」
これらの条件からワールドツアーモードにおいて、バトルラインを構築するためのルールが決められています。3Dでの探索パートにおいてはカメラがオブジェクトを「透過するもの」に加え、カメラ移動を「止めるもの」の2種類があります。2Dのバトルラインにおいてはスタックする可能性があるためにオブジェクトを置けませんが、カメラ領域で透過(消す)させることは可能です。


このセッションでは、バトルスペースにおける「他の視点からの映像」も披露。キッチンカー周辺の机やモブが座る椅子が透過されており、その周辺にモブが集まる様子が映されていました。

ただしオブジェクトが消えすぎたり、消えなさすぎる問題もあるために新機能としてカリング(カメラの視界外など、画面に現れない部分を描画しないようにする仕組み)の処理範囲をアセットごと上書きすることでした。
この場合では奥に伸びる柱の先の判定を手作業で消して柱本体を残す方法をとっています。また、オブジェクトの一部だけ消えてしまう問題では、アセットをグループ化して一緒に消す方法をとりました。


また広いバトルスペースを確保するために「メトロシティを広く作る」という考え方もありますが、オブジェクトに触れるための移動距離が長くなってしまうことや広いスペースを埋める情報量が必要なこと、そして単純に背景が似てしまうことなど問題点が挙げられました。そのため、本作では見た目を重視した狭い路地を実装。狭いエリアは個別に対応する必要があったものの、一部の屋台を消すことでバトルスペースを確保して戦いに挑めるようになっています。



『ストリートファイター6』の戦闘における高度は元々12mの想定で作られているため、そのまま作ると巨大な建造物だらけになってしまうことから屋内は5mに調整すると共に、外観から違和感を覚えないように処理しています。加えて、屋内エリアでキャラクターが天井を貫通しないように“モデル止め”を設定しています。

前述の通りバトルラインを成り立たせるための高低差はプラスマイナス15cmですが、歩道と車道のように1段の差が15cm以上だった場合だと戦えないため、歩道と車道それぞれにバトルラインを配置するなどの処理をしています。

なお、ワールドツアーモードにおいて「どこでもバトルが出来るようにすること」を忠実に実装してしまうと不自然なものばかりの世界になってしまいます。そのため現実の扉の大半は人間一人分ぐらいですが、バトルラインシステムの条件に合わせてしまうと巨大なゲートになってしまうことから、廊下や路地、坂、階段も作れません。

戦えない場所で戦えるようにする「固定」と「テーブル式」
バトルラインシステムの問題点として、バトル不可能なエリアが坂や階段が存在することと、シナリオバトルや過去作オマージュなどを描写する必要があるために解決作が2種類ありました。
それは、必ず同じ場所と見た目で始まる「固定バトルライン」と、バトル不可場所でバトルしても事前に設定されたラインにキャラが飛ばせる「テーブル式バトルライン」の2つです。バトル時に振り分けられるバトルラインの優先順位は、固定バトルライン→リアルタイム計算→テーブル式バトルライン(保険)の順。補足として、キャラクターを飛ばすことで坂でも戦いを挑む事ができるのですが、飛ばされる場所がわからず混乱させるリスクがあるそうです。


マップを含めたバトルラインの作成タイムラインでは、エリア概要を決めるマップ→企画マップでは屋内のレイアウトなどを設定→企画モデルとしてバトルエリアの確保や固定バトルシチュエーションを設定します。

ここで例として『ストリートファイターV』と『ファイナルファイト』で登場した工場エリアの作例を紹介。マップでは移動ルートやキーアイテム、重要バトル、バトル可能エリアを配置しています。

次に企画モデルを作成します。ここでサイズ感やレイアウト、天井の高さや横幅を含めたバトルエリアを確認し、固定バトルシチュエーションを指定します。


このモデルでは、コリジョンの確認や背景作りのルール確認。バトルラインデータと保険データも作成し、最後に固定シチュエーションのバトルラインを配置します。最後にバトルの見た目におけるオブジェ透過などを確認して、一旦完成です。



なるべくシームレスに戦闘へ移行するために、リアルタイムだけでなく固定・テーブル式を使い分け、オブジェクトの透過処理など様々な工夫を施している「ワールドツアーモード」。これらの施策を意識してプレイしてみると、より『スト6』が備えるバトルラインシステムの先進性を実感できるかもしれません。