堕落街道まっしぐら。

現在のゲームプレイ状況: アリスギア = ウマ娘 > DMMブラゲ > Crossout >> それ以外

MUGEN記述/アラド戦記キャラクター記述例:ハイパーアーマー Ver1.1

イメージ 1

汎用型アーマー式ヘルパー記述を使っているキャラに、オンラインゲーム「アラド戦記」の
アーマー用エフェクトを再現させるための記述変更手順です。

~ ~ ~

アラド戦記のハイパーアーマー
  画像を参照した方が分かりやすいと思いますが、アーマー発動時にキャラより大きい画像が
  時間経過と共にキャラと同じくらいの大きさまで収縮していき、最終的にはキャラを縁取る
  ようにして赤と黄色に点滅します。
  アーマー動作実行中に攻撃を受けた場合、アーマーエフェクトの点滅が一時的に早くなります。


・変更手順

‐鏤?道襯好董璽函Statedef -2)にある以下のアーマー用記述を削除してください。

[State -2, アーマー受けした時の点滅]
type = PalFX
trigger1 = NumHelper(9000)
trigger1 = Helper(9000),GetHitVar(damage)
time = 5
add = 256,10,10


▲◆璽沺璽悒襯僉璽好董璽函StateDef 9000)を、2つの記述を残して以下の物に変更してください。

;-------------------------------------------------------------------------------
[Statedef 9000]; アーマー判定ヘルパー
;-------------------------------------------------------------------------------
type = A
movetype = I
physics = N
sprpriority = 0

[State 9000, 0/CHs]; 不具合対策
type = ChangeState
trigger1 = !IsHelper
value = 0
ctrl = 1

[State 9000, 0/Ass]; 開始時だけ透明/親とアニメが違っていたら透明
type = AssertSpecial
trigger1 = Time = 0 || Anim != Parent,Anim
flag = Invisible

[State 9000, 0/NHB]; 開始時だけ無敵(重複被弾防止)
type = NotHitBy
trigger1 = Time = 0
value = SCA
time = 1

[State 9000, -1/NHB]; 投げ無敵
type = NotHitBy
trigger1 = 1
value2 = ,AT
time = 2

[State 9000, -1/Tra]; 透過処理
type = Trans
trigger1 = 1
trans = addalpha
alpha = 256,130

[State 9000, -1/Ass]; 影消し
type = AssertSpecial
trigger1 = 1
flag = NoShadow

[State 9000, -1/Pos]; 本体に追従
type = BindToParent
trigger1 = 1
time = 1
facing = 1
pos = 0,0

[State 9000, -1/CHa]; 判定を揃える
type = ChangeAnim
trigger1 = SelfAnimExist(Parent,Anim)
value = Parent,Anim
elem = Parent,AnimElemNo(0)

[State 9000, -1/Var]; アーマーエフェクト用の拡縮変数
type = VarAdd
trigger1 = fvar(0) < 30
fvar(0) = 3

[State 9000, -1/Agl]; アーマーエフェクト用の拡縮
type = AngleDraw
trigger1 = 1
scale = (134-fvar(0))*0.01,(132-fvar(0))*0.01

[State 9000, -1/Var]; アーマーエフェクト発光用の被弾変数
type = VarSet
trigger1 = 1
fvar(1) = IfElse(GetHitVar(damage),1,IfElse(Time<20,fvar(1),0))

[State 9000, -1/Pal]; アーマーエフェクト発光:黄
type = PalFX
trigger1 = fvar(1) = 0 && Time%20 = 0
trigger2 = fvar(1) = 1 && Time%4 = 0
time = IfElse(fvar(1)=1,2,10)
add = 256,256,0
mul = 256,256,0

[State 9000, -1/Pal]; アーマーエフェクト発光:赤
type = PalFX
trigger1 = fvar(1) = 0 && Time%20 = 10
trigger2 = fvar(1) = 1 && Time%4 = 2
time = IfElse(fvar(1)=1,2,10)
add = 256,0,0
mul = 256,0,0

[State 9000, -1/HOR]; 打撃/飛び道具を受けたらステートを繰り返す
(これは以前の物と同じです。変更不要)

[State 9000, -1/Ds]; 本体がアーマーパートを過ぎたら消滅
(これも以前の物と同じです。変更不要)

;-------------------------------------------------------------ここまで

今回はFVar(0)とFVar(1)の、2つの変数を使用しています。
これでアラド戦記風のアーマーエフェクトになるはずです。

・補足
  エフェクトはキャラの後ろにあるヘルパーを変化させて表示させているため、
  キャラ本体とヘルパーの間に別の画像が入ってしまうこともあります。これは表示優先度の問題。
  同じく表示優先度の問題ですが、キャラ本体よりアーマーヘルパーの方が手前に表示される
  ケースも目撃したので、その際はヘルパーの表示優先度(sprpriority)を下げて調整してください。

~ ~ ~

Ver1.0  記述公開開始
Ver1.1  記述改良