ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

ContentExamples —— Niagara_Particles

ContentExamples —— Niagara_Particles 目录内容示例Simple Sprite EmitterSimple Mesh EmitterSimple GPU EmitterSprite FacingBlend Attributes by ValueStatic BeamsDynamic BeamsMultiple RenderersSimple Lightweight EmitterLightweight RenderersCPU vs GPUUser and System BindingsBindings are InstantaneousFast, Faster, FastestLocation EventsExpressionsCollisionStatic Mesh SamplingRenderer OverridesVisibility TagTexture SamplingMesh LOD ModesPlayAudioExampleExporting Particle Data to BlueprintRendererWithNoParticlesMesh Orientation vs. Rotational Force其他案例Beam Effect内容示例Niagara是UE的下一代VFX工具完全可编程的VFX模拟具有基于节点的模块化行为、定序器时间线、HLSL表达式支持和继承Niagara有许多内置的发射器模板在内容浏览器启用Show Plugin ContentShow Engine Content 可显现这些模板Simple Sprite EmitterNiagara运行一系列脚本称之为Stacks蓝色是系统脚本控制粒子系统的整个生命周期System Spawn控制着系统生成的第一帧上发生的事情System Update是此后每帧运行的逻辑当数据从系统-发射器-粒子流动时系统中的每个其他发射器和粒子都可以访问此处创建的属性橙色是系统中的每个发射器脚本每个发射器都有一个类似的Spawn和Update脚本可控制系统中每个单独发射器生命周期循环还是单次等绿色是粒子脚本对发射器中的每个单独粒子独立运行Particle Spawn是对粒子生命周期的第一帧Particle update是对此后的每帧粒子生成、更新中都有许多内置行为称为模块可通过每个脚本标题旁边的彩色“”访问也可通过右键单击模块并选择“Insert Above”或“Insert Below”来访问系统可包含多个发射器想添加另一个发射器可右击并选择如没有看到任何模板Show Plugin ContentShow Engine ContentSimple Mesh EmitterInitialize Particle模块不仅可初始化简单的点属性如lifetime或color还可初始化渲染器特定的属性如Mesh的Scale或精灵粒子的SpriteSize该案例Initial Mesh Orientation及Update Mesh Orientation都是设置或更新属性Particles.MeshOrientationSimple GPU Emitter注意发射器properties上的黄色GPU图标表示发射器处于GPU模式下大多数功能在CPU和GPU模式下都能工作但有些功能的行为不同如GPU碰撞在GPU上以更高性能但不太准确的方式处理某些渲染器如light渲染器和ribbon渲染器目前仅使用CPUGPU模拟的好处是通常可很好地处理更高的粒子数缺点是如已经过大GPU边界有时最好让CPU来模拟粒子同样值得注意的是只有PARTICLE脚本绿色的Spawn和Update部分在GPU上运行系统和发射器脚本上面的橙色和蓝色部分仅在CPU上执行因此仅限于CPU友好的操作如系统和发射器的脚本不能sample textures也不能查询场景距离场Sprite FacingParticles.SpriteFacing是控制粒子朝向的矢量变量此案例是在粒子位置减去球体中心位置Particles.SpriteFacing、Particles.SpriteAlignment 都是worldspace向量与simulation坐标空间无关在Sprite Renderer的Bindings内可查看绑定的粒子属性列表这些属性对引用它们的渲染器具有特殊意义如果需要每个属性都可以被其他属性覆盖注Vortex Velocity 此节点已废弃该模块是直接修改Velocity是不推荐的工作流使用 Vortex Force 模块替代在Particle Update阶段直接修改速度可保证粒子沿球运动Blend Attributes by ValueTransient变量仅对给定的堆栈上下文如Particle Update是局部的且每帧都会从头开始重新计算它们不会在每帧之间持久化它们的值这使得它们不同于Particles变量它们保存在粒子playload中并在帧与帧之间持续存在这会带来内存和性能成本此案例创建一个Transient变量表示粒子到发射器原点的当前距离用来驱动Color和Spirte SizeStatic BeamsParticles.RibbonLinkOrder变量决定了给定RibbonID的粒子如何相互链接“Spawn Beam”模块根据在爆发中生成的新粒子建立顺序并为每组新粒子分配一个新的唯一RibbonID以使它们保持为单独的束而不是发射器中所有粒子组成的一个大型相互连接的条带注新版Curl Noise Force的Noise Frequency缩小1000倍更加用户友好Dynamic BeamsUpdate Beam 沿着起始点路径放置粒子会每帧重新计算起始点可动态的改变起始点位置Multiple RenderersRenderer Bindings 如“Color”或“Scale”是在许多模块的底层设置的但也可直接在堆栈中设置如在Parameters面板中创建新的参数可将其直接拖动到堆栈中进行设置Simple Lightweight Emitter轻量级发射器更快使用更少的内存不需要编译时间为实现这一点轻量级发射器有一组更小的工具来构建效果之所以选择可用的工具是因为它们是最常用的且被认为是“无状态的”即它们可在任何时候进行评估而无需启动轻型发射器相当于瑞士军刀其紧凑、高效但在某些方面存在不足Lightweight Renderers在可能的情况下轻量级发射器模仿标准发射器的行为轻量级发射器目前支持Sprite、Mesh和Ribbon渲染器CPU vs GPU使用标准发射器可选择使用CPU或GPU发射器轻量级发射器根据生成计数在CPU和GPU之间自动切换以实现最高效的性能User and System Bindings一些粒子属性可以通过绑定到用户或系统参数来控制Bindings are Instantaneous轻量级粒子存储状态的能力有限Spawn vs Update的概念不适用于轻量级发射器此案例中初始化粒子模块正在使用系统绑定但是颜色会在每一帧上更新而不是在粒子似乎被生成时更新Fast, Faster, Fastest轻型发射器可以与常规发射器结合使用然而在没有常规发射器的情况下时性能会达到峰值因为这能够避免系统脚本的执行红色粒子被锁定到带动画Actor即把指定Actor的位置赋给粒子需System Update堆栈中每帧执行脚本绿色粒子在生成时吸附到Actor位置在System Spawn上执行一个系统脚本蓝色粒子根本不与Actor结合所有系统脚本均已停用包括系统状态最快Location Events当前事件Event仅限于CPU发射器在GPU发射器上有一个Lead/Follower范式使用“Spawn Particles From Other Emitter”和“Sample Particles From Other Emitter”模块这些模块利用了粒子属性ReaderEvent Generators如Generate Location Event 存在于粒子脚本通常默认在解算器运行后发送位置事件以获得最高精度但模块可以放置到任何地方以确定事件何时发送默认“Send Rate”为每秒合理的事件数可降低该值以限制事件的发送速率Event Handler可接收事件类似Particle Spawn or Update一样的脚本在接收到事件后运行Expressions可在参数上直接使用表达式Collision碰撞在CPU和GPU发射器上都有效有些选项会不同如只有GPU发射器可以对场景深度或全局距离场进行采样与GPU碰撞相比CPU碰撞通常非常昂贵应该谨慎使用Generate Collision Event 能生成碰撞事件但仅在CPU上支持Static Mesh Sampling可点击Detail面板的搜索栏右侧的view option以显示写入的参数Renderer Overrides每个渲染器在“Bindings”类别下显示其绑定如需要这些绑定甚至可以用自定义属性覆盖此案例在Sprite Render的Position Binding上使用RenderOffset替代Position属性Visibility TagParticles.VisibilityTag 变量关于确定渲染器但与渲染器中的Render Visibility参数匹配时注如希望简单地从单个mesh渲染器内拾取给定多个mesh只需在mesh渲染器中添加指定数量的mesh在Initialize Particle设置Mesh Render Array Visibility Mode即设置MeshIndex此可见性标记功能更适合在精灵、网格、灯光或其他渲染器之间进行选择Texture SamplingTexture sampling当前仅支持GPUMesh LOD ModesMesh Renderer的LOD模式LODLevel使用提供的LODLevel去渲染所有mesh粒子LODBias使用最高LODLODBias以渲染所有mesh粒子By Component Bounds基于组件边界的屏幕尺寸计算LODLevel所有粒子使用相同级别Per Particle使用粒子位置和mesh球边界计算LODLevel针对每粒子计算级别PlayAudioExample当前从粒子播放音频仅限于CPUPlay Audio在指定位置播放一次音频有多种播放模式Direct Set、Random、On Death​​​​​​​Play Persistent Audio在指定位置生成音频效果并返回一个句柄以控制效果当条件为假或重置发射器时声音停止​​​​​​​Exporting Particle Data to BlueprintGPU粒子数据导出是通过从GPU内存中回读来执行的存在不可预测的延迟延迟帧数不固定通常为1-2帧回读性能受回读缓冲区大小的限制建议采用GPU固定大小分配Niagara系统创建Object类型的用户参数指定将使用的蓝图添加Export Particle Data to Blueprint指定导出的数据蓝图添加Niagara组件指定设置好的Niagara添加蓝图接口Niagara Particle Callback Handler以接收粒子数据接口函数Event Receive Paticle DataRendererWithNoParticlesSprite和 Mesh渲染器Source Mode可设置为Emitter渲染器会创建单个sprite/mesh由发射器脚本驱动而不是粒子脚本驱动这是一种优化只需一个小精灵渲染器执行了最小的粒子脚本逻辑如效果中心的单个光晕此时所有Bindings都将是Emitter命名空间而不是Particle命名空间粒子的生命周期将由Emitter State的生命周期控制Mesh Orientation vs. Rotational ForceInitial Mesh Orientation / Update Mesh Orientation 直接设置方向值会创建恒定的旋转速率与mesh粒子的大小或质量无关这是一种廉价的方法使用户可根据粒子年龄或其他指标直接控制旋转Mesh Rotational Force 是一种基于力的旋转系统更物理的旋转方法与Drag结合在一起使用其中质量和旋转惯性旋转是因素如在Particle Spawn内使用此模块需在添加Apply Initial Forces模块以将旋转力应用到旋转速度上如需考虑mess可直接使用Add Rotational Velocity 模块其他案例Beam EffectEmitter UpdateBeam Emitter Setup设置起始点、终点及切线Particle SpawnSpawn Beam沿着起始点路径放置粒子不会每帧重新计算起始点Beam Width设置条带宽度RibbonLinkOrder标准化的粒子顺序0-1Particle UpdateUpdate Beam沿着起始点路径放置粒子会每帧重新计算起始点RenderRibbon Renderer条带渲染器Curve Tension曲线张力Beam Emitter Setup模块的Beam End设置点击Beam End右侧的下拉箭头选择New Dynamic Scratch Input在打开的scratch pad图表内点击Map Set的选择Actor Component Interface访问actor或组件信息设置并输出位置在Actor Component Interface参数右侧的下拉箭头选择Read from new User paramete附着闪电随机获取Skeletal Mesh点位置作为闪电的起始点可另创建闪电材质以增强效果
返回列表