MUGENのタッグ戦で同時に必殺技を発動させやすくするAIの仕組み

自分の事を知ってる人がいるなら大体の人がMUGEN関係だと思うのですが、

全然MUGENに関する記事がありませんね、申し訳ありません。

せっかくの機会なのでちょっとタッグAIに関する解説をさせていただきます。

かなり専門的な話になりますので分からない人はとことん分からない話だと思います。

というかMUGENのAIを作成する人以外にはまったく縁の無い記事です。

 

 

まずはこちらの動画をご覧ください、少し古いですがご了承を。

昔自分が投稿したMUGEN動画なのですがこの時に使用したタッグAIには、

お互いのゲージ技を同時に発動する仕組みが搭載されています。

動画内でもここぞとばかりに同時に暗転していますね。これは

「技のモーションに入ってから実際にゲージを消費するまでに若干のタイムラグがある」

「一度モーションに入ってしまえばその時にゲージが無かったとしても技は発動する」

という仕組みを利用しほとんど同時にゲージ技を使用する事で、

1ゲージで両方のゲージ技を発動する事を可能にしたものです。

合体技っぽくて非常に見栄えがいいので個人的なお気に入りです。

 

で、これ真似しようとした人もいるかと思うんですが、

多分こう思った人がいるんじゃないでしょうか?

 

「なんでこんなに頻繁に同時に技を出せるの?」

 

実際にやろうとしても中々綺麗に技を発動させれなかった人もいるのではないでしょうか?

一応理由の1つに「2人とも空中で技を発動可能」というのもあるのですが、

せっかくなので自分が使った同時発動の仕組みを教えたいと思います。

 

こっからAI作成をしてない人には意味不明の文字列が出ます、ご注意ください

 

 

 

; アークティックアタック
[State -1, Arctic Attack]
type = ChangeState
value = 2000
triggerall = !var(17)
triggerall = command = “ArcticAttack”
triggerall = Power >= 1000
triggerall = MoveType != H
trigger1 = Ctrl
trigger2 = StateNo = [200,250]
trigger3 = StateNo = [400,450]
trigger4 = StateNo = [600,650]
trigger5 = StateNo = 1060
trigger5 = time > 17
trigger6 = StateNo = 1100
trigger6 = time > 17
trigger7 = StateNo = 1110
trigger7 = time > 17
trigger8 = StateNo = [1000,1050]

 

これはアイスマンの超必殺技「アークティックアタック」の人操作時の発動条件を記したものです。

全部説明するときりがないのですがまず「triggerall」で示された条件を全部達成した場合に、

 

「trigger1 = Ctrl」今フリーの状態(攻撃食らってないし攻撃してもいない状態、空中でもOK)

 

を満たしていればアークティックアタックを発動できます。

「trigger1」を満たしていなくてもそれ以外の

 

「trigger2 = StateNo = [200,250]」(特定の攻撃を出している状態)や

 

trigger5 = StateNo = 1060(特定の攻撃を出している状態でかつ)
trigger5 = time > 17(その攻撃モーションの17フレーム目移行である場合)

 

であれば同じようにアークティックアタックを発動できます。

全ての条件の前提となる「triggerall」の方は大雑把に説明するなら

「人操作時」「攻撃食らってる状態じゃなくて」「ゲージが1000以上の時に」「コマンド入力」

となります。

まあ分からない人もいるかもしれませんがAI作成の基本事項なので今回は省略させていただきます。

このうち「コマンド入力」はAI操作時には必要無いものなので省いてOKです。

またAI操作時の行動なので「人操作時」を「AI操作時」に修正します。

修正すると大体こんな感じになります。

 

; アークティックアタック
[State -1, Arctic Attack]
type = ChangeState
value = 2000

triggerall = var(17)
triggerall = Power >= 1000
triggerall = MoveType != H
trigger1 = Ctrl
trigger2 = StateNo = [200,250]
trigger3 = StateNo = [400,450]
trigger4 = StateNo = [600,650]
trigger5 = StateNo = 1060
trigger5 = time > 17
trigger6 = StateNo = 1100
trigger6 = time > 17
trigger7 = StateNo = 1110
trigger7 = time > 17
trigger8 = StateNo = [1000,1050]

 

