
2024年8月21日(水)から23日(金)にかけて開催された、日本最大のコンピュータエンターテインメント開発者向けカンファレンス“CEDEC2024(Computer Entertainment Developers Conference 2024)”。その2日目に実施されたセッション、“『ストリートファイター6』(以下、『スト6』)初心者から上級者まで対応した人間らしい有機的な行動を行うCPU(AI)のしくみ”の模様を紹介する。
eスポーツタイトルとしても人気の高い『スト6』で、CPUの動作はどのようにプログラミングされているのかを、カプコン CS第二開発統括 開発一部 第一ゲームデザイン室のカプコンの安原直宏氏が解説した。
eスポーツタイトルとしても人気の高い『スト6』で、CPUの動作はどのようにプログラミングされているのかを、カプコン CS第二開発統括 開発一部 第一ゲームデザイン室のカプコンの安原直宏氏が解説した。
広告
![[IMAGE]](https://cimg.kgl-systems.io/camion/files/famitsu/15462/afe07eee1f0268775c646e844b05bff2d.png?x=767)
レベルとともに広がるCPUの行動バリエーション
安原氏は『スト6』においてCPUを相手にキャラクターの物語を楽しむストーリーモードとCFN(Capcom Fighters Network)などを担当しているとのこと。同氏は自己紹介とともに、相手の体力をゼロにしたほうが勝ちといった格闘ゲームの基本的なルールを解説。その後に本題へと入り、下記の3項目に沿って進行した。
- 対戦格闘ゲームのCPU
- 人間らしく行動させるための3つの観点
- 長期運営に対応する
最初に言っておくが、ここで言う“CPU”とは、CPUが操作するキャラクターの思考ルーチン、つまり行動を決定するロジックやプログラムのことを指す。安原氏はCPUがどうあるべきかという目的地として、CPUキャラクターの“行動の草案”を1枚の表として示した。
![[IMAGE]](https://cimg.kgl-systems.io/camion/files/famitsu/15462/a2f07ffa368f051119fc0d9e7c6f72a89.png?x=767)
縦軸は1~8のレベル。数字が大きくなるほど強くなり、Lv1なら“ほぼ移動のみ”、Lv3なら“時々飛ぶ(ジャンプする)”、Lv6なら“ボス(ボスキャラクラスの強さという意味)”など、その具体的な強さの度合いが示されていた。一方、横軸は、移動、打撃、ガード、ジャンプ、必殺技など、CPUが取り得る行動を8つの項目に分類して示している。
この表ではレベルが上がるほどCPUキャラクターが取り得る行動のバリエーションが増え、さらにその精度が上がっていくことをわかりやすく明示。非常にわかりやすく示されていた。表組みのタイトルは“行動の草案”で、調整が加えられたものの実際の製品版でも、ほぼ最初に決めた仕様のままCPUの実装が進められているという。
この表ではレベルが上がるほどCPUキャラクターが取り得る行動のバリエーションが増え、さらにその精度が上がっていくことをわかりやすく明示。非常にわかりやすく示されていた。表組みのタイトルは“行動の草案”で、調整が加えられたものの実際の製品版でも、ほぼ最初に決めた仕様のままCPUの実装が進められているという。
CPUは2つの側面を持つ
CPUの役割はふたつ。ひとつはひとり用アクションゲームとして遊ぶ際に登場するキャラクターとして、もうひとつは“プレイヤーをより高みに案内するためのお手本”としての対人戦の仮想ライバルとしての役割だ。
前者はプレイヤーを操作に慣れさせるとともに、キャラクターの特性や魅力を伝えるものとして。後者はより高度なシステムや、戦いにおける駆け引きの理解などが具体的な役割となる。
“対人戦としてのデザイン”として、本作のCPUは“どんなときに反撃が成立するのか、あるいはしないのか”を示すような連携や行動をくり出すことで、キャラクターごとの技に設定された“隙”を理解させる。これは駆け引きの基礎的なことを理解させるための行動だ。また、高レベルになれば、カッコよく高度な連携を見せる操作を行う。こうしてプレイヤーの“師匠”として手本を見せるのだ。
前者はプレイヤーを操作に慣れさせるとともに、キャラクターの特性や魅力を伝えるものとして。後者はより高度なシステムや、戦いにおける駆け引きの理解などが具体的な役割となる。
“対人戦としてのデザイン”として、本作のCPUは“どんなときに反撃が成立するのか、あるいはしないのか”を示すような連携や行動をくり出すことで、キャラクターごとの技に設定された“隙”を理解させる。これは駆け引きの基礎的なことを理解させるための行動だ。また、高レベルになれば、カッコよく高度な連携を見せる操作を行う。こうしてプレイヤーの“師匠”として手本を見せるのだ。
![[IMAGE]](https://cimg.kgl-systems.io/camion/files/famitsu/15462/aa03b8fe4f2334ddddb4c174d7240a117.png?x=767)
CPUのロジックをカードゲーム的表現で解説
本セッションの本題である“人間らしく行動させるための3つの観点”へと話題が移って以降、安原氏はCPUの行動ひとつひとつをカードゲームに用いられるカードとして表現した。これを組み合わせることで、本作におけるCPUのロジックがどのように組まれているのか、直感的に把握しやすい。
CPUにしろプレイヤーにしろ、条件ごとに取り得る行動の選択肢は限られる。たとえば相手がジャンプをしてきたら、“ガードする”か“対空の技を出す”といった具合だ。そうした状況ごとの行動をカードゲームで言う“デッキ”のようにまとめて、安原氏は“戦術”と表現した。
CPUにしろプレイヤーにしろ、条件ごとに取り得る行動の選択肢は限られる。たとえば相手がジャンプをしてきたら、“ガードする”か“対空の技を出す”といった具合だ。そうした状況ごとの行動をカードゲームで言う“デッキ”のようにまとめて、安原氏は“戦術”と表現した。
![[IMAGE]](https://cimg.kgl-systems.io/camion/files/famitsu/15462/afaf51514839d1f62080e6545afe2b0f3.png?x=767)
つまり、主題である“人間らしく行動させるための3つの観点”とは、戦術、作戦、実行能力を指している。先に結論を言ってしまえば、CPUのレベルが上がるほど、戦術のパターンが増え、作戦を編むための戦術は多彩になり、実行能力が高まっていくのである。
安原氏によると、CPUが操作する各キャラクターには、その特徴を決定づける“キーカード”が設定されているとのこと。CPUはいかにこのキーカードを使うか、つまりいかに各キャラクターの特性を発揮させるかに主眼をおいて戦術が組まれているのだという。CPUのレベルが上がるほど、キーカードを用いるためのカードを組み合わせる枚数が増え、より行動が複雑化していく。
最終的なカードを使うにあたって“実行能力”の判定は、先に入るようになっている。たとえばリュウ対ザンギエフの対戦が行われているとして、リュウに歩いて近づいてきたザンギエフは通常技を出してガードさせる。ガードによる硬直で有利な状況が生まれ、ここでスクリューパイルドライバーを実行、かと思いきや。なんとザンギエフは後方へとジャンプで飛び去ってしまう。
安原氏によると、CPUが操作する各キャラクターには、その特徴を決定づける“キーカード”が設定されているとのこと。CPUはいかにこのキーカードを使うか、つまりいかに各キャラクターの特性を発揮させるかに主眼をおいて戦術が組まれているのだという。CPUのレベルが上がるほど、キーカードを用いるためのカードを組み合わせる枚数が増え、より行動が複雑化していく。
最終的なカードを使うにあたって“実行能力”の判定は、先に入るようになっている。たとえばリュウ対ザンギエフの対戦が行われているとして、リュウに歩いて近づいてきたザンギエフは通常技を出してガードさせる。ガードによる硬直で有利な状況が生まれ、ここでスクリューパイルドライバーを実行、かと思いきや。なんとザンギエフは後方へとジャンプで飛び去ってしまう。
![[IMAGE]](https://cimg.kgl-systems.io/camion/files/famitsu/15462/8ea1962ad6bd5a859c2153b7ebfc9f80.jpg?x=767)
![[IMAGE]](https://cimg.kgl-systems.io/camion/files/famitsu/15462/a5b16053408a0f9be0ef6485dcda5d66c.png?x=767)
これはスクリューパイルドライバーを出すためのコマンドがレバーを1回転させる必要があるから起こったことだ。レバー入力後のパンチボタンの入力が遅れてしまったのである。画面端に入力のヒストリーが表示されることからもわかるように、『スト6』はCPUキャラクターも内部的にちゃんとコマンドを入力して技を発生させているからこその展開であり、これはプレイヤーもやりがちな“よくあるミス”だ。
安原氏によれば、CPUは内部的に状況から感じるプレッシャーを係数として持っていて、レベルによってコマンド入力の成否が揺らぐのだそう。つまりレベルが低いCPUは、プレッシャー係数による影響が大きい。つまり実行能力が低いのである。
安原氏によれば、CPUは内部的に状況から感じるプレッシャーを係数として持っていて、レベルによってコマンド入力の成否が揺らぐのだそう。つまりレベルが低いCPUは、プレッシャー係数による影響が大きい。つまり実行能力が低いのである。
![[IMAGE]](https://cimg.kgl-systems.io/camion/files/famitsu/15462/ab5b72eb9de43b290467263ffded1bfb3.png?x=767)
レベルの低いCPUは戦術も稚拙で実行能力も低く、中級クラスであるLv6になると戦術はある程度低いままだが実行能力が高くなり、Lv7では戦術が高度化するものの実行能力が不安定で判断や操作でミスをしてしまうことがある。『スト6』のCPUは、こんな感じで3つの観点からロジックを組むことで人間らしさを感じさせる行動を取るのである。
さらに安原氏は人間らしさを感じさせるための工夫について、より詳細な部分の解説を“補足”として続けた。本作のCPUはレベルの違いによって、攻撃をヒットさせたときの有利という状況の分解能が変化する。これはどういうことかというと、おおまかに言えば“有利であることがわからない”、“有利であることがわかる”、“○フレーム先に行動ができる”といったように変化するのだという。
攻撃を出したときに空振りすれば出した側が不利になる。これは強かろうが弱かろうが変わりはない。しかし、ヒットしたときにどう判断し、つぎにどの行動を取るかで“強さ”が変わる。有利なフレーム数までわかれば、つぎに出すもっとも効果的な技の判断もできるし、つぎに出した技がさらに当たれば、そこからどの戦術につなげればいいかも判断できるわけだ。
さらに安原氏は人間らしさを感じさせるための工夫について、より詳細な部分の解説を“補足”として続けた。本作のCPUはレベルの違いによって、攻撃をヒットさせたときの有利という状況の分解能が変化する。これはどういうことかというと、おおまかに言えば“有利であることがわからない”、“有利であることがわかる”、“○フレーム先に行動ができる”といったように変化するのだという。
攻撃を出したときに空振りすれば出した側が不利になる。これは強かろうが弱かろうが変わりはない。しかし、ヒットしたときにどう判断し、つぎにどの行動を取るかで“強さ”が変わる。有利なフレーム数までわかれば、つぎに出すもっとも効果的な技の判断もできるし、つぎに出した技がさらに当たれば、そこからどの戦術につなげればいいかも判断できるわけだ。
![[IMAGE]](https://cimg.kgl-systems.io/camion/files/famitsu/15462/aa8c73e668bd07976ce3880379df62721.png?x=767)
更新対応へのコスト低減で長期運営へ対応
最後の話題である長期運営への対応に対しても『スト6』では大きな工夫がなされていることが語られた。長期運営されるタイトルでは、リリース後にもバージョンアップによって変更が発生するが、『スト6』ではバージョンアップによって変更される変化分への依存度を下げる工夫がされているという。
どういうことかというと、バージョンアップのたびに生まれる細かなデータの違いがCPUの行動に影響しないように、その依存度を下げる工夫がされているのだ。本作のCPUは、細かなデータよりも実行中の情報、つまりその瞬間瞬間の状況を細かく読み取ることを重視して行動を決定していく。
作戦、戦術、実行能力という3つの観点でロジックをまとめ、実行中の判断でそれらを有機的に接続することで、結果的に幅広いユーザー層に対応しつつ長期運営に耐え得るものとなったというのが、安原氏のまとめだ。
どういうことかというと、バージョンアップのたびに生まれる細かなデータの違いがCPUの行動に影響しないように、その依存度を下げる工夫がされているのだ。本作のCPUは、細かなデータよりも実行中の情報、つまりその瞬間瞬間の状況を細かく読み取ることを重視して行動を決定していく。
作戦、戦術、実行能力という3つの観点でロジックをまとめ、実行中の判断でそれらを有機的に接続することで、結果的に幅広いユーザー層に対応しつつ長期運営に耐え得るものとなったというのが、安原氏のまとめだ。
![[IMAGE]](https://cimg.kgl-systems.io/camion/files/famitsu/15462/a660ac0839fa25ba36ee82d5615c26763.png?x=767)
カードゲームに例えた表現の勝利
質疑応答で安原氏が答えていたように、『スト6』のCPUは状態が変化するごとにつぎの行動を選ぶテーブルが変化する。いわゆるステートマシンに近いモデルが採用されていることがこのセッションでは示された。ただ、そうした表現を用いず、カードゲームにたとえた点が本セッションの優れた部分。CPUの意志決定に至るロジックが非常にグラフィカルかつリスナーにとってなじみやすい表現で説明された。
ちなみに、それぞれのカードには左上に各技の発生フレームが“コスト”として、さらに下部には与えられるダメージが“火力”として表記されているほか、必殺技ならそのコマンドまでもが描き込まれていた。コスト(発生フレーム)を考えてそのカード(技)を出すかどうかの判断をする。デッキが複雑化するとともに多彩になる。こうした表現はゲームに馴染みのある人にとっては直感的に理解しやすいものだった。
また、プレッシャーを係数として持ち、判断や実行能力の揺らぎを持たせることで強さを調整し、CPUに人間らしさを感じさせる一助としている点も興味深かった。コマンド入力に失敗してジャンプするザンギエフなど、具体例の選択も素晴らしい。
ショートセッションながら、聴講者にとってはかなり有意義かつ興味深い内容だったと言えるのではないだろうか。
ちなみに、それぞれのカードには左上に各技の発生フレームが“コスト”として、さらに下部には与えられるダメージが“火力”として表記されているほか、必殺技ならそのコマンドまでもが描き込まれていた。コスト(発生フレーム)を考えてそのカード(技)を出すかどうかの判断をする。デッキが複雑化するとともに多彩になる。こうした表現はゲームに馴染みのある人にとっては直感的に理解しやすいものだった。
また、プレッシャーを係数として持ち、判断や実行能力の揺らぎを持たせることで強さを調整し、CPUに人間らしさを感じさせる一助としている点も興味深かった。コマンド入力に失敗してジャンプするザンギエフなど、具体例の選択も素晴らしい。
ショートセッションながら、聴講者にとってはかなり有意義かつ興味深い内容だったと言えるのではないだろうか。