近期热门
粉丝2571
关注 3
获赞 10398
使用Visual Effect Graph创作惊艳的视觉效果(转)

[其他] 使用Visual Effect Graph创作惊艳的视觉效果(转)

[复制链接]
3341 4 0 11 5年前 举报
Visual Effect Graph受到主流电影特效软件的启发,加入了许多相同的强大功能用于创作实时视觉效果,下面视频将对Visual Effect Graph进行简要介绍。



入门
我们可以通过Unity 2018.3或更高版本编辑器中的资源包管理器安装Visual Effect Graph。


请点击Unity编辑器菜单Window > Package Manager,点开Advanced并选中“Show preview packages”,然后找到Visual Effect Graph,单击Install按钮即可。


1.gif


目前,Visual Effect Graph运行于Unity 2018.3的高清晰渲染管线,对轻量级渲染管线的支持预计在之后的版本推出。为了使用Visual Effect Graph,请确保你的Unity项目使用High-Definition RP模板。


2.jpg


为了创建视觉效果,请在项目窗口点击右键,依次选择Create > Visual Effects > Visual Effects Graph。


创建资源后,将其拖到场景视图或层级窗口。


3.gif
Visual Effect Graph窗口
Visual Effect Graph适用于VFX新手到资深艺术家和程序员等,Visual Effect Graph通过使用节点和属性模块,来提供一个快速学习,轻松掌握,强大的工作流程。


4.gif


Context包含多个属性模块,用于表示应用于粒子的操作顺序。节点之间互相连接,会执行一系列输入属性模块的计算,从而定义粒子属性。节点系统会让使用Shader Graph着色器视图的用户感到很熟悉,但二个工具并不完全相同。


创建Context或单个节点,可以点击空格键,或单击右键,选择Create Node。创建属性模块,可在节点中点击空格键,或者单击右键,选择Create Block。


1
Context
5.jpg


System是Initialize、Update和Output的Context组合。它由虚线轮廓表示。多个系统可以存在同一个Visual Effect Graph资源中。


Spawn定义生成粒子的数量和时间,例如Periodic Burst(间歇性喷发)、Constant(持续喷发)和Single Burst(单次喷发)等。


Initialize的前二个属性为Capacity(同时存在粒子数量)和Bounds(区域)。


Capacity确定每次系统中可以存在的粒子数量。


请注意:Capacity属性会根据粒子数量分配合适的内存,所以该数值应该对应可生成的粒子数量进行设置。通常,该值的计算公式为:Rate × Max Lifetime = Capacity


Bounds定义摄像机视图中粒子生成和模拟的区域。


Update会不断改变粒子属性,它是唯一可以使用作用力的部分。


Output会渲染粒子,它决定生成的粒子类型、纹理、颜色和方向。我们可以在此对粒子的大小,位置等属性进行最后调整。每个粒子系统可以有不同的输出结果,每个输出结果可以调整多数粒子属性。


2
Block
Block属性模块定义粒子的属性,这些属性可以由节点重写。Block包含在Context内,但有些属性模块无法在特定Context中使用。例如:Spawn Rate Block只能添加到Spawn Context中。


6.jpg


我们可以通过取消勾选名称右侧的复选框禁用属性模块。有些输入内容可以通过点击输入名称左侧的小箭头展开,可以访问并修改详细属性,例如:Vector3的X,Y和Z。


在视图中选择Block和Context时,我们可以通过检视窗口修改它们。因此在创作视觉效果时,显示检视窗口可以方便创作过程。


7.jpg


3
Node
Node节点具有很多功能,包括从输出指定数值和参数数据到执行各种不同的计算。Add,Multiply或Lerp等多数定义数值的节点可以通过修改来输出不同数值类型,例如:Float,Vector3或颜色数值。


8.jpg
流程工具
1
Auto Compile
默认情况下,每次修改节点或属性模块时,Visual Effect Graph都会重新编译。对于较小的视图,Auto Compile自动编译帮助我们在场景中快速看到改动效果。


但是对于比较复杂的系统,编译时间可能较长。禁用Auto Compile后,视图只会在保存或单击Compile按钮时进行编译,这样在大幅改动视图时,不必在每次调整后等待较长时间。


2
Blackboard
Blackboard面板可以存储视图中的参数,并公开给检视窗口以便进行修改。为了安排不同参数类型,Blackboard面板支持设置Categories类型和Tooltips提示信息。


9.jpg


创建新参数,请点击Blackboard右上角的+图标。


10.jpg


3
Target GameObject
Target GameObject面板允许你控制播放过程,或是查看场景中已打开视觉效果特定实例的本地空间辅助图示。

附加游戏对象,请点击场景中已打开的视觉效果实例,然后点击Attach,直接从场景实例打开视觉效果也会自动将该面板附加到游戏对象上。


11.jpg


4
Parameter Binders
虽然可以通过脚本来设置公开的参数,但Parameter Binders组件会自动配置视觉效果的参数,例如:游戏对象的位置,缩放和旋转。


12.jpg


添加Parameter Binder组件,请在层级窗口选中视觉效果,单击Add Component,搜索“Binder”并添加。将游戏对象拖到标着“None”的方框,然后点击 ⌄ 图标选择合适的参数。


