by adi ( フォント環境:MS ゴシック 標準 サイズ10 ) ( 参考 : 平成センチ氏の記述 他多数 ) ■■■■■不可能コマンド型  ■AI用Cmd式AIフラグセット (不可能コマンド型) 1.まず、Cmdファイルに書かれている[Command]の Name="****" の種類を数えます。   このコマンド記述は最大128種類までだそうで、   その128までどの程度空きがあるのか確認します。 ( まったく同じNameであれば、いくらあっても1種類分のようで、   またまったく同じCommandでも、Nameが違えば別の種類になります。 ) 2.次に↓の方にあるAI用Cmdを、[Command]の束へ適量追加する。   たくさん空いていても50個程度あれば十分。100個は過剰。 3.下にあるAIフラグセットの記述を、追加したAI用Cmdの量に合わせて、   常時もしくは準常時監視ステートへ追加する。 ;■■■AIフラグセット(-1,-3のどちらか Statedefのすぐ下が望ましい) [State -1, AI Flag set] Type = VarSet var(*AIフラグスロット*) = 1;AIフラグ TriggerAll = !Var(*AIフラグスロット*) ;フラグが立っていない時。 TriggerAll = RoundState = 2 Trigger1 = Command = "AI01" || Command = "AI02" || Command = "AI03" || Command = "AI04" || Command = "AI05" Trigger2 = Command = "AI06" || Command = "AI07" || Command = "AI08" || Command = "AI09" || Command = "AI10" Trigger3 = Command = "AI11" || Command = "AI12" || Command = "AI13" || Command = "AI14" || Command = "AI15" Trigger4 = Command = "AI16" || Command = "AI17" || Command = "AI18" || Command = "AI19" || Command = "AI20" Trigger5 = Command = "AI21" || Command = "AI22" || Command = "AI23" || Command = "AI24" || Command = "AI25" Trigger6 = Command = "AI26" || Command = "AI27" || Command = "AI28" || Command = "AI29" || Command = "AI30" Trigger7 = Command = "AI31" || Command = "AI32" || Command = "AI33" || Command = "AI34" || Command = "AI35" Trigger8 = Command = "AI36" || Command = "AI37" || Command = "AI38" || Command = "AI39" || Command = "AI40" Trigger9 = Command = "AI41" || Command = "AI42" || Command = "AI43" || Command = "AI44" || Command = "AI45" Trigger10 = Command = "AI46" || Command = "AI47" || Command = "AI48" || Command = "AI49" || Command = "AI50" ;追加したAI用コマンドの量にあわせてトリガーの量を削る。 Trigger11 = Command = "AI51" || Command = "AI52" || Command = "AI53" || Command = "AI54" || Command = "AI55" Trigger12 = Command = "AI56" || Command = "AI57" || Command = "AI58" || Command = "AI59" || Command = "AI60" Trigger13 = Command = "AI61" || Command = "AI62" || Command = "AI63" || Command = "AI64" || Command = "AI65" Trigger14 = Command = "AI66" || Command = "AI67" || Command = "AI68" || Command = "AI69" || Command = "AI70" Trigger15 = Command = "AI71" || Command = "AI72" || Command = "AI73" || Command = "AI74" || Command = "AI75" Trigger16 = Command = "AI76" || Command = "AI77" || Command = "AI78" || Command = "AI79" || Command = "AI80" Trigger17 = Command = "AI81" || Command = "AI82" || Command = "AI83" || Command = "AI84" || Command = "AI85" Trigger18 = Command = "AI86" || Command = "AI87" || Command = "AI88" || Command = "AI89" || Command = "AI90" Trigger19 = Command = "AI91" || Command = "AI92" || Command = "AI93" || Command = "AI94" || Command = "AI95" Trigger20 = Command = "AI96" || Command = "AI97" || Command = "AI98" || Command = "AI99" || Command = "AI00" IgnoreHitPause = 1 ;以下の二つは、常時起動用。トリガーの数に**を調整 ;Trigger** = Var(*常時起動フラグ*);varコンフィグ用・常時起動条件 ;Trigger** = 0;←を1にすることで常時起動(手操作不可に) ;※-2ステートに置くとステートを奪われた際に、 ;※ボタンを1回でも押すと勝手にAIが起動するようです。なぜ一回で? ;[Command]のところに適量追加する。 ;■AI用Cmd ;1ボタンは0~1Fで可。2ボタンは2F以上必要?。3ボタンは3F以上? ;みたいなようなので、それぞれ3〜4個程度で、Time = 0。 ;フラグは確認済み。やたらめったらにボタンを連打しても立つことも無い。 ;0 [Command] Name = "AI01" Command = a, b, c Time = 0 [Command] Name = "AI02" Command = a, c, b Time = 0 [Command] Name = "AI03" Command = b, a, c Time = 0 [Command] Name = "AI04" Command = b, c, a Time = 0 [Command] Name = "AI05" Command = c, a, b Time = 0 [Command] Name = "AI06" Command = c, b, a Time = 0 [Command] Name = "AI07" Command = a, b, c, s Time = 0 [Command] Name = "AI08" Command = a, c, b, s Time = 0 [Command] Name = "AI09" Command = b, a, c, s Time = 0 [Command] Name = "AI10" Command = b, c, a, s Time = 0 ;10 [Command] Name = "AI11" Command = c, a, b, s Time = 0 [Command] Name = "AI12" Command = c, b, a, s Time = 0 [Command] Name = "AI13" Command = x, y, z Time = 0 [Command] Name = "AI14" Command = x, z, y Time = 0 [Command] Name = "AI15" Command = y, x, z Time = 0 [Command] Name = "AI16" Command = y, z, x Time = 0 [Command] Name = "AI17" Command = z, x, y Time = 0 [Command] Name = "AI18" Command = z, y, x Time = 0 [Command] Name = "AI19" Command = x, y, z, s Time = 0 [Command] Name = "AI20" Command = x, z, y, s Time = 0 ;20 [Command] Name = "AI21" Command = y, x, z, s Time = 0 [Command] Name = "AI22" Command = y, z, x, s Time = 0 [Command] Name = "AI23" Command = z, x, y, s Time = 0 [Command] Name = "AI24" Command = z, y, x, s Time = 0 [Command] Name = "AI25" Command = a, b, c, x Time = 0 [Command] Name = "AI26" Command = a, c, b, x Time = 0 [Command] Name = "AI27" Command = b, a, c, x Time = 0 [Command] Name = "AI28" Command = b, c, a, x Time = 0 [Command] Name = "AI29" Command = c, a, b, x Time = 0 [Command] Name = "AI30" Command = c, b, a, x Time = 0 ;30 [Command] Name = "AI31" Command = a, b, c, s, x Time = 0 [Command] Name = "AI32" Command = a, c, b, s, x Time = 0 [Command] Name = "AI33" Command = b, a, c, s, x Time = 0 [Command] Name = "AI34" Command = b, c, a, s, x Time = 0 [Command] Name = "AI35" Command = c, a, b, s, x Time = 0 [Command] Name = "AI36" Command = c, b, a, s, x Time = 0 [Command] Name = "AI37" Command = x, y, z, x Time = 0 [Command] Name = "AI38" Command = x, z, y, x Time = 0 [Command] Name = "AI39" Command = y, x, z, x Time = 0 [Command] Name = "AI40" Command = y, z, x, x Time = 0 ;40 [Command] Name = "AI41" Command = z, x, y, x Time = 0 [Command] Name = "AI42" Command = z, y, x, x Time = 0 [Command] Name = "AI43" Command = x, y, z, s, x Time = 0 [Command] Name = "AI44" Command = x, z, y, s, x Time = 0 [Command] Name = "AI45" Command = y, x, z, s, x Time = 0 [Command] Name = "AI46" Command = y, z, x, s, x Time = 0 [Command] Name = "AI47" Command = z, x, y, s, x Time = 0 [Command] Name = "AI48" Command = z, y, x, s, x Time = 0 [Command] Name = "AI49" Command = z, y, x, s, y Time = 0 [Command] Name = "AI50" Command = z, y, x, s, z Time = 0 ;50■このくらいあれば十分 [Command] Name = "AI51" Command = U, U, s Time = 0 [Command] Name = "AI52" Command = U, F, s Time = 0 [Command] Name = "AI53" Command = U, D, s Time = 0 [Command] Name = "AI54" Command = U, B, s Time = 0 [Command] Name = "AI55" Command = U, a, s Time = 0 [Command] Name = "AI56" Command = U, b, s Time = 0 [Command] Name = "AI57" Command = U, c, s Time = 0 [Command] Name = "AI58" Command = U, x, s Time = 0 [Command] Name = "AI59" Command = U, y, s Time = 0 [Command] Name = "AI60" Command = U, z, s Time = 0 ;60 [Command] Name = "AI61" Command = F, U, s Time = 0 [Command] Name = "AI62" Command = F, F, s Time = 0 [Command] Name = "AI63" Command = F, D, s Time = 0 [Command] Name = "AI64" Command = F, B, s Time = 0 [Command] Name = "AI65" Command = F, a, s Time = 0 [Command] Name = "AI66" Command = F, b, s Time = 0 [Command] Name = "AI67" Command = F, c, s Time = 0 [Command] Name = "AI68" Command = F, x, s Time = 0 [Command] Name = "AI69" Command = F, y, s Time = 0 [Command] Name = "AI70" Command = F, z, s Time = 0 ;70 [Command] Name = "AI71" Command = D, U, s Time = 0 [Command] Name = "AI72" Command = D, F, s Time = 0 [Command] Name = "AI73" Command = D, D, s Time = 0 [Command] Name = "AI74" Command = D, B, s Time = 0 [Command] Name = "AI75" Command = D, a, s Time = 0 [Command] Name = "AI76" Command = D, b, s Time = 0 [Command] Name = "AI77" Command = D, c, s Time = 0 [Command] Name = "AI78" Command = D, x, s Time = 0 [Command] Name = "AI79" Command = D, y, s Time = 0 [Command] Name = "AI80" Command = D, z, s Time = 0 ;80 [Command] Name = "AI81" Command = s, U, s Time = 0 [Command] Name = "AI82" Command = s, F, s Time = 0 [Command] Name = "AI83" Command = s, D, s Time = 0 [Command] Name = "AI84" Command = s, B, s Time = 0 [Command] Name = "AI85" Command = s, a, s Time = 0 [Command] Name = "AI86" Command = s, b, s Time = 0 [Command] Name = "AI87" Command = s, c, s Time = 0 [Command] Name = "AI88" Command = s, x, s Time = 0 [Command] Name = "AI89" Command = s, y, s Time = 0 [Command] Name = "AI90" Command = s, z, s Time = 0 ;90 [Command] Name = "AI91" Command = s+U, U, s Time = 0 [Command] Name = "AI92" Command = s+U, F, s Time = 0 [Command] Name = "AI93" Command = s+U, D, s Time = 0 [Command] Name = "AI94" Command = s+U, B, s Time = 0 [Command] Name = "AI95" Command = s+U, a, s Time = 0 [Command] Name = "AI96" Command = s+U, b, s Time = 0 [Command] Name = "AI97" Command = s+U, c, s Time = 0 [Command] Name = "AI98" Command = s+U, x, s Time = 0 [Command] Name = "AI99" Command = s+U, y, s Time = 0 [Command] Name = "AI00" Command = s+U, z, s Time = 0 ■■■■■コマンド差異確認型 ( クロガネ氏の記述等を参考 )  Commandの空き容量が少ない場合に行う苦肉の策。  起動速度は不可能コマンド型 25/128 個よりも遅め。10/128個よりは早い  これでも11〜15個は空きCommandが必要。  例では一応基本操作Commandに限定していますが、全てのCommandが使えるかも。 ;■■■AIフラグセット(-1,-3のどちらか Statedefのすぐ下が望ましい) [State -1, AI Flag set] Type = VarSet var(*AIフラグスロット*) = 1;AIフラグ TriggerAll = !Var(*AIフラグスロット*) ;フラグが立っていない時。 TriggerAll = RoundState = 2 Trigger1 = ( Command = "AI-a" ) ^^ ( Command = "a" ) Trigger2 = ( Command = "AI-b" ) ^^ ( Command = "b" ) Trigger3 = ( Command = "AI-c" ) ^^ ( Command = "c" ) Trigger4 = ( Command = "AI-x" ) ^^ ( Command = "x" ) Trigger5 = ( Command = "AI-y" ) ^^ ( Command = "y" ) Trigger6 = ( Command = "AI-z" ) ^^ ( Command = "z" ) Trigger7 = ( Command = "AI-st") ^^ ( Command = "start" ) Trigger8 = ( Command = "AI-up") ^^ ( Command = "up" ) Trigger9 = ( Command = "AI-do") ^^ ( Command = "down" ) Trigger10= ( Command = "AI-fw") ^^ ( Command = "fwd" ) Trigger11= ( Command = "AI-ba") ^^ ( Command = "back" ) Ignorehitpause = 1 ;以下の二つは、常時起動用。 ;Trigger12 = Var(*常時起動フラグ*);varコンフィグ用・常時起動条件 ;Trigger13 = 0;←を1にすることで常時起動(手操作不可に) ;Commandの性質上、-2の場合暴発します。 ;ボタン判定 7個 (※対応するCommand記述に合わせる) [Command] name = "AI-a" command = a time = 1 [Command] name = "AI-b" command = b time = 1 [Command] name = "AI-c" command = c time = 1 [Command] name = "AI-x" command = x time = 1 [Command] name = "AI-y" command = y time = 1 [Command] name = "AI-z" command = z time = 1 [Command] name = "AI-st" command = s time = 1 ;レバー判定 4個 [Command] name = "AI-fw"; command = F time = 1 [Command] name = "AI-ba"; command = B time = 1 [Command] name = "AI-up" ; command = U time = 1 [Command] name = "AI-do"; command = D time = 1 ;本体用ボタン判定 7個(大抵最初からある) [Command] name = "a" command = a time = 1 [Command] name = "b" command = b time = 1 [Command] name = "c" command = c time = 1 [Command] name = "x" command = x time = 1 [Command] name = "y" command = y time = 1 [Command] name = "z" command = z time = 1 [Command] name = "start" command = s time = 1 ;本体用レバー判定 4個(無い場合は追加する) [Command] name = "fwd"; command = F time = 1 [Command] name = "back"; command = B time = 1 [Command] name = "up" ; command = U time = 1 [Command] name = "down"; command = D time = 1 ■原理  MUGEN側のCPUのAIは、Commandを無作為に選んで動作をするそうです。  その為、全く同じ条件のCommandが別々にCommandが選ばれるということもあります。  手操作では全く同じ操作ですので、別々に選ぶことは不可能ですので   こういうものが使えるというわけです。 ■違うもの。  Helperで用いているのが平成センチ氏のヘルパー式のAI起動記述は   Helperと本体との差異を感知して使っていますが、原理はやや異なります。  KeyCtrlのあるHelperは本体のCommandと違う動作をするため、それを感知する方式。  「 a b c x y z start fwd back up down 」の11種類が、   その本体とはことなる制御の対象らしいです。