|
2012/04/16(月)
もっちりした食感が自慢の砂鉄
|
|
|
1:50
もくじ ・AI起動の管理が酷い
AI常時起動でしかテストしてなかったから気づかなかったんだけど、 AI起動関連の記述がぐちゅぐちゅだった。
発端は、穴クアをコンフィグでAIレベル0にしてWatchモードで観戦した場合、 PAUSEが暴発してしまっていたこと。 また、PAUSEが暴発しすぎる件について、ラウンド2になるとAIが0で固定されてしまうことも分かった。
冷静に見直してみよう。
■穴クアのAI起動関連の記述
@コンフィグ用ヘルパー発生 triggerall = NumHelper(10000) =0 trigger1 = roundstate = 0 trigger2 = RoundsExisted = 0 trigger2 = TeamMode = Turns trigger2 = RoundNo > 0
「コンフィグ用ヘルパーが居ないとき」を大前提として、 1:ラウンド開始前 2:チームバトルで、自分の1回目の出番のとき に、コンフィグ用ヘルパーが発生している。
コンフィグ用ヘルパーは、Var(59)を、常に指定した値に設定している。 今回は、この記述により、AIはラウンド開始時点で0になっている。
@AIの二重起動の予防
Var(59)が1以上になると、Var(49)が自動的に1になる。
@AIの自動起動
triggerall = var(59) = 0 triggerall = var(49) = 0 triggerall = RoundState = [1,2] trigger1 = Command = "AI0" trigger2 = Command = "AI1" trigger3 = Command = "AI2" : : trigger49 = Command = "AI48" trigger50 = Command = "AI49" trigger51 = Command = "AI50"
「AIが起動しておらず、かつ、AI二重起動予防スイッチも0で、イントロ中またはバトル中」を大前提として、 人間が入力不可能なコマンドが入力されたとき、Var(59)が1〜100になる。
@イニシャライズ
ラウンドコール中の挙動。 何も記述をしていなければ、MUGENのデフォルトの記述に従い 「自分が初めて登場したラウンドのとき」という条件で、Varが全て0になる。
その後、ラウンド1ならイントロのポーズ、それ以外なら立ちポーズになる。
この記述が曲者で、この記述のせいで、チームバトルでラウンド2以降に登場した場合、 イントロ開始前にコンフィグ用ヘルパーが発生してAIが起動するものの 「自分が初めて登場したラウンド」なので、AIが即座に0に戻されてしまう。
穴クアは記述を変更し、Varは全て、0にならずに引き継ぐ。
■以上を踏まえて、AIがどのように起動しているかを確認
@コンフィグでAIを75としたとき
ラウンド1で、コンフィグ用ヘルパーが発生。 AIレベル75で対戦が行われる。
ラウンド2に入る時も、コンフィグ用ヘルパーが発生。 AIレベル75で対戦が行われる。
@コンフィグでAIを0としたとき
ラウンド1で、コンフィグ用ヘルパーが発生。 AIレベル0で対戦が始まり、ランダムに1〜100のAIが起動する。 25が起動したとして、勝利か敗北でラウンド2へ移行する。
ラウンド2に入る時もコンフィグ用ヘルパーが発生。 AIレベルは0に戻る。 しかし、AIの二重起動予防スイッチは1のままなので、「ランダムでAIが起動する記述」が無効になる。 結果、AIは自動で起動もせず、完全にランダムのまま行動するようになる。
■対策
1:ラウンド2以降もAIがランダム起動するようにする 2:ラウンド2以降、AIレベルを引き継ぐようにする
ラウンド2以降もAIがランダム起動するようにする場合、 Var(59)とVar(49)が両方0であればいい。 コンフィグ用ヘルパーに、Var(49)を0にする記述をすればいい。 しかしラウンドごとに違うAIが起動したり、ラウンド開始時の挙動が甘くなるので、あまり良くないかもしれない。
ラウンド2以降、AIレベルを引き継ぐようにする。 このほうがいいだろう。
この場合の対策は、コンフィグのAI起動の記述に 「Var(59)が0のとき」という条件をつければいい。
AIが起動してようがしてまいが設定値に固定するのではなく、 AIが起動していないときだけオプションが適用されるのだ。
正直このAI起動絡みの記述は昔から問題があったんだよ。 多くの問題を抱えていたんだ。 チームバトルになるとAIが起動しなかったり。
このへんを改めて見直す必要があるかもしれない。 薙も穴こんも。
>2012/04/16 0:24
不合格かもしんない・・・;
・
|
|
|
|