2D俯视角场景中制作简易的天气系统
在unity3d中制作俯视角2d风格的场景,并且搭配刮风下雨的天气系统,可以营造出一个很生动的场景。
以前做过一个战争策略游戏,玩法基本上都在地图上展现。于是把天气系统也加到玩法里去,例如刮风下雨可以影响角色的速度,下雪会冻住角色。
以下是Demo,可点击右上角的按钮切换各种天气效果。
首先我做了一个卡通风格的地图,视角是3D带透视的,并且加了景深模糊和Bloom,很有桌面小玩具的感觉。
然后就是加各种天气效果。卡通风格不追求写实,可以通过简单的粒子特效来营造出天气变化的感觉。玩家感受的是气氛。我选用了几种常见的天气效果:
- 晴天阴天:分了4个等级(晴天,多云,阴天,乌云密布)。我加了个乌云影子移动的效果,是通过一张贴紧地面的滚动贴图实现的。
- 刮风:用粒子实现,风速从小到大分4个等级,并且可随机改编风的方向。风的效果也要配套显示在场景对象上,例如树木摇晃幅度越来越大,这个用shader实现,调整树叶都懂的速率。
- 下雨和下雪:用粒子实现,分了4个降水量等级。雨雪的方向跟随风的方向。可搭配屏幕特效,例如雨点打在屏幕上,或者下雪屏幕结霜(这我目前没做)。
- 打雷:闪电效果用单次爆发的粒子实现,闪光照亮屏幕边缘,同时让屏幕变暗,搭配Bloom效果,瞬间的高亮度对比可营造出闪电效果。后期可配上音效。
以上粒子效果都放在camera的节点下,因为只要眼前看得见效果就OK。
然后写代码控制天气变化。我把以上几种天气变化都拆开做,这样的好处是可以自由组合天气效果,例如刮风下雨乌云密布和闪电一起使用,很带感。