【UE5】Niagara粒子入门,复杂参数控制

原始影片內容展開影片
  • Negra粒子的基础入门课程
  • 立方体粒子的加速方式
  • 使用法线进行加速
  • 添加随机性和动态变化的效果
  • 制作火把上的火焰效果

Negra粒子的基础入门课程

我是大圣,在上一个视频中咱们是不是留了一个问题。咱们现在在这里生成了一个立方体用粒子拼成了一个立方体,但当咱们给它一个力的时候,咱们本以为它会是那种立方体六个面飞出去的效果,但是现在这种爆炸方式它是什么样的呢?

我们来看一下,咱们发现这个立方体炸完之后它更像是一个球。虽然还能隐约看到那种立方体的感觉,但并不是我们想要的那种六个面飞出去的效果。那这样一个原因是什么呢?

这个原因呀就是来自于咱们现在给它的加速方式。看这个addvelocity,这里当前呢咱们的加速方式是frompoint,它是从这个立方体的中心位置以一种类似于球形的加速方式给这些粒子进行加速,所以这些粒子飞出去的形状也会类似于一个球形。

为了方便你理解,咱们还是去Blender里面看一下。在Blender里面,我这里有一个小球,还有一个立方体。这个小球呢就是这个AdVelocity的加速中心,它是一个点状加速frompoint。我们显示出这个球的法线来看一下这个点段加速。咱们可以暂时把它理解为沿着这个球的法线对它进行加速。这些法线就是咱们加速的方向。

按照这样一个逻辑去加速的话,那它把立方体炸成一个球是不是就可以理解了?其实我把粒子生成了一个立方体,但是最终它的加速方式是一个球形的,那么以立方体排列的这些粒子呢逐渐被一个球形粒所加速,那么最终它的形状也会逐渐趋近于一个球形。

既然它可以按到一个类似于球形的法线进行加速,那么咱可不可以让它沿着这个立方体的法线进行加速呢?你看这立方体六个面分别都有一个法线,沿着前后左右上下这六个方向进行加速,当然是可以的!

咱们要做的就是让AzureVelocity模块去读取这个立方体的法线,然后把法线当做它的加速方向来对这些粒子进行加速。好,那咱们去UE里面实现一下,基本的思路咱们已经有了,那接下来如何来实现它呢?

咱们看这些模块的参数,最右边了,你是不是注意到这里有一个向下的小三角?这里所有有向下小三角的地方就说明咱们可以给这里添加一些科技和变化。

这些科技和变化是什么呢?当前呀咱们来看这里这个speed的数值是10,包括你看这些什么粒子的寿命呀lifetime是5,以及这个location的长宽高也都是10。你有没有发现他们都有一个共同点,他们都是通过一个确定的数字来定义这些参数的。

那你这不是废话吗?你不用确定的数字你还有不确定的数字吗?嘿,还真有,咱们看这个粒子的尺寸。这个粒子的尺寸当前是5对不对,而这个粒子从生到死它的尺寸就都是5。如果5它是不变的对不对?包括这个location,它的长宽高从头到尾都是10,它是绝对不会改变的。

默认情况下,这些数值它都是一个固定的,不会发生变化的数值。那么咱们接下来就通过这个向下拉的小三角给它添加一些科技和变化,让它不再是一个单一数值。刚刚咱们是不是说了,咱们希望沿着这立方体六个面的法线方向进行一个加速?

那咱们点击这个上下拉的小三角,咱们在这里搜索法线NOR。这里有很多个Noble开头的选项,但是这里没有咱们想要的,那么咱们要把这个加速方式这个VelocityMode的加速方式先切换成线性力。注意啊,你要把这里切换成线性加速才能找到咱们要的那个功能。

在线性加速的方式中咱们是不是可以控制着xyz三个数值来控制它的加速方向啊?但是现在咱们不需要这个xyz这种单一的加速方式了。咱们给它添加科技和变化,在这个下拉三角咱们搜索Normal,找到这个ShapeNormal形状法线,然后我们把这个speed的数值设置为50。

看到效果了吗?那这出去的方向啊是不是就是沿着这个立方体的法线进行一个加速啊?哎,这时你可能就会有些疑惑了,这个参数名字叫做ShapeNormal,这个Shape为什么就是立方体呢?

