「リダイレクト」の編集履歴(バックアップ)一覧はこちら

リダイレクト - (2013/02/06 (水) 12:52:58) の最新版との変更点

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

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

---- *■リダイレクトについて ---- :※解説修正情報※| ●&font(12,b){2013-01-15:Targetのリダイレクト先について修正。} ●&font(12,b){2013-01-14:Helperのリダイレクト先について修正。} ---- [[トリガー情報>トリガー情報の一覧]]の前につけることで''指定した相手のトリガー情報''を利用できる。 P2系との違いの解説も。 :リダイレクトの種類| -''大原則'' --リダイレクトの相手が存在しない場合、条件は上手く処理されない。(0)扱い? --[[デバッグ]]表示時エラーが流れるため 必ずリダイレクト相手を確認してから使用すること。 ---Triggerは一行ごとの参照のため、確認は前の行でNumXXX>0~1を行うこと。 --リダイレクトのリダイレクトはできない。Enemy,Helper,XXXは不可。 -ヘルパー専用 --''Parent,'':自分を射出したキャラを参照。Helperからの射出ならその親Helperを。 ---親Helperが既に消失し、存在しない場合エラーが流れるため注意。 --''Root,'':自分を管理しているプレイヤーキャラを参照。Helperからの射出でも本体を。 -ヘルパーを --''Helper(ヘルパーID).'':指定したヘルパーIDを持つHelperを参照。 ---NumHelper(ヘルパーID)>0で数を確認してから使うこと。 ---参照できるのは「自分側のHelper」に限る。 ----一応、自分のHelperから他の自分のHelperを参照することは可能。 ---なお該当Helperが複数ある場合は、その中で最も[[スロットID]]の若いHelperを参照する。 -味方を --''Partner.'':タッグ時のパートナーを参照。 ---NumPartner>0を確認して使うこと。 -相手を --''Enemy.'':相手を参照。()省略時は(0)と同様。 ---''Enemy(0).'':相手の中の1人目を参照。 ---''Enemy(1).'':相手の中の2人目を参照。 --''EnemyNear.'':近くの相手を参照。()省略時は(0)と同様。 ---''EnemyNear(0).'':相手の中で(X軸基準の)一番近い相手を参照。 ---''EnemyNEar(1).'':相手の中で(X軸基準の)二番目に近い相手を参照。 --(1)系の二人目認識はNumEnemy>1を確認して使うこと。 ---(0)用のNumEnemy>0は気にする必要はない。 -[[Target]]を 詳しい仕様は該当ページを参照 --''Target,'':攻撃を当てた相手を参照。 ---''Target(ヒットID),'':特定の攻撃を当てた相手を参照。 --NumTarget>0、NumTarget(ヒットID)>0を確認して使うこと。 --該当するTargetが複数の場合 ---参照先は基本「先にTargetを取った相手」を参照する。 ---同時ヒットの場合''攻撃を当てた時点のGameTimeの奇数偶数''で&br()&b(){[[スロットID]]の若い方・大きい方どちらか}が決まる。 ---同時時:[[GetHitVar(Damage)>T-/GetHitVar()]]反応時点で偶数ならスロットIDの若い方。奇数ならスロットIDの大きい方。 ---同時の対象が3体以上いる場合、スロットIDの一番小さい方・一番大きい方以外は参照されない。 ---[[T-/MoveHit]]/[[T-/MoveGuarded]]などヒット・ガードで処理が異なるものすべて、&br()''Target,で参照する側を基本として、もう片方側は反応しない'' ----ヒットガードが同時でもTargetで参照する側がガードなら&br()[[T-/MoveGuarded]]などガード系のみ反応し[[T-/MoveHit]]などヒット系は反応しない。 ----その際攻撃のPauseTime系もTargetで参照する側ヒットガードを基準とする。 --またステートコントローラーのパラメータ内でTarget,リダイレクトを行うとフリーズすることがある。 ---Varに格納して直接パラメータ内への記述を避けることで回避できる。 -特定のキャラを --&b(){PlayerID([[キャラID>T-/ID]]),}:指定したキャラID([[T-/ID]])のキャラを参照。 ---PlayerIDExist(キャラID)=1で確認して使うこと。 --キャラIDを指定できれば相手のHelperでも参照できる。 -なお()内に入れる数字は数式・条件式などでも良い。 ---- **■Lv1-使用例・補足・注意点 :記述例| #aa(){{ [State 190, test] Type = varset TriggerAll = !time Trigger1 = NumPartner > 0 Trigger1 = Partner,Name = "Apple" Trigger2 = Enemy,Name = "Apple" || Enemy(NumEnemy>1),Name = "Apple" var(12) = 1 ;他のプレイヤーキャラの中に「Apple」というNameのキャラがいないかどうか。 ;Trigger2はのEnemy(numenemy>1)は「相手が二人以上なら1=二人目へリダイレクト」の記述。 ;相手が一人の場合は(NumEnemy>1)=0なのでEnemy(0),のリダイレクトになる。 }} :Enemy系リダイレクトとP2系トリガー情報の違い| -P2系トリガーの情報 --[[T-/P2BodyDist X]]・[[T-/P2BodyDist Y]]・[[T-/P2Dist X]]・[[T-/P2Dist Y]] --[[T-/P2Life]]・[[T-/P2MoveType]]・[[T-/P2Name]]・[[T-/P2StateNo]]・[[T-/P2StateType]] --Dist(距離)の情報はP2にしか存在しない。 -参照できる相手 --Enemy系:Helperでない''プレイヤーキャラに限る''。''相手の状態に関わらず参照''。 --P2系:プレイヤーキャラ加え''HelperType=PlayerのHelperも含む''最もX軸の近い相手を参照。 ---ただしP2系はStateNo=5150(死亡ステート)にいる相手を参照できない。 ---反対にEnemy系は、相手が死んでいても参照してしまう為、制御する必要がある。 -どっちがいいの? --簡素な仕組みを予定していればP2で構わない。 --ただ参照を制御できるならEnemyNearを利用する方が良い。Dist系はP2でいいが。 -なお、P2系は相手の情報を表示するが「自分のトリガー情報」のため、リダイレクトは使用可能。 :ヘルパーからRoot,Perent,系リダイレクトをする際の注意点| -[[ステートを奪われている場合>ステート奪取]]、想定外の情報が入る危険がある。 -その為[[T-/Command]]を代表とし[[T-/StateNo]][[T-/Anim]]などは絶対に不可である。 --なおRoot,[[Movetype=H>T-/Movetype]]といった限定方法は不完全。 ---奪われている時のステートががMoveType=H以外である場合、暴発する。 ---- **■Lv3-細かい技術 :EnemyNear,リダイレクトの制御| 準備:Varを1つ用意する。例では11を使用。実際には空きVarを利用すること。 #aa(){ [State -3, EnemyNear Alive];-3ステートに置く。 Type = varset Trigger1 = 1 var(11) = ( NumEnemy > 1 && EnemyNear,Alive = 0 ) ;相手が二人以上で一番近い相手が死んでいるなら(1)を、そうでないなら(0)を指定。 ;EnemyNearをEnemynear(var(11)),とすることで、生きている一番近い相手を参照できる。 } ----
---- *■リダイレクトについて ---- :※解説修正情報※| ●&font(12,b){2014-10-12:Targetのリダイレクト先について。Targetスロットの概念} ●&font(12,b){2013-01-15:Targetのリダイレクト先について修正。} ●&font(12,b){2013-01-14:Helperのリダイレクト先について修正。} ---- [[トリガー情報>トリガー情報の一覧]]の前につけることで''指定した相手のトリガー情報''を利用できる。 P2系との違いの解説も。 :リダイレクトの種類| -''大原則'' --リダイレクトの相手が存在しない場合、条件は上手く処理されない。(0)扱い? --[[デバッグ]]表示時エラーが流れるため 必ずリダイレクト相手を確認してから使用すること。 ---Triggerは一行ごとの参照のため、確認は前の行でNumXXX>0~1を行うこと。 --リダイレクトのリダイレクトはできない。Enemy,Helper,XXXは不可。 -ヘルパー専用 --''Parent,'':ペアレント(親)。自分を射出したキャラを参照。Helperからの射出ならその親Helperを。 ---親がHelperで既に消失していて存在しない場合エラーが流れるため注意。 ---親自体の存在を参照するトリガー情報は存在しない。 --''Root,'':ルート(管理者)。自分を管理しているプレイヤーキャラを参照。Helperからの射出でも本体を。 --ParentとRootの違い。例えば本体からHelperA、AからHelperB、BからCを射出した場合、 ---本体→A→B→Cの内、 ABCどれからも本体を参照するのが''Root,'' ---Aから本体、BからA、CからBを参照するのが''Parent,'' -ヘルパーを --''Helper(ヘルパーID),'':指定したヘルパーIDを持つHelperを参照。 ---[[NumHelper(ヘルパーID)>T-/NumHelper]]>0で数を確認してから使うこと。 ---参照できるのは「自分側のHelper」に限る。 ----一応、自分のHelperから他の自分のHelperを参照することは可能。 -----本体が同じなら、Helperから射出されたHelperでも参照可能。 ----パートナーのHelperは参照できない。 ---なお該当Helperが複数ある場合は、その中で最も[[スロットID]]の若いHelperを参照する。 -味方を --''Partner,'':タッグ時のパートナーを参照。 ---[[NumPartner>T-/NumPartner]]>0を確認して使うこと。 -相手を --''Enemy,'':相手を参照。()省略時は(0)と同様。 ---''Enemy(0),'':相手の中の1人目を参照。 ---''Enemy(1),'':相手の中の2人目を参照。 --''EnemyNear,'':近くの相手を参照。()省略時は(0)と同様。 ---''EnemyNear(0),'':相手の中で(X軸基準の)一番近い相手を参照。 ---''EnemyNEar(1),'':相手の中で(X軸基準の)二番目に近い相手を参照。 --(1)系の二人目認識は[[NumEnemy>T-/NumEnemy]]>1を確認して使うこと。 ---(0)用のNumEnemy>0は気にする必要はないがしてもよい。 ---特殊な状況でなければEnemy(0),がいないことは無いが。 -[[Target]]を 詳しい仕様は該当ページを参照 --''Target,'':攻撃を当てた相手を参照。 ---''Target(ヒットID),'':特定の攻撃を当てた相手を参照。 --[[NumTarget>T-/NumTarget]]>0、NumTarget(ヒットID)>0を確認して使うこと。 --該当するTargetが複数の場合 ---参照先は基本「先にTargetを取った相手」を参照するが、厳密には異なる。 ----実際はABCとTargetを取った後、ABがTargetから外れて、&br()新しくDをTargetに取った場合、Target,で参照するのは''Dとなる''。 ----詳しくは[[Target]]のページ中程の''Targetスロットについて''を参照。 ---同時ヒットの場合''攻撃を当てた時点のGameTimeの奇数偶数''で&br()&b(){[[スロットID]]の若い方・大きい方どちらか}が決まる。 ---同時時:[[GetHitVar(Damage)>T-/GetHitVar()]]反応時点で偶数ならスロットIDの若い方。奇数ならスロットIDの大きい方。 ---同時の対象が3体以上いる場合、スロットIDの一番小さい方・一番大きい方以外は参照されない。 ---[[T-/MoveHit]]/[[T-/MoveGuarded]]などヒット・ガードで処理が異なるものすべて、&br()''Target,で参照する側を基本として、もう片方側は反応しない'' ----ヒットガードが同時でもTargetで参照する側がガードなら&br()[[T-/MoveGuarded]]などガード系のみ反応し[[T-/MoveHit]]などヒット系は反応しない。 ----その際攻撃のPauseTime系もTargetで参照する側ヒットガードを基準とする。 --またステートコントローラーのパラメータ内でTarget,リダイレクトを行うとフリーズすることがある。 ---Varに格納して直接パラメータ内への記述を避けることで回避できる。 -特定のキャラを --&b(){PlayerID([[キャラID>T-/ID]]),}:指定したキャラID([[T-/ID]])のキャラを参照。 ---[[PlayerIDExist(キャラID)>T-/PlayerIDExist()]]=1で確認して使うこと。 --キャラIDを指定できれば相手のHelperでも参照できる。 -なお()内に入れる数字は数式・条件式などでも良い。 ---- **■Lv1-使用例・補足・注意点 :記述例| #aa(){{ [State 190, test] Type = varset TriggerAll = !time Trigger1 = NumPartner > 0 Trigger1 = Partner,Name = "Apple" Trigger2 = Enemy,Name = "Apple" || Enemy(NumEnemy>1),Name = "Apple" var(12) = 1 ;他のプレイヤーキャラの中に「Apple」というNameのキャラがいないかどうか。 ;Trigger2はのEnemy(numenemy>1)は「相手が二人以上なら1=二人目へリダイレクト」の記述。 ;相手が一人の場合は(NumEnemy>1)=0なのでEnemy(0),のリダイレクトになる。 }} :Enemy系リダイレクトとP2系トリガー情報の違い| -P2系トリガーの情報 --[[T-/P2BodyDist X]]・[[T-/P2BodyDist Y]]・[[T-/P2Dist X]]・[[T-/P2Dist Y]] --[[T-/P2Life]]・[[T-/P2MoveType]]・[[T-/P2Name]]・[[T-/P2StateNo]]・[[T-/P2StateType]] --Dist(距離)の情報はP2にしか存在しない。 -参照できる相手 --Enemy系:Helperでない''プレイヤーキャラに限る''。''相手の状態に関わらず参照''。 --P2系:プレイヤーキャラ加え''HelperType=PlayerのHelperも含む''最もX軸の近い相手を参照。 ---ただしP2系はStateNo=5150(死亡ステート)にいる相手を参照できない。 ---反対にEnemy系は、相手が死んでいても参照してしまう為、制御する必要がある。 -どっちがいいの? --P2系の利点:記述が簡素・Player型分身Helper相手にも対応できる --P2系の欠点:得られる情報が一部のみ・Player型Helperに誤作動する。 --Enemy,利点:自分と同等の情報を得られる・Player型Helperに誤作動しない。 --Enemy,欠点:記述・制御が面倒・Player型分身Helperに対応できない。 ---簡素な仕組みを予定していればP2で構わない。 ---参照を制御できるならEnemyNearを利用する方が良い。Dist系はP2でいいが。 ---Player型Helper極めて特殊な相手のため度外視しても基本的には問題ない。 -なお、P2系は相手の情報を表示するが「自分のトリガー情報」のため、リダイレクトは使用可能。 :ヘルパーからRoot,Perent,系リダイレクトをする際の注意点| -[[ステートを奪われている場合>ステート奪取]]、想定外の情報が入る危険がある。 -その為[[T-/Command]]を代表とし[[T-/StateNo]][[T-/Anim]]などは絶対に不可である。 --なおRoot,[[Movetype=H>T-/Movetype]]といった限定方法は不完全。 ---奪われている時のステートががMoveType=H以外である場合、暴発する。 :(未確認)特殊な環境| -(改造されたmugenなどで?)同時4人対4人での対戦では、 Enemy(2),やEnemy(3),のリダイレクトは機能するらしいが、 EnemyNear(x),は2~3(3~4人目)のリダイレクトは機能しないとのこと。 ---- **■Lv2-バグ回避 :Parentの存在確認| エラー自体を確実に回避したい場合は同種HelperのHelperID個別管理を徹底し[[T-/NumHelper]]を用いる。 あるいは、消失する予定のHelperからHelperを射出しない、親が消失するHelperでParentを使わない。 エラーが流れても簡単かつ確実に回避したい場合は[[T-/ID]]を参照する。 &b(){「 Parent,ID > 0 」}で親が存在していることを認識できる、はず。それがNum系の役割を果たす。 存在しない場合エラーは流れるが、Parent消失による不具合を抑えられる。 ---- **■Lv3-細かい技術 :EnemyNear,リダイレクトの制御| 準備:Varを1つ用意する。例では11を使用。実際には空きVarを利用すること。 #aa(){ [State -3, EnemyNear Alive];-3ステートに置く。 Type = varset Trigger1 = 1 var(11) = ( NumEnemy > 1 && EnemyNear,Alive = 0 ) ;相手が二人以上で一番近い相手が死んでいるなら(1)を、そうでないなら(0)を指定。 ;EnemyNearをEnemynear(var(11)),とすることで、生きている一番近い相手を参照できる。 } ----

表示オプション

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