获取两个演员之间的偏航角 - 虚幻蓝图

amb*_*800 2 vector angle unreal-engine4 virtual-reality unreal-blueprint

我正在使用蓝图在虚幻引擎 4 中开发 VR 游戏。

我想计算用户需要转动他/她的枪(其方向通过运动控制器的位置确定)以指向目标所需的(偏航)角度。

我认为这可能是这样做的方法:

  • 从枪的位置减去目标的位置
  • 将其偏航分量作为从枪指向的矢量作为原点
  • 从那个偏航分量中减去枪方向的当前偏航,得到用户需要转动才能到达目标的偏航角

除了我不太确定如何执行。我一直在试验(如下面的屏幕截图所示),但没有进行正确的操作。有什么想法吗?

谢谢!

虚幻引擎 4 截图

Bas*_*eld 7

一个更优雅和健壮的解决方案是使用枪演员的世界变换来计算对象的相对旋转:

  1. 获得枪的世界变换。旋转应指向前向矢量方向。您可以使用其位置和前向向量进行变换,但组件变换可能会起作用。
  2. 在此变换上使用操作InverseTransformLocation,并将目标位置作为其他参数。这将创建一个向量,该向量是目标在枪空间中的位置
  3. 使用RotationFromXVector操作获取此向量的旋转

这个旋转器包含正确的偏航,但也包含俯仰。当您的对象在空间中任意旋转,或者您的对象成为更多演员的孩子时,它也会起作用。

  • @Ruzihm 老实说, RotationFromXVector 只是在内部调用 Vector.Rotation() 。MakeRotFromX 使用旋转矩阵要复杂得多。我没有看到在蓝图中使用它,所以我猜他们主要是为了完整性而公开它。 (2认同)