• 产品手册
  • 编辑器功能手册
  • 系统功能
  • 运动器

运动器


  • 运动器是一种可以控制单位或投射物按照期望路径进行移动的功能机制

  • 运动器提供了直线、追踪、环绕、曲线四种模式,并根据不同模式特征,开放了速度、加速度、高度、抛物线顶点高度等参数,可以实现多种表现需求

  • 运动器可以设置碰撞数据,并在碰撞到单位、地形时触发回调,可以实现多种技能子弹的逻辑需求

1、创建运动器

  • 开发者可以使用ECA接口创建运动器

M1

  • 创建运动器时需要选择新建运动器的运动对象

M2

  • 运动对象可以是单位或投射物

  • 运动器将在生效期间控制运动对象的位置、高度等属性

  • 创建运动器时,可以点击【转化为保存变量】,使用变量保存该运动器,以便之后对其进行修改、打断等操作

M3

  • 同一个运动对象上只能同时存在一个生效的运动器

    • 当向已有运动器的运动对象上添加运动器时

      • 若新运动器的优先级大于等于原运动器,则会覆盖

      • 反之,会添加失败

2、运动器模式:直线运动器

  • 使用ECA接口:运动器 - 直线运动器 ,可以创建直线运动器

M4

  • 直线运动器是控制运动对象向指定方向进行移动的运动模式

  • 该模式可以用于控制箭矢、魔法弹等直线运动的子弹

  • 可设置初始速度、加速度、最大速度、最小速度等参数来控制运动的速度

  • 可设置起始高度、终点高度、抛物线顶点高度等参数来控制运动时的高度

  • 需要设置朝向和最大距离参数,当运动器控制运动对象向目标方向移动达到这个距离时,会完成运动,触发运动完成时回调

3、运动器模式:追踪运动器

  • 使用ECA接口:运动器 - 追踪运动器 ,可以创建追踪运动器

M5

  • 追踪运动器是控制运动对象向追踪目标所在位置进行移动的运动模式

  • 该模式可以用于控制需要追踪目标的子弹,或模拟拖尾效果等

  • 可设置初始速度、加速度、最大速度、最小速度等参数来控制运动的速度

  • 可设置起始高度、目标挂接点、抛物线顶点高度等参数来控制运动时的高度

  • 需要设置追踪目标和停止距离参数,当运动器控制运动对象与追踪目标的距离小于该数值时,会完成运动,触发运动完成时回调

  • 可设置目标丢失距离和目标销毁时丢失目标参数,控制运动器的目标丢失规则

  • 也可以通过ECA【运动器 - 丢失追踪目标】来强制指定的运动器丢失目标,该ECA仅对追踪运动器有效

4、运动器模式:环绕运动器

  • 使用ECA接口:运动器 - 环绕运动器(对单位) 、 运动器 - 环绕运动器(对点) ,可以创建环绕运动器

M6

  • 环绕运动器是控制运动对象围绕环绕目标进行移动的运动模式

  • 该模式可以用于控制环绕单位的子弹或装饰特效

  • 可设置圆周半径、离心速度来控制运动对象与环绕目标的距离(离心速度大于0则会逐渐远离,小于0则会收缩)

  • 可设置每秒转动角度、环绕方向来控制运动对象的环绕方向和速度

  • 可设置环绕高度和提升速度来控制运动对象的高度(提升速度大于0则会逐渐上升,反之下降)

  • 可设置环绕时间,限制运动器的运作时间。时间结束后,会完成运动,触发运动完成时回调

5、运动器模式:曲线运动器

  • 使用ECA接口:运动器-曲线运动器,可以创建曲线运动器

M7

  • 曲线运动器是控制运动对象以指定的曲线路径进行移动的运动模式

  • 该模式可以用于固定或随机的曲线路径移动的子弹或特效表现

  • 可设置初始速度、加速度、最大速度、最小速度等参数来控制运动的速度

  • 可设置起始高度、目标挂接点、抛物线顶点高度等参数来控制运动时的高度

  • 需要设置方向和距离参数以及曲线路径,会根据距离缩放路径并向目标方向展开。

  • 完成整个路径移动后,会完成运动,触发运动完成时回调

