「T-/Command」の編集履歴(バックアップ)一覧はこちら

T-/Command - (2013/04/23 (火) 04:13:37) の最新版との変更点

追加された行は緑色になります。

削除された行は赤色になります。

戻る→[[トリガー情報の一覧]] //---- //:※解説修正情報※| //●&font(12,b){日付:修正部分の概要} //●&font(12,b){日付:修正部分の概要} // ---- //ほかページヘのリンクはLv0のみで。(Lv1~でリンクしようとすると煩雑になりそうなので) *■Command【コマンド認識】 :▼概要| [[File-/CMDファイル]]で指定したCommandに適合しているかどうかを確認。 全てのコマンド入力を認識するための記述。 Commandの中身や細かい技術については[[File-/CMDファイル]]のページを参照。 :▼情報・書式| &b(){Command = "文字列"} ;""を確認する条件式、bool型 -指定したCommandの入力が成立しているなら1を、それ以外で0を返す。 -入力後、成立状態はbuffer.timeの分持続する。 -「=」を''「!=」にすると入力がないことを確認できる。'' --文字列型としては珍しく不等号式が使える。 -文字列のCommandが存在しない場合''エラーで落ちる'' --''※なお"文字列"部分は大文字小文字の区別を行う。'' --誤って存在しない大文字小文字の組み合わせを使用するとエラーで落ちる。 ---- **■Lv1-記述例・補足・注意点 :記述例| [State -1, p] Type = ChangeState TriggerAll = Statetype != A TriggerAll = Command = "x" Trigger1 = Ctrl Trigger2 = MoveContact && StateNo = 200 Value = 200 -代表的な弱パンチ用の記述。 :補足| -なお[[SC-/Helper]]では設定のKeyCtrlを1にしなければ認識しない。 -[[T-/RoundState]]>=3、戦闘終了後はCommandを認識しない。 -攻撃によるHitPause中にCommandが成立していた場合 --HitPause最中ずっと1+本来のbuffer.Time計測は経過しない。 --HitPauseが終わった次のフレームからbuffer.Time分らしい? -[[SC-/Pause]],[[SC-/SuperPause]]による停止中のCommandは通常と同じ。 --受付は制限されないが、特殊な持続もない、とのこと //DHQ氏のブログ「http://dhq.blog137.fc2.com/blog-entry-19.html」より :MUGEN側のAI補足| -MUGEN側のAIはランダムにCommandを成立させる。 --MUGEN側のAIでも一応基本コマンドとそれによるCommand判定が行われている。 -基本コマンドは単一の方向キー・ボタンキーのこと -KeyCtrl=1設定の[[SC-/Helper]]のMUGEN側のAI入力は、 --Helperと本体で別々の基本コマンドの入力を行う。 --基本コマンド以外のコマンドは本体と同期している。 --同じ本体を持つHelper同士の基本コマンド自体は全て同一のはず。。 :注意点| -[[ステート奪取]]されている場合、認識するCommandが変化する。 --そのため、不可能なコマンドですら成立することがある。 ---内容的には適応された相手側のn個目のコマンドに対応する&br()自分側のn個目のコマンドが入力状態になる ---''らしい''。 ---例:自分側3個目に昇龍、相手側3番目に波動の場合&br()ステートを奪われている最中に''波動を入力で、昇龍を認識してしまう''。 ---ただ「recovery」は例外的に自分側の通りみたい? ---なお[[リダイレクト]]で相手のCommandを参照する場合も&br()自分側のn個目のコマンドを記述している場合、&br()相手のn個目にあるコマンド入力に対して反応する。 ----同キャラなら同じコマンド。自身の[[SC-/Helper]]なら問題ない。 -上記の理由により、&b(){[[-2ステート>常時監視ステート]]にCommandを配置してはならない。} --同様理由で&b(){HelperからRoot,[[リダイレクト]]でのCommandを認識もしてはいけない。} --また奪ったステートをHitPause最中に返すことも危ない。 --あとbuffer.timeは奪った側の基準とのことで&br()buffertimeを2以上にすると暴発する危険がハネ上がる。 --Enemy,Command="holddown"なども不可。 --仕組みについての考察は後述。 -[[File-/CMDファイル]]のページも参照 -なおトリガー情報としては処理がやや重め。 --1フレームに数万回レベルで読み込みを行うと処理落ちが発生する。 :AI制作時の注意点| -AI用にはAI起動時に不可能Command認識でのAI起動をする程度。 --起動後はCommandを基本的に無視する。 -[[ステートを奪われている状態>ステート奪取]]で特定のCommandを要求されても対応できない。 --Recoverに限り、AI専用の仕様にすることで確実な最速反応も可能だが。 --その場合、止めること・ディレイすることは不可能。 #region(''■''[[ステート奪取]]・[[リダイレクト]]''に対応しないCommand処理の推測'') **Command処理の推測 コマンド成立情報は基本&b(){[[File-/CMDファイル]]の記述順でコマンド成立状態のフラグ}を保存している。 つまりそれは基本「××のコマンドが成立しているかどうか」ではなく、 ''「n番目のコマンドが成立しているかどうか」''でフラグ管理されているということ。 そして情報のCommandでは''対応するn番目のコマンド情報が成立しているかどうか''を確認する。 -例えば''10番目に"hadou_a"''というコマンドの定義が記述されている場合、 -そのキャラのCommand="hadou_a"で''10番目の情報を確認''する処理を行い、 -''10番目のコマンド定義(この場合"hadou_a")が成立すると10番目の成立フラグが立つ''わけである。 [[リダイレクト]]で対応するn番目のコマンドを認識するのはそういう理由。 [[ステート奪取]]をされた場合、''コマンド定義自体がほぼ全て相手側の定義に差し替わる''ため、 単純に対応するn番目の情報を確認するCommand条件が暴発してしまうわけである。 :例外のrecovery| Command="recovery"([[空中受身用コマンド>Commonステート]])だけは 例外として''定義の記述順に関わらずrecoveryのコマンドで認識を行う''上、 恐らく''常にキャラ側の定義で処理を行う''みたい。多分。 他の必須コマンドは確かめていないが、aやholddownは対応していない模様。 #endregion //---- //**■Lv2-細かいバグ回避 //注意点で書いたことを回避したい場合用。 //---- //#region(■Lv3-細かい応用) //**■Lv3-細かい応用 //他の記述と組み合わせて使用する関係。 //#endregion //---- //#region(■Lv4-バグ利用) //**■Lv-4-バグ応用 //あやしい仕様を活用する関係。 //#endregion //---- //**コメント //細かい話し合い・確認が必要な場合に開放しましょう。 //#comment() //---- //:※解説修正情報※古い履歴| //●&font(12,b){日付:修正部分の概要} // ----
戻る→[[トリガー情報の一覧]] //---- //:※解説修正情報※| //●&font(12,b){日付:修正部分の概要} //●&font(12,b){日付:修正部分の概要} // ---- //ほかページヘのリンクはLv0のみで。(Lv1~でリンクしようとすると煩雑になりそうなので) *■Command【コマンド認識】 :▼概要| [[File-/CMDファイル]]で指定したCommandに適合しているかどうかを確認。 全てのコマンド入力を認識するための記述。 Commandの中身や細かい技術については[[File-/CMDファイル]]のページを参照。 :▼情報・書式| &b(){Command = "文字列"} ;""を確認する条件式、bool型 -指定したCommandの入力が成立しているなら1を、それ以外で0を返す。 -入力後、成立状態はbuffer.timeの分持続する。 -「=」を''「!=」にすると入力がないことを確認できる。'' --文字列型としては珍しく不等号式が使える。 -文字列のCommandが存在しない場合''エラーで落ちる'' --''※なお"文字列"部分は大文字小文字の区別を行う。'' --誤って存在しない大文字小文字の組み合わせを使用するとエラーで落ちる。 ---- **■Lv1-記述例・補足・注意点 :記述例| [State -1, p] Type = ChangeState TriggerAll = Statetype != A TriggerAll = Command = "x" Trigger1 = Ctrl Trigger2 = MoveContact && StateNo = 200 Value = 200 -代表的な弱パンチ用の記述。 :補足| -なお[[SC-/Helper]]では設定のKeyCtrlを1にしなければ認識しない。 -[[T-/RoundState]]>=3、戦闘終了後はCommandを認識しない。 -攻撃によるHitPause中にCommandが成立していた場合 --HitPause最中ずっと1+本来のbuffer.Time計測は経過しない。 --HitPauseが終わった次のフレームからbuffer.Time分らしい? -[[SC-/Pause]],[[SC-/SuperPause]]による停止中のCommandは通常と同じ。 --受付は制限されないが、特殊な持続もない、とのこと //DHQ氏のブログ「http://dhq.blog137.fc2.com/blog-entry-19.html」より :MUGEN側のAI補足| -MUGEN側のAIはランダムにCommandを成立させる。 --MUGEN側のAIでも一応基本コマンドとそれによるCommand判定が行われている。 -基本コマンドは単一の方向キー・ボタンキーのこと -KeyCtrl=1設定の[[SC-/Helper]]のMUGEN側のAI入力は、 --Helperと本体で別々の基本コマンドの入力を行う。 --基本コマンド以外のコマンドは本体と同期している。 --同じ本体を持つHelper同士の基本コマンド自体は全て同一のはず。。 :注意点| -攻撃によるPauseTime(ヒットポーズ)中はCommandの持続する。 --そのため屈み攻撃→立ち攻撃などの連携がしずらくなる。 --ヒットまでに放さないとCommand="holddown"がPauseTime中持続してしまい、&br()キー自体を放しても内部的に↓入れ攻撃と判定されてしまう。 --対処法については[[File-/CMDファイル]]のページを参照。 -[[ステート奪取]]されている場合、認識するCommandが変化する。 --そのため、不可能なコマンドですら成立することがある。 ---内容的には適応された相手側のn個目のコマンドに対応する&br()自分側のn個目のコマンドが入力状態になる ---''らしい''。 ---例:自分側3個目に昇龍、相手側3番目に波動の場合&br()ステートを奪われている最中に''波動を入力で、昇龍を認識してしまう''。 ---ただ「recovery」は例外的に自分側の通りみたい? ---なお[[リダイレクト]]で相手のCommandを参照する場合も&br()自分側のn個目のコマンドを記述している場合、&br()相手のn個目にあるコマンド入力に対して反応する。 ----同キャラなら同じコマンド。自身の[[SC-/Helper]]なら問題ない。 -上記の理由により、&b(){[[-2ステート>常時監視ステート]]にCommandを配置してはならない。} --同様理由で&b(){HelperからRoot,[[リダイレクト]]でのCommandを認識もしてはいけない。} --また奪ったステートをHitPause最中に返すことも危ない。 --あとbuffer.timeは奪った側の基準とのことで&br()buffertimeを2以上にすると暴発する危険がハネ上がる。 --Enemy,Command="holddown"なども不可。 --仕組みについての考察は後述。 -[[File-/CMDファイル]]のページも参照 -なおトリガー情報としては処理がやや重め。 --1フレームに数万回レベルで読み込みを行うと処理落ちが発生する。 :AI制作時の注意点| -AI用にはAI起動時に不可能Command認識でのAI起動をする程度。 --起動後はCommandを基本的に無視する。 -[[ステートを奪われている状態>ステート奪取]]で特定のCommandを要求されても対応できない。 --Recoverに限り、AI専用の仕様にすることで確実な最速反応も可能だが。 --その場合、止めること・ディレイすることは不可能。 #region(''■''[[ステート奪取]]・[[リダイレクト]]''に対応しないCommand処理の推測'') **Command処理の推測 コマンド成立情報は基本&b(){[[File-/CMDファイル]]の記述順でコマンド成立状態のフラグ}を保存している。 つまりそれは基本「××のコマンドが成立しているかどうか」ではなく、 ''「n番目のコマンドが成立しているかどうか」''でフラグ管理されているということ。 そして情報のCommandでは''対応するn番目のコマンド情報が成立しているかどうか''を確認する。 -例えば''10番目に"hadou_a"''というコマンドの定義が記述されている場合、 -そのキャラのCommand="hadou_a"で''10番目の情報を確認''する処理を行い、 -''10番目のコマンド定義(この場合"hadou_a")が成立すると10番目の成立フラグが立つ''わけである。 [[リダイレクト]]で対応するn番目のコマンドを認識するのはそういう理由。 [[ステート奪取]]をされた場合、''コマンド定義自体がほぼ全て相手側の定義に差し替わる''ため、 単純に対応するn番目の情報を確認するCommand条件が暴発してしまうわけである。 なので[[-2ステート>常時監視ステート]]にCommand条件を置いたり、 [[SC-/Helper]]から[[リダイレクト]]でCommandを参照したりしないこと。 :例外のrecovery| Command="recovery"([[空中受身用コマンド>Commonステート]])だけは 例外として''定義の記述順に関わらずrecoveryのコマンドで認識を行う''上、 恐らく''常にキャラ側の定義で処理を行う''みたい。多分。 他の必須コマンドは確かめていないが、aやholddownは対応していない模様。 #endregion //---- //**■Lv2-細かいバグ回避 //注意点で書いたことを回避したい場合用。 //---- //#region(■Lv3-細かい応用) //**■Lv3-細かい応用 //他の記述と組み合わせて使用する関係。 //#endregion //---- //#region(■Lv4-バグ利用) //**■Lv-4-バグ応用 //あやしい仕様を活用する関係。 //#endregion //---- //**コメント //細かい話し合い・確認が必要な場合に開放しましょう。 //#comment() //---- //:※解説修正情報※古い履歴| //●&font(12,b){日付:修正部分の概要} // ----

表示オプション

横に並べて表示:
変化行の前後のみ表示: