图1
图2)3D碰撞网格图(红色为不可走区域,黄色为边界块,蓝色为可行走区域)
图3)生成碰撞平滑边界(图中白色块为边界)
由网格生成的碰撞边界,存在锯齿,当角色受到阻挡处于90度内角凹陷区那么就会被卡住,影响游戏手感,我采用一种判断周围网格的障碍情况自动生成平滑边界的方法,如图1所示,红色块为障碍,黄色块为边界块,蓝色为通行块,通过计算黄色块周围红色块的分布可以获得图中的平滑边界(绿线),图中一共计算了4种边界障碍分布情况,图中分别用数字标示,例如数字为1的块右边1个或3个相邻网格存在障碍,那么边界为竖直并偏向右边,数字为4的块在上,右上,右边存在障碍,生成的边界为左上到右下的一条斜线并略微偏向左下,等等,实际情况会更多些。图2,图3,是在3D网格中实现的效果