这个Shape指的到底是什么呢?这个Shape呀它就是来自于它前面的这个ShapeLocation。当前咱们这个ShapeLocation的生成形状是一个box立方体对不对?而如果现在呢我们把它改成一个圆柱体,当前呢它就是按照一个圆柱体来生成粒子,同时呢它也是用圆柱体来对粒子进行加速。

我们再播放一下,你看它现在是不是沿着一个圆柱形进行一个爆炸?但是现在圆柱形为什么炸着炸着它虽然没有变成那个等比的圆,但是也不是很像那个圆柱形了,也有一点走形了,这是为什么呢?

我们回到第一帧来看一下,看当前这个粒子的生成,它是在圆柱形里面添加了很多个粒子。是不是虽然咱们是按照圆柱体的法线对它来进行一个加速,但是这个偏内侧的粒子和偏向圆柱体外侧的粒子受到的加速就会不一样。由于这个不均匀的受力导致这个圆柱形开始走形了。

那这个问题怎么解决呢?咱们希望它炸出去不要产生这么大的形状变化。咱们来看这个ShapeLocation,它这个参数这里有一个选项叫SurfaceOnly,仅表面。它的意思呢就是只在圆柱体的表面来生成粒子。如果你不勾选这个,他会把这些粒子全部都塞到圆柱体里面。

当你勾选这个之后,你会发现他把粒子都贴到了圆柱形的表面。我把镜头拉近一些可以看到吗?当前他是把所有的粒子贴到了圆柱形表面。

我把粒子加多一些这样看的更直观,给它20个粒子,它是不是生成了一个圆柱形的壳?一个外壳。而如果咱不勾选这个,它则把粒子都塞到了圆柱形的里面,是吧?

好,咱们勾选它,然后再对它进行一个加速,看一下效果。看到了吗?仅在表面生成粒子之后,我们再按照圆柱形的法线对它进行加速,这样它的受力就十分的均匀了。你看这些粒子是完全沿着圆柱体的法线进行运动的。

我们再切换成立方体,你看切换成立方体它也是把六个面给摊飞了是吧?那我们取消勾选这个SurfaceOnly这个选项。你看这个立方体由于受力不均,它里面的粒子是不是形成了一个类似于十字架的一种效果呀?

SurfaceOnly这个选项你搞懂了吗?请打在公屏上,以及这个ShapeLocation它会生成一个形状并把它的信息作为参数传递到AddVelocity这个模块当中。这里逻辑有点绕,咱们还是图示来看一下。

咱们是不是要给这个粒子加一个AddVelocity,让它飞出去啊,让粒子弹出去对吧?而它弹出去的方向呢读取的是Shapelocation生成的一个数据。

注意啊,我们咱们每添加的一个功能模块,它都会帮咱们生成一大堆的数据。咱们来看一下这个Shapelocation,咱们点击上面这个更多选项,这三个横杠这里有一个显示写入的参数,它会显示这个ShapeLocation它生成的所有参数。

你看这里它生成了一个ShapeNormal的参数,然后这个参数呢就被这个AddVelocity给读取到了。AddVelocity它读取的是ShapeLocation生成的一个参数,像这样的一个运用逻辑在这个Negra系统里面咱们未来会经常用到。

这里呢他只是一个简单的读取,在未来呢咱们可能会用到花样更多的读取方式,他读取的可能不再是某个模块生成的参数,而是一个蓝图生成的参数。好,现在咱们知道了有这个下拉三角的咱们可以给他输入一些很复杂的参数,他不再局限于那些死板而固定的数值了。

那么咱们就来做一个比较复杂一点的案例。接下来咱们就要用Negra粒子来做一下这个火把上的火焰效果。

当然啊,这个视频咱们只是先做一下这个火把上面的这些火星,后面这个烟和火焰呢会放到下一个视频里面来讲解。

那这个火星应该如何来做呢?咱们还是靠图示理解一下。前面提到的那些科技和变化,咱们现在来看一个例子。它通常具备尺寸、颜色、寿命、位置这几个基本属性,对吧?

咱们在这个视频之前通常都是使用一个常量来控制这些参数,比如它的尺寸从头到尾都是5,对不对?颜色从头到尾它都是红色,对吧?但是看过咱们前面的案例之后,咱们已经知道了,除了常量之外,咱们还可以用一些更有趣的参数来控制粒子的这些属性。

