当前位置: > > > UE5 - 标量计算、向量计算详解(附样例)

UE5 - 标量计算、向量计算详解(附样例)

    在 Unreal Engine 5UE5)开发中,标量(Scalar) 和 向量(Vector) 是最基础的数据类型。理解它们的运算逻辑,能让我们高效实现角色移动、物体交互、战斗系统等核心功能。本文将通过样例演示它们的使用。

一、标量计算

1,加减乘除

(1)整型和浮点型是两种比较常用的变量类型,这两种类型的变量可以用于存储标量。每个计算节点的输入引脚都有两个,可以视为 AB。则加减乘除分别为 A+BA-BA×BA÷B。要生成以上 4 种节点,单击鼠标右键并输入“+”(加号)、“-”(减)、“*”(乘)和“/”(除)4 个字符即可。
提示:灰色引脚为“通配符”,“通配符”是蓝图中的一种引引脚类型,可以在宏中定义通配符,通配符会随着连接类型的变化而变化。如加法运算,当连接整型引脚(绿色)到通配符上时,通配符就会变成整型引脚。

(2)在通配符上单击鼠标右键,执行“转换引脚”菜单命令后可以在弹出的子菜单中找到想要设置的类型。也可以直接拖曳具有类型属性的引脚到通配符上,通配符会自动转换为拖曳引脚的类型。
                                         
(3)可以对输入引脚的类型进行单独修改,如现在设置第 1 个输入引脚为“整数”型,那么设置第 2 个输入引脚为“浮点(双精度)型后,节点会变成“整型+浮点型”节点,从而输出整型变量。

2,平方和平方根

(1)在“事件图表”面板中搜索“平方”生成“平方”节点,“平方”节点只能输入浮点型数字,如果想输入整型数字则需要先对节点进行转换。输出结果为输入变量的二次方。

(2)在“事件图表”面板中搜索“平方根”生成“平方根”节点,“平方根”节点可以对数字进行开方。例如输入 9 返回 3

3,取余运算

    使用“%”节点可以进行取余运算,有字节、整型和浮点型 3 种用于计算不同类型变量的节点,如下图所示。取余运算可以算出除法运算的余数为多少,输出结果是除法运算中未除尽的部分,如输入 28628÷6=44 结果为 4

4,绝对值

使用“绝对值”节点可以算出数字的绝对值,该节点有 Integer64 类型、Integer 类型和 Float 类型。

二、向量计算

1,基本介绍

(1)可以将向量理解为有 3 个浮点型数字的结构体,向量在更多情况下用来表示方向、位置、速度和冲量等。向量可以进行四则运算,黄色的线框通常代表参与运算的是向量。
(2)可以使用“”“”“”“”4 个节点对向量进行运算。

2,使用样例

(1)以加法为例,使用鼠标右键单击通配符,执行“转换引脚>向量”菜单命令,设置引脚类型为“向量

(2)这时“”节点已经被设置为向量的“”节点,在对向量进行相加时会遵循 X+XY+YZ+Z 的原则,然后从右侧输出结果。减、乘、除的运算方法同理。

(3)如果想对某一向量的 XYZ 进行同一种运算,则可以将输入引脚的其中一个修改为“浮点型”和“整型”。这样 XYZ 会分别与“浮点型”或“整型”变量做运算。

(4)例如下面运行后结果为 X=3.0Y=4.0Z=5.0

3,获取方向

(1)向量不仅可以表示位置,还可以表示方向,是游戏中不可或缺的、基础的数学知识之一。
提示:通常情况下表示旋转方向会使用 Rotator 而不用 VectorVector 一般用于计算等。但它们两个可以相互转换。

(2)虚幻引擎 5 蓝图自带了许多可以获取方向的节点。返回的向量被归一化(长度 =1
  • 左侧 3 个节点为数学计算节点,通过输入旋转值来获取方向向量
  • 右侧 3 个节点为变换节点,通过输入 Actor 名称来获取方向向量

(3)要找到相反的向量,只需要将向量乘以 -1 即可。这样操作后,可用获取 Actor 的向后、向左和向下的向量。

4,向量长度

(1)在 Unreal Engine 5 的蓝图中,既可以使用默认的“向量长度"节点来得到向量的模,也可以手动计算长度。

(2)手动计算长度需要使用公式,具体如下:
  • 通过“拆分向量”节点使向量以 3 个浮点型的形式存在。当然我们使用鼠标右键单击节点并执行“分割结构体引脚”菜单命令也可以达到相同的效果。
  • 计算向量长度的公式用于进行 3 个值的平方计算和开方计算,使用“平方”节点分别对 XYZ3 个值进行平方计算。
  • 使用“”节点将 3 个值的平方值相加,使用“平方根”节点开方,最终结果就是向量的长度。

(3)下面蓝图样例我们分别使用手动计算和“向量长度"节点两种方式获取向量长度,并将结果进行对比。

(4)运行后输出为“相等”,说明两种方法的计算结果相等。

5,向量归一化

(1)我们可用使用“Normalize”向量归一化节点来找到单位向量,单位向量的长度等于 1。它经常在需要指示方向时使用。该节点可用接收一个向量作为输入并返回归一化后的向量。

(2)下面样例运行后,小球会以每帧 10cm 的速度超方块的方向移动。


6,点积

(1)“Dot Product”节点可用将一个向量投影到另一个向量上。两个标准化向量的点积等于向量之间形成的角度的余弦,其范围位 -1.01.0 之间。

(2)“Dot Product”节点可用用来验证两个向量之间的关系,比如它们是垂直的还是平行的。下图显示了两个向量 AB 之间点关系的示例。

(3)例如下面我们计算小球和方块向前向量的点积。
  • 输出结果为 1.0,说明它们向前向量是平行的。
评论0