下载 App
《风织雨》开发者日志②:会被拨散的云,背后是一张水分地图
修改于昨天 04:563 浏览
在《风织雨》里,你可以推动一片云,也可以只拨动它的一侧。风持续作用时,云会被拉长;把空气往一起收,它又可能变得更厚。
这一篇想聊聊这片云的做法,以及为了让它看起来、点起来都像同一片天气,制作中处理过的几个问题。
云的轮廓,会跟着水分变化
游戏里的云由实时数据生成。地图上不同位置有多少水汽、多少云水,风把它们搬到了哪里,都会影响画面。
云水稀少的位置形成薄边,水分集中的地方鼓起来,再用珍珠白和几层灰蓝表现厚薄与明暗。因此,云不需要预先准备一张“被吹长”的图片;水分移动后,显示出的形状也会改变。
程序负责计算天气,shader负责将这些数据画成有厚度的云。这里采用了适合小型游戏的简化规则,方便玩家观察和干预。

看见的地方,也应该能点中
一片云可以变形以后,鼠标操作也需要跟上。
按下鼠标时,游戏沿视线寻找可见的云。选中后,这一笔会使用固定高度的水平参考面,让拖动尽量稳定。否则,鼠标稍微挪动就可能在不同高度间跳转,实际推动的位置也会变得难以判断。
拾取和显示共用云的形状定义,是为了让“我正在推这里”和画面上的变化尽量一致。
雨,应该从云下面落下来
之前有一版出现过雨线浮在云面上的问题。对于俯视画面,这个错位很显眼,看起来像雨从云顶开始下。
后续把雨线起点改为根据实际云形寻找云底,再处理它与云的遮挡关系。地面上的雨区提示也读取真正落地的雨量,不直接照搬云的轮廓。
这样,玩家需要判断哪里正在受雨时,可以打开天气提示,看看地面上淡蓝色的覆盖,而不只凭头顶那片云猜测。
不让网格和地图边界抢走注意力
制作中还遇到过两种很出戏的形状:水汽收拢后出现方形边缘,以及云被推到地图边缘后堆成一堵墙。
前者通过调整显示重建,让相邻数据形成更圆润的表面;后者改为在岛屿外围留出海域缓冲,让天气能够继续外流并逐渐消散。水分的显示可以更平滑,实际数量仍要有记录,不能因为画面处理就多出一团水。
目前进展
可变形的云、对应的拾取、云底雨线和开放天气边界,都已进入当前Demo。
还在打磨的地方
密集云雨仍有性能问题,当前画面也需要在不同机器上继续检查。
接下来准备做什么
结合已有压力记录定位开销,继续核对云形、操作位置和实际落雨是否一致。











