ロックマンエグゼを頑張りたい人のブログ

MMBN6:ロックマンエグゼ6の対戦用フォルダレシピとか思ったこととか動画とか

【雑】アドコレ版エグゼ5 ランクマッチ最強の悪AIこと汎用悪AI構想

ご無沙汰しています。
先日(といってもしばらく前ですが)Switch版エグゼ6のランクマッチにおいて、両バージョン無事にΩランクに上げることができました。
グレイガ版のみですが、Ω到達の瞬間がYouTubeの配信に載っているのでよければご覧下さい。ファルザー版のΩ到達時は配信環境が消滅していたので映像には残っていません。

インターネットが復活したのでオメガランク目指してランクマッチします【ロックマンエグゼ アドバンスドコレクション】 - YouTube


さて、みなさんアドコレでエグゼ5はプレイしていますでしょうか。
どうやら5のランクマプレイ人口が増え始めているそうで、これからが旬かもしれないので準備を整えるなら今のうちです。

開幕から余談ですが、エグゼ5のわらしべイベント(NPCとチップを交換して回るイベント)で入手できるチップのうち、対戦構築で採用されがちなスーパーキタカゼ*、スチールリベンジF、カワリミ*は他プレイヤーと交換できないため、オラン島のチップトレーダーSで気合いで入手するしかありません。
キタカゼ*は3枚程度の採用でどうとでもなるし、バスター単発で剥がれるカワリミも4枚積みすることは少ないですが。
それでも自分の構築に必要な枚数を揃えるのは、連射コン放置でのトレーダー素材集めを前提としても十数時間以上の覚悟は必要です。
まぁこれは構築の善悪関係ないので一旦置いておきます。


やっと本題に入ります。
タイトルの通りこの記事ではアドコレのランクマッチを悪ロックマンで駆け抜け、Ωランクに到達することを見据えた汎用悪AIの作成における考え方と手順ついてまとめていきます。

2023年現時点、AIの仕様が項目ごとにいろんな媒体に書かれていたり、当時のプレイヤーが残した研究結果が時代の奔流に飲まれて見れなくなってしまっています。
最新タイトルである当ゲームの刻一刻と変化する対戦環境の最中において、いちいち調べたりWEBアーカイブをサルベージするのは非効率的であるため、この記事を読めば大体の仕様と目指すべき方向性、ABD作成の方法を理解できるようにしています。頑張ってついてきてください。

他人の研究/検証内容、自分の過去の解析結果を元に書いている部分もあり、またGBA版からの変更点については全て網羅できているわけではありませんのでご認識置き下さい。

 

◆目次

 

◆当記事で掲げている「汎用悪AI」とは

一般的にルールを縛らない環境下で「強いAI」といえば真っ先に思いつくのがダークサンダーAIに始まる"ダークチップやPAを連発するAI"ですが、アドコレのAIには下方修正がかかっており、ダークチップや一部PAは連発されないように調整されています
これはかなり露骨で、優先度を上げていても一度のDSUで一回もダークチップを使ってくれない、なんてことはザラです。
これによりAIでのワンターンキルはかなり難しくなりました

じゃあダークチップの替わりとなりうるチップだけを数種類投入すればよいのでは、とも思いますが、実際のランクマッチでの対戦中はエリアの奪い合い、防御チップ、キタカゼなどでAIが覚えるチップを使わざるを得ない場面が多く出てきます。
そして、それらのチップを使用すると折角覚えさせた数種類のチップの使用率を食います。
特にランクマッチ上位には、アドコレ発売前から何年も対戦していたプレイヤーやオフィシャルネットバトラーがうようよいますので、AIが多少強かろうとも通常時の立ち回りをそんな縛りプレイで勝ち続けるのは至難です。

以上の前提条件から、作成する汎用悪AIは下記四点を満たすことを目標とします。

①AIには強いスタンダードチップ(+適量のダークチップ)を覚えさせて、ほどよく火力補助兼サポートをさせる
②ランクマッチ上位で特定個人のメタのために一時的に変なチップを投入したとしても、AIフォルダに一切影響しない
③通常時の立ち回りで普通にチップを使用してもAIフォルダに一切影響しない
④ランクマッチでΩランクに到達するまで、AIフォルダ内のソートに入れ替わりが発生しない


◆当記事における言葉の定義

