起き上がり処理について
IkemenGOでそのままキャラクターを作ると、なんとレバガチャでキャラクターの起き上がりが早くなります!意味★不明!
TDOE2ではこれへの対策として、全キャラクターに固有の「ダウン追い打ち可能な中間モーション」を用意して、
ダウン追い打ち回数に応じて起き上がりを早くするようにしています。
;c
;起き上がり時間計算用-Reset処理
[State -1, Reset]
type = VarSet
trigger1 = Ctrl = 1
v = 16
value = 35
;起き上がり---------------------------------------------------------------------------
;===================================================
; [Statedef 5110] ダウン受付(※ここを一瞬で通過させる)
;===================================================
[Statedef 5110]
type = L
movetype= H
physics = N
[State 5110, エンジンの監視を逃れるため独自のダミーステートへ即移動]
type = ChangeState
trigger1 = 1
value = 5118
;===================================================
; [Statedef 5118] GEM専用・レバガチャ無効化ダウン
;===================================================
[Statedef 5118]
type = L
movetype= H
physics = N
; ▼システム標準のダウンダメージ計算(空中から叩きつけられた際のダメージ確定用)
[State 5118, HitFallDamage]
type = HitFallDamage
trigger1 = Time = 0
[State 5118, 座標リセット(床へのめり込みを防止)]
type = PosSet
trigger1 = Time = 0
y = 0
[State 5118, 落下速度のリセット]
type = VelSet
trigger1 = Time = 0
y = 0
[State 5118, 横滑りの摩擦(自然な減速)]
type = VelMul
trigger1 = 1
x = 0.85
[State 5118, アニメーション:ダウン(地面に叩きつけ)]
type = ChangeAnim
trigger1 = Time = 0
value = 5110
[State 5118, アニメーション:ダウン維持ループ]
type = ChangeAnim
trigger1 = Anim = 5110
trigger1 = AnimTime = 0
value = 5110
[State 5118, K.O.時の処理(死体化ステートへ)]
type = ChangeState
triggerall = !alive
trigger1 = Time >= 30
value = 5150
;cns
[State 5118, 起き上がりフレーム計算]
type = VarAdd
triggerall = var(16) != 0
trigger1 = time = 0
v = 16
value = -5
; ▼ 【重要】エンジンが介入できないため、ここで確実に時間が固定されます ▼
[State 5118, 起き上がりへ移行]
type = ChangeState
triggerall = alive
trigger1 = Time = var(16) ; ★ここでダウンしておくフレーム数を指定(30F)
value = 5120
;===================================================
; [Statedef 5120] 起き上がりモーション
;===================================================
[Statedef 5120]
type = L
movetype= H
physics = N
[State 5120, アニメーション]
type = ChangeAnim
trigger1 = Time = 0
value = 5120
[State 5120, 無敵]
type = NotHitBy
trigger1 = 1
value = SCA
time = 1
; ▼ 内部フラグを確実に解除 ▼
[State 5120, HitFallSet]
type = HitFallSet
trigger1 = Time = 0
value = 1
;===================================================
; ▼ ここでリバーサル処理を統合 ▼
;===================================================
; 1. AnimTime=0(起き上がり終了)かつ、var(0)に値が入っているとき
[State 5120, リバーサル発動]
type = ChangeState
triggerall = AnimTime = 0
trigger1 = var(0) >= 1
value = var(0)
ctrl = 0
; 1. AnimTime=0 かつ、リバーサル入力がない場合のみ立ち状態へ
[State 5120, 通常起き上がり(リバーサルなし)]
type = ChangeState
triggerall = AnimTime = 0
trigger1 = var(0) < 1
value = 0
ctrl = 1