モリカトロン株式会社運営「エンターテインメント×AI」の最新情報をお届けするサイトです。

TAG LIST
CG機械学習CGへの扉ディープラーニング安藤幸央GAN月刊エンタメAIニュース河合律子OpenAI音楽ニューラルネットワーク強化学習三宅陽一郎NVIDIA吉本幸記人工知能学会FacebookQA敵対的生成ネットワークスクウェア・エニックス森川幸人モリカトロンAIラボインタビュー自然言語処理ルールベースDeepMindキャラクターAIシナリオGoogleGPT-3大内孝子AIと倫理映画NFTグーグルStyleGAN自動生成倫理デバッグゲームプレイAIメタAICEDEC2019アートプロシージャルSIGGRAPH遺伝的アルゴリズムDALL-E深層学習マイクロソフトビヘイビア・ツリーCEDEC2021CEDEC2020ゲームAI不完全情報ゲームVRナビゲーションAI畳み込みニューラルネットワークCLIPロボットDALL-E2ディープフェイクGDC 2021JSAI2022VFXメタバースGDC 2019マルチエージェントボードゲームNPC画像生成テキスト画像生成懐ゲーから辿るゲームAI技術史CNNデジタルツインテストプレイモリカトロンUnityAIアート小説ファッション鴫原盛之HTN階層型タスクネットワークJSAI2020TensorFlowBERTAdobeMicrosoftイベントレポート対話型エージェントCEDEC2022著作権水野勇太アニメーションガイスターStyleGAN2toioソニーJSAI2021スポーツ研究シムピープルマンガ汎用人工知能マーケティングGDC SummerインタビューバーチャルヒューマンブロックチェーンMidjourneyアストロノーカNVIDIA OmniverseeスポーツAmazonロボティクスeSportsDQNBLUE PROTOCOLシーマンMinecraftアバターUbisoftGenvid TechnologiesAlphaZeroTransformerGPT-2カメラ環世界中島秀之哲学理化学研究所DARPAドローンシムシティバイアスMCS-AI動的連携モデルTEZUKA2020AI美空ひばり手塚治虫スパーシャルAIElectronic ArtsメタデータLEFT 4 DEAD通しプレイOpenAI Five本間翔太CMピクサープラチナエッグイーサリアム作曲ボエダ・ゴティエビッグデータ中嶋謙互Amadeus Codeデータ分析Microsoft AzureキャリアナラティブアーケードゲームOmniverse ReplicatorWCCFレコメンドシステムNVIDIA DRIVE SimWORLD CLUB Champion FootballNVIDIA Isaac Simセガ柏田知大軍事サイバーエージェント田邊雅彦トレーディングカードトレカ音声認識PyTorchStable Diffusion眞鍋和子バンダイナムコスタジオaibo合成音声Meta齊藤陽介マインクラフトお知らせチャットボットサルでもわかる人工知能VAEOmniverseリップシンキングUbisoft La Forge自動運転車ワークショップメタ知識表現ウォッチドッグス レギオンIGDAどうぶつしょうぎEpic Gamesジェイ・コウガミ音楽ストリーミングMIT徳井直生マシンラーニング5GRival Peakクラウド対話エンジン斎藤由多加リトル・コンピュータ・ピープルコンピューティショナル・フォトグラフィーゴブレット・ゴブラーズ絵画AIりんなシミュレーション完全情報ゲーム坂本洋典釜屋憲彦ウェイポイントパス検索対談藤澤仁生物学GTC 2022画像認識GTC2022StyleCLIPDeNA長谷洋平masumi toyota宮路洋一OpenSeaGDC 2022教育TextWorldSIGGRAPH ASIAMagentaSFELYZA PencilGTC2021CycleGANデータマイニングNetHackはこだて未来大学フェイクニュースエージェントRPGSIGGRAPH 2022AIボイスアクターNVIDIA CanvasImagenGPUALifeZork人工生命オルタナティヴ・マシンサウンドスケープASBS栗原聡モーションキャプチャーぱいどんテキスト生成ナビゲーションメッシュ松井俊浩バンダイナムコ研究所ELYZAフルコトELYZA DIGEST3D音声合成西成活裕Apex LegendsELIZA群衆マネジメントNinjaコンピュータRPGライブビジネスアップルタウン物語新型コロナKELDIC周済涛メロディ言語清田陽司ゲームTENTUPLAYサイバネティックスMARVEL Future FightAstro人工知能史タイムラプスEgo4DAI哲学マップバスキア星新一日経イノベーション・ラボStyleGAN-XL敵対的強化学習StyleGAN3階層型強化学習GOSU Data LabGANimatorWANNGOSU Voice AssistantVoLux-GAN竹内将SenpAI.GGProjected GANMobalyticsSelf-Distilled StyleGAN馬淵浩希Cygamesニューラルレンダリング岡島学AWS SagemakerPLATO映像セリア・ホデント形態素解析frame.ioUXAWS LambdaFoodly誤字検出森山和道認知科学中川友紀子ゲームデザインSentencePieceアールティLUMINOUS ENGINELuminous ProductionsBlenderBot 3パターン・ランゲージ竹村也哉Meta AIちょまどマーク・ザッカーバーグGOAPWACULAdobe MAX 2021自動翻訳MILE模倣学習AIライティングOmniverse AvatarAIのべりすとFPSNVIDIA RivaQuillBotマルコフ決定過程NVIDIA MegatronCopysmithNVIDIA MerlinJasperスタンフォード大学NVIDIA Metropolisパラメータ設計テニスバランス調整協調フィルタリング人狼知能テキサス大学AlphaDogfight TrialsAI Messenger VoicebotエージェントシミュレーションOpenAI CodexStarCraft IIHyperStyleMax CooperFuture of Life InstituteRendering with StyleメディアアートIntelDisney類家利直LAIKADisneyリサーチヴィトゲンシュタインRotomationGauGAN論理哲学論考GauGAN2京都芸術大学ドラゴンクエストライバルズ画像言語表現モデル不確定ゲームSIGGRAPH ASIA 2021PromptBaseDota 2モンテカルロ木探索ディズニーリサーチMitsuba2バンダイナムコネクサスソーシャルゲームEmbeddingワイツマン科学研究所ユーザーレビューGTC2020CG衣装mimicNVIDIA MAXINEVRファッションBaidu淡路滋ビデオ会議ArtflowERNIE-ViLGグリムノーツEponym古文書ゴティエ・ボエダ音声クローニング凸版印刷Gautier Boeda階層的クラスタリングGopherAI-OCR画像判定JuliusSIE鑑定ラベル付けTPRGOxia Palus大澤博隆バーチャル・ヒューマン・エージェントtoio SDK for UnityArt RecognitionSFプロトタイピングクーガー田中章愛実況パワフルサッカー石井敦銭起揚NHC 2021桃太郎電鉄茂谷保伯池田利夫桃鉄GDMC新刊案内パワサカマーベル・シネマティック・ユニバースコナミデジタルエンタテインメント成沢理恵MITメディアラボMCU岩倉宏介アベンジャーズPPOマジック・リープDigital DomainMachine Learning Project CanvasMagic Leap OneMagendaMasquerade2.0国立情報学研究所ノンファンジブルトークンDDSPフェイシャルキャプチャー石川冬樹サッカーモリカトロン開発者インタビュースパコン里井大輝Kaggle宮本茂則スーパーコンピュータバスケットボール山田暉松岡 聡Assassin’s Creed OriginsAI会話ジェネレーターTSUBAME 1.0Sea of ThievesTSUBAME 2.0GEMS COMPANYmonoAI technologyLSTMABCIモリカトロンAIソリューション富岳初音ミクOculusコード生成AISociety 5.0転移学習テストAlphaCode夏の電脳甲子園Baldur's Gate 3CodeforcesCandy Crush Saga自己増強型AISIGGRAPH ASIA 2020COLMAPADOPデバッギングBigGANGANverse3DMaterialGANRNNグランツーリスモSPORTReBeLグランツーリスモ・ソフィーGTソフィーVolvoFIAグランツーリスモチャンピオンシップRival PrakDGX A100VTuberユービーアイソフトWebcam VTuber星新一賞北尾まどかHALO市場分析将棋メタルギアソリッドVフォートナイトFSMRobloxナップサック問題Live Nation汎用言語モデルWeb3.0AIOpsSpotifyスマートコントラクトReplica StudioAWSamuseChitrakarQosmo巡回セールスマン問題ジョルダン曲線メディアMuZero政治クラウドゲーミングがんばれ森川君2号和田洋一リアリティ番組Stadiaジョンソン裕子MILEsNightCafeインタラクティブ・ストリーミングLuis Ruizインタラクティブ・メディアポケモンCodexシーマン人工知能研究所東京工業大学Ludo博報堂ラップSIGGRAPH 2019ArtEmisZ世代AIラッパーシステムARrinnaGROVERプラスリンクス ~キミと繋がる想い~FAIRSTCチート検出Style Transfer ConversationオンラインカジノRCPアップルRealFlowRinna Character PlatformiPhoneデジタルヒューマンDeep FluidsSoul MachinesMeInGameAmeliaAIGraphブレイン・コンピュータ・インタフェースバーチャルキャラクターBCIGateboxLearning from VideoANIMAK予期知能逢妻ヒカリセコムユクスキュルバーチャル警備システムカント損保ジャパン上原利之ドラゴンクエストエージェントアーキテクチャアッパーグラウンドPAIROCTOPATH TRAVELER西木康智OCTOPATH TRAVELER 大陸の覇者Siemensアルスエレクトロニカ2019品質保証StyleRigAutodesk逆転オセロニアBentley Systemsワールドシミュレーター奥村エルネスト純いただきストリートH100齋藤精一大森田不可止COBOL高橋智隆DGX H100ロボユニザナックDGX SuperPOD泉幸典仁井谷正充クラウドコンピューティングロボコレ2019Instant NeRFartonomousbitGANsぎゅわんぶらあ自己中心派Azure Machine Learning意思決定モデル脱出ゲームHybrid Reward Architectureコミュニティ管理ウロチョロスSuper PhoenixSNSProject Malmoオンラインゲーム気候変動Project PaidiaEarth-2Project Lookoutマックス・プランク気象研究所Watch Forビョルン・スティーブンスBing気象モデルLEFT ALIVE気象シミュレーション長谷川誠ジミ・ヘンドリックス環境問題Baby Xカート・コバーンエコロジーロバート・ダウニー・Jr.エイミー・ワインハウスSDGsYouTubeダフト・パンクメモリスタGlenn MarshallThe Age of A.I.Story2Hallucination音声変換レコメンデーションJukebox松尾豊Veap JapanEAPテンセントSIFT福井千春DCGAN医療MOBADANNCEメンタルケア人事ハーバード大学Edgar Handy研修デューク大学Netflixmynet.aiローグライクゲーム東京大学東京理科大学人工音声NeurIPS 2021産業技術総合研究所リザバーコンピューティングプレイ動画ヒップホップキャラクターモーションソニーマーケティングサイレント映画もじぱNBA環境音暗号通貨現代アートFUZZLEAlteration粒子群最適化法進化差分法オープンワールド群知能下川大樹AIFAウィル・ライト高津芳希P2E大石真史BEiTStyleGAN-NADAレベルデザインDETRゲームエンジンSporeUnreal Engineデノイズ南カリフォルニア大学Unity for Industry画像処理SentropyGLIDECPUDiscordAvatarCLIPSynthetic DataCALMプログラミングサム・アルトマンソースコード生成LaMDAGMAIシチズンデベロッパーSonanticTRPGGitHubCohereウィザードリィMCN-AI連携モデルマジック:ザ・ギャザリングAI DungeonUrzas.ai介護西川善司並木幸介Kikiサムライスピリッツ森寅嘉Zoetic AIゼビウスSIGGRAPH 2021ペットストリートファイター半導体Digital Dream LabsTopaz Video Enhance AICozmoDLSSタカラトミー山野辺一記NetEaseLOVOT大里飛鳥DynamixyzMOFLINRomiU-Netミクシィ13フェイズ構造アドベンチャーゲームユニロボットADVユニボXLandGatoAGI手塚眞DEATH STRANDINGマルチモーダル不気味の谷Eric Johnson汎用強化学習AIデザインOculus Questコジマプロダクションロンドン芸術大学生体情報デシマエンジンGoogle BrainインディーゲームSound Control写真高橋ミレイSYNTH SUPER照明Maxim PeterKarl SimsJoshua RomoffArtnomeハイパースケープICONATE山崎陽斗深層強化学習立木創太松原仁浜中雅俊ミライ小町武田英明テスラ福井健策GameGANパックマンTesla BotNEDOTesla AI DayWikipediaソサエティ5.0SphereSIGGRAPH 2020バズグラフXaver 1000ニュースタンテキ養蜂東芝BeewiseDIB-R倉田宜典フィンテック投資韻律射影MILIZE広告韻律転移三菱UFJ信託銀行

