跳转到内容
主菜单
主菜单
移至侧栏
隐藏
导航
首页
所有类别
站点
所有页面
最近更改
随机页面
交流
论坛
Tools
RA2DIY
搜索
搜索
外观
登录
个人工具
登录
RA2DIY-WIKI 当前处于维护模式:
页面上的内容随时可能发生更改且不会事先告知。
查看“︁Kratos:说明书/移动器”︁的源代码
页面
讨论
简体
不转换
简体
繁體
大陆简体
香港繁體
澳門繁體
大马简体
新加坡简体
臺灣正體
阅读
查看源代码
查看历史
工具
工具
移至侧栏
隐藏
操作
阅读
查看源代码
查看历史
常规
链入页面
相关更改
页面信息
外观
移至侧栏
隐藏
←
Kratos:说明书/移动器
因为以下原因,您没有权限编辑该页面:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
Kenosis提示:'''[https://www.bilibili.com/opus/1214163469064994817?spm_id_from=333.1387.0.0 当前Vector为预览版],在正式版DLL里面没有!''' 这个功能是VibeCoding的结果,算法需要人类程序猿审查并优化。当前版本仅供初步撰写INI观察效果。 预览版DLL: <nowiki>https://pan.baidu.com/s/1877pQOrf5JkMSOM6gmJ_VA</nowiki> 提取码: 1145 2026.8.6 == 综述 == Vector系统实质上就是对附着的抛射体或单位进行暴力挪移。用于单位时因为wwsb的神奇格子系统,单位在Vector生效时死亡时大概率引发崩溃,建议尽量少用到单位上。或者单位持有vector时应该无敌,并在vector结束后至少2帧才可以死亡。用于飞行器和jumpjet车时似乎还算稳定。不可用于建筑。 Vector是可混合的AE,多个Vector各自计算移动向量后复合出唯一的移动量。 Vector产生的运动有5种模式: Freeze:最高权限,冻结在空中,此时一切Vector的移动量都会被强制归零。不常用。 MoveTo:以lepton计算的位移量。每帧运动这么多。不常用。 Speed:直线运动。默认行为是飞到目标坐标后AE自动结束。 ReachTarget:无视速度,只读取Duration,Duration结束后必然飞到目标。 Circle:画圈。除了圆的运动外,还支持圆心复合其他运动类型,如圆心也画圆,圆心飞向目标等。 因为只挪移,不修改其他东西,抛射体永远记得自己的目标。所以在Vector结束后抛射体还能飞回去打自己的原定目标。你可以所有抛射体都只用ROT=100了。可以用ReachTarget或Speed模式的弧线控制来模拟Arcing,且可以正常对空。当然,挪移Arcing和Vertical也是可以的,但是确实没有必要。 === 和SpawnMissile的连用 === 因为Westwood的傻逼代码SpawnManager,子机必须在所有导弹都发射完毕后(发射器清空)才会获得目标,所以你不能令母体装载的导弹数过多。如果在全体发射完毕之前导弹就获得了Origin=Target的Vector,导弹会试图进行子机一般的集结。虽然在Vector代码里面专门处理了这种情况(从发射者身上获取目标并写入缓存),但仍然不见得完美。请尽量避免用Origin=Target的Vector操作发射完毕之前的导弹。(谁家好人会给导弹发射器写12个导弹啊) 导弹终末端如果使用ReachTarget的话有概率在飞行抵达目标之前Vector就结束了。如果确有必要,建议用Speed模式。如果不得不用ReachTarget,建议在Vector最后加一个自动武器发射导弹伤害,并接一个DestroySelf直接销毁导弹。一般来说在导弹上做Vector是做不精准子机导弹,所以这么处理也不至于穿帮。 === 标签设计: === {| class="wikitable" |标签名 (Vector.xxx) |类型 |默认值 |详细说明 |- ! colspan="4" |<big>通用设定</big> |- |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:原点在本AE创建时快照,后续不再跟踪目标/发射者的移动。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 个单位层高)。 |} {| class="wikitable" ! colspan="4" |<big>Freeze模式</big> |- |Vector.Freeze |bool |no |最高优先级模式。yes:首帧快照当前位置为 FrozenPos,之后每帧计算位移=FrozenPos-当前位置,始终拉回冻结位置。抛射体下会自动开启 Force=true。Freeze 存在时所有其他运动模式(Circle/MoveTo/Speed/ReachTarget)均不会执行。 |} {| class="wikitable" ! colspan="4" |<big>MoveTo 模式</big> |- |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 位移方向的自旋。比较原始。 |} {| class="wikitable" ! colspan="4" |<big>Speed模式</big> |- |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=越过目标继续飞回来,抽搐。一般就是yes,没有改的必要。 |- ! colspan="4" |<big>ReachTarget 模式</big> |- |Vector.ReachTarget |bool |no |剩余帧数强制到达模式。每帧位移 = 剩余距离÷剩余帧数,保证在 Duration 结束时恰好到达目标。超时后 Force=yes 时直接 SetLocation 到目标,Force=no 时无位移自然结束。 |- |Vector.ReachTargetEarlyEnd |int |0 |提前结束帧数。>0 时当剩余运动帧 ≤ 该值时 Deactivate 提前交还控制权给引擎。 |- ! colspan="4" |<big>'''ReachTarget和Speed的弧控制和目标偏移'''</big> |- |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。 |} [[File:随机弧高随机弧倾斜和随机弧顶.gif|thumb|非常酷炫的弹道]] {| class="wikitable" ! colspan="4" |<big>Circle 模式</big> |- |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曲线变化速度 |- ! colspan="4" |<big>NormalVector 圆面法线(倾斜圆面)</big> |- |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 轴角速度双区间。 |} [[File:Lissajous曲线.gif|thumb|Lissajous=1]] {| class="wikitable" ! colspan="4" |<big>圆心整体运动</big> |- ! colspan="4" |<big>圆心 MoveTo (Origin.*)</big> |- |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 上。 |- ! colspan="4" |<big>圆心 Speed/ReachTarget 模式飞向目标(Origin.*)</big> |- |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 轴随机偏移范围 |} {| class="wikitable" ! colspan="4" |<big>圆心自身画一个大圆 (Origin.*)</big> |- |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 偏移。 |- ! colspan="4" |<big>大圆法线 (Origin.*)</big> |- |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 轴旋转角速度。 |} [[File:Lissajous+小圆圆心转圈.gif|thumb]]
返回
Kratos:说明书/移动器
。
搜索
搜索
查看“︁Kratos:说明书/移动器”︁的源代码
添加话题