次にタッグ相手である霊夢の連携させたい必殺技を確認します。

 

;—————————— 夢想妙珠&夢想封印(空中)
[State -1, 3025]
Type = ChangeState
Value = 3025
TriggerAll    = Power >= 1000
TriggerAll    = Var(41) = 0
TriggerAll    = Var(46) = 0
TriggerAll    = Command = “236Z”
TriggerAll    = StateType = A
Trigger1    = Ctrl
Trigger2    = (((Var(12)=225)&&(StateNo=119))||(StateNo=226)) && MoveContact
Trigger3    = StateNo = 600 && MoveContact
Trigger4    = StateNo = 620 && MoveContact
Trigger5    = (StateNo=[700,729]) && (StateNo%5=1 && Time>0)
Trigger6    = (StateNo=[700,729]) && (StateNo%5=2)
Trigger7    = (StateNo=[1020,1039]) && MoveContact
Trigger8    = (StateNo=1065) && MoveContact

 

これが霊夢の空中版夢想封印の発動条件ですが、

今回見るべきなのは「Value = 3025」という部分です。

これが空中版夢想封印の番号であり、霊夢はこの番号の行動をしている事を表します。

同様に地上版の番号が3020、他のゲージ技の番号が3040と3060です。

これらが同時発動させたい技になりますのでメモしておきます。

 

ここからが本題です。

アイスマンのアークティックアタックの発動条件にこの番号を付け加えます。

また同時に「タッグ相手が霊夢である」という条件も入れます。

 

[State -2, アッチイケアタック]
type = ChangeState
value = 2000
triggerall = var(17)
triggerall = (Partner,StateNo = 3020) || (Partner,StateNo = 3025) || (Partner,StateNo = 3040) || (Partner,StateNo = 3060)
triggerall = Power >= 1000
triggerall = MoveType != H
triggerall = P3Name = “Reimu_Hakurei”
trigger1 = Ctrl
trigger2 = StateNo = [200,250]
trigger3 = StateNo = [400,450]
trigger4 = StateNo = [600,650]
trigger5 = StateNo = 1060
trigger5 = time > 17
trigger6 = StateNo = 1100
trigger6 = time > 17
trigger7 = StateNo = 1110
trigger7 = time > 17
trigger8 = StateNo = [1000,1050]

 

赤色の部分が修正した箇所です。

「Partner,StateNo = 3020」は「タッグ相手が3020番(夢想封印)の行動をしている」を意味します。

「||」は「または」ですね、他の行動であってもOKという意味です。

「P3Name = “Reimu_Hakurei”」は「タッグ相手の名前はReimu_Hakureiである」を意味します。

 

これで「霊夢がゲージ技を発動していると自分もゲージ技を発動する」というAI表記になりました。

同様の事を霊夢側にも行います。

 

 

;—————————— 夢想妙珠&夢想封印(空中)
[State -2, 3025]
Type = ChangeState
Value = 3025
TriggerAll    = Power >= 1000
TriggerAll    = Var(41) = 0
TriggerAll    = Var(46) = 0
TriggerAll    = Var(49) = 1
TriggerAll    = StateType = A
triggerAll    = (Partner,StateNo = 2000) || (Partner,StateNo = 2010)
TriggerAll    = Partner,time <= 5
TriggerAll    = Power <1800
triggerall    = P3Name = “Iceman”
Trigger1    = Ctrl
Trigger2    = (((Var(12)=225)&&(StateNo=119))||(StateNo=226)) && MoveContact
Trigger3    = StateNo = 600 && MoveContact
Trigger4    = StateNo = 620 && MoveContact
Trigger5    = (StateNo=[700,729]) && (StateNo%5=1 && Time>0)
Trigger6    = (StateNo=[700,729]) && (StateNo%5=2)
Trigger7    = (StateNo=[1020,1039]) && MoveContact
Trigger8    = (StateNo=1065) && MoveContact

 