20年間稼働を続けたアーケードゲーム『WCCF』シリーズを支えたAI開発の舞台裏:懐ゲーから辿るゲームAI技術史vol.5<前編>

2022.8.30ゲーム

20年間稼働を続けたアーケードゲーム『WCCF』シリーズを支えたAI開発の舞台裏:懐ゲーから辿るゲームAI技術史vol.5<前編>

今回は、本企画では初となるアーケードゲームのAIを紹介します。本稿で紹介するタイトルは、2002〜2022年にかけて、およそ20年も稼働を続けたアーケード用サッカーゲーム『WORLD CLUB Champion Football』(以下『WCCF』)シリーズです。本シリーズに登場する選手たちは、プレイヤーが指示を出した戦術などをもとに、AIによってパスやドリブル、タックルなどの行動を自動で決定する仕組みになっているのが大きな特徴でした。

ピッチ上にいる22人の選手たちを同時に制御する選手AIは、一体どのように作られていたのでしょうか?『WCCF』シリーズならではのAIの仕組みを、長らく本シリーズのプロデューサーを務めたセガの柏田知大氏と、同じくプログラマーの田邊雅彦氏のお2人に伺いました。

『WCCF』とは?

『WCCF』は2002年7月に稼働を開始した『WCCF 01-02』をシリーズ第1弾とするアーケード用サッカーゲームです。従来のサッカーゲームは、カーソルが点灯した選手をレバーやパスボタンで操作するのが常識でしたが、本シリーズは選手の移動やパスなどのボタン操作がなく、すべての選手がAIによって自動で行動を選択する画期的なシステムを導入しました。

