跳转到内容
主菜单
主菜单
移至侧栏
隐藏
导航
首页
所有类别
站点
所有页面
最近更改
随机页面
交流
论坛
Tools
RA2DIY
搜索
搜索
外观
登录
个人工具
登录
RA2DIY-WIKI 当前处于维护模式:
页面上的内容随时可能发生更改且不会事先告知。
查看“︁Kratos:说明书/移动器”︁的源代码
页面
讨论
不转换
不转换
简体
繁體
大陆简体
香港繁體
澳門繁體
大马简体
新加坡简体
臺灣正體
阅读
查看源代码
查看历史
工具
工具
移至侧栏
隐藏
操作
阅读
查看源代码
查看历史
常规
链入页面
相关更改
页面信息
外观
移至侧栏
隐藏
←
Kratos:说明书/移动器
因为以下原因,您没有权限编辑该页面:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
Kenosis提示:'''[https://www.bilibili.com/opus/1214163469064994817?spm_id_from=333.1387.0.0 当前Vector为预览版]''',是VibeCoding的结果,算法需要人类程序猿审查并优化。当前版本仅供初步撰写INI观察效果。 预览版DLL: <nowiki>https://pan.baidu.com/s/1877pQOrf5JkMSOM6gmJ_VA</nowiki> 提取码: 1145 2026.6.16 Vector (向量)是纯移动效果器,Duration 期间'''<u>强制修改附着对象坐标</u>'''。 [https://www.bilibili.com/opus/1214494881641136144?spm_id_from=333.1387.0.0 暴力挪移!!] 适用于 Projectile、Aircraft、Jumpjet Vehicle、Infantry 等。 BuildingTypes 永久免疫。 所有标签写在 [AttachEffectSection] 下,前缀为 Vector. Vector 将"位移"抽象为 5 种独立模式,每个 AE 同时只激活一种 按优先级匹配:Freeze > Circle > MoveTo > ReachTarget > Speed === '''核心设计:''' === 1. 硬控制。Vector结束后抛射体回归原有轨迹。所以建议你只用ROT=100 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=Self / Launcher / Target / Source 定义位移参考系的原点和 F 轴朝向。 Self = 抛射体自身朝向(Velocity 方向),Techno 用 TurretFacing(默认) Launcher = 发射者为原点,F 轴 = 发射者 TurretFacing Target = 目标为原点,F 轴 = 目标 → 抛射体连线 Source = AE 来源单位为原点,F 轴 = 来源 → 抛射体连线 默认 Self。 Vector.OriginFLH=F,L,H 原点偏移(FLH 坐标系),根据各种origin自适应。 Vector.OriginIsOnBody=yes/no Vector.OriginIsOnWorld=yes/no 原点计算时使用单位车身而非炮塔朝向、原点计算时直接使用世界坐标FLH Vector.OriginNoUpdate=yes/no yes = 原点锁定在获得 AE 瞬间的坐标,不跟随 Origin 移动。 no = 每帧根据 Origin 类型动态刷新原点和 F 轴。注意参照点如果是自己且update的话会累加导致超高速飞行 默认 no。 目标点 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.Force=yes/no yes = 彻底跳过引擎轨迹计算,Vector 直接 SetLocation 控制位置。默认Yes。 no = 引擎轨迹正常计算,但 Vector 仍施加 MoveDisp 偏移。用No的话表现模式非常奇妙,不太可控。 Vector.Freeze=yes/no yes = 冻结在获得 AE 时的位置,Duration 继续计时。 Freeze 为最高优先级,启用时强制锁死,无视其他任何Vector。 默认 no。 Vector.AllowFallingDestroy=yes/no yes = AE 结束后,若单位在空中且超出指定高度,摔死。 no = 结束后自由坠落。 默认 no。 Vector.FallingDestroyHeight=N 致死高度(lepton)。AllowFallingDestroy=yes 时有效。 超出此高度则摔死,否则正常坠落。 未设时使用当前高度对地面差值。 默认使用高度差。 Vector.SyncFacing 同步Vector移动方向。默认Yes,Yes可以让单位按照Vector的移动向量同步自身朝向。抛射体设No时会始终指向自己的攻击目标。 Vector.DisabledFrames 这么多帧内不进行挪移计算。不用InitialDelay的原因是InitialDelay状态下无法获取Origin。可以记录初始坐标快照,Origin=FLH,此期间其他Vector可以进行挪移,disabled时间结束后再以快照坐标点继续进行其他运动。注意要从总Duration里面减去Disabled帧数,才是运动帧数。 生效时快照当前位置,50帧后挪移回快照位置。期间其他Vector正常运转。 [SNAPSHOT] Duration=120 Vector.TargetFLH=0,0,0 Vector.Origin=FLH Vector.Force=yes AttachOnceInTechnoType=yes Vector.ReachTarget=yes Vector.DisabledFrames=50 Vector.OriginNoUpdate=yes === MoveTo 模式(FLH 强制位移) === 每帧在自身 FLH 坐标系下施加固定位移向量。 如果Origin设为Target,则F轴是Target指向抛射体的向量。只写F轴的MoveTo向量就可以定向飞行。 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.ReachTarget=yes/no yes = 根据剩余 Duration 自动调节每帧速度,保证恰好在结束前到达。 Ignore: InitialSpeed / Acceleration / MaxSpeed / MinSpeed。 no = 使用 Speed 模式,恒速或加速飞行。 默认 no。 Vector.ReachTargetEarlyEnd=N 提前结束,在距离到达还有N帧时移除Vector效果器 Vector.ArcHeight=N Vector.RandomArcHeight=Min,Max 抛物线弧高(lepton)。仅 ReachTarget=yes 时生效。 正=先升后降(上凸弧),负=先降后升(下凹弧),0=直线。 弧高叠加在起终点连线上:Z(t) = Z0 + (Z1-Z0)·t + 4·H·t·(1-t)。 默认 0。 Vector.ArcRotation=N, Vector.ArcRandomRotation=Min,Max 抛物线旋转度数,随机旋转度数,-360-360,正数为顺时针转动 <s>'''有这玩意就可以把你的Arcing抛射体全刨了,大一统抛射体,只用ROT类就够'''</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。 === 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.CircleRandomAngleRanges 填四个数值,如ABCD,初始化角速度取[AB],[CD]区间。 半径动态 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。 ==== 倾斜圆周运动(逐渐变得复杂) ==== Vector.AllowedTilt=yes/no yes = 坐标系可绕 XY 面倾斜,Source/Target 的 F 轴纳入 Z 轴差。写了法向量就会自动视为yes。 yes且没有法向量的话就会在计算坐标轴时同时自动计算Z轴。 Vector.CircleOrigin=F,L,H 圆心偏移。默认世界坐标加法,AllowOriginTilt=yes 时沿 FLH 轴旋转。建议倾斜时候一定要设置 Vector.AllowOriginTilt=yes/no yes = CircleOrigin 随法向量倾斜旋转。 no = CircleOrigin 纯世界坐标加法(默认)。 Vector.NormalVector=F,L,H FLH 坐标系圆面法向量。FLH世界坐标系。F=右上方(North) 设此后自动启用倾斜坐标系。 Vector.NormalRandomF=Min,Max Vector.NormalRandomL=Min,Max Vector.NormalRandomH=Min,Max 法向量各分量随机初始化范围 Vector.NormalFAnglePerStep=N Vector.NormalLAnglePerStep=N Vector.NormalHAnglePerStep=N 法向量每运动帧固定旋转角速度(°/step)。 Vector.NormalFAngleRanges=A,B,C,D Vector.NormalLAngleRanges=A,B,C,D Vector.NormalHAngleRanges=A,B,C,D 法向量旋转的角速度双区间随机。仅对应 AnglePerStep=0 时生效。 A,B,C,D 全等=常数角速度。 === Vector.Origin.* 圆心运动(Circle 模式专用) === 使圆心本身在 FLH 坐标系内运动。上面所有那些玩意再嵌套。非常的粪。 Vector.Origin代表运动的是圆心。简化了很多东西,因为嵌套太复杂了谁都看不明白,不要直接在上面的语句内插入.Origin,有的语句就是没做嵌套模式,以下面列举的为准。 ==== 通用 ==== Vector.Origin.Origin=FLH/Launcher/Target/Source 圆心运动的基座参考系。设定 NormalVector 时被覆盖。 Target/Source/Launcher 均实时追踪移动对象。 默认 FLH。 Vector.Origin.OriginFLH=F,L,H Origin=FLH 时的手动基准向量(F=北, L=东, H=高)。 默认空。 Vector.Origin.CircleOffset=F,L,H 圆心初始世界偏移。设 AllowOriginTilt=yes 时沿 FLH 轴旋转。 默认 0,0,0。 Vector.Origin.AllowOriginTilt=yes/no yes = CircleOffset 沿 Current FLH 轴旋转。 默认 no。 Vector.Origin.Lissajous=yes/no yes = 累积大角旋转,圆心每帧绕整圈翻转方向, 产生增减边 Lissajous 震荡曲线。 no = 增量旋转(默认),圆心逐帧小步连续旋转, 弹体追踪圆心,形成平滑行星轨迹。 [[File:Lissajous曲线.gif|thumb|Lissajous曲线,就是减速减面,反转,加速加面,反转]] ==== MoveTo 模式 ==== Vector.Origin.MoveTo=F,L,H FLH 位移向量(lepton/step)。圆心沿此方向匀速移动。 Vector.Origin.GrowRate=F,L,H 每步增量(lepton/step)。随帧数线性缩放 MoveTo。 默认 0,0,0。 Vector.Origin.AnglePerStep=N 每步自旋角度(°/step)。叠加到 FLH 朝向。 默认 0。 ==== Speed 模式 ==== Vector.Origin.TargetFLH=F,L,H 目标点(FLH 坐标系,相对基座)。 Vector.Origin.TargetOffsetF=Min,Max Vector.Origin.TargetOffsetL=Min,Max Vector.Origin.TargetOffsetH=Min,Max 目标随机偏移。OnStart 随机一次。默认 0,0。 Vector.Origin.InitialSpeed=N 初始速度(lepton/step)。-1=读取单位 Speed。 默认 -1。 Vector.Origin.Acceleration=N 加速度(lepton/step²)。每步加至速度。默认 0。 Vector.Origin.MaxSpeed=N 速度上限。-1=不限。默认 -1。 Vector.Origin.MinSpeed=N 速度下限。-1=不限。默认 -1。 ==== ReachTarget 模式 ==== Vector.Origin.ReachTarget=yes/no yes = 按剩余 Duration 自动调节速度到达目标点, 到达后自动结束 AE。默认 no。 Vector.Origin.ArcHeight=N 抛物线弧高(lepton)。仅 ReachTarget=yes 时生效。默认 0。 正=先升后降(上凸弧),负=先降后升(下凹弧),0=直线。 ==== Circle 模式 ==== 圆心绕基座做圆周运动(优先级最低)。 Vector.Origin.CircleRadius=N 半径(lepton)。默认 -1(自动取当前距离)。 Vector.Origin.CircleSpeed=N 线速度(lepton/step)。设后角速度=线速度/当前半径。 默认 0。 Vector.Origin.CircleAnglePerStep=N 角速度(°/step)。仅 CircleSpeed=0 时生效。 默认 0。 Vector.Origin.CircleRandomRadius=Min,Max 初始半径随机范围。默认空。 Vector.Origin.CircleRandomAngle=Min,Max 初始角速度随机范围。默认空。 Vector.Origin.CircleRadiusGrow=N 半径每步增长率(lepton/step)。默认 0。 Vector.Origin.CircleMaxRadius=N 半径上限。默认 0(不限)。 Vector.Origin.CircleMinRadius=N 半径下限。默认 0(不限)。 Vector.Origin.CircleEndOnMaxRadius=yes/no 半径达上限时结束 AE。默认 no。 Vector.Origin.CircleEndOnMinRadius=yes/no 半径达下限时结束 AE。默认 no。 ==== NormalVector(圆心圆面法线) ==== Vector.Origin.NormalVector=F,L,H FLH 法向量。设后启用倾斜圆面。 默认空。 Vector.Origin.NormalRandomF=Min,Max Vector.Origin.NormalRandomL=Min,Max Vector.Origin.NormalRandomH=Min,Max 法向量各分量随机范围。默认 0,0。 Vector.Origin.NormalFAnglePerStep=N Vector.Origin.NormalLAnglePerStep=N Vector.Origin.NormalHAnglePerStep=N 法线每步角速度(°/step)。H=转向,L=俯仰。默认 0。 Vector.Origin.NormalFAngleRanges=A,B,C,D Vector.Origin.NormalLAngleRanges=A,B,C,D Vector.Origin.NormalHAngleRanges=A,B,C,D 法线角速度双区间随机。默认空。 Vector.Origin.AllowedTilt=yes/no yes = 允许 F 轴倾斜。默认 no。Deepusheek把这个写坏了,没用,得等修 === 参考系 === 四种 Origin 的实现机制: Self(默认) 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 不纳入,避免坐标系倾斜。除非Vector.AllowedTilt=yes === 所有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 样例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
返回
Kratos:说明书/移动器
。
搜索
搜索
查看“︁Kratos:说明书/移动器”︁的源代码
添加话题