![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=1738821835-EBkaqqI8m55dNAGH7dOsPRtSWpxfIVTl-0-936d9aae1263d6479226c515dde4fcff)
图1-263
Step 02为了方便观察,把粒子系统Render Mode(渲染类型)修改为Horizontal Billboard(水平布告板),如图1-264所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P99_2.jpg?sign=1738821835-ZEp2BEo1o49KlQ6eA1otSfCz9BrGl4aW-0-26ffed12508c23876ad8f3aeeb186b90)
图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=1738821835-1njPIYZhMMgsqv91MpQvqFyVp8mvTQXa-0-ef29b55e34c58c1dfe19cdf18a491abb)
图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=1738821835-LPExbPbKR5530qSjWsiYsAUku0qcCqkw-0-ab4f249076257634156ecf0653da6c55)
图1-266
Step 05再次查看效果,发现裂痕纹理已经显示在地面纹理上方了,如图1-267所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P99_5.jpg?sign=1738821835-OwY16rUIR0b5PRyAoesvY3NYsvGJuOCT-0-6953962b6cb6eac3e5b24f903668c398)
图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=1738821835-2uepUV1CzFJlka0UDqdGZPfSLruoWbks-0-a32885b15c013e751382f31a98028d03)
图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=1738821835-uXgivpdSaRIvlXwn8CZMY6GSLJ5Uel6H-0-3262af09e228584453b5fe4786e1c5ef)
图1-269
粒子系统材质设置为Particle/Additive(粒子/亮度叠加),如图1-270所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P100_4568.jpg?sign=1738821835-LFrkac4B397cl01lu4iw2lKy14ojNZ1V-0-6f4d8245af39c7077768ca4c78738498)
图1-270
再次调整粒子系统Sorting Fudge(排序校正)数值为“-200”,结果显示如图1-271所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P100_4572.jpg?sign=1738821835-x1S1crgVGQO1VREP3LmKqFiCmQFD1fHk-0-4d8596feb6affe7eb553e7b63e0345fb)
图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=1738821835-01ZGoFdJXro3IP774ZGVOF4oqrrBOG1h-0-88bcf51fa69834491419a7969b44a20b)
图1-272
实现方法:
Step 01首先创建一个粒子系统,设置Start Lifetime(粒子初始寿命)为1,如图1-273所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P101_16430.jpg?sign=1738821835-UjlwaqSRVobVQV4PELdVxK2MPUrsTj4x-0-d7872eb61394f27aac63c57812eeed9c)
图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=1738821835-TrHIQNWnQ0S0IuvECwfXEGtToNEbARRh-0-3b5081c29125311040510664ec683468)
图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=1738821835-XuZQ9iK5LQqFkjoukNGrJ3gAGB5mj7iL-0-2c02627d8005cd6ab947836566c1fa67)
图1-275
Step 04开启Size over Lifetime(生命周期内粒子大小的变化控制)曲线控制模式,如图1-276所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P101_16448.jpg?sign=1738821835-hOLGTeWhYqoreU1wT3BOnq5Jp6qlkCGu-0-1a4e0c504c027556363502c178ef0c57)
图1-276
Step 05赋予材质纹理,播放查看就可以看到每个粒子拉伸并消失的效果了,如图1-277所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P101_16452.jpg?sign=1738821835-O0wMSSbOMdXdNN484KPX3ycVoR79XYPZ-0-13147ca25256cf34eef6474168835f19)
图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=1738821835-AYMh3ur21o1K5g4a53iif9hk4hugBLBL-0-562ebc7fba19bc289eb904112e63aede)
图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=1738821835-aVsZIujS7PjjTuBChTkLVd3I1ehmnjUy-0-0497c26b15df4d1a0953df319b443b3b)
图1-279
Y方向速度为匀速上升,得到Y轴向的运动曲线如图1-280所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P102_16491.jpg?sign=1738821835-6fRGktGw6GK9H0Qn3HrnyY85kzUqr61r-0-2e32babacc6bd0de70386dec1745dd7a)
图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=1738821835-sMpl3e1MZYXEx2mZWIuqp1oTAtXBuzpl-0-e180927ddd42c996b22d9f8ba1443714)
图1-281
Step 02将粒子系统Shape(发射器形状)设置为Sphere(球形发射器),适当调节发射器半径,如图1-282所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P102_16500.jpg?sign=1738821835-Cp2kgnhB9Js0nY4oY3DOoYlfoPAWEM6s-0-c6a8651a41f44cb238a1c5d83a701e14)
图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=1738821835-6vzrBpvt2pbH88LrQoJTiM8Y3WuOJOEU-0-d75ede96ac2681d2758d3139c13da57b)
图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=1738821835-s0VJxUZmQBvBfjRc6pH0NC2XGbB24HM4-0-6a1fc65af985b3ba5bc167bd4ed7b1f5)
图1-284
(2)Y轴速度曲线,如图1-285所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P103_16523.jpg?sign=1738821835-UgXePYOoIu5AY2xLl4zg4j39zPv8sB4S-0-087c9fe3b9d96adab68f3bd35ef76c16)
图1-285
(3)Z轴速度曲线,如图1-286所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P103_16527.jpg?sign=1738821835-nNikzvD5ZuhrJBFaa1BIhd9h0VrHkoKl-0-9d35935949cb21d8620e2cd5cf4bdc55)
图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=1738821835-5cGFf6fnS4qLeAoYAI8HtATkiB9ux3Ej-0-6ead3ef835293fd813f2c5172e5bea0b)
图1-287
Step 06最后播放粒子系统,就可以看到随机运动效果了。
赋予粒子材质贴图后效果如图1-288所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P103_16541.jpg?sign=1738821835-qAADLtt46SHzwYC3HgHHckXgcO12GqBF-0-f26e90cccb37edd9547fae8a4b8917ca)
图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=1738821835-ZveTBnLERJE98embzVll4Q5vjt89esIf-0-a17470b63042cf100c10085030b23a56)
图1-289
从图1-289中可以看出,粒子的运动路径是圆形并且始终绕着圆心运动,那么接下来再分析粒子绕行一个周期各轴向的速度变化。
粒子在X轴方向的运动趋势如图1-290所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P104_16568.jpg?sign=1738821835-NONnthNFEKVbpTMfHB9fyF3etIz3oLDF-0-041c11bb10fa9a7399113cc90403e9b8)
图1-290
根据粒子在X轴方向的速度变化,绘制出粒子在X方向的运动曲线。图1-291表示粒子每旋转一周,X轴方向速度的变化。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P104_16574.jpg?sign=1738821835-o5ST9terczM69AysRCrGYhBOjmwu8TVS-0-a1bfff393b4e483957379aa3c615aa6b)
图1-291
粒子在Y轴方向的运动趋势如图1-292所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P104_16578.jpg?sign=1738821835-5y8NHM4Jh8S9JipmkBlh5jiJaBzPM2qA-0-cec7d67649a549d889baafebd1cfd59a)
图1-292
根据粒子在Y轴方向的速度变化,绘制出粒子在Y方向的运动曲线。图1-293表示粒子每旋转一周,Y轴方向速度的变化。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P104_16582.jpg?sign=1738821835-NMvcIl1gaPuREq8gEMXD5fynqHdIMEtp-0-7f71afdee70dbec0bc4ec7984fd25dce)
图1-293
注意
当前运动曲线表示粒子在Y轴没有速度变化,如果想要加上Y轴方向的速度变化,则需要对Y轴曲线也进行控制。例如,把运动曲线修改为向上的斜线表示Y方向速度逐渐增加。
粒子在Z轴方向的运动趋势如图1-294所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P105_16606.jpg?sign=1738821835-HrdF9REAEXxSaZp42mIi13u1qzGT6fQ8-0-242d84f30b55c16332d88974e3a4eecb)
图1-294
根据粒子在Z轴方向的速度变化,绘制出粒子在Z方向的运动曲线。图1-295表示粒子每旋转一周,Z轴方向速度的变化。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P105_16610.jpg?sign=1738821835-agElAQI5JxY0xfxnZH97UA76jTKpt5Qk-0-c04b4328e6dee9989be084a310c7d0de)
图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=1738821835-IOV564LHyjQvHXt7vZqW5VP9NhB1Edv3-0-05474d53959efc37c50e8a4a0ac07ecf)
图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=1738821835-M3QkcumMqybsIcs30QxVrww15L0ZdZoZ-0-07a0a5fd02612458fcbf94ff35161a90)
图1-297
Step 03接着按照之前的分析结果,将各个轴向的运动曲线依次修改,设置如下。
X轴速度曲线,如图1-298所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P105_16633.jpg?sign=1738821835-KF46Iu4vyleszvTBU6ETIvintXTy30Nj-0-ed1ad300c18f05643322f0c267a85c22)
图1-298
Y轴速度曲线,如图1-299所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P106_16650.jpg?sign=1738821835-jSmwo5V4KTRTMW5rYZLrTx70VJeXOplE-0-9b8ad4473578a35a818b056acdef39d1)
图1-299
Z轴速度曲线,如图1-300所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P106_16654.jpg?sign=1738821835-l9JP529C4JFX8ogXqNt4WmVfMw3PBdl8-0-c11a8d503f9f7594795817e2fed88d9b)
图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=1738821835-GTA1fJIC39wjYFmZhrC3vWqGusaoj9wm-0-8aea0c7d7eea58603ca46b45484ba5b4)
图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=1738821835-m8yAJNNTICRtzpIdaGi6nz69RRSasMvT-0-dd2804294a0c4c50603d9e9202bbad70)
图1-302
从示意图中可以看出,粒子速度的主要影响轴是Y轴,不过在实际制作中为了增加粒子的随机效果,通常也会在X、Z轴加入一些速度变化。
观察得出每个粒子在各轴向的速度运动曲线如图1-303所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P107_16697.jpg?sign=1738821835-dICl3Wt4tgwOgnJocp2qfDjHxMfwgTsF-0-508af199598753bf8bebd260258effaa)
图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=1738821835-5XS3WKuaAolXasOOyXVbevPXAdskvk5R-0-ce8df9884a50d95a86e94b52f98e9a97)
图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=1738821835-b27rRbamn0KLkt0e2lH16EoRmNRzJ0Yx-0-e86b416a5ed23fb3a126ee9c55a1ebaf)
图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=1738821835-kSItB2kJWiota07iPNvsJAavudtk3N9K-0-d8f1b453bdc9c7c4b4fbab3d7fa2164a)
图1-306
X轴速度曲线,如图1-307所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P107_16718.jpg?sign=1738821835-cdwPgdmQyUfuLtWhBiWpIxKNAdR8uyO7-0-64403518f9abeed07f61e3a837160fe9)
图1-307
Y轴速度曲线,如图1-308所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P107_16722.jpg?sign=1738821835-4HOxaNzOuBS3rBKlACpgcm8FtFJPB4hB-0-7c9fc95a7303b2ecd62e2d3c7e83b6c9)
图1-308
Z轴速度曲线,如图1-309所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P107_16726.jpg?sign=1738821835-OISNTAPt1ydeScbGIfAd69InOsG1xvIO-0-8a4284f6a2b7c766fbfe4ad67a0c1544)
图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=1738821835-u4USm54LObSwCxJwkrGdpXFHyVvffbtF-0-b3f7719aaa430addcb6a7d21dcc93a02)
图1-310
Step 05修改完成后,单击播放就可以看到粒子运动了,如图1-311所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P108_16756.jpg?sign=1738821835-dIUQjfgLfRLfR9VzHleza1QYxy4XtsPv-0-8943fe1be5fc1d8dd3382be7016c4853)
图1-311
1.3.10.6 粒子初始运动方向被扰乱产生随机效果
粒子初始运动方向统一,随着时间的增加而逐渐偏离原来的运动轨迹。那么这种刚开始运动方向很规律后来变随机的效果要如何实现呢?
以Cone(圆锥体)形状的粒子发射器为例,以下是默认速度与随机扰乱效果图之间的示例,如图1-312所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P108_16761.jpg?sign=1738821835-Bcf2gGGBywCdscnj0ElVgPMGz7VLqWvt-0-35c312aa06f8b726066fc9be437a7c58)
图1-312
从示例图中可以看出,粒子在Start Speed(初始速度)方向时,将会始终依照发射器形状来发射。而随机扰乱效果图中,粒子初始沿着自身速度方向发射,但是在生命周期后半部分发生了扰乱/不规律运动。
通过观察得出各个轴向的速度曲线如图1-313所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P108_16765.jpg?sign=1738821835-AO0TicohAncp53Rks2DiFGaPOTASjMmD-0-41f5dbe8cbfc6d14f414820841f75f34)
图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=1738821835-EgIqjaMTcu9LU5imTUkiVRu8ZpwDAa61-0-62cc1c4989e979a874be866542d161d9)
图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=1738821835-02921SFFehfQljF1BMGnaQvYLxHbfYNJ-0-17fc9c2955522289da4b777901866ccd)
图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=1738821835-bjm9DOF89pNNwz178VYFNjU4lT63sM2w-0-f18187107f59c95838fa8424273e5018)
图1-316
Step 05将Shape(发射器形状)设置为Cone(圆锥体),适当调节Angle(发射角度)及Radius(发射器半径),如图1-317所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P109_16803.jpg?sign=1738821835-ExM3CjBQMaFh97Uk3a5YRZ4DNpuJoCp6-0-0fee261454dd00b8875bdfa12a8071a5)
图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=1738821835-62PAKNCmShEVD2cPAp25F46kB644jbP6-0-0b6113f057897c9e451a8b665c1265da)
图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=1738821835-IOMtGEta3BCMhzg5YVqwIko3Cek9SmHe-0-de0b731254e6dc6cf24e1158f9318b19)
图1-319
Step 08启用Size over Lifetime(粒子生命周期大小),设置动画曲线为粒子大小逐渐消减,如图1-320所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P110_16827.jpg?sign=1738821835-zPMJsZAh8oXcXu9iEUCsD4LJ2pcegQj9-0-644a7b56db43fd22dc8bebd172546013)
图1-320
Step 09设置相关参数后,播放即可,效果如图1-321所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P110_16832.jpg?sign=1738821835-GqRUjKq5nJAWikJ6QnxOhpM62K8Yovcd-0-803ebd86c7d270ac58cd03dcd20dc2a3)
图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=1738821835-vSR2TdclB7rURacqUSQzK0dyr54fyYLQ-0-ce908505b0aef6da6a47783e06ba9af3)
图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=1738821835-aZIHl7Ez4R1595e2u1CwmlJw4ObAIMlR-0-0f71f13007c7abdde5d39ccd9a56fc90)
图1-323
Step 04播放查看后效果。力场控制一般会比直接控制速度曲线效果更加自然,如图1-324所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P110_16853.jpg?sign=1738821835-PsCiiMqorfFOWJCOAZc2bAIi1fWXt4Kk-0-5febce2d75d7705ec0896420ca36817f)
图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=1738821835-wgWipFF9eb7C6pwS6smYCBXnmKORRLbW-0-20feb14f291692de0e2d0eaa6f026a80)
图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=1738821835-K3xhPUkkIk7RVuwd3UVQ05A0kMFyZbVv-0-7c6663bfd60e074b0a52701ba9aa5221)
图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=1738821835-oj6tVxFolegvB346SCV14Sf1fXZcQnYM-0-8235a39b8b27620cb2962fecd662a663)
图1-327
Step 04发射器形状Shape切换为Cone(圆锥形),适当调节发射Angle(角度)及Radius(半径),如图1-328所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P111_16888.jpg?sign=1738821835-h5GJ00fZ5nhtKj36RzGURDOmwcYUnEET-0-65b636bfc70097cc67d62ab2b9118ef4)
图1-328
Step 05启用Limit Velocity over Lifetime(生命周期限速),设置如图1-329所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P111_16893.jpg?sign=1738821835-cv7eWRc923Eho58aAA86kSVXv7FCrArk-0-d7ebe7435753eb0fa5898003832ef777)
图1-329
Step 06开启Color over Lifetime(生命周期颜色),调节火花的颜色过渡,如图1-330所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P111_16898.jpg?sign=1738821835-eynX6LWqRL2nynv7wNFKFlfRjvBGYGI9-0-ad217dd46a72f7c286c6372e6bfd2302)
图1-330
颜色过渡设置如图1-331所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P111_16902.jpg?sign=1738821835-NcuzksIeUD415KNiR2TylEbEm8SZq8t5-0-e97ec09cebf026984426f772a103a595)
图1-331
Step 07启用Size over Lifetime(粒子生命周期大小),调节粒子大小渐变消失,如图1-332所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P111_16907.jpg?sign=1738821835-wR3pcp5AF2cOGi7CUCa8J2gbRl2ZmZJo-0-88c9bfe7aacf10369ade97bf480cf59e)
图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=1738821835-w7WVmnR1Kemz0G43DeFy5sVg4xvc4WYG-0-c2d560ae10a3002111090e1bf4898da8)
图1-333
Step 09最后单击播放,就可以看到火星飞溅并逐渐减速消失的效果了,如图1-334所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P112_37184.jpg?sign=1738821835-C0EqrRIenYp3ajeJLakfr3bPJnPcptJa-0-f25f55bd065356cdc13f3158d404fa49)
图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=1738821835-8dQZdnBLuAGB6l8F0iJkuEAyOyIvbkfH-0-35132f19d1288e9cae4a7986e93e8ec6)
图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=1738821835-vbSklV9DqdWsRDHGsDUqVkjZ5BIJsqCp-0-ae234ef43eb2e4560ed3d694459cd783)
图1-336
Step 03适当调整发射速率,如图1-337所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P112_16953.jpg?sign=1738821835-WN5PpVLrgLzISLoVFx1LwxTJyQQHQ7fU-0-12c4cd64e6d4f5079b377bb067a2a887)
图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=1738821835-C26BAf3rgAyvR5tMCfkvcoPAqYFQQIcA-0-44e8615f73e005ecaffff0672089208c)
图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=1738821835-Fh5VPHdpn9cpUsER2umcr78FS3M7Wwv6-0-d1d8a2d1587d1bfb0d9b3153ec264c3f)
图1-339
Step 06将粒子系统设置赋予树叶材质纹理,播放效果如图1-340所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P113_16977.jpg?sign=1738821835-87SBwUWgyJlAO41eAJHTTqCp9M9ALcFf-0-5f28776a91645ad4e1a4acdab96df15a)
图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=1738821835-dS7fbWQMAlKULk05AoZ3zzI1ZMhi41mD-0-8d0d495cbefdd05be9b797fac9c63d94)
图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=1738821835-75L76Umo3u5Z0SFdQn9rOdPlAXnHEGIX-0-325eca977860b4b0bad30fc8ce91365a)
图1-342
Step 03开启Rotation over Lifetime(生命周期旋转),设置一个自旋转速度,如图1-343所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P114_17010.jpg?sign=1738821835-FgKhrCyrcJ7hLcqg2Xi7bZIcjOEBbzJ4-0-fca8f711414fe46ce818a18c051816a2)
图1-343
Step 04设置粒子渲染类型为Mesh(网格体),选取在3ds Max中制作的平面网格,如图1-344所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P114_17015.jpg?sign=1738821835-Zl39HCKeYoTPJiwHmSRWUOlEbcZLr7I6-0-b2cd330d7ddbef30d8d5db46ad8c2208)
图1-344
Step 05赋予粒子系统一张贴图纹理,并播放,如图1-345所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P114_17020.jpg?sign=1738821835-YJUapWgpf0Nv5FSqKYznC3EljdRILyjE-0-73b00aa857670640f838f3b244a1fc86)
图1-345
观察发现当前网格体的旋转方向并不正确。
那么要如何才能让平面网格沿着Y轴旋转呢?
其实很简单,默认粒子系统的发射器形状为Cone(圆锥体),只需取消粒子发射器形状,再次播放粒子系统就可以正确旋转了。
Step 06取消粒子系统的发射器形状,如图1-346所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P114_17025.jpg?sign=1738821835-FZAVZgE2pIZWtXscgbNlfyY98lbbytYx-0-2304284b4e31bd92e160cfa08a31e561)
图1-346
Step 07最后效果如图1-347所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P114_17029.jpg?sign=1738821835-ACTI1KLynqbcP278PcrkFv9QnIjNx6zJ-0-8ba01304ecd0f3571b827d2b0c549e3e)
图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=1738821835-uoBdVjifYRhQpz1am4S98FAHp6SgY3sK-0-b5a0efafce6494e03357568ef09cd90b)
图1-348
Step 02将粒子系统Rate(发射速率)设置为0,开启Bursts(爆发),第0秒发射一个粒子,如图1-349所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P115_17064.jpg?sign=1738821835-olndWBCiGXCvJ5DVSGEzcQC8IummZ40t-0-e3ebbc2b98ccffe019a10a255cf4af6a)
图1-349
Step 03取消Shape(发射器形状),如图1-350所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P115_17068.jpg?sign=1738821835-mIWF2GIYxl8fWq6W49wtXKFzmCzrfJrV-0-14d6c99d06f3ffa6aa2f246f90f2a736)
图1-350
Step 04将粒子渲染类型Render Mode(渲染模式)设置为Mesh(网格体),单击后面的圆点(如图1-351所示),拾取一个模型体(也可以导入一个自定义模型体)。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P115_17073.jpg?sign=1738821835-L4HUboYayrn9r8pKOS7EfFsiGpdOjZlY-0-2a2a454f61e00c7168a3aa1c65e5a601)
图1-351
Step 05赋予粒子系统材质,开启Texture Sheet Animation(纹理篇动画)功能,根据贴图排布来设置Tiles(平铺分布)数值。
图1-352所示为示例贴图及选项设置。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P115_17077.jpg?sign=1738821835-u9arYF7CguCCN7IyEF3TYttJhgsuEySo-0-841833c350a3b8eb594ecca3e88d9100)
图1-352
Step 06设置完成后,播放粒子系统就可以查看效果了,如图1-353所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P116_17093.jpg?sign=1738821835-K2LgBDHwnrttwsH8XgKelDZRblKd6JFF-0-403425fd024d7444836e08a1c244b1de)
图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=1738821835-xzwaZEEHpRNFyZNPK09NucAR0azfGoqX-0-20d6d8691730d6fdd335d972ad65c0f6)
图1-354
全选后发现,虽然在Inspector(检测视图)中可以修改粒子系统的Transform(变换)参数,但是粒子本身的其他属性参数却被隐藏无法修改。
Step 02单击Inspector(检测视图)右上角,切换编辑模式为Debug(调试模式),操作如图1-355所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P116_17111.jpg?sign=1738821835-1GUu1xtxPPCXTWu2UQ7sQJ05iSBnC67Z-0-9fdf776187530978e631ed65b1460917)
图1-355
切换为Debug(调试模式)后,界面显示如图1-356所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P116_17115.jpg?sign=1738821835-mFrwtDj1Bd73zu6ecPvT4AtByf4Es17m-0-d5afa5c62dddea6874d3f27f29928cbd)
图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=1738821835-TeF3MJ9d5PuYiEe6GARTDQHiDpRVhK9z-0-11dae3a3841020d45b57c9c0cb8db0e7)
图1-357
Step 04把模式切换回Normal(常规模式)并查看粒子系统相关属性,如图1-358所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P117_17146.jpg?sign=1738821835-Y7fGEEDUZWRRh1u5oKAkrjjBg0lXqCmF-0-30caf42244c5a4b8c2dbaef61167ecb3)
图1-358
Step 05检查发现所有粒子系统中的Max Particles(最大数量)都被统一设置为10(如图1-359所示)。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P117_17150.jpg?sign=1738821835-qrT7CaNO6D7CsEqCesOjcXYDuerP75Kg-0-0e480c661eb3ea53d8c6b2e750ce6943)
图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=1738821835-DqvcvsDMkMdOGwuqC16vLhwPMPXYbdyK-0-01a36c2049b9bd6aa328c17d615cd393)
图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=1738821835-D1qQbnXvzNzM5tOsh9m9NoQve6YbIjAm-0-12424c38fdea6a0c442a7243635f31d9)
图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=1738821835-jUD1PAzi6OVBVI5cbvgkNWMALp5wm8K1-0-a7b3b1bbba1d6b27097fbc8eebd47e5d)
图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=1738821835-ZiqIam6gAeDmgsAOov9OrpNRIxfb91nS-0-7eda765e568f69b6751bbd0c3c38b7ee)
图1-363
注意
勾选Is Active(激活)选项是开启激活,去除勾选Is Active(激活)选项是关闭激活。
Step 04接下来再添加一个新的关键点来设置停止播放的持续时间,如图1-364所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P118_17220.jpg?sign=1738821835-crUBs3bGBes4b58in1abyOiT3j4qGNvK-0-9980ba3cc2590ff64536a7e314b72077)
图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=1738821835-iIBSX5JshdbvcvdnQ4GuFm97nuPt0Yu0-0-184cb7a94bacfbf1924407df842a8d61)
图1-365
Step 03接下来调节Emission Rate(发射速率)曲线如图1-366所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P119_17260.jpg?sign=1738821835-RJwA5xPhMfCKEO2yhYxHbIc7dYGPBMwH-0-f43f6fce42120949b52b76721a3e5ab2)
图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=1738821835-vXehdlgAyta3GbW33MDP5SjYFBx765oz-0-d2e47375d9c6a746eb4c346526eeee6a)
图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=1738821835-oG6QJdaYyBjM66874apKN02FycmxhMKF-0-edbe7253f8d31cecf71532a8fca80320)
图1-368
开启Bursts(爆发性发射)第0秒发射一颗粒子,如图1-369所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P120_17315.jpg?sign=1738821835-PtW0D0qIioWE00C4ZCDLW7q7s7rOvBJR-0-998be99237dee3772a06faa0b86f492a)
图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=1738821835-VK9k655TArXgM5vLrQ9NnaTxdsNHEO2A-0-a721c7d56a90962e27eefee48d983c4c)
图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=1738821835-cfjt4zYt8j6OHtfwSLt2G0v8tCdH13XB-0-149d33efdb4268b324f6e8117ff5119a)
图1-371
Step 05为了方便区分,将这四个子发射器的粒子颜色分别调整为红、黄、蓝、绿,并将这四个子发射器粒子系统的Start Speed(初始速度)设为1,如图1-372所示。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P120_17339.jpg?sign=1738821835-sZZ6NCz36SeyvWjdfEwF64X5Ih1Kcwh4-0-03d030191f603d6537e4e2e858c4f144)
图1-372
Step 06最后运行游戏,单击Simulate(播放粒子系统),在场景中拖曳特效根级别。
注意
运行游戏后,需要单击Simulate(播放粒子系统)(如图1-373所示)才能播放其拖尾粒子效果。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P121_17366.jpg?sign=1738821835-7vuTrUD5O1s2FdCT5zwKTK065Wg5KJXH-0-621bfaf5d4fc228eb1b65da61298c027)
图1-373
观察发现,拖曳后产生了粒子拖尾(如图1-374所示)。
![](https://epubservercos.yuewen.com/843459/15056703305212106/epubprivate/OEBPS/Images/Figure-P121_17370.jpg?sign=1738821835-71OI4IoccOT1YVJXaYpmrWK9PX30vvOZ-0-887f1037e606ab1c1b90fa70d8c8c7a1)
图1-374
注意
通过使用该方法可以任意增加SubEmitters(子发射器)数量,但为了效率考虑,建议不要添加过多。