シリーズ第1弾で、プレイヤーが試合中に行う操作はシュート、ゴールキーパー飛び出しの2ボタンと、中央突破、右サイド攻撃、左サイド攻撃、カウンターアタックの各戦術ボタンのみ。レバーやスティック類は一切ありませんでした。

シリーズ第1弾『WCCF 01-02』の筐体
2017年1月から稼働を開始した『WCCF 16-17』のゲーム画面

本シリーズのもうひとつの特徴は、デッキ(チーム)を編成する際は、実在のサッカー選手の写真をプリントしたトレーディングカードを使用することです。

カードは1プレイ(1試合)終了するごとに筐体からランダムで排出される仕組み(※『WCCF FOOTISTA2019』以降はオンデマンド印刷方式)で、プレイヤーは繰り返し遊んでカードを集めながらチームを作れる所にも楽しさがあります。

デッキは試合開始前のインターバル中に自由に変更することが可能で、選手たちはサッカーのピッチが描かれたフラットパネル上に並べたカードの配置と同じフォーメーションを組んだ状態で登場し、試合中もカードを動かすことで自由にフォーメーションを変更できる、素晴らしいアイデアを採用していました。

単にサッカーゲームを遊ぶだけでなく、カードをコレクションする要素も融合し、今までにない新しい遊びを創り上げた本シリーズは、既存のサッカーゲーム好きに加えてリアルのサッカーやトレカのファンをも巻き込み、全国各地のゲームセンターで大ヒット。最盛期には、店に順番待ちのプレイヤーが連日絶えないほどの凄まじい人気を誇りました。

