在场景中添加道路常用的有两种
一种是在三方建模软件(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同时鼠标拖动模型上的样条线即可生成效果。同时设置模型的材质。
总蓝图 如下: