首页 Unity粒子系统学习笔记

Unity粒子系统学习笔记

举报
开通vip

Unity粒子系统学习笔记Unity粒子系统基本介绍及应用粒子系统介绍:在我们的游戏经常需要一些很炫丽的场景来是游戏更加丰满,比如烟雾、爆炸、火焰等。这些效果的实现用通常的模型是很难实现或者即使实现也很牵强,做不到很逼真,整个游戏的质量自然也就大打折扣。然而这些工作正是我们的粒子系统所擅长的。Unity最新的粒子系统被命名为Shuriken,即忍者飞镖。Unity中我们可以通过Compentent->Effects->ParticleSystem找到它。但我们用到的更多的还是旧版的粒子系统(Legacyparticles),我们可以通过Co...

Unity粒子系统学习笔记
Unity粒子系统基本介绍及应用粒子系统介绍:在我们的游戏经常需要一些很炫丽的场景来是游戏更加丰满,比如烟雾、爆炸、火焰等。这些效果的实现用通常的模型是很难实现或者即使实现也很牵强,做不到很逼真,整个游戏的质量自然也就大打折扣。然而这些工作正是我们的粒子系统所擅长的。Unity最新的粒子系统被命名为Shuriken,即忍者飞镖。Unity中我们可以通过Compentent->Effects->ParticleSystem找到它。但我们用到的更多的还是旧版的粒子系统(Legacyparticles),我们可以通过Compentent->Effects->Legacyparticles找到它。现在我们开始介绍旧版粒子系统。旧版粒子系统:旧版粒子系统中一个完整的粒子特效是由三个组件共同作用完成的:-粒子发射器(ParticleEmitter)用于产生粒子,控制粒子的生命周期、速度、以及范围-粒子动画(ParticleAnimator)用于定义粒子在其生命周期内的行为-粒子渲染(ParticleRenderer)控制粒子渲染的各项属性下面我们就来详细介绍下这三个组件:粒子发射器:Unity中有两种粒子发射器,分别是椭圆粒子发射器(EllipsoidParticleEmitter)和网格粒子发射器(MeshParticleEmitter)。椭圆粒子发射器通常用于灰尘、烟雾以及其他环境因素。之所以称其为椭圆粒子发射器是因为它只在一个椭圆空间内产生粒子。网格粒子发射器是直接绑定在一个3D网格上的,可以随着网格的动画而改变。粒子动画:为了表现持续的动态的粒子特效,粒子都有一个生命周期,生命完成后粒子将自动销毁。我们还可以在粒子动画师中设置粒子在其生命周期内的颜色渐变,这使得粒子特效更加逼真。粒子渲染:粒子渲染器定义了单个粒子的视觉外观。粒子其实是平面的精灵,是一张2D的图片,Unity通过billboarding技术是其永远面向摄像机渲染,所以呈现在我们面前的是个3D的效果。一个完整的粒子系统的Inspector界面以及每个属性的中文解释如下:通过改变这些参数以及添加合适的Material就可以做出理想的粒子特效。接下来我们介绍粒子系统的一个非常重要的应用—爆炸。爆炸粒子特效:爆炸在游戏中的作用无需多说,是非常重要的。好的爆炸效果可以给游戏增色不少。我现在介绍的是Detonator插件,其中包含很多个爆炸特效,当然我们也可以改变起参数使其成为我们自己特有的爆炸特效。我们可以新建一个 工程 路基工程安全技术交底工程项目施工成本控制工程量增项单年度零星工程技术标正投影法基本原理 ,然后导入我们的Detonator.unitypackage,打开Detonator-TestWall,开始游戏就可以点击鼠标就可以在相对应的位置上产生爆炸。我们可以点击Detonator-Insanity来切换不同的爆炸效果,RebuildWall可以重建墙,CameraFar和CameraNear可以切换摄像机位置,TimeScale可以控制爆炸持续的时间标度,DetailLevel可以控制爆炸的视觉规模。下面是一个爆炸的一个截图。接下来我们来研究爆炸的具体实现。在Detonator中,每个爆炸都是由若干个独立的粒子特效组成,他们分别表现出不同的效果,有的是火球,有的是烟雾,有的是的声音等等。比如Detonator-TestWall中的Detonator-MushroomCloud,在Project中Detonator->PrefabExample目录下点击Detonator-MushroomCloud,Inspector中即显示其结构如下图:其中Detonator(Script)是基本的爆炸,接下来的4个DetonatorFireball(Script)是爆炸时的火球,DetonatorShockwave(Script)是爆炸时的冲击波,DetonatorSpark(Script)是爆炸时的火花,DetonatorGlow(Script)是爆炸时的灼热效果,DetonatorSmoke(Script)是爆炸时的烟雾,DetonatorCloudRing(Script)是爆炸时的云环,DetonatorForce(Script)是爆炸对外界产生的力。这些Script都控制一个粒子特效,具体实现细节可以参阅其源代码,这里不多介绍了。接下来我们详细介绍这几个Script的效果以及其各个参数的意义。Detonator各参数意义如下:Size:爆炸范围的大小Color:爆炸的颜色Duration:爆炸持续的时间Detail:不详UpwardsBias:向上偏量DestroyTime:摧毁时间UseWorldSpace:是否使用世界空间Direction:不详*Material:各种材质(如果不添加会在运行时自动添加默认Material)AutoCreateFireball:是否自动创建火球AutoCreateSparks:是否自动创建火星AutoCreateShockwave:是否自动创建冲击波AutoCreateSmoke:是否自动创建烟雾AutoCreateGlow:是否自动创建灼热效果AutoCreateLight:是否自动创建灯光AutoCreateForce:是否使爆炸对外有作用力AutoCreateHeatwave:是否自动创建热浪Detonator其实就是一个最基本的爆炸,通过自动创建火球烟雾等粒子特效来表现爆炸,如果我们不勾选全部AutoCreate选项,那么它自生没有任何效果。当然我们也可以通过添加脚本来取代AutoCreate,如果需要,你可以添加多个脚本,比如多个火球,多个灯光来达到你所期待的效果。DetonatorBurstEmitter为Detonator的每个组件创建粒子发射其、粒子动画、粒子渲染。它是每个Detonator组件运行的基础。  DetonatorCloudRing各参数的意义:On:Detonator组件中定义的参数,表示是否使此组件起作用(默认为true)。DetonatorControlled:Detonator组件中定义的参数,是否接受Detonator的控制(默认为true)。Size:云环的大小ExplodeDelayMin:Detonator组件中定义的参数,爆炸最小延迟值(默认为0,无延迟)。ExplodeDelayMax:Detonator组件中定义的参数,爆炸最大延迟值(默认为0,无延迟)。Duration:Detonator组件中定义的参数,持续时间。Detail:Detonator组件中定义的参数,不详。Color:Detonator组件中定义的参数,粒子颜色。LocalPosition:Detonator组件中定义的参数,局部位置,3围向量,默认为0。Force:Detonator组件中定义的参数,产生的力,3围向量,默认为0。Velocity:Detonator组件中定义的参数,粒子的速度,3围向量,默认为0。DetailThreshold:Detonator组件中定义的参数,Detail临界值。以上参数都是在Detonator组件中定义,所有Detonator组件都有这些参数,意义也都一样。所有其他组件也都是在有Detonator的前提下才能正常工作的。所以每个组件的源代码都会有这一句。接下来我们值介绍每个组件特殊的部分。DetonatorFireball各参数的意义:FireballAMaterial:火球A的材质。FireballBMaterial:火球B的材质。FireShadowMaterial:火球阴影的材质。DrawFireballA:是否描绘火球A。DrawFireballB:是否描绘火球B。DrawFireShadow:是否描绘火球影音。火球材质如果没有自定义添加则会自动添加默认材质,fireShadowMaterial则会随机从smokeAMaterial和smokeBMaterial中选择一个添加。DetonatorForce参数意义:Radius:爆炸力作用的半径。Power:爆炸能量的大小。FireObject:点燃的对象。FireObjectLife:点燃对象的持续时间。爆炸力的大小是以爆炸点为球心,Radius为半径的一个球内作用,作用力随着与球心距离的增加而减少,可以形象的变现出爆炸的破坏性。增加或减少Radius可以控制爆炸的范围。Power控制爆炸的能量,可以表现不同规模的爆炸效果。DetonatorGlowDetonatorGlow主要用于表现爆炸时灼热的景象,即爆炸周围红色的区域。其参数与Cloudring基本相同。DetonatorHeatwave参数意义:Zoffset:相对爆炸位置在Z轴上的位移。值越大,热浪位置的Z值越大。Distortion:变形量。HeatwaveMaterial:热浪材质。Light参数意义:Intensity:亮度。Light组件主要用于控制爆炸时的亮度。DetonatorShockwave参数意义:ShockwaveMaterial:冲击波材质。RenderMode:渲染模式。默认为Billboard。Shockwave和Heatwave类似。DetonatorSmoke参数意义:SmokeAMaterial:烟雾A的材质。SmokeAMaterial:烟雾B的材质。DrawSmokeA:是否描绘烟雾A。DrawSmokeB:是否描绘烟雾B。如果没有自定义烟雾材质则自动添加默认材质。DetonatorSound参数意义:NearSounds:近距离音效,点击输入size的大小,然后把声音资源分别拖入。FarSounds:远距离音效,点击输入size的大小,然后把声音资源分别拖入。DistanceThreshold:距离临界值,大于此值则听不到声音。MinVolume:最小音量。MaxVolume:最大音量。RolloffFactor:不详。好的音效可以使爆炸效果更加逼真。注意:NearSounds和FarSounds的Size不能为0,每个音效都必须被分配,否则会报错。DetonatorSparks通过为力量和速度赋值,是变现出火星四溅的效果。DetonatorSpraySprayObject:喷射的对象。Country:喷射对象的数目。StartingRadius:开始半径。MinScale:最小比例。MaxScale:最大比例。注意:SprayObject必须被分配,否则会报错。关于Detonator的各个组件已经介绍完了,现在我们就可以运用这些组件适当的改变参数组合出自己想要的爆炸效果,当然我们也可以在一个爆炸中包含多个同样的组件,比如烟雾,可以造成更浓烟雾的爆炸效果。我们也可以通过延时控制来达到更逼真的效果,比如先爆炸然后才出现烟雾、冲击波等。附: 粒子系统详细介绍 新版粒子系统介绍教程
本文档为【Unity粒子系统学习笔记】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_686908
暂无简介~
格式:doc
大小:27KB
软件:Word
页数:22
分类:
上传时间:2022-08-04
浏览量:5