什么是特效系统?
为了体现出场景中的某些特殊效果,通常会增加一些在现实中不常见的表现。
这些表现包括但不限于:技能特效,场景光影特效,UI表现特效,暴雨沙尘等等,此处省略若干张炫酷的截图…
为什么要有特效系统?
可以说特效是游戏中最常见的效果之一,而且通常可以用更小的代价营造出更好的氛围。例如,强化反馈(UI新手引导特效),增强视觉表现(技能表现),特殊效果表现(boss不同阶段的形态与颜色,植被燃烧消失,景深效果)……
对于当前市面上的大部分应用场景,特效的应用极为广泛。游戏引擎中如果没有一个完善通用的特效系统,就会导致每个项目在运行时都需要手动重新搭建一个适合自己项目的类似系统,或者完全不构建系统,进而造成开发效率的降低。
所以,游戏引擎一定得拥有一个特效系统。
如何设计特效系统?
那么,既然如此重要,就要考虑如何设计一个特效系统,接下来会从四方面说起:容易出现的问题,管理及工具,常见类型,以及绘制时需要考虑的方面。作为简介不会展开详说,仅仅是抛砖引玉,能够了解一些概念,感兴趣的再去详细挖掘,这块的资料还是很多很详细的。
先罗列一些容易出现的问题:
- 难于管理:各中特效是分开的,不方便管理,同时需要在多个小工具之间来回切换。
- 重复管理:每次添加新的玩法时,都需要加入新的固定事件去驱动,同时处理相关逻辑。
- 配置复杂:配置内容随着项目的进行不断添加,造成修改成本增加。
- 难于测试:有些配置还需要到特定的游戏环境里面测试。
所以,一个特效系统,在管理及工具的引入上,至少涵盖一下两部分:
- 统一的分配器
- 统一的编辑器
特效是由多层不同类型的图层组合起来的,这里列出一些常见的类型:
- 粒子特效
- 精灵动画
- 拖尾特效
- billbord
关于绘制,需要考虑以下方面的处理:
- 半透明,少数情况需要不透明
- 基于Alpha混合,基于颜色混合,叠加混合
- 镂空处理
- 色调处理,反色,滤镜效果
- 结合后效的扰动与辉光等效果