我制作等轴测室内精灵已有一段时间,几乎所有遇到的对其错误都不是源于美术本身,而是源于一个从未事先确定的惯例。椅子漂浮在地板上方,桌子陷入地板,两块墙壁之间有一条本来看起来正常的细缝。我把四个重要的惯例写下来,并附上实际数字,因为当我刚开始时,哪里都找不到明确说明。
1. 使用 2:1 的二轴测,而非真正的等轴测。
真正的等轴测将地面轴线设为 30 度,斜率约为水平 1.732 对应垂直 1。这个比例是无理数,因此在像素网格上,每个瓦片边缘都会变成一条从不规则重复的锯齿阶梯线。
2:1 二轴测是每垂直 1 像素对应水平 2 像素。每条对角线都是整洁的 2 像素步长,瓦片之间无缝对接,在 1 倍缩放时保持清晰。大多数像素艺术“等轴测”游戏实际使用的就是这种投影。对于 64x32 的菱形瓦片,放置单元格 (i, j) 就是:
x = (i - j) * 32
y = (i + j) * 16
并且按 i + j 递增顺序绘制,这样近处的物体会覆盖远处的物体。
2. 每个精灵共享一个锚点行。
这是最关键的一点,也是大多数资源包忽略的一点。将所有对象放在相同的画布尺寸(这里为 64x64)上,水平居中,并让每个文件中与地面接触的最低不透明像素位于同一行。我的这一行是 y = 59。地面菱形位于其自身 64x64 画布的底部一半。
因为对象及其下方的瓦片共享相同的画布尺寸和锚点,它们在绘制时使用完全相同的位置。不需要每个精灵单独的偏移表,不需要肉眼微调,也不会有六个月后“这张桌子偏移了 3 像素”的错误。通过程序填充到锚点行,绝不要手动操作。
只要是有意的,刻意例外是可以的:天花板上的投影仪绘制成悬挂状态,保持其高度而不是被拉到地面线;墙壁部件使用更高的画布,以便它们能升到地面线之上。
3. 在任何美术资源存在之前就确定尺寸等级。
如果每个对象都填满其画框,你就会得到一个和储物柜一样大的笔筒。先根据真实世界高度将对象分为几个等级(大型家具/地面与中型道具/小型桌面道具),以各自的分辨率制作每个等级,然后让它们以不同缩放比例放置到共享画框中。事后进行改造是非常痛苦的。
4. 使用最近邻插值,且必须是整数倍,否则不要用。
任何平滑滤镜(双线性、双三次、Lanczos)都会将像素艺术变成缩小的照片:轮廓柔和,调色板扩散成数百种中间色,在任何缩放比例下都不再像像素艺术。
最近邻插值是唯一保留外观的重采样方式,而且它只在干净的整数倍下表现良好。128 缩放到 64 正好是一半,所以每个 2x2 块都会稳定地塌缩成一个像素。像 0.41 或 0.59 这样的缩放因子会不规则地丢弃行和列,破坏细薄细节。如果某个东西无法承受精确减半,那就直接在最终尺寸下制作,而不是缩放。
附加一点,也是让我最头疼的一点:任何需要平铺的内容都应该通过生成而不是手绘。
地板和墙壁是玩家会看到成百上千个并排复制的东西,所以一个像素的不一致就会变成整个房间中可见的接缝。我通过脚本绘制墙壁几何体:一个斜面、一个高度,两个面根据一致的光源方向着色而不是凭肉眼,再加上端盖,这样一段墙壁可以终结而不出现撕裂的边缘。地面菱形也是如此。装饰(门、窗户、黑板)是独立的美术资源,合成到生成的墙面上,并且我将其保留为透明叠加层,这样支持图层的引擎可以自行合成。
快速测试:将四块地面瓦片摆成 2x2 方块,放大到 400%。如果你能找到接缝,它就会在你的游戏中显现出来。
如果觉得有必要对照实际文件来验证这些内容,而不是单凭我的话,我用作示例的 19 个精灵资源包是免费的,且允许商用:https://thirdangle.itch.io/classroom-starter 。打开任意两个文件,检查最低不透明行,或者平铺地板寻找接缝。
如果有人需要,我很乐意进一步讲解墙壁几何体的数学计算或叠加技巧。
评论 (0)