6、运动对象的高度、位置、朝向规则

  • 运动器生效期间,运动器的移动会覆盖运动对象单位的寻路移动

  • 运动器生效期间,仍可通过 移动到点(瞬间)/强制移动 变更单位的位置

  • 创建运动器时,可通过可选参数“是否始终面向运动方向”属性,配置运动对象是否面朝运动方向

    • 开启“是否始终面向运动方向”属性后,

    • 单位会被调整水平朝向,但不会因为抛物线调整俯仰角

    • 单位的朝向会被运动器锁定,无法通过接口修改朝向

    • 投射物即会被调整水平朝向,也会因为抛物线调整俯仰角

  • 运动对象运动时,会分别计算 起始高度至终点高度 直线偏移高度 和 抛物线偏移高度,并将结果叠加

7、运动器的碰撞规则

  • 碰撞体积

    • 创建运动器时,可通过可选参数“碰撞范围”属性,配置运动器的碰撞检测半径,默认值为0

      • 配置为0时不会触发碰撞
    • 也可以在运动器创建后,通过ECA接口“设置运动器的碰撞半径”进行修改设置

  • 单位碰撞

    • 碰撞单位限制

      • 运动器在运动过程中,如果与指定敌对关系类型的单位发生碰撞,会触发动态碰撞回调

      • 创建运动器时,可通过可选参数“碰撞类型”属性,配置运动器与何种敌对关系的单位会触发碰撞回调,默认值为 敌对

        • 敌对:与运动对象是敌对关系的单位

        • 盟友:与运动对象不是敌对关系的单位

        • 全部:全部的单位

    • 碰撞同一单位规则

      • 创建运动器时,可通过可选参数“能否重复碰撞同一单位”属性,配置运动器能否与同一单位碰撞多次,默认值为 false

      • 创建运动器时,可通过可选参数“碰撞同一单位间隔”属性,配置运动器与同一单位碰撞的最小间隔,单位为秒,默认值为0

      • 能否重复碰撞同一单位 设置为false时,运动器生命周期内,每个单位的碰撞只会触发一次回调

      • 能否重复碰撞同一单位 设置为true时,当运动器与单位发生碰撞时,若距离上次与该单位的碰撞时间超过“碰撞同一单位间隔”数值,则会再次触发回调

        • 该逻辑每帧最多执行一次
  • 地形碰撞

    • 创建运动器时,可通过可选参数“地形阻挡”属性,配置运动器是否在碰撞地形时触发回调,默认值为 false

    • 创建运动器时,可通过可选参数“地形事件触发间隔”属性,配置运动器与地形碰撞的最小间隔,单位为秒,默认值为0

    • 地形阻挡 设置为true时,当运动器与地形发生碰撞时,若距离上次与该单位的碰撞时间超过“地形事件触发间隔”数值,则会再次触发回调

      • 该逻辑每帧最多执行一次

8、运动器的回调

M8

  • 运动完成时

    • 各运动器类型在达成自身的完成条件后触发

    • 直线运动器:抵达最大距离时触发

    • 追踪运动器:与追踪目标的距离小于停止距离时触发

    • 曲线运动器:曲线完成时触发

    • 环绕运动器:环绕时间结束时触发

  • 运动打断时

    • 在可选参数中勾选后开启

    • 当通过ECA接口“打断运动器”打断运动器后触发

  • 运动移除时

    • 在可选参数中勾选后开启

    • 运动器在任何条件下被移除时会触发

  • 碰撞静态碰撞(地形、可破坏物等)时

    • 在可选参数中勾选后开启

    • 运动器的“地形阻挡”=true,且本次地形碰撞与上次间隔超过“地形事件触发间隔”数值时触发

  • 碰撞动态碰撞(单位)时

    • 在可选参数中勾选后开启

    • 碰撞的单位符合 碰撞类型 且 首次碰撞 或 满足重复碰撞条件时触发

  • 目标丢失时

    • 仅追踪运动器可用,在可选参数中勾选后开启

    • 运动器丢失追踪目标后会立刻触发

运动器实战案例


9、实战案例:黑暗2-亚马逊-多重箭

M9

M10

10、实战案例:黑暗2-亚马逊-导引箭

M11

M12

11、实战案例:暗黑2-圣骑士-祝福之锤

M13

M14

12、实战案例:暗黑2-德鲁伊-龙卷风

M15

M16