Unity Visual Effect Graph初探

前言

最近为了实现动画课程设计的烟花效果,所以要学习一下Unity的新特效工具Visual Effect Graph,特此记录学习的过程,避免以后会忘记。

注意

目前Visual Effect Graph只能在HDRP中使用,也就是说必须使用Unity2018.3以上的版本。

为什么要使用VEF

我们已经有传统的Particle System系统,那为什么要用VEF呢?

其实VEF能比传统的Particle System能做出更加复杂酷炫的特效,具体可以查看Unity的官方文档。而且我们认为VEF还有一个更加巨大有点就是可视化,我刚开始接触Particle System的时候,看到这么多参数,头都晕了….这次VEF的工作流非常的清楚。

VEF和传统Particle System区别

VEF的工作流

关于VEF的安装和配置就不说了,官方文档有详细的讲解。

首先我们来看一下VEF的画面,可以看出和shader Graph非常的相似。

VEG

VEF默认模板由4个流程构成(VEF称为Context),包含着多个Block,整个VEF工作流抽象成4个部分

Spawn

负责生成粒子,右键点击添加的Block都是与粒子生成相关。

Initialize

初始化模块,负责初始化粒子的属性,如初始速度,生命周期。

Update

每帧对粒子的参数进行更新,比如重力,移动速度,坐标等。

Output

主要负责粒子的渲染,如颜色,形状等。

注意

每个Context连接并不是唯一,比如一个Spawn可连接多个Initialize,朝多个方向发射

VEF的使用

小测试

VEF的小测试,以粒子的初始速度为基准设置粒子的颜色

实现以原点为圆心,半径为1,圆以内的呈绿色,圆以外的呈紫色。

也可添加Get Attribute:Color结点获取粒子原本的颜色,达到新效果。

Point Cache bake tool(点阵缓存烘焙器)

这个是VEG添加的新工具,它的作用是把一张图或者Mesh的信息,烘焙成一张点阵图,然后再VEG中使用,可烘焙的信息有颜色,法线,位置,UV信息等。

首先点开烘焙工具,烘焙工具在上方Window—-Visual Effects—-Utilities—-Point Cache bake tool,选择要烘焙的网格和信息,这里我选择胶囊体作为测试。

在VEG中使用以下两个节点,即可得到一个粒子形成的胶囊体

Vector Field Force(矢量场力)

官方文档解释:矢量场力施加从包含矢量数据的3D纹理中获取的力。我也不是很明白,以后有机会再研究。通过结合矢量场力和Point Cache我们可以实现粒子物体爆掉的感觉。

VFX Binder脚本,参数与事件的绑定

为了在游戏运行时根据游戏内的逻辑来实时动态改变VEG,我们可以用VFX Binder绑定脚本。

参数绑定

首先,我们为VFX添加VFX Parameter binder脚本

在Hierarchy面板新建一个Cube,这个Cube用于传递位置参数进VEG,实时更新粒子喷发的位置。

进入VEG在参数面板新建一个Vector3用于存储Cube的位置参数,并传递给粒子。

最终结果

事件绑定

在VEG里事件作为一个单独的Context,不能附加任何的Block并且只能和Spawn相连,作用是管理Spawn的发射开关。

现在做鼠标点击位置生成粒子效果

首先新建一个Plane作为脚本的载体,并且绑定VFX Mouse Event Blinder事件,拖入新建的VFX

双击VEX,新建一个Event,注意名字要和脚本上的EventName要一致。

注意

Location为Source的Attribute只能用在Initializes中的Block上

最后我们就能实现鼠标点击位置生成粒子的效果了。

感受

第一次尝试这样做笔记,比较痛苦,但成就感也是满满的。

  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!
  • Copyrights © 2015-2021 Opda
  • 访问人数: | 浏览次数:

请我喝杯咖啡吧~

支付宝
微信