本期为大家带来的是关于UE4的基础教程蓝图样线条,教程开始,根据画出的样线条,然后加载了同一个mesh不同的旋转值以及大小。首先按照规矩先创建一个普通的Actor blueprint class。
然后搜索并创建一个spline。
然后在construction script中创建一个loop去循环样线条上的每一个点。
接着就开始往每个样线条距离上面加mesh,添加一个add static mesh component节点,并用set static mesh为添加的static mesh component设置mesh。
New Mesh中可以选择需要用样线条加载的模型,这里先随便加一个圆柱。
用set material为添加的模型赋予材质球,并将add static mesh component的return value;连接到set static mesh和set material的target中,表示是为前面的mesh设置的材质以及模型。
接下来我们将计算各个样线条上面点之间的距离,然后根据这些点需要循环放置多少mesh。
所以首先需要在左边创建如下几个。
Float类型的变量 Spacing,表示mesh之间的距离,默认值设置为150。
Float类型的变量RandomRotation,表示各个mesh的随机旋转值。
Float类型的变量RandomScale,表示各个mesh的随机大小。
RandomStream类型的变量RandomStream,可以产生随机值。
将component里面的spline拉下来,并使用Get Spline Length获取样线条的长度,将获取到的长度除以我们自定义的变量spacing就可以得到loop循环需要的次数,所以最后将return的值输入到ForLoop的Last Index里面。
找到位置以后,就可以开始放置mesh了,再将spline拉下来,然后用节点Get Location at Distance Along Spline来根据给到的样线条间隔长度,得到样线条上面的点。并且coordinate space选择World,Distance就是用自定义变量spacing和循环时候的index相乘得到的距离(如果循环到第1个,就是一个spacing,第二个就是两个spacing的距离)
接下来就是把我们的随机旋转和随机大小给加进去,先把Random Rotation和Random Stream拉出来,然后从RandomStream添加一个Random Float in Range From Stream,并设置Min为-15,Random Rotation连入到Max中,并设置默认值为15.
把最后的旋转值输入到Make Rotator的Y轴中,因为我们设置只绕着Y轴旋转。
同理设置Random Scale的范围大小为0.8-2.2
然后再在之前Get Location at Distance Along Spline后面添加Make Transform节点,把设置好的rotation和scale值都连进去,最后把输出的值连入到Add Static Mesh Component的Relative Transform中,顺手勾选Manual Attachment,可以保证加载的mesh是在蓝图原点生成。
Compile并保存蓝图,然后在拖一个蓝图到场景中,点击前面的样线条点就可以拖动样线条。
拖动样线条的同时按住alt键可以生成弯曲连续样线。
在属性面板还可以调节之前我们设置的变量个mesh之间的中间距离Spacing,随机旋转值Random Rotation,随机大小Random Scale。
这种功能比较适合做一些和电线杆类似有规律摆放的物件。