除了咱们前面用那个模型发现来控制它的速度之外,咱们还可以使用曲线或者是随机数来控制粒子的属性。还有一些更高级的用法,比如说用户参数或者是蓝图,这些后面也都会讲到。

甚至呢,咱们还可以对这些参数进行一个加减乘除的运算,让它的效果更丰富一些。 这是不是有一点才智的那味儿了?

当前这个视频我会带你先浅尝一下如何用复杂参数来控制粒子的这些属性。首先咱们还是要新建一个NegraSystem粒子系统,咱们还是以空的系统开始创建。空白系统给它改个名,nsfairns,就是necrosystem。它不是nintendoswitch,它是necrosystem粒子系统。

咱们新建了这样一个粒子系统之后,咱们还要新建一个空的发射器,咱们选择这个empty空发射器。咱们新建了一个空的发射器之后呢,是不是首先要让这个发射器先生成一些粒子呀?

咱们前面讲了两种粒子的生成方式,一种是类似机关枪那种持续生成,对吧?而另一种呢,它的生成方式是啪生成一片,然后停顿一会儿再啪生成一片。

那咱们现在来看这个火焰上的这些火星,它应该用哪一种生成方式呢?是不是应该用那种类似于机关枪的那种生成方式?它是一种持续性生成的,对不对?只是它没有机关枪那么快而已。那个持续性生成粒子的功能模块叫什么名字来的是不是SpawnRate呀?

这个功能模块它是属于粒子更新分组的,对吧?使用这个SpawnRate持续生成。在EmitterState里面咱们还是要设置一下,让他不再追随系统大哥的命令,而是让他做自己。把这里改成Self,然后呢生命周期改成,因为这个是持续生成,所以说5还是几并不重要,但只是5这样更方便观察一些,让它在5秒内持续生成。持续生成多少?持续生成20个。看看好了,它现在持续生成20个粒子了。

那为什么咱们没有看到那种大量粒子出现的效果呢?是因为咱们没有给它规定出生位置,对吧?这里有一个非常实用的小功能要和你说一下。在显示这里,有一个particlecontents,就是粒子的总量。当咱们勾选这个时候呢,在这个预览界面咱们就能看到这个粒子的实时数量。当前它是586个粒子,对不对?这样更方便咱们来观察。

接下来呢,咱们要定义一下这个粒子的出生位置。在粒子生成这个分组里面,咱们点击加号搜索location,找到这个ShapeLocation模块。OK,现在咱们已经定义了这个粒子的出生位置。OK,位置已经定义好了,接下来咱们要修改一下粒子的尺寸,粒子尺寸在哪里呀?是不是在这个初始化粒子里面?

在初始化粒子这里有一个SplitSize,对吧?当前设置是Unsized,咱们给它改成Uniform,这样咱们就能修改它的尺寸了。给它改成2,看看这个大小,还算OK。当然了,咱们现在还不需要给它一个大小的变化,咱们先把那种动态效果给做出来,然后再考虑那个大小的变化。

为了确保比例的正确呢,咱们要把这个NegraSystem拖到实际的场景中来看一下。大小很明显,它的尺寸并不合适,那咱们要调整哪一个功能模块呢?是不是粒子的分布范围太大了?它是和那个ShapeLocation有关,对吧?

我们选择ShapeLocation,修改它的半径,半径给它改成10,看看。咱们再回到场景,这个大小是OK的。咱们移动一下它,把它放到这个火把的凹槽里面。你看它当前有没有发现它有一个拖尾的效果呀?这个效果咱们后期会讲,咱们现在先不考虑这个细节,咱们只是先给它对好位置,把它放到这个火把的槽里。

OK,已经放到火把槽里面了。为了那种火星向上飞舞的效果,咱们就要给它一个加速了,对吧?还是在这个粒子生成这里给他一个初始速度AddVelocity。添加AddVelocity之后,就如咱们预期的那样,咱们是不是还要给他进行一个修复啊,添加一个这个解算模块,对不对?

这个SolveFalseandVelocity的模块,点击修复问题,他在粒子更新这里给咱们添加了一个解算模块。这种向上移动的效果就已经出现了,对吧?但是现在它这种直上直下的,对不对,有点太愣了。那么咱们希望它可以散开,就像喷泉那样,那是不是要修改一下这个addVelocity的加速方式,从这个线性改成incorn追行加速?