2019年3月には、ソフト・ハードともに大幅に変更した新シリーズ『WCCF FOOTISTA 2019』が登場。その後『FOOTISTA 2020』『FOOTISTA2021』の全3タイトルの稼働を経て、今年の3月31日(正確には4月1日の2時59分)でサービスを終了しました。アーケードゲームでは異例となる約20年間の長期稼働を続け、カードの累計出荷枚数は10億枚を超えました。

『WCCF』シリーズの選手カード(※カードいずれも『WCCF 16-17』のもの)
フラットパネル上にカードを並べた所(※写真は『WCCF FOOTISTA2019』)

監督の指示に従って選手が動くAIを目指し、試行錯誤を繰り返す

——本日はよろしくお願いいたします。まずお尋ねしたいのが、開発スタッフの皆さんが『WCCF』シリーズに選手AIを導入しようと考えた経緯についてです。2002年に登場した第1弾から、すでに高度なAIが出来上がっていたように思いますが、そもそもAIを搭載しようと思ったのはなぜですか?

田邊雅彦氏(以下、田邊):私が最初に参加したのは『WCCF 02-03 Ver.2.0』のファイナルの頃になりますので、立ち上げの段階でなぜAIを入れたのかに関しては、正直聞き及ぶ範囲でしか分からないのですが、「シーンとかのパターンだけでは、何回か遊んだだけで全部見えちゃうよね。無限に遊べるようにするためには、やっぱりAIだよね」と、言った所から『WCCF』の企画がスタートしたと聞いています。

柏田知大氏(以下、柏田):『サカつく』では「このシーンだと、ゴールが入りそうだな」といったパターンのようなものがあったのですが、このパターンを打破するためにはどんな手法を取るかを考えた結果、AIに行き着いたということですね。

田邊:それと『WCCF』は、フラットパネルを使ってカードの配置パターンを無限に作れるゲームだったので、ある固定のパターンではない、細かい操作で細かな違いを生み出せるようにしたかったのも、AIを入れた理由のひとつではないかと思います。

——第1弾が発売される前のロケテストの段階から、すでにプレイヤー間でもかなり反響が大きかったようですね。

柏田:そうですね。AIと、それからカードを使って選手が動くということで「何だろう? 今までになかったものが出たぞ」みたいなファーストインパクトは大きかったと聞いています。

——『WCCF』シリーズには、シュートとゴールキーパーの飛び出しボタンはありますが、パスとかセンタリングのボタンも、選手を直接動かせるレバーも存在しない、おそらく当時は前代未聞のサッカーゲームであったと思います。どのようにして本シリーズのプログラムを作ったのでしょうか?

田邊:『WCCF』は、プレイヤーが選手を直接操作する要素は一切なく、シュートやキーパーボタン、攻撃方向もカードの配置も、すべて監督の指示で動くということだったので、AI を開発するときにも監督、つまりプレイヤーからの指示であることを念頭に入れた作り方をしていました。

柏田:実は、開発段階ではボタンが全然なかったらしいんですよ。

——本当ですか!? これは驚きですね……。

柏田:当時、AM3研の部長だった小口(久雄氏。現:セガサミークリエイション社長)さんが見に来たときに「やっぱり、ボタンがあったほうがいいんじゃない?」と言われたので、ボタンが付いたというエピソードが実はあります。開発チーム内にも、ボタン操作とかを入れてもいいのではという意見があったみたいですが、小口さんの一言でボタンが入ることになりました。

リアルとゲームの中間地点と言いますか、実際の試合では監督が「シュート!」とは言わないですよね?「プレイヤー自身が何もできないのでは、ゲームとして全然面白くないよね」といった考えがあったみたいで、ここがかなり大きな分岐点だったと聞いています。

田邊:あれだけ大きくしたシュートボタンを、力いっぱいバンバン叩いてシュートすること自体が家庭用ではやりにくい面がありますが、力いっぱいボタンを叩いてゴールを決める気持ち良さを出す意図もそこにはあったと思いますね。

——『WCCF』シリーズのシュートボタンに、発光ランプ付きの大きなボタンを使用した理由は、まさにここにあったんですね。では、開発がスタートしてから製品化されるまでの間に、選手AIのプログラムを組むにあたって特にご苦労なさったことはありますか?

田邊:私が引き継いだときには、すでにイチから作ったプログラムがあったのですが、先人たちの苦悩がとてもしのばれる構造でした。大まかに言いますと「もし攻撃だったら」とか「もし守備だったら」とか、「もし最後に自分がボールを触っていたら」とか、if文のかたまりになっていましたね。まだ何も無い所からプログラムを作ると、こういうことになるんだろうなとは思いながらも、実際に自分で作ろうと思ったら、これは大変だなあと正直思いました。

柏田:最初に作ったプログラムは、『WCCF 05-06』までの間は継ぎ足しのタレみたいにしてずっと使い続けていましたね。

田邊:その次の『WCCF 06-07.』のときに、柏田が選手AIのチーフプランナー的な立場になりまして、ここで全面的にプログラムを作り直すことにしました。

『WCCF 05-06』:2007年8月より稼働開始
2008年6月から稼働を開始した『WCCF 06-07Ver.』は筐体デザインを一新。「チームスタイル」を発動させるボタン(キープレイヤーボタン)も新たに追加された

