虚幻4蓝图节点的连接方式注意事项

虚幻4蓝图节点的连接方式注意事项

在虚幻引擎4的官方文档行为树快速入门指南中,有一部分是用行为树控制AI的巡逻,在AI没有发现玩家时会进入巡逻状态,在巡逻状态下会随机生成一个可以到达的点,然后让AI走向那个点。我在跟着做的时候加了一个Draw Debug Sphere节点,即在生成的那个点绘制一个调试球,结果我发现AI在移动时并没有走到调试球的位置,然后发现了节点的连接有一些问题,在此写下来分享给大家

注意事项

(1)假设有如图1所示的连接方式,node1和node2的执行都需要node3节点执行的结果Return Value作为输入,则node3实际上会执行两次,即执行到node1时会执行node3,执行到node2时会再执行一次node3而非使用上次计算的结果,当node3的Return Value为随机值时,就可能会出错,因为node1和node2的输入可能并不相同。
虚幻4蓝图节点的连接方式注意事项_第1张图片
图1
(2)若要保证输入到node1和node2的值相同,同时避免不必要的重复运算,则应将Return Value提升为变量,将图表连接方式改成如图2所示。
虚幻4蓝图节点的连接方式注意事项_第2张图片
图2

不同连接方式的效果

在一开始所述的基础上,我又加了一个Draw Debug Sphere节点,给大家直观的查看两种连接方式的区别,图3是按照上面第一种方法连接后的结果,可以看到绘制的两个球并不在同一处,AI也没有朝两个球体的方向走。
虚幻4蓝图节点的连接方式注意事项_第3张图片
图3
图4显示了按照上述第二种连接方式连接的结果,可以看到两个调试球生成在了同一处,AI也正朝着它们的方向走。
虚幻4蓝图节点的连接方式注意事项_第4张图片
图4

总结

大家应该可以明显看出两种连接方式的区别,在遇到类似的情况时要妥善考虑一下,若按上述的第一种方式连接,虽然方便易读,但却会做重复计算,有的时候可能还会出现错误。也可以看出同样的逻辑如果用C++实现的话,性能也会比蓝图高许多,希望这篇文章能够对大家有所帮助。

你可能感兴趣的:(虚幻4蓝图节点的连接方式注意事项)