Partner,StateNo = 2000)」というのはやはりアイスマンのゲージ技のモーションです。

霊夢側にはこの他に新たに青色の部分も記述しました。

これはより効率のいいタイミングで必殺技を同時に発動させる為に記述した部分です。

「Partner,time <= 5」というのはタッグ相手の今のモーションが5フレーム以内である事、

つまり「ゲージ技のモーションに入ってから5フレーム以内」である事を意味します。

この5フレームというのは「実際にゲージを消費するタイミング」です。

アイスマンのモーションから5フレーム以内で霊夢が同じくゲージ技を出せれば、

合計で2000ゲージ必要な所を、1000ゲージあれば出せる事になります。

 

Power <1800」というのは「ゲージが1800より少ない」という意味です。

2000ゲージ以上あると結局2000ゲージ消費してしまう為、

ちゃんとお得な時に出すようにしようって事ですね。

「格好いいし勿体無くても問題ない!」って場合は省いてOKです。

 

 

これが同時に必殺技を発動する仕組みとなります。

発動するタイミングを増やす為に相方がゲージ技を出した場合、

自分がどこにいようが適当に技をぶっ放すようにしていますが、

霊夢やアイスマンのように攻撃範囲の広い技で無い限りはあまりお勧めできません(

そういう意味でも霊夢とアイスマンは同時発動をするのに最適だったわけですね。

 

これよりしっかりした記述を作ってる人もいるかもしれませんが、

何かの参考になれば幸いです。

超必殺技の同時発動というのはやはり格好いいので、

AI作りに自信ある人は是非一度試してみてください。

関連記事

遊戯王エイプリルフール企画、なんか集英社が海馬コーポレーションに乗っ取られてた

4月1日、エイプリルフールですね。 嘘をついていい日という事で日本の企業はやたらとこの日が大好

記事を読む

東方心綺楼から判断する東方キャラのバストサイズ比較

  今まで遊戯王に関する記事だけでしたが、遊戯王以外の記事も書いていきます。

記事を読む

東方深秘録委託販売開始、例の単語に対してリアクションが・・・

東方深秘録、委託販売が開始されましたね。 というわけで早速買ってきてストーリーオールクリアして

記事を読む

東方深秘録:CPU戦の勝利時の台詞を一部抜粋 そのご

深秘録、かなりの位置取りゲーですね。 分かってる相手は本当にこちらの攻撃範囲の死角をしっかりと

記事を読む

遊戯王用に今まで作った七英雄コラを1年の終わりに振り返ってみる

2016年もいよいよ終わりです。 今年も1年この考察好きニコ厨のMUGEN次元に付き合っていた

記事を読む

キャッチフィーリング用の辞書を作りました:ニコニコMUGEN

転校生の薫ちゃんにはある秘密があった!? 平和に学園生活を送りたい薫ちゃんですがそれを周りが許

記事を読む

東方考察:もしかしてレミリア・スカーレットの一番強い形態って・・・

何か東方に関する考察記事もすっごい久しぶりな気がします。 今回考察するのはレミリア・スカーレッ

記事を読む

遊戯王OCG考察:あの禁止カードどもはどうエラッタすれば復帰できるか?その4

昨日の夜、ライフを失くしてバーンの海に濡れていた。 今日の昼、ドローカードを元にエクゾディアを追っ

記事を読む

2015年度、遊戯王OCG検定テスト終了、自分が躓いた問題に関して

5月15日から25日の間、遊戯王OCG検定テストが実施されていました。 これに合格した人には遊

記事を読む

神子のオカルト技の格ゲーとしての斬新な仕様:東方深秘録ネタバレ

東方深秘録の製品版が出た事で様々な情報が出ました。 というわけで今回もネタバレ話です、駄目な人

記事を読む

Message

メールアドレスが公開されることはありません。

広告1

スポンサーリンク
    • 4,393,701 総合計アクセス数
PAGE TOP ↑