开发公司是Campo Santo,只有十几个人(但大多工作多年,很有经验),感觉更像是Indie Game。开发时间两年。
艺术风格
Layers of Colors
天空盒子是procedural的,着色使用了Unity的插件Skybox,来实现image-based lighting。
除了光照有layers以外,fog也是一个非常重要的因素。使用了Stylistic fog,一种additive blend post process,使用了渐变纹理。
使用的插件
SECTR:用于场景构建。
World Streaming
Open world需要适时load/unload场景资源。
使用unload barrier(绿色)和load barrier(粉色),判断玩家是否越过了这些barrier,来unload或者load适当的资源。
场景中设置的两种barrier,人工量挺大的,要找好点。
这种还能用来加载不同load不同的burned version(70天之前是非烧毁的场景,70天之后就是烧毁的场景)。
树
FireWatch里有很多树,Campo Santo当时用的Unity版本是Unity 4.5,而SpeedTree是5.0才引进的,因此他们选择手动建模(4.5版本的Tree Creato just sucks…)。
游戏里所有的树。
左图:Maya中的效果。中间:Unity中的渲染效果。右侧:使用的纹理。
注意,树的底部细节更丰富,包含了更多真正的geometry的结构,这是因为主角其实相对于树涞水很矮,因此下部的细节应该更丰富。
LOD技术
手工制作各种树的LOD,共5个。没有使用LOD cross fading,因为可能会在fading时造成造成更多的draw call。
Alpha Test
离摄像机越远,alpha cutoff的值就越小,让树看起来更膨。很简单的方法来得到想要的效果。
Custom Tree Wind Respond
使用了vertex color + vertex animation,方法简单,但效果非常好。
Terrain
只用了Unity自带的Terrain,使用简单。但是,有一些问题,默认情况下,Unity的terrain textures是top-down projected的,有很多uv streches。
他们避免麻烦的方法,使用石头网格来覆盖,但人工量很大。
另一个是grass的问题,Unity内置的grass很好使用,可以调整大小、颜色等等,但是性能有问题。小心Detail Map的Resolution。
还有就是Unity Terrain的tessellation问题,他们关闭了terrain的shadow casting,然后使用自己自定义的shadow casting mesh。