【问题标题】:"backwards" physics engine“向后”物理引擎
【发布时间】:2018-08-16 02:21:34
【问题描述】:

我需要以一种“倒退”的方式应用游戏物理。

即使是对术语的澄清也会有所帮助。

问题

给定物体的质量、最大速度、最大力和设定的运动路径(目前为 2d),我想确定使物体跟随路径所需的力,同时最大限度地缩短时间。

换句话说,一个物体的寻路已经完成,现在我要应用惯性。

想法

两者都需要抽样

  1. 使用物理引擎来控制动态物体的运动,应用脉冲沿路径移动。每当身体偏离路径太远时,请后退并开始减慢身体速度。

  2. 使用物理引擎来控制通过弹簧连接到动态体的运动体。运动体沿着路径稳步移动,直到动态体将弹簧拉伸得太远......再次:后退并减速。

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

【问题讨论】:

  • 感谢您提出一个非常好的问题!据我了解,这确实是“火箭科学”的根本含义的核心,正式称为“控制理论”。很久以前研究过,依稀记得诸如“可达性”之类的子问题——路径到底能不能到达; “可控性”,我们能否通过可用的传感器和力量达到它;当然还有最优控制的问题,如何使用尽可能少的能量来达到目标​​。我想这个领域的任何人都应该能够回答你的问题。
  • 路径是定义为点序列还是连续定义的曲线?
  • @Beta,两者都是。路径以一系列点开始,但我将其拟合为三次贝塞尔曲线的连续序列。我有一个函数可以让我在 %path 处获得位置,但 y 不是 x 的函数。

标签: physics game-physics


【解决方案1】:

我知道这是“运动规划”,它不是微不足道的。

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

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

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

【讨论】:

  • 我的搜索使我找到了类似的方法。你的进化方法将是目前最有趣、最流行的方法……听起来像神经网络/机器学习。
  • 我可能最终会分段进行。其他要求(时间线清理)使我走上了一条规定每个 60fps 显示帧的输出位置的路径。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-01-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多