|
|
本帖最后由 深蓝de写轮眼 于 2025-4-17 08:34 编辑
VXL有个问题就是只能从常规动画和移动动画中选一个,以及停止移动时移动动画会直接暂停在那一帧
(用于演示的素材来自MadHQ的公素)
这里尝试了一个解决方法:(思路来自:https://bbs.ra2diy.com/forum.php?mod=viewthread&tid=23271&extra=page%3D2)
就是将模型文件分为两个,一个只有常规动画,一个同时进行常规动画和移动动画(比如车体灯光和可动履带)
然后单位注册为2个,分别使用这两个模型,一个作为停止模式,一个作为移动模式
在开始移动 / 停止移动时 通过变形进行相互转换
(这里可以看到载具在停止移动之后动作复位了)
不过使用变形实现此功能,当两个模式武器不同时似乎会对武器运作产生影响
以下是ini,基于pbs平台:
这里用狂风坦克和盖特坦克更换模型进行演示,所以两个单位是LTNK和YTNK
停止模式挂载AE1,开始移动时自动移除AE1并使用ExpireWeapon打自己进行变形
移动模式挂载AE2,但是停止移动时自动移除AE2进行变形的时候,会出现在 载具转向结束时 到 继续直线移动时 之间会触发停止移动时自动移除AE,
导致载具快速变形2次,看起来就像载具闪了一下
所以为了解决这个问题,移动模式稍微绕了两层
------------------------------------------
[Weapons] ;各AE的ExpireWeapon
+=MoveTrWeapon
+=StopTrWeapon
+=StopUpdateTrWeapon
+=StopNewTrWeapon
[Warheads] ;各AE的ExpireWeapon弹头
+=MoveTrWH
+=StopTrWH
+=StopUpdateTrWH
+=StopNewTrWH
[AttachEffectTypes]
1=MoveTrAE ;移动时变形AE
2=StopTrAE ;监测停止移动时AE
3=StopUpdateTrAE ;停止移动时延时变形AE
4=StopNewTrAE ;未完全停止移动时,恢复监测停止移动时AE
------------------------------------------
[MoveTrWeapon]
Damage=1
ROF=5
Range=1
Speed=100
Projectile=Invisible
Warhead=MoveTrWH
Ammo=0
Report=none
OmniFire=yes
Bright=no
[MoveTrWH]
CellSpread=.3
CellSpread.MaxAffect=1
Verses=0%,0%,0%,100%,100%,100%,0%,0%,0%,0%,0%
;Versus.heavy=100%
AffectsEnemies=no
Conventional=no
Malicious=no
Nonprovocative=yes
PreventScatter=yes
Shield.Penetrate=yes ;
Convert.From=LTNK ;变形
Convert.To=YTNK
Convert.AffectedHouses=self
[MoveTrAE] ;移动时变形AE
Duration=-1
Cumulative=no
PenetratesIronCurtain=yes
DiscardOn=move ;移动时移除此AE
ExpireWeapon=MoveTrWeapon
ExpireWeapon.TriggerOn=discard ;移除此AE时使用ExpireWeapon变形
ExpireWeapon.CumulativeOnlyOnce=yes
------------------------------------------
[StopTrWeapon]
Damage=1
ROF=5
Range=1
Speed=100
Projectile=Invisible
Warhead=StopTrWH
Ammo=0
Report=none
OmniFire=yes
Bright=no
[StopTrWH]
CellSpread=.3
CellSpread.MaxAffect=1
Verses=0%,0%,0%,100%,100%,100%,0%,0%,0%,0%,0%
;Versus.light=100%
AffectsEnemies=no
Conventional=no
Malicious=no
Nonprovocative=yes
PreventScatter=yes
Shield.Penetrate=yes ;
AttachEffect.AttachTypes=StopUpdateTrAE,StopNewTrAE ;给单位挂载 停止移动时延时变形AE 和 未完全停止移动时,恢复监测停止移动时AE
[StopTrAE] ;监测停止移动时AE
Duration=-1
Cumulative=no
PenetratesIronCurtain=yes
DiscardOn=stationary ;停止移动时移除此AE
ExpireWeapon=StopTrWeapon
ExpireWeapon.TriggerOn=discard ;移除此AE时使用ExpireWeapon给单位挂载另外2个AE
ExpireWeapon.CumulativeOnlyOnce=yes
------------------------------------------
[StopUpdateTrWeapon]
Damage=1
ROF=5
Range=1
Speed=100
Projectile=Invisible
Warhead=StopUpdateTrWH
Ammo=0
Report=none
OmniFire=yes
Bright=no
[StopUpdateTrWH]
CellSpread=.3
CellSpread.MaxAffect=1
Verses=0%,0%,0%,100%,100%,100%,0%,0%,0%,0%,0%
;Versus.light=100%
AffectsEnemies=no
Conventional=no
Malicious=no
Nonprovocative=yes
PreventScatter=yes
Shield.Penetrate=yes ;
Convert.From=YTNK ;变形
Convert.To=LTNK
Convert.AffectedHouses=self
[StopUpdateTrAE] ;停止移动时延时变形AE
Duration=1 ;持续1帧,也就是延时1帧
Cumulative=no
PenetratesIronCurtain=yes
ExpireWeapon=StopUpdateTrWeapon
ExpireWeapon.TriggerOn=expire ;此AE到期时使用ExpireWeapon变形
ExpireWeapon.CumulativeOnlyOnce=yes
DiscardOn=move ;移动时移除此AE取消变形
------------------------------------------
[StopNewTrWeapon]
Damage=1
ROF=5
Range=1
Speed=100
Projectile=Invisible
Warhead=StopNewTrWH
Ammo=0
Report=none
OmniFire=yes
Bright=no
[StopNewTrWH]
CellSpread=.3
CellSpread.MaxAffect=1
Verses=0%,0%,0%,100%,100%,100%,0%,0%,0%,0%,0%
;Versus.light=100%
AffectsEnemies=no
Conventional=no
Malicious=no
Nonprovocative=yes
PreventScatter=yes
Shield.Penetrate=yes ;
AttachEffect.AttachTypes=StopTrAE
[StopNewTrAE] ;未完全停止移动时,恢复监测停止移动时AE
Duration=1 ;持续1帧,用于监测是否完全停止移动
Cumulative=no
PenetratesIronCurtain=yes
DiscardOn=move ;移动时移除此AE,说明已取消变形
ExpireWeapon=StopNewTrWeapon
ExpireWeapon.TriggerOn=discard ;移除此AE时使用ExpireWeapon给单位重新挂载监测停止移动时AE(之前被移除)
ExpireWeapon.CumulativeOnlyOnce=yes
------------------------------------------
[LTNK]
AttachEffect.AttachTypes=MoveTrAE ;停止形态挂载移动时变形AE
[YTNK]
AttachEffect.AttachTypes=StopTrAE ;移动形态挂载监测停止移动时AE |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?注册
×
|