6月2日に発売された『ストリートファイター6』は発売から約3日でユーザー数が100万人を突破し、その後も多数の日本人選手による活躍やストリーマーおよびVtuberらの大会の莫大な盛り上がりなどにより「格闘ゲーム」に新たな風を巻き起こす作品として盛り上がりを見せている。
その理由はさまざまだが、お手軽操作でゲームを楽しめるだけでなく大会でも活躍する「モダン操作」やオープンワールドの世界で通行人に突然昇竜拳をかませる新ストーリーモード「ワールドツアー」、攻撃的に対戦を進化させた「ドライブ」システムなど複数の新システムの存在も挙げられるだろう。
そして「画期的な新システム」のひとつとして、自身の試合を戦況にあわせて実況をしてくれる画期的な新機能「自動実況機能」が存在する。
本記事ではゲーム開発者向けカンファレンス「CEDEC2023」にて実施されたセッション「『ストリートファイター6』対戦を熱く盛り上げる自動実況機能の取り組み」のレポートをお届けしよう。
セッションでは「自動実況機能」がどのようなきっかけで誕生したのか、一見魔法のような「自動実況」がどのような原理で成立しているのかといった気になるポイントを解剖し、プログラミングやローカライズにおける取組みが紹介された。
本セッションには「自動実況」に携わったプランナーである薮下剛史氏、メインプログラマである岩本卓也氏、ローカライズディレクターであるアンドリュー・アルフォンソ氏の三名が登壇。
非常にユニークなシステムの紹介であることから勿論興味深く、さまざまな視点から「自動実況」が紹介されることで「自動実況の未来」も予感させる内容になっている。
リニアにならって前置きはほどほどに、早速「自動実況」の裏側を紹介していこう。
格ゲーのハードルを解決すべく生み出された「自動実況」の誕生秘話
まず、改めて自動実況システムを紹介すると、プレイヤーの対戦をベテラン実況者・アール氏をはじめとする著名人が実況してくれるシステムだ。戦況にあわせてコメントが変化し、家にいながら実際の大会で実況されているような体験ができる機能となっている。
本システムを導入する背景には「格闘ゲーム」が難しそうで、とっつき辛い印象を持たれているという問題が挙げられている。
この問題の要因としては「画面で何が起こっているか分かりづらい」「駆け引きのポイントやテクニックが分かりづらい」「運ががほとんど絡まないため、ストイックに見える」といった問題が推測されており、これらに対して“もったいない”と感じられたことが切っ掛けだという。
つまり、「自動実況機能」は上記の問題を解決し、「格闘ゲームならではの魅力を伝える足がかり」として開発されるはこびとなった。
具体的には「自動実況機能」には3つの目的が設定されており、「対戦で何が起こっているのかを伝える」「盛り上がるポイントを伝える」「リアル大会の雰囲気や緊張感を」伝えるという新規の参集者を意識したゴールが設定されている。
実況システムの概要は3つのプロセスに集約されており、第一に試合中の「何を見て台詞を喋るのか」を開発側で設定し保存する。
たとえば試合中で「投げが決まったとき」を設定する場合は「通常投げ」「通常ヒット」という条件を設定し、実況者が「投げる!」という台詞を喋る様に設定を行っていくかたちとなる。
第2に、実際にゲームをプレイして前の工程で実施した台詞が正しい状況で発されていれば内部的にマークを付ける。
第3に「先ほどマークを付けた台詞」の中で優先度を設定することで、対戦中の毎フレームにおいて最も優先度が高い台詞が発せられるシステムが構築される。
350の条件に応じてコメント。過去の大会から洗い出した「盛り上がる要素」たち
実際の制作においては第一に台詞の条件を設定する必要があるが、作業工程としては「実況者がよく反応する」ポイントを既存シリーズの大会映像などから洗い出すことからスタートする。
条件は「投げが決まった」「ジャンプ攻撃が決まった」「体力が少ない」「残り時間が少ない」といった台詞など、『ストリートファイター6』に存在し、かつ過去シリーズ作から変わらない要素から決定したという。
次に、難度が高いものの『ストリートファイター6』の「実況者が反応しそうな新システム」を予想して洗い出す。
発売前であるため“誰も遊んだことがない”ことから予想で洗い出すしかないほか、この作業は開発中におけるバトルの仕様変更にも柔軟に対応する必要があったとされている。また、こちらに関しては前項の条件以上に時間をかけている。
なお、実況は様々な状況にコメントをするため、リリース時だけでも350以上の条件が用意されている。350個でも充分に多いように感じるが、かなり減らして前述の数となっている。
下記画像はほんの一例だが、「通常投げ」のみにおいても4つの条件が存在しており、「体力状況」においては7つの条件が存在するという。
このように条件を設けていった後に、台詞の数を設定する。
前提として台詞は各条件に紐づいたものを用意し、基本的には1つの条件につき専用の台詞を用意する。例外があるものの、複数の条件で同じ台詞を使用することで同じ台詞の反復が発生してしまう問題を避けるためである。
また、特に重要なシーンであったり、頻発する場面に言及する台詞に関しては多めに用意するため台詞の総数は条件ごとに異なる。
そして、最終的な台詞数の決定には心躍る「テンションシステム」という“自動実況システム”のための機能が大きく影響するそうだ。
次項ではこのテンションシステムについて紹介する。
試合の盛り上がりを定義するムネアツな「テンションシステム」
テンションシステムとは、試合の状況にあわせて「台詞のつよさ」をコントロールするための機能だ。
例えば、実際の大会などの実況では、試合の序盤であるか、ファイナルラウンドの接戦時であるかによって「投げる!」という台詞ひとつを取っても言葉の調子が大きく異なる。その理由は試合の後半になればなるほど、ひとつの有効打が試合に与える影響が大きくなっていくからだ。
つまり自動実況の台詞が試合の状況に応じて選択されれば、それだけリアリティも高まるため、本システムが用意された運びとなっている。
下記画像の変動はあくまでもイメージ図となっているが、ラウンドの内で数値化されたテンションがグラフの様に変動する。
テンションシステム概要を説明すると、第1に試合に応じて「テンション係数」が変動し、第2に各ラウンド毎に決められた範囲内を「テンション係数」に基づいてテンション値が増加する。
これらを踏まえて算出された「テンション値」に応じて、1から5のテンション別に割り振られた実況台詞から適切な台詞が呼び出されるかたちとなる。
試合の「テンション」を編み出す“計算式”を編み出して生まれた「テンション係数」
順を追って具体的に説明していくと、まず「テンション係数」を用意するにあたって、「何が実況のテンションに影響をするか」を考える必要がある。
格闘ゲームにはさまざまな奥深い要素がある一方、やはり「残り体力」は実況のテンションに大きな影響を与える。
この要素から方針を考えると「残り体力が少なくなる程テンション係数が高くなる」また「対戦するふたりの体力が低く、同時に体力差が無いほどテンション係数が高くなる」というプランを編み出せる。
ここからパラメータを考えると、体力がより少ないプレイヤーの体力割合に基づいた0から1の値を「残体力変数」、双方の体力の差を“体力差が一切ない場合”を0、体力差が全くない場合を0.5とし、値に最低保障する値の0.5を足した「体力差変数」として算出できる。
これらを踏まえると「テンション係数」は「体力差変数×残体力変数」という式を生み出せる。
上記のシステムでも「テンションらしさ」は編み出せるが、試合においては試合序盤では冷静であったり、試合の残り時間が少なければテンションが上がる場合も存在する。そのため、「残り時間」も考慮した形式がよりリアリティを高めると推測できる。
この考えに基づき、「残り時間が少ないほどテンション係数が高くなる」というプランのもと、秒残り時間が0から30秒の時間割合により算出される「残時間変数」が用意された。
この値は0から1の間で設定され、残時間が31秒以上の間は常に0に設定。そして、テストプレイの結果「残体力変数」と「残時間変数」のうち高い値を体力差変数とかけ合わせて「テンション係数」を算出する下記画像のような式が編み出された。