Visual Effect Graph 逻辑
Visual Effect Graph 使用两种截然不同的工作流程:
一种处理(纵向)逻辑,它将可自定义的阶段链接在一起以定义系统的生命周期。
一种属性(横向)逻辑,它连接不同的上下文以定义粒子的外观和行为。
处理工作流程(纵向逻辑)
处理工作流程将可自定义的阶段顺序链接在一起,定义完整的系统逻辑。您可以在逻辑中决定在效果展现期间,粒子的生成、初始化、更新和渲染发生的时间。
处理工作流程使用其位于上下文节点顶部和底部的流程插槽,将上下文连接起来。
处理逻辑定义了视觉效果处理的不同阶段。每个阶段由一个称为上下文的大型彩色容器组成。每个上下文连接到另一个兼容的上下文,它定义了下一阶段的处理如何使用当前上下文。
上下文可以包含称为代码块的元素。每个代码块都是一个可堆叠的节点,负责一个操作。您可以重新排列代码块以更改 Unity 处理视觉效果的顺序。Unity 从上到下执行上下文中的代码块。
属性工作流程(横向逻辑)
在横向属性工作流程中,您可以定义数学运算来增强视觉效果。这会影响粒子的外观和行为。
属性工作流程使用代码块的属性插槽连接上下文。左边是输入,右边是输出。
Visual Effect Graph 包含一个大型代码块和节点库,您可以使用它来定义视觉效果的行为。您创建的节点网络控制着渲染管线传递到图形上下文中的代码块的横向数据流。
要自定义粒子的行为方式,您可以将横向节点连接到代码块以创建自定义数学表达式。为此,请使用 Create Node 上下文菜单添加节点,更改它们的值,然后将节点连接到代码块属性。
图形元素
Visual Effect Graph 提供了一个工作空间,您可以在其中创建图形元素并将它们连接在一起以定义效果行为。Visual Effect Graph 包含适合工作空间的许多不同类型的图形元素。
工作空间
Visual Effect Graph 提供了一个工作空间,您可以在其中创建图形元素并将它们连接在一起以定义效果行为。
!纵向工作流程包含系统,系统包含上下文,上下文包含代码块。它们共同决定了视觉效果“生命周期”中发生的事情。
系统
系统 是视觉效果的主要组成部分。每个系统都定义了渲染管线与其他系统一起进行模拟和渲染的独特部分。在图形中,由一系列连续上下文定义的系统显示为虚线轮廓(参见上图)。
Spawn 系统*由单个 Spawn 上下文组成。 *Particle 系统由连续的 Initialize、Update、Output 上下文组成。 ***Mesh Output 系统由单个 Mesh Output 上下文组成。
上下文
上下文是定义处理阶段的系统部分。上下文连接在一起以定义一个系统。
Visual Effect Graph 中四个最常见的上下文是:
- Spawn。如果处于活动状态,Unity 会每帧调用它,并计算要生成的粒子数量。
- Initialize。Unity 在每个粒子的“诞生”时调用它,这定义了粒子的初始状态。
- Update。Unity 每帧为所有粒子调用此上下文,并用它来执行模拟,例如力和碰撞。
- Output。Unity 每帧为每个粒子调用此上下文。这决定了粒子的形状,并执行预渲染变换。
备注:某些上下文(例如 Output Mesh)不会连接到任何其他上下文,因为它们与其他系统无关。
代码块
代码块是可以堆叠到上下文中的节点。每个代码块负责一个操作。例如,它可以对速度施加力、与球体碰撞或设置随机颜色。
创建代码块时,您可以在当前上下文中对其重新排序,或将其移动到另一个兼容的上下文中。
要自定义代码块,您可以:
调整属性。为此,请使用边缘将属性端口连接到另一个节点。
调整属性的设置。设置是可编辑的值,它没有端口,无法连接到其他节点。
运算符
运算符是组成属性工作流程低级别运算的节点。您可以将节点连接在一起以生成自定义行为。节点网络连接到属于代码块或上下文的端口。
图形公共元素
虽然图形元素各不相同,但它们的内容和行为倾向于一致。图形元素共享以下功能和布局项:
设置
设置是您无法使用属性工作流程连接到的字段。每个图形元素都显示设置:
- 在图形中:在图形中的标题和属性容器之间。
- 在检查器中:当您选择一个节点时,检查器会显示更多高级设置。
如果更改了某个设置的值,则需要重新编译图形才能看到效果。
属性
属性是您可以使用属性工作流程编辑和连接的字段。您可以将它们连接到其他图形元素中包含的其他属性。
其他图形元素
组
您可以将节点组合在一起以组织您的图形。您可以整体拖动分组的节点,甚至可以为其指定一个标题来描述该组的作用。要添加组,请选择多个节点,右键单击并选择 Group Selection。
即时贴
即时贴是可拖动的备注元素,您可以添加这些元素来为同事或您自己提供解释或提醒。