Unity Visual Effect Graph 特效案例一:陨石环绕粒子


前言

Visual Effect Graph是Unity官方推出的一个类似Shader Graph,可以节点化编辑特效的插件,同时对Shader Graph也有较好的适配,常用于创建有大量粒子的的特效


一、Visual Effect Graph的特点

相比于传统的ParticleSystem,Visual Effect Graph可以处理上百万级别的粒子数量,因此其更适用于大量粒子特效的场景,与ParticleSystem互补,并不取代原本的ParticleSystem

二、如何安装

Package Manager中Packages选择Unity Registry,搜索Visual Effect Graph并安装,如果没有需要在Package Manager设置中选择允许Pre-release packages,如果还是没有则需要更新Unity版本,本人使用的版本为2021

三、Visual Effect Graph基本操作和名词解释

Context:

特效上下文,不同的Contex具有不同功能,常用的包括:

  1. Spawn:控制粒子生成,例如连续不断生成和一瞬间生成
  2. Initialize Particle:初始化粒子各项参数,例如粒子生命周期,大小,初始位置等
  3. Update Particle:更新粒子状态,在粒子存在期间会连续调用,类似于Monobehaviour的Update,常用于添加力的作用,更新的次数受帧率影响
  4. Output:粒子以什么状态进行显示,例如面片,模型等

要确保生成的粒子能被看见应至少包含这四种Context且按照顺序连接

Block:

特效属性块,用于修改粒子的属性,如Set Size,Set Position,Set Color Over Life,空格键或者鼠标右键可以新建Block,如果当前选中的是一个Context,则会在Context中创建Block,鼠标左键拖动可以改变Block的顺序,点击对应Block可以在Inspector窗口修改Block的属性,如将Set Size修改为Add Size,修改Random使用随机数,Block的执行顺序为从上到下

修改后的效果需要点击Compile才可以更新显示,一般都默认勾选Auto,在产生修改后自动编译


 四、陨石环绕特效制作过程

总步骤分为两步

1.陨石以环形生成

 创建新的Visual Effect Graph并双击打开

我们需要生成陨石模型,将Output替换为可以生成模型的,如图

 我们需要粒子一直出现在场景中,不需要它向上移动,因此删掉多余节点,并将连续生成设置为Burst一次性生成,Count设置为1000,Initialize里面的Capacity也要设置1000,Capacity为最多显示的粒子数目

 添加Set Position (Shape:Arc Circle),当确保Hierarchy选中当前特效并且在编辑面板也选中Set Position这个Block时,可以在Scene窗口看到提示线,Radius为圆的半径,Arc调到头为圆形,否则为扇形,Thickness是控制粒子生成在圆形边缘到圆心的范围

 为了增加细节,我们添加以下几个Block

  1. Set Angle :设置初始随机角度
  2. Set Anguler Velocity:给每个粒子添加随机的角速度
  3. Set Position:通过Get Attribute : position获取粒子当前的位置,在一个轴上添加一个随机数,并设置新位置,让粒子更有立体感,避免都在同一平面上

RandomNumber可以产生随机数

Add Block可以点击齿轮按钮修改相加的类型,对于Vector类型,可以点击箭头展开各项属性

 2.陨石环形旋转

 Rotate3D:输入一个位置,指定旋转轴,旋转中心,旋转角度,会返回对应旋转的位置

将新位置在Update中设定即可实现绕中心沿z轴旋转

因为整个粒子的操作都在Local模式下,可以直接在Scene中旋转特效即可改变朝向

 已知问题:环形旋转的速度受帧率影响,一般在编辑器模式的帧率能达到上百帧,打包后,一般会被限制到60帧,此时环形旋转的速度明显慢于编辑器显示的速度,如果有错误或有更好的解决方案欢迎大家评论区指出

猜你喜欢

转载自blog.csdn.net/m0_72922928/article/details/130807291
今日推荐