Spawn的Block集合一. Attribute属性Attribute Block 用于设置或修改粒子的基础属性。它是你进行特效设计时最常用的分类之一。1. 基础状态类 (Basic State)这类 Block 定义了粒子生成时的生命时长和基本存活状态。Set SpawnEvent Age: 设置生成事件的初始年龄。Set SpawnEvent Lifetime:核心设置粒子的总生命周期长度。Set SpawnEvent Alive: 控制生成事件是否激活。2. 变换与空间类 (Transform Space)控制粒子出生时的位置、朝向和缩放是视觉构图的基础。Set SpawnEvent Position: 设置粒子的初始出生坐标。Set SpawnEvent Direction: 设置粒子的初始朝向向量。Set SpawnEvent Scale (X, Y, Z): 分轴控制粒子的初始缩放比例。Set SpawnEvent Pivot (X, Y, Z): 设置粒子的旋转中心点轴心。Set SpawnEvent Axis (X, Y, Z): 定义粒子的局部坐标轴。3. 运动学类 (Kinematics)定义粒子“发射”出去的速度和旋转动力。Set SpawnEvent Velocity:常用设置粒子的初始线速度决定飞往哪个方向。Set SpawnEvent Angular Velocity (X, Y, Z): 设置粒子出生时的角速度决定旋转得有多快。4. 视觉表现类 (Visuals)直接影响粒子外观的属性。Set SpawnEvent Color: 设置粒子的初始颜色。Set SpawnEvent Alpha: 设置初始透明度通常包含在 Color 中但可独立控制。Set SpawnEvent Size: 设置粒子的整体初始大小。Set SpawnEvent Mesh Index / Tex Index: 如果你使用了模型或序列图这决定了粒子出生时使用哪一个模型或哪一帧贴图。5. 逻辑与高级控制类 (Logic Advanced)用于更复杂的特效交互逻辑。Set SpawnEvent Spawn Count: 动态修改单次事件生成的粒子数量。Set SpawnEvent Target Position: 设置一个目标点常用于粒子引力或趋向效果。Set SpawnEvent Mass: 设置粒子的质量影响物理计算如受力后的加速度。Set Position (设置位置)决定粒子在空间中的出生点或实时位置。Set Lifetime (设置生命周期)定义粒子从出生到消失的时间跨度。Set Color / Size (设置颜色/大小)通过这些 Block你可以控制粒子随时间变化的视觉形态。二. Custom自定义这个分类通常包含实验性或用户自定义的逻辑。它允许你引入更复杂的数学公式或特定的 HLSL 表达式处理标准 Block 无法直接实现的特殊行为。1. Increment Strip Index On Start开始时增加条带索引这个 Block 主要用于处理Oriented Strip定向条带或类似的轨迹特效。功能当一个新的粒子条带Strip开始生成时自动增加其索引值。应用场景如果你需要同时发射多条互不干扰的拖尾这个 Block 可以确保每条拖尾都有唯一的标识防止纹理或逻辑发生错乱。2. Set Spawn Time设置生成时间这是一个时间管理类的 Block。功能手动设置或重置粒子生成的具体时间戳。应用场景通常用于需要精确同步粒子生成时机的复杂特效。比如在多层级特效中你需要确保第二层粒子严丝合缝地在第一层粒子消失的瞬间产生。3. Spawn Over Distance随距离生成这是 Custom 类别中非常重要且常用的一个功能特别适合制作“移动轨迹”。功能粒子不再是按照“每秒多少个”来生成而是按照“移动了多少距离生成一个”来计算。应用场景刀光/剑气当剑挥动得快时粒子生成得密挥动慢时粒子生成得稀。载具尾迹比如赛车在地板上留下的胎痕只有车在移动时才产生静止时不产生。飞行道具子弹飞行时留下的烟雾轨迹。三. Spawn生成这类 Block 专门用于控制粒子的生成频率和时机。1. Constant Spawn Rate (持续生成速率)这是最基础的模式。功能以每秒固定的数量均匀地产生粒子。应用场景瀑布、持续的烟雾、火堆上升的微粒。它能提供一种稳定、不间断的视觉流。2. Periodic Burst (周期性爆发)这是一种有节奏的爆发模式。功能每隔一段时间例如每 2 秒瞬间产生一批粒子。应用场景呼吸灯效果、脉冲波、机器定期喷出的蒸汽。3. Single Burst (单次爆发)这是一种“只发生一次”的模式。功能在特效启动的瞬间产生指定数量的粒子随后不再生成。应用场景爆炸、击中反馈、烟花绽放。这种模式通常配合生命周期较短的粒子制造瞬间的视觉冲击力。4. Variable Spawn Rate (可变生成速率)这是一种更高级、更具动态感的模式。功能允许你通过曲线或变量动态地改变每秒生成的粒子数量。应用场景受角色动作影响的特效如挥剑越快粒子越多、随时间减弱的火堆、根据游戏数值变化的魔法阵。四. Empty Subgraph Block空子图块这是用于子图Subgraphs的容器。模块化管理你可以将一套常用的 Block 组合封装成一个子图在不同的特效中重复调用。提高效率对于想要长期深耕 Unity VFX 领域的工程师来说学会利用子图能让你的 Graph 更加整洁且易于维护。Initialize Particle的Block集合1. Capacity (容量)功能这是该系统在同一时间能渲染的粒子最大数量上限。重要性它决定了内存中为粒子预分配的空间。注意即使你的生成速率Spawn Rate很高如果达到这个数值新粒子也将无法生成直到老粒子消失。2. Bounds Mode (包围盒模式)功能定义特效的“可见范围”计算方式。Manual (手动)如图片所示你手动输入包围盒的大小。这意味着只有当摄像机能看到这个定义的立方体区域时特效才会进行渲染剔除优化。Automatic (自动)系统会尝试根据粒子的运动自动计算范围但这在复杂特效中可能比较消耗性能。3. Bounds (包围盒设置)当模式为手动时你需要设置这两个值Center (中心)包围盒中心相对于特效原点的位置图中设置为 $y1$即中心点在原点上方 1 米处。Size (尺寸)包围盒的长、宽、高。如果粒子飞出了这个范围它可能会在视野中突然消失所以设置时要确保涵盖粒子的所有预期运动轨迹。一. Attribute属性这是 Initialize 阶段最核心的分类。每个粒子“出生”时的样子都由它决定。1. 核心状态与生命周期 (Core State)age: 粒子当前的年龄。lifetime:极其重要粒子的总寿命。配合age可以计算粒子当前处于生命周期的哪个百分比。alive: 粒子的存活状态。mass: 质量。在使用Force力分类下的 Block 时质量会影响加速度。2. 变换、空间与运动 (Transform Motion)position:核心粒子的当前坐标。velocity:核心粒子的初速度或即时速度。direction: 粒子的移动或朝向矢量。oldPosition: 粒子在上一帧的位置。通常用于计算某些需要“轨迹感”的逻辑。targetPosition: 目标点位置。配合某些特定的 Block 可以实现粒子向某个点汇聚或吸引的效果。3. 旋转与对齐 (Rotation Orientation)angle: 粒子的旋转角度。angularVelocity: 角速度决定粒子自转的快慢。axisX / axisY / axisZ: 粒子的轴向信息决定粒子在 3D 空间中的朝向逻辑。pivot: 粒子的中心点偏移。改变它可以让粒子绕着非几何中心旋转。4. 视觉外观 (Visual Appearance)color: 颜色。alpha: 透明度。Set Color and Alpha: 一个快捷 Block同时修改颜色和透明度。size: 粒子的整体大小。scale: 粒子在不同轴向上的缩放。meshIndex / texIndex: 如果你使用了模型或序列帧图这两个属性决定了当前显示哪一个。5. 高级插值与自定义 (Advanced Custom)Interpolate Fade Attribute: 这是一个非常有用的 Block用于让某个属性在粒子出生或死亡时产生平滑的淡入淡出效果。Set stripProgress Attribute: 专门用于Strip条带/拖尾特效标记该点在整条拖尾中的进度。Derived: 派生属性通常是系统基于基础属性自动计算出的值。custom: 自定义属性允许你创建自己的数据通道。二. Force力虽然力通常在Update阶段使用但在 Initialize 阶段添加力 Block通常是Set Velocity from Force可以给粒子一个初始的冲力。应用场景比如爆炸瞬间粒子受到的向外的瞬时冲击力。Vortex (涡流力) 详解VortexBlock 的主要功能是让粒子绕着一个特定的轴心进行旋转运动。这对于制作龙卷风、黑洞、传送门或者旋转的魔法阵非常关键。三. Kill杀死/移除在初始化阶段使用 Kill Block 比较少见但它可以在特定条件下防止粒子生成。应用场景比如你只想在某个 3D 模型的特定区域内生成粒子超出区域的粒子在出生瞬间就会被“杀死”。1. Kill (AABox)全称Axis-Aligned Bounding Box轴对齐包围盒移除。功能定义一个立方体区域当粒子进入或离开这个区域时立即消失。应用场景室内特效隔离例如窗外在下雨你可以用 AABox 确保雨滴在穿过窗户进入室内瞬间被销毁。地面接触销毁设置一个贴近地面的薄层 AABox让粒子落到地面时瞬间消失防止粒子穿模到地板下方。2. Kill (Sphere)功能定义一个球体区域根据粒子与球心的距离来决定其生死。应用场景护盾/范围清除制作一个能量护盾特效当外来粒子接触到护盾球体表面时被销毁。核心区域裁剪如果你制作一个向外扩散的环形特效但不希望中心点有粒子残留可以使用球体移除来保持中心区域的整洁。四. Orientation朝向设定粒子出生的瞬间是怎么“站”着的。1. Orient - Smart Fixed Axis智能固定轴对齐这是一个功能强大的高级对齐 Block。功能它允许你指定一个固定的轴线粒子会尝试尽可能地面向摄像机但其特定的轴向会被锁定在这个固定轴上。它在基础的 Fixed Axis 基础上增加了“智能”逻辑以避免当摄像机与固定轴重合时可能出现的视觉伪影如闪烁或突然翻转。应用场景地面火环/魔法阵你希望特效贴在地面上旋转锁定垂直 $Y$ 轴但无论玩家摄像机从哪个角度看特效的纹理看起来都相对饱满而不是变成一条线。树木/草地叶片让叶片贴图锁定在树枝的生长方向上但随着摄像机移动它们能产生一定的对齐感增强立体感。2. Orient - VR Camera FacingVR 摄像机对齐这是一个专为虚拟现实VR项目设计的 Block。功能使粒子永远面向 VR 头显中的摄像机。它与普通 Billboard 的不同之处在于它专门针对 VR 环境的双目渲染和头动追踪进行了优化。重要性在 VR 中如果使用不当的对齐方式粒子可能会看起来像是一个扁平的贴图挂在空间中破坏沉浸感。这个 Block 能确保粒子在 VR 空间中始终保持正确的朝向。应用场景所有需要在 VR 项目中使用的 Quad四边形粒子贴图效果如 VR 中的爆炸火花、魔法粒子或 UI 指示图标。Update Particle的Block集合Output Particle的Block集合这是 VFX Graph 里的Output输出容器列表它们决定了粒子最终在屏幕上“长什么样”。作为准 VFX 工程师你可以把它们分成三类来理解这样面试时会显得非常专业1. 基础平面类 (最常用)这类输出性能最高最适合做火花、烟雾、发光体。Output Particle Quad (四边形) 最通用的类型就是一个平面两个三角形组成。你之前做的魔法球基本都用它配合贴图可以模拟 90% 的特效表现。Output Particle Triangle / Octagon (三角形 / 八边形) 性能极致优化的版本。比如远处的雨滴可以用三角形复杂的粒子簇可以用八边形来减少透明面积的浪费。2. 模型与 3D 形状类如果你刚装好 Blender这部分就是连接两者的桥梁。Output Particle Mesh (网格)核心必学。它让每个粒子都变成一个 3D 模型。比如你想喷出一堆金币、碎石或者冰晶就是你之前看的那种 Ice Attack就需要用到它来渲染你在 Blender 里导出的模型。Output Particle Cube / Line / Point 渲染简单的立方体、线条或点。线条Line非常适合做雨丝、激光或者闪电。3. URP 受光类 (URP Lit)如果你希望粒子能被场景里的灯光照亮比如火光照在旁边的石头上或者石头上的反光就要选带URP Lit前缀的。区别普通的 Output 只管发光不受光照影响而URP Lit Mesh / Quad具有材质属性会产生阴影也能接收环境光的颜色。 VFX 工程师面试考点Quad vs Mesh属性Output Particle QuadOutput Particle Mesh视觉效果始终面向摄像机的平面 (Billboard)真正的 3D 物体有立体感适用场景烟雾、火焰、光效、魔法轨迹飞溅的碎石、金币、掉落的武器性能消耗极低适合海量粒子较高受模型面数限制 职业建议你刚刚下载了 Blender你可以尝试在 Blender 里导出一个简单的菱形冰晶然后在 Unity 里使用Output Particle Mesh来渲染它。如果你现在做的是那个“魔法球”继续用Output Particle Quad配合你的位移曲线 是最合适的选择。等你想让球爆炸出“碎片”时我们再换成Mesh。