在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同时鼠标拖动模型上的样条线即可生成效果。同时设置模型的材质。

总蓝图 如下:

猜你喜欢

转载自blog.csdn.net/weixin_50755154/article/details/123251040
今日推荐