常時AI起動の方法と通常/常時の違いについて
まずは、常時軌道の方法。これは至って簡単である。
以下のように、[statedef -1] or [statedef -3] 直下に以下を記入するだけ
[State -3, AIフラグ]
type = varset
trigger1 = 1
var(59) = 1
↑ここの数字は、AIフラグ用の変数の数字
AILvはAI作者のRead meを熟読
あるいは、既に記述されている[State -3, AIフラグ]のステコンに
trigger59 = 1
↑(ひとつ前のトリガーの数字)+1
を追加する
※[State -3, AIフラグ]の「AIフラグ」の部分は違ったり、なかったりする場合あり。
その時は根気で探そう。多くのchangestateに同じ変数がある+commandがない場合はAI用変数の可能性が高い。
※製作者が既に追加していたり、常時起動の設定がある場合もあるため、要チェック
(根本は上と一緒だが
次は、通常起動と常時起動の違い。
通常:起動が遅い 手動起動、手動起動前は操作ができる(VSモード時)
常時:即起動 プレイヤー操作が出来ない
※winmugenでの話です。1.0以降は新トリガーAILevelの登場により違いがなくなりました。
おそらく、これくらい。最初に書いた通り、起動速度の違いが大きいだろう。
実は、常時起動でも歩きしゃがみジャンプガードが出来てしまう場合があるが、それは別の記事で
まずは、常時軌道の方法。これは至って簡単である。
以下のように、[statedef -1] or [statedef -3] 直下に以下を記入するだけ
[State -3, AIフラグ]
type = varset
trigger1 = 1
var(59) = 1
↑ここの数字は、AIフラグ用の変数の数字
AILvはAI作者のRead meを熟読
あるいは、既に記述されている[State -3, AIフラグ]のステコンに
trigger59 = 1
↑(ひとつ前のトリガーの数字)+1
を追加する
※[State -3, AIフラグ]の「AIフラグ」の部分は違ったり、なかったりする場合あり。
その時は根気で探そう。多くのchangestateに同じ変数がある+commandがない場合はAI用変数の可能性が高い。
※製作者が既に追加していたり、常時起動の設定がある場合もあるため、要チェック
(根本は上と一緒だが
次は、通常起動と常時起動の違い。
通常:起動が遅い 手動起動、手動起動前は操作ができる(VSモード時)
常時:即起動 プレイヤー操作が出来ない
※winmugenでの話です。1.0以降は新トリガーAILevelの登場により違いがなくなりました。
おそらく、これくらい。最初に書いた通り、起動速度の違いが大きいだろう。
実は、常時起動でも歩きしゃがみジャンプガードが出来てしまう場合があるが、それは別の記事で
PR
タイトル通りです。まぁ、制作意欲が沸いた人の助けになればと
トリガー
Trigger reference
ステートコントローラー
MugenCnsWiki
無限公園前図書館
トリガー、ステートコントローラー(一部間違ってるけど)
東方夢幻館
制作全般
和訳カンフーマン
AI
夢幻回廊
平成㌢氏製作AI説明書
AIに関してはたくさんあるので、わかりやすいものを抜粋。
製作支援ツール紹介
製作支援ツール紹介
テキストエディタとか、sffツール、デバッグツールとかその他様々なことを行うのに便利なツールが紹介されているページ
トリガー
Trigger reference
ステートコントローラー
MugenCnsWiki
無限公園前図書館
トリガー、ステートコントローラー(一部間違ってるけど)
東方夢幻館
制作全般
和訳カンフーマン
AI
夢幻回廊
平成㌢氏製作AI説明書
AIに関してはたくさんあるので、わかりやすいものを抜粋。
製作支援ツール紹介
製作支援ツール紹介
テキストエディタとか、sffツール、デバッグツールとかその他様々なことを行うのに便利なツールが紹介されているページ
-3>-2>-1の順で処理されるらしい。(和訳kfmから転載
ちなみに、statedef -2は食らい状態(movetype=H)でも実行されるため、
一般的にAIはstatedef -1に書かれる。(人入力のChangeStateと同じ場所に書いた方がよい)
(-2より先に処理されるという特性を活かして-3に書くこともあるが、上級者向け)
一番効果が確認されるのは、超反応だと思われる。
いわゆる、相手の攻撃を始めたと同時に攻撃するという、
AIならではの反応なのだが、
これも、-3>-1の関係で、-1だと数フレーム遅れてしまう可能性がある。
自分で確認してないので真実かどうか断言できないのが残念だがorz
AIをヘルパーなどで制御している場合の処理時間は不明です(´・ω・`)
追記
今度はステコンの優先度。
-2>-1>-3のようです。
順番ではなく、優先度です。
つまり、同等の条件記述があったら、優先度の高い所にある方が働くというわけです。
面倒ですね。
多分大嘘。同じフレームで処理してるんだから遅くなるとかありえない。
ついでに順番通りに処理されるから優先度とかも、処理順準拠
ちなみに、statedef -2は食らい状態(movetype=H)でも実行されるため、
一般的にAIはstatedef -1に書かれる。(人入力のChangeStateと同じ場所に書いた方がよい)
(-2より先に処理されるという特性を活かして-3に書くこともあるが、上級者向け)
一番効果が確認されるのは、超反応だと思われる。
いわゆる、相手の攻撃を始めたと同時に攻撃するという、
AIならではの反応なのだが、
これも、-3>-1の関係で、-1だと数フレーム遅れてしまう可能性がある。
自分で確認してないので真実かどうか断言できないのが残念だがorz
AIをヘルパーなどで制御している場合の処理時間は不明です(´・ω・`)
追記
今度はステコンの優先度。
-2>-1>-3のようです。
順番ではなく、優先度です。
つまり、同等の条件記述があったら、優先度の高い所にある方が働くというわけです。
面倒ですね。
多分大嘘。同じフレームで処理してるんだから遅くなるとかありえない。
ついでに順番通りに処理されるから優先度とかも、処理順準拠
常時ステート(-1,-2,-3)でBGMストップ(AssertSpecialのNoMusic)を使うと、
ポーズ、及びスーパーポーズでこれが利かなくなるバグがある。
うーん、なんでだろ?
ポーズ、スーパーポーズ中には常時監視ステートも止まるってことなのかな?
判明しました。
AssertSpecialではsupermovetime/pausemovetimeを記述しても無視されるようです。
チェッカーで調べたら出てきた(・ω・`)
なので、常時BGMを止めようと思ったら、ヘルパーでの実行がオススメ。
ちなみに、ヘルパー使う時には、
[state ]
type=helper
trigger1=!numhelper(9999)
id=9999
stateno=9999
supermovetime=999999 }この2つの記述を忘れないように、
pausemovetime=999999 }ちなみに数字は、このくらいが丁度良いかと
ちなみに、この2つの記述は、スーパーポーズ・ポーズ中でも動くことが出来る時間をしてしています。
なので、小さすぎると途中で止まるし、大きすぎてもオーバーフローしてしまっておかしくなるので注意。
ポーズ、及びスーパーポーズでこれが利かなくなるバグがある。
ポーズ、スーパーポーズ中には常時監視ステートも止まるってことなのかな?
判明しました。
AssertSpecialではsupermovetime/pausemovetimeを記述しても無視されるようです。
チェッカーで調べたら出てきた(・ω・`)
なので、常時BGMを止めようと思ったら、ヘルパーでの実行がオススメ。
ちなみに、ヘルパー使う時には、
[state ]
type=helper
trigger1=!numhelper(9999)
id=9999
stateno=9999
supermovetime=999999 }この2つの記述を忘れないように、
pausemovetime=999999 }ちなみに数字は、このくらいが丁度良いかと
ちなみに、この2つの記述は、スーパーポーズ・ポーズ中でも動くことが出来る時間をしてしています。
なので、小さすぎると途中で止まるし、大きすぎてもオーバーフローしてしまっておかしくなるので注意。
某wikiにも書いてるものだけど、別サイトで少し違う記述をしているところがあったので、一応。
自分も確認済。
サウザーの仕様
サウザーの近Cにはグレイブ属性が付加されているので、その後のジャンプから必殺技を出すと星が取れる。
ちなみに、近C>槍または衝破風で星が取れるのは、仕込みと言うもので、槍のコマンドの前か後に上方向の入力をしているため。
コマンドで書くと、
投槍 62369AorC(一例)
極星十字衝破風 2147A(一例)
南斗爆星波の攻撃で、腕の部分(中段判定)と飛び道具の部分の2つの攻撃判定があり、
それぞれ別の技として判定される。グレ爆で星が2個取れるのはこのおかげ。
mugen
Persistentについて
常時ステート([statedef -1],[statedef -2],[statedef -3])内では、
Persistentは記述しても無視され、常にPersistent=1の状態になる。
理由は知りません(汗
自分も確認済。
サウザーの仕様
サウザーの近Cにはグレイブ属性が付加されているので、その後のジャンプから必殺技を出すと星が取れる。
ちなみに、近C>槍または衝破風で星が取れるのは、仕込みと言うもので、槍のコマンドの前か後に上方向の入力をしているため。
コマンドで書くと、
投槍 62369AorC(一例)
極星十字衝破風 2147A(一例)
南斗爆星波の攻撃で、腕の部分(中段判定)と飛び道具の部分の2つの攻撃判定があり、
それぞれ別の技として判定される。グレ爆で星が2個取れるのはこのおかげ。
mugen
Persistentについて
常時ステート([statedef -1],[statedef -2],[statedef -3])内では、
Persistentは記述しても無視され、常にPersistent=1の状態になる。
理由は知りません(汗
<<
前のページ