——『WCCF 06-07』でプログラムを作り直すまでの間は、ルールベースでずっとやってきたということですか?

田邊:そうですね。逆に言いますと、例えば「なぜ、そこにパスを出したのか」といったことの説明がつかない、つまり結果的にはパスを出したけど、実際にどこの条件分岐でそうなったのかが追い切れなくなっていました。「何千試合のうち1回だけこういうのが出るんだけど?」って言われても、それがどうして出てくるのかがサッパリ分からないんです。

——『WCCF』シリーズの選手AIはすべて非学習型ですが、選手を練習や試合に出場させることで経験値が上がる要素がありますよね? プログラムを全面的に作り直す前の初期のシリーズでは、選手たちの育成レベルがAIにも反映される仕組みになっていたのでしょうか?

田邊:選手が育つと、単にキックの精度が上がるとか球速がアップするとか、あるいは足が速くなったりするだけですね。

柏田:賢さというよりは、能力値が上がるということですね。

田邊:それから、成長すると特殊なプレイが使えるようにもなりますが、思考の精度自体は特に変わっていません。ただし、選手が十分に育っていないときは、下手なプレイが選ばれやすいプログラムにしてあります。

柏田:学習の要素は一切ありませんが、思考に関しては「この条件を見る」といった要素が途中から入るようになりましたね。

田邊:もともとサッカーではなく「サッカーみたいなルールがある中での球技」とも言えるものですし、3分間のゲーム中に2、3点ぐらい入らなくてはいけないとなったら、実際のサッカーのルールや選手の能力をベースにして経験則で作ってしまうと、全然点が入らないゲームになるだろうなと。

ですから、何かうまいこと「サッカーらしい」ことをしつつ、なおかつ「こんなのサッカーじゃないよ」って言われないよう、線引きはどこになるのかを探しながら作っていました。もし学習型のAIを取り込もうとすると、整備するのがすごく難しくなると思いましたので、基本的には以前からの引き継ぎもありつつ、非学習型のプログラムにしてあります。

選手のパラメーターとAIとの関係

——『WCCF』シリーズがゲームセンターで稼働している間は、各選手カードに設定された細かい能力値は非公開(※)にしていましたよね?『WCCF FOOTISTA 2019』以降は、公式サイトで大部分のパラメーターが公開されましたが、実際はカードごとに100種類のパラメーターが設定されていたと聞いたことがあるのですが、本当にそれだけのデータが入っていたのでしょうか?

※筆者注:初期の『WCCF』シリーズの選手カードには「オフェンス」「ディフェンス」「テクニック」「パワー」「スピード」「スタミナ」の全6種類のパラメーターが20段階で表示されていたが、利き足やプレースキックの精度など、カードには書かれていない細かい要素が多数設定されていた。

田邊:はい、100種類以上のパラメーターが入っていました。その中には、AIの要素かと言われると正直微妙なのですが「運」のパラメーターもありました。毎回、運を作る担当者は苦労していましたね。「この選手は運があるのかな? それともないのかな?」とか(笑)。

柏田:実は、運のパラメーターは使うのをやめました。データ自体は最後まで入っていたのですが、プログラム上では一切使っていません。今、田邊から話がありましたように、運の要素を実装するのは正直大変だったので……。

順番で言いますと、AIよりも先にパラメーターのほうから作りました。私も途中から開発に参加してパラメーターの制作も担当したのですが、「これはゲーム内のどこで使われてますか?」と質問したら「いや、使っていないんだよね」と言われたので、じゃあそっとしまっておこうかと(笑)。その後、自分がAIの担当になったときには「このパラメーターは使わないから実装しない」といったような、効率化を図ることはやりましたね。

田邊:左右それぞれの足のキック精度とか、一般的なパラメーターももちろん入っていますし、片足だけでも10種類ほどのパラメーターが設定されていました。

——片方の足だけで10種類もあったんですか!? それも驚きですね……。

柏田:逆足の「使用頻度」とか「精度」とか、ほかにも「視野の広さ」などのパラメーターも入っていました。

田邊:あとは、選手間の連携のつながりやすさとか、特定の選手同士の「特殊連携」とかもありましたね。

柏田:仕様的には矛盾を抱えていた面もありますが、「特殊連携」にはマイナスの組み合わせもたくさんありました。この人とこの人とでは仲が悪いとか、ユーザー的にはあまり嬉しくないとは思いますが……。

——「特殊連携」懐かしいですね! たとえ仲の悪い組み合わせも、すごくリアルな演出でしたので、これはこれでサッカーファンにとっては楽しいネタだったと思います。

田邊:それから当初は、運がファウルの受けやすさなどに反映されていたのすが、そもそもファウルが頻発するゲームではなかったので、結果的にはあまり差が生まれなかったですね。

——『WCCF FOOTISTA2019』以降のカードには「ケガ耐性」が表示されていたように、選手によって練習や試合中のケガのしやすさも異なっていましたよね? 特に初期のシリーズでは、耐性の低い選手はケガが治りにくかった印象があります。

田邊:はい。ケガも別のパラメーターを持たせていました。初期の頃は、ケガ耐性が低い選手は一度ケガをすると、なかなか治らなかったりすることもありましたね。

——連携でもケガでも、かなり現実の選手やチームに近いリアリティを出そうとしていたわけですね。

