本文由 FrameSprite 作者工作流整理,AI 辅助编写,引用原始技术资料;构造案例不代表模型或引擎实测。
一张整齐的地形图不代表它包含引擎可能请求的全部连接。真正要交付的是一组邻接状态:道路是否只关心四条边,还是草地轮廓还需要区分凹进去的内角。先选规则,再数图片。
仅按上右下左四边是否连接时,有 2⁴ = 16 种二元组合。常见 47 块 Blob 还区分对角,但只有相邻两条正交边都连接时才保留该对角状态。16 块角连接也是另一种合法规则,不能因为数量相同就当作边连接。47 不是任意八邻域的全部 256 种组合,也不是所有美术风格都必须采用。
用“草地连接草地、外侧为空白”这种明确规则描述一个集合。画出孤岛、直线、转角和凹角需求;不要先让图像工具填满一张大图再猜每格含义。道路边连接与连续陆地轮廓通常需要不同测试图。
附件采用 N=1、E=2、S=4、W=8,NE=16、SE=32、SW=64、NW=128。中心格始终是当前材质。先给每个状态一个编号,再映射到图集坐标;这些编号是本文数据约定,不是 Godot 或 Tiled 的通用图块编号。
只有 N 与 E 都存在,NE 才能参与选择;其他三个角同理。例如只有东北邻居、上方和右方都为空时,不应凭这个对角邻居额外请求一张内角图。把归一化之后的状态去重,避免把不可达组合计入预算。
先使用色块和状态编号,配置编辑器相应的边、角或混合地形。依次画十字、环形洞、单格岛和一格宽通路;检查每个放置状态是否符合清单。逻辑稳定后,再用 FrameSprite 制作或整理的美术替换占位图。
连接规则相同不代表图块可随意旋转。单向投影、草叶倾斜或高光可能在旋转后互相矛盾。把允许的变换写进交付说明;不允许旋转时,分别制作每个方向,不能用更少源图数量冒充状态完整。
枚举 0–255 的掩码,只保留四个对角条件都成立的状态。附件包含位定义、16 个边掩码和全部 47 个合法 Blob 掩码,可逐个检查。
按已连接正交邻居数分组,状态数量为 1、4、10、16、16,合计 47;仅四边则为 16。这里的 0 表示独立的中心材质格,不是地图外的空格。
这是组合计算,不是生成质量测试;未包含第三种材质、坡面高度或引擎专有编号。
需求 | 约定 | 验收重点 |
|---|---|---|
四向道路 | 16 种边连接 | 断头、转角、交叉 |
角点材质过渡 | 16 种角连接 | 不要按边位解读 |
凹角陆地轮廓 | 47 种受约束 Blob | 洞与细通道 |
任意八位二元状态 | 256 种组合 | 确认确实需要全部 |
多材质混合 | 另定转换图 | 检查缺失材质边界 |
四个边只有接或不接时有 2 的 4 次方,即 16 种状态。Blob 规则还允许检查对角,但只有相邻两条边都连接时,该对角才有效;按连边数量分组后,可得到 1、4、10、16、16,共 47 种。先列出项目实际需要的邻接规则,再决定是否做完整集合。不要把 47 当作每个地形都必须生成的文件数量:引擎可以利用旋转或图集区域,第三种材质、悬崖与高度又可能需要额外规则。生成完应在邻接样板图里逐项验收,而不是只看一张地图。
九张图片可能正好展示四个外角、四条边和中心,但仍没有独立岛、内角和所有细连接。先把现有图片映射到状态清单:如果两个不同状态必须共用一张图,判断它们在实际地图上是否真的可以共享,而不是只检查图集是否整齐。
保留状态编号、图集坐标和最小测试地图。修改美术时,先复测测试地图,再扩展到关卡。FrameSprite 可以参与美术制作与处理;地形标签、画笔选择和碰撞设置仍在目标编辑器中完成。
本次补充由 AI 辅助整理,按公开原始技术资料核对。可下载的输入与预期结果是原创构造案例,不代表模型或引擎实测;实际项目应按步骤保留自己的验收记录。
不是。先看连接语义。四边道路可能只需要 16 种;添加不被玩法使用的角状态会增加制作和审核成本。
不能直接互换。数量相同,但位表示的位置不同;必须重做对应规则与美术映射。
图集可有空格或额外装饰变体。47 指此约定的唯一状态数,不限制文件的排版格数。
不能。平铺纹理只解决重复表面,还需要边界美术与编辑器邻接标签来处理材质转换。
Tiled:使用地形 · Tiled
Godot:使用 TileSet · Godot Engine
原文:https://cn.framesprite.com/guides/blob-autotile-47-vs-16-edge-tiles
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。