
如有错漏之处请不吝指出~

符号见“符号说明”一节。
1.
2.
3.
4.
5.
本文给出 5 组公式,内容包括
1. 给定初始 Motion 标签值的下落的方块(falling block)在 t 游戏刻(game tick)时的 Motion 标签值;
- 假设下落的方块在 0 游戏刻时被召唤(summon)。
2. 给定初始 Motion 标签值的下落的方块在 t 游戏刻时的位移;
- 位移:实体(entity)当前坐标(pos)向量减实体被召唤的位置的坐标向量
3. 已知 t 游戏刻时下落的方块的位移,求初始 Motion 标签值;
4. 下落的方块的位移的 y 轴分量与 x / z 轴分量的关系;
5. 给定初始 Motion 标签的下落的方块达到 y 坐标最大值的时间。
本文仅讨论下落的方块在空气(air)中且不受阻挡时的运动状态,并且本文不讨论下落的方块落地变成方块(block)的情形。
本文不考虑浮点误差。

Minecraft Wiki“实体”(entity)页面“运动”(motion of entities)章节的表格
根据 Minecraft Wiki“实体”(entity)页面“运动”(motion of entities)章节 [1] 的表格,我们获得下落的方块的竖直方向加速度值(acceleration)、竖直方向阻力值(drag (vertical))、以及水平方向阻力值(drag (horizonal))。
- 表示下落的方块在 t 游戏刻时的 Motion 标签值;
- 表示下落的方块被召唤时的 Motion 标签值;
- 表示下落的方块在 t 游戏刻时的位移;
- 下落的方块在游戏刻时达到 y 坐标最大值;
- 下落的方块的竖直方向加速度值记为;
- 下落的方块的竖直方向阻力值记为;
- 下落的方块的水平方向阻力值记为。
对于下落的方块(以及其他“应用阻力”(applies drag)为“之后”(after)的实体),其 Motion 标签值满足如下基础规律:
其位移满足如下基础规律:
由于下落的方块在 x、z 轴上的运动情况仅仅是在 y 轴的情况中把加速度值替换为 0(不存在加速度),把竖直方向阻力值替换为水平方向阻力值,因此在接下来的计算中,只需重点计算 y 轴的情况。
对于 (15) 式,待定系数 ,
移项得
与 (15) 式比较,解得
也就是说,
构成以
为公比的等比数列,因此
整理得到
然后,把 替换成 0,把替换成
,即可得到 x、z 轴的公式:
对 (19) 式求和,然后把 (21) 式代入得到
然后,把 g 替换成 0,把替换成
,即可得到 x、z 轴的公式:
在 (22) 式中求解得到
x、z 轴上则是

下落的方块抛物轨迹
在 (23) 式中求解 t 得到
代入 (22) 式得
同理,
由 (22) 式,
情形 1. 当时,
此时
因此;
情形 2. 当时,
单调递减,
取最大值当且仅当
且
解不等式
解得
因此,
1. 在 0.5 0.0 0.5 处召唤一个下落的方块,初始 Motion 标签值为 [1.0, 2.0, 3.0],假设该下落的方块在空气中运动且不受阻挡,求 8 游戏刻后该下落的方块的坐标。
2. 在 0.5 0.0 0.5 处召唤一个下落的方块,假设该下落的方块在空气中运动且不受阻挡,求初始 Motion 标签值,使得该下落的方块在 32 游戏刻后的坐标为 16.5 4.0 32.5。
1. 在 (4)、(5)、(6) 式中令以及 t = 8,计算得到
,最终坐标为 7.961848870910726 13.54892152880647 22.885546612732174。
2. 在 (7)、(8)、(9) 式中令 t = 32 以及,计算得到
,此即初始 Motion 标签值。
- 2018-10-17 发布文章。本文原标题为《关于修正并改进xwj的MC实体运动公式—适用于MC中所有实体》
- 2024-09-16 更改文章结构,修改公式适用范围。
1. Minecraft Wiki,https://minecraft.wiki/w/Entity#Motion_of_entities
- 感谢 ~xwj~