"backwards" 物理引擎

"backwards" physics engine

我需要以 "backwards" 的方式应用游戏物理。

即使对术语进行澄清也会有所帮助。

问题

给定 body 的质量、最大速度、最大力和设定的运动路径(目前为 2d),我想确定使 body 跟随路径同时最小化时间。

换个说法,一个object的寻路完成,现在我要施加惯性

想法

都需要抽样

  1. 使用物理引擎控制动态 body 的运动,应用脉冲沿路径移动。任何时候 body 偏离路径太远,后退并开始减慢 body.

  2. 使用物理引擎控制通过 spring 附加到动态 body 的运动学 body。动态 body 沿着路径稳定移动,直到动态 body 将 spring 拉得太远...再次:后退并减速。

我是否遗漏了一些我尚未发现的常用方法?这有点像逆向运动学,但求解不同的变量。

我知道这是 "motion planning",这不是微不足道的。

我可能会尝试其中一种(或两种)方法:

进化。 我将从轨迹 (x(t), y(t)) 开始,其中 body 在每个点都完全停止序列中的点,或三次曲线的每个接合点;这很容易计算。然后我会允许推力的小随机变化,选择遵守飞行数学和最短总时间,直到总时间趋于平稳。

分段。 对于每条三次曲线,计算 body 可以具有的起始速度范围,并且仍然足够接近曲线。然后让相邻的段收紧对切换速度的限制,每个段都寻求最小化自己的时间。