但是现在这个追行加速方向显然错了,咱们给它一个z轴,z轴是1,x轴是0,这样一个追行的加速播放一下,看影片效果。现在这个火星实在是有一点太多了,咱们减少这个火星的数量20,给它改成5。

这种缓慢而稀疏的小火星就是我想要的效果。虽然咱们给了它一个受力不均匀的锥形加速,但是这个粒子的运动路线呢我还是觉得他有一些呆板,那怎么办呢?在粒子更新里面,咱们给他加一个噪波扰乱。在粒子更新分组中,咱们搜索noise,找到这个conoisefalse噪波粒。它就是用来做扰乱的。

这个扰乱强度咱们可以给它大一些,现在是10,看看50了,太高了,它已经乱飞了,咱们还是希望它基本方向是朝上的,这个50就给20,20这个,我觉得20也有点太高了,15,还是OK,就已经有一看会有一些不听话的往旁边飞了,不再是统一星上飞了,这样看起来会自然一些。

这样一个火星的基本移动动画咱们就做好了。那接下来呢,咱们就要给他添加一些科技与变化,让他从出生到死亡有一个颜色的变化。出生的时候他是很亮很亮的,而临近死亡的时候呢他会慢慢地暗掉,最终他完全熄灭,这是咱们想要的一个效果。

那么咱们首先给他定义一个出生时的颜色,出生时颜色在哪里定义呢?我是在初始化粒子这里面呀,先给他一个天生的颜色。在这个ColorMode里面咱们选择第二个DirectSize,直接设置颜色。调整颜色这里我就直接快进了RGB调色,这种基础中的基础不需要我再介绍了,是吧?

好,我把RGB分别设置成40、15,咱们在场景中看,这样更直观一些。这个颜色呢我觉得基本已经OK了。但是现在呀,我觉得这个火星的飞行速度还是有一些太快了。好,咱们选择这个AtVlocity模块,它有一个speed,当前是25,咱们给它改成10,它这个初始颜色和他这种飞舞的效果就已经差不多了。

接下来呢,咱们要做的是一个当前他生成时候的尺寸,火星都是一模一样大小的,尺寸都是完全一样的,对不对?这显然不符合咱们日常见到的那种火星。那咱们需要给它一个随机值,让它生成的时候大小是不同的。

这里咱们是控制它生成时候的大小,所以说还是在这个初始化粒子里面来控制。咱们在这个初始化粒子模块里面找找找,这里有一个size,对不对?咱们刚刚把这个粒子的尺寸设置成了2,对吧?这个2它是一个常量,所有粒子大小都是2。

那么咱们点击下拉的箭头给它添加科技和变化,咱们要给它添加一个随机的功能,对吧?随机的单词是什么?random,咱们就直接搜random。在random词条的只有这一个选项randomrangefloat,点击它,这个参数它会让咱们先确定一个最小值和一个最大值,然后它在这两个值之间进行一个随机。

先定义最小值,最小值是1.5,最大值2.51,和2.5差异并不是很大,那我把最小值设置为0.5,咱们来看一下效果,看到了吗?它生成的时候就会有很多很小的出现,对吧?这个2.5有一点实在太大了,火星这么大有点奇怪,最大值咱们就给2。

好的,咱们让它的出生是有了一个随机的尺寸。对吧,那么接下来呢,我希望做一个这个火星从出生到死亡有一个逐渐逐渐灭掉的效果。它这种变化是发生在它出生之后,是发生在飞出羌塘之后。那么是不是就要添加到粒子更新这里呀?

在例子更新里面搜索color,这里有一个scalecolor,塑放颜色。这个塑放颜色翻译出来感觉很奇怪,但它就是调整颜色的。咱们添加了这个scalecolor之后发现这里的参数也并不复杂。首先,咱们要改一下上面这个塑放模式,这个scalemode。咱们点击这个,咱们要选择的是RGBA的guide,它可以让我们同时缩放RGB和透明度。

那上面这个是RGB与透明度分开缩放。这两种缩放模式呢你可以根据需求自行选择,咱们就选择第二个一起缩放,这样控制起来更方便一些。这时我们就看到了一个控制RGBA的四维向量。当前这个四维向量我还是一个常量,我塑造多少就是多少。所以咱们就要点击这个下拉的小三角,给他添加一些科技和变化。