通常時…DSU以外の状態
DSU…ダークソウルユニゾン:自機ロックマンが悪状態の時、致命ダメージを受けたときに一試合に一度だけ発動する特殊なソウルユニゾン
AI…DSU(当記事では基本的にダークインビジを含む)の挙動
AIフォルダ…AIが使用するチップ情報が格納されている隠しフォルダ。ゲーム上では確認できない。内訳は後述。なお単に「フォルダ」と記載した場合は、PETのメニューから編集画面を開ける通常のフォルダを指す
AI調教…AIフォルダに使用するチップを格納する行為
AIが覚えるチップ / AIが覚えないチップ…後述
ABD…オートバトルデータ。ややこしくなるので当記事ではAI、AIフォルダとしてそれぞれ表記


◆前提条件

AIフォルダにはそれまでに使用したチップと回数が格納されているため、AI調教時のノイズとならないよう、AIが覚えないチップとバスターのみを使用してゲームクリア&チップ回収をしておく必要があります
※アドコレにはバスターMAXモードがあるため、GBA版と比べてさほど大変ではない
AI調教時にダークチップを沢山使用するため、HPメモリを一切回収せずにゲームを進行する必要があります
※通信対戦で調教を行う場合はHPが減らないのでこの限りではないが、後述する調教手順を鑑みると現実的ではない
※調教後にまとめてHPメモリを回収する


◆AIが覚えないチップ一覧

シナリオ進行、チップ回収などで使ってよいチップのリストです。
AI調教時のフォルダの穴埋めにも使います。
先人の検証情報からGBA版の仕様を引用しているため、アドコレ版とは異なる可能性があります(恐らく変更されていませんが)。

クリックで展開 ・スタンダード枠
スペースユラ2
スペースユラ3
ライフシンクロ
アースクエイク1
アースクエイク2
アースクエイク3
サムライソード1
サムライソード2
サムライソード3
スカルチェーン1
スカルチェーン2
スカルチェーン3
ドリルアーム1
ドリルアーム2
ドリルアーム3
イナズマキング1
イナズマキング2
イナズマキング3
メテオアース1
メテオアース2
メテオアース3
ヘビーゲージ
クイックゲージ
カモンレイン
カラーポイント
エレメントレイジ
コピーダメージ
アタック+10
ナビ+20
サボテンボール1
サボテンボール2
サボテンボール3
ダークインビジ
ダークプラス
ダークサウンド

・メガ枠
アタック+30
バグシュウセイ
ダブルポイント
フルカスタム
ナンバーボール
ポルターガイスト
オテンコサマ
ナパームマン
ナパームマンSP
ナパームマンDS
マグネットマン
マグネットマンSP
マグネットマンDS
メディ
メディSP
メディDS
カーネル
カーネルSP
カーネルDS
トードマン
トードマンSP
トードマンDS
リザードマン
リザードマンSP
リザードマンDS
クラウドマン
クラウドマンSP
クラウドマンDS
コスモマン
コスモマンSP
コスモマンDS
スワローマン
スワローマンSP
スワローマンDS
フットマン
フットマンSP
フットマンDS
ジャンゴ
ジャンゴSP
ジャンゴDS
リーダーズレイド

・ギガ枠
デスフェニックス
フェニックス
ロードオブカオス


◆AIが覚えるチップ一覧

AI調教時に管理できなくなるので、調教作業を開始するまでは使用してはいけないチップです。
調教の際はこのリストからAIフォルダに格納するチップを検討します。
なお調教は対戦フォルダに組み込む可能性のあるチップ・コードをすべて揃えてから行うことを強く推奨します。
こちらも先人の情報からGBA版の仕様を引用しているため、アドコレ版とは異なる可能性があります。

