大家好,我是很久不见,主要从事的方向是引擎美术。本次给大家带来UE4蓝图样条制作电线杆的案例教程。
在我早些时候的案例中有使用过蓝图样条,点击可查看 UE4制作废旧医院场景案例教程
本次文章中,对这一内容进行展开讲解。先来看一下最终的效果展示:
1、前期准备
首先在静态网格体编辑器中,对电杆模型创建插槽。
这里我创建了三个插槽,并且将对应的插槽移动到了电线杆模型相应的位置上。
接下来是蓝图的准备工作,这里为了蓝图可以实时编辑,右键创建两个蓝图结构。
其中一个蓝图结构命名为“Cable_Info_Struct”用来制作线缆结构的,其中部分开启了“可编辑”。
第二个蓝图结构命名为“Cable_Settings”用来设置上一个蓝图结构。
为了接下来在蓝图中构建便利,这里全部开启了“可编辑”。
2、蓝图构造脚本
右键新建蓝图类,并选择父类“Actor”。
为了蓝图在场景中更好的观察,这里我创建了“公告板组件”替换了原本的“DefaultSceneRoot”,并开启“为屏幕大小缩放”。
在蓝图中添加“样条组件”。
首先从构造脚本出发先添加了网格体组件,这里For loop中提升了变量,并命名为“Current Index”。
静态网格组件的“Relative Transform”相对变换,是从样条曲线当前点的位置得来的。
然后设置静态网格体,这里将“New Mesh”提升为变量,并且设置为“可编辑实例”,这样在使用该蓝图时可以实时替换网格体模型。
接下来对网格体做了一些小小的编辑,对可视性、隐藏、碰撞和材质做了单独的编辑。
网格体组件最后这部分,做了一个分支,一个是直接从样条曲线当前点处的旋转设置网格体旋转,另一个是在这基础上加了90度的旋转。
这里拆分了旋转,并且没有连接点的Y轴旋转,这样在抬高或降低某一个样条点的时候不至于出现网格体倾斜的效果,只会在平面上朝向相邻的网格体。
3、添加线缆
这里主要是添加缆索组件。首先从第一个“For Loop”的结果中延伸到“For Each Loop”,先做一些变量的设置,主要是针对缆索的数组、当前网格、当前插槽的名称做变量操作。
之后添加缆索组件,这里组件的Transform是从当前模型插槽的位置上得到的。
这里两个插槽之间的长度,就是线缆的长度。
接下来指定线缆信息,这里直接右键就能搜索到创建和中断线缆信息结构,即一开始创建的蓝图结构。
结束这里多连接了一个函数,这里是单独创建的。
主要是针对“Cable_Info_Struct”的一些设置指定。
4、添加设置
为了方便在外部也可以调节线缆的设置,这里使用先前设置的“Cable_Settings”对线缆的结构信息进行设置。
首先还是从上一个模块“For Each Loop”的“Completed”中引出来,连接到另一个“For Each Loop”上。
最后做一些连连看的操作,注意这里给线缆的长度做了一个松弛的调节操作,所以左边的线缆长度没有直接连接到右边,而是加上了“Cable_Settings”的变量值。然后只有线缆的插槽名称一直,且线缆在样条曲线的位置一致时,这里才能成立,所以这里用到了“=”等于和“AND”布尔。
5、蓝图的使用
这个蓝图直接拖到场景中应该是这样的。
在右侧细节面板中,点击加好,设置插槽。模型有多少个插槽,此处就开启多少。
填写每个插槽的名称,注意0、1、2的名称都是对应相同的。
之后就可以得到如下效果。
可以拖拽样条线的点生成更多电杆的效果。
可以在蓝图中对某一段线缆的起始或者结束的连接进行勾选,或者调节线缆的粗细。
以上就是本次教程案例的内容了,希望大家可以从中有所收货。
本次案例是我的个人练习,如有不足之处,希望大家可以一起交流学习,一起变得更强!