mcpField
L
layer-tilesets

layer-tilesets

github.com/layerai其他70 次安装今天更新
代码仓库

关于 layer-tilesets

layer-tilesets 是 Layer 的图块制作技能,面向需要网格一致的游戏地图美术工作者。它指导固定投影与占格,并将图块导出为多种引擎格式。

主要功能

  1. 01统一图块投影与占格
  2. 02支持方形和六边形网格
  3. 03参考图保持套组风格
  4. 04设置建筑高度与朝向
  5. 05导出引擎图块集

适用场景

  1. 01制作等距村庄地图
  2. 02创建多格建筑及多朝向版本
  3. 03导出 Godot 或 Unity 图块集

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/layerai/skills --skill layer-tilesets

安装后在 Claude Code 中输入/layer-tilesets确认已加载。

详细介绍

图层 Tileset

概览

一个图块只有与相邻图块搭配时才有用。两个精美的等距房屋,如果绘制角度或底座略有不同,就无法放在同一张地图上,再怎么措辞提示词也无法解决这个问题。Layer 通过结构而非描述来解决:execute_forge 中的 tile_grid 会先在固定网格的底图上绘制每个图块,再将其裁出并适配到该网格上,因此一组图块中的所有图块都使用相同的投影和占地范围。

本技能适用于放置在网格上的图块(等距菱形、六边形、对齐的俯视单元格)。像草地或石材这样边缘相接并重复铺设的平面表面属于纹理:请按 layer-textures 中的说明使用 tileability。生成机制、消费门槛和轮询请参阅 layer。

如果此处提到的某个相关技能不在你可用的技能中,请让用户安装它(npx skills add layerai/skills --skill <name>);若无人值守,则根据工具架构继续操作并标明这一缺失。

快速参考

需求使用
可在网格上绘制的模型使用 filter.capabilities: {tile_grid: true} 调用 list_base_models,选择第一个结果
等距菱形图块tile_grid.shape: "SQUARE"(默认),方向为 DIAMOND(默认)
俯视方形地图shape: "SQUARE",orientation: "ALIGNED"
六边形图块shape: "HEXAGON",orientation: "POINTY_TOP"(默认)或 "FLAT_TOP"
经典 2:1 等距视觉效果不设置 elevation:正方形网格为 30(2:1 斜等距),最多设置为 60;六边形网格不设置时为 60
地面图块与建筑平坦地面设为 height: 0,建筑约为 1 到 2 个单元格边长
占据多个单元格的建筑footprint_width x footprint_depth,每项为 1 到 8 个单元格;六边形不设置,该形状占据一个单元格
同一建筑的其他朝向facing 设为 0、90、180、270(仅限正方形;六边形朝向为 0)
输出的单元格尺寸以像素为单位设置 tile_width;不设置则保留绘制尺寸,并将其取整到 2 的幂
将现有素材重新绘制为图块将素材作为 init_image 附加:其形状和设计会保留
延续整组图块的风格或某个朝向将已批准的图块作为 reference_image 附加
图块使用统一的固定画布使用 output_fit,并设置 canvas: "FIXED" 和 anchor: "BASE"
导入引擎使用 export_tileset,并将 engine 设为 TILED、GODOT、UNITY 或 JSON

一次性确定网格

网格是整组图块的约定。每个图块共享同一个 tile_grid;图块之间只改变占地范围、高度和朝向。首次运行前,确定 shape、orientation、elevation、light_from 和 tile_width,记录下来,并在后续每次运行中传入完全相同的值。中途更改 elevation 或 tile_width 会导致图块无法对齐;更改 light_from 则会让地图上的阴影朝向不一致。

light_from(从摄像机视角看为 left 或 right)很容易被忘记,因为它有默认值。仍要明确指定,并确保提示词中的光照描述与之保持一致。

提示词包含的内容

网格负责投影和放置,因此提示词应着重描述主体和整套图块的风格规则:材质、调色板、时代、细节程度和轮廓处理。只描述图块上呈现的内容。单元格以外的景物、地平线或邻近建筑都会妨碍抠图。

先审核通过一个图块,再将其作为 reference_image 附加到所有同组图块上,让它们继承其调色板和渲染风格。对于要持续数月扩充的图块集,请训练一个参考集(layer-reference-sets)。

朝向

