AIの起動させる方法について質問です。
とあるキャラのAIの起動方法がわかりません。とある"キャラA"はAI起動の記述らしきものが下記のものしかなく("AI**"や"CPU**"や"command**"の集まりといった記述がなく、AI起動の説明などもない) (例1) [State -1, AI Activation] type = varset triggerall = AILevel > 0 triggerall = (roundstate = 2) && (var(59) = 0) trigger1 = Random <= (ifelse(AILevel =1,40,(AILevel-2)*100)) trigger2 = 1 v = 59 value = 1 [State -1, AI Deactivation] type = varset triggerall = AIlevel < 8 triggerall = var(59) = 1 trigger1 = Random > ((AILevel-2)*100) trigger2 = roundstate != 2 v = 59 value = 0 (例2) [State -1, AI ON] Type = VarSet triggerall = AILevel > 0 triggerall = Var(59) < 1 triggerall = RoundState=2 & Ctrl trigger1 = 1 v = 59 value= Helper(9190),Var(59) Ignorehitpause=1 [State -1, AI ON] Type = VarSet triggerall = AILevel > 0 triggerall = Var(59) <= 1 triggerall = RoundState=2 & Ctrl trigger1 = PalNo = 12 v = 59 value= 2 Ignorehitpause=1 [State -1, AI ON] Type = VarSet triggerall = AILevel > 0 triggerall = Var(59) >= 1 trigger1 = NumEnemy = 1 trigger1 = EnemyNear(Var(55)),Alive = 0 trigger2 = NumEnemy = 2 trigger2 = Enemy(0),Alive = 0 & Enemy(1),Alive = 0 trigger3 = RoundState = 3 v = 59 value= 0 Ignorehitpause=1 といった記述をつかってるキャラはMUGENウィキや他のキャラの記述の参考だけではAIが起動せず、これ以上はお手上げの状態です。(arcadeモードではしっかり動く)どういった記述に書き換えればいいのかぜひ知恵をお貸しください。 追記。AI停止の記述をコメントアウトしてAIが起動する場合もあるのですが、AIが抜けたかのような動きをする。キャラが分身したりバグります。
正直、とあるキャラの記述の一部をみてもどうなってるのか
わからんのですが(汗) 伊吹川だったら、こんな感じで無理矢理AIを起動させて見ます。 (例1) [State -1, AI Activation] type = varset triggerall = AILevel > 0 triggerall = (roundstate = 2) && (var(59) = 0) ;trigger1 = Random <= (ifelse(AILevel =1,40,(AILevel-2)*100)) ;trigger2 = 1 trigger1 = AILevel v = 59 value = 1 [State -1, AI Deactivation] type = null;varset triggerall = AIlevel < 8 triggerall = var(59) = 1 trigger1 = Random > ((AILevel-2)*100) trigger2 = roundstate != 2 v = 59 value = 0 (例2) [State -1, AI ON] Type = null;VarSet triggerall = AILevel > 0 triggerall = Var(59) < 1 triggerall = RoundState=2 & Ctrl trigger1 = 1 v = 59 value= Helper(9190),Var(59) Ignorehitpause=1 [State -1, AI ON] Type = VarSet triggerall = AILevel > 0 triggerall = Var(59) <= 1 triggerall = RoundState=2 & Ctrl trigger1 = PalNo = 12 v = 59 value= 2 Ignorehitpause=1 [State -1, AI ON] Type = null;VarSet triggerall = AILevel > 0 triggerall = Var(59) >= 1 trigger1 = NumEnemy = 1 trigger1 = EnemyNear(Var(55)),Alive = 0 trigger2 = NumEnemy = 2 trigger2 = Enemy(0),Alive = 0 & Enemy(1),Alive = 0 trigger3 = RoundState = 3 v = 59 value= 0 Ignorehitpause=1 たぶん、変数のvar(59) =1にするのがAI起動スイッチだと 思うので、trigger1 = AILevel(キャラがAIの時、トリガーをONにする) で無理矢理、変数のvar(59)に1を代入。 nullを指定して変数のvar(59)の中を0にしそうな記述を一時停止させておく。 (変数のvar(59)にヘルパーに設定している変数var(59)の値を代入すると書かれた、value= Helper(9190),Var(59)の部分が かなり怪しいが、キャラの記述部分がこれしかないので 今回は、nullで無視する。) 変数のvar(59)に2を代入させる記述は、 trigger1 = PalNo = 12(キャラの指定カラーがP12の時) という感じで指定されてるのでボスモードカラーなのかな? とりあえずそのままに。 という感じでやってみます。 正直、動作するかはわからんです。キャラ見てみないと 違う箇所が影響してる場合もありますので。 ではでは〜。
返信ありがとうございます。
動かなくて困っていた(例1)と(例2)のキャラのDL先を載せて置きます。(黒子とBRSのAI起動の記述はcmdファイル(BRSはBRS_AI(Boomer)のファイルのcmdファイル)にあります。) 白井 黒子 hhttps://mugenarchive.com/forums/downloads.php?do=file&id=1262 ..... ndo-ohmsby ブラックロックシューター hhttps://mugenarchive.com/forums/downloads.php?do=file&id=3734 ..... fmkPk-ctAQ 黒子は伊吹川氏(以降、主呼び)の提案の方法で動かした所。ヘルパーバグを起こしつつも無事にAIが起動しました。(AIlevelをVar(59)に置き替えた所動きました) ブラックロックシューターは相変わらず、微塵にも動きません。もはや一人でAIを動かせる自信がありません。。。。。
白井 黒子とブラックロックシューターを試してみましたが動作確認してみた限り、
コレ、デフォルトでAI起動してますね。(苦笑) 一応、記述も確認しましたが、選択キャラがプレイヤー操作でない場合に AIが起動するようになっています。(AILevelを使うヤツです。) 白井 黒子は、MUGEN本体のOPTIONでDifficulty(難易度)の設定とAIレベルが連動しているようです。 Hard 8 にするとコンボとか使ってきましたので。 ブラックロックシューターは、キャラのカラーでAIレベルを指定する方式のようです。 Start + Cボタンとかで12Pカラーとか選択すれば、強いAIで戦えるみたいです。 ちなみにブラックロックシューターのAI起動は、config.cns の ヘルパー(ID 9190)でやってますね。 :::: config.cns の AI起動に関する記述部分 :::: [state 9190, 可控] type = Null triggerall = PalNo != 12 trigger1 = 1 || Var(59) := 1+1*(PalNo>=7) ;;;;;AI LEVEL ;;;AI等級 可調1~2,默認1~5P AI1 7~12P AI2 ;;;;;;;;Set the value to 1 ~ 2. Default 1~5P AILV1 7-12P AILV2 trigger1 = 1 || Var(0) := 9+9*(PalNo>=6)+27*(PalNo>=12) ;;;;;Blocking Rate 0~100 trigger1 = 1 || Var(1) := 9+9+9+9+9+9+18*(PalNo>=6)+45*(PalNo>=12) ;;;;;Shaking Guard Rate 0~100 ::::::::::::::::::::::::::::::::::::::::::::::: 記述は、Nullとなっていますので無視してよい感じがしますが、 トリガーに使われてる := という演算子が曲者です。 この演算子は、トリガーで変数を指定できる記述です。 詳しいことは調べてみてください。 記述の比較例 [State a] Type=varset Trigger1=1 var(5)=1 [State a] Type=null Trigger1=var(5):=1 上記の二つのステートコントローラーの処理は同一と言える。 どちらもVar(5)へ1を代入する記述である。 こんな感じでvarsetの代わりに使えます。 そんな感じで、ヘルパー(ID 9190)のvar(59)にキャラのカラーで数値を入力して 本体にヘルパー(ID 9190)の変数var(59)を参照させてAIを起動しているようです。 伊吹川もこんな複雑なAIは作ってないので弄くるアドバイスとかは出来ませんが デフォルトでAIは起動しているようですので、そのまま楽しめばいいんじゃないかなと思います。 ではでは〜。 |