首先是关于小地图的实现
为什莫要先要说小地图的实现呢?是因为小地图实现方式目前有两种,一种是自带战争迷雾的,而我们要侧重于第二种,所以提前说明以便区分。
首先第一种,小地图是作为一个相机在人物上方拍摄的,相当于另一个相机,但是是固定的,关于地图上面的图标只需要人物/角色上方多放一个图标即可,而战争迷雾呢,就是场景中实际的体积雾,很简单,有效,但这有个前提。一定是会映射成实际的地图,即非常真实的。
而第二种我们就要采取传统的方式制作,通过实际手绘地图于实际地图的比例做映射,然后计算在地图上的坐标,这部分我不过于详细阐述,油管上有个教程(虽说一股咖喱味,下方参见)
https://www.youtube.com/watch?v=vhpHYhvdRXA&list=PLNTm9yU0zou6xdEqL2QSSfanaZ3KA_vU7
但第二种在地图上放上战争迷雾肯定也不会出来的,所以主要是为了说明这个。
PS:其实我认为这是策划本身对于程序不理解导致的,因为这种战争迷雾的需求的搜打撤游戏,放个相机在顶部实拍确实在各种方面都更适合而且也更方便,而不是说做一个手绘的再去加上战争迷雾。
如何在地图上映射出战争迷雾
不论你使用任何游戏引擎,这部分可能需要一些图形学基础
- 我们要在texture上绘制路径
- 我们要存下路径
- 我们要在UI层面再去遮罩一层战争迷雾
我们首先看1,在texture上实时绘制并读取,所以我们需要可以读写纹理的类型,对于UE里面是RenderTarget,然后会DrawMaterialToRenderTarget,然后我们就在一张纯黑的贴图上绘制一个圆即可,我的意思是通过UE举例,你的引擎可能并不是这个但原理其实是一样的。
那如何实现2呢?我们只需获取到玩家的位置,然后通过玩家位置作为圆心,不断的去绘制这个圆即可。
好了,目前其实已经实现好了,你甚至可以查看下存下来的贴图。
接下来只需要注意一下颜色混合顺序即可,即他的Zorder,记得把他放入最前面。