登壇したのはカプコン CS第二開発統括 開発一部 第一ゲームデザイン室の安原 直宏氏。2019年にゲームプランナーとしてカプコンに入社し、2020年から『ストリートファイター6』(以下、『SF6』)チームに合流しました。
安原氏は17年ほどのゲーム業界歴があり、プログラマーとしてシェーダーやJenkinsの経験もある。『SF6』ではキャラクターごとのストーリーを体験しながらCPUと闘う1人用のプレイモード「アーケードモード」や、フレンド管理・プレイヤー検索・リプレイ再生などができる通信を中心とした機能の「CFN(Capcom Fighters Network)」を担当している
格闘ゲームのCPUや基本ルールの確認
講演冒頭、本作のCPU動作や格闘ゲームの基本的なルールについて動画で紹介がありました。『SF6』のCPUは、ある程度やり込んだプレイヤーがやるようなコンボや、人に対しても機能しそうなフェイントをかけているところが特徴になります。
CPUレベルは1~8まであり、低レベルでは必殺技が出そうで出なかったり、逆に出すぎたりする
高レベルになるとフェイント付きで必殺技を出したり、間合いを測りつつ隙に反撃したりする
本作の攻撃手段にはガード可能な「通常技」「必殺技」とガードができない「投げ」が存在し、これらの攻撃行動を使い分けて対戦相手の体力をゼロにすることが勝利条件となります。
相手の体力ゲージを0にするか、残り時間0で体力ゲージの多い方が勝利となる
攻撃手段は「通常技」「投げ」「必殺技」がある。通常技はガード可能だが、投げはガード不可
一部の通常技はキャンセル(※)して必殺技を続けて出すことができる
※特定の行動の動作を中断して次の行動へすばやくつなげること。通常技のモーション途中から必殺技のコマンドを入力して上書きし、通常技が当たった瞬間に必殺技のコマンドを完成させると隙なく技をつなげることができる
また、攻撃はヒットさせると相手より少しだけ先に動けて有利になり、ガードされると不利になります。
上記右画面にある青い線は、攻撃がヒットした直後に最速で両者がジャンプした瞬間の高さ。高い方が先にジャンプできており、攻撃のヒット時は先に動けていることが分かる
対戦ゲームにおけるCPUが担う役割とは?
続いて、対戦ゲームにおけるCPUの役割についての説明が行われました。
CPUの行動方針とその目的
下記画像は、レベルが進むにつれて段階的に行動が解放されていくという、『SF6』におけるCPUの行動指針の草案を示したものです。
各レベルにおいてCPUが取る行動が増えていく。
『SF6』のアーケードモードでは1つのプレイで4つのレベルをまたぐように設計されている。そのため、レベル7以上は難易度がノーマル以上でないと出ないようになっているとのこと
設計の理由は、CPUに「1人用アクションゲームとしてのCPU」と「対人戦としてのCPU」という2つの役割を持たせたから。「1人用アクションゲームとしてのCPU」の役割は、シンプルに動かして楽しくキャラクターを魅力的に感じてもらうのが目的です。操作に慣れて、キャラクターの特性や魅力を感じながら攻略していく楽しさを感じてもらうという狙いがあるということです。
一方、「対人戦としてのCPU」は、CPUをライバルと感じることができるように思考や揺らぎを表現した、仮想の対人戦を務めることを目指したCPUです。また、プレイヤーをより高みに導くために駆け引きやコンボといったお手本を見せることも目標になっています。
1人用アクションとしてのCPU
「1人用アクションゲームとしてのCPU」は、さまざまな目的に沿った行動を取るよう作られています。
1つ目の目的は「プレイヤーに操作に慣れてキャラクターの特性や魅力を感じてもらうため」。このために、CPUはプレイヤーに当たらないギリギリの距離で必殺技を出したり、難しい行動や操作をゆっくりと行ったりする行動を取ります。
プレイヤーに当たらないギリギリの距離で必殺技を出すことで、どのような必殺技があるかを示している
難しい行動や操作をゆっくりと行ってみせる(上記はパリィドライブラッシュという動作)
2つ目の目的は「キャラの特性・魅力を伝える」こと。このために、遠距離戦を得意とするJPであれば「距離を取る戦略」で遠距離戦をアピールしたり、近距離での投げが強烈なザンギエフであれば奇襲から近距離で相手をつかんだりといった、キャラクターに特性に応じた行動を行います。
距離を取りつつ遠距離戦をアピール(画面右のJPは遠距離戦が得意なキャラクター)
奇襲から近距離で相手をつかむ(画面右のザンギエフは、近距離での投げが強烈でインファイトを好むキャラクター)
自分を強化してトリッキーに攻める(画面右のジェイミーは薬湯を飲むとアクションが増える特殊なキャラクター)
3つ目の目的は「攻略の導線を用意する」ということ。本作のCPUは同じ行動を繰り返しながら近づき、プレイヤーがガードから反撃する機会を意図的に示すように設定されています。
同じ行動をして近づき、プレイヤーがガードから反撃する流れを作る
他の技を組み合わせてることで、応用編も作成している
対人戦としてのCPU
「対人戦としてのCPU」のデザインとしては、人がやってきそうな行動、つまり駆け引きに発展する行動をすることに重点を置いています。
行動の1つ目は、「対になる行動」。「ガードすると反撃できる連携」などが挙げられます。
プレイヤーが手を出して反撃するとヒットする連携。ドライブインパクトという相手の攻撃を受け止めつつ攻撃できる打撃技で、プレイヤーの通常技が返されてしまう
動作を見ていればカウンター可能。CPUがドライブインパクトを出すのを見ていれば、プレイヤーはカウンターのドライブインパクトを返すことができる
さらに1段行動を加えたカウンター。CPUの連続技をプレイヤーがドライブインパクトで返しても、さらにそれをCPUがドライブインパクトで返す
行動の2つ目は、「行動結果により分岐する行動」。例えば、「攻撃がガードされた場合は不利なのでいったん様子を見る」「攻撃がヒットした場合は有利なので打撃で追撃を試みる」などがあります。
攻撃がガードされた場合は不利なのでいったん様子を見る
ヒットから様子を見る。CPUの攻撃がヒットした後にプレイヤーが必殺技で割り込んで反撃するのをガードしている(必殺技はガードされると大きな隙ができる)
行動の3つ目は、ユーザーがプレイしていく上での「お手本としての行動」。トレーニングメニューにあるコンボトライアルにあった連続技をCPUがやってみせるなど、プレイの参考になることはもちろん、ワールドツアー(※)の師匠としても登場するキャラクターのかっこよさを見せて価値を高める設計にもなっています。
※1人用の没入型ストーリーモード。プレイヤー自身のアバターを作成して広大なマップを探索でき、通常プレイで登場するキャラクターたちも師匠として登場する
このようにCPUの行動を段階的に広げていくことで、最初に紹介した表のようにCPUのレベルと共に難易度が上がっていきます。
CPUを人間らしく行動させるための3つの観点
これまで紹介してきたCPUの行動がどのような流れで決定されているかについて、安原氏はカードゲームやデッキに例えて説明しました。
各行動のカードを「戦術」というデッキにまとめる
例えば、昇竜拳・強キック・ジャンプ弱パンチといった行動をカードとします。そしてカードを、地上用、相手のジャンプに対する対空用などといったデッキにまとめ、それを「戦術」とします。
波動拳やしゃがみ中キックは地上用デッキ、強キックや昇竜拳は対空用デッキというように分類し、これらを「戦術」とする
戦術をまとめた「作戦」を「実行能力」で選び実行する
そして、地上用・対空用・起き上がり用・反撃用といった「戦術」のデッキをまとめたものを「作戦」とします。
この「作戦」としてまとめたものを各レベルに対して設定し、実際に戦闘が始まった時にデッキからカードをドローして「今回はこのカードを使おう」と判断し、カードに記載されているコマンドを入力します。これを「実行能力」と呼んでいます。
つまり、「戦術」デッキを「作戦」としてまとめて「実行能力」で選定するという一連の流れで処理が行われる仕組みとなります。
CPU行動決定の流れ
CPUの行動決定の流れを、いくつかの場面を例に見ていきましょう。
まずは試合開始時の行動の例をあげます。開始時の行動デッキに、強キック・後退・波動拳といった行動がある中で、CPUは波動拳を選びました。
しかし、プレイヤーのジャンプをしてきたので波動拳はプレイヤーにヒットせず、逆にCPUにジャンプ攻撃がヒットするという結果になりました。
次に、プレイヤーがジャンプしてきた時、つまり対空の行動についての例です。
対空時の行動デッキにある昇竜拳・強キック・ジャンプ弱パンチといった行動の中から、今回は相手の行動に対応するまでの時間が少ないため、CPUも自分が飛んで迎撃するというジャンプ弱パンチを選びました。
その結果、対空攻撃がヒットしましたが、ヒットさせても自分が不利になってしまう行動だったため、プレイヤーからの攻撃を受ける隙ができてしまいました。
起き上がり時の行動についても見ていきましょう。
攻撃を受けた後に起き上がる時は相手から攻撃されやすいので、基本的にはガードしたほうがよい場面です。しかしこのケースでは相手の残り体力が少ないことを考慮して、CPUはデッキにある昇竜拳・波動拳・後退といった行動の中から、必殺技である昇竜拳で割り込むことを選びました。
その結果、昇竜拳がヒットして相手をK.O.しました。
キャラクター固有の「戦術」を「作戦」として組み立てる
各キャラクターには、いわばキーカードと呼べる特性を持った戦術があります。こういった戦術を表現することが、CPUの面白さであり強さを示す目的となります。
例えば、リュウの波動拳、ザンギエフのスクリュードライバーなどが該当します。
これらの戦術をいかに出すかを意識してキャラクターの特性を組み立てていきます。
例えば、低レベルならばいきなり「スクリュードライバー」という戦術を用いるだけでもよいですが、「前進」+「スクリュードライバー」、「ジャンプ」+「何もせず着地」+「スクリュードライバー」、「パリィドライブラッシュ」+「ニーバット」+「スクリュードライバー」、といった複数の戦術を使った作戦としてキャラクターの特性を組み立てます。
「何もせず着地」といういわゆる空(から)ジャンプや、ラッシュから有利状況を勝ち取った上での行動など、上級プレイヤーでもひっかかってしまうような作戦も組み立てられる
「実行能力」でCPU行動に差を付ける
CPUは状況によったプレッシャーを係数として使用し、成功や失敗といった揺らぎが与えられてより人のような行動を取ります。
有利となる攻撃が当りスクリュードライバーを試みているが、コマンド入力に失敗してバックジャンプしている。その時の係数によってコマンド入力失敗が発生させることで、人っぽくみせることに繋がる
ここまで説明した戦術と実行能力の組み合わせを表にまとめると、下記画像のようになります。
レベル1~5では基本的な操作ができれば勝てる「操作チュートリアル」、レベル6では安定した操作ができれば「パターン化可能な」アクションゲームを意図したものになります。
難易度を意図的にハード以上にしたときにでてくるレベル7では、戦術こそ豊かだが状況によっては正しい判断ができないという実際の人のような「みんなのライバル」を目指したものに、レベル8では全てを満たしコンボもひと通り完走できる「ワールドツアーの師匠」といった存在になります。
ヒヨコは未熟、赤ハチマキ習熟を示す。大まかにレベル1~5、6、7、8に分かれる
CPUの知識表現
今回紹介されたCPUの知識表現に関して、レベルによって攻撃をヒットさせた時の“有利”という表現の分解能が変わるようになっていると補足がありました。
例えば、強キックがヒットした時に、「当たったが有利なのか分からない」「有利だろう」「8フレーム先に動ける有利がある」とレベルに応じて分解能(解像度)が変化します。
もし、8フレーム有利と完全に理解しているならば、次に当たる技も理解して正しく出すこともできます。そして、それが当たったことによりどう派生するのが適切かも分解して理解する、といったようにCPUの実行能力が分解能に応じて高まる仕組みになっています。
分解能が変化するということが、講演タイトルにある「有機的」という表現にあたる
長期運営に対応するための取り組み
長期運営されるゲームでは制作中のみならずリリース後にも調整が入り、キャラクターの技なども不定期に変更が発生します。しかし、先述のカードゲームに例えたデッキ情報の部分をそのまま使ってCPU動作を調整すると、QAコストも高まってしまいます。
そこでコストを抑えつつ品質を一定に保つことを目標として、「勝利ラウンド」「体力」「SAゲージ」「ドライブゲージ」「位置・距離」「硬直差」「姿勢」「特殊カウンター」といった、ゲーム実行中の8種類の情報をCPU動作の判断の中心にすることを試みました。
他ジャンル転用のヒントは「単位時間」×「3種の観点」
講演の最後に、対戦格闘ゲームに限らない他ジャンルへの適用の際に、「単位時間」がポイントになると安原氏の考えが述べられました。
格闘ゲームの場合、ゲーム速度は秒間60フレームで動いています。その中で人の操作では、技のコマンド入力、左右などの方向入力による物理的負荷、相手の状況を見た対応などに数フレーム、あるいはそれ以上の時間がかかってしまいます。
これをどんどん引き延ばしていくと、格闘ゲームにて自分でレバーを操作することが、カードゲームでの判断の過程と近い部分が見えてきます。それぞれのゲームの「単位時間」の捉え方と「戦術」「作戦」「実行能力」という三つの観点を組み合わせることが、ジャンルの差として吸収できるヒントになると安原氏は述べ、講演を締め括りました。
『ストリートファイター6』初心者から上級者まで対応した人間らしい有機的な行動を行うCPU(AI)のしくみ - CEDEC2024ストリートファイター6 公式サイト
ゲーム会社で16年間、マニュアル・コピー・シナリオとライター職を続けて現在フリーライターとして活動中。 ゲーム以外ではパチスロ・アニメ・麻雀などが好きで、パチスロでは他媒体でも記事を執筆しています。 SEO検定1級(全日本SEO協会)、日本語検定 準1級&2級(日本語検定委員会)、DTPエキスパート・マイスター(JAGAT)など。