田邊:可能な限りは作っていましたが、アフリカとかの出身で詳しいデータがよく分からない選手に「パラメーターを100個つけなさい」って言われるのは、おそらく相当しんどかったと思います。

柏田:当時は死ぬほどサッカーを観ていましたね。選手のパラメーターの担当はセガに1人と、外注の方の1人と合計2人だけでやっていたのですが、選手のことは全員知っておかないとダメなので、私も入社後はオランダリーグとか、今まで見ていなかったリーグなども毎日のように観戦していました。

——『WCCF』シリーズの選手AIは、バージョンが変わるたびに調整を繰り返していたと思いますが、その都度ゲームの面白さの根幹に関わる部分をいじるのは相当なプレッシャーと言いますか、日々ご苦労が絶えなかったのではないかとお察します。

田邊:そうですね。先ほど、ファウルがなかなか出ないというお話をしましたが、守備力をちょっと落として得点率を上げようと調整した瞬間に、今度はスライディングタックルが発生しにくくなったことでファウルが起なくなった結果、フリーキックの機会がなくなるということも起きました。そうなるとフリーキック精度の高い、例えば中村俊輔みたいな選手の活躍の場が失われるなど、何かを目指して作るとすごく転がって違うことが起きるみたいなことがよく起きていましたね。

ちょっと触るたびに、何日間もずっと検証を続けてもらったりして、コーディングよりもチェックの量が多かったですね。

『WCCF FOOTISTA2019』のカード。裏面には「ケガ耐性」「安定度」などのパラメーターも書かれている

バージョンアップ時のAI開発、調整方法とは?

——『WCCF 04-05』以降のシリーズでは、プレイヤーが作ったゴーストチーム同士で対戦できる大会モード(※)が実装されましたよね? こちらも通常の試合と同じ選手AIを使用して試合をしていたのでしょうか?

※筆者注:本シリーズには「ロケーションチャンピオンシップ」などの名称で、異なる店舗間でプレイヤーが登録したチームデータを利用したゴーストチーム同士による対戦モードが存在し、上位の対戦カードは毎回各地の店舗で中継されるようになっていた。

田邊:はい。キーの入力についても、通常のCPU戦でCPUチームがやってくるような入力をそのまま取り入れたうえで、実際に対戦をさせています。

柏田:ただし、トーナメントの最初の頃の対戦に関しては、能力値の大きさでだいたい決まるようにはなっていたかと思います。

田邊:そうですね。メインモニターに中継が流れる上位の試合に関しては、ちゃんと入力とかのデータも反映させていましたが、トーナメント下位の試合では処理が間に合わないぐらいのデータ量になっていたので、能力値を使ったサイコロみたいものを用意していました。

2006年6月から稼働を開始した『WCCF 04-05』。シリーズ当初はイタリアのセリエAのクラブに所属する選手のみ登場していたが、本作からイングランドのプレミアリーグ、スペインのリーガ・エスパニョーラ、オランダ・エールディビジの選手も登場するようになった

柏田:当時の私は、ロケテストのタイミングで「ちゃんと放映されているかどうか、お前見て来い!」って店舗によく送り出されていました。それから、ホームページに「こんな試合だった」みたいな大会の結果とかも書いていましたね。

田邊:サーバー内では、トーナメントの結果はちゃんと公式に計算されるのですが、サーバーでのトーナメントと、実際に中継されるサテライトでの試合は、実は別々に計算されていたんです。そのためにトーナメントでは2-0だったのに、サテライトでは同点で終わったなんてことが起きる場合もあったので、サーバーでの計算結果とサテライトでの計算結果が、ちゃんと合うように必死に調整していました。

——基本的には、同じチーム同士のCPU対戦であれば、いつ、どこのお店で遊んでも同じ結果が出てくるようにならないとおかしいですよね。

田邊:サイコロみたいにランダムで決まる最初の1手目の要素はサーバーからの指示があるのですが、その1手目が毎回同じであれば、試合の結果も同じになることを保証しなきゃダメということですね。

——『WCCF』シリーズは、新バージョンに変わった後も旧シリーズのカードがずっと使えるようになっていました。最終的には1万種類を超えるカードが登場したこともあり、バージョン変更時に旧カードもふくめた選手AIの調整は相当大変だったのではないでしょうか?

田邊:「このバージョンは、セットプレイが生きるようにしよう」とか「このときのバージョンは、得点が入るエキサイティングなものにしよう」とか、テーマみたいなものが多少はあったのですが、そのテーマに沿って作ると「昔作った選手が、何だかうまく動かないな……」ということが確かにありました。そこでチェック担当の方には、過去のカードもふくめて全部試してもらっていました。

——テストプレイやデバッグの際はテスターを雇うとか、あるいはロケテスト中に検証していたのでしょうか?

柏田:方法は色々ありますが、基本的には我々の中にいるチェッカー担当と、外部から招聘したチェッカーさんにやっていただく形で作っていました。ほかにも、私が開発を担当する以前からつながりの強いプレイヤーみたいな方が何人かおりまして、その方々からの情報をインプットしたりもしていました。

あと、いつ頃からだったか「こういう状態でやったら、こういう結果になる」みたいなことを、AIの計算を何千回も回して作るようになりました。ただし、ユーザーのナチュラルな操作までは表現できなかったので、「この状態で、この入力で、ここにカードを置いて、そのまま試合した場合」みたいな条件でしか使えないのが難点でした。

