粒子系统
引擎内包含了一套完整的粒子系统,让美术人员能够自由创建2D/3D特效,从烟雾、火焰,到游戏中的各类复杂技能。 特效由一个或多个模块化的发射器组成,每个发射器负责一个单一的效果,多个发射器组成最终的复杂效果。 每个发射器由多个模块组成,有的模块负责创建粒子,有的模块影响粒子,包括改变粒子的位置、颜色、速度等。
1. 粒子的制作
MagicCube提供了特效编辑器用于特效资源的制作。详情请参考“粒子编辑器“ 特效编辑器最终生成.fx文件,完整的特效资源由一个.fx文件和其引用的贴图文件组成。
2. 粒子的使用
2.1. 创建粒子
用户可通过创建一个粒子系统类型的Actor来使用特效功能。
local FxActor = world:CreateActor(XEParticleSystemActor.ACTOR_TYPENAME)
FxActor:GetRootComponent():LoadAsset(FileUtils:FilePath(FX_PATH))
2.2. 控制粒子
--播放特效
FxActor:GetRootComponent():PlayParticleSystem()
--停止特效
FxActor:GetRootComponent():StopParticleSystem()
--重启特效
FxActor:GetRootComponent():RestartParticleSystem()
2.3. 注意事项
为了减小批次,建议减少特效中所使用的贴图数量,同时,相邻的发射器尽量使用同一张贴图。 在某些情况下,可以把不同的贴图合到一张大图上,配合SubUV模块让每个发射器使用不同的UV区域,来减少贴图数量。
2.4. 高级使用
特效可在蒙太奇动画或过场动画中使用。详情请参考: “Sequencer编辑器” “蒙太奇编辑器”