製作状況
掲示板で報告していただいた相違点を修正しつつ、ひたすら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さんの記事が大いに参考になりました。本当にありがとうございます。