从四个方向查看一座建筑,就需要执行四次生成,并分别设置 facing 为 0、90、180 和 270。先生成并审核通过朝向 0 的图块。然后将通过审核的图块作为 reference_image 附加到另外三个生成任务中,提示“同一座建筑的另一个朝向”。没有它,你会得到四座占地相同、但彼此不同的建筑。朝向仅适用于正方形单元格。

export_tileset 会在一个主体的名称后标注其朝向(tower_0、tower_90),并将主体和朝向记录为图块属性。

交付

对于地图,export_tileset 是最后一步:它会执行确定性文件操作,不消耗 Creative Units,并根据每个图块在网格中的位置放置图块。按列表顺序传入最多 128 个 file_ids;所有图块必须使用同一网格。

enginezip 中的内容
TILED一个 .tsx 图块集、每个图块一张图像,以及一个示例 .tmx 地图
GODOT一个基于单张图集的 Godot 4 TileSet .tres
UNITY一张图集,以及用于将其切分为带枢轴的精灵的 .meta
JSON一张图集和一个 TexturePacker JSON(hash),适用于 PixiJS、Phaser、Cocos

zip 中包含一份 README,其中列出了导入步骤和地图所需的网格设置。padding 用于设置图集中的透明间隔;TILED 会忽略此参数。

如果用户想要的是一张图像,而非导入引擎的资源,请使用 pack_sprite_sheet:每一帧都是 tile_grid 图块时,它会按各帧的锚点(图块所在单元格的底部中心)对齐帧,忽略 cell_width 和 cell_height,并返回每帧的矩形区域和 Unity 枢轴。若要将同一尺寸的图块作为独立精灵交付,使用 output_fit 搭配 FIXED 画布和 anchor: "BASE",让所有图块的底部都位于同一点。不带 tile_grid 时,不接受 BASE。

完整示例

“适用于 Godot 的中世纪等距视角村庄图块集:草地、土路和水面地面图块、一座可从四个方向查看的 2x2 房屋,以及一座 1x1 瞭望塔。”

  1. 使用 filter.use_case: "text_to_image" 和 filter.capabilities: {tile_grid: true} 调用 list_base_models;选择第一个结果,然后为任意触发词调用 get_base_model。
  2. 为整套图块固定网格: {shape: "SQUARE", orientation: "DIAMOND", light_from: "left", tile_width: 128},并将 elevation 留空,以使用 2:1 菱形投影。
  3. 先生成草地图块,设置 height: 0、footprint_width: 1、footprint_depth: 1,提示词只描述材质、调色板和轮廓:“草地面图块,手绘风格,柔和的绿色,深色柔和轮廓”。审核通过一个图块;它将作为之后每次生成任务的 reference_image。
  4. 生成道路和水面图块:使用相同的网格,设置 height: 0,并附加通过审核的草地图块。
  5. 生成朝向 0 的房屋:设置 footprint_width: 2、footprint_depth: 2、height: 1.5。审核通过后,再生成朝向 90、180 和 270 的图块,并分别附加通过审核的房屋作为 reference_image。
  6. 生成瞭望塔:占地 1x1,设置 height: 2,并附加草地图块以保持风格一致。
  7. 在第 3 步之前估算任务价格:对每种可单独计价的类型(地面图块、房屋、塔楼)各调用一次 estimate_forge_price,再按数量求和;超过 20 CUs 时先询问用户。执行每次生成后,按照返回的 poll_interval_seconds 轮询 get_forge_run。
  8. 使用 engine: "GODOT" 和按列表顺序排列的已审核 file_ids 调用 export_tileset。提供下载链接,并指出 README 中的网格设置。

常见错误

  • 在模型运行提示词中写入“等距”,却未使用 tile_grid,并期待图块自动对齐。
  • 在一组图块中途更改 elevation、tile_width、orientation 或 light_from。
  • 生成朝向 90 到 270 的图块时,未将已批准的朝向 0 图块作为 reference_image 附上。
  • 在六边形上设置 facing,而六边形只能朝向 0。
  • 提示词要求在图块周围绘制场景:地平线、相邻图块、延伸到网格单元之外的地面。
  • 将 tile_grid 用于平面重复表面,或将 tileability 用于放置在网格上的图块。
  • 用户要求提供可由引擎作为图块集导入的内容时,却交付拼合图集。

评论

支持 Markdown