虚幻呢已经给咱们建议了,这里有两个非常常用的一个选项,咱们选择第二个VectorFallFromCurve。VectorFall就是四维向量的意思,你应该很熟悉这个单词了,就是通过曲线来控制一个四维向量。咱们点击这个之后,你会发现这里有个渐变条。如果你用过其他修图软件的话,这个渐变条你应该也不陌生,上面这几个滑块是控制颜色的,下面这个滑块就是控制它的透明度。

它已经默认给咱们创建好了一个透明度变化的渐变条,在末尾的地方它又已经会灭掉了,是不是?这里为了方便观察呀,咱们把粒子的寿命在这个初始化粒子这里把粒子的寿命改成2,让粒子的寿命短一些,这样更方便观察。咱们先关掉这个scaleColor,来看一下没有它时候的效果。咱们来看一下它是怎么没的,仔细看这个粒子,它是突然之间就消失了。

咱们再启用这个scaleColor,看看有没有发现粒子消失的过程是逐渐一个渐变之后灭掉了。当然这个效果并不是很明显,咱们还是要修改一下这里的颜色。在修改颜色之前呀,咱们还是要来看一下这个渐变条,这个渐变条横向的坐标代表的是粒子重生到死的一个时间范围。这里是粒子诞生,这里是粒子死亡。

你说,哎,他这个为什么就是以重生到死来规划我的颜色呢?我可不可以让他按照距离出生地的远近来让他有一个明暗变化呢?比如距离出生地越近他就越亮,越远他就越暗?当然可以,咱们看这里有一个normalizeAge,这里表示的就是以粒子的年龄作为索引来进行颜色变化。

这个normalize这个概念很重要,后面的视频我会讲。在这里呢,咱们先不去纠结,他可以先把他理解为是一个重生到死的过渡。NormalizedAge,如果你不想让他以这个NormalizedAge作为索引,那你就可以点击他后面这个小三角来切换这个索引。

比如距离出生地的距离。在这个案例中呢我就先不演示了。如果你感兴趣,可以自己去尝试一下。当前这个界面条呀粒子从生到死都是一个白色,咱们希望它距离死亡的时候颜色可以变暗,咱们给它改一下,咱们把末尾颜色变暗。

那种逐渐熄灭的效果是不是就更明显了?在出生位置这里是白色,有一点过曝了,我给它改一个颜色,让它出生的时候是一个橙色,在场景里看一下它逐渐灭掉,逐渐逐渐变暗灭掉的效果是不是就出现了?

当然你可以在这个界面条里面添加更多的滑块,让颜色变化更丰富一些。在这里呢我就不细调了。现在咱们让它重生到此有了一个颜色上的变化,那接下来呢,咱还希望它有一个尺寸上的变化。

尺寸变化,咱颜色都做出来了,尺寸是不是就更好理解一些了?还是咱们要控制它飞出枪膛时的属性,尺寸咱们就直接搜索size。你会发现和缩放尺寸相关的功能模块有两个,一个是spreadsize,还有一个是meshsize。

咱们选择这个spreadsize。这个spread和mesh的概念咱们会在下一个视频里面说,这里咱们暂时跳过。当前你看,他默认就给咱们创建了一个曲线,当然你看这个浮点曲线的下面有个下拉三角,你可以更改其他的,但是咱们控制尺寸当然是这个曲线最好用啊。

所以说咱们就不再纠结还有什么其他的功能的,后期用到我会再讲。那咱们就要来修改一下它的尺寸,当前你应该也能看到了,它是由小变大,看到了吗?那它显然是反了。我希望它出生的时候尺寸很大,而死亡的时候尺寸很小。

但是现在呢,我觉得这种逐渐变小的效果有一点呆板,我希望它有一种闪烁的效果。如果我们把这个匀速向下的曲线变成一个波浪线,一大一小一大一小,那种闪烁的效果是不是就出现了,也更符合咱们日常看到的那种活性效果呢?

那么咱们就用鼠标中键在曲线上面单击,就能加点了。然后咱们就能修改它,你如果觉得这个界面太小不好操作的话,看这里有一个类似于飞响的按钮,咱们点击它,它就直接被加到时间线这个位置。

这个曲线呀,咱们还是让它保持一个整体向下的趋势,但中间呢,咱们让它有一点波浪型。这样,那种一闪一闪亮晶晶的效果是不是就出现了?

