欢迎光临散文网 会员登陆 & 注册

Niagara | 粒子在样条线移动

2021-11-12 12:51 作者:那个人真狗  | 我要投稿

创建样条线

  • 创建一个蓝图,增加Spline 组件

  • 放到场景中

粒子系统部分

  • 创建一个粒子系统

  • 在粒子发射器更新阶段,创建发射器,设置数量为 1

  • 产生一个粒子,

  • 现在需要读取我们创建的蓝图样条线,创建一个样条线的变量。

  • 命名  —路径(Path)

  • 把粒子放到场景中,属性里指定路径(可以使用吸管,吸取路径)

  • 现在还看不到效果。我们需要在缓冲区,自定义功能。

粒子缓存部分

  • 缓冲区

    点击模块创建一个模块,命名成 路径生成

  • 我们需要获取—Spline样条线类型—-命名Path

  • 获取样条线在世界空间的位置信息。

  • 注意:

    这里有俩个位置信息,没有WS表示的是样条线空间,WS表示世界空间。

  • 获取样条线世界空间下的位置信息。输出到粒子系统

  • 把位置信息输出到粒子位置信息。

  • 点击应用

  • 在粒子生成阶段,使用我们刚刚创建的模块

  • 这里是绑定,我们需要把一开始创建的变量输入进来。

  • 效果—就出现到样条线上。

  • 那我们怎么让粒子在样条线上移动。

    回到缓冲区,在创建一个模块,控制粒子的位置移动-命名FollowSpline

  • 前面还是一样获取位置信息

  • 样条线的位置点,是从0 开始,到 1 结束

  • 那我们可以把生命值映射到 (0-1)的范围,这样就可以匹配到样条线不同的位置上面。 因为我们的生命值是一直增加的。相当于从 0开始 一直在增加。

  • 我们前使用生命值控制粒子的位置,

  • 在粒子系统 粒子更新阶段,创建一个我们刚刚创建的模块

同样的使用 path路径变量—-生命值修改成 0.15

  • 效果

这个0.15的数值就相当于 路径上的 0.15的位置信息。如果我们 数值 大于1 都只是在结尾。

  • 这里我们使用 归一化的Age

  • 创建一个变量,选择 NormalizeAge

应用,在看一下效果

  • 我们就可以看到

  • 设置粒子的生命值控制,粒子快慢

现在简单的实现了一个粒子在路径上移动,使用这个功能可以扩展出大火球,冰刺

完成结束

扩展 :Normalized  (归一化)

  • Unity  把向量归一化的normalized和Normalized官方解释:

归一化就是要把需要处理的数据经过处理后(通过某种算法)限制在你需要的一定范围内。



总结

  • Scratch Pad(缓冲区)的使用,可以自定义模块。

  • 可以创建重复使用的模块,这些模块会储存到粒子系统内,如果创建全局需要使用的模块脚本,可以使用

  • 界面布局

  • 获取样条线的位置信息。还有那些样条线数据



  • Normalized  (归一化) 的概念。

    归一化的概念

  • 这部分有一个基础知识,向量,

扩展:向量是什么?

  • 向量表示俩个属性,一个属性是(Direction)方向,一个属性是长度

  • 如果方向一样,长度不一样,越长的那个向量速度越快。


向量视频参考

https://www.bilibili.com/video/BV1Ys411k7yQ?from=search&;seid=7023141391383425051&spm_id_from=333.337.0.0



资料参考


Niagara | 粒子在样条线移动的评论 (共 条)

分享到微博请遵守国家法律