Unity-特效(VFX)

视觉特效·

视觉特效可以分为两类:

  • 环境效果,旨在表示物理事件,例如火灾、雨、雾或爆炸。
  • 游戏效果,旨在增强或吸引对特定用户交互的注意。例如,您可以在选择对象时添加发光效果,或添加伴随游戏内成就的庆祝效果。

再复杂的视觉特效,通常也是由多个单独的粒子系统组成。当这些单独的系统组合在一起时,可以产生更有趣的结果。如:篝火可能有火焰、烟雾和火花组成。

一个复杂特效,往往是由各个元素搭配组合而成,然后使用这些元素的属性以生成唯一的结果。

背景·

大多数VFX艺术家都将拥有传统艺术原则的基础,例如颜色,纹理和构图。他们还将熟悉物理和流体动力学,以了解液体,布料类型或颗粒在不同条件下的行为。

工具·

除了 Unity 之外,VFX 美术师可能还会使用或熟悉其他软件程序,包括:

  • 2D图像编辑软件,如Photoshop,用于创建2D纹理和粒子
  • 3D 建模和动画软件,如Maya,用于为某些效果创建 3D 形状
  • 专门用于流体和颗粒等程序模拟的软件,例如Houdini

选择粒子系统解决方案·

为了在创作粒子系统时提供灵活性,Unity 提供两种解决方案来供您选择。如果项目的目标平台支持计算着色器,Unity 允许同时使用这两种解决方案。这两种粒子系统解决方案为:

  • 内置粒子系统:该解决方案允许通过 C# 脚本对系统及其包含的粒子进行完全的读/写访问。您可以使用粒子系统 API 为粒子系统创建自定义行为。
  • Visual Effect Graph:该解决方案可以在 GPU 上运行以模拟数百万个粒子并创建大规模的视觉效果。Visual Effect Graph 还包含一个视觉图形编辑器,可帮助您创作可高度定制的视觉效果。

如何选择是使用VFX图还是粒子系统呢?·

  • 如果你非常有经验,想要创建一些非常复杂的东西或需要数百万个粒子的东西,你可能想使用VFX Graph
  • 如果您不是专家,并且想要创建简单的东西、在所有设备上运行的东西,或者可以与场景中其他基于物理的对象交互的东西,请使用粒子系统

Particle System - 粒子系统·

Unity 的内置粒子系统可用于为 Unity 支持的每个平台创建粒子效果。内置粒子系统在 CPU 上模拟粒子行为,这种技术具有以下主要优点:

  • 您可以使用 C# 脚本与系统及其中的各个粒子进行交互。
  • 粒子系统可以使用 Unity 的基础物理系统,从而与场景中的碰撞体进行交互。

案例 - Ruby’s Adventure 2D

默认情况下,粒子系统不会在“场景”视图中播放。您需要先选择它,才能预览它。

属性·

基础属性·

以下大部分属性都有不同模式:常量、曲线、双常量随机、双曲线随机。

  • 持续时间
  • 循环播放
  • 预热 - Prewarm
    当场景开始时,它将预先填充一个完整的粒子循环。
  • 启动延迟
  • 起始生命周期(Start Lifetime)
  • 起始速度(Start Speed)
  • 起始大小(Start Size)
  • 模拟空间(Simulation Space)
    • 局部
    • 世界
    • 自定义
  • 唤醒时播放(Play on Awake)
  • 最大粒子
    限制系统中粒子的数量,超过将停止发射。
  • 停止后的行为(Stop Action)
    • 禁用
    • 销毁
    • 回调

发射 - Emission·

此模块中的属性会影响粒子系统发射的速率和时间。

爆发 - Bursts·

如上图,在 0 秒(时间)开始,每隔0.01秒(间隔)将爆发产生 30 个粒子(数量),共爆发 1 次(周期),可能性为 100%(概率)。间隔值在这里无关紧要,因为我们只有一个突发周期。

形状 - Shape·

该模块定义可以从中发射粒子的体积或表面,以及起始速度的方向。Shape属性定义发射体积的形状,其余模块属性因您选择的形状而异。

  • 形状
  • 角度
  • 半径

生命周期内颜色 - Color over Lifetime·

此模块指定粒子的颜色和透明度在其生命周期中如何变化。

  • 水平条上方的标记集指示随时间推移的透明度
  • 水平条下方的标记集指示颜色
  • 允许您独立控制透明度和颜色。

生命周期内大小 - Size over Lifetime·

许多效果涉及根据曲线改变粒子大小,这些设置可在此模块中进行。

可分离轴,分别调整 x、y、z 轴的大小。

Size属性的类型:曲线、双常量随机、双曲线随机。

选中曲线后,在检查器下方的粒子系统曲线中,会有详细设置

此默认曲线显示粒子随时间线性增加。换句话说,它在时间 0(出生时)从大小 0 开始,在时间 1(死亡时)以全大小 1 结束。

