本篇属于资源制作流程,介绍了一个场景资源查询工具。非常有创意的是,工程师将美术资源数据直接导入到SQL,于是产生了强大的查询能力。此外可以从该文大致了解到巫师3的资源标准(例如超过2k面必须做LOD)。
美术可能会摆出性能很差的东西
在巫师3中,美术的创造力让他们能做出很多性能很差的东西。
美术放了一个模型,只有5%在地面上,其他都放在底下。戏称之为“泰坦尼克”。
有一个鸡肉桶,放了150万面,吐槽“这大概是最贵的鸡肉了”。
巫师3的编辑器能力
从讲座看,巫师3编辑器自由度比较高,结构为世界/图层/实体/组件的层级结构。设计师和美术人员可以编辑和修改资源,编辑组件(按:估计也是ECS系统)。也就是说,可以对导入的实体进行进一步修改,比如修改材质、粒子特效、Shader,组件有光、声音、植被。从渲染管理来看,在场景上可以手工增加碰撞体,合并mesh,增加额外的LOD层级。游戏大概有50万个实体。
解决方案:美术资源数据库
项目做了一个分析工具,可以使用SQL查询美术资源。
工具在每次夜间自动构建时自动调用,将所有美术资源的属性导出为SQL的表创建和插入文本,一次大约2GB,然后创建SQL数据库运行在服务器上,二手手机购买平台然后就可以用SQL来查询了。(作者认为有性能优化空间,且希望能实现本地版本实时看效果)
SQL查询例:
该工具客户端界面如下。上方可以输入SQL语句,如果对语句满意的话可以保存。左侧是已经保存好的查询,右侧为搜索结果列表。中间的地图可以显示查询到物件的位置,以及大小。如果你点击地图上的物件的话,你能直接传送过去看现场。地图可以存为4k的大图。
此外还有一些预制的地图分析,包括:
- 顶点密度地图
- 植被过密地图
列表通过google api自动导出到Google Doc,然后每个周一都通过google sheet,自动导出几个重要指标表。这样,项目组可以指派一部分开发人员作为突击队,按主题,一个主题一个主题修复问题。
实际使用效果
揪出很多故障
- 一个Layer标记为地下、开启阴影的灯,直径为4公里
- 地下有200个左右带骨骼动画的悬空弓,每个都有900米的视野距离
- 发现了场景中的测试资源
- 发现了25万面的船
- 发现超过200个2000面以上的模型没有LOD(按:所以他们基本上所有模型都要做LOD)
- 发现在一个32平米的区域内(按:疑笔误为边长32米)有10万个草,反馈后确认是一个程序bug
内部的评价
- 程序和美术都很喜欢用。没有专门的测试员,美术会自己拼巨长巨复杂巨疯狂的SQL语句查询。
- 在地图上可视化显示是非常有用的