失衡位移机制
- 该页面最近一次更新时,参考的游戏客户端版本号为?(简体中文版客户端)。
部分单位可对敌方进行位移,使得敌方行动被强制改变。在“失衡免疫”实装后,我们将其称为“失衡运动”。
明日方舟使用了Unity引擎的默认的运动效果,因此游戏内的位移受力可参考经典物理学模型,具体差异会在下方标明。
- 所有角色类单位(干员、地图装置等)是无法受到位移的。
- 这里的敌方单位也包括空中单位,但会因下述的判断而被取消位移。
- 为方便理解,此处所提及的位移均指代依赖于受力的移动与速度,与敌方类单位的那种依赖于移动速度的移动与速度是不同的。本页不讨论后者。
受力
当一名敌方单位受到一个任意来源的力,并且 受力大小>0 时,该敌方单位将进入失衡(UNBALANCE)状态机(以下简称“失衡”)。
失衡状态机
单位进入失衡(UNBALANCE)状态机时:
- 激活刚体,进行相关的物理运算,并参照下述原则进行位移
- 立刻拥有0.1s的“失衡硬直”
- 此期间无法解除失衡状态机——哪怕已经没有被移动或者受力。
单位处于失衡(UNBALANCE)状态机下:
- 敌人将在每一游戏帧中,根据自己所受到的力与速度进行运动。
失衡(UNBALANCE)状态机会在单位发生以下这些情况中的任一时结束:
失衡(UNBALANCE)状态机以任何方式正常结束后:
- 刚体将被停用(届时将不再进行物理相关的运算)。
- 清除所有正在拉动自己的“拖拽弹道”。
- 清除运动速度(归零)。
默认参数与配置
接下来的讨论默认被讨论对象处于“失衡”状态。为了方便计算起见,下面对游戏内的数值进行一些单位假设(即搭建环境模型):
- 所有物理计算均在一个二维平面内进行
- 所有的敌人被视为质量为 \(1\ \mathrm{kg}\) 的胶囊形状刚体(水平切面为圆形)
- 每个方格的边长为 \(1\ \mathrm{m}\)
- 垂直于平面的重力加速度 \(g=9.81\ \mathrm{kg/m \cdot s^2}\)
- 平面的动摩擦因数 \(\mu=0.5\)
动摩擦计算
- 待补充
碰撞、停止
- 待补充
“转弯”
- 待补充