クリックで展開 ・スタンダード枠
キャノン
ハイキャノン
メガキャノン
エアシュート
バルカン1
バルカン2
バルカン3
スプレッドガ
マークキャノン1
マークキャノン2
マークキャノン3
パルスビーム1
パルスビーム2
パルスビーム3
センシャホウ1
センシャホウ2
センシャホウ3
ワイドショット1
ワイドショット2
ワイドショット3
エレキリール1
エレキリール2
エレキリール3
ガンデルソル1
ガンデルソル2
ガンデルソル3
サンダーボール
トルネード
ノイズストーム
ミニボム
エナジーボム
メガエナジーボム
クラックボム
パラライズボム
リセットボム
バグボム
ホウガン
ブラックボム
カンケツセン
マグマシード
オーシャンシード
アイスシード
クサムラシード
ソード
ワイドソード
ロングソード
ワイドブレード
ロングブレード
カスタムソード
バリアブルソード
イアイフォーム
フウジンラケット
エンゲツクナイ1
エンゲツクナイ2
エンゲツクナイ3
ヨーヨー
エアホッケー
エアホイール1
エアホイール2
エアホイール3
ファイアパンチ1
ファイアパンチ2
ファイアパンチ3
ヒートボディ1
ヒートボディ2
ヒートボディ3
サイドバブル1
サイドバブル2
サイドバブル3
カスタムボルト1
カスタムボルト2
カスタムボルト3
ブーメラン
スペースユラ1
ウッディノーズ1
ウッディノーズ2
ウッディノーズ3
バンブーランス
ツナミホール
アカツナミホール
ドロツナミホール
カモンスネーク
マグナム
サークルガン
カウントボム1
カウントボム2
カウントボム3
ボーイズボム1
ボーイズボム2
ボーイズボム3
ステルスマイン
ストーンキューブ
トップウ
スイコミ
オウエンカ
ディスコード
ティンパニ
サイレンス
レッドフルーツ1
レッドフルーツ2
レッドフルーツ3
ラニンギョウ
メットガード1
メットガード2
メットガード3
カースシールド1
カースシールド2
カースシールド3
クラックアウト
ダブルクラック
トリプルクラック
リカバリー10
リカバリー30
リカバリー50
リカバリー80
リカバリー120
リカバリー150
リカバリー200
リカバリー300
パネルスチール
エリアスチール
スチールゼリー
スチールパニシュ
スチールリベンジ
パネルリターン
デスマッチ1
デスマッチ2
デスマッチ3
バスターアップ
ブラインド
スーパーキタカゼ
ホーリーパネル
インビジブル
バリア
バリア100
バリア200
バブルラップ
カキゲンキン
ダイコウズイ
ヒライシン
マヨイノモリ
カワリミ
シラハドリ
ナビスカウト
バッドメディス
ダークソード
ダークトルネード
ダークサークル
ダークメテオ
ダークサンダー
ダークリカバリ
ダークランス
ダークドリル
ダークワイ

・メガ枠
スーパーバルカン
ネオバリアブル
リュウセイグン
オジゾウサン
ジェラシー
ドリームオーラ
サンクチュアリ
ムラマサブレード
ポイズンアヌビス
ブラックウイング
ジャスティスワン
Zセイバー
ロール
ロールSP
ロールDS
ブルース
ブルースSP
ブルースDS
ジャイロマン
ジャイロマンSP
ジャイロマンDS
サーチマン
サーチマンSP
サーチマンDS
シャドーマン
シャドーマンSP
シャドーマンDS
ナンバーマン
ナンバーマンSP
ナンバーマンDS
トマホークマン
トマホークマンSP
トマホークマンDS
イトマン
イトマンSP
イトマンDS
シェードマン
シェードマンSP
シェードマンDS
ガンデルソルEX

・ギガ枠
デルタレイエッジ
ギガントフック
フォルテ
ホーリードリーム
カースオブバグ
クロスディバイド
メテオナックル
フォルテアナザー
オメガロケット
バグチャージ

PA


◆AIフォルダの内訳

AIの記憶領域には「AIが覚えるチップ」すべての使用回数が記録されています。
その内以下に該当するチップがAIフォルダに格納されます。

スタンダード・ダークチップ枠…使用回数上位16種類
・メガクラスチップ枠…〃5種類
・ギガクラスチップ枠…〃1種類
・プログラムアドバンス枠…〃1種類

なおスタンダード・ダークチップ枠には「AIの使用優先度が一番多いチップ」が二枠「二番目に多いチップ」が二枠用意されていて、これが"プレイヤーが好んで使っていたチップを優先的に使用するDSU"を支えています。
また、優先度三番目(チップ使用回数上位5位以降)は一律の優先度ということになっています。

で、この一律優先度であるはずのチップが「使用回数順で格納されている」ことがポイントです。

AIはAIフォルダ内を上から順に参照して次に使用するチップをピックしていますが、同一の優先度内であっても偏りがあり、上位に格納されているチップほど僅かに選ばれやすい傾向にあります。
つまりAIフォルダにチップを格納する際は、16種類全てにおいて自身が考える重要度通りの順番にしておく必要があります。
※メガクラスチップの優先度はメガクラス内で一律です。スタンダード・ダーク枠とは別で格納されているため、メガ枠内での格納順だけ意識すればOKです(そもそも汎用AIにおいて一度のDSUで一回使われるかどうかのメガクラスチップのうち、1/5でピックされる中の僅かな偏りにそこまで意識を割く必要があるかは疑問ですが)
※使用回数上位に格納したダークチップが、アドコレでの仕様変更によりAIのピック率にどの程度影響を出すかは未検証

