Unreal Engine 4 中的 "Break Rotator" 和 "Make Rotator" 是什么?

What is a "Break Rotator" and "Make Rotator" in Unreal Engine 4?

所以,我是初学者 Unreal Engine 4. 我无法理解角色蓝图运动输入中的“Make Rotator”和“Break Rotator” class。 UE4文档的原始定义让我更加困惑了。谁能简单解释一下?

A FRotator(或者在 BP 中只是 Rotator)是 Unreal 存储旋转的方式。

通常,旋转在程序中有两种主要表示方式:

  1. 作为每个轴的三个独立旋转值,称为欧拉旋转:一个用于在 X 上旋转多少,一个用于 Y,一个用于 Z。这是“较旧”的方法,并且有其问题,主要是gimbal lock。此外,没有标准,不同的程序以不同的顺序应用它们(有些程序执行 ZXY:Z 首先,X 第二,Y 第三,但其他程序执行 XYZ 等)。
  2. 为了解决欧拉旋转的问题,使用了另一种选择,有四个独立的值:三个值表示旋转轴,另一个表示角度。这个轴和角度值称为四元数(因为它有四个值,quat 在拉丁语中是四)。由于任何独特的旋转在数学上都可以表示为轴和角度,因此四元数旋转不受万向节锁定的影响,并且不依赖于任何顺序。

Unreal 在内部使用四元数 (FQuat),但它们比三个 X Y Z 旋转更难解释和理解。因此,FQuat 仅适用于 C++,并且在蓝图级别上,编辑器仅将旋转显示为三轴。这就是 Rotator 的用途。

当您 break 旋转器时,您只需分离出 XYZ 旋转的三个浮点值。当您 make 三个浮点值中的一个旋转器时,它会进行由它们产生的旋转。

这些 breakmake 节点存在于许多其他类型中,例如 FVector(在 BP 中仅显示为矢量)、FLinearColor(线性颜色),可以轻松制作更多复杂的东西,比如颜色或旋转,来自简单的 float 值。

话说回来,既然Rotator确实代表了一个轴和角度,所以最好不要用make Rotator节点,而是用rotator from axis and angle节点。

旋转器非常方便,因为在 Unreal 中有很多函数可以使用它们,例如 Lerp (Rotator) 和其他。

Break Rotator : 允许访问旋转器的元素。

制作旋转器:制作一个具有三个值的旋转器。