一、数学表达式节点的创建
右击 并从关联菜单中选择 Add Math Expression(添加数学表达式)
二、添加自己所需表达式
添加表达式的方式是重命名该节点,点击节点然后按下F2重命名或者右击重命名即可。
例如:要计算a+b的值
然后回车即可。这将会更新该数学表达式节点,使其具有两个浮点型输入 a 和 b,及一个浮点型输出。
双击进入即可发现他会根据你的表达式创建节点与连线(只读,想要修改只能从第一步中重新通过重命名的方式来更新表达式)。
需要注意的是,不要将所在蓝图已经有的参数代入其中,如果你的蓝图中已经有了a变量,他将会自行引用a变量而不是创建新的输入节点了。(如下图,当然如果你本身就是想用a来计算,那就对了,如果你只是把a当做一个传递参数,还是应该起一个其他的名字)
三、注意事项
如果你的公式中有分数如1/2,就要尽量用1.0/2.0或者直接换成小数0.5。如果直接用1/2,程序会自动将1和2用int计算,返回值也会是int,最后结果将会是0,从而影响最终结果。不止在ue4蓝图中,在其他语言也要考虑这个事情。
还有就是记录下运算顺序
运算顺序如下所示(按照优先级从高到底的顺序):
-
括号内的表达式
-
阶乘
-
指数
-
乘除法
-
加减法
四、扩展
在数学中,有一些经常要用到的基本结构体: 向量、变换等。可以在表达式中轻松地创建及操作这些类型。
-
vector 关键字生成一个MakeVector节点:
vector(x,y,z)
-
rotator 关键字生成一个MakeRotator 节点:
rotator(x,y,z)
-
transform 关键字生成一个MakeTransform 节点:
transform(vec(x,y,z), rot(p,y,r), vec(6,5,4))
正如某些函数有别名一样,向量和旋转量也有别名。
-
Vector(向量)别名
vector, vec, vect
-
Rotator(旋转量)别名
-
rotator, rot
五、更多细节连接
官方关于节点的更多详细介绍:https://docs.unrealengine.com/zh-CN/ProgrammingAndScripting/Blueprints/UserGuide/MathNode/index.html
六、个人理解
最后说一下我对这个节点的理解:
1.他可以开发者更简洁快速的写出所需的算法而不是将时间浪费在连接复杂的连线上(当你在网上找到其他语言的算法解决方案时,基本可以直接拿过来用)
2.在做一些判断方面的节点时,可以快速得出,简化蓝图
3.弊端是他毕竟是自动生成,创建后要点进去先大致看一下结构
欢迎讨论~~~