首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用Visual Effect Graph创作惊艳的视觉效果

Visual Effect Graph受到主流电影特效软件的启发,加入了许多相同的强大功能用于创作实时视觉效果,下面视频将对Visual Effect Graph进行简要介绍。

入门

我们可以通过

Unity 2018.3

或更高版本编辑器中的资源包管理器安装Visual Effect Graph。

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

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

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

Visual Effect Graph窗口

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

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

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

1

Context

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中。

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

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

3

Node

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

流程工具

1

Auto Compile

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

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

2

Blackboard

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

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

3

Target GameObject

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

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

4

Parameter Binders

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

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

与现有粒子系统比较

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

从上面的对比图中,我们可以看出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来创建魔法效果。

VFX Toolbox工具集

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

下载VFX Toolbox工具集:

https://github.com/Unity-Technologies/VFXToolbox

1

Image Sequencer

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

2

Point Cache Bake Tool

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

使用技巧

1

便签,节点分组和名称

Visual Effect Graph带有一些实用功能,可以帮助注释和标记视图。

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秒后会重复之前的操作。

2

GPU事件

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

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

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

结语

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)!

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181205A0MFUZ00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券