纹理表格动画 - Texture Sheet Animation·

粒子的图形不必是静止图像。此模块允许您将纹理视为可作为动画帧进行播放的一组单独子图像。

默认情况下,“开始帧”设置为 0,**“周期”**设置为 1。这意味着每个粒子在其生命周期内将只循环一次纹理表的所有四个帧(从第 0 帧开始)。

渲染器 - Renderer·

Renderer 模块的设置决定了粒子的图像或网格如何被其他粒子变换、着色和过度绘制。

Visual Effect Graph - 视觉效果图·

Visual Effect Graph 是一个可用于为 Unity 项目创建大规模视觉效果的包。Visual Effect Graph 利用 GPU 模拟粒子行为,可模拟的粒子数量远远超过内置粒子系统。如果要创建包含大量粒子的视觉效果并且需要高度可自定义的行为,请使用 Visual Effect Graph 而不是内置粒子系统。

VFX Graph是一个基于节点的编辑器,用于在Unity中创建效果。

视觉特效图的优势

  • VFX Graph可以同时处理数百万个粒子,而粒子系统只能处理数千个粒子。
  • VFX Graph可以产生更复杂的模拟,例如上面显示的精灵,这在使用粒子系统是不可行的。

视觉特效图的缺点

  • 对于初学者来说,VFX Graph比粒子系统更具挑战性。
  • VFX Graph的硬件要求比粒子系统更严格,这阻止了它在某些目标设备上成功运行。
  • 由于VFX Graph在GPU上运行,而Unity物理计算在CPU上完成,因此VFX Graph粒子无法与应用的其余物理进行交互(例如,与地面碰撞)。粒子系统在CPU上运行,因此它们可以与其他基于物理的组件进行交互。

VFX图形编辑器窗口·

  • 工具栏(红色):此栏包含全局影响视觉效果图的控件。这包括指定 Unity 何时编译视觉效果图的控件,以及允许您显示/隐藏某些面板的控件。
  • 节点工作区(绿色):您可以在其中查看和编辑视觉效果图。
  • 黑板(蓝色):此面板显示视觉效果图使用的属性。
  • VFX 控件(紫色):此面板显示当前附加的游戏对象的控件。

节点工作区·

Visual Effect Graph 中四个最常见的上下文是:

  • Spawn(生成)
    • 控制粒子的生成,类似于粒子系统的发射模块。
    • 如果处于活动状态,Unity 会每帧调用它,并计算要生成的粒子数量。
  • Initialize(初始化粒子)
    • Unity 在每个粒子的“诞生”时调用它,这定义了粒子的初始状态。
    • 控制粒子首次出现的位置和方式。这包括许多与粒子系统主模块相同的属性,包括粒子的初始大小、形状、速度、寿命和最大容量。它还包括Shape 模块的等效项,该模块定义从中生成粒子的体积。
  • Update(更新粒子)
    • Unity 每帧为所有粒子调用此上下文,并用它来执行模拟,例如力和碰撞。
    • 控制粒子的任何更改,从粒子生成的那一刻到它们死亡(消失)的那一刻。这将更新粒子并运行每一帧。这包括类似于粒子系统生命周期内的颜色、生命周期内的大小、噪点(在 VFX 图中称为湍流)和纹理表动画(在 VFX 图形中称为翻书播放器)的属性。
  • Output(输出粒子)
    • Unity 每帧为每个粒子调用此上下文。这决定了粒子的形状,并执行预渲染变换。
    • 控制每个粒子的外观,与粒子系统的渲染器模块非常相似。这是为粒子分配材质的地方。

**备注:**某些上下文(例如 Output Mesh)不会连接到任何其他上下文,因为它们与其他系统无关。

生成 - Spawn·

启用和禁用·

Spawn 上下文公开了两个流程插槽StartStop

  • Start 输入重置/启动 Spawn 上下文。如果不为此流程插槽连接任何对象,它会隐式地使用 OnPlay 事件Start 使用多次与使用一次的效果相同。
  • Stop 输入停止 Spawn 系统。如果不为此流程插槽连接任何对象,它会隐式地使用 OnStop 事件
循环和延迟·

每个 Spawn 上下文都包含一个状态,用于确定该上下文何时生成粒子。

  • Loop Duration:设置循环模式,在特定持续时间的循环中发射粒子
  • Loop Count:设置循环次数
  • Delay Mode:设置延迟模式以及延迟持续时间,可以在每个循环之前和之后执行延迟。在延迟期间,生成时间正常流逝,但 Spawn 上下文不会生成任何粒子。

VFX图制作思路·

整体制作分为三个部分:

  1. 基础粒子控制
  2. 色彩变化控制
  3. Force立场方向控制

特效制作思路的公式:

粒子形状,色彩>>粒子数量>>粒子生命周期>>