UE4引擎Niagara基础属性(一)

----这是一篇Niagara的基础属性的解释,初看官方文档的时候,其实不是很好地理解到每一个模块,所以主要结合了官方文档,Niagara本身的注释以及三哥的视频,然后动手实操,记录一下。

三哥的Youtube/CGHOW专栏。

----万丈高楼平地起,如果基础的知识没有掌握牢固,在后续的制作中总是有各种小问题。

----这只是一篇学习记录,我属于一个还未踏入特效这个行业的萌新,所以我的文章中会出现些许不对的地方,如果有和我一样的萌新偶然看到这篇文章,您需要知道我的文章可能会有误导性,当然,如果您是大佬或者了解的比我多,且愿意指出我的不对,我会在这里感谢您的。



----我们在学习各种属性的时候,需要了解到Niagara的组成。下面是官方的一张关于Niagara的组成图,我们还需要了解Niagara的Emitter计算方式是从上到下的堆栈方式。

Spawn Modules


索引(Ctrl+F)

Spawn Burst Instantaneous

Spawn Per Frame

Spawn Per Unit

Spawn Rate



--这个模块主要是用于粒子的生成,包含了一次性生成,每帧生成,每单位生成,生成速率。

----这里主要讲解一下Spawn Rate及Spawn Burst Instantaneous,Spawn Per Unit。

Spawn Rate

--在第一秒的时候它会少一个粒子生成。

--关于SpawnGroup,相同ID(组)就可以驱动相同ID(组)的属性(位置偏移,颜色,age等)。比如

得到的效果

Spawn Burst Instantaneous

--一次性生成粒子。

--关于Spawn Time,在第几秒一次性生成粒子,这里需要注意的是Spawn Time的时间必须要小于Emiiter State中的LoopDuration(循环持续时间)。

--小技巧:我们可以根据时间轴K帧。具体效果

https://www.zhihu.com/video/1411732656110960641

Spawn Per Unit

Location Modules



----这里主要讲解的是关于位置的模块,对于学习过程中认为比较重要的会做详细记录,对于非重要的或者重复的就会一笔带过。

Box Location

--当勾选上固定随机种子,并且随机模式为确定性时,所有粒子会重合。

--一个小技巧:当偏移量乘以发射器age的效果。

https://www.zhihu.com/video/1412228547477573632

--想要在场景中缩放粒子大小,需要在坐标空间中改为Local。

Cone Location

Cylinder Location

--这里主要提一下车削轮廓,它有点像max或者maya里的车削工具,通过一条曲线绕原点旋转一周形成一个poly,曲线就是这个poly的外轮廓。看一下演示效果更直观:

Grid Location

--Grid Location 添加的时候会在emitter update自动添加Spawn Particels in Grid。

-- 粒子位置模式大部分都是随机出现的。

Jitter Position

-- 位置抖动,功能就如字面意思一样

-- 抖动把他放在更新组,很容易做出闪电的那种无序效果。

Rotate Around Point

-- 粒子绕点旋转,效果是这样的。

-- 这里需要理解的是,粒子绕点会选择一个平面,这个平面就下面的两个轴向决定,这两个轴向就是平面的XY.

--大体的效果

Sphere Location

-- 当把Sphere Location放置在Particle Update,分布模式改为Direct(径直),UVPosition改为曲线,就会有绕球体的运动路径,效果会根据曲线复杂变得丰富。

-- 这里看一下统一分布的效果(Uniform),主要是更改Uniform Spiral Amount螺旋值

Skeletal Mesh Location

--骨架网格定位(可以把粒子附着在骨架上)

--如果我们给其添加一个速度,会有一个骨架的形状。

Static Mesh Location

--这个在我前面学习粒子的形态转换的时候用到过,我这里就直接搬过来

Torus Location

--Distribution(分布)里的U VDistribution相当于一个车削工具。具体效果

https://www.zhihu.com/video/1415339590093373440

--Knot Helix Loops(这里5圈)的表现效果,结合UVDistribution(0-1)参数调节比较能感受出来

https://www.zhihu.com/video/1415340684988080128

--关于Distribusion中Surface Position(0-1),在Torus,TorusKnot与Ring是不同的效果。


Velocity Modules


Add Velocity

Add Velocity from Point

Add Velocity in Cone

--Velocity Distribution Along Cone Axis(0-10)的演示效果

https://www.zhihu.com/video/1415362096796708864

Inherit Velocity

--速度继承,有个速度源,现在还不知道这个速度源怎么搞。

Vortex Velocity

Forces Modules

Curl Noise Force

--Pan Noise Field(泛噪声场)的添加能让力的效果更加随机化,力场会让它带有动画扭动效果。值越大扭动频率越高。

https://www.zhihu.com/video/1415432803009486848

