如何为 CarX Street 创建动态天气系统——来自 CarX Technologies 的专栏
在与App2Top的交流中,CarX Street项目的首席渲染程序员阿列克谢·米苏列夫分享了在赛车模拟器中模拟雨天的经验。
阿列克谢·米苏列夫
动态天气系统是CarX Street设计阶段就有的想法之一。然而,它的实现被推迟了很长时间,因为游戏基础机制和其他系统被优先开发,没有它们无法构建游戏的基础。
当我们终于开始工作时,发现这不仅仅是添加一个独立的雨效果。我们正在创建一个完整的动态天气系统,它能够改变玩家对游戏世界的感知,使熟悉的路线在不同条件和时间下变得截然不同。
从一开始,我们就设定了两个目标:在不显著影响性能的情况下创造高质量的天气效果,并为未来的发展奠定基础,以便将来可以添加新的天气现象。
在早期阶段,我们研究了其他赛车游戏的解决方案,但很快意识到这还不够。为了达到令人信服的效果,我们开始仔细观察在真实情况下雨对周围世界的影响:白天和夜晚,不同的光线和降雨强度。
我们研究了水在不同表面上的行为、反射特性以及在汽车行驶过程中环境的变化感知。
这些观察帮助我们确定了系统的发展方向,并更好地理解了在游戏中体验雨天氛围的关键细节。
参考资料
第一个可用的原型很快就做好了,但几乎立刻我们发现结果并不满意。
单个元素已经开始有效工作:雨在下,水坑出现,反射令人信服。然而,城市看起来“湿润”,但不“雨中”。
寻找正确的氛围成了整个开发过程的主要挑战。
天气的感受并不是通过某一单个效果创建的。场景的感知同时受到光线、云层、反射、声音、表面状态和许多其他细节的影响。只要这些元素中任何一个没有达到整体效果,结果就显得不自然。
不同时间段增加了额外的复杂性。白天和夜晚的同一场雨会产生完全不同的感受。白天,注意力集中在降水和光线变化上,而夜晚,反射如大灯、霓虹灯、橱窗和路灯占据了中心位置。因此,我们需要不断根据不同条件评估天气系统。
早期原型
开发中最复杂的部分之一是镜头上的雨滴。
我们不想止步于简单的动画效果。重要的是要实现自然的雨滴行为,包括它们的大小、移动速度、扩展和汽车速度的影响。
这套系统经历了五次以上的大型迭代。起初,雨滴的行为不令我们满意,随后在高速下的移动表现也出现了问题。团队内部一直在讨论最终结果应该如何。
我们努力在视觉效果和自然行为之间找到平衡。为此,我们数次在雨中驾驶汽车,拍摄视频,研究水在不同速度下玻璃表面的表现。
这些观察没有给我们直接的解决方案,但帮助我们更好地理解水滴运动的特性,成为系统多次改进的基础。
在终版中,雨滴不仅看起来更自然,运动也更加流畅,并且在雨停阳光出现后逐渐干涸。
与此同时,我们还在发展天气系统的其他元素:云层、照明、反射、积水上的波纹、车轮溅起的水花以及声效。
最为有效的解决方案之一居然是那些普通的水坑。虽然它们的实现成本较低,但却显著增强了环境的湿润感,使场景看起来更为生动和真实。
天气系统围绕状态之间的平滑过渡而构建。玩家不会看到条件的瞬间变化。天气逐渐从晴朗变为阴沉,最后变为雨天。
随着这些变化,周围的世界也在改变。随着雨势增强,车轮溅起水花的强度增加,水面波纹增多,照明变化,场景的整体氛围也随之改变。当雨停后,这些过程会缓慢逆转。
在开发过程中,我们不得不放弃一些计划中的方案。例如,最终版本中没有汽车窗户上的雨滴。当时我们对这个功能的实现质量不满意,所以决定单独改进。
另外,汽车上的雨滴动画系统也被推迟。要实现这个功能,需要进一步准备材料并重新设计部分汽车。
然而,正是汽车使我们理解了整个系统缺乏的东西。
在某个时刻,我们在车身的各种材料上加入了水滴,并几乎立刻感受到了不同。在此之前,雨似乎与汽车无关。当与汽车产生互动后,整个场景显得更加完整。这是让我们意识到我们正在朝正确方向前进的时刻之一。
加上水滴前后的汽车
除了概念准备和收集参考资料的阶段,系统开发耗时超过三个月。
主要的技术挑战是反射。在下雨时,世界中湿滑表面的数量急剧增加,同时也增加了渲染系统的负担。特别是在控制台上保持稳定的性能尤为重要。
为此,我们重新审视了许多渲染参数,并在图像质量和性能之间寻找折衷方案。包括优化反射工作和改善场景中各元素的绘制距离。
发布后,对我们来说最愉快的惊喜之一是玩家的反应。我们预计大家的注意力会主要集中在天气系统本身,但许多玩家特别提到了氛围和声效。尤其是在雨夜中驾驶的正面反馈尤为频繁。
这对我们而言证明了主要的努力方向是正确的。
在工作过程中我们得到的主要结论很简单:玩家感受的不是单一的效果,而是整个世界的状态。这就是为什么创建一个动态天气系统比简单地添加雨作为视觉效果要复杂得多。
对于计划在他们的项目中实现类似系统的开发者,我们建议在创建车辆、材料和基础技术阶段就考虑天气特征。这样的系统越早在项目的基础中建立,未来发展的优化和扩展就越容易。
对我们而言,这项工作再次提醒我们,最令人难忘的游戏时刻往往源于许多微小细节。正是这些细节构成了氛围,使得简单的城市行驶可以成为一个独特的回忆。
可以在这里观看游戏中下雨的相关预告片:https://www.youtube.com/watch?v=MApuCmrfYSs