田邊:何百試合に1回しか出ないプレイとかを、実際にちゃんと出てるのかを検証する場合には、オートで試合を回せる仕組みを使っていましたが、プレイ感とかユーザーごとの操作感とかは、熟練のチェッカーに見てもらっていました。開発の中でも、使用できる筐体の数には制限がありましたので、家庭用ソフトみたいにチェッカーをずらっと並べて検証することはできなかったですね。

柏田:だいたい4人ほどのチェッカーが常時いて、ひたすらプレイを続けてもらっていましたね。

『WCCF』シリーズのAI構造:全4階層で選手AIを構築

——『WCCF 06-07Ver.』では筐体のデザインが変わると同時に、新たに「チームスタイル」のシステムが導入されました(※)。チームスタイルが追加されたことで、当然ながら選手AIの制御方法も変わったわけですね?

※筆者注:発動したチームスタイルによって、選手たちの行動が変わるシステムのこと。個々のカードごとに使用できるチームスタイルはあらかじめ決まっていて、試合中にプレイヤーが任意のタイミングで切り替えることが可能。「ショートパス重視」「ディレイディフェンス」「フォアザチーム」など、さまざまなバリエーションがある。

『WCCF 06-07』より。使用中のチームスタイルが画面右側に表示される

田邊:はい。先ほどもお話したように、このタイミングでAIの設計を大幅に作り変えました。私が入って2、3 年ほど経ってから、柏田もAIを担当するようになったときに「いったん、作りを改めよう」と決めました。

これは私の個人的な考えですが、『WCCF』の売りは、1年間チームを育てるとか、あるいはそのチームに特色を持たせることができる所にあると思います。個々のプレイに関しては、既存のほかのゲームに勝てない部分が多かったのですが、「自分たちの売りをちゃんと出すためには、チームスタイルを確立したAI の作りにしなきゃいけないよね」という話になったので、いったんリセットしてチームスタイルベースのAI を新たに作りました。

——チームスタイルは導入当初から多くの種類がありましたので、膨大なパターンの調整が発生して開発が非常に大変だったのではないかと思います。

柏田:チームスタイルは私が全部考えたのですが、途中から種類を減らしました。今考えると、たくさん作り過ぎてしまったなあと。あの頃はちょっと若かったですね(笑)。

田邊:まずは選手が行動を進めようとすると、試合の流れには関係なく、育成した選手のパラメーターとかメンバー構成、フォーメーションとかだけでチームスタイルを決める「チームスタイル層」を作りました。これが第1階層になります。第2階層では、試合の流れの中でチームとして選択する戦術を選ぶ「タクティクス層」を作りました。先ほどもお話したキーの入力に関しては、このタクティクスに対しての入力であると我々はとらえて、戦術ボタンもシュートボタンもキーパーボタンも、全部「タクティクス層」で入力を受け付けるようにしました。

これに従って、例えばシュートボタンを押したときでさえ、個人に対してのシュート指示ではなく、チームとしてシュートを考えたうえでシュートが打てる味方は誰なのかを決めて、その選手に対してシュートを打たせる所までをここで実行できるようにしました。

「今、こういう攻撃をすべきだよね」という「タクティクス」が決まった段階で、今度は第 3 階層の「ロール層」に下りてきます。選手にそれぞれどんな役割を持たせるか、例えばボールを持っている人であれば、ダイレクトパスを出すのかどうかなどを、ここで考えたりします。あとはフォローに回る人とか、あるいはマークに付く人とか、その瞬間ごとに 11 人とも役割を持つよねっていうことで、「ロール層」の所で全員に役割を与えるようにしました。

全員に役割を与えた段階で、最後に最下層の「プレイ階層」に下りてきます。ここでは、それぞれの役割を持った選手は何をすべきか、もし今ボールを持っている場合はドリブルをするのか、それともパスを出すのかとか、ほぼ2択になる所まで落とし込めるようにしました。

ほかにも、誰にパスを出すのかなどの細かい要素はあるのですが、過去に先人たちが作った諸々のAIとかは最下層に全部落とし込んで、その上の部分を組み立ててチームスタイルを実現させる形でAIを作りました。で、いったん組んではみたのですが、最上層と最下層がとにかく大きくて、逆に第2と第3階層はすごく小さかったので、途中から小さい部分をどんどん太らせていく形で組んでいきました。

『WCCF』シリーズのAI構造(セガ提供)

——AIを作り直した所で、プログラムの処理速度が遅くなったりすることはありませんでしたか?

田邊:結果論ではありますが、一つひとつを極力シンプルに作るようにしたことで、想定していたほどの時間は掛からなかったと思います。単にプログラムが4倍になったから時間も4倍掛かるというわけじゃなく。

——当時の『WCCF』に使っていた基板はLINDBERGH(リンドバーグ)だったでしょうか?

柏田:そうです。それ以前はNAOMI(ナオミ)を使っていました。

——今、タクティクスのお話が色々出てきましたが、セットプレイのような特殊なシチュエーションの場合は、どのようにAIなどのプログラムを作ったのでしょうか?

田邊:セットプレイ用の「セットプレイタクティクス」を作りました。セットプレイの場合は、チームスタイルとか育成のデータとかは一切関係なく、「ここからのフリーキックであれば、みんなこうするよね」というイメージのもと、チームスタイルなどの要素はいったん避けておいて強制的に「セットプレイタクティクス」をはめ込むようにしてあります。