13.jpg
与现有粒子系统比较
Visual Effect Graph和粒子系统的主要区别在于它们运行的硬件。粒子系统在CPU模拟生成,而Visual Effect Graph将大量计算移动到运行在GPU的计算着色器。


14.jpg


从上面的对比图中,我们可以看出Visual Effect Graph的优点是能够模拟数百万个粒子,计算复杂的模拟过程,以及读取帧缓冲区。而粒子系统可以使用基础物理系统,并通过回读来与游戏交互。


特别需要注意的是设备兼容性,部分设备不支持Visual Effect Graph所需的计算着色器,例如:大多数的手机。


支持的数据类型
Visual Effect Graph支持使用Point Cache,Vector Field和Signed Distance Field等资源。通过这些资源的支持,可以表示体积、作用力、碰撞以及自定义数据类型。


  • Point Cache保存空间中点的属性,例如:Transform、法线、颜色和UV。
  • Vector Field在获取粒子的位置后,会在3D空间移动粒子。
  • Signed Distance Field可以使用体积来表示吸引和碰撞粒子。





下面的示例是在其它工具制作骷髅,然后导入Unity来创建魔法效果。


15.gif
VFX Toolbox工具集
Visual Effect Graph团队开发了一系列工具用于生成数据类型,这些工具统称为VFX Toolbox工具集。通过VFX Toolbox创建的数据可以与Unity的其它功能结合使用。


下载VFX Toolbox工具集:
https://github.com/Unity-Technologies/VFXToolbox


1
Image Sequencer
Image Sequencer图像序列工具可以处理图像序列,生成Flipbook纹理图集等纹理资源。

16.jpg


2
Point Cache Bake Tool
Point Cache Bake Tool点缓存烘焙工具又名为pCache Tool,它可以从纹理生成2D点缓存,从网格生成3D点缓存。


17.jpg
使用技巧
1
便签,节点分组和名称
Visual Effect Graph带有一些实用功能,可以帮助注释和标记视图。


18.gif


Context Names环境名称可以让你命名Context环境,只需双击Context环境标题部分的小型区域即可。


创建System Name系统名称,请双击虚线轮廓顶部下的小型区域。


Sticky Note便签功能可以创建可调整大小的文本框。创建标签,请在视图的空白区域单击右键,选择Create Sticky Note。


便签中,字体大小从Small到Huge共有四个选项,右键单击便签并从列表中选择修改字体大小。调整便签大小,可以拖动便签边缘或边角进行调整。


Node Group节点分组为节点的分组设置标题,并将它们作为整体进行移动。创建节点分组,请选择一组节点后,右键单击一个选中节点,然后选择Group Selection。


如果要移动节点到节点分组,将该节点拖入已有分组即可。如果要将节点移出分组,按住Shift键然后将其拖出分组。如果要删除分组而不删除节点,单击选中分组标题,然后按下Delete键即可。


2
Spawner Chaining
Spawner Chaining生成器链允许一个生成器开启或停止其它生成器。只要将Spawn Context的输出部分连接到Start或Stop即可。


下图中节点生成了持续2秒的常量流,停止2秒后会重复之前的操作。


19.jpg


2
GPU事件
GPU事件允许在自定义条件下或粒子消失时触发另一个粒子系统。下图中,节点会在粒子消失时生成10~15个粒子。


启用GPU事件,请打开Preferences>Visual Effects,勾选"Experimental Operators/Blocks"。


20.jpg


3
Timeline
Visual Effect Graph完全兼容Timeline功能,可以准确控制视觉效果的时间设置。你可以通过二种方法控制效果:事件和参数。


如果要控制时间,请在Timeline中创建Visual Effect Activation Track。如果要控制参数,请在Timeline中创建Animation Track。


下面的视频展示了如何设置这些轨道,从而使它们继承来自事件的数值。

下载示例项目
为了帮助大家学习Visual Effect Graph,开发团队发布了持续更新的Unity示例项目。首次发布时,该项目包含三个示例:
  • Unity Logo示例展示基本行为
  • Morphing Face示例展示HDRP Lit的兼容性和点缓存
  • Butterflies示例展示高级行为





下载示例项目:
https://github.com/Unity-Technologies/VisualEffectGraph-Samples


22.gif
结语
Visual Effect Graph及其文档正处于开发和编写状态。虽然处于预览阶段,但我们可以在GitHub的Scriptable Render Pipeline Wiki中访问文档。


文档访问地址:
https://github.com/Unity-Technologies/ScriptableRenderPipeline/wiki/Visual-Effect-Graph


我们将分享Visual Effect Graph的一些教程,尽请期待。更多Unity更多信息介绍尽在Unity官方中文论坛(UnityChina.cn)!


0
点赞
0
打赏
11
添加到收藏夹

0

点击复制链接

使用微信扫码分享
一次扣10个券
全部评论4
您需要登录后才可以回帖 登录 | 立即注册

怎么下载啊
2年前
回复

使用道具 举报

打包的时候Unity会卡死,不知道怎么回事,Cpu都用满了
5年前
回复

使用道具 举报


感谢楼主分享
5年前
回复

使用道具 举报

感谢
5年前
回复

使用道具 举报