現在世界中で人気を博している対戦格闘ゲーム『ストリートファイター6』には、特徴的な3つのモードが用意されている。スタンダードな対戦モードである「ファイティンググラウンド」、オンラインで様々なバトルを楽しめる「バトルハブ」、そして完全一人用となるストーリーモードの「ワールドツアー」だ。
中でも発売前から注目された「ワールドツアー」は、まるでRPGを遊ぶような感覚で3Dの都市を自由に動き回り、個性的なNPCたちと2D格闘ゲームのルールでバトルできるという画期的なモードだ。このモードの存在により、同作はこれまで初心者にとって敷居が高く感じられた格闘ゲームの間口を広げると同時に、経験者にとっても非常にユニークな体験を提供することに成功した。
しかし、その裏には開発者たちの多大な模索と挑戦がある。これまで2Dの世界だった格闘ゲームのシステムを、広大な3Dマップを擁するワールドツアーの世界へどのように落とし込むべきなのか。
今回は、8月23日から開催されている「CEDEC2023」において、カプコンのゲームデザイナーであるレーベボリ・テオドール氏の行った講演「『ストリートファイター6』ワールドツアーモードにおける2D格闘システムと3Dレベルデザインの関係」を基に、『ストリートファイター6』におけるワールドツアーモードの戦闘がどのように作られていったのかを紹介しよう。文字通りの「ストリートファイト」を実現するために行われた数々の取り組みとは……?
文/植田亮平
はじめに ~ワールドツアーのシステム~
『ストリートファイター6』のワールドツアーは非常にユニークなシステムを採用している。近年の3Dアクションゲームと同じ感覚で探索やアクションを楽しむことができる3D探索パートと、シリーズ定番の2D格闘システムでストリートファイトが出来る2Dバトルパートが、一つのゲーム内に共存している。そして最大の特徴は、この2つのゲームプレイがシームレスに移行することだ。
このシステムを作り上げるにあたって、開発チームは2つの方針を掲げている。一つは、従来のRPGなどで採用される「暗転」や「戦闘用の異空間」は使わず、あくまでその世界に留まったまま戦闘が開始されるシステムを作りあげること。そしてもう一つは、そのシステムが「メトロシティ」や「ナイシャール」のどこであろうと実現されることだ。
「その世界に留まること」と「それをどこでも」という目標は、2Dと3Dという全く異なるシステムを同じゲームに同居させることを意味する。開発チームはどのようにしてこの困難な課題を成し遂げたのだろうか。講演では、バトルスペースの作り方や企画段階のアイデアまで、具体的かつ興味深い話をいくつも伺うことができた。順を追って紹介してゆこう。
バトルスペースの条件
まずはワールドツアーのバトル空間がどのように作られているのかを紹介しよう。
プレイヤーとNPCのバトルが確定した瞬間、ゲームは瞬時にプレイヤーが立っている地面から横方向の距離を測り、回転させ、NPCとの間に直線上の空間を生成する処理を行っている。ここで作られた空間は「バトルライン」と呼ばれ、その空間の端にプレイヤーを一瞬でワープさせることでバトルがスタートする。そしてNPCとのバトルを行う際はマップのどこであれこのバトルラインが作られることとなる。
このバトルラインを生成し、そこでプレイヤーがバトルを行うためには最低でも横に7×12m、高さ5mのスペースを確保しなければならない。ゲーム上でプレイヤーが動く範囲は横6×3m、高さ5mだが、この領域を映し出すカメラは手前に9m、横方向に「逃げ」も含めて両側0.5mの追加スペースを必要とするため、実際には7×12mもの広いスペースを必要とすることになる。これに加え、バトル成立に必須ではないものの、観戦者を含めればさらに奥に3メートルのスペースが必要となる。
この広大なスペースを確保すると同時に、立っている地面にも条件がある。バトルを成立させるためには地面が水平である必要があり、具体的にはバトルライン上の地面の高低差が±15cm以内に収まる範囲でなければならない。これはゲーム上のモデルと当たり判定が同時に高さを調整できないことが原因となっている。
バトルラインを生成するにあたって、3Dモデルはプレイヤーの座標を基準に高さを調整している。しかしプレイヤーの「当たり判定」はバトルライン上に水平に生成され、なおかつモデルとは違い高さを座標で調整することはできないため、地面の高低差によって判定が見た目とずれてしまう現象が起きる。モデルは座標基準だが判定はずらせないというこのジレンマを解決するために、地面の高低差は±15cmという条件が設けられることとなった。
これらの要素を満たしたスペースを確保し、なおかつシームレスにバトルへ移行するのは容易な話ではない。「どこでも」という条件がついているとなればなおさらのことだ。当然ながらそこには膨大な作業が要求され、システムを実現するためには背景作りそのものから考える必要が出てくるだろう。
では、開発チームはどのようにしてこれらの問題を解決したのだろうか。ここからは具体的な背景作りのプロセスを見ていくことにしよう。
ステップ1:モノをどかす
チームはまず、ゲームを3Dから2Dへシームレスに遷移させるために、マップ上に配置されるオブジェクトのコリジョン、つまり「当たり判定」を正しく設定する必要があった。バトルライン上に干渉するオブジェクトがあるとバトルに不具合をきたしてしまうため、不要なテーブルや車はその都度バトルライン上から退ける必要がある。
問題は、「どれを消して、どれを残すか」だ。3Dゲームのエリアがそのまま2Dのステージになる性質上、ファイターが動き回る領域はオブジェクトの当たり判定がもろに干渉してしまうので、当然ここに物は置けない。
しかし、カメラはその限りではない。3Dゲームにおけるカメラは、基本的に特定のコリジョンをある程度「すり抜ける」よう設定されている。カメラを自由に動かせるゲームで特定のオブジェクトが透過した状態で映し出されたり、いちいちカメラがモノに引っかからないのはこれが理由だ。ワールドツアーにおいても、カメラは一部の壁や特定のオブジェクトを除いて基本的に「すり抜け」と「引っかかり」の2つの判定をオブジェクトに対して持っている。
開発チームは、この3Dにおけるカメラとコリジョンの特性をそのまま2Dにも適用することにした。バトルラインを生成する際、「ファイター領域内」のオブジェクトは取り除き、「カメラ領域内」のオブジェクトは3D上の透過ルールをそのまま適用する。このルールをバトル開始時に適用することによって、バトルに過不足の無いスペースを瞬時に確保することができるようになった。
しかし、このルールを以てしても解決できない問題も存在する。それはオブジェクトが場合によって「消えすぎ」たり「消えなさすぎ」たりすることだ。
例えば、電灯の上部など実際にはプレイヤーが触れることのできないオブジェクトであっても、それがファイター領域内に存在すれば「邪魔なもの」としてカリング処理(消える処理)される問題や、プレイヤー領域内に入っていないために透過状態で残ったオブジェクトが、カメラの邪魔などをしてしまう問題などが存在する。これらはルールではどうにもならないため、開発チームはこのような問題のあるアセットに関しては一つずつ手作業で処理の設定を行ったようだ。
ステップ2:横幅の確保
モノの処理が決定しても、戦うためのスペースが十分に確保されていなければバトルを行うことはできない。7×12mものスペースを確保するためには、マップの構造それ自体が2Dスペースを前提として作られる必要がある。そのため、開発プロセスの順番は2Dから3D、つまりマップの中にスペースを確保するのではなく、あらかじめ7×12mという寸法を決めておき、それに従ってマップを構成していくという手法が取られている。メトロシティの道幅がやたらと広く感じるのはこのためである。
しかし、街並み全てを広くするのには当然デメリットも存在する。モノひとつひとつが遠くなるため画面の情報量が減るし、必然的に似通ったロケーションが多くなってしまうため、見た目が犠牲になる可能性もある。このデメリットを何とかするため、開発チームはギリギリを攻めた狭いエリアの設計にも取り組んでいる。
メトロシティのチャイナタウンはその一例だ。多くの建物で満たされたチャイナタウンは、狭いながらもバトルが可能なスペースを確保することに成功している。これを実現するためには多くの手作業と個別対応が必要になったが、企画班と背景班の緻密な協力により、開発チームはこの魅力的なスポットを生み出すことに成功したのだった。
ステップ3:高さの確保
7×12mの幅が確保出来たら、次は5mの高さを確保する必要がある。高さについて考える場合、問題となるのは基本的に屋内だ。そもそも、ワールドツアーのバトル画面の高さは本来12mが想定されていたそうだ。しかし、空の下ならまだしも、この高さを建物の中で実現するのは相当に難しい。建物の各階が12mの高さになれば全ての屋内が巨大化してしまうし、仮に屋内の高さを5mに抑えたとしても、上空に飛び上がる技が天井を突き抜けてしまうという問題も発生する。
そこで、開発チームは屋内の高さを5mに調整すると同時に、プレイヤーが高く飛び上がる技を使用しても屋内エリアから出てしまわないよう、各技の飛び上がりを抑えるように設定している。実際に試してみれば、「スクリューパイルドライバー」の高度が他のモードと比べて低いことが分かるだろう。このような細やかな調整によって、バトルラインを生成するための十分な条件が整えられていく。
ステップ4:地面を平らに
縦横に十分なスペースを確保出来たら、仕上げは地面の整備だ。先ほど紹介したように、ワールドツアーでバトルが成立するためには1エリアの高低差が±15cm以内に収まっている必要がある。そのため、ワールドツアーのマップは基本的に地面が平たんに作られている。少なくとも、NPCが存在するようなエリアの中で坂や階段が設置されることは避けられているようだ。
しかし、3Dのマップを完全な平地にするのはどうしても不可能であり、車道と歩道の間の段差など、確実にバトルに干渉するであろう凸凹も存在する。そういった15cmを超える段差が存在する場所では、特別な処理が行われている。例えば車道と歩道の間の段差では、車道側と歩道側でバトルエリアを分離し、その段差を跨がないようにバトルラインが生成されるようになるなどの工夫が行われている。