失衡位移机制

来自PRTS
跳转到导航 跳转到搜索

  • 该页面最近一次更新时,参考的游戏客户端版本号为(简体中文版客户端)。

部分单位可对敌方进行位移,使得敌方行动被强制改变。在“失衡免疫”实装后,我们将其称为“失衡运动”。

明日方舟使用了Unity引擎的默认的运动效果,因此游戏内的位移受力可参考经典物理学模型,具体差异会在下方标明。

  • 所有角色类单位(干员、地图装置等)是无法受到位移的。
  • 这里的敌方单位也包括空中单位,但会因下述的判断而被取消位移。
  • 为方便理解,此处所提及的位移均指代依赖于受力的移动与速度,与敌方类单位的那种依赖于移动速度的移动与速度是不同的。本页不讨论后者。

受力

当一名敌方单位受到一个任意来源的力,并且 受力大小>0 时,该敌方单位将进入失衡(UNBALANCE)状态机(以下简称“失衡”)。

失衡状态机

单位进入失衡(UNBALANCE)状态机时:

  • 激活刚体,进行相关的物理运算,并参照下述原则进行位移
  • 立刻拥有0.1s的“失衡硬直”
    • 此期间无法解除失衡状态机——哪怕已经没有被移动或者受力。

单位处于失衡(UNBALANCE)状态机下:

  • 敌人将在每一游戏帧中,根据自己所受到的力与速度进行运动。

失衡(UNBALANCE)状态机会在单位发生以下这些情况中的任一时结束:

  • 该单位陷入浮空异常效果: 浮空
    状态机尝试切换至LEVITATE (视为空中单位,无法攻击、释放技能)
    状态
  • 该单位 速度≤0.1m/s 且 不处于“失衡硬直”期间
  • 该单位被强制切换至其他状态机(例如复活、触发技能,常见于boss单位与强制触发技能中止当前攻击/技能,无视技能冷却/技力和沉默异常效果: 沉默
    无法触发技能
    部分能力识别到沉默时自行失效
    /缴械异常效果: 缴械
    无法进行攻击,持有无敌时无效
    ※也无法进行其他攻击行为(如猎手装弹、秘术师储存能量)
    效果,触发指定技能
    敌人)

失衡(UNBALANCE)状态机以任何方式正常结束后:

  • 刚体将被停用(届时将不再进行物理相关的运算)。
  • 清除所有正在拉动自己的“拖拽弹道”。
  • 清除运动速度(归零)。

默认参数与配置

接下来的讨论默认被讨论对象处于“失衡”状态。为了方便计算起见,下面对游戏内的数值进行一些单位假设(即搭建环境模型):

  • 所有物理计算均在一个二维平面内进行
  • 所有的敌人被视为质量为 \(1\ \mathrm{kg}\) 的胶囊形状刚体(水平切面为圆形)
  • 每个方格的边长为 \(1\ \mathrm{m}\)
  • 垂直于平面的重力加速度 \(g=9.81\ \mathrm{kg/m \cdot s^2}\)
  • 平面的动摩擦因数 \(\mu=0.5\)

动摩擦计算

  • 待补充

碰撞、停止

  • 待补充

“转弯”

  • 待补充