※AIフォルダには解析の結果二次フォルダが存在していることがわかっているが、この二次フォルダに通常のプレイでチップを格納する方法があるのかは今のところ不明(存在しないかも)
※AIフォルダにはコンボ記憶領域があり、戦闘で記録したコンボの上位8つをAIフォルダに格納するが、記録と格納をするだけでAIはコンボを使用しない


◆AIに覚えさせたくないチップと対策

通常時の立ち回りで有用なチップのうち、AIに覚えられると困るor意味がないものを思い付いた順に記載します。
インビジブル(DSU解除時のショートインビジで上書きされるため無駄)
ナビスカウトカワリミなどの罠チップ(バッドメディスンに上書きされたら目も当てられないため)
バブルラップ(オーラ、バリアを上書きする可能性がある)
オウエンカ系(自分のポイズンファラオを消す可能性がある)
レッドフルーツ(相手に活用される可能性がある)
サーチマンSP,DS(アドコレの入力遅延環境で安定して当てるのは不可能なため枠の無駄)
バグチャージ(めっちゃ外す+ノイズストームの攻撃範囲が減る)

ランクマッチを進める上で上記を覚えてしまうくらいなら、ブラインド、バスターアップ、パネルリターン、スチール系など、DSUが使用することに多少なりとも有効に働くチップでAIフォルダを埋めてしまった方がマシです。

 

ここからはAIを調教する方針についての考察です。

◆AIに覚えさせたいチップの選定における考え方

DSUの時間は限られており、この限られた時間で相手より優位に立つためには、覚えさせるチップ一枚一枚に明確な役割と性能を与える必要があります。
また、特定の構築・状況でしか活きないチップの採用は控えた方がよいでしょう。

・攻撃手段
汎用AIにはダークサンダーAIに代表される「強いAI」のような圧倒的な火力による制圧は期待できないため、できるだけ相手に無敵時間(ショートインビジ)を発生させずにほどほどの手数でほどほどのダメージを稼ぐか、殴りながら更に盤面も有利になりうるチップの採用を検討します。

・耐久力補助
DSUが解けたあとも耐久面で恩恵が受けられるチップを検討します。
リカバリー系はDSUが自動発動した際の持ち直しとして優秀なので是非採用したいところです。
バリア200、ドリームオーラ、リカバリーなど。
※バリア100、バブルラップは上位バリアを上書きしてしまう可能性があるので採用は微妙

・その他サポート
盤面を有利にしたり、DSUの行動を通すためのチップを検討します。
エリアを返す、エリアを奪う、バリアやオーラを剥がす、相手のインビジを解除する、穴パネルを塞ぐ、相手エリアのパネルを破壊する、置物を破壊するなどの性能があるチップを採用したいところです。


◆AIフォルダの作り方(=ABDの作り方)

これまでのことをを踏まえて、使って欲しい順にスタンダード・ダークチップ枠をトップ16、メガチップ枠をトップ5、ギガチップ、PAを好みに合わせて順番も含めて選定し、箇条書きで書き出します。

次に、自分がΩランクに昇格(最短140勝)するまでに必要な対戦数を、負け試合や降格時も含めて想定します。当記事ではわかりやすくするため、仮に200戦とします。


さて、覚えさせたくないチップ代表格のインビジブルですが、よっぽど無茶な構築にしない限り基本的にはフォルダに4枚は投入され、対戦中に使用することでしょう。
AIは対戦で使用したチップの回数も記録するため、全試合でインビジブルを4枚使用してもトップ16を塗り替えないよう、スタンダード・ダークチップ枠のチップは最低でも一種類につき801回以上使用してAIの記憶領域にに格納する必要があります。
また、AIの使用頻度を高くしたいチップはより多い使用回数でAIフォルダに格納する必要があるため、それぞれに最低でも1回以上の使用回数差を付けないといけません(数え間違いをケアするためにもう少し差を付けた方がよいとは思いますが)。

なおAIに覚えて欲しいチップの例として、ダークチップやエリアスチール、スーパーキタカゼなどなどが挙がるかと思いますが、このあたりもどんなフォルダでも1枚ないしは3~4枚は投入すると思います。
AIフォルダの16番目にエリアスチールを格納する場合、上位チップの使用優先度に影響しないよう(=AIが崩れないよう)毎試合エリアスチールを4枚使用すると仮定し、15番目のチップは最低でも1602回以上使用しておくべきです。
ダークチップも、フォルダに投入する可能性のあるものを格納する場合は、上位チップには念のため201回以上の使用回数差を設けておく必要があります

