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

2.单位属性rules词典/Locomotor

来自RA2DIY
(重定向自Locomotor

运动模式 与单位类型无对应关系 只是通常用法

别名 CLSID 对应的 SpeedType 默认值1
Levitate {3DC0B295-6546-11D3-80B0-00902792494C} Hover(?)
漂浮运动模式,仅用于 火线风暴


具有多个硬编码特性:

  • 除非收到特定的移动或攻击指令否则单位只会定期向随机方向移动,类似于器官兽。
  • 单位会像泰伯利亚水母 2 一样移动,并不断创建 [GasPuffSys] 粒子系统来创造一种不断喷射向前推进的效果。
  • 该单位武器上的 ROFSpeedRange 都将被忽略。单位始终会尝试靠近目标,然后每隔一定周期对目标造成武器 Damage 决定的杀伤。它在向主要目标移动的同时还会攻击其路径上锁遇到的任何敌对目标。
Drive {4A582741-9839-11d1-B709-00A024DDAFD1} Crusher=yes 则 Track 否则为 Wheel。
驾驶运动模式,用于绝大多数地面载具。


如果由步兵使用且使用了一个极低的 Speed 那么在第一次接近目标单元格时会直接停下并永远完成不了移动动作也无法用新指令覆盖这一动作。

Hover {4A582742-9839-11d1-B709-00A024DDAFD1} Hover
悬浮运动模式,例如原版气垫船和玩具坦克。


相关参数于全局 [General]hover vehicle characteristics 部分定义。
红色警戒 2 中该运动模式不应使用过快的速度(Speed≥31),否则运动轨道会非常飘逸,并且可能导致很难抵达目的地,同时也很难被来袭的 Arcing 类抛射体命中。
该运动模式会导致 IsTrain=yes 的载具无法碾碎悬浮车厢,并且无法正确转向,除非先停车——那就很不像火车了。
由于遥控逻辑/EMP/泰伯利亚之日 中的离子风暴等会瘫痪并落到地面,如果为水面将会喂鱼。
如果 SpeedType≠Hover 那么虽然可以按 D 键正常释放乘客但光标却会一直显示为 NoDeploy 样式。

  • 除非你用 IsSimpleDeployer 等语句玩用硬编码碾硬编码,但对大多语句了解不深不会处理其他语句引入的特性就是另一个事故了。

Ares 引入了一个该运动模式的单位有时在 IsSimpleDeployer=yesDeployToLand=yes 的情况下部署会卡住并不断播放移动音效的 Bug。

  • Phobos [Build#44|Version 0.4] 已修复。
Tunnel {4A582743-9839-11d1-B709-00A024DDAFD1} 同 Drive 规则3
潜地运动模式,泰伯利亚之日 中的恶魔之舌、《兵临城下》中的 CN 采矿车。


相关参数于全局 [General]subterrainean vehicle characteristics 部分定义(实际上就一句TunnelSpeed= (int))。
当单位到目标单元格前最远的 AllowBurrowing=no 地块间隔超过 11 个单元格时会转为钻地,否则与 Locomotor=Drive 基本相同。

  • 下潜速度由全局 [General] -> TunnelSpeed= (int) * [TechnoType] -> Speed= (int) 指定。
  • 下潜动画由全局 [AudioVisual] -> Dig= (Animation) 指定。
  • 穿地音效由全局 [AudioVisual] -> DigSound= (Sound entry) 指定。
    • 但由于 Westwood红色警戒 2 开发过程中认为这玩意反正他们用不到了加上赶工于是索性给核弹发射警报也用的这个语句。
      • Ares 中你可以通过 [SuperWeaponType] -> SW.ActivationSound= (Sound entry) 单独指定。
        • Ares 也拓展了钻地动画与音效的定义,并允许分离定义钻入与钻出时的音效。
  • 地上常规运动速度遵循 [TechnoType] -> Speed= (int) 设定。
  • 地下水平运动速度硬编码为 19Phobos [Build#45|Version 0.4] 已允许自定义。
  • 地下水平运动高度硬编码为 -256Phobos [Build#44|Version 0.4] 已允许自定义。
  • 潜地运动模式单位的影子绘制位置并不正确,Phobos [Build#44|Version 0.4] 已修复。
Walk {4A582744-9839-11d1-B709-00A024DDAFD1} 同 Drive 规则
徒步运动方式,用于绝大多数地面步兵


硬编码仅在当前位置距离目标位置间的距离小于 17 leptons 时才视为抵达,因此 Speed≥14 的步兵可能会在移动时卡住。但在一些略微妙地能让步兵每次都卡在判定界限的值仍然可用。

  • Phobos [Build#44|Version 0.4] 已解除该硬编码限制。

[InfantryImage] -> Sequence= (String - Sequence) 中的参数决定水中的图像。
处于空中的步兵始终使用 infshdw.shp 作为影子绘制在正下方。
降落伞由全局 [General] -> Parachute= (Animation) 指定。
如果是空降仓投放的,那么在空中时会使用 pod.shp 附加在单位图像上。

  • 使用该运动模式的步兵如果速度过低那么在向 SW/NE 方向移动时会总是中途想要向正 S/N 方向走两步再转回去。
DropPod {4A582745-9839-11d1-B709-00A024DDAFD1} Hover(?)(根本不需要)
空降仓运动模式,空降仓专用。


相关参数在全局 [General]droppod flight characteristics 部分定义。
DropPod 实际上是一个“临时”的运动模式,例如使用 Type=DropPod 的超级武器时被投放的单位在落地前会使用这个运动模式,但落地后清除它并换用自己原本的运动模式。

  • 因此在 尤里的复仇 中通过 [Warhead] -> IsLocomotor=yes 的弹头为目标赋予 DropPod 运动模式是完全可行的。
    • 虽然 Phobos [Build?|Version?] 破坏了这一点导致使用必定导致 Fatal Error
  • 对应的,如果一个单位直接书写 Locomotor=DropPod,那么在地面上它会立即失去运动模式这一基本属性,然后品尝 Internal Error 的快乐。
Fly4 {4A582746-9839-11d1-B709-00A024DDAFD1} Winged
飞行运动模式,用于原版所有战机


如果一个载具使用了这一运动模式:

  • 如果由一个 WeaponsFactory=yes 的战车工厂建造,那么会卡在门口。
  • 即便是 Voxel 载具其影子也会绘制在单位身上而不是正下方的地面上。
  • 无法正常使用部署功能,也无法作为矿车。
  • 当攻击目标超出 [WeaponType] -> Range= (float) 设置的范围且自身当前处于空中时不会靠近目标。

不过也有一些好处:

  • 不会总想着回机场,并且不需要用 SlowdownDistance=0 之类副作用巨大的语句。
  • 主动寻敌。
  • 原版下可以对空。
  • 由于战机类的车体就是炮塔,所以如果添加了 TurretSpins=yes 那么该载具的车体和炮塔一样保持旋转。

尽管这样的单位运动过程始终在空中因此不受地面地形的影响,但程序硬编码使用 SpeedType=TrackMovementZone=Normal 来寻路。

  • 这就是原版中无法干爽地通过点击水面来让战机移动到水上的原因。


仅在战机类型使用该运动模式时可以执行吊运行为,因为吊运语句仅限战机类型,所以原版雌鹿直升机不能使用。

  • Kratos 已扩展至载具类型。

最好不要用于步兵类型,极不稳定。
如果拥有 [AircraftType] -> Carryall=yes 则降落时播放名为 [CARYLAND] 的动画。
如果拥有 [TechnoType] -> IsDropship=yes 则降落时播放名为 [DROPLAND] 的动画。
在遇到 泰伯利亚之日 中的离子风暴且处于空中时会直接暴毙。
根据 [TechnoType] -> Fighter= (bool) 决定是轰炸还是在抛射体 ROT>1 的情况下根据 [General] -> CurleyShuffle= (bool) 决定定点/换点连射
如果单位拥有 [AircraftType] -> FlyBy=yes 则无视全局降落方向定义,飞回来的时候用什么方向落下就什么方向,例如《世界轴承》中远东阵营的工头直升机。
由于 [AircraftType] -> Landable= (bool) 默认为 no,因此你需要手动设为 yes 来让战机可以着陆。
如果 [TechnoType] -> IsDropship= (bool) 未设为 yes 那么单位移动中会有一个硬编码的上下浮动效果。
该运动模式硬编码攀升速度仅与当前高度与 FlightLevel 之间的高度差有关且最大值为 20/帧。

Teleport {4A582747-9839-11d1-B709-00A024DDAFD1} 同 Drive 规则
超时空运动模式,也是默认运动模式。


由全局 [General] -> WarpOut= (Animation) 定义移动时的动画,

  • 全局 [General] -> WarpIn= (Animation) 本用于定义超时空移动“来”的动画,但最终废弃,来去都用上句。

由全局 [General] -> ChronoSparkle1= (Animation) 定义移动后僵直的动画。
超时空运动模式原本有一个蓝色版本的移动光标,但最终没有使用,废弃在 mouse.sha 中,Ares 将其作为吊运光标。
如果载具拥有 Teleporter 那么平时会使用 Drive 运动模式,仅在移动目标为其 Dock= (List of BuildingTypes 中的建筑时才会使用该运动模式(例如原版 [CMIN]

  • 在超时空移动时会踢出寄生单位。
  • 从重工出产的载具会使用 Drive 移动到集结点,然后才开始超时空移动。
    • Naval=yes 的重工出产的载具会直接超时空到集结点。
Mech {55D141B8-DB94-11d1-AC98-006008055BB5} 同 Drive 规则
机甲运动模式,例如 泰伯利亚之日 中的 猛犸 MK.II。


硬编码仅在当前位置距离目标位置间的距离小于 16 leptons 时才视为抵达,因此 Speed≥14 的机甲可能会在移动时卡住。但在一些略微妙地能让步兵每次都卡在判定界限的值仍然可用。

  • Phobos [Build#44|Version 0.4] 已解除该硬编码限制。

硬编码经过固定的 [距离/Speed] 值后更改一次单位朝向,原用于 泰伯利亚之日 中 猛犸 MK.II 步行震动。(很多时候不如直接用 Drive 了)
忽略加速度,瞬间慢速或停止。
硬编码不会倾斜(包括沉船)。
根据 IsPowered= (bool) 在断电时瘫痪的效果于 红色警戒 2 并不存在,请用 尤里的复仇 加入的 [TechnoType] -> PoweredUnit= (bool)

Ship {2BEA74E1-7CCA-11d3-BE14-00104B62A16C} Float
舰船运动模式,和 Drive 基本相同,用于 AI 识别。


但如果塞进坦克碉堡会得到一个快乐的 Internal Error

Jumpjet {92612C46-F71F-11d1-AC9F-006008055BB5} Hover
垂推运动方式,泰伯利亚之日 过场中指挥官麦克尼尔整天开着他那艘垂直起降的科迪亚克号奥卡指挥舰全球跑。


对于载具来说无需多言,原版 [ZEP][SHAD][DISK] 等都是典例。
对于战机则会导致其坠落到地面后占格且始终显示为剩余一丝血却永远不死,也无法被攻击。

  • 若只考虑被攻击致死可以简单地使用 [TechnoType] -> Crashable=no 来解决,Ares0.4 已经将此扩展至战机类型。
    • 但除此以外还硬编码弹药情况时无视该句坠毁,只能通过 Ammo=-1 或确保最后一发之前暴毙来避免。

仅在 Jumpjet 或/和 BalloonHover 至少一句为 yes 的情况下生成后就立即尝试升空而无需等待指令。

  • 这一特性也可以与Teleporter=yes结合使用来做出DriveLocomotor的单位生成后先移动一下的效果。
    • 例如使用 AresDeliver 超武搭配一个空降仓落地动画来假拟轨道投送单位那么可以用这个特性来做内部载具类单位着陆后立即开出空降区域的效果。

对于步兵类型,在判定某个格子能否移动上去时硬编码视为 SpeedType=Hover 的情况来处理,也因此 Locomotor=Jumpjet 的步兵类型无法停留在建筑和悬崖上。
原版部分Jumpjet单位的标签中第二个J的大小写可能是错误的导致它们实际上读取的是全局默认值。

Rocket {B7B49766-E576-11d3-9BD9-00104B972FE8} Winged
导弹运动模式,例如原版 V3 火箭、无畏导弹、雷鸣导弹


载具当然也能用,移动的结果就是以头抢地爆掉

  • Ares 破坏了这一行为,导致载具类只要使用该运动模式就会立即引发 Fatal Error

拥有 Teleporter=yes 且使用该运动模式的载具被摧毁会导致 Internal Error
原版仅限三种导弹子机运动模式数据,新增需要 Ares,如何新增应当仔细阅读 Ares 说明书,避免出现人造 [General] -> EmislEliteWarhead= (WarheadType) 这种令人啼笑皆非的操作。

注释

对于 Locomotor=Teleport|Tunnel|Fly 的单位其无法正常倾斜,该问题在 Phobos 引擎中已被修复。

注册名为 [COW] 的单位无论运动模式始终会随机移动,不限制类型。Ares0.1 已允许自由定义该效果。

注册名为 [DESO] 的单位强制根据脚下辐射残留量决定能否释放武器。Ares……Ares 尝试过自由定义。

脚注

1 步兵类型始终默认 SpeedType=Foot 无论 Locomotor= (CLSID) 为何。

2 该运动模式与 火线风暴 中的 Jellyfish 语句协同工作,单位的一些功能仅在该语句启用时才能正常工作。此外 [LEVITATION] 中的运动和行为参数也同样适用。

3 在一些古老教程中曾有过默认为 SpeedType=Underground 的误导,这是 DeeZire《指南》中遗留下来的错误,可能是他扒程序的时候把附近 Layer 语句的可用值当成 SpeedType 的了。

4 战机类型在黄血时每帧有 10%、红血时每帧有 80% 的概率生成名为 SGRYSMK1 的动画作为残损烟雾效果与 Locomotor 无关。


参见