[UE4]虚幻4 spline组件、spline mesh组件的用法

摘要:
通过spline组件可以获得spline曲线上所有点的坐标信息、切线信息。splinemeshcomponent组件是在staticmesh组件的基础上加上了一个spline而已,通过它自带的spline组件我们可以精细的控制staticmesh的各种特性,达到我们需要的转换。另外,这里是根据spline的点来增加splinemesh组件的,可以准确方便的控制转弯处。

最近公司项目需要,把这两个东东好好看了下。不得不说,这两个组件还是非常方便的,但是相关的介绍、教程却非常的少。它们概念模糊,用法奇特,我就总结下吧。

首先,先要明白spline component。spline,中文翻译样条曲线,所以虚幻里的spline组件就是一条曲线,支持增加减少点、曲线点自动光滑连接等功能。通过spline组件可以获得spline曲线上所有点的坐标信息、切线信息。因此,可以通过spline制作特殊的路线,通过其坐标信息来促使某个actor、特效等沿着该路线移动。如下是官方的一个例子(特效沿着曲线移动)。

[UE4]虚幻4 spline组件、spline mesh组件的用法第1张

[UE4]虚幻4 spline组件、spline mesh组件的用法第2张

spline mesh component组件是在static mesh组件的基础上加上了一个spline而已,通过它自带的spline组件我们可以精细的控制static mesh的各种特性,达到我们需要的转换。其细节面板如下:

[UE4]虚幻4 spline组件、spline mesh组件的用法第3张

可以看到,这里重要的就是spline mesh这个地方,主要控制起点坐标、切线,终点坐标、切线,及forward axis朝向。其实这里的信息都是下面spline样条曲线里的。官方例子:

[UE4]虚幻4 spline组件、spline mesh组件的用法第4张

下面总结下spline和spline mesh的典型用法。

一、在spline曲线上不断增加static mesh组件,效果如下:

[UE4]虚幻4 spline组件、spline mesh组件的用法第5张

代码比较简单,只需沿spline隔特定距离(根据需要,可以用总距离除以需要增加static mesh的个数)add static mesh即可,然后根据距离得到某点的坐标、旋转信息即可(get world location/rotation at distance along spline)。

二、在spline曲线上不断增加spline mesh组件,效果如下:
[UE4]虚幻4 spline组件、spline mesh组件的用法第6张

相比增加static mesh组件,增加spline mesh组件可以使衔接处过渡更加自然,一般用于制作道路等连续化的东西。
另外,这里是根据spline的点来增加spline mesh组件的,可以准确方便的控制转弯处。

三、某个actor、特效等沿着spline移动。

[UE4]虚幻4 spline组件、spline mesh组件的用法第7张

这里需要结合timeline时间轴来实现,方便控制运动时间、速率。timeline的float曲线(时间0到5,值0到1)输出值相当于一个比值,乘以spline 的总长度就可以在给定时间内遍历spline曲线所有点。

四、制作某些动画效果,主要也是利用spline曲线的坐标信息。

[UE4]虚幻4 spline组件、spline mesh组件的用法第8张

控制这个植物沿曲线逐渐出现,模拟植物生长的效果。

免责声明:文章转载自《[UE4]虚幻4 spline组件、spline mesh组件的用法》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇11.Redis详解(十一)------ 过期删除策略和内存淘汰策略防止网页版微信长时间不用掉线小技巧下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

spring boot 中用@value给static变量赋值

需求:改写一个JedisUtils,工具类,所以最好用静态方法和变量。 @value("${redis.host}") private static String redisHost; 运行后发现注入失败。解决办法:看了网上大家的说法,有用中间变量的,有用set方法赋值的。试了一下都是可以成功赋值的, 以下引用别人的代码: 给参数注入,执行set方法(这里...

3.瞧,这就是UE4 C++

1.虚幻中的类前缀你会见到U,A,F,以下就是很好的罗列其中的意义  U: UObject继承过来的,例如UTexture A: AActor继承过来的,例如AGameMode F: 其他的类和结构,例如FName, FVector T:模板,例如TArray,TMap,TQueue I: 接口类,ITransaction E:枚举, ESel...

windows 编译c++库的安装CURL、64位Boost

1.CURL 本文使用vs2010 下载: git clone https://github.com/curl/curl.git https://github.com/curl/curl vs的工具下的命令行:(一定) 32位:vcvarsall.bat x86 64位:vcvarsall.bat x64 下一步:执行curl目录下的buildconf.b...

C#: static关键字的作用(转)

C#: static关键字的作用  static意思是静态,可以修饰类、字段、属性、方法 标记为static的就不用创建实例对象调用了,可以通过类名直接点出来 static三种用法: 1.用于变量前,表示每次重新使用该变量所在方法、类或自定义类时,变量的值为程序这次运行最后一次为变量赋值时的值,这个方法称为静态函数: private void s() {...

UE4_武器1_创建武器

把所有武器单独为actor,当某些事件被调用时,会镶嵌到玩家手的插槽上。 找到人物骨骼和动画,以长矛为例,在左手创建一个插槽,然后在插槽上右键添加预览,选择长矛的模型,就可以看到 动画加上长矛的预览了。 数据表 基于结构体创建的一个表格,每条信息相当于一个结构体 可以被快速搜索到,通过row 可以从外部导入进来 先创建一个武器的结构体。 其中动画的类型是...

习题解答chapter02

1. 对象与对象引用的区别是什么? 创建案例代码: public class Study{ // 默认构造方法 public Study{ } } 对象创建操作Study temp = new Study();语句解读: 左边的“Study temp”创建了一个Stu...