例えば、守備側の選手であれば壁に入る人やマークに付く人を決めたり、攻撃側であればキッカーやフェイントを仕掛ける人、それからフォローに回る人といった役割を与えたりして、「あとはヨーイドンで始めてください」という形で、セットプレイはすべてタクティクスで処理していました。

——ナルホド、そういう仕組みだったんですね。フリーキックやコーナーキックのときに攻撃側の選手たちが、まれに壁の横にいた選手が避けたコースにシュートを放つとか、トリックプレーを披露することがあったので、どうやってAIを作っていたのか、すごく興味がありました。

田邊:特殊な位置からの、特殊なセットプレイパターンを用意していました。そのプレイは、おそらく体を引っ込める役と、引っ込めた位置にボールを蹴る役割の選手がいて、そのセットプレイのパターンが呼ばれたときだけ反応するんですね。で、それが「セットプレイ重視」のチームスタイルや、十分に育成されたチームのときだけ呼び出される仕組みになっていました。

柏田:呼び出される条件にはどういうものがあるのか、それをどうやって選ぶのかみたいなものを私がツール化しまして、そのツールからはき出したものをプログラム上で動かすような形で作っていましたが、条件の種類がメチャクチャ多いんです。

一番下の「ブレイ階層」ですと、誰にパスを出すのか、受け手がフリーなのかどうか、自分がどれぐらいフリーで何メートル以内に相手がいるかなど、これらすべての要素をあらかじめ条件としてリストアップしたうえで呼び出すみたいな形でした。あとは選手自身の能力値を見て、これのプレイができる、できないとかを決めたりもしていました。

田邊:ただ先ほどもお話したように、すべての可能性をif文で分けるわけではないので、例えば攻撃、あるいはボールを持っている間は、スライディングタックルを考える必要はないですよね? なので「自分がこういう状況になったら、できるプレイはこれだけだよね」と、全体の中から相当少ない部分に絞ってから、その範囲内で調べることができるようにしていましたので、11人のプレイを全部if文でバーッと決めてはいなかったと思います。

柏田:途中から、ログで可視化されましたよね。「ツールで設定した条件とは、こういう状況では当てはまらないからやらない」みたいなものが明らかになるので、すごく調整がしやすくなりました。

——またセットプレイの質問なのですが、延長線でも勝敗がつかなかった場合のPK戦のときには、どのようなAIを用意していたのでしょうか?『WCCF』シリーズのPK戦は、キッカーの順番以外はすべて自動で実行されますので、どうやって内部で処理をしていたのかがすごく興味があります。

田邊:基本的には、まずゴールキーパーの1対1での守備能力と、キッカーの決定力の能力値を使ったジャンケンをしていました。キーパーは、相手が蹴るコースの読みが当たるか当たらないかを決めて、もし当たれば同じ方向に飛ぶのですが、実際に止めるかどうかはキーパーの手の大きさや身長なども影響します。ですから、こちらとしては能力によって読みが当たるかどうかまでは保証するけれども、実際にキーパーが止めるのか、それともどこかに当たって入るか、あとはお任せみたいな形になりますね。

——単なるジャンケン勝負ではなかったんですね。「PKキーパー」のチームスタイルを持つキーパーを使っても、シュートをなかなか止められないケースがあるのは、読み以外の要素も色々あったからなのかと。ナルホド納得です。

田邊:当時はあまり話題になりませんでしたが、読みが当たる、当たらないの比率を検証していただければ「確かに、このキーパーは読みがいいな」というのが分かっていただけたのではないかと思いますね。

柏田:それから、同じ「PKキーパー」のスキルでも、選手カードごとに設定しておいたPKセービング能力が異なるので、その違いも結果に影響します。例えば「PKセービング」を使うと能力値が2ポイント増えると仮定した場合は、もともとのPKセービング能力が8のキーパーと10のキーパーとでは、止める確率が当然変わりますよね。

——つまりPKセービング能力も、あらかじめ各カードのパラメーターのひとつとして持っていたわけですね。

柏田:そうです。ただし、しばらくPKが続いた場合は、最後に必ずどちらか一方のキッカーがミスをして勝負が決まるようにしていました(※)。

※筆者注:『WCCF』シリーズは、PK戦が長引くと特定の順番で必ずどちらかのチームのキッカーが成功、および失敗して決着がつくプログラムを組んでいた。長時間プレイが続くと店舗の収益に影響が出るアーケードゲームゆえの特殊処理である。

セットプレイ時は「セットプレイタクティクス」を用意して、各選手の行動を決定していた(※『WCCF 16-17』より)
PK戦の場面(※『WCCF FOOTISTA2019』より)

後編に続く(2022年8月31日11時公開)

Writer:鴫原盛之

RELATED ARTICLE関連記事

【CEDEC2020】柔軟な自動化を実現したLUMINOUS ENGINEはどのように進化したのか

2020.9.17ゲーム

【CEDEC2020】柔軟な自動化を実現したLUMINOUS ENGINEはどの...

Ubisoft La Forgeの研究成果が示すゲームにおける機械学習の未来

2019.6.04ゲーム

Ubisoft La Forgeの研究成果が示すゲームにおける機械学習の未来

【GDC 2019】没入感の追求がたどり着く先は、自然言語処理によるAIとの対話

2019.4.17ゲーム

【GDC 2019】没入感の追求がたどり着く先は、自然言語処理によるAIとの対話

RANKING注目の記事はこちら