製作状況

掲示板で報告していただいた相違点を修正しつつ、ひたすらSFFの構築を続けてました。佳乃はver2.05を境に大幅に動作が変更された経緯があり、本体動作だけでもこれまでのキャラクターのおよそ1.3倍程度。そして何よりキャラクターのコンセプト的に萃夢想キャラも真っ青なほど大量のエフェクトがあり、その数およそ750枚。軸合わせは好きな作業なので苦にはなりませんでしたが、さすがに疲れました('A`)

で、それと並行してこんなこともしてました。

ハイパーアーマー(正式名称リコイルアーマー)

所謂「アーマー」の実験です。佳乃には「セイフティワール」という「中に入るとハイパーアーマー状態になる領域を作り出す」エタニースペシャルがあり、その実装のためにあらかじめシステムを組んでおこうという考えから、テスト用のキャラを用意して実際にステートを組んでみました。

クリエイターズJAPAN2のNHKさんが書き起こされた記事を参考にしつつ、ヒットストップをかけられるように処理を弄ってみました。具体的な流れは概ね先の記事と同じなのですが、とりあえずここに記しておきます。

586_***_always.st

;----------------------------------------------------------------------
; Armor
;----------------------------------------------------------------------

[State -3, VarSet]	;StateNoを格納
type = VarSet
trigger1 = MoveType != H
trigger1 = StateNo != 950
var(30) = StateNo
ignorehitpause = 1

[State -3, VarSet]	;Ctrlフラグを格納
type = VarSet
trigger1 = MoveType != H
trigger1 = StateNo != 950
var(31) = Ctrl
ignorehitpause = 1

[State -3, VarSet]	;Anim番号を格納
type = VarSet
trigger1 = MoveType != H
trigger1 = StateNo != 950
var(32) = Anim
ignorehitpause = 1

[State -3, VarSet]	;AnimElemNoを格納
type = VarSet
trigger1 = MoveType != H
trigger1 = StateNo != 950
var(33) = AnimElemNo(0)
ignorehitpause = 1

[State -3, VarSet]	;アーマー限界値初期化
type = VarSet
trigger1 = MoveType = I
var(34) = 0
ignorehitpause = 1

586_***_basics.st

;----------------------------------------------------------------------
; Stand Light Attack

[Statedef 200]
type = S
movetype = A
physics = S
;anim = 200
ctrl = 0
poweradd = 20

[State 200, ChangeAnim]		;アーマーステートから来ていない場合はアニメを普通に設定
type = ChangeAnim
triggerall = PrevStateNo != 950
trigger1 = Time = 0
value = 200

[State 200, ChangeAnim]		;アーマーステートから来ている場合は格納済みのAnimElemNoから開始
type = ChangeAnim
triggerall = PrevStateNo = 950
trigger1 = Time = 0
value = 200
elem = var(33)
;---------------------------------------------------------------------------
; Armor

[Statedef 950]
type = U
movetype = H

[State 950, PalFX]
type = PalFX
trigger1 = 1
time = 1
add = 180,180,180

[State 950, ChangeAnim]		;アニメの進行をストップ
type = ChangeAnim
trigger1 = 1
value = var(32)
elem = var(33)

[State 950, PosFreeze]
type = PosFreeze
trigger1 = 1
value = 1

[State 950, VarAdd]		;アーマー限界値をカウントする
type = VarAdd
trigger1 = Time = 0
var(34) = 1
persistent = 0
ignorehitpause = 1

[State 950, ChangeState]	;不具合回避のため少し早めに元のStateへ戻す
type = ChangeState
trigger1 = Time = 7
value = var(30)
ctrl = var(31)

586_***_common.st

;---------------------------------------------------------------------------
; HITG_SHAKE
[Statedef 5000]
type    = S
movetype= H
physics = N
velset = 0,0

[State 5000, 0]
type = ChangeState
triggerall = Time = 0
triggerall = var(34) < 2	;アーマー状態で2HITまで持ちこたえられる
trigger1 = PrevStateNo = 200	;200番から来た場合はアーマーステートへ
trigger2 = PrevStateNo = 230	;同上
value = 950 ;ARMOR

NHKさんの記事が大いに参考になりました。本当にありがとうございます。