※分かりづらくなるため、以降当項目では通常のフォルダに採用するチップを以下の通りに置き換えます
フォルダに絶対に採用しないチップ…X
フォルダへの採用は検討するが、2枚以上の投入はしないチップ(ダークチップ含)…Y
フォルダに2枚以上採用する可能性があるチップ…Z

ということを念頭に置けばあとは簡単です。
手始めにスタンダード・ダークチップについて、この項目で始めに書き出した16種類のチップ一覧の一番下位(16番目)を、200戦の戦闘を行うと仮定して801回と設定します。
16番目のチップがXの場合、次点(15番目)のチップには801+1回Yなら801+201回Zなら801+801回を設定します。
次に15番目のチップがXの場合、次点(14番目)のチップには(15番目のチップの回数)+1回Yなら(15番目のチップの回数)+201回Zなら(15番目のチップの回数)+801回を設定します。
……といった調子でリストの1番目まで使用回数を決めていきます。

…やっぱり分かりづらかったため私のAIフォルダ作成時のリストを貼付しますので参考にどうぞ。

※数え間違いケアのため、スタンダード/ダークチップ枠は50枚差にしています
※実際にランクマッチで使用している汎用悪AIの中身なので、構築バレ防止のため一部にモザイクを入れていますがご容赦ください
※メガクラス枠はあまり差を設けていないため200戦行っているうちに格納順が変わるかもしれませんが、この4種類(厳密にはサーチマン以外の3種類)なら順番大して気にしなくていいかな~と適当に決めています

 

◆あとはAIを調教するだけ

ここまででAIフォルダの制作方針はご理解いただけましたでしょうか。
実際のAIフォルダの中身の検討もできるようになったかと思います。

あとはリストに書いてある回数になるようにチップを一枚ずつ数えながら使いまくるだけです。

ちなみに、ランクマッチをしながらAI調教を進めるのはやめた方がよいです。
ランクマッチ環境は残念ながら戦況が好ましくないと切断するプレイヤーが多い状況です。
切断された際にチップの使用回数が記録されるのかされないのかが現在不明なため、修正できない調教ミスに陥らないよう、マップ上でウイルスやバトルイメージデータを相手にして調教を進めることを強く強く推奨します

なお先述したオンラインのプライベート対戦やSwitchのローカル対戦でAI調教する手法については、最大HPが減らないのは大きな利点ですがダークチップを3種類記憶させるだけでも何千回も対戦をしないといけないので、手間を考えるとやめておいた方がよいです。

 

◆AI調教を終えたら

AI調教が全て済んだらナビカスと改造カードをすべて外すとHPが1になっていることと思いますが、この状態でHPメモリを手に入れればきちんとHPは増えていきます。

すべてのHPメモリを回収すると、最終的に汎用悪AIロックマンのHPは901になります。

また、よっぽど変な気を遣って調教を進めない限り、ロックマンの善悪度は「完全な悪」になると思いますので、調教後にウイルス狩りをしてもロックマンが善傾倒しなくなるのも汎用悪AIの利点になります。


HPメモリを全回収して、改造カード、ナビカス、フォルダが完成したらあとはランクマに突撃するだけ!

実際に動かしてみるとこんな感じになります。優秀ですね。




◆Special Thanks:使用回数を数えるための便利ツール

私は最終的に合計4万回近くトマホークマンのバトルイメージデータに向けてチップを使い続けたわけですが、実際のところ使用回数は手作業で数えていたわけではなく、画像認識カウントツールを使用していました。

使用したツールは、ポケモンの色違い粘り自動カウントツールとして作成された「Auto Shiny Counter」です。
こちらは海外の有志の方が作成したツールとのことで、上記動画で使用方法の解説と、概要欄にDL用リンクが掲載されています。

なお実用に際してはパンオレさんの紹介記事が非常に参考になりましたので、ここでお礼申し上げます。
ツールのアップデートにより、パンオレさんの記事作成時よりも機能が増えています。


なおAuto Shiny CounterはPCでしか利用できないため、出先で計上する際はAndroidアプリのシンプルカウンターを使用して手動で数えていました。

こっちもポケモンで使うこと想定しとるやんけ

 

◆Special Thanks:参考文献

Initial E! (閉鎖)
Code Depository
ロックマンエグゼまとめ@ウィキ (書いてあること結構間違っているので参考程度に)

 

 

 

それではみなさんAI調教頑張ってください

 

 

 

 

 

私はプレイ時間換算で300時間以上かかりました