MUGEN ( フォント環境:MS ゴシック 標準 サイズ10 ) 11:08 2011/07/31 今更   BodyDistVar記述のメモ  P2BodyDistの数値を、P2BodyDistを使わずに計算する方法。  Varを2個以上使います。例では30〜35を使用 ;■Enemynear,リダイレクトの相手座標認識 ;※これをタッグに対応させる場合、EnemyNear,をEnemyNear(*Var(*生存相手認識*)*),などに置換してください。 [State adi , var bodydist 1] Type=null ;X座標 Trigger1 =1||var(31):= Ifelse( (EnemyNear,StateType!= A), Ifelse( (Pos X <= EnemyNear,Pos X ^^ EnemyNear,Facing = 1),(EnemyNear,Const(Size.Ground.Front)),(EnemyNear,Const(Size.Ground.back)) ) , 0 );地上 Trigger1 =1||var(31):= Ifelse( (EnemyNear,StateType = A), Ifelse( (Pos X <= EnemyNear,Pos X ^^ EnemyNear,Facing = 1),(EnemyNear,Const(Size.Air.Front)),(EnemyNear,Const(Size.Air.back)) ) , var(31) ) ;空中 Trigger1 =1||var(30):= Floor( ( Pos X - EnemyNear,Pos X )* Facing * -1) ;相手までの距離 Trigger1 =1||var(30):= var(30) - var(31) * Ifelse(var(30)>0, 1 ,-1) ;相手への距離 Trigger1 =1||var(30):= var(30) - Ifelse( (StateType != A), (Const(Size.Ground.Front)),(Const(Size.Air.Front)) ) ;自分情報 ;Y座標 Trigger1 =1||var(31):= Floor( EnemyNear,Pos Y - Pos Y ); ;■EnemyNear(1),リダイレクト(二人目用) ;※生存相手を認識させている場合は、EnemyNear(1),をEnemyNear(var(**)+1),に置換処理してください。 [State adi , var bodydist 2] Type=null TriggerAll = 1||(var(32):=var(30))||(var(33):=var(31)) ;2人目が居ない場合の数値※適当な数値に変えて良い TriggerAll = NumEnemy > 1 ;二人以上である TriggerAll = EnemyNear(0),Alive && EnemyNear(0+1),Alive ;両方生きている。 ;X座標 Trigger1 =1||var(33):= Ifelse( (EnemyNear(1),StateType!= A), Ifelse( (Pos X <= EnemyNear(1),Pos X ^^ EnemyNear(1),Facing = 1),(EnemyNear(1),Const(Size.Ground.Front)),(EnemyNear(1),Const(Size.Ground.back)) ) , 0 );地上 Trigger1 =1||var(33):= Ifelse( (EnemyNear(1),StateType = A), Ifelse( (Pos X <= EnemyNear(1),Pos X ^^ EnemyNear(1),Facing = 1),(EnemyNear(1),Const(Size.Air.Front)),(EnemyNear(1),Const(Size.Air.back)) ) , var(33) ) ;空中 Trigger1 =1||var(32):= Floor( ( Pos X - EnemyNear(1),Pos X )* Facing * -1) ;相手までの距離 Trigger1 =1||var(32):= var(32) - var(33) * Ifelse(var(32)>0, 1 ,-1) ;相手への距離 Trigger1 =1||var(32):= var(32) - Ifelse( (StateType != A), (Const(Size.Ground.Front)),(Const(Size.Air.Front)) ) ;自分情報 ;Y座標 Trigger1 =1||var(33):= Floor( EnemyNear(1),Pos Y - Pos Y ); ;■Partner,リダイレクト(パートナー用) [State adi , var bodydist 3] Type=null TriggerAll = 1||(var(34):=0)||(var(35):=0) ;パートナーが居ない場合の数値※適当な数値に変えて良い TriggerAll = NumPartner > 0 ;パートナーがいる TriggerAll = Partner,Alive ;生きている。 ;X座標 Trigger1 =1||var(35):= Ifelse( (Partner,StateType!= A), Ifelse( (Pos X <= Partner,Pos X ^^ Partner,Facing = 1),(Partner,Const(Size.Ground.Front)),(Partner,Const(Size.Ground.back)) ) , 0 );地上 Trigger1 =1||var(35):= Ifelse( (Partner,StateType = A), Ifelse( (Pos X <= Partner,Pos X ^^ Partner,Facing = 1),(Partner,Const(Size.Air.Front)),(Partner,Const(Size.Air.back)) ) , var(35) ) ;空中 Trigger1 =1||var(34):= Floor( ( Pos X - Partner,Pos X )* Facing * -1) ;相手までの距離 Trigger1 =1||var(34):= var(34) - var(35) * Ifelse(var(34)>0, 1 ,-1) ;相手への距離 Trigger1 =1||var(34):= var(34) - Ifelse( (StateType != A), (Const(Size.Ground.Front)),(Const(Size.Air.Front)) ) ;自分情報 ;Y座標 Trigger1 =1||var(35):= Floor( Partner,Pos Y - Pos Y );