咨询电话:400-810-1418服务与监督电话:400-810-1418转接2

Unreal入门教程之蓝图样线条效果

发布时间:2021-04-20 10:08:44

今天和大家分享Unreal基础教程之蓝图样线条,我是木偶心没,既然是入门,就先从如下效果的基本样线条效果开始。

0.gif

上面主要根据画出的样线条,然后加载了同一个mesh不同的旋转值以及大小。首先按照规矩先创建一个普通的Actor blueprint class。

1.webp.jpg

然后搜索并创建一个spline。

2.webp.jpg

然后在construction script中创建一个loop去循环样线条上的每一个点。

3.webp.jpg

接着就开始往每个样线条距离上面加mesh,添加一个add static mesh component节点,并用set static mesh为添加的static mesh component设置mesh。

4.png

New Mesh中可以选择需要用样线条加载的模型,这里先随便加一个圆柱。

5.png

用set material为添加的模型赋予材质球,并将add static mesh component的return value;连接到set static mesh和set material的target中,表示是为前面的mesh设置的材质以及模型。

6.png

接下来我们将计算各个样线条上面点之间的距离,然后根据这些点需要循环放置多少mesh。

所以首先需要在左边创建如下几个。

Float类型的变量 Spacing,表示mesh之间的距离,默认值设置为150。

Float类型的变量RandomRotation,表示各个mesh的随机旋转值。

Float类型的变量RandomScale,表示各个mesh的随机大小。

RandomStream类型的变量RandomStream,可以产生随机值。

7.png

将component里面的spline拉下来,并使用Get Spline Length获取样线条的长度,将获取到的长度除以我们自定义的变量spacing就可以得到loop循环需要的次数,所以最后将return的值输入到ForLoop的Last Index里面。

8.png

找到位置以后,就可以开始放置mesh了,再将spline拉下来,然后用节点Get Location at Distance Along Spline来根据给到的样线条间隔长度,得到样线条上面的点。并且coordinate space选择World,Distance就是用自定义变量spacing和循环时候的index相乘得到的距离(如果循环到第1个,就是一个spacing,第二个就是两个spacing的距离)

9.png

接下来就是把我们的随机旋转和随机大小给加进去,先把Random Rotation和Random Stream拉出来,然后从RandomStream添加一个Random Float in Range From Stream,并设置Min为-15,Random Rotation连入到Max中,并设置默认值为15.

把最后的旋转值输入到Make Rotator的Y轴中,因为我们设置只绕着Y轴旋转。

10.png

同理设置Random Scale的范围大小为0.8-2.2

11.png

然后再在之前Get Location at Distance Along Spline后面添加Make Transform节点,把设置好的rotation和scale值都连进去,最后把输出的值连入到Add Static Mesh Component的Relative Transform中,顺手勾选Manual Attachment,可以保证加载的mesh是在蓝图原点生成。

12.png

Compile并保存蓝图,然后在拖一个蓝图到场景中,点击前面的样线条点就可以拖动样线条。

13.png

拖动样线条的同时按住alt键可以生成弯曲连续样线。

14.png

在属性面板还可以调节之前我们设置的变量个mesh之间的中间距离Spacing,随机旋转值Random Rotation,随机大小Random Scale。

15.png

这种功能比较适合做一些和电线杆类似有规律摆放的物件。

来源:Thepoly公众号