• UE4 Spline


    本文为学习安宁Ken的UE4Spline的记录

    介绍

    UE不太支持别的软件导入的样条线

    一般直接在场景里编辑曲线而不是在蓝图里编辑曲线

    只能创建一个Spline Component,然后将这个Actor拖到场景里

    添加点:右键添加或者alt+拖动现有点

    Curve Linear Constant

    每个节点有很多数据,节点上方向(用于确定唯一旋转),进入的切线,离开的切线等等

    会用到的相关蓝图函数

    SplineGenerationPanel

    可以快速生成一些线段,包括圆弧、圆环等

    有的面好像不太好生成,并不好用目前看,貌似xz yz平面不太好生成

    编辑器中使用SPline

    Construction Script节点,当前对象在场景中实例化一次便会执行一次这个节点,比如把这个actor拖到场景中,可能会触发很多次(拖的时候),我们对它做任何修改或者对组件做任何修改,动一下位置,也会导致这个节点执行,其不需要游戏运行起来就能触发,很适合做一个摆放工具之类的,按照一些规则进行生成

    复制摆放

    vector变量等可以在场景中有一个3D widget的可视化方案

    Truncate节点去除小数部分

    思路:固定距离去取曲线上的点(GetTransformatDistanceAlongSpline),每次编辑曲线都回执行construct script,这个脚本里就给取的点的位置添加一个StaticMeshComp,并对这个StaticMeshComp指向的Mesh资源进行一个指向

    在关卡界面对指向的资源模型和进行赋值

    效果:那就打个问号吧

    给以这个Transform的location或者rotation一些随机可以得到一些沿着曲线但是有点偏移的效果,模型也可以有缩放

    注意点

    这里使用AddStaticMeshComp生成了一堆的Comp,多个Comp对应了多个drawCall,这种模型很显然可以进行合批操作的

    UE是有对应的Component的,InstancedStaticMeshComponent,一开始先创建好,然后对这个InstancedMeshComp进行AddInstance

    这么多问号才10+drawcall

    小技巧

    可以右键节点选中所有曲线点,然后使用对齐方案,比如键盘上的End键,来进行向下对齐,适用于不平整的路面,曲线的控制点数需要多一点

    制作道路管道桥梁

    Spline Mesh Actor

    使用曲线去扭曲一个静态模型让其达到一个变形的情况,管道一类的需要模型的面数较高,分段要多

    里面起作用的是一个SplineMeshComp组件

    这样的话我们创建一个新的Actor,然后根据复制摆放的原理,遍历曲线的每一段segment,每有一段就创建一个SplineMeshComp,设置他的Trasform的值(每一段获取起始点和终止点的location和tangent值,可以的话set up vector at spline Point把UpVector也计算一下以避免弯曲过大产生的两面不接的bug),首尾相接 便可以做出随着Spline变化的管道了

    注意UE的For Loop蓝图节点是<=的判定而不是<

    管道的UV应该是铺满的,这样子才可以很好的tiling

    变化的时候也可以设置mesh的材质、mesh的碰撞

    经验:模型的断面一般朝向x方向,不容易产生太多旋转扭曲的截面bug

  • 相关阅读:
    Flex 布局:语法
    Sublime Text常用快捷键
    WebStorm快捷键操作
    获取token
    Oracle杂记
    YKT文件解析
    杂记_ 关键字
    Python Web 性能和压力测试 multi-mechanize
    详细介绍windows下使用python pylot进行网站压力测试
    python文件和目录操作方法大全
  • 原文地址:https://www.cnblogs.com/FlyingZiming/p/15027663.html
Copyright © 2020-2023  润新知