跳转到内容
RA2DIY-WIKI 当前处于维护模式:页面上的内容随时可能发生更改且不会事先告知。

Kratos:说明书/移动器:修订间差异

来自RA2DIY
Kenosis留言 | 贡献
无编辑摘要
Kenosis留言 | 贡献
无编辑摘要
第5行: 第5行:
<nowiki>https://pan.baidu.com/s/1877pQOrf5JkMSOM6gmJ_VA</nowiki> 提取码: 1145  
<nowiki>https://pan.baidu.com/s/1877pQOrf5JkMSOM6gmJ_VA</nowiki> 提取码: 1145  


2026.6.16
2026.8.4




Vector系统实质上就是对附着的抛射体或单位进行暴力挪移。用于单位时因为wwsb的神奇格子系统,单位飞行过程中死亡时大概率引发崩溃,建议尽量少用到单位上。不可用于建筑。


Vector 向量)是纯移动效果器,Duration 期间'''<u>强制修改附着对象坐标</u>'''
Vector是可混合的AE,多个Vector各自计算移动向量后复合出唯一的移动


[https://www.bilibili.com/opus/1214494881641136144?spm_id_from=333.1387.0.0 暴力挪移!!]
Vector产生的运动有5种模式:


适用于 Projectile、Aircraft、Jumpjet Vehicle、Infantry 等
Freeze:最高权限,冻结在空中,此时一切Vector的移动量都会被强制归零


BuildingTypes 永久免疫
MoveTo:以lepton计算的位移量。每帧运动这么多


所有签写在 [AttachEffectSection] 下,前缀为 Vector.
Speed:直线运动。默认行为是飞到目坐标后AE自动结束。


Vector 将"位移"抽象为 5 种独立模式每个 AE 同时激活一种
ReachTarget:无视速度,只读取Duration,Duration结束后必然飞到目标。


按优先级匹配:Freeze > Circle > MoveTo > ReachTarget > Speed
Circle:画圈除了圆的运动外,还支持圆心复合其他运动类型,如圆心也画圆,圆心飞向目标等。
 
{| class="wikitable"
=== '''核心设计''' ===
|标签名  (Vector.xxx)
1. 硬控制。Vector结束后抛射体回归原有轨迹所以建议你只用ROT=100
|类型
  Force=yes 时,Vector 暴力设定坐标挪移,
|默认
  引擎自身的 Velocity / 轨迹 / FlakScatter 全部被绕过。
|详细说明
  Vector 默认 Force=yes,所有模式自动硬控。
|-
 
! colspan="4" |<big>通用设定</big>
2. 参考系
|-
  位移计算需要一个原点和个 FLH 朝向(F 轴)。
|Vector.TimeStep
  Origin 定义了原点来源和 F 轴的计算方式
|int
  Z 参与 F/L 算,坐标系严格二维
|1
 
|每隔 TimeStep  帧才执行次运动计算。非运动帧 MoveDisp 为空(子弹/单位位置变),但 _elapsedFrames 仍然递增(时不停)。默认 1  表示每帧都动
3. 叠加
|-
  多个 Vector AE 可同时附加每个独立算位移向量,
|Vector.DisabledFrames
  最终所有运合并出总向量进行挪移
|int
 
|0
4. 链式切换
|AE 启动后冻结前 N 帧。冻结期间  MoveDisp 恒为 {0,0,0}入运帧数。抛射体/单位在此期间仍可被其他机制挪移,只是这一个 Vector 不产生位移。作用是快照Vector生效时的原点坐
  通过 Next= 签串联多个 AE 实现多阶段运动脚本
|-
 
|Vector.SyncFacing
=== 通用标签 ===
|bool
Vector.TimeStep=N
|no
  运动颗粒度。每 N 帧执行一次位移。
|yes:抛射体的头部朝向运动方向写 Velocity,单位转向运动方向(改 PrimaryFacing)。no:不碰朝向,抛射体维持引擎默认指向目标,单位维持原朝向建议别用yes,会让抛射体提前被引擎引爆
  默认 1每帧执行。非运动帧时作用对象冻结
|-
 
|Vector.OriginIsOnWorld
Vector.Origin=Self / Launcher / Target / Source
|bool
  定义位移参考系的原点和 F 轴朝向。
|no
  Self      = 抛射体自身朝向(Velocity 方向),Techno 用 TurretFacing(默认)
|yes:所有 FLH  偏移锁定世界坐系(F→世界+Y即北,L世界+X即东),完全无视单位/弹/参考系的朝向。搭配 CircleOrigin  等可做"绝对高度"偏移。
  Launcher = 发射者为原点,F 轴 = 发射者 TurretFacing
|-
  Target  = 目标为原点,F 轴 = 目抛射连线
|Vector.OriginIsOnBody
  Source  = AE 来源单位为原点,F = 来源 体连线
|bool
  默认 Self
|no
 
|仅在 Origin=Self 或  Launcher 时生效。yes:F 取车身 PrimaryFacing(无视炮塔旋转)。no:取炮塔 TurretFacing。对 TargetFLH  的 FLH世界坐标投也有影响
Vector.OriginFLH=F,L,H
|-
原点偏移(FLH 坐标),根据各种origin适应。
|Vector.Origin
 
|enum
Vector.OriginIsOnBody=yes/no
|Self
 
|Self,  Target, Launcher, Source。 定义原点参考。Self:以弹体/单位身为原点,F 轴=弹体朝向或单位 TurretFacing。Target:以攻击目标为原点单位跟踪,地面锁定),F 轴=目标→弹体方向。Launcher:以发射者为原点,F 轴=发射者自身的炮塔。Source:以  AE Source 对象为原点,F 轴=Source→弹体方向。
Vector.OriginIsOnWorld=yes/no
|-
原点计算时使用单位车身而非炮塔原点计算时直接使用世界坐标FLH
|Vector.OriginFLH
 
|CoordStruct
Vector.OriginNoUpdate=yes/no
|0,0,0
  yes = 原点锁定在获得 AE 瞬间的坐标,不跟随 Origin
|对 Origin 原点施加 FLH 移。
  no = 每帧根据 Origin 类型动态刷新原点和 F 轴。注意参点如果是自己且update的话会累加导致超高速飞行
|-
  默认 no。
|Vector.OriginNoUpdate
 
|bool
目标
|no
 
|yes:原点在 OnStart  时快,后续不再跟踪目标/发射者的移动。no:每帧重新计算参考系(Target 跟踪目标移动,Launcher 跟踪发射者移动)。
Vector.TargetFLH=F,L,H
|-
  目标点(FLH 坐标系,相对 Origin)。
|Vector.Force
  默认 0,0,0。
|bool
 
|yes
Vector.TargetOffsetF=Min,Max
|默认所有模式  Force=yes抛射体:yes=SetLocation 暴力挪移不叠加引擎自身运动;no=引擎轨迹+Vector  位移叠加。单位:yes=跳过路径碰撞校验直接 SetLocation(可高空穿墙),首次进入时切换 Locomotor 为 Jumpjet;no=走 CanMoveTo 路径校验撞墙反弹
 
|-
Vector.TargetOffsetL=Min,Max
|Vector.AllowFallingDestroy
 
|bool
Vector.TargetOffsetH=Min,Max
|no
  目标随机偏移范围获得 AE 时随机一次之后固定。
|Vector  是否允许摔死。yes:当高度 > FallingDestroyHeight 判定
  默认 0,0。
|-
 
|Vector.FallingDestroyHeight
Vector.Force=yes/no
|int
  yes = 彻底跳过引擎轨迹计算,Vector 直接 SetLocation 控制位置。默认Yes。
|LevelHeight
  no = 引擎轨迹正常计算但 Vector 仍施加 MoveDisp 偏移。用No的话表现模式非常奇妙,不太可控
|摔死判的高度阈值。低于此高度不判死。默认值为引擎的 LevelHeight 常量(约为 1 个单位层高)
 
|}
Vector.Freeze=yes/no
{| class="wikitable"
  yes = 冻在获得 AE 的位置,Duration 继续计
! colspan="4" |<big>Freeze模式</big>
        Freeze 为最高优先级,启用时强制锁,无视其他任何Vector
|-
  默认 no。
|Vector.Freeze
Vector.AllowFallingDestroy=yes/no
|bool
  yes = AE 结束后,若单位在空中且超出指定高度,摔死。
|no
  no = 结束后自由坠落
|最优先级模式。yes:首帧快照当前位置为  FrozenPos,之后每帧计算位=FrozenPos-当前置,始终拉回冻结位置。抛射体会自动开启 Force=true。Freeze 存在时所有其他运动模式(Circle/MoveTo/Speed/ReachTarget)均会执行
  默认 no。
|}
 
{| class="wikitable"
Vector.FallingDestroyHeight=N
! colspan="4" |<big>MoveTo 模式</big>
  致死高度(lepton)。AllowFallingDestroy=yes 时有效。
|-
  超出此度则摔死,否则正常坠落。
|Vector.MoveTo
  未设时使用当前高度对地面差值。
|CoordStruct
  默认使用高度差。
|0,0,0
Vector.SyncFacing
|纯  FLH 位模式。每将 MoveTo 作为 FLH (F=沿 F 轴方向,L=垂直 F  轴,H=高度),转换成世界坐标位移叠加到弹体/单位上。Force 自动为 true。
  同步Vector动方向。默认Yes,Yes可以让单按照Vector的移动向量同步自身朝向。抛射体设No时始终指向己的攻击目标。
|-
 
|Vector.GrowRate
Vector.DisabledFrames
|CoordStruct
  这么多帧内不进行挪移计算。用InitialDelay的原因是InitialDelay状态下无法获取Origin可以记录初始坐标快照,Origin=FLH,此期间其他Vector可以进行挪,disabled时间结束后再以快照坐标点继续进行其他运动。注意要从总Duration里面减去Disabled数,才是运动帧数。
|0,0,0
生效时快照当前位置,50帧后挪回快照位置。期间其他Vector正常运转。
|每运动帧  FLH 线性增量:MoveTo 的实际值 = MoveTo + GrowRate×运动帧数。可实现持续加速的位移(呼吸/螺旋/振幅效果)。
 
|-
[SNAPSHOT]
|Vector.AnglePerStep
 
|double
Duration=120
|0
 
|MoveTo 的自旋角度增量(度/步。非零时在 MainFacing 每帧叠加该角度,实现 FLH 位移的自旋。比较原始
Vector.TargetFLH=0,0,0
|}
 
{| class="wikitable"
Vector.Origin=FLH
! colspan="4" |<big>Speed模式</big>
 
|-
Vector.Force=yes
|Vector.LinearSpeed
 
|int
AttachOnceInTechnoType=yes
| -1
 
|Speed  模式的初始线速度(lepton/步)。-1=读取单位 Speed(Jumpjet 读取 JumpjetSpeed,否则读 Speed;抛射体读  pBullet->Speed)。≥0 直接使用。RandomSpeed 非退化时覆盖
Vector.ReachTarget=yes
|-
 
|Vector.RandomSpeed
Vector.DisabledFrames=50
|int,int
 
|0,0
Vector.OriginNoUpdate=yes
|初始速随机范围  (Min,Max)非退化时覆盖 LinearSpeed。
 
|-
 
|Vector.MaxSpeed
=== MoveTo 模式(FLH 强制位移===
|int
每帧在自身 FLH 坐标系下施加固定位移向
| -1
 
|速度-1=不限
如果Origin设为Target,则F轴是Target指向抛射体的向量。只写F轴的MoveTo向量就可以定向飞行。
|-
 
|Vector.MinSpeed
Vector.MoveTo=F,L,H
|int
  FLH 坐标系位移向量(lepton/step)。
| -1
  F=前进方向,L=左方向,H=高度方向。
|速度下限。-1=不限
  默认 0,0,0(不启用 MoveTo 模式)。
|-
 
|Vector.Acceleration
Vector.GrowRate=F,L,H
|int
  每运动帧增量(lepton/step,随时间缩放 MoveTo
|0
  受 TimeStep 约束
|Speed  模式下:每帧线速度增量(speed += Acceleration×绝对帧数)。Circle 模式下注:若 CircleSpeedAcceleration=0 时自动复Acceleration 作为圆加速
  默认 0,0,0
|-
 
|Vector.SpeedEndOnReach
Vector.AnglePerStep=N
|bool
  每运动帧自增角(°/step)叠加到当前 FLH 朝向上。
|yes
  0 = 跟随物体当前朝向;非 0 = 位移向量持续自旋
|yes=抵达目标坐标点即强制束AE并钳位到目标点(修复飞越后抽搐);no=越过目标继续飞不支持弧线
  默认 0。
|-
 
! colspan="4" |<big>ReachTarget 模式</big>
=== Speed / ReachTarget 模式 ===
|-
以 Origin + TargetFLH 定义世界坐标目标点,从当前位置追踪
|Vector.ReachTarget
 
|bool
Vector.ReachTarget=yes/no
|no
  yes = 根据剩余 Duration 自动调节每帧速度,保证恰好在结束前到达。
|剩余帧数强制到达模式每帧位移 = 剩余距离÷剩余帧数保证在 Duration 结束时恰好到达目标。超时Force=yes 时接 SetLocation 到目标,Force=no  时无位移自然结束
        Ignore: InitialSpeed / Acceleration / MaxSpeed / MinSpeed。
|-
  no = 使Speed 模式,恒速或加速飞行
|Vector.ReachTargetEarlyEnd
  默认 no。
|int
Vector.ReachTargetEarlyEnd=N
|0
提前在距离到达还有N帧移除Vector效果器
|提前结束帧。>0 当剩余运帧  ≤ 该值时 Deactivate 提前交还控制权给引擎。
 
|-
Vector.ArcHeight=N
! colspan="4" |<big>'''ReachTarget和Speed的弧控制和目标偏移'''</big>
 
|-
Vector.RandomArcHeight=Min,Max
|Vector.TargetFLH
  抛物线弧高(lepton)。仅 ReachTarget=yes 时生效
|CoordStruct
  正=先升后降(上凸弧)负=先降升(下凹弧),0=直线
|0,0,0
  弧高叠加在起终点连线上:Z(t) = Z0 + (Z1-Z0)·t + 4·H·t·(1-t)。
|目标参考点在 Origin 参考系中 FLH 坐标。Origin=Self 以弹体/单位为参考,Origin=Target 时以目标为参考。叠加 TargetOffset  随机偏移后计算世界坐标。
  默认 0。
|-
 
|Vector.TargetOffsetF
Vector.ArcRotation=N,
|int,int
 
|0,0
Vector.RandomArcRotation=Min,Max
|目标 F 轴随机偏移  (Min,Max),首帧随机抽取作用在 TargetFLH 上。
抛物线旋转度,随机旋转度数,-360-360,正数为顺针转
|-
 
|Vector.TargetOffsetL
Vector.ArcPeakPercent=N (如30)
|int,int
抛物线顶点在整个线百分比,默认就是50,没有百分号,意味着50%,飞行到一半到达弧线顶峰
|0,0
 
|目标 L 轴随机偏移
 
|-
Vector.RandomArcPeaPercent=20,70
|Vector.TargetOffsetH
上面这玩意的随机化版本填Min,Max
|int,int
 
|0,0
<s>'''有这玩意就可以把你的Arcing抛射体全刨了,大一统抛射体,只用ROT类就够'''</s>
|目标 H 随机偏移
 
|-
=== Speed模式(恒速/加速) ===
|Vector.TargetOffsetFRanges
Vector.InitialSpeed=N
|double×4
  初始线速度(lepton/step)。-1 = 读取单位 Speed 属性
|0,0,0,0
  默认 -1。
|四参数版随机Offset
 
|-
Vector.RandomSpeed=Min,Max
|Vector.TargetOffsetLRanges
  随机初始速度范围,覆盖 InitialSpeed。Max>Min 时生效。
|double×4
  默认空(不随机
|0,0,0,0
 
|四参数版随机Offset
Vector.Acceleration=N
|-
  线加速度(lepton/step²)。每运动帧叠加,受 TimeStep 约束。
|Vector.TargetOffsetHRanges
  默认 0。
|double×4
 
|0,0,0,0
Vector.MaxSpeed=N
|四参数版随机Offset
  最大速度钳位。-1 = 不限。
|-
  默认 -1。
|Vector.TargetOffsetRadius
 
|int,int
Vector.MinSpeed=N
|0,0
  最小速度钳位。-1 = 不限。
|以距离计算的随机偏移范围
  默认 -1。
|-
 
|Vector.TargetOffsetRadiusRanges
=== Circle 模式(圆周运动) ===
|double×4
圆心 = Origin。半径/线速/角速三选二,未设的一项自动推算。
|0,0,0,0
半径每帧动态计算,支持增长、收缩和边界结束。
|四参数版偏移范围
 
|-
基础参数  
|Vector.TargetOffsetSphere
 
|bool
Vector.CircleRadius=N
|no
  初始圆半径(lepton)。不写代表自动取抛射体到原点的当前 XY 距离。
|偏移量是否以球面计算,no则用圆面,高度用平面坐标的TargetOffsetH / TargetOffsetHRanges语句控制
  默认 -1。
|-
 
|Vector.TargetOffsetAngles
Vector.CircleSpeed=N
|double×4
  速率(lepton/step)沿周切。正值逆时针负值顺时针。建议用角速度别写这个。
|0,0,0,0
  未设时由半径和角速度自动推算:speed = radius × angleStep(弧度)。
|许可的偏移角度,四参数环模式(Sphere=no)生效。抛射体指目标的轴与圆的近交点为0远交点为180
  默认 0
|-
 
|Vector.ArcHeight
Vector.CircleAnglePerStep=N
|int
  角速度(°/step值逆时针,负值顺时针
|0
  未设时由半径和线速度自动推算:angleStep = speed / radius(弧度转度)。
|ReachTarget/Speed  抛物线弧高(lepton,0=直线轨迹。=上凸弧,负=下凹弧弧高使用分段抛物线公式段:ax(2-x),降弧段:1-x²。Speed  模式下按剩余距离比例计算进度,弧高增量独立叠加不影响直线速度
  默认 0。
|-
 
|Vector.ArcPeakPercent
随机初始值
|double
 
|50
Vector.CircleRandomRadius=Min,Max
|弧峰所在 Duration  百分比(0-100)。默认 50 即弧峰在终点的中点。
  随初始半径范围,覆盖 CircleRadius。Max>Min 时生效。
|-
  默认空(不随机)
|Vector.RandomArcPeakPercent
 
|double,double
Vector.CircleRandomAngle=Min,Max
|0,0
  随机初始角速度范围(°),覆盖 CircleAnglePerStep。Max>Min 时生效。
|弧峰百分比随机范围 (Min,Max),覆盖 ArcPeakPercent
  默认空(不随机)
|-
 
|Vector.RandomArcHeight
Vector.CircleRandomAngleRanges
|int,int
 
|0,0
填四个数值,如ABCD,初始化取[AB],[CD]区间
|弧高随机范围 (Min,Max),覆盖 ArcHeight
 
|-
 
|Vector.ArcRotation
半径动态
|double
 
|0
Vector.CircleRadiusGrow=N
|弧面旋转角度(度),0=默认弧面朝正上方非零时弧线在空间中以 Rodrigues 旋转公式构造弧面法线方向偏移,不再单纯 Z 轴。
  半径每步增长率(lepton/step)。正值外扩(外螺负值内缩(内螺旋)
|-
  默认 0(半径恒定)。
|Vector.RandomArcRotation
 
|double,double
Vector.CircleMaxRadius=N
|0,0
  半径上限(lepton)。0 = 不限。
|弧面转随机范围 (Min,Max)覆盖  ArcRotation
  默认 0。
|}
 
{| class="wikitable"
Vector.CircleMinRadius=N
! colspan="4" |<big>Circle 模式</big>
  半径下限(lepton)。0 = 不限
|-
  默认 0。
|Vector.CircleRadius
 
|int
Vector.CircleEndOnMaxRadius=yes/no
| -1
  yes = 半径达到上限强制结束 AE
|圆半径(lepton)。-1=自动取弹体/单位当前到圆心的  XY 距离。>0 直接使用。每运动帧叠加 CircleRadiusGrow,受 CircleMaxRadius/CircleMinRadius  钳位
  默认 no。
|-
 
|Vector.CircleSpeed
Vector.CircleEndOnMinRadius=yes/no
|int
  yes = 半径达到下限时强制结束 AE
|0
  默认 no。
|圆周线速度(lepton/步)。>0 即可独立激活 Circle 模式每帧叠加加速度,受 CircleMaxSpeed/CircleMinSpeed 钳位。0 首帧兜底取弹体/单位自身  Speed与 CircleAnglePerStep 共存时角速度优先——线速度由角速度×半径重算,显式 CircleSpeed 被忽略
 
|-
速度动态
|Vector.CircleSpeedAcceleration
 
|int
Vector.CircleSpeedAcceleration=N
|0
  每步加速度(lepton/step²)。正=加速,负=减速。建议用角速度
|线每步加速度。0 时若通用  Acceleration≠0 则复用 Acceleration
  默认 0。
|-
 
|Vector.CircleMaxSpeed
Vector.CircleMaxSpeed=N
|int
  线速度上限。0 = 不限。
|0
  默认 0。
|线速度上限。0=不限。
 
|-
Vector.CircleMinSpeed=N
|Vector.CircleMinSpeed
  线速度下限。0 = 不限。
|int
  默认 0。
|0
 
|线速度下限。0=不限。
角速度动态
|-
 
|Vector.CircleAnglePerStep
Vector.CircleAngleAcceleration=N
|double
  角速度每步加速(°/step²)。正=负=减速。
|0
  默认 0。
|圆周角速度度/)。>0  即可独立激活 Circle 模式。每帧叠CircleAngleAcceleration受 CircleMaxAngle/CircleMinAngle  钳位。优先级高于 CircleSpeed——两者都设时,线速度由角度×半径重算
 
|-
Vector.CircleMaxAngle=N
|Vector.CircleAngleAcceleration
  角速度限。0 = 不限。
|double
  默认 0。
|0
 
|角速度每步加速度。
Vector.CircleMinAngle=N
|-
  角速度下限。0 = 不限。
|Vector.CircleMaxAngle
  默认 0。
|double
 
|0
==== 倾斜圆周运动(逐渐变得复杂) ====
|角速度上限。0=不限。
Vector.AllowedTilt=yes/no
|-
 
|Vector.CircleMinAngle
  yes = 坐标系可绕 XY 面倾斜,Source/Target 的 F 轴纳入 Z 轴差。写了法向量就会自动视为yes。
|double
 
|0
yes且没有法向量的话就会在计算坐标轴同时自动计算Z轴。
|角速度下限。0=不限。
 
|-
Vector.CircleOrigin=F,L,H
|Vector.CircleOrigin
 
|CoordStruct
  圆心偏移。默认世界坐标加法,AllowOriginTilt=yes 时沿 FLH 轴旋转。建议倾斜时候一定要设置
|0,0,0
 
|圆心偏移。AllowOriginTilt=no  时直接世界坐标(圆心=Origin点+CircleOrigin),无视朝。AllowOriginTilt=yes 作为 FLH  偏移跟随转旋转(F=沿 facing,L=垂直 facing,H=Z)
Vector.AllowOriginTilt=yes/no
|-
 
|Vector.AllowOriginTilt
  yes = CircleOrigin 法向量倾斜旋转
|bool
 
|no
  no  = CircleOrigin 纯世界坐标加法(默认)
|是否允许圆心随物体倾斜而移动
 
|-
Vector.NormalVector=F,L,H
|Vector.CircleRandomRadius
 
|int,int
  FLH 坐标系圆面法向量。FLH世界坐标系。F=右上方(North)
|0,0
 
|初始半径机范围  (Min,Max)非退化时首帧从范围随机抽取,覆盖显式 CircleRadius
  设此后自动启用倾斜坐标系
|-
 
|Vector.CircleRandomAngle
Vector.NormalRandomF=Min,Max
|double,double
 
|0,0
Vector.NormalRandomL=Min,Max
|初始角速度随机范围  (Min,Max)。非退化时首帧从范围随机抽取,覆盖显式 CircleAnglePerStep。注意不是 4 值:只是单区间随机
 
|-
Vector.NormalRandomH=Min,Max
|Vector.CircleRandomAngleRanges
 
|double×4
  法向量各分量随机初始化范围
|0,0,0,0
 
|初始角速度 4 值双区间  (min1,max1,min2,max2),50% 概率从区间 1 或区间 2 抽取。覆盖显式 CircleAnglePerStep 和  CircleRandomAngle。
Vector.NormalFAnglePerStep=N
|-
 
|Vector.CircleRadiusGrow
Vector.NormalLAnglePerStep=N
|int
 
|0
Vector.NormalHAnglePerStep=N
|每运动帧半径增量(lepton/)。正=外扩,负=内缩。
 
|-
  法向量每运动帧固定旋转角速度(°/step)。
|Vector.CircleMaxRadius
 
|int
Vector.NormalFAngleRanges=A,B,C,D
|0
 
|半径上限。0=不限。达到上限时由  CircleEndOnMaxRadius 控制是否结束。
Vector.NormalLAngleRanges=A,B,C,D
|-
 
|Vector.CircleMinRadius
Vector.NormalHAngleRanges=A,B,C,D
|int
 
|0
  法向量旋转的角速度双区间随机仅对应 AnglePerStep=0 时生效
|半径下限。0=不限达到下限时由  CircleEndOnMinRadius 控制是否结束
 
|-
  A,B,C,D 全等=常数角速度
|Vector.CircleEndOnMaxRadius
 
|bool
=== Vector.Origin.* 圆心运动(Circle 模式专用) ===
|no
使圆心本身在 FLH 坐标系内运动。上面所有那些玩意再嵌套。非常的粪
|yes:半径≥CircleMaxRadius  时 Deactivate 结束 AE
 
|-
Vector.Origin代表运动的是圆心。简化了很多东西,因为嵌套太复杂了谁都看不明白,不要直接在上面的语句内插入.Origin,有的语句就是没做嵌套模式,以下面列举的为准。
|Vector.CircleEndOnMinRadius
 
|bool
==== 通用 ====
|no
Vector.Origin.Origin=FLH/Launcher/Target/Source
|yes:半径≤CircleMinRadius  时 Deactivate 结束 AE
 
|-
  圆心运动的基座参考系。设定 NormalVector 时被覆盖。
|Vector.AllowCircleTilt
 
|bool
  Target/Source/Launcher 均实时追踪移动对象。
|no
 
|否允许圆面随着附着物体倾斜而倾斜
  默认 FLH。
|-
 
|Vector.Lissajous
Vector.Origin.OriginFLH=F,L,H
|int
 
|0
  Origin=FLH 时的手动基准向量(F=北, L=东, H=高)
|Lissajous曲线变化速度
 
|-
  默认空
! colspan="4" |<big>NormalVector 圆面法线(倾斜圆面)</big>
 
|-
Vector.Origin.CircleOffset=F,L,H
|Vector.NormalVector
 
|CoordStruct
  圆心初始世界偏移。设 AllowOriginTilt=yes 时沿 FLH 轴旋转。
|0,0,0
 
|圆面法向量,FLH 坐标系。决定圆如何倾斜世界坐标
  默认 0,0,0
|-
 
|Vector.NormalRandomF
Vector.Origin.AllowOriginTilt=yes/no
|CoordStruct
 
|0,0
  yes = CircleOffset 沿 Current FLH 轴旋转
|法向量 F 分量的随机范围  (Min,Max),首帧抽取后叠加到 NormalVector
 
|-
  默认 no
|Vector.NormalRandomL
 
|CoordStruct
Vector.Origin.Lissajous=yes/no
|0,0
 
|法向量 L 分量随机范围
  yes = 累积大角旋转,圆心每帧绕整圈翻转方向,
|-
 
|Vector.NormalRandomH
        产生增减边 Lissajous 震荡曲线。
|CoordStruct
 
|0,0
  no  = 增量旋转默认),圆心逐小步连续旋转
|法向量 H 分量随机范围。
 
|-
        弹体追踪圆心,形成平滑行星轨迹。
|Vector.NormalFAnglePerStep
[[File:Lissajous曲线.gif|thumb|Lissajous曲线,就是减减面,反转,加速加面,反转]]
|double
 
|0
==== MoveTo 模式 ====
|绕 F  轴的角速度度/步),常数模式。面的法线每运动绕 F 轴旋转该角度。
Vector.Origin.MoveTo=F,L,H
|-
 
|Vector.NormalLAnglePerStep
  FLH 位移向量(lepton/step。圆心沿此方向匀速移动
|double
 
|0
Vector.Origin.GrowRate=F,L,H
|绕 L 轴的角度(度/步)。
 
|-
  每步增量(lepton/step)。随帧数线性缩放 MoveTo。
|Vector.NormalHAnglePerStep
 
|double
  默认 0,0,0
|0
 
|绕 H 轴的角速度(度/)。
Vector.Origin.AnglePerStep=N
|-
 
|Vector.NormalFAngleRanges
  每步自旋角度(°/step)。叠加到 FLH 朝向。
|double×4
 
|0,0,0,0
  默认 0
|绕 F 的 4 值双区间  (min1,max1,min2,max2),50% 概率从区间 1 或区间 2  随机抽取常数模式(NormalFAnglePerStep)优先于随机区间。
 
|-
==== Speed 模式 ====
|Vector.NormalLAngleRanges
Vector.Origin.TargetFLH=F,L,H
|double×4
 
|0,0,0,0
  目标点(FLH 坐标系,相对基座)
|绕 L 轴角速度双区间
 
|-
Vector.Origin.TargetOffsetF=Min,Max
|Vector.NormalHAngleRanges
 
|double×4
Vector.Origin.TargetOffsetL=Min,Max
|0,0,0,0
 
|绕 H 轴角速度双区间
Vector.Origin.TargetOffsetH=Min,Max
|}
 
[[File:Lissajous曲线.gif|thumb|Lissajous=1]]
  目标随机偏移。OnStart 随机一次。默认 0,0
{| class="wikitable"
 
! colspan="4" |<big>圆心整体运动</big>
Vector.Origin.InitialSpeed=N
|-
 
! colspan="4" |<big>圆心 MoveTo (Origin.*)</big>
  初始速度(lepton/step)。-1=读取单位 Speed。
|-
 
|Vector.Origin.MoveTo
  默认 -1。
|CoordStruct
 
|0,0,0
Vector.Origin.Acceleration=N
|圆心在基座上的 FLH  位移(lepton/)。非空时圆心运动帧按此偏移移动,朝向使用 _originFacing+自旋角合成的方向,调用  GetFLHAbsoluteOffset 转换
 
|-
  加速度(lepton/step²)。每步加至速。默认 0
|Vector.Origin.GrowRate
 
|CoordStruct
Vector.Origin.MaxSpeed=N
|0,0,0
 
|圆心 MoveTo 的每步增量实际值 = OriginMoveTo + OriginGrowRate×运动帧数
  速度上限-1=不限默认 -1。
|-
 
|Vector.Origin.AnglePerStep
Vector.Origin.MinSpeed=N
|double
 
|0
  速度下限。-1=不限。默认 -1。
|圆心 MoveTo  的自旋角度增量(度/步),叠加在 _originFacing
 
|-
==== ReachTarget 模式 ====
! colspan="4" |<big>圆心  Speed/ReachTarget 模式飞向目标(Origin.*)</big>
Vector.Origin.ReachTarget=yes/no
|-
 
|Vector.Origin.TargetFLH
  yes = 按剩余 Duration 自动调节速度到达目标点,
|CoordStruct
 
|0,0,0
        到达后自动结束 AE。默认 no
|圆心追踪目标在基座坐标系中的 FLH  位置。非空时进入圆心的 Speed/ReachTarget 子模式。OriginReachTarget 控制用何种方式到达。
 
|-
Vector.Origin.ArcHeight=N
|Vector.Origin.LinearSpeed
 
|int
  抛物线弧高(lepton)。仅 ReachTarget=yes 时生效默认 0
| -1
 
| -1=读取单位 Speed。≥0  直接使用该速度。圆心 Speed 子模式的初始线速度
  正=先升后降(上凸弧),负=先降后升(下凹弧),0=直线
|-
 
|Vector.Origin.Acceleration
==== Circle 模式 ====
|int
圆心绕基座做圆周运动(优先级最低)
|0
 
|圆心 Speed 子模式的每步加速度
Vector.Origin.CircleRadius=N
|-
 
|Vector.Origin.MaxSpeed
  半径(lepton)默认 -1(自动取当前距离)
|int
 
| -1
Vector.Origin.CircleSpeed=N
|圆心 Speed  子模式速度上限。-1=不限
 
|-
  线速度(lepton/step)。设后角速度=线速度/当前半径。
|Vector.Origin.MinSpeed
 
|int
  默认 0
| -1
 
|圆心 Speed  子模式速度下限。-1=不限
Vector.Origin.CircleAnglePerStep=N
|-
 
|Vector.Origin.ReachTarget
  角速度(°/step)。仅 CircleSpeed=0 时生效。
|bool
 
|no
  默认 0。
|yes:到达模式,圆心按剩余帧数均分位移,强制到目标  FLH。no:纯速度追踪模式,每帧向目标移动 OriginLinearSpeed 距离
 
|-
Vector.Origin.CircleRandomRadius=Min,Max
|Vector.Origin.SpeedEndOnReach
 
|bool
  初始半径随机范围。默认空。
|yes
 
|yes=圆心抵达目标即结束AE;no=越过目标继续飞
Vector.Origin.CircleRandomAngle=Min,Max
|-
 
|Vector.Origin.ArcHeight
  初始角速度随机范围。默认空
|int
 
|0
Vector.Origin.CircleRadiusGrow=N
|圆心 ReachTarget/Speed  抛物线弧高。0=直线移动。Speed 模式下弧高按剩余距离比例叠加增量,与直线速度解耦
 
|-
  半径每步增长率(lepton/step)。默认 0
|Vector.Origin.TargetOffsetF
 
|int,int
Vector.Origin.CircleMaxRadius=N
|0,0
 
|圆心目标 F 轴随机偏移范围
  半径上限。默认 0(不限)。
|-
 
|Vector.Origin.TargetOffsetL
Vector.Origin.CircleMinRadius=N
|int,int
 
|0,0
  半径下限。默认 0(不限)。
|圆心目标 L 轴随机偏移范围
 
|-
Vector.Origin.CircleEndOnMaxRadius=yes/no
|Vector.Origin.TargetOffsetH
 
|int,int
  半径达上限时结束 AE。默认 no。
|0,0
 
|圆心目标 H 轴随机偏移范围
Vector.Origin.CircleEndOnMinRadius=yes/no
|}
 
{| class="wikitable"
  半径达下限时结束 AE。默认 no。
! colspan="4" |<big>圆心自身画一个大圆 (Origin.*)</big>
 
|-
==== NormalVector(圆心圆面法线) ====
|Vector.Origin.CircleRadius
Vector.Origin.NormalVector=F,L,H
|int
 
| -1
  FLH 法向量。设后启用倾斜
|圆心周运动的半径-1=自动取当前距离。>0  直接使用
 
|-
  默认空
|Vector.Origin.CircleSpeed
 
|int
Vector.Origin.NormalRandomF=Min,Max
|0
 
|圆心圆周线速度。与主  Circle 不同,此处无角速度覆盖规则——速度>0 且半径>0 时用 radar_offset 推角速度
Vector.Origin.NormalRandomL=Min,Max
|-
 
|Vector.Origin.CircleAnglePerStep
Vector.Origin.NormalRandomH=Min,Max
|double
 
|0
  法向量各分量随机范围。默认 0,0。
|圆心圆周角速度。仅在  OriginCircleSpeed=0 或半径≤0 时生效。
 
|-
Vector.Origin.NormalFAnglePerStep=N
|Vector.Origin.CircleRandomRadius
 
|int,int
Vector.Origin.NormalLAnglePerStep=N
|0,0
 
|圆心圆周初始半径随机
Vector.Origin.NormalHAnglePerStep=N
|-
 
|Vector.Origin.CircleRandomAngle
  法线每步角速度(°/step)。H=转向,L=俯仰。默认 0。
|double,double
 
|0,0
Vector.Origin.NormalFAngleRanges=A,B,C,D
|圆心圆周初始角速度随机
 
|-
Vector.Origin.NormalLAngleRanges=A,B,C,D
|Vector.Origin.CircleRadiusGrow
 
|int
Vector.Origin.NormalHAngleRanges=A,B,C,D
|0
 
|圆心圆周半径增量(lepton/步)
  法线角速度双区间随机。默认空
|-
 
|Vector.Origin.CircleMaxRadius
Vector.Origin.AllowedTilt=yes/no
|int
 
|0
  yes = 允许 F 轴倾斜默认 no。Deepusheek把这个写坏了,没用,得等修
|圆心圆周半径上限。0=不限
 
|-
=== 参考系 ===
|Vector.Origin.CircleMinRadius
四种 Origin 的实现机制:
|int
 
|0
Self(默认)
|圆心圆周半径下限。0=不限。
Vector.OriginFLH=F,L,H  手动指定参考点坐标偏移,不写就是自身000坐标
|-
 
|Vector.Origin.CircleEndOnMaxRadius
F 轴 = 抛射体自身 Velocity 方向(Techno 用 TurretFacing)
|bool
  L 轴 = F 轴逆针 90°
|no
  原点 = 抛射体坐标 + OriginFLH 偏移(OnStart 时锁定快照)
|圆心圆周半径达上限时结束。
        非 NoUpdate 时原点 = 抛射体当前坐标 + OriginFLH 偏移
|-
 
|Vector.Origin.CircleEndOnMinRadius
Launcher
|bool
  F 轴 = 发射者 TurretFacing
|no
  L 轴 = F 轴逆时针 90°
|圆心圆周半径达下限结束。
  原点 = 发射者坐标(每帧刷新,OriginNoUpdate=yes 则锁定附着AE瞬间位置)
|-
 
|Vector.Origin.AllowCircleTilt
Target
|bool
  F 轴 = 目标 → 抛射体连线
|no
  L 轴 = F 轴逆时针 90°
|yes:允许圆面倾斜
  原点 = 目标坐标
|-
        每帧刷新,OriginNoUpdate=yes 则锁定附着AE瞬间置。
|Vector.Origin.AllowOriginTilt
 
|bool
Source
|no
  F = AE 来源单位 → 抛射连线(atan2 实时计算)
|yes:圆心的 CircleOrigin 偏移改为 FLH 模式,随附着物体倾斜而倾斜。
  L 轴 = F 轴逆时针 90°
|-
  原点 = AE 来源单位坐标(每帧刷新,OriginNoUpdate=yes 则锁定 OnStart 瞬间位置)
|Vector.Origin.CircleOffset
 
|CoordStruct
所有模式下 F/L 轴仅使用 XY 分量计算,Z 不纳入,避免坐标系倾斜。除非Vector.AllowedTilt=yes
|0,0,0
 
|圆心原点偏移,在基座坐标系上直接加世界坐标偏移量。
=== 所有AE都带的的通用标签 ===
|-
Duration=N
|Vector.Origin.Lissajous
  AE 持续时间(帧)。-1 表示永久。
|int
 
|no
HoldDuration=yes/no
|角度持续累加产生独立相,角加速度
  yes = Duration 到期后保持 AE 不销毁。
|-
  默认 yes(Duration<0 自yes
|Vector.Origin.Origin
 
|enum
Next=AE_SECTION_NAME
|Self
  当前 AE 结束后自动附加的下一个 AE。支持逗号分隔多个。
|圆心运动的参考系选择。Self=以主系  originPos 为基座。Launcher/Target/Source=以对应实坐标为基座。OriginOriginFLH 可在此基础上再叠加 FLH  偏移。
 
|-
AttachOnceInTechnoType=yes/no
|Vector.Origin.OriginFLH
  同类型单位只附加一次
|CoordStruct
 
|0,0,0
Vector.Enable=yes/no
|对圆心运动基座施加  FLH 偏移
  手动启用/禁用。默认自动判断(有位移参数时自动启用)
|-
 
! colspan="4" |<big>大圆法线  (Origin.*)</big>
=== 叠加 ===
|-
- 多个带 Vector 效果的 AE 同时附加到一个对象时,每个独立计算MoveDisp,最终所有分量相加后一次 SetLocation 应用。
|Vector.Origin.NormalVector
用Next链接一系列Vector即可规划出非常酷炫的飞行轨迹
|CoordStruct
 
|0,0,0
 
|圆心运系统的独立法向量(FLH坐标系,定义圆心的独立朝向。
测试样例INI:
|-
 
|Vector.Origin.NormalRandomF
[TestDelivery]
|CoordStruct
 
|0,0
Deliver.Types=ZEP
|圆心法线  F 随机范围
 
|-
[ZEP]
|Vector.Origin.NormalRandomL
 
|CoordStruct
Primary=LOCK
|0,0
 
|圆心法线  L 随机范围
JumpjetHeight=1800
|-
 
|Vector.Origin.NormalRandomH
[LOCK]
|CoordStruct
 
|0,0
Damage=1
|圆心法线  H 随机范围
 
|-
Range=50
|Vector.Origin.NormalFAnglePerStep
 
|double
ROF=300
|0
 
|圆心法线绕  F 轴旋转角速度。
Projectile=InvisibleAll
|-
 
|Vector.Origin.NormalLAnglePerStep
Warhead=LOCKWH
|double
 
|0
OmniFire=yes
|圆心法线绕  L 轴旋转角速度。
 
|-
[LOCKWH]:[TOY]
|Vector.Origin.NormalHAnglePerStep
 
|double
AttachEffectTypes=Zidong
|0
 
|圆心法线绕  H 轴旋转角速度。
CellSpread=10
|}
 
[[File:Lissajous+小圆圆心转圈.gif|thumb]]
[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
 
 
 
 
样例2:
 
[CIRCLE]
 
Duration=150
 
Vector.CircleRadius=400
 
<nowiki>;</nowiki>Vector.CircleRandomAngle=5,15
 
Vector.CircleRandomAngleRanges=-25,-10,10,25
 
Vector.Origin=Launcher
 
Vector.Force=yes
 
Vector.AllowedTilt=yes
 
Vector.CircleOrigin=0,0,100
 
Vector.AllowOriginTilt=no
 
Vector.NormalRandomF=-100,100
 
Vector.NormalRandomL=-100,100
 
Vector.NormalRandomH=-100,100
 
Vector.NormalFAnglePerStep=1
 
Vector.NormalLAnglePerStep=1
 
Vector.NormalHAnglePerStep=1
 
Vector.OriginNoUpdate=yes
 
Vector.Origin.TargetFLH=0,0,1900
 
Vector.Origin.Origin=Target
 
Vector.Origin.ReachTarget=yes
 
AttachOnceInTechnoType=yes
 
Vector.Origin.ArcHeight=1024
 
Next=CIRCLEHOLD
 
[CIRCLEHOLD]
 
Duration=200
 
Vector.CircleRadius=400
 
<nowiki>;</nowiki>Vector.CircleRandomAngle=5,15
 
Vector.CircleRandomAngleRanges=-25,-10,10,25
 
Vector.Origin=Target
 
Vector.Force=yes
 
Vector.CircleRadiusGrow=3
 
Vector.CircleEndOnMaxRadius=yes
 
Vector.CircleMaxRadius=800
 
Vector.OriginNoUpdate=yes
 
Vector.AllowedTilt=yes
 
Vector.CircleOrigin=0,0,1900
 
Vector.AllowOriginTilt=no
 
Vector.NormalRandomF=-100,100
 
Vector.NormalRandomL=-100,100
 
Vector.NormalRandomH=-100,100
 
Vector.NormalFAnglePerStep=1
 
Vector.NormalLAnglePerStep=1
 
Vector.NormalHAnglePerStep=1
 
Next=CIRCLEDOWN
 
[CIRCLEDOWN]
 
Duration=200
 
Vector.CircleRadius=800
 
<nowiki>;</nowiki>Vector.CircleRandomAngle=5,15
 
Vector.CircleRandomAngleRanges=-25,-10,10,25
 
Vector.Origin=Target
 
Vector.Force=yes
 
Vector.CircleRadiusGrow=-4
 
Vector.CircleEndOnMinRadius=yes
 
Vector.CircleMinRadius=10
 
Vector.OriginNoUpdate=yes
 
Vector.AllowedTilt=yes
 
Vector.CircleOrigin=0,0,1900
 
Vector.AllowOriginTilt=no
 
Vector.NormalRandomF=-100,100
 
Vector.NormalRandomL=-100,100
 
Vector.NormalRandomH=-100,100
 
Vector.NormalFAnglePerStep=1
 
Vector.NormalLAnglePerStep=1
 
Vector.NormalHAnglePerStep=1

2026年8月4日 (二) 14:22的版本

Kenosis提示:当前Vector为预览版,是VibeCoding的结果,算法需要人类程序猿审查并优化。当前版本仅供初步撰写INI观察效果。

预览版DLL:

https://pan.baidu.com/s/1877pQOrf5JkMSOM6gmJ_VA 提取码: 1145

2026.8.4


Vector系统实质上就是对附着的抛射体或单位进行暴力挪移。用于单位时因为wwsb的神奇格子系统,单位飞行过程中死亡时大概率引发崩溃,建议尽量少用到单位上。不可用于建筑。

Vector是可混合的AE,多个Vector各自计算移动向量后复合出唯一的移动量。

Vector产生的运动有5种模式:

Freeze:最高权限,冻结在空中,此时一切Vector的移动量都会被强制归零。

MoveTo:以lepton计算的位移量。每帧运动这么多。

Speed:直线运动。默认行为是飞到目标坐标后AE自动结束。

ReachTarget:无视速度,只读取Duration,Duration结束后必然飞到目标。

Circle:画圈。除了圆的运动外,还支持圆心复合其他运动类型,如圆心也画圆,圆心飞向目标等。

标签名 (Vector.xxx) 类型 默认值 详细说明
通用设定
Vector.TimeStep int 1 每隔 TimeStep 帧才执行一次运动计算。非运动帧 MoveDisp 为空(子弹/单位位置不变),但 _elapsedFrames 仍然递增(计时不停)。默认 1 表示每帧都动。
Vector.DisabledFrames int 0 AE 启动后冻结前 N 帧。冻结期间 MoveDisp 恒为 {0,0,0},不计入运动帧数。抛射体/单位在此期间仍可被其他机制挪移,只是这一个 Vector 不产生位移。作用是快照Vector生效时的原点坐标。
Vector.SyncFacing bool no yes:抛射体的头部朝向运动方向(写 Velocity),单位转向运动方向(改 PrimaryFacing)。no:不碰朝向,抛射体维持引擎默认指向目标,单位维持原朝向。建议别用yes,会让抛射体提前被引擎引爆
Vector.OriginIsOnWorld bool no yes:所有 FLH 偏移锁定世界坐标系(F→世界+Y即北,L→世界+X即东),完全无视单位/弹体/参考系的朝向。搭配 CircleOrigin 等可做"绝对高度"偏移。
Vector.OriginIsOnBody bool no 仅在 Origin=Self 或 Launcher 时生效。yes:F 轴取车身 PrimaryFacing(无视炮塔旋转)。no:取炮塔 TurretFacing。对 TargetFLH 的 FLH→世界坐标投射也有影响。
Vector.Origin enum Self Self, Target, Launcher, Source。 定义原点参考系。Self:以弹体/单位自身为原点,F 轴=弹体朝向或单位 TurretFacing。Target:以攻击目标为原点(单位跟踪,地面锁定),F 轴=目标→弹体方向。Launcher:以发射者为原点,F 轴=发射者自身的炮塔指向。Source:以 AE Source 对象为原点,F 轴=Source→弹体方向。
Vector.OriginFLH CoordStruct 0,0,0 对 Origin 原点施加 FLH 偏移。
Vector.OriginNoUpdate bool no yes:原点在 OnStart 时快照,后续不再跟踪目标/发射者的移动。no:每帧重新计算参考系(Target 跟踪目标移动,Launcher 跟踪发射者移动)。
Vector.Force bool yes 默认所有模式 Force=yes。抛射体:yes=SetLocation 暴力挪移,不叠加引擎自身运动;no=引擎轨迹+Vector 位移叠加。单位:yes=跳过路径碰撞校验直接 SetLocation(可高空穿墙),首次进入时切换 Locomotor 为 Jumpjet;no=走 CanMoveTo 路径校验,撞墙反弹。
Vector.AllowFallingDestroy bool no Vector 结束时是否允许摔死。yes:当高度 > FallingDestroyHeight 时判定死亡。
Vector.FallingDestroyHeight int LevelHeight 摔死判定的高度阈值。低于此高度不判死。默认值为引擎的 LevelHeight 常量(约为 1 个单位层高)。
Freeze模式
Vector.Freeze bool no 最高优先级模式。yes:首帧快照当前位置为 FrozenPos,之后每帧计算位移=FrozenPos-当前位置,始终拉回冻结位置。抛射体下会自动开启 Force=true。Freeze 存在时所有其他运动模式(Circle/MoveTo/Speed/ReachTarget)均不会执行。
MoveTo 模式
Vector.MoveTo CoordStruct 0,0,0 纯 FLH 位移模式。每帧将 MoveTo 作为 FLH 偏移(F=沿 F 轴方向,L=垂直 F 轴,H=高度),转换成世界坐标位移叠加到弹体/单位上。Force 自动为 true。
Vector.GrowRate CoordStruct 0,0,0 每运动帧 FLH 线性增量:MoveTo 的实际值 = MoveTo + GrowRate×运动帧数。可实现持续加速的位移(呼吸/螺旋/振幅效果)。
Vector.AnglePerStep double 0 MoveTo 的自旋角度增量(度/步)。非零时在 MainFacing 上每帧叠加该角度,实现 FLH 位移方向的自旋。比较原始。
Speed模式
Vector.LinearSpeed int -1 Speed 模式的初始线速度(lepton/步)。-1=读取单位 Speed(Jumpjet 读取 JumpjetSpeed,否则读 Speed;抛射体读 pBullet->Speed)。≥0 直接使用。RandomSpeed 非退化时覆盖。
Vector.RandomSpeed int,int 0,0 初始速度随机范围 (Min,Max),非退化时覆盖 LinearSpeed。
Vector.MaxSpeed int -1 速度上限。-1=不限。
Vector.MinSpeed int -1 速度下限。-1=不限。
Vector.Acceleration int 0 Speed 模式下:每帧线速度增量(speed += Acceleration×绝对帧数)。Circle 模式下注:若 CircleSpeedAcceleration=0 时自动复用 Acceleration 作为圆加速率。
Vector.SpeedEndOnReach bool yes yes=抵达目标坐标点即强制结束AE并钳位到目标点(修复飞越后抽搐);no=越过目标继续飞,此时不支持弧线
ReachTarget 模式
Vector.ReachTarget bool no 剩余帧数强制到达模式。每帧位移 = 剩余距离÷剩余帧数,保证在 Duration 结束时恰好到达目标。超时后 Force=yes 时直接 SetLocation 到目标,Force=no 时无位移自然结束。
Vector.ReachTargetEarlyEnd int 0 提前结束帧数。>0 时当剩余运动帧 ≤ 该值时 Deactivate 提前交还控制权给引擎。
ReachTarget和Speed的弧控制和目标偏移
Vector.TargetFLH CoordStruct 0,0,0 目标参考点在 Origin 参考系中的 FLH 坐标。Origin=Self 时以弹体/单位为参考,Origin=Target 时以目标为参考。叠加 TargetOffset 随机偏移后计算世界坐标。
Vector.TargetOffsetF int,int 0,0 目标 F 轴随机偏移 (Min,Max),首帧随机抽取,作用在 TargetFLH 上。
Vector.TargetOffsetL int,int 0,0 目标 L 轴随机偏移。
Vector.TargetOffsetH int,int 0,0 目标 H 轴随机偏移。
Vector.TargetOffsetFRanges double×4 0,0,0,0 四参数版随机Offset
Vector.TargetOffsetLRanges double×4 0,0,0,0 四参数版随机Offset
Vector.TargetOffsetHRanges double×4 0,0,0,0 四参数版随机Offset
Vector.TargetOffsetRadius int,int 0,0 以距离计算的随机偏移范围
Vector.TargetOffsetRadiusRanges double×4 0,0,0,0 四参数版偏移范围
Vector.TargetOffsetSphere bool no 偏移量是否以球面计算,no则用圆面,高度用平面坐标的TargetOffsetH / TargetOffsetHRanges语句控制
Vector.TargetOffsetAngles double×4 0,0,0,0 许可的偏移角度,四参数,仅圆环模式(Sphere=no)生效。抛射体指向目标的轴,与圆的近交点为0,远交点为180
Vector.ArcHeight int 0 ReachTarget/Speed 抛物线弧高(lepton),0=直线轨迹。正=上凸弧,负=下凹弧。弧高使用分段抛物线公式(升弧段:ax(2-x),降弧段:1-x²)。Speed 模式下按剩余距离比例计算进度,弧高增量独立叠加不影响直线速度。
Vector.ArcPeakPercent double 50 弧峰所在 Duration 百分比(0-100)。默认 50 即弧峰在终点的中点。
Vector.RandomArcPeakPercent double,double 0,0 弧峰百分比随机范围 (Min,Max),覆盖 ArcPeakPercent。
Vector.RandomArcHeight int,int 0,0 弧高随机范围 (Min,Max),覆盖 ArcHeight。
Vector.ArcRotation double 0 弧面旋转角度(度),0=默认弧面朝正上方。非零时弧线在空间中以 Rodrigues 旋转公式构造弧面法线方向偏移,不再单纯 Z 轴。
Vector.RandomArcRotation double,double 0,0 弧面旋转随机范围 (Min,Max),覆盖 ArcRotation。
Circle 模式
Vector.CircleRadius int -1 圆半径(lepton)。-1=自动取弹体/单位当前到圆心的 XY 距离。>0 直接使用。每运动帧叠加 CircleRadiusGrow,受 CircleMaxRadius/CircleMinRadius 钳位。
Vector.CircleSpeed int 0 圆周线速度(lepton/步)。>0 即可独立激活 Circle 模式。每帧叠加加速度,受 CircleMaxSpeed/CircleMinSpeed 钳位。0 时首帧兜底取弹体/单位自身 Speed。与 CircleAnglePerStep 共存时角速度优先——线速度由角速度×半径重算,显式 CircleSpeed 被忽略。
Vector.CircleSpeedAcceleration int 0 线速度每步加速度。0 时若通用 Acceleration≠0 则复用 Acceleration。
Vector.CircleMaxSpeed int 0 线速度上限。0=不限。
Vector.CircleMinSpeed int 0 线速度下限。0=不限。
Vector.CircleAnglePerStep double 0 圆周角速度(度/步)。>0 即可独立激活 Circle 模式。每帧叠加 CircleAngleAcceleration,受 CircleMaxAngle/CircleMinAngle 钳位。优先级高于 CircleSpeed——两者都设时,线速度由角速度×半径重算。
Vector.CircleAngleAcceleration double 0 角速度每步加速度。
Vector.CircleMaxAngle double 0 角速度上限。0=不限。
Vector.CircleMinAngle double 0 角速度下限。0=不限。
Vector.CircleOrigin CoordStruct 0,0,0 圆心偏移。AllowOriginTilt=no 时直接世界坐标加法(圆心=Origin点+CircleOrigin),无视朝向。AllowOriginTilt=yes 时作为 FLH 偏移跟随转轴旋转(F=沿 facing,L=垂直 facing,H=Z)。
Vector.AllowOriginTilt bool no 是否允许圆心随物体倾斜而移动
Vector.CircleRandomRadius int,int 0,0 初始半径随机范围 (Min,Max)。非退化时首帧从范围随机抽取,覆盖显式 CircleRadius。
Vector.CircleRandomAngle double,double 0,0 初始角速度随机范围 (Min,Max)。非退化时首帧从范围随机抽取,覆盖显式 CircleAnglePerStep。注意不是 4 值:只是单区间随机。
Vector.CircleRandomAngleRanges double×4 0,0,0,0 初始角速度 4 值双区间 (min1,max1,min2,max2),50% 概率从区间 1 或区间 2 抽取。覆盖显式 CircleAnglePerStep 和 CircleRandomAngle。
Vector.CircleRadiusGrow int 0 每运动帧半径增量(lepton/步)。正=外扩,负=内缩。
Vector.CircleMaxRadius int 0 半径上限。0=不限。达到上限时由 CircleEndOnMaxRadius 控制是否结束。
Vector.CircleMinRadius int 0 半径下限。0=不限。达到下限时由 CircleEndOnMinRadius 控制是否结束。
Vector.CircleEndOnMaxRadius bool no yes:半径≥CircleMaxRadius 时 Deactivate 结束 AE。
Vector.CircleEndOnMinRadius bool no yes:半径≤CircleMinRadius 时 Deactivate 结束 AE。
Vector.AllowCircleTilt bool no 是否允许圆面随着附着物体的倾斜而倾斜
Vector.Lissajous int 0 Lissajous曲线变化速度
NormalVector 圆面法线(倾斜圆面)
Vector.NormalVector CoordStruct 0,0,0 圆面法向量,FLH 坐标系。决定圆如何倾斜。世界坐标。
Vector.NormalRandomF CoordStruct 0,0 法向量 F 分量的随机范围 (Min,Max),首帧抽取后叠加到 NormalVector。
Vector.NormalRandomL CoordStruct 0,0 法向量 L 分量随机范围。
Vector.NormalRandomH CoordStruct 0,0 法向量 H 分量随机范围。
Vector.NormalFAnglePerStep double 0 绕 F 轴的角速度(度/步),常数模式。圆面的法线每运动帧绕 F 轴旋转该角度。
Vector.NormalLAnglePerStep double 0 绕 L 轴的角速度(度/步)。
Vector.NormalHAnglePerStep double 0 绕 H 轴的角速度(度/步)。
Vector.NormalFAngleRanges double×4 0,0,0,0 绕 F 轴角速度的 4 值双区间 (min1,max1,min2,max2),50% 概率从区间 1 或区间 2 随机抽取。常数模式(NormalFAnglePerStep)优先于随机区间。
Vector.NormalLAngleRanges double×4 0,0,0,0 绕 L 轴角速度双区间。
Vector.NormalHAngleRanges double×4 0,0,0,0 绕 H 轴角速度双区间。
Lissajous=1
圆心整体运动
圆心 MoveTo (Origin.*)
Vector.Origin.MoveTo CoordStruct 0,0,0 圆心在基座上的 FLH 位移(lepton/步)。非空时圆心每运动帧按此偏移移动,朝向使用 _originFacing+自旋角度合成的方向,调用 GetFLHAbsoluteOffset 转换。
Vector.Origin.GrowRate CoordStruct 0,0,0 圆心 MoveTo 的每步增量。实际值 = OriginMoveTo + OriginGrowRate×运动帧数。
Vector.Origin.AnglePerStep double 0 圆心 MoveTo 的自旋角度增量(度/步),叠加在 _originFacing 上。
圆心 Speed/ReachTarget 模式飞向目标(Origin.*)
Vector.Origin.TargetFLH CoordStruct 0,0,0 圆心追踪目标在基座坐标系中的 FLH 位置。非空时进入圆心的 Speed/ReachTarget 子模式。OriginReachTarget 控制用何种方式到达。
Vector.Origin.LinearSpeed int -1 -1=读取单位 Speed。≥0 直接使用该速度。圆心 Speed 子模式的初始线速度。
Vector.Origin.Acceleration int 0 圆心 Speed 子模式的每步加速度。
Vector.Origin.MaxSpeed int -1 圆心 Speed 子模式速度上限。-1=不限。
Vector.Origin.MinSpeed int -1 圆心 Speed 子模式速度下限。-1=不限。
Vector.Origin.ReachTarget bool no yes:到达模式,圆心按剩余帧数均分位移,强制到目标 FLH。no:纯速度追踪模式,每帧向目标移动 OriginLinearSpeed 距离。
Vector.Origin.SpeedEndOnReach bool yes yes=圆心抵达目标即结束AE;no=越过目标继续飞
Vector.Origin.ArcHeight int 0 圆心 ReachTarget/Speed 抛物线弧高。0=直线移动。Speed 模式下弧高按剩余距离比例叠加增量,与直线速度解耦。
Vector.Origin.TargetOffsetF int,int 0,0 圆心目标 F 轴随机偏移范围
Vector.Origin.TargetOffsetL int,int 0,0 圆心目标 L 轴随机偏移范围
Vector.Origin.TargetOffsetH int,int 0,0 圆心目标 H 轴随机偏移范围
圆心自身画一个大圆 (Origin.*)
Vector.Origin.CircleRadius int -1 圆心圆周运动的半径。-1=自动取当前距离。>0 直接使用。
Vector.Origin.CircleSpeed int 0 圆心圆周线速度。与主 Circle 不同,此处无角速度覆盖规则——速度>0 且半径>0 时用 radar_offset 推角速度。
Vector.Origin.CircleAnglePerStep double 0 圆心圆周角速度。仅在 OriginCircleSpeed=0 或半径≤0 时生效。
Vector.Origin.CircleRandomRadius int,int 0,0 圆心圆周初始半径随机
Vector.Origin.CircleRandomAngle double,double 0,0 圆心圆周初始角速度随机
Vector.Origin.CircleRadiusGrow int 0 圆心圆周半径增量(lepton/步)。
Vector.Origin.CircleMaxRadius int 0 圆心圆周半径上限。0=不限。
Vector.Origin.CircleMinRadius int 0 圆心圆周半径下限。0=不限。
Vector.Origin.CircleEndOnMaxRadius bool no 圆心圆周半径达上限时结束。
Vector.Origin.CircleEndOnMinRadius bool no 圆心圆周半径达下限时结束。
Vector.Origin.AllowCircleTilt bool no yes:允许圆面倾斜
Vector.Origin.AllowOriginTilt bool no yes:圆心的 CircleOrigin 偏移改为 FLH 模式,随附着物体倾斜而倾斜。
Vector.Origin.CircleOffset CoordStruct 0,0,0 圆心原点偏移,在基座坐标系上直接加世界坐标偏移量。
Vector.Origin.Lissajous int no 角度持续累加产生独立相位,角加速度
Vector.Origin.Origin enum Self 圆心运动的参考系选择。Self=以主系 originPos 为基座。Launcher/Target/Source=以对应实体坐标为基座。OriginOriginFLH 可在此基础上再叠加 FLH 偏移。
Vector.Origin.OriginFLH CoordStruct 0,0,0 对圆心运动基座施加 FLH 偏移。
大圆法线 (Origin.*)
Vector.Origin.NormalVector CoordStruct 0,0,0 圆心运动系统的独立法向量(FLH坐标系),定义圆心的独立朝向。
Vector.Origin.NormalRandomF CoordStruct 0,0 圆心法线 F 随机范围。
Vector.Origin.NormalRandomL CoordStruct 0,0 圆心法线 L 随机范围。
Vector.Origin.NormalRandomH CoordStruct 0,0 圆心法线 H 随机范围。
Vector.Origin.NormalFAnglePerStep double 0 圆心法线绕 F 轴旋转角速度。
Vector.Origin.NormalLAnglePerStep double 0 圆心法线绕 L 轴旋转角速度。
Vector.Origin.NormalHAnglePerStep double 0 圆心法线绕 H 轴旋转角速度。