下载 App
《地下的森林》开发日志#2|一棵真的会长大的树
修改于前天 16:1412 浏览
母树是整个游戏的主角之一,我在它身上花的时间最多。
【一开始的问题】
最早的版本有两个问题,自己试玩时一眼就能看出来:
· 叶子像鳞片,一片片贴在球形的树冠上,很假;
· 所谓"生长",其实是把一棵成树从小放到大,样子一直没变,不像在长。
真实的树是一根根枝条长出来的:先有主干,主干长到一定长度才分枝,枝条上再冒出小枝,最后小枝末端才出芽、展叶、开花。
【怎么实现】
· 树由一层层枝条组成:主干 → 大枝 → 小枝。每根枝条记着自己什么时候开始长、长多快,子枝要等父枝长到一定程度才开始长。
· 枝干是实时生成的管子,随着生长一点点变长、变粗。
· 叶子是一张张小卡片,用 GPU 实例化一次画出几千片;每片叶子有自己的出芽时间,先是小芽,再长大展开,风吹过会轻轻摆动。
· 不同树种用同一套生长规则,只是参数不同:苹果树开粉白的花、结苹果;白桦树皮白、带黑色横纹,长得快;栎树的叶子有圆圆的裂片,会结橡果;柳树长在水边,枝条垂下来。
这里其实也是"涌现":我没有一笔一笔画出每棵树的样子,只写了"什么时候分枝、往哪里长、叶子长在哪"的规则,每颗种子用不同的随机数,长出来的树就各不相同。
【黏土质感和四季】
美术选了黏土童话风:柔和的卡通光影,边缘一圈淡淡的轮廓光,表面带一点手捏的颗粒感。后来又做了四季:春天枝头冒嫩芽,秋天叶子一片片变黄掉下来,冬天枝头积雪。
【手机上的细节】
细枝在手机屏幕上不到一个像素宽,会闪成一颗颗杂点。处理办法是让细线至少有约 1.5 个像素宽,再用抗锯齿把多出来的部分淡掉。远处的树换成更简单的叶片和枝条,近处保持精细,画面看不出差别,手机却轻松很多。
下一篇讲地下:菌丝和水是怎么流动的。













