【转】为地形添加花草树木
原文地址:http://huangxuyang.cn/archives/21
上一篇笔记记录了如何在引擎中建立一个地形,并赋予其山脉、道路、还有光照。并利用Unity内置的素材包,创建一个第一人称控制器来漫游整个游戏场景。本篇将继续介绍地形相关要点,为游戏场景添加地形细节,即那些花花草草。最后再介绍一个官方地形工具的使用,给山脉做一下“美容”。
选中层次面板中的Terrain对象,检视面板中就出现了熟悉的地形工具栏。这次使用的是第六个“地形细节画刷”工具。其实这个工具跟第四个“地形画刷”工具很类似,只要点击”Edit Details(编辑细节)→Add Detail(添加细节纹理)”,在弹出的对话框中添加对应的细节纹理,之后按老方法将细节涂抹到地形上就可以了。同样也能添加多种细节纹理,让地形显得更丰富一些。
简单起见我只添加了Unity自带素材包里的两种草皮细节纹理,分别是Grass和Grass2。选中其中任意一个纹理,就可以像地形画刷一样在地形上绘制草地了,并且可以按住Shift删除已涂抹到地形上的草地。设置参数也很简单,用“Brush Size”调整画刷大小,用“Opacity”和“Target Strength”调整每次绘制草皮的密度。
有点要注意的是,如果设计视图里的视野太远,则会导致看不到绘制上去的地形细节,此时必须拉近视野。但是有时候的确需要宏观地绘制草皮,这个问题目前还困扰着笔者,如果你有相应的解决方案,欢迎留言指正。
第五个工具用于放置树木,使用方式大同小异,添加树木然后绘制即可,就不赘述了。不过添加树木对话框中有个“Bend Factor(弯曲参数)”,表示树木收到风力影响时的弯曲程度,可以按默认设置。另外树木工具的参数比其他工具多了几项,下面罗列一下详细说明。
- Brush Size:画刷大小 之前打过很多次交道了,用于控制放置树木时画刷的大小。
- Tree Density/Width/Height:树木密度/宽度/高度 顾名思义,他们决定了放置树木时树木的宽度、高度,以及树木之间的密度。
- Color Varation:颜色变量 这个值越大,每个树的颜色差别就越大。
- Varation:变量 同样是变量,只不过这个用来控制每棵树的宽度、高度差别比率。
经过这么一折腾,只剩地形工具栏最后一个按钮啦,点进去乍一看参数还蛮多@_@。不过这点小菜已经无法阻止我们探索的脚步了~且听我细细道来:
Base Terrain(基础地形设置)
- Pixel Error(地形像素容差) 这个容差的值越小,生成的地形就越平滑。如果把镜头对着山峰,把它从默认的5拖动到最大,可以发现山峰会出现明显的棱角。
- Base Map Dist.(地图贴图距离) 为了减少性能消耗,在镜头远处的地形贴图看起来会不清晰。调整这个距离可以让该范围内的地形贴图不做精简。
- Cast shadows(是否产生影子) 勾选这个选项可以让地形产生影子,但试了下貌似没反应-_-。
Tree&Detail Object(树木与细节对象设置)
- Draw(是否绘制地形细节) 如果取消这个选项,地形细节将全部都不显示,花草树木什么的都看不见啦。
- Detail Distance(细节距离) 当地形细节物体离镜头超过这个距离时,就不会被绘制在屏幕上。
- Detail Density(细节密度) 默认为1,如果把这个值调小,过密的地形细节将会不被绘制。比如用地形画刷涂一坨的草,可能显示的就只有几根。
- Tree Distance(树木距离) 类似细节距离,超过这个距离的树木不会被绘制在屏幕上。
- Billboard Start(公告板起始?)
- Fade Length(渐隐长度)
- Max Mash Trees(最大树木网格数) 好吧,这三个实在没搞清楚是干嘛用的,度娘谷歌也不告诉我。
Wind Settings(风力设置)
- Speed(风速) 亲自动手测试运行过游戏的同学肯定会发现,刷上去的草皮是会有随风波动的效果的,调节这个参数可以影响草摇动的速度。
- Size(大小)
- Bending(弯曲程度) 其实就是草摆动的幅度。
- Grass Tint(草皮染色) 这个功能挺有意思的,如果你观察过田野或者草原,一定会发现当清风吹拂的时候,植物会高低起伏,就好像海浪一样。并且摇曳的花草会在两种颜色中不断变换。修改这个参数,可以让草地的颜色随着摇摆而变化,具体的感觉上还是有点难以形容,可以手动尝试一下:)
呼,总算把地形工具写完了,有几项参数不是很明白,希望在之后的练习中能逐渐理解。如果看官明白其中要理,还望指点一二,不要“微微一笑”才好^_^。随着更深入的学习,游戏里的世界已经慢慢变得丰富多彩了,待下一章再来记录一下天空盒和镜头光晕的使用。