跳转到内容
主菜单
主菜单
移至侧栏
隐藏
导航
首页
所有类别
站点
所有页面
最近更改
随机页面
交流
论坛
Tools
RA2DIY
搜索
搜索
外观
登录
个人工具
登录
RA2DIY-WIKI 当前处于维护模式:
页面上的内容随时可能发生更改且不会事先告知。
查看“︁Kratos:说明书/移动器”︁的源代码
页面
讨论
不转换
不转换
简体
繁體
大陆简体
香港繁體
澳門繁體
大马简体
新加坡简体
臺灣正體
阅读
查看源代码
查看历史
工具
工具
移至侧栏
隐藏
操作
阅读
查看源代码
查看历史
常规
链入页面
相关更改
页面信息
外观
移至侧栏
隐藏
←
Kratos:说明书/移动器
因为以下原因,您没有权限编辑该页面:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
Kenosis提示:'''当前Vector为预览版''',是VibeCoding的结果,算法需要人类程序猿审查并优化。当前版本仅供初步撰写INI观察效果。 预览版DLL: <nowiki>https://pan.baidu.com/s/1877pQOrf5JkMSOM6gmJ_VA</nowiki> 提取码: 1145 2026.6.16 Vector (向量)是纯移动效果器,Duration 期间强制修改附着对象坐标。 适用于 Projectile、Aircraft、Jumpjet Vehicle、Infantry 等。 BuildingTypes 永久免疫。 所有标签写在 [AttachEffectSection] 下,前缀为 Vector. Vector 将"位移"抽象为 5 种独立模式,每个 AE 同时只激活一种 按优先级匹配:Freeze > Circle > MoveTo > ReachTarget > Speed === '''核心设计:''' === 1. 硬控制 Force=yes 时,Vector 暴力设定坐标挪移, 引擎自身的 Velocity / 轨迹 / FlakScatter 全部被绕过。 Vector 默认 Force=yes,所有模式自动硬控。 2. 参考系 位移计算需要一个原点和一个 FLH 朝向(F 轴)。 Origin 定义了原点来源和 F 轴的计算方式。 Z 轴不参与 F/L 轴计算,坐标系严格二维。 3. 叠加 多个 Vector AE 可同时附加,每个独立计算位移向量, 最终所有运动合并出总向量进行挪移。 4. 链式切换 通过 Next= 标签串联多个 AE 实现多阶段运动脚本 === 通用标签 === Vector.TimeStep=N 运动颗粒度。每 N 帧执行一次位移。 默认 1(每帧执行)。非运动帧时作用对象冻结。 Vector.Origin=FLH / Launcher / Target / Source 定义位移参考系的原点和 F 轴朝向。 FLH = 抛射体自身朝向(Velocity 方向),Techno 用 TurretFacing(默认) Launcher = 发射者为原点,F 轴 = 发射者 TurretFacing Target = 目标为原点,F 轴 = 目标 → 抛射体连线 Source = AE 来源单位为原点,F 轴 = 来源 → 抛射体连线 默认 FLH。 Vector.OriginFLH=F,L,H Origin=FLH 时的原点偏移(FLH 坐标系),基点 = 抛射体自身坐标。 默认 0,0,0。 Vector.OriginNoUpdate=yes/no yes = 原点锁定在获得 AE 瞬间的坐标,不跟随 Origin 移动。 no = 每帧根据 Origin 类型动态刷新原点和 F 轴。 默认 no。 Vector.Force=yes/no yes = 彻底跳过引擎轨迹计算,Vector 直接 SetLocation 控制位置。默认Yes。 no = 引擎轨迹正常计算,但 Vector 仍施加 MoveDisp 偏移。用No的话表现模式非常奇妙,不太可控。 Vector.Freeze=yes/no yes = 冻结在获得 AE 时的位置,Duration 继续计时。 Freeze 为最高优先级,启用时强制挪移,无视其他任何Vector。 默认 no。 === Circle 模式(圆周运动) === 圆心 = Origin。半径/线速/角速三选二,未设的一项自动推算。 半径每帧动态计算,支持增长、收缩和边界结束。 基础参数 Vector.CircleRadius=N 初始圆半径(lepton)。不写代表自动取抛射体到原点的当前 XY 距离。 默认 -1。 Vector.CircleSpeed=N 速率(lepton/step),沿圆周切向。正值逆时针,负值顺时针。建议用角速度,别写这个。 未设时由半径和角速度自动推算:speed = radius × angleStep(弧度)。 默认 0。 Vector.CircleAnglePerStep=N 角速度(°/step),正值逆时针,负值顺时针。 未设时由半径和线速度自动推算:angleStep = speed / radius(弧度转度)。 默认 0。 随机初始值 Vector.CircleRandomRadius=Min,Max 随机初始半径范围,覆盖 CircleRadius。Max>Min 时生效。 默认空(不随机)。 Vector.CircleRandomAngle=Min,Max 随机初始角速度范围(°),覆盖 CircleAnglePerStep。Max>Min 时生效。 默认空(不随机)。 半径动态 Vector.CircleRadiusGrow=N 半径每步增长率(lepton/step)。正值外扩(外螺旋),负值内缩(内螺旋)。 默认 0(半径恒定)。 Vector.CircleMaxRadius=N 半径上限(lepton)。0 = 不限。 默认 0。 Vector.CircleMinRadius=N 半径下限(lepton)。0 = 不限。 默认 0。 Vector.CircleEndOnMaxRadius=yes/no yes = 半径达到上限时强制结束 AE。 默认 no。 Vector.CircleEndOnMinRadius=yes/no yes = 半径达到下限时强制结束 AE。 默认 no。 速度动态 Vector.CircleSpeedAcceleration=N 速率每步加速度(lepton/step²)。正=加速,负=减速。建议用角速度。 默认 0。 Vector.CircleMaxSpeed=N 线速度上限。0 = 不限。 默认 0。 Vector.CircleMinSpeed=N 线速度下限。0 = 不限。 默认 0。 角速度动态 Vector.CircleAngleAcceleration=N 角速度每步加速度(°/step²)。正=加速,负=减速。 默认 0。 Vector.CircleMaxAngle=N 角速度上限。0 = 不限。 默认 0。 Vector.CircleMinAngle=N 角速度下限。0 = 不限。 默认 0。 === MoveTo 模式(FLH 强制位移) === 每帧在自身 FLH 坐标系下施加固定位移向量。 Vector.MoveTo=F,L,H FLH 坐标系位移向量(lepton/step)。 F=前进方向,L=左方向,H=高度方向。 默认 0,0,0(不启用 MoveTo 模式)。 Vector.GrowRate=F,L,H 每运动帧增量(lepton/step),随时间缩放 MoveTo。 受 TimeStep 约束。 默认 0,0,0。 Vector.AnglePerStep=N 每运动帧自增角度(°/step),叠加到当前 FLH 朝向上。 0 = 跟随物体当前朝向;非 0 = 位移向量持续自旋。 默认 0。 === Speed / ReachTarget 模式 === 以 Origin + TargetFLH 定义世界坐标目标点,从当前位置追踪。 目标点 Vector.TargetFLH=F,L,H 目标点(FLH 坐标系,相对 Origin)。 默认 0,0,0。 Vector.TargetOffsetF=Min,Max Vector.TargetOffsetL=Min,Max Vector.TargetOffsetH=Min,Max 目标随机偏移范围。获得 AE 时随机一次,之后固定。 默认 0,0。 Vector.ReachTarget=yes/no yes = 根据剩余 Duration 自动调节每帧速度,保证恰好在结束前到达。 Ignore: InitialSpeed / Acceleration / MaxSpeed / MinSpeed。 no = 使用 Speed 模式,恒速或加速飞行。 默认 no。 Vector.ArcHeight=N 抛物线弧高(lepton)。仅 ReachTarget=yes 时生效。 正=先升后降(上凸弧),负=先降后升(下凹弧),0=直线。 弧高叠加在起终点连线上:Z(t) = Z0 + (Z1-Z0)·t + 4·H·t·(1-t)。 默认 0。 <s>'''有这玩意就可以把你的Arcing抛射体全刨了'''</s> Speed(恒速/加速) Vector.InitialSpeed=N 初始线速度(lepton/step)。-1 = 读取单位 Speed 属性。 默认 -1。 Vector.RandomSpeed=Min,Max 随机初始速度范围,覆盖 InitialSpeed。Max>Min 时生效。 默认空(不随机)。 Vector.Acceleration=N 线加速度(lepton/step²)。每运动帧叠加,受 TimeStep 约束。 默认 0。 Vector.MaxSpeed=N 最大速度钳位。-1 = 不限。 默认 -1。 Vector.MinSpeed=N 最小速度钳位。-1 = 不限。 默认 -1。 Vector.AllowFallingDestroy=yes/no yes = AE 结束后,若单位在空中且超出指定高度,摔死。 no = 结束后自由坠落。 默认 no。 Vector.FallingDestroyHeight=N 致死高度(lepton)。AllowFallingDestroy=yes 时有效。 超出此高度则摔死,否则正常坠落。 未设时使用当前高度对地面差值。 默认使用高度差。 === 参考系 === 四种 Origin 的实现机制: FLH(默认) Vector.OriginFLH=F,L,H 手动指定参考点坐标偏移,不写就是自身000坐标 F 轴 = 抛射体自身 Velocity 方向(Techno 用 TurretFacing) L 轴 = F 轴逆时针 90° 原点 = 抛射体坐标 + OriginFLH 偏移(OnStart 时锁定快照) 非 NoUpdate 时原点 = 抛射体当前坐标 + OriginFLH 偏移 Launcher F 轴 = 发射者 TurretFacing L 轴 = F 轴逆时针 90° 原点 = 发射者坐标(每帧刷新,OriginNoUpdate=yes 则锁定附着AE瞬间位置) Target F 轴 = 目标 → 抛射体连线 L 轴 = F 轴逆时针 90° 原点 = 目标坐标 每帧刷新,OriginNoUpdate=yes 则锁定附着AE瞬间位置。 Source F 轴 = AE 来源单位 → 抛射体连线(atan2 实时计算) L 轴 = F 轴逆时针 90° 原点 = AE 来源单位坐标(每帧刷新,OriginNoUpdate=yes 则锁定 OnStart 瞬间位置)。 所有模式下 F/L 轴仅使用 XY 分量计算,Z 不纳入,避免坐标系倾斜。 RotateFLH 旋转公式:Y 轴镜像(与引擎 FLH 一致)。 === 所有AE都带的的通用标签 === Duration=N AE 持续时间(帧)。-1 表示永久。 HoldDuration=yes/no yes = Duration 到期后保持 AE 不销毁。 默认 yes(Duration<0 自动 yes)。 Next=AE_SECTION_NAME 当前 AE 结束后自动附加的下一个 AE。支持逗号分隔多个。 AttachOnceInTechnoType=yes/no 同类型单位只附加一次。 Vector.Enable=yes/no 手动启用/禁用。默认自动判断(有位移参数时自动启用)。 === 叠加 === - 多个带 Vector 效果的 AE 同时附加到一个对象时,每个独立计算MoveDisp,最终所有分量相加后一次 SetLocation 应用。 用Next链接一系列Vector即可规划出非常酷炫的飞行轨迹。 测试样例INI: [TestDelivery] Deliver.Types=ZEP [ZEP] Primary=LOCK JumpjetHeight=1800 [LOCK] Damage=1 Range=50 ROF=300 Projectile=InvisibleAll Warhead=LOCKWH OmniFire=yes [LOCKWH]:[TOY] AttachEffectTypes=Zidong CellSpread=10 [Zidong] AutoWeapon.Types=HoverMissile AutoWeapon.IsAttackerMark=yes AutoWeapon.ReceiverAttack=no Duration=50 [120mm] Range=25 [AP] AttachEffectTypes=VECTOR,SPIN CellSpread=10 [SPIN] BodySpin.Speed=20 BodySpin.SweepPeriod=400 [HoverMissile] Burst=2 Damage=1 Range=60 ROF=1 Speed=100 ProjectileRange=114514 Projectile=AAHeatSeeker2 [AAHeatSeeker2] AttachEffectTypes=VECTOR Image=DRAGON ROT=100 Shadow=yes [VECTOR] Duration=35 Vector.TargetFLH=0,0,2500 Vector.Origin=FLH Vector.Force=yes Vector.TimeStep=1 AttachOnceInTechnoType=yes Vector.ReachTarget=yes Vector.ArcHeight=0 Next=SPREAD Vector.OriginNoUpdate=yes [SPREAD] Duration=70 Vector.TargetFLH=0,0,0 Vector.Force=yes AttachOnceInTechnoType=yes Vector.ReachTarget=yes Vector.TargetOffsetH=-600,600 Vector.TargetOffsetF=-600,600 Vector.TargetOffsetL=-600,600 Next=GOTO [GOTO] Duration=40 Vector.TargetFLH=1000,0,2500 Vector.Origin=Source Vector.Force=yes Vector.ArcHeight=1000 AttachOnceInTechnoType=yes Vector.ReachTarget=yes Next=CIRCLE,MOVETO Vector.TargetOffsetH=0,800 Vector.TargetOffsetF=0,800 Vector.TargetOffsetL=-100,100 [CIRCLE] Duration=4000 Vector.CircleRandomAngle=5,15 Vector.Origin=Source Vector.Force=yes Vector.CircleRadiusGrow=-5 Vector.CircleEndOnMinRadius=yes Vector.CircleMinRadius=50 [MOVETO] Duration=200 Vector.MoveTo=1,0,-7
返回
Kratos:说明书/移动器
。
搜索
搜索
查看“︁Kratos:说明书/移动器”︁的源代码
添加话题