このサイトはMUGEN講座のサイトです。
無限高校
HOME > 雑談掲示板

0591119
雑談掲示板
[トップに戻る] [アルバム] [留意事項] [ワード検索] [過去ログ] [旧過去ログ] [管理用]

[ 指定コメント (No.7153) の関連スレッドを表示しています。 ]

2年以上わからずに困っています 投稿者:解決しなくてずっとモヤモヤしてる 投稿日:2021/05/30(Sun) 14:28:15 No.7147
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が抜けたかのような動きをする。キャラが分身したりバグります。

Re: 2年以上わからずに困ってい... 投稿者:伊吹川 投稿日:2021/05/30(Sun) 23:36:33 No.7149
正直、とあるキャラの記述の一部をみてもどうなってるのか
わからんのですが(汗)

伊吹川だったら、こんな感じで無理矢理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の時)
という感じで指定されてるのでボスモードカラーなのかな?
とりあえずそのままに。

という感じでやってみます。

正直、動作するかはわからんです。キャラ見てみないと
違う箇所が影響してる場合もありますので。
ではでは〜。

Re: 試してみました 投稿者:解決しなくてずっとモヤモヤしてる 投稿日:2021/06/01(Tue) 21:54:16 No.7151
返信ありがとうございます。
動かなくて困っていた(例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を動かせる自信がありません。。。。。
 

Re: 2年以上わからずに困ってい... 投稿者:伊吹川 投稿日:2021/06/03(Thu) 00:18:06 No.7153
白井 黒子とブラックロックシューターを試してみましたが動作確認してみた限り、
コレ、デフォルトで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は起動しているようですので、そのまま楽しめばいいんじゃないかなと思います。

ではでは〜。

処理 記事No 削除キー

- Joyful Note Antispam Version -