咱们要的就是这种闪烁的效果。视频到这里呀,咱们先是使用了一个渐变条来控制粒子的颜色,然后使用随机数来控制粒子的大小,现在呢,咱们用曲线能让粒子的大小有一个衰减。粒子的主要属性啊,也就是尺寸、颜色,还有它的移动速度和位置,但当他们一旦与这些复杂的参数进行一个融合,咱们就能做出来很多很多有趣的效果了。

现在咱们看预览窗,这个火星飞舞的有一些太疯狂了,但我也不在这里细调了。看我在这里细调参数也挺无聊的,原理明白了就OK。接下来呢,咱们要做的就是再给这些粒子添加一个风的影响,让风吹动这个粒子。

风力它究竟要添加到粒子生成里面还是添加到粒子更新里面呢?这个风力是不是在粒子飞出枪膛的时候才会对粒子产生影响?所以咱们要把它放到粒子更新里面。在粒子更新里面,咱们搜索wind,当我们添加风力的时候有一个报错,咱们看看报错说什么。

他说呀,风力必须还要依赖一个模块。这种依赖模块的报错,咱们是不是已经很熟悉了。咱们还需要给他添加一个阻力模块来配合风力。阻力就是这个drug,直接修复问题,添加了阻力之后发现新加的这个阻力模块也报错了,这是为什么呢?

这里敲黑板画重点了。未来在自己做的时候,你很有可能会遇到这样的报错。Negra系统它计算这些模块的时候,它是从上到下计算。它是有一个顺序的,最典型的例子就是咱们前面做的那个方块爆炸的案例。

首先是由这个ShapeLocation创建了一个ShapeNormal,想要让粒子按照方块的法线进行爆炸,首先得有一个方块,对吧?那这个ShapeLocation就提供给咱们一个方块,随后才被这个AddVelocity抓取到它的法线数据。

这个发射器里面模块的先后顺序,它是有意义的,不是随便开就行的。而在这里呢,我们看这个阻力,它也是个力,但是呢,它是在解算之后才生成的,这个阻力这样显然不对。那么咱们按住就拖拽它的顺序,把它放到解算模块上面,这样就OK了。

那现在这个风显然有点太大了,咱们点击这个风力windforce,这个风有点太疯狂了,咱们去场景里面调整一下它的速度和方向。我想让它往右吹,它应该是Y轴,咱们把X轴的数值改成0,然后咱们给Y轴一个负数,负5效果不是很明显,负20这种向右飞的效果就出现了。

但20有点太大了,咱们给它改成10,就这样吧。我也不细调了,细调太无聊了。我的视频不会细调这些参数,都是以讲解原理为主。一个40分钟的视频,我细调这些参数,又调了20分钟,这样的教程我是觉得很无聊的。

至于如何细调曝光或者是调这种构图,你去看那种摄影的教程或者B站也有很多那种拉片的up主,这样来的不是更直接吗?接下来咱们还有最后一个东西需要调整,为了让你看起来方便,我先调整一下它的光,把这里照亮一些。

我们先来看这些火星,现在这些火星它是在这个火把的凹槽里面,对吧?的确,我这个粒子系统整个系统是在这个凹槽里面,那我火星也在凹槽里面,这样没毛病啊?但是下一个视频啊,咱们还要在这个粒子系统里面添加一团火。

那如果你这火一着起来,我这火星也在槽里面,火也在槽里面,那我这火星不就看不见了吗?是吧?那么咱们接下来要做的是给这个火星添加一个位移。火在这个槽里面着,让火星整体向上有一个位移,咱们又修改哪一个模块呢?是不是修改火星的出生位置?

啊,这样我天生本来就在一个比较偏上的位置。然后呢,我再受到这些加速压力的影响,出生位置是哪一个模块?是不是这个ShapeLocation?咱们在这个ShapeLocation里面找。咱们看这里有一个offset,用优异或者其他散热软件的你应该对这个单词不陌生了,他是偏移。

当前是没有位移,那咱们给他点击一个偏移,让他往哪儿偏呢?这不是沿这周偏移,二指往上偏一点。现在就不在这个槽里面了,他在槽上面飘着,对不对?这样一个火星的效果就做好了。

那么接下来咱们要做的就是这个火焰的效果了。那这个火焰的效果要如何做呢?

好,我是大圣,咱们下个视频见。