新灯光系统及美术协同工具LookDevHelper (软件作品)

在我开始做这个项目之前,灯光系统已经存在了很长时间,但在性能、易用性、可维护性和扩展性方面存在很多问题,美术对其的抱怨也是显而易见的。随着项目的不断发展,旧有的灯光系统更是逐渐暴露出一些限制,无法满足新的业务需求。
因此,我重新设计和实现一个全新的灯光系统,并且开发一个协同美术工具LookDevHelper来配合使用,以提升灯光系统的性能、可维护性和扩展性,同时也为美术提供更好的工具支持。

新灯光系统(LightSystem + 协同美术工具LookDevHelper v1.3)。
它不仅仅只是一个兼容过去所有功能的灯光系统,是在旧有灯光系统上,重新讨论,思考,并根据业务需求整合并搭建起来的全新的美术工作流程 + 更具拓展性的新灯光系统及扩展框架。

美术编辑器端数据和包体数据/效果同步
美术编辑器端数据和包体数据/效果同步
简洁地灯光数据版本管理
简洁地灯光数据版本管理

新系统相比于旧系统的主要优化点如下:

  1. 代码逻辑优化: 蓝图代码节点数量下降95%,资产依赖从100多个简化到不到10个。C++封装/复用固定逻辑,实现更优雅,可维护性提高。
  2. 超强的扩展性:不再限制所设置灯光类型、种类。不再限制单个主播所拥有的风格类型、数量、名字,数据表格支持横向纵向扩展。支持任意数量的Sequence配置。方便定制灯光,功能不再限制艺术家表达(之前是逻辑强制锁定)。
  3. 支持网络同步,所有客户端效果统一(之前不支持)。
  4. 维护中心化数据表格:只要灯光系统的数据上有修改,改了哪里可以快速定位(之前几乎无法定位),且方便使用脚本工具对Json批量修改。另外包体和编辑器下同一份参数(之前是多份数据),减少人工对齐成本。
  5. 更方便的效果预览:支持Editor模式下监看包体效果,程序端实现Runtime下和Editor下监看效果统一(之前不支持包括过渡切换,sequence预览等,只支持静态预览)。
  6. 美术可维护:每一个生成的灯体,都是独立的灯光Actor(非蓝图),符合UE Actor管理体系逻辑,美术可维护。
  7. 更好的标签管理:可以将不同灯光自定义分类,方便针对不同语义的灯光单独设置效果和逻辑。
  8. 支持旧数据迁移:考虑到协同老数据,做了数个迁移工具,方便在过渡期快速迁移旧有数据。
    等等。
DT表数据迁移工具用于转换老数据
DT表数据迁移工具用于转换老数据
一套自定义的Tags管理逻辑
一套自定义的Tags管理逻辑

整个项目由我一个在约18个人天内完成,包括所有的项目的需求沟通、旧有项目分析与新功能实现,项目总代码量超过3万行,还包括部分模型、材质资产用于协同使用,其中大约90%的代码由AI + MCP完成,我主要负责架构、逻辑梳理、需求整理、数据结构设计等相关内容,并把关AI生成的代码质量,进行必要的修改和优化。

这个项目的完成极大地提升了灯光系统的性能、可维护性和扩展性,为未来的灯光功能开发奠定了坚实的基础。