在UE4蓝图中利用样条线组件(Spline)生成道路

在场景中添加道路常用的有两种

一种是在三方建模软件(3Dmax Maya 等)建好后导入到UE中

第二种是在地形模式(Landscape)下设置地形的起伏形成道路或者做个

另一个还有“顶点绘制”,这个是给模型附加两种材质,再根据模型的顶点分布,显示一个隐藏一个,进而实现道路的效果。

但今天讲的是医用UE的蓝图系统制作可以实时改变路径材质的道路。

话不多说 直接开始:

首先在关卡中创建一个Actor类型的蓝图

然后再添加spline样条线组件

拖入场景获取此样条线(点)的数量(Get Number of Spline Points)

因为我们需要在两点之间创建模型往外延伸所以要用到流程控制的 For Loop 循环节点

把  Get Number of Spline Points 节点与之相连 但是 因为样条线Spline的第一个点其实是第0个点 所以我们本应该需要将 Get Number of Spline Points 做个减法 减去1,但是For Loop循环也是从零开始的 如果只减去1的话,会在开始阶段创建两个模型,所以这里我们需要减去2。

我们将这个蓝图写在函数—构建脚本(Construction Scrip)中,这里的构建脚本(Construction Scrip)是生成组件和执行其他设置的地方 所以我们将样条线生成道路的功能写到这个函数中。

对应相连 如下

 连接好后在从For Loop的输出节点Loop Body添加样条线的网络组件节点  Add Spline Mesh Component 
点击 Add Spline Mesh Component 节点可以选择需要生成的模型(道路),这里可以是引擎自带的网格体,也可以是从第三方软件导进来的模型,还可以自定需要延什么轴生成,如下:

但在这里为了模型可以在视口中随时更换,所以我们这里设置一个静态网格体  Set Static Mesh   如果想做多个种类那就右击目标模型右击提升为变量。如下:

 样条线应该有始有终,所以我们还需要给 Add Spline Mesh Component  (添加样条线网格组件)节点设置一个初始和结束的节点 Set Start and End

并且根据实际情况 项目需求给这个线段生成的模型设置碰撞  Set Collision Enabled    如下:

最后 我们就该设置样条线的起始和结尾了

首先找到刚刚创建的循环节点For Loop节点 从他的输出节点Index拉出本样条线处的位置切线的节点  Get Location and Tangent at Spline Point 来获取样条线的每段的起始位置并与  Set Start and End  的 Start 对应相连,这就是每段的起始点。如下:

而每段的结束点要比起始点多出一个点 一个单位,所以结束点之前需要做个加法,加上1。并与 Set Start and End  的 End 对应相连,这就是结束点。 如下:

 要想在外界随意更换多个不同的模型 不仅仅需要将 Set Static Mesh 设置静态网格体的模型提升成变量,还需要将此变量资产设为公有,并在本蓝图的的子蓝图中替换

如下:

 

利用这个 这几点 可以用一个蓝图同时制作多种效果,道路、围栏、城墙、等一切不规则循环延伸模型。

 按住键盘 Alt同时鼠标拖动模型上的样条线即可生成效果。同时设置模型的材质。

总蓝图 如下:

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注