--Randomization Vector(随机向量)最终的效果表现是由随机轴向向量值*随机种子的结果,其改变能让波浪效果更丰富(随机向量为0,整体随机值为0,随机种子为0,随机向量改变,也会改变随效果)

https://www.zhihu.com/video/1415434372464480256

--Mask Contribution

Curl Noise Cone Mask Angle(0-180)的改变会形成一个遮罩,Curl Noise Cone Mask Falloff Anale改变的是遮罩边缘的软硬过渡,Curl Noise Cone Mask Axis能改变其粒子朝向。效果如下

Drag

--阻力效果。

--Rotational Drag降低每个粒子的旋转速度。

Gravity Force

Limit Force(力的最大范围的限定值)

Line Attraction Force

https://www.zhihu.com/video/1415446334413000704

Mesh Rotation Force

https://www.zhihu.com/video/1415451098577006592

Point Attraction Force

Spring Force

--Attachment Point Velocity粒子的速度与附着点的速度有关。

--Particle Equilibrium Position(颗粒平衡位置)将产生一个力,最终将粒子带到该静止位置。

--Dampening Coefficient(阻尼系数)值为0,会一直来回,不会停下来。

Vector Noise Force

Vortex Force

--把轴向值全改为0,就类似弹力的效果。


----这次我们学习创建一个Beam(光束)发射器,因为官方是有这个模板的,所以直接用模板来改。

----这一小节的学习不仅有对属性的解释,还会接触到蓝图,主要还是跟着三哥的视频走的,难度不大。




我们首先需要在Niagara系统里创建一个DynamicBeam(模板)

关于DynamicBeam,是有几个必要组成条件,这里可以移步这位大佬的文章,写的比较简洁详细。

这里我们需要添加一些属性,

抖动和噪波力我们在前面学习过了,这里提一下,每个模块的参数我们是可以单独提出来的。

这里还有一个灯光渲染器

Niagara发射器里面大体就是这些东西了,我们来看下这块

以前不是很懂用户参数的作用,看了三哥的视频后,终于知道,也惊叹到Niagara的强大,这个就相当于把Niagara的各个模块的内部参数给暴露出来,不仅可以在关卡中调节Niagara的各个模块的参数,还能用于蓝图调用。


这里在复习一下关卡蓝图,本身我是没有蓝图基础的,但是跟着造轮子多多少少还是能理解一点。

因为我在关卡中放置了三个Niagara特效,所以直接给放到关卡蓝图事件图标里。

然后我现在是希望Beam(光束)的起始位置及切线位置在关卡里随机(像闪电那样),所以把这几个给改成用户参数。

我们现在打开BeamLocation的Function,看到的就是这个

注意到的

这个是折叠的节点,看着更加方便整洁,里面是

字面意思就能理解。起始位置都是-1000到1000,切线是-1到1的区间.


最终得到的是这种效果,这是初次尝试蓝图,做beam的学习,所以没有太过于在效果上下功夫。

知识点:1,Ribbon的了解;2,事件处理器的运用。(这个官方文档是写的比较详细的)

  • 关于Ribbon Renderer的学习
  • FacingMode

Ribbon的一个朝向设置,它并不向其他渲染模式那样有速度对齐,当我们需要让它面向只受常量控制,就需要自定义模式,并且它绑定的是这个参数

所以我们需要把Particle.RibbonFacing放在生成组,这样

----我们现在来学习一个小案例(飘带)

我们 首先需要创建一个父级( Fountain ),这里用的喷泉的模板改了一下,效果应该是这样的( 发射器属性需要把需要持久ID给勾选上

然后我们需要在粒子更新组添加Generate Location Event(生成位置事件),那么父级设置就完成了,接下来需要创建用于接收父级的Emitter,Trails001(轨迹线),进行初步的设置。

事件处理器添加事件源

然后在添加Receive Location Event(接收位置事件)

效果就是这样的

我们来具体了解下这些属性

  • Generate Location Event

--Evemt Send Rate值越大越顺滑,这个在线框模式下比较清晰表现


  • Initialize Ribbon
  • 事件处理器属性

--生成数量,这个值越大飘带越扭曲,且整体形状越来越大


  • Receive Location Event

--Spawn Count这个值越大,会让整个飘带形状更加收紧


----至此,关于尼尔加拉的常用的一部分基础属性学习记录完成,这次的记录让我在后续的学习或者制作一些特效效果的时候就有迹可循。

----Niagara的基础属性的学习暂时告一段落了,我知道还有很多模块的属性没有学习,但是现阶段这些属性已经能支撑一些简单的效果了,等后续遇到不能理解在慢慢补齐。

----技术应用,技术记录下来,方便后面应用。

编辑于 2021-11-14 15:11

文章被以下专栏收录