Skip to content

路面发黑

使用 Blender 创建 Ballance 地图时会偶尔发生进入游戏后的路面显示偏黑的情况。虽然这里说的是路面发黑,但不局限于路面。钢轨,木板,甚至是装饰在设置不合理的情况下也会发黑,这里的路面是一个泛指。

概括地来说,Ballance 里路面发黑无外乎由两个原因导致:法线错误材质错误。或者更复杂一点,两者皆有。下面分别介绍这两种错误以及如何解决。

法线错误

钢轨接头

钢轨接头处的法线是新手最容易出错的地方,即最容易产生黑色斑点的地方,下图展示了如何打开法线显示和钢轨接头法线的常见错误。

rail_cap_normal

为了显示法线,我们首先要进入编辑模式,然后打开右上角视图叠加层面板(箭头 1),然后找到 Normal 栏,点击勾选第二个法线显示选项(箭头 2),这将打开分立法线显示。然后在右侧调整法线显示长度,直到 3D 视图中粉红色法线的长度合适为止。

图中从左到右分别展示了:错误的钢轨接头法线,以及使用两种不同解决方案改出的正确钢轨接头法线。通常来说,我们希望钢轨平滑,因此很自然地会右键钢轨选择自动平滑,但这样操作会导致钢轨接头处的法线被平滑了,这不是我们想要的,为了将最左侧的错误转换到右侧的正确法线,一种解决方案是选择接头的边线,然后选择菜单 Edge - Mark Sharp,将它们标记成锐边,这样钢轨的侧边和顶端的法线就会分离开,成为我们希望的样子。这就是中间的钢轨接头的样子。另一种方法是将钢轨截面单独选中,选择菜单 Face - Shade Flat,单独将截面改为平直着色,也可以达成同样的效果。

最后还有另外一个简单粗暴的方案,就是物体模式下右键钢轨选择自动平滑着色,并将角度设置为 50。但需要注意的是,设置完成后请转到修改器栏将自动平滑着色修改器应用,因为从 Blender 4.1 开始,平滑着色作为修改器而存在,然而 BBP 在保存物体的时候会忽略修改器,所以请务必在保存地图前应用所有修改器。

路面法线

下图展示了一张由于路面法线错乱导致路面发黑的问题。

black_floor

左侧是这块路面在 Blender 中开启了法线显示后的截图,右侧则是这个路面在游戏中呈现的样子。显然可以注意到,路面拐角处的法线出现了错误,尤其是侧边的法线,指向了错误的方向。通过灵活使用锐边和平直平滑着色,可以修复这些法线错误,使其在游戏内正确渲染。

无论如何都无法修复

通常来说,法线可以通过重新计算,或者平直平滑着色来进行修复,但是如果你遇到了无论怎么操作,法线就是不听使唤的情况(这种情况通常发生在编辑导入的,或者自动生成的物体的时候)。这多半是由于物体的自定义法线数据没有被删除导致的。解决方案是先选中所有面,然后点击菜单 Mesh - Normals - Reset Vectors 清除所有自定义法线数据,这样一来,法线应该就会听从你的指示了。

材质错误

材质错误也是造成路面发黑的原因之一,许多早期地图就是因为材质设置错误,从而导致路面发黑,甚至被迫通过加灯泡的方法来解决路面过暗的问题。最常见的错误就是将路面顶部的贴图应用于路面侧边,从而显示发黑,如下图所示:

black_side

你会发现侧边材质无论在哪里显示都很正常,而顶面材质转到侧边时就会变得一片漆黑。这种错误实际上是由 Ballance 光照系统导致的,Ballance 游戏中的主光源是一个带有倾斜角度的太阳光,因此被太阳光照射不到的一面就会完全是黑色,需要将材质中的 Emissive 选项设置成偏白色来弥补这种丑陋。这正是路面侧边材质所做的。如果直接将路面顶部这种没有白色 Emissive 弥补的材质直接应用于侧面,理所当然地会发黑。

解决方案有两种,一是打开官方或其他人制作的关卡,看看其他人在相似结构中设置的材质数值是多少,这是一个普适的解决方案。另一个解决方案则是利用 BBP 插件中内置的 BMERevenge 路面创建功能。BMERevenge 路面创建功能为了能够创建高度大于 5 的路面,配置了两个特殊的材质:BMELightingFloorTopBorderBMELightingFloorTopBorderless。如果你曾经在地图文件中插入了高度大于 5 的路面,这两个材质则会自动被生成。你可以直接利用这两个材质来进行创建,它们尽管看起来是路面顶部材质,但在侧边可以正常显示,不会发黑。

顺带一提,如果你仔细观察 Level 2 开头的倾斜木板,你会发现向左倾斜的和向右倾斜的木板的上表面的材质是不同的,两者有细微的差别,这正是对阳光的一种弥补,通过这种弥补,强行让它们在游戏里看起来没有差别。

Released under the MIT License.