找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1683|回复: 9

[经验分享探讨] 使用变形使VXL载具同时具有停止和移动动画,或者让VXL机甲停止时动作复位的可能性?

[复制链接]
发表于 2025-4-16 19:07:52 | 显示全部楼层 |阅读模式
本帖最后由 深蓝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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
发表于 2025-4-16 19:42:17 | 显示全部楼层
辛苦研究!可以参考的东西真多
回复 1 0

使用道具 举报

发表于 2025-4-21 16:32:08 | 显示全部楼层
回复 1 0

使用道具 举报

 楼主| 发表于 2025-4-21 17:12:50 | 显示全部楼层
本帖最后由 深蓝de写轮眼 于 2025-4-21 17:22 编辑
ccc1478 发表于 2025-4-21 16:32
https://bbs.ra2diy.com/forum.php?mod=viewthread&tid=25406&extra=page%3D1

一开始是直接用DiscardOn=stationary来实现停止移动时变形的
但是会出现车辆正常移动时,转向的时候会触发这个变形的问题
所以才兜了这么一圈

怪耶,为什么我这里直接这样做会出现这种情况= =
------------------------------------------------------------------
又看了一下,这个写法和我一开始的写法只有两处差异
一个是版本不同(暂且不考虑
一个是AE是变形弹头给挂上的,而我一开始的写法是把AE直接挂在两个单位上,也许这里有问题?
之后试试看
回复 1 0

使用道具 举报

 楼主| 发表于 2025-4-21 17:49:31 | 显示全部楼层
本帖最后由 深蓝de写轮眼 于 2025-4-21 18:04 编辑
ccc1478 发表于 2025-4-21 16:32
https://bbs.ra2diy.com/forum.php?mod=viewthread&tid=25406&extra=page%3D1

直接照抄链接内ini测试结果如下(唯一改动部分为在AE中增加了ExpireWeapon.TriggerOn=discard,测试发现没有这句没法变形),和我一开始遇到的问题一致
我使用的版本为官网上下载的b46,难道真是版本问题?


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
回复

使用道具 举报

发表于 2025-4-22 13:10:07 | 显示全部楼层
深蓝de写轮眼 发表于 2025-4-21 17:49
直接照抄链接内ini测试结果如下(唯一改动部分为在AE中增加了ExpireWeapon.TriggerOn=discard,测试发现没 ...

确实是pbs版本的问题,B45以及之后的这个检查有问题,b39到b44是正常的
回复

使用道具 举报

发表于 2025-4-22 17:26:23 来自手机 | 显示全部楼层
倒是个不错的解决方法,机甲抬腿问题可以解决了
回复

使用道具 举报

 楼主| 发表于 2025-4-22 17:53:14 | 显示全部楼层
白羽鸽 发表于 2025-4-22 17:26
倒是个不错的解决方法,机甲抬腿问题可以解决了

这样还可以让车辆的特效和可动履带分别进行,或者做一些移动和静止时性能不同的单位
回复

使用道具 举报

发表于 2025-4-23 23:11:07 来自手机 | 显示全部楼层
深蓝de写轮眼 发表于 2025-4-22 17:53
这样还可以让车辆的特效和可动履带分别进行,或者做一些移动和静止时性能不同的单位 ...

特效和可动履带分开的话是不是会导致特效重新播放,这样一来不如转shp(并不)
回复

使用道具 举报

 楼主| 发表于 2025-4-23 23:23:45 | 显示全部楼层
白羽鸽 发表于 2025-4-23 23:11
特效和可动履带分开的话是不是会导致特效重新播放,这样一来不如转shp(并不) ...

应该是的
突然想到这样的话停车的时候履带也会复位了= =
看来还是用来优化机甲动作好了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|Archiver|手机版|管理员邮箱|红警DIY论坛 |网站地图

GMT+8, 2026-8-27 04:54 , Processed in 0.051270 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表