![Unity 3D特效设计必修课](https://wfqqreader-1252317822.image.myqcloud.com/cover/765/26542765/b_26542765.jpg)
1.3.10 粒子系统控制技巧
中国有句古话叫作“万变不离其宗”。做特效也是一样的,再复杂、再高级的效果也都是通过活学活用每个参数命令制作出来的。至于能做到哪种地步就需要看用户对技术的发掘了。
通过之前对粒子系统的学习,相信读者已经初步掌握了粒子系统的相关知识。那么从本节开始将会讲解在特效制作中一些高级效果的控制技巧。
1.3.10.1 设置粒子系统间的显示层级
在特效制作时,经常需要对特效中的粒子系统进行显示优先级排序,设定哪个粒子系统显示在上、哪个粒子系统显示在下。以地面裂痕与地面纹理为例,由于它们本身相距较近,所以很容易发生显示错误的问题。那么要如何才能保证裂痕显示在地面纹理的上方呢?本节会进行详细的讲解说明。
Step 01首先创建两个粒子系统,取消Shape(发射器形状),并设置它们的Start Speed(初始速度)为0,适当调整粒子大小,将粒子系统Max Particles(最大粒子数量)设置为1,将它们放在同一位置坐标点,如图1-263所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P99_1.jpg?sign=1739424706-BGCP1Yvx7MKzltELOPuQXrz7ZEccp3QU-0-a07cc7df5bdf1938004079c8b1e1341f)
图1-263
Step 02为了方便观察,把粒子系统Render Mode(渲染类型)修改为Horizontal Billboard(水平布告板),如图1-264所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P99_2.jpg?sign=1739424706-xtgDeTuLX0qqdvri2lSi2yMTddo02419-0-2c25a0a2b37ce2d59e8efdd81e789ce7)
图1-264
Step 03赋予材质贴图。设置地面材质Shader(着色器)类型为Particle/Alpha Blended(粒子/Alpha混合),设置裂痕材质Shader(着色器)类型为Particle/Additive(粒子/附加),如图1-265所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P99_3.jpg?sign=1739424706-czTFLnJfRllF1oE5f0L0zha031g4ScdV-0-39908927ed78eaa0d47df986f587696a)
图1-265
观察发现当前场景中地面纹理显示在上方,这显然不正确。
如果想要调整渲染排序就需要分别设置两个粒子系统中的Sorting Fudge(排序校正)数值。
Step 04将裂痕纹理粒子系统Renderer(渲染模块)下的Sorting Fudge(排序校正)数值设置为“0”,将地面纹理粒子系统Sorting Fudge(排序校正)设置为“100”。
设置如图1-266所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P99_4.jpg?sign=1739424706-t9wTU0mHXnMaGJ3k5jstUb21eIplIQq7-0-abc74f1116807a7d9f00440600b0209e)
图1-266
Step 05再次查看效果,发现裂痕纹理已经显示在地面纹理上方了,如图1-267所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P99_5.jpg?sign=1739424706-7PES4Tc4qiIZM8IKdmn59ZSX5ktEposo-0-677449e7f819181b4454443c67e8b446)
图1-267
由此得出结论,Sorting Fudge(排序校正)数值相对较小时,粒子将会优先渲染。
显示顺序示例:-200>-100>0>100>200。
注意
设置粒子显示层级时,切忌把粒子系统之间的Sorting Fudge差值设置过小,否则排序效果不明显。推荐将差值设置为200左右。
粒子与模型之间的渲染排序知识扩充:在学习粒子间渲染排序的设置技巧后,那么粒子与模型间的渲染排序要如何调整呢?以Cube(正方体)为例进行演示。
首先单击菜单GameObject→3D Object→Cube(游戏对象→3D对象→正方体)创建一个Cube(正方体),然后创建一个粒子系统,将粒子发射器形状设置为Edge(线性发射),修改角度及位置如图1-268所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P100_4560.jpg?sign=1739424706-VH8DLpNRxvNNJFBpqn4Nqt744axo59Po-0-7d02463d36f2fd5be12fa5c61cedeaf2)
图1-268
观察发现粒子直接穿过了正方体(完全挡住了粒子),并且修改Sorting Fudge(排序校正)没有任何作用。
Unity材质系统中的两个知识点:
(1)粒子系统参数Sorting Fudge(排序校正)仅作用于Shader(着色器)为Particles(粒子系统)类型下的材质。
(2)将模型体设置为Particles(粒子)材质后,默认Sorting Fudge(排序校正)数值为0(数值固定,无法修改)。
这次将正方体的材质类型设置为Particles/Alpha Blended(粒子/Alpha混合),如图1-269所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P100_4564.jpg?sign=1739424706-gntn4315TVdnDuChsrxJaD2IVkzeB1VS-0-e77883cf23d57b54703706647c5d167e)
图1-269
粒子系统材质设置为Particle/Additive(粒子/亮度叠加),如图1-270所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P100_4568.jpg?sign=1739424706-PuXFS9vBWrX5BxbUYWvDQyHMjhczRnQE-0-97044dbbdb41a2eb16cd3c776c79132d)
图1-270
再次调整粒子系统Sorting Fudge(排序校正)数值为“-200”,结果显示如图1-271所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P100_4572.jpg?sign=1739424706-tfqxZeCC4mHMUkvu711wRNfDlezAJnr1-0-fe6e683344dee389a3dfa7801e9389e4)
图1-271
观察发现,这次粒子系统已经被优先渲染了。
1.3.10.2 粒子向上逐渐拉伸变细消失
在制作Buff(加益状态)类特效时,常常需要加入一些向上飘动的长条形粒子丰富效果,最常见的处理方式就是直接把Renderer Mode(渲染类型)修改为Stretched Billboard(拉伸形布告板)。虽然这样实现了效果,但是觉得动态感觉还不够。
如果希望粒子向上运动的同时逐渐拉伸变细消失,那要如何设置呢?
如图1-272所示为每个粒子的尺寸变化示例。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P101_16427.jpg?sign=1739424706-nIn1gBzvVGJFiFd2Xgdu7nM29fU7PMXY-0-5275174db088d135f0e3b996acce1c06)
图1-272
实现方法:
Step 01首先创建一个粒子系统,设置Start Lifetime(粒子初始寿命)为1,如图1-273所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P101_16430.jpg?sign=1739424706-xywXWKyaYvjiEXPGs66RPGqbEXvHi4zk-0-331ba5cdc70ff0b77b8ed13f947ff20a)
图1-273
Step 02将粒子系统Shape(发射器形状)修改为Cone(圆锥形),适当调节Radius(发射器半径),将Angle(发射角度)设置为0,使粒子竖直向上运动,参数设置如图1-274所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P101_16435.jpg?sign=1739424706-BSRKlKpQlMCvPVWJRYKDuDwTAwDj6JCK-0-b901eace7abce070eb434631ac1c8ad3)
图1-274
Step 03将Render Mode(粒子渲染类型)设置为Stretched Billboard(拉伸形布告板),设置Speed Scale(速度缩放)及Length Scale(长度缩放)数值,如图1-275所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P101_16439.jpg?sign=1739424706-VZCxWXMDCKMvXGvjE4PBIMpmTNVNdZo3-0-06ed49c07b182111ebcbb3569cbc7998)
图1-275
Step 04开启Size over Lifetime(生命周期内粒子大小的变化控制)曲线控制模式,如图1-276所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P101_16448.jpg?sign=1739424706-0c1UC4h3VUvp7O8iFc0NWxcbKmiZfES5-0-fa6b514d69f9901fb96bf6ab708f5891)
图1-276
Step 05赋予材质纹理,播放查看就可以看到每个粒子拉伸并消失的效果了,如图1-277所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P101_16452.jpg?sign=1739424706-E2R1b3ot0ZU3L9kgAYKc64sbo4Nmbxq3-0-6c5bc0fe47b6157afd45c635476358f5)
图1-277
注意
(1)Stretched Billboard(拉伸形布告板)中的内置参数Speed Scale(速度缩放)可以控制粒子横向缩放。
(2)在实际项目制作中结合Color over Lifetime(生命周期颜色)修改粒子的透明度过渡变化可以使特效过渡更加自然细腻。
1.3.10.3 粒子的扰乱飘动效果
直上直下的粒子动画太过单调?不知道怎么制作出丰富变化的粒子?本节讲解如何制作出“萤火虫/火星”一样运动的粒子(粒子由下至上运动,运动过程中摇摇晃晃),如图1-278所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P102_16475.jpg?sign=1739424706-bbElRn8EC4DIVuJsgLC996EDYjeMZqJY-0-7ce875d2daa1b5db5ed3319b79d7fa8f)
图1-278
注意
图1-278中蓝色圆点代表粒子,红色箭头表示粒子的速度方向。粒子匀速沿Y轴运动,并且会受到X、Z轴速度的影响。
首先分析下每个粒子在各轴向的速度变化。
由于X、Z轴速度变化相同(都是随机运动),经过分析可以得到下面的运动曲线,如图1-279所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P102_16487.jpg?sign=1739424706-RQ4MRA1vt0iO2ESFZoPFwI81SB6vpa1e-0-627b3f80922388ddb09161a1cb162169)
图1-279
Y方向速度为匀速上升,得到Y轴向的运动曲线如图1-280所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P102_16491.jpg?sign=1739424706-OZ5JvLtZDzvmAjyWruTuLAX1pFw62NTE-0-524cd455b00f4b7c92167f4e721546e6)
图1-280
当得出三个轴向速度的曲线变化之后,只要将数值赋予粒子系统的速度控制项即可。
Step 01首先单击菜单GameObject→Particle System(游戏对象→粒子系统)创建一个粒子系统,然后将Start Speed(初始速度)设置为0,Start Lifetime(粒子初始寿命)设置为2~3取随机值,修改粒子大小为0.1~0.5取随机值,如图1-281所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P102_16495.jpg?sign=1739424706-PSMjXDiYXz6Y1ug6hOgarKuxV5BGsGsp-0-f5d82b58f3942e2bf655f1d958af6c2d)
图1-281
Step 02将粒子系统Shape(发射器形状)设置为Sphere(球形发射器),适当调节发射器半径,如图1-282所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P102_16500.jpg?sign=1739424706-QcfVJTbGlBgWJVmdcTjhNqUfQym6x6wr-0-7427b0a4b09fa2f0143f6ecb54193ae7)
图1-282
Step 03接着启用Velocity over Lifetime(生命周期速度),将其中Space(解算空间)修改为World(世界坐标)并将轴向速度控制类型更改为Random between Two Curves(两曲线间随机)。之所以设置为Random between Two Curves(两曲线间随机)是为了增加粒子运动的随机变化,如图1-283所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P103_16514.jpg?sign=1739424706-axpAwDSRZfgHAeiPsbzAffUsRtAUzkqa-0-7fbbeee31fe9d237f9fe011c46741840)
图1-283
Step 04依照之前的各轴向速度曲线的分析结果,将粒子属性Velocity over Lifetime(生命周期速度)速度曲线依次修改如下。
(1)X轴速度曲线,如图1-284所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P103_16519.jpg?sign=1739424706-V5m8OITEhY4d6VqC60CCnsys1rpZh1DR-0-0e0aa984a02c1b66f0e5f63aacf25eaa)
图1-284
(2)Y轴速度曲线,如图1-285所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P103_16523.jpg?sign=1739424706-Sod6YlWwEEdZUrEmiUJLDDwHcErOZuBL-0-8cc1f9c69224465b6df2c1b6f17c549e)
图1-285
(3)Z轴速度曲线,如图1-286所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P103_16527.jpg?sign=1739424706-NB7EMLGslVU5KDefCaUjpzz0qDgXbqdc-0-1510cf2064094ed4cd2a96ba6e7b520d)
图1-286
在曲线编辑器视图左上角可以输入数值,该数值对应的是粒子速度的最大值。
在这里,把X、Z轴速度设置为2,Y轴速度设置为5。(设置位置如图1-286左上角红色框。)
Step 05开启Size over Lifetime(粒子生命周期大小),使用Curve(曲线)控制,如图1-287所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P103_16001.jpg?sign=1739424706-VlzpLOoTKnT1KAv0NiHzlTjAO6TMlH40-0-497aa6b113539bde93706a7585f81ad1)
图1-287
Step 06最后播放粒子系统,就可以看到随机运动效果了。
赋予粒子材质贴图后效果如图1-288所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P103_16541.jpg?sign=1739424706-pLy3YwgG2SVC8fieMXDRZJNSwyDnPuQY-0-f085a3f92ea843458ea9c3ef5c896c18)
图1-288
注意
由于之前已经分析出了粒子的各轴向速度曲线,所以只要在Velocity over Lifetime(生命周期速度)中修改对应的速度曲线即可。示例效果中粒子速度完全受Velocity over Lifetime(生命周期速度)控制,这也是之前把Start Speed(粒子初始速度)设置为0的原因。
1.3.10.4 设定粒子旋涡运动
很多3D游戏引擎中都有粒子的力场控制功能(例如风场、旋涡场、引力场等),当然Unity 3D也不例外。不过Unity粒子控制起来可没有那么直观,需要动动脑筋才行。那么如何使用Unity模拟出粒子旋涡效果呢?
虽然在Unity中没有那么多的力场类型供选择,但是可以通过对Velocity over Lifetime(生命周期速度)X、Y、Z三个轴向的速度控制来模拟各种力场效果,在本节中将以粒子的旋涡运动效果为例进行演示。
分析以下粒子在旋涡力场的影响下各轴向的运动趋势及速度曲线,如图1-289所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P104_16564.jpg?sign=1739424706-NWh0BLfdphMMmfmRzEKwYVUyylP5M7lC-0-15ef4aeadcfbc01484d2eb7de7a23f72)
图1-289
从图1-289中可以看出,粒子的运动路径是圆形并且始终绕着圆心运动,那么接下来再分析粒子绕行一个周期各轴向的速度变化。
粒子在X轴方向的运动趋势如图1-290所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P104_16568.jpg?sign=1739424706-QZuCRRHfcsqYtZScTxK1Z0cs5Ag4pA9j-0-b6dc26b351ab3695a0edf50b278a2cc9)
图1-290
根据粒子在X轴方向的速度变化,绘制出粒子在X方向的运动曲线。图1-291表示粒子每旋转一周,X轴方向速度的变化。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P104_16574.jpg?sign=1739424706-TY1IivYlMmovVXANUW0qIZKXKNSQMdzz-0-6d8788430de8c0296f785dcb7d2b0999)
图1-291
粒子在Y轴方向的运动趋势如图1-292所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P104_16578.jpg?sign=1739424706-LdCC7TIQSTKTFYVrBJuNAXOaVRajaRjk-0-2e070befb4800110ffa6aa15c57f539d)
图1-292
根据粒子在Y轴方向的速度变化,绘制出粒子在Y方向的运动曲线。图1-293表示粒子每旋转一周,Y轴方向速度的变化。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P104_16582.jpg?sign=1739424706-OV7vXb3n9XyIe8lZ5Qs2aclLjdvphziM-0-1e9cdb72e983f47d86d0881969d50c3f)
图1-293
注意
当前运动曲线表示粒子在Y轴没有速度变化,如果想要加上Y轴方向的速度变化,则需要对Y轴曲线也进行控制。例如,把运动曲线修改为向上的斜线表示Y方向速度逐渐增加。
粒子在Z轴方向的运动趋势如图1-294所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P105_16606.jpg?sign=1739424706-mAQweJMlZiD6hmJmsdFrXYcdrJhFw8AD-0-8d902e434f09e54a264816d1b7083c45)
图1-294
根据粒子在Z轴方向的速度变化,绘制出粒子在Z方向的运动曲线。图1-295表示粒子每旋转一周,Z轴方向速度的变化。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P105_16610.jpg?sign=1739424706-hfXKRT4e0C0SMNKd7YhCESe632HLyC41-0-ca0099b39bfc894985558f0a6bbb0336)
图1-295
注意
对比X轴与Z轴的粒子速度曲线发现,X、Z两轴曲线之间(近似)像是偏移了四分之一个周期。
到这里就已经分析出对应三个轴向的速度变化曲线了,接着只需要依照之前各轴向速度曲线的分析结果,将粒子属性Velocity over Lifetime(生命周期速度)速度曲线依次修改设置即可。
Step 01首先单击菜单GameObject→ Particle System创建一个粒子系统,将Start Speed(初始速度)设置为0,Shape(发射器形状)设置为Sphere(球形发射器),如图1-296所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P105_16625.jpg?sign=1739424706-0YZvMuu4s26wx6kXzq4Gl5KXg86gBn2Y-0-6509c35a791709d5bbe9d3897140c68c)
图1-296
Step 02接着启用Velocity over Lifetime(生命周期速度)将Space修改为World(世界坐标)并将轴向控制类型更改为Random between Two Curves(两曲线间随机)。之所以设置为Random between Two Curves(两曲线间随机)是为了增加粒子运动的随机变化,如果设置为Curve(曲线)则随机效果不明显,如图1-297所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P105_16629.jpg?sign=1739424706-a42eg8VuPIUILKHuoxyDM130muYLUEM9-0-ad7010786db17180d5003c599ef0f030)
图1-297
Step 03接着按照之前的分析结果,将各个轴向的运动曲线依次修改,设置如下。
X轴速度曲线,如图1-298所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P105_16633.jpg?sign=1739424706-d5CnA5zuaHlcIs17JQCDEBcUw0yEhjZX-0-545b82ce61979196d2bd2c065d59e84e)
图1-298
Y轴速度曲线,如图1-299所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P106_16650.jpg?sign=1739424706-iCM7fEdeW0SmdxPUQh4qMFvsRXBfTmmj-0-f1d4828c21da42d7b4fe01b2cb9afc25)
图1-299
Z轴速度曲线,如图1-300所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P106_16654.jpg?sign=1739424706-I2ZOJFFC3JsZicN62N8kDeFrafuYHYb5-0-f6583b7073d92bdc43f9269287aafde0)
图1-300
Step 04在曲线编辑器视图左上角(图1-300红框位置)可以输入数值,数值对应的是粒子速度的最大值。
在这里把X、Z轴速度设置为5, Y轴速度设置为0。
Step 05最后单击播放就可以看到粒子的环绕运动了,效果如图1-301所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P106_16658.jpg?sign=1739424706-rUK5iuSjVDJcrRGAld6LC3d194md8gGK-0-684759d756129b44b1c6581362b1d5b2)
图1-301
注意
(1)如果不希望粒子有范围随机效果,则可以将Velocity over Lifetime(生命周期速度)调节为Curve(曲线)单曲线控制模式。
(2)粒子螺旋上升效果与之同理,只需调小当前粒子发射器半径,然后增加Velocity over Lifetime(生命周期速度)Y轴方向速度即可。
1.3.10.5 让粒子上升悬浮一会儿再掉落
制作粒子上升的效果相信大家都知道怎样实现,不过如何使用Unity模拟出粒子悬浮后掉落的效果呢?
下面来分析粒子悬浮的运动趋势,如图1-302所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P106_16676.jpg?sign=1739424706-ULqJldOGuFdna6a8vbthyoXXHqZSsiwW-0-563eb0544cbd2adf0bd813ff0fae2237)
图1-302
从示意图中可以看出,粒子速度的主要影响轴是Y轴,不过在实际制作中为了增加粒子的随机效果,通常也会在X、Z轴加入一些速度变化。
观察得出每个粒子在各轴向的速度运动曲线如图1-303所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P107_16697.jpg?sign=1739424706-Kj5fADLalNxq9xy0wDWbgCRx1zqWrwfo-0-1ff06351ec21284e92080fb22a92ee1d)
图1-303
注意
图1-303中Y轴向显示为粒子先加速上升,然后减速上下浮动,最后匀速下落。
Step 01首先创建一个粒子系统,将粒子系统Start Speed(初始速度)设置为0,Start Lifetime(粒子初始寿命)设置为1~5取随机值,修改Start Size(初始大小)为0.4~1取随机值,如图1-304所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P107_16703.jpg?sign=1739424706-LLvzqF3Sc8YYXxzj1GCG1nisYrxqXDEo-0-9730e5bd35d99b1c704786de76f58bef)
图1-304
Step 02将粒子系统Shape(发射器形状)设置为Box(方盒体),并修改发射器形状边长为Box X=5,Box Y=1,Box Z=0,如图1-305所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P107_16709.jpg?sign=1739424706-VHpwceUO8412z16iE49mhywLGCMCnC6G-0-f39b5e81846c32b3babd7ac3fd758993)
图1-305
Step 03接着启用Velocity over Lifetime(生命周期速度)将Space修改为World(世界坐标),并将数值控制类型更改为Random between Two Curves(两曲线间随机),设置X、Y、Z三个轴向运动曲线如图1-306所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P107_16714.jpg?sign=1739424706-nLTqBJb106UANzSaeGktobXL8MrG7GeQ-0-82f93cb4fc5df0a46723bfa4bebbe334)
图1-306
X轴速度曲线,如图1-307所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P107_16718.jpg?sign=1739424706-rF6jQJzrjIFUxgZRYp4O841OVBkLIoJD-0-35930a53942d9a1155fa5e93a81b7baf)
图1-307
Y轴速度曲线,如图1-308所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P107_16722.jpg?sign=1739424706-VVvsboJBxFk6UiQKeI67SJrW3JfrAa5S-0-4fff26bde4676ff005044fe4bc95adce)
图1-308
Z轴速度曲线,如图1-309所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P107_16726.jpg?sign=1739424706-fiY08oYq3ICOOiyrnUSfrba3lJkJMTvY-0-de4bd57e4d2d6e7c6ff03fef11d397e4)
图1-309
设置Y轴的速度曲线(红框位置)速度最大值为10,设置X、Z轴的速度曲线(红框位置)速度最大值为1。
注意
Y轴速度曲线最大值对应粒子上升最大幅度,在实际制作中可以根据制作需求更改曲线上升幅度等参数。
Step 04将粒子系统Render Mode(渲染模式)修改为Mesh(网格体),选取一个石头模型赋予材质,如图1-310所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P108_16751.jpg?sign=1739424706-WXpbJT4qjLy7om1bh517t1ROwjVYPpe5-0-9c442ab7c2445437dc7006de2b210dad)
图1-310
Step 05修改完成后,单击播放就可以看到粒子运动了,如图1-311所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P108_16756.jpg?sign=1739424706-Hh2LmAJk3HLsH65ESviehWIxbi8hUWMN-0-d1ef2d0cc0ebfd366a2b5719aecfd993)
图1-311
1.3.10.6 粒子初始运动方向被扰乱产生随机效果
粒子初始运动方向统一,随着时间的增加而逐渐偏离原来的运动轨迹。那么这种刚开始运动方向很规律后来变随机的效果要如何实现呢?
以Cone(圆锥体)形状的粒子发射器为例,以下是默认速度与随机扰乱效果图之间的示例,如图1-312所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P108_16761.jpg?sign=1739424706-M8Cdf9ED8giTZtVaLDkjhdoWiMEk3WpM-0-2824e2cc454c8d5645b7bc074a60095a)
图1-312
从示例图中可以看出,粒子在Start Speed(初始速度)方向时,将会始终依照发射器形状来发射。而随机扰乱效果图中,粒子初始沿着自身速度方向发射,但是在生命周期后半部分发生了扰乱/不规律运动。
通过观察得出各个轴向的速度曲线如图1-313所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P108_16765.jpg?sign=1739424706-QzMyo2LTjLDB6FvwtzyiF6vt6wEqYDen-0-07b59a2b5d9095b39c04ce7b2ad1c42e)
图1-313
注意
由于粒子有沿着发射器形状发射的特性,通过Start Speed(初始速度)控制速度大小,所以这次不需要对粒子X轴方向速度进行设置,直接将Velocity over Lifetime(生命周期速度)中X轴速度曲线设置为0即可。
接着只需按照分析结果,修改粒子系统数值即可。
Step 01首先创建一个粒子系统,将其旋转值归零,如图1-314所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P109_16790.jpg?sign=1739424706-aIeZQ0ZbLhjePZbQOiOMKEDwNu9lBGI4-0-44be42d2d1ca413e760582b1a97bbf5c)
图1-314
Step 02将粒子系统的Duration(发射周期)设置为0.1秒,取消Looping(循环选项),设置Start Lifetime为2。
Step 03将粒子系统的Start Speed(初始速度)设为10~20取随机值,适当调节Start Size(粒子大小),如图1-315所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P109_16795.jpg?sign=1739424706-wTK64aAi9GM3WlNpbndnd1tkw7v9rBG3-0-9b72f9c3837ad177443b525d4c848f73)
图1-315
Step 04将Rate(发射速率)设置为0,开启Bursts(爆发),设置第0秒发射30个粒子,如图1-316所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P109_16799.jpg?sign=1739424706-lNmSeAxPY1qUQuHd1ZSxnRYmOvC9eb1U-0-5d3053358fd0470f47f50acd3303a5e6)
图1-316
Step 05将Shape(发射器形状)设置为Cone(圆锥体),适当调节Angle(发射角度)及Radius(发射器半径),如图1-317所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P109_16803.jpg?sign=1739424706-xfMA5HCARQhYeKK4x64vCyaTwoaEE86X-0-e9252f3aab0c1e8ccd46e1936a3f0dbb)
图1-317
Step 06开启Velocity over Lifetime(生命周期速度),将Space(结算空间)设置为World(世界坐标),如图1-318所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P109_16807.jpg?sign=1739424706-p0S7oNEH5bJ382YVBtx00djN4gq3sZeX-0-7156927434e385e89608c60daee113c5)
图1-318
Step 07设置Velocity over Lifetime(生命周期速度)为Random between Two Curves(两条曲线间取随机),并调节运动曲线及强度值(红框位置),如图1-319所示。
在这里把Y、Z两个轴向的最大速度设置为30(图1-319中红框位置),X轴向最大速度设置为0。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P109_16812.jpg?sign=1739424706-gG03dBFXw19pey7kLzSeFQNK2YDuwSVW-0-7eb41633dbd78deed13029d0205c810c)
图1-319
Step 08启用Size over Lifetime(粒子生命周期大小),设置动画曲线为粒子大小逐渐消减,如图1-320所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P110_16827.jpg?sign=1739424706-ZQHoZ26C4xzdFCVOsPMpqcbT6X0p6w5l-0-e0f22673b44b18182b2c08bc4e755d15)
图1-320
Step 09设置相关参数后,播放即可,效果如图1-321所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P110_16832.jpg?sign=1739424706-LPzizSxZnZR52GH5sOPFS6Eb1JgVhFPA-0-5e0185ed5a8306e8d84045ace8bcf300)
图1-321
除了使用速度曲线控制外,还可以用一个更简便的设置方法来实现粒子路径扰乱功能。
大家知道在Unity中除了可以使用速度控制粒子外,还可以通过力场来直接影响粒子,那么接下来将演示用力场控制来模拟这种效果。
Step 01同样创建一个粒子系统(设置参数与上一案例相同,操作不再重复)。
Step 02这次不勾选Velocity over Lifetime(生命周期速度)选项,而改为开启Force over Lifetime(力场控制),将Space(解算空间)设置为World(世界坐标),如图1-322所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P110_16844.jpg?sign=1739424706-CjLihreR7ZdQ1WLuHGwIMcIQ168tqRLG-0-c62effcaa79a354178cff9ddd3d8df8f)
图1-322
Step 03设置Force over Lifetime(力场控制)为Random Between Two Constants(两个数值间取随机),设置如图1-323所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P110_16849.jpg?sign=1739424706-tkuGMXAZQqORL4dbWdw7lgb2mKYN9bcA-0-5205ab0d44110ce910ee37357428967c)
图1-323
Step 04播放查看后效果。力场控制一般会比直接控制速度曲线效果更加自然,如图1-324所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P110_16853.jpg?sign=1739424706-fjYY5FZFaTibFFt8WDjAdXVOg1hro4hd-0-7b24cdfff1423670a03e374a4f3105b1)
图1-324
注意
随着粒子受力场影响时间的增加,粒子的速度变化也会越来越明显。
1.3.10.7 粒子运动时速度逐渐减慢
在特效之中适量加入减速/限速效果,对提高特效整体的节奏感会起到很大作用(例如喷射出的火星效果等)。在Unity粒子系统中本身就有粒子限速模块Limit Velocity over Lifetime(生命周期限速),通过该模块就可以轻松地实现粒子速度逐渐减慢的效果。
本节以火星飞溅效果为例进行演示。
Step 01首先创建一个粒子系统,将其旋转值归零,如图1-325所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P111_16876.jpg?sign=1739424706-l6ZmmmPWiDFRLqASaW5UiJeEr1b6Vz6N-0-b7fb6e8b4cb4dca04dc2467e55cc6e58)
图1-325
Step 02设置Duration(发射周期)为0.1秒,取消Looping(循环选项),将Start Lifetime(初始寿命)修改为0.3~1.2取随机值,将Start Speed(初始速度)设置为10~40取随机值,将Start Size(初始大小)设置为0.1~0.5取随机值,如图1-326所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P111_16880.jpg?sign=1739424706-TRBNsoDarZzhGmaZ62886vyms6NvXFhI-0-525c4ee0c809b0ac6856c950b3c47bba)
图1-326
Step 03将Rate(发射速率)设置为0,开启Bursts(爆发)选项,设置第0秒产生30个粒子,如图1-327所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P111_16884.jpg?sign=1739424706-VOYtpOwhc7RGODGULvG3TTaXJZwloris-0-e3f87c064b432df67c87e544506ec5eb)
图1-327
Step 04发射器形状Shape切换为Cone(圆锥形),适当调节发射Angle(角度)及Radius(半径),如图1-328所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P111_16888.jpg?sign=1739424706-c7wbzzrphu4juUmBuyfnAj7oUtELWdPx-0-b04f775e2624a5d2eac536c3bb581835)
图1-328
Step 05启用Limit Velocity over Lifetime(生命周期限速),设置如图1-329所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P111_16893.jpg?sign=1739424706-x4AV6swl0aGM8YFm21zIC5OeJFgvsV5A-0-51f58c2c72a739f0552738f7f391b97b)
图1-329
Step 06开启Color over Lifetime(生命周期颜色),调节火花的颜色过渡,如图1-330所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P111_16898.jpg?sign=1739424706-bSeTUgWxdYIRDeO0gBpUFhHWzfnNnyrN-0-28fbe01f16a8e65414c7439877b9094b)
图1-330
颜色过渡设置如图1-331所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P111_16902.jpg?sign=1739424706-XftWHyycpftok58xYw1SmkmM6pijuMvy-0-e8a7595133b5d569c1f40339a1347eda)
图1-331
Step 07启用Size over Lifetime(粒子生命周期大小),调节粒子大小渐变消失,如图1-332所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P111_16907.jpg?sign=1739424706-B9ODjWaiCChfg4rB6dc2bp65YV6ue3ua-0-fece21db596cf90c95982d7b3e8ff1a1)
图1-332
Step 08然后给粒子系统赋予一张火星的纹理贴图,在Renderer(渲染模块)中把粒子Render Mode(渲染模式)设置为Stretched Billboard(拉伸模式),设置如图1-333所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P112_16922.jpg?sign=1739424706-0ANsX66GrVoKytuC4Wj9WwdC9ViReZEk-0-324e2b0c71326e0ef7309682e75e50c6)
图1-333
Step 09最后单击播放,就可以看到火星飞溅并逐渐减速消失的效果了,如图1-334所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P112_37184.jpg?sign=1739424706-ron6Zmp94FG1KeEMkJN1UaUZzvbi5Vmq-0-de5ba7c577b9352829cb9d5d943a30fd)
图1-334
注意
在类似效果中(如飞溅出的石块、碎屑)过渡消失过程最好不要直接使用透明度渐变消失,让粒子由大变小逐渐消失看起来会更加自然。
1.3.10.8 通过粒子系统实现落叶3D旋转效果
普通的落叶效果大家肯定知道如何制作的,但是由于默认粒子类型Billboard(布告板)始终朝向摄像机没法制作出自然生动的落叶,那么要如何制作3D旋转的落叶效果呢?
本节使用的是Unity 5.3.0之后加入的新功能3D Start Rotation(3D坐标旋转)。打开新版Unity 3D并创建一个粒子系统,观察发现在粒子控制项中多了一个3D Start Rotation(3D坐标旋转)选项。这个功能将允许我们设置粒子的初始3D旋转值,同时在控制项Rotation over Lifetime(生命周期旋转)中也增加了一个Separate Axes(分离轴)功能,通过该功能可以分别对X、Y、Z三个轴向的自旋转速度进行控制。
Step 01首先创建一个粒子系统,将发射器向X轴旋转90°,使其向下发射粒子,如图1-335所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P112_16944.jpg?sign=1739424706-ZQSD0aUT9qPBE569NconB3YkuCVlNQ8W-0-1a328451c686e756c79a98abbaa6b6cb)
图1-335
Step 02将Start Size(粒子初始大小)设置为0.5~1.5取随机值,开启3D Start Rotation(3D坐标旋转),启用Random between Two Constants(两个数值之间取随机值),修改X、Y、Z三个轴向旋转为0°~360°,如图1-336所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P112_16948.jpg?sign=1739424706-V4vB1BLTYa9TspNQ7EHmSUt3admDWooE-0-a6cad4dc8dd5999776dc405b27ef03c8)
图1-336
Step 03适当调整发射速率,如图1-337所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P112_16953.jpg?sign=1739424706-MwfAMkQLeLbLHI1zOYoKD18qBu0lOn3G-0-f117ee3fd40ef95d2e3ed5877292c5ac)
图1-337
Step 04发射器形状设置为Cone(圆锥体),将Angle(角度)设置为0,Radius(半径)设置为15,如图1-338所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P113_16968.jpg?sign=1739424706-jE4OOfjZ43BhzJxXusZxVLZ9qH1gFVdf-0-bbfce2bb6ae0a7f07bba9ce29f635395)
图1-338
Step 05开启Ration over Lifetime(生命旋转周期),单击Separate(分离轴),设置为Random between Two Constants(两个数值之间取随机值),修改X、Y、Z三个轴向自旋转速度为80~200,如图1-339所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P113_16972.jpg?sign=1739424706-ijT17YIxJ7qYNqZowyFLMHhUMx6jnosc-0-85c372a7695a30705fe6d0ed9aed3adb)
图1-339
Step 06将粒子系统设置赋予树叶材质纹理,播放效果如图1-340所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P113_16977.jpg?sign=1739424706-bCwvgvlJnqP7CeU1d9COly632qY8k4pv-0-ab23d6d6b8485f7cf8d1e60af71106f6)
图1-340
一个简单的树叶旋转飘落的效果就这样制作完成了。通过该功能不但增加了粒子的可控性,还可以让飘落效果更加自然真实。
注意
除了使用3D Start Rotation(3D坐标旋转)属性外,通过粒子系统发射面片同样也可以实现3D旋转的效果。
1.3.10.9 粒子发射模型的妙用
虽然Unity 3D带有动画系统,但是使用动画系统控制模型并不是特别方便。为了方便操作,一些简单的动画可以由粒子系统发射模型体,通过调节粒子参数来制作。例如,常见的刀光效果等。通过粒子系统发射模型也可以实现一些默认模型体不能完成的效果,例如序列动画就可以由粒子发射模型体来完成。
1.粒子系统发射Mesh(网格体)旋转轴控制
在制作特效时,经常需要通过粒子来发射Mesh(网格体)进行控制,这样不但制作方便,也易于调节参数。但是有些时候在3ds Max中制作网格体导入Unity后,不能很好地控制旋转轴。那么如何才能让网格体按照规定的轴向旋转呢?
下面以一个平面为例,希望该平面体沿着世界坐标Y轴旋转运动。
Step 01首先在3ds Max中创建一个简单的模型体,赋予一张贴图,效果如图1-341所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P113_16996.jpg?sign=1739424706-lBz7PzzNKuRDZXAaAQ4L16NG7xOrcpzM-0-b032f6bb47f016b5ecec78b1952da97b)
图1-341
然后直接将模型体导入到Unity中。
Step 02在Unity中创建一个粒子系统,将粒子系统的Start Speed(初始速度)设置为0,设置粒子系统Max Particles(最大发射数量)为1,如图1-342所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P114_17006.jpg?sign=1739424706-G0zDptb7yjsuIFytIDYDUJHGVTZESoq2-0-72139d5ced30dd3f8214c6c0bfc25083)
图1-342
Step 03开启Rotation over Lifetime(生命周期旋转),设置一个自旋转速度,如图1-343所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P114_17010.jpg?sign=1739424706-vwPQVMFZ18YTi8nLpd1iP7okSUTFOEP9-0-fe43e6d0864c80b4fddf9b675c957e8c)
图1-343
Step 04设置粒子渲染类型为Mesh(网格体),选取在3ds Max中制作的平面网格,如图1-344所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P114_17015.jpg?sign=1739424706-OOduCftL2E05rVgrV8jOC2lR4F0ijdd5-0-4060f02be70a62e5fa54f627665ce32a)
图1-344
Step 05赋予粒子系统一张贴图纹理,并播放,如图1-345所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P114_17020.jpg?sign=1739424706-XvPFhRvcK5zJ2L6elFSomKaK8QYHVOTX-0-ceee1f6f0bc93864ab400365eb0d47f0)
图1-345
观察发现当前网格体的旋转方向并不正确。
那么要如何才能让平面网格沿着Y轴旋转呢?
其实很简单,默认粒子系统的发射器形状为Cone(圆锥体),只需取消粒子发射器形状,再次播放粒子系统就可以正确旋转了。
Step 06取消粒子系统的发射器形状,如图1-346所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P114_17025.jpg?sign=1739424706-ULIIg7Hn7Z13tlvqREft1zKjsbGvfI1r-0-9c7ca12e2e98e50879c8ed312a580caf)
图1-346
Step 07最后效果如图1-347所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P114_17029.jpg?sign=1739424706-PuL0q1NMGrYaDKR2CNgpJzt2I1JValqt-0-2a9a7bf81a321a6ba983675c2a4f3c55)
图1-347
观察发现平面体已经在正确的方向旋转了。
提示
如果粒子发射模型体的旋转轴不正确,除了取消发射器形状外,还可以尝试将粒子发射器Shape(形状)设置为Box(方盒体),并设置Box X、Box Y、Box Z为0。如果这两种设置方法都不行,那就需要在3ds Max中修改模型影响轴了。
2.模型播放序列图
在Unity中模型体默认是不能直接使用序列图的,不过有两种方案可以解决这个问题。
一种是使用粒子系统发射Mesh(网格体)从而实现序列图的播放效果,而另一种是使用脚本来实现。在本节中将学习使用粒子系统在模型上播放序列图的方法。
注意
大家知道粒子的其中一种渲染形态为Mesh(网格体),利用这个特性结合粒子系统内置属性Texture Sheet Animation(纹理篇动画)可以实现序列播放效果。
Step 01首先创建一个粒子系统,取消Looping(循环)循环选项,将Start Speed(初始速度)设置为0,设置Start Lifetime(粒子初始寿命)为1,如图1-348所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P115_17060.jpg?sign=1739424706-KVWibN1BSxvDmGna90ANSTzKIu1hd3eO-0-23d1fff5ba57fbf46602a20a963ff8a8)
图1-348
Step 02将粒子系统Rate(发射速率)设置为0,开启Bursts(爆发),第0秒发射一个粒子,如图1-349所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P115_17064.jpg?sign=1739424706-1ihfDnunvVMGciB3kdeqfCAJfwlyh5Tl-0-a57fb12618f4482368022850bc59d9cb)
图1-349
Step 03取消Shape(发射器形状),如图1-350所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P115_17068.jpg?sign=1739424706-I4l9I2YAGvbSzMZ843wJRVoAJ2GLH1lm-0-4fcec0bd010f6dcf2161ac6c74918623)
图1-350
Step 04将粒子渲染类型Render Mode(渲染模式)设置为Mesh(网格体),单击后面的圆点(如图1-351所示),拾取一个模型体(也可以导入一个自定义模型体)。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P115_17073.jpg?sign=1739424706-tOx7KXjHPwW0ZwgiuUuypIDZatZHi9zl-0-c53bd7e9e738352197e335432b5cc5aa)
图1-351
Step 05赋予粒子系统材质,开启Texture Sheet Animation(纹理篇动画)功能,根据贴图排布来设置Tiles(平铺分布)数值。
图1-352所示为示例贴图及选项设置。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P115_17077.jpg?sign=1739424706-AVOrlLh9dOpdBG0qbUU3qeeuPR16SwRB-0-285aa8809d967ae4ac01a4bee19d0310)
图1-352
Step 06设置完成后,播放粒子系统就可以查看效果了,如图1-353所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P116_17093.jpg?sign=1739424706-W7y65L8PxIZeVow7g5SSleHPIi35kwCs-0-981a576f45aed80b3427f0781854649d)
图1-353
注意
(1)如果想进一步对序列播放速率进行控制,则可以在粒子属性Frame over Time(时间帧)中通过修改动画曲线来调整。
(2)在之后的脚本篇中会讲解运用脚本来实现模型播放序列图的方法。
1.3.10.10 批量修改粒子系统参数
在制作一些群体效果或者复杂特效时,往往会同时使用多个粒子系统。后期修改过程中需要反复调节多个粒子系统的数值,这样不但非常耗时,并且工作效率低。那么有没有一种可以批量修改粒子参数的方法呢?在本节中,就将学习批量修改粒子系统参数的方法。
以特效Effect_Scene_penquan为例,当前希望把特效所有粒子系统中的Max Particles(最大粒子数量)统一设置为10,那么应该如何去做呢?
Step 01首先选择所有粒子系统,如图1-354所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P116_17107.jpg?sign=1739424706-Tw7ZVBX2vaARUOhzziVomIlxkCRdzj8C-0-53f07b1429ad9da62830081a400b3869)
图1-354
全选后发现,虽然在Inspector(检测视图)中可以修改粒子系统的Transform(变换)参数,但是粒子本身的其他属性参数却被隐藏无法修改。
Step 02单击Inspector(检测视图)右上角,切换编辑模式为Debug(调试模式),操作如图1-355所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P116_17111.jpg?sign=1739424706-bF2Bdf0u9mHmIBTlvNhMjWkhDW2RcTAL-0-569f71ead0adf1800adb328a26ac10ab)
图1-355
切换为Debug(调试模式)后,界面显示如图1-356所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P116_17115.jpg?sign=1739424706-SgsTqDPgdImxEwSUcbnNA4vfqzRYBuWO-0-997b66a36a57d08e255c9640358914b0)
图1-356
这时发现许多默认Normal(常规模式)下没有显示的相关参数现在都被显示出来了(显示的位置和名称可能与之前会略有不同)。
注意
在Debug(调试模式)下通常会比Normal(常规模式)多出一些设置项,例如Instance ID等。
Step 03然后在属性列表中找到Max Num Particles(Max Num粒子)属性,该参数与Normal(常规模式)下的粒子参数Max Particles(最大数量)意义相同,将其设置为10,如图1-357所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P117_17141.jpg?sign=1739424706-2egHYsZm0BuP7zmEgEYxfVr0I5gZ5UPQ-0-eef8bee1decd85d7ad7e2b6027bd9584)
图1-357
Step 04把模式切换回Normal(常规模式)并查看粒子系统相关属性,如图1-358所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P117_17146.jpg?sign=1739424706-YC487M3DzldA3upOBcNVTSlng5swHVVt-0-407864e4fa56290a38219cdab14e2e5d)
图1-358
Step 05检查发现所有粒子系统中的Max Particles(最大数量)都被统一设置为10(如图1-359所示)。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P117_17150.jpg?sign=1739424706-uZZn9SBwXgzDIzYmtACsKjAwQQg65UzZ-0-8ed79fa5d575fa1daecbd27b804600f6)
图1-359
也可以使用该方法批量修改粒子系统中的其他属性参数。
注意
Debug(调试模式)是一个默认不开放的编辑模式,往往在Debug(调试模式)中可以修改一些Normal(常规模式)下无法修改的信息,实现一些意料不到的功能(如切换动画文件的新旧版本等)。
1.3.10.11 粒子系统的发射间隔控制
在特效制作中,可能会遇到这样一种情况,效果中需要粒子系统持续播放一段时间,然后停止发射,隔一会儿后再重新开始发射,并且需要这个过程无限次循环。粒子系统本身并没有持续发射间隔控制功能,唯一的类似功能Bursts(爆发性发射)也无法满足持续性发射的效果要求。那么这个效果要如何实现呢?
以之前的一个项目效果为例:
需要实现鲸鱼浮出水面后开始喷水,喷水结束后下潜(鲸鱼浮出水面总时长5秒,水下停留时长同样也是5秒)。
鲸鱼每次喷水持续时长4.5秒,停留0.5秒后下潜到水底。鲸鱼的动画是上下潜水(间隔规律)无限循环,如图1-360所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P117_17167.jpg?sign=1739424706-AcxnSUMsXewyN7jaLg84gaQG9SFfK0Gk-0-b2b13aa65b6c87f6b97f8c134a9039df)
图1-360
测试了几种方法:①使用粒子系统Bursts(爆发)功能来模拟,但是由于鲸鱼需要持续喷水的时间较长,使用该命令并不满足要求。②使用动画对粒子系统Position(移动)K帧,在鲸鱼上浮时将粒子系统放置在鲸鱼喷水的位置,当鲸鱼下潜时跟着鲸鱼一起下潜。但是这样处理,鲸鱼就没有“开始/停止”喷水的过程了。并且当鲸鱼第二次上浮时,未到水面上就开始喷水,所以也不满足要求。
经过反复研究测试,最后总结出如下两种控制粒子系统发射间隔的方法。
第一种:通过动画系统实现。
Step 01以使用粒子系统制作喷水效果为例,首先创建两个空的Game Object(游戏对象),将喷水特效放置在其子层级,命名为“Effect_penshui”/“Jingyu_penshui”,如图1-361所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P118_17187.jpg?sign=1739424706-TNrquZjdwHo7Ci7XhVF1w2slsSG5XV5i-0-7fbae8710fc0ce23ff7aeb4099e4aa23)
图1-361
图1-361中Effect_penshui与Jingyu_penshui都是Game Object(空对象)
Step 02打开Add Curve(添加曲线),单击Jingyu_penshui前的三角符号,选择展开项中的Is Active(激活)选项,如图1-362所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P118_17202.jpg?sign=1739424706-FAtGkbAi0eTvN3nxHJo9EubzfVDFUdq6-0-899447019e4c3e65466be99d01f9fe70)
图1-362
注意
勾选动画文件中的Loop Time(时间循环)选项,将其设置为循环模式(默认勾选状态)。
Step 03接着对Is Active(激活)选项属性进行K帧,设置前5秒是开启激活状态,5秒后关闭激活选项,如图1-363所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P118_17206.jpg?sign=1739424706-Og0vXG5gaTijOfrQ8oH7InCV0KV5IgYI-0-f3a7cf124cd0bf6828d160c5b81e79ec)
图1-363
注意
勾选Is Active(激活)选项是开启激活,去除勾选Is Active(激活)选项是关闭激活。
Step 04接下来再添加一个新的关键点来设置停止播放的持续时间,如图1-364所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P118_17220.jpg?sign=1739424706-irbiv2QIxM0ZLJveDghfNimkKWrlWvwo-0-14f25da5e50fd0919d811a62da923275)
图1-364
现在粒子系统在前5秒是激活状态(开始喷水),后5秒是非激活状态(停止)。由于动画文件是循环模式,所以在游戏运行后,粒子激活5秒后关闭,再等5秒后重新开始激活播放。
Step 05然后将喷水效果中所有粒子系统的Duration(发射周期)设置为3.5秒,设置每个粒子的最大寿命是1秒,并取消粒子系统的Looping(循环选项)。
也就是说,鲸鱼每次完整的喷水过程(从开始喷水到喷水结束)需要持续4.5秒左右。
Step 06最后运行游戏,一个无限循环的喷水效果就制作完成了。
注意
该方法不仅适用于粒子系统,同样也适用于“模型动画”“材质球动画”等各类型效果的重复激活播放。在项目中也可以根据实际需求来调节粒子周期、激活时间以及停止时间等参数。
第二种:通过粒子系统Emission(发射器选项)实现。
Step 01同样以使用粒子系统制作喷水效果为例,首先设置粒子系统的Duration(发射周期)为10秒,Start Lifetime(粒子初始寿命)设置为1秒,开启Looping(循环选项)。
Step 02将粒子系统Emission(发射器选项)中的Rate(速率)修改为Curve(曲线调节模式),如图1-365所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P119_17248.jpg?sign=1739424706-TCjM6Koz9ik0LNuh6hLVKnkfXubbRGPz-0-102739cfe98a7e6f9562165107f86a1c)
图1-365
Step 03接下来调节Emission Rate(发射速率)曲线如图1-366所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P119_17260.jpg?sign=1739424706-2V6SPvmL9CJYZl1tALcrLXIkDG58fFWb-0-d83b4e4418acf4991affb828dc078bc5)
图1-366
注意
Curve(曲线调节)视图下侧的0~1对应粒子发射周期0~10秒。
曲线横/纵两个轴向分别表示发射速率与发射周期。
Step 04将粒子系统Rate(发射速率)最大值设置为10(图1-366红框位置),设置前3.5秒发射速率为10,3.5秒后发射速率为0(停止发射)。
注意
粒子持续发射3.5秒,每个粒子的寿命为1秒,刚好整个发射过程持续4.5秒。10秒后(满一个发射周期),粒子将再一次重新发射。
Step 05播放粒子系统,一个无限循环的间隔播放效果就制作完成了。
注意
该方法仅适用于粒子系统,如果特效中含有模型动画或者材质球动画等,则建议使用第一种方法来实现。
1.3.10.12 增加粒子系统SubEmitters(子发射器)数量
当制作一些复杂的拖尾效果时,为了增加细节,往往需要使用多个SubEmitters(子发射器),那么当默认数量不够用时应该如何处理呢?
以Brith(产生)出生时产生子发射器为例。
Step 01首先创建一个粒子系统,开启SubEmitters(子发射器)模块,添加两个子发射器,如图1-367所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P120_17304.jpg?sign=1739424706-uSqOOHy9LtEkLQyTLidWSJ2Y3ufH3yN2-0-6e6bccb4ec3f26e9fa8492c3df3ea5e2)
图1-367
观察发现默认最多只能添加两个子发射器。
Step 02取消这三个粒子系统的Shape(发射器形状),取消Looping(循环选项),将粒子系统Lifetime(粒子寿命)为20,将Start Speed(初始速度)修改为0,调节Max Particles(最大粒子数量)为1,如图1-368所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P120_17311.jpg?sign=1739424706-HXLCz52329wb9IwTpgv9M0CXHEmi0jzr-0-6b9fe33bb62ab774e1929d523134428a)
图1-368
开启Bursts(爆发性发射)第0秒发射一颗粒子,如图1-369所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P120_17315.jpg?sign=1739424706-9sE0UjyEn9LfcYIK1slkqPhEMo6OUNLA-0-c7ab6459f5c353b55dfd0bbc9b4e4af1)
图1-369
注意
(1)以上设置应用于Particle System(粒子系统)及两个SubEmitters(子发射器)系统。
(2)粒子系统Lifetime(生命周期)设置为20,表示粒子拖尾的持续发射时长为20秒,可以根据需求调节该数值。
Step 03开启两个子发射器SubEmitters(子发射器)的子发射器模块,如图1-370所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P120_17330.jpg?sign=1739424706-hnC3lblEp6RqOXGd06j66Q52u1Ksu3nE-0-70f8da99c83f1de0807e2b1a43785e24)
图1-370
Step 04将特效根级别与父级别的Simulation Space(解算空间)设置为Local(局部坐标),将四个子级别的Simulation Space(解算空间)设置为World(世界坐标),如图1-371所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P120_17334.jpg?sign=1739424706-JJYkn3UvX7tNOjJTXkxsywPdavDAfSlf-0-3088caccd498ec0fb7e43f15e0e0bfea)
图1-371
Step 05为了方便区分,将这四个子发射器的粒子颜色分别调整为红、黄、蓝、绿,并将这四个子发射器粒子系统的Start Speed(初始速度)设为1,如图1-372所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P120_17339.jpg?sign=1739424706-pWJzRVvX0GD9RoDRlUSSUYbhhshZ6MlJ-0-f043f25e4d2f36cafa76ec638813f3a3)
图1-372
Step 06最后运行游戏,单击Simulate(播放粒子系统),在场景中拖曳特效根级别。
注意
运行游戏后,需要单击Simulate(播放粒子系统)(如图1-373所示)才能播放其拖尾粒子效果。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P121_17366.jpg?sign=1739424706-chTBjlbPtg90SOYLko19JHzQPJIEFlFs-0-31c41fe2104a75a1b1b1a94cc9c7a209)
图1-373
观察发现,拖曳后产生了粒子拖尾(如图1-374所示)。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P121_17370.jpg?sign=1739424706-bqU91hOPhyz9ewQ8Hs1LQG89ziO2FVwk-0-5754019b70b377df9ec5bc8a651d41d3)
图1-374
注意
通过使用该方法可以任意增加SubEmitters(子发射器)数量,但为了效率考虑,建议不要添加过多。