用 AI(人工智能)生成 2D(二维)游戏素材已经不难。难的是:生成出来的图看起来像 SpriteSheet,真正导入 Tiled 后却不能稳定使用。
Tiled 是一款开源 2D 地图编辑器,它的工作方式很明确:地图不是一整张大图,而是由许多固定大小的小格子拼出来的。每个小格子叫 tile,一组 tile 组成 tileset,不同 tileset 和图层叠加后形成完整地图。
flowchart LR
A[SpriteSheet 图片] --> B[Tiled 按固定尺寸切格子]
B --> C[Tileset 素材库]
C --> D[Layer 图层]
D --> E[Map 游戏地图]
如果 SpriteSheet 里的素材没有严格对齐网格,Tiled 并不会理解“这里有一棵树”“那里有一块草地”,它只会机械地按照 64×64、32×32 这类尺寸切图。切出来的 tile 残缺、带白底、多个物体挤在一起,后续拼地图就会很痛苦。
Tiled 需要什么样的 SpriteSheet
Tiled 的核心假设是:导入的素材图可以按规则网格切分。
一张合格的 SpriteSheet 至少要满足三个条件:
| 要求 | 含义 | 不满足时的结果 |
|---|---|---|
| 固定 tile 尺寸 | 每个素材占用统一大小,比如 64×64 像素 | Tiled 切图时会把素材切断 |
| 严格网格对齐 | 素材边界落在网格里,不跨格 | 一个 tile 里只有半个角色或半棵树 |
| 透明背景 | 空白区域是透明像素,而不是白色或其他底色 | 地图上会出现白块、色块遮挡 |
Tiled 的界面通常左侧是地图编辑区,右侧是 tileset 素材库。选中右侧某个 tile 后,就可以像画画一样把它刷到地图上。
这张界面截图展示了 Tiled 的典型用法:右侧素材库来自一张被切好的 tileset,左侧地图由多个 tile 拼成。也就是说,素材图能不能被正确切分,直接决定地图编辑体验。
几个常见概念可以这样理解:
| 概念 | 作用 |
|---|---|
| Tile | 地图里的最小拼图块,例如 64×64 像素的一格 |
| Tileset | Tiled 识别出来的一组 tile 素材 |
| SpriteSheet | 把角色、地块、障碍物等素材集中排在一张图里 |
| Layer | 地图图层,例如地面层、障碍物层、装饰层 |
| Map | 多个图层叠加后的完整游戏地图 |
ChatGPT Image 2 生成素材时要尽量约束格式
ChatGPT Image 2 可以生成角色、地块、障碍物、植物等像素风素材。为了让结果更接近 Tiled 可用的 SpriteSheet,提示词里要明确写出网格、尺寸、透明背景和独立素材。
示例提示词:
Cat and mouse chase game SpriteSheet.
Include cat, mouse, land tiles, grass, flowers, stones, fences, and obstacles.
Cozy pixel art style for a 2D top-down game.
Strict evenly aligned grid layout.
Each tile is 64x64 pixels.
Transparent background.
Isolated tiles.
Clean spacing between tiles.
Suitable for Tiled tileset and 2D game asset workflow.
生成结果通常会在观感上接近游戏素材:
这类图适合做素材草稿:角色、地块、障碍物都放在一张图里,风格也比较统一。但它还不能直接等同于游戏开发里可用的 SpriteSheet,因为图像模型更擅长“画出看起来合理的图”,不擅长严格遵守像素级排版规则。
AI 生成 SpriteSheet 的三个常见问题
即使提示词里写了 64x64 tiles、transparent background、strict grid layout,生成结果仍然可能不稳定。
| 问题 | 具体表现 | 对 Tiled 的影响 |
|---|---|---|
| 背景不透明 | 空白区域是白色、浅灰色或其他颜色 | tile 放到地图上会盖住底层内容 |
| 网格不对齐 | 素材没有落在固定 64×64 网格内 | Tiled 切出来的 tile 会残缺 |
| 元素粘连 | 一个格子里塞了多个物体,或物体跨越多个格子 | 无法单独选择某个素材 |
这里的关键点是:Tiled 不会自动识别物体轮廓。它只按照你设置的 tile 宽高切图。
例如设置 tile 为 64×64 像素后,Tiled 的处理方式可以简化成这样:
flowchart TD
A[导入整张 SpriteSheet] --> B[设置 tileWidth = 64]
B --> C[设置 tileHeight = 64]
C --> D[从左到右、从上到下切分]
D --> E{素材是否刚好落在格子里}
E -- 是 --> F[得到干净 tile]
E -- 否 --> G[得到残缺 tile 或混合 tile]
所以,靠提示词直接生成最终可用素材并不稳定。更可靠的办法是:把 AI 生成图当作素材来源,再用编辑器做一次清理和重排。
用 SpriteSheet 编辑器做二次整理
SpriteSheet 编辑器的作用不是重新画图,而是把 AI 生成的素材整理成 Tiled 能理解的规则网格图片。
工具地址:
https://jerrymakes.com/apps/sprite-sheet-editor/
它解决的是四件事:
| 功能 | 解决的问题 |
|---|---|
| 移除背景 | 把白底、浅色底处理成透明背景 |
| 框选元素 | 从生成图里单独取出角色、地块、障碍物 |
| 重新排版 | 把素材放回规则网格中 |
| 导出透明 PNG | 得到 Tiled 可导入的素材图 |
PNG(Portable Network Graphics,便携式网络图形)适合保存这种素材,因为它支持透明通道。对 2D 游戏地图来说,透明背景很重要,否则障碍物、植物、角色会带着一块底色盖在地图上。
界面里的工作重点是“挑选”和“重排”:从左侧或原始素材中框选需要的元素,清理背景后放到新的网格里。这样可以避开 AI 生成图里最常见的错位、粘连和底色问题。
整理后的 SpriteSheet 再导入 Tiled,就能作为 tileset 使用:
整理后的素材图已经按固定格子排好,Tiled 切分时不会再把一个物体拆成几块。右侧 tileset 里每个格子都可以单独选择,左侧地图编辑区也能干净地叠加地面、装饰和障碍物。
一套可落地的处理流程
完整流程可以拆成五步:
flowchart TD
A[用 ChatGPT Image 2 生成素材图] --> B[导入 SpriteSheet 编辑器]
B --> C[移除背景]
C --> D[框选有用元素]
D --> E[按固定网格重新排版]
E --> F[导出透明 PNG]
F --> G[在 Tiled 中创建 tileset]
G --> H[用图层拼接游戏地图]
更具体一点:
- 用 ChatGPT Image 2 生成包含角色、地块、植物、障碍物的素材图。
- 打开 SpriteSheet 编辑器,导入生成图。
- 移除背景,让空白区域变成透明像素。
- 手动框选可用元素,避开残缺、变形、粘连的部分。
- 把选出的元素重新放到统一网格中,比如每格 64×64 像素。
- 导出透明 PNG。
- 在 Tiled 里创建新 tileset,选择刚导出的 PNG。
- 设置正确的 tile 宽高,例如 64×64。
- 在不同 layer 上分别绘制地面、障碍物、装饰元素。
Tiled 导入时需要重点检查这些参数:
| 参数 | 建议 |
|---|---|
| Tile width | 和 SpriteSheet 编辑器里设置的格子宽度一致 |
| Tile height | 和 SpriteSheet 编辑器里设置的格子高度一致 |
| Margin | 如果素材图边缘没有留白,通常设为 0 |
| Spacing | 如果格子之间没有间隔,通常设为 0 |
| Transparent color | 已经是透明 PNG 时通常不需要额外设置 |
只要导出图和 Tiled 参数一致,tileset 就能稳定切分。
什么场景适合这种做法
这种流程适合快速制作 2D 游戏原型,尤其是玩法验证、关卡草图、个人项目和小型网页游戏。
| 场景 | 是否适合 | 原因 |
|---|---|---|
| 2D 游戏原型 | 适合 | 能快速得到风格统一的素材,并导入 Tiled 拼地图 |
| Game Jam | 适合 | 时间短,素材够用比美术精修更重要 |
| 教学 Demo | 适合 | 可以把精力放在地图逻辑、碰撞、交互上 |
| 商业级美术管线 | 不完全适合 | 仍需要美术规范、动画拆帧、命名管理和版本控制 |
| 高精度像素美术 | 不完全适合 | AI 生成结果可能存在像素不干净、轮廓不稳定的问题 |
它的价值在于降低“从想法到可编辑地图”的门槛。AI 负责生成素材草稿,SpriteSheet 编辑器负责把素材整理成规则网格,Tiled 负责地图编辑。三者配合起来,可以让非美术出身的人更快进入玩法设计阶段。
使用时容易踩的坑
1. 不要把生成图直接当最终 tileset
AI 生成的 SpriteSheet 只是看起来像素材表,不一定真的符合网格规范。导入 Tiled 前最好先检查:
- 每个素材是否完整落在一个格子里;
- 背景是否透明;
- 是否有两个物体挤在同一个 tile 中;
- tile 尺寸是否统一。
2. tile 尺寸要从一开始定好
如果地图准备用 64×64 像素 tile,就让提示词、SpriteSheet 编辑器、Tiled 三处都保持 64×64。中途混用 32×32、48×48、64×64,会让素材比例和地图拼接都变乱。
3. 地面、障碍物、装饰最好分层
Tiled 的 layer 不只是为了整理界面,也会影响后续碰撞和渲染。
常见分层方式:
| 图层 | 内容 |
|---|---|
| Ground | 草地、土地、道路、水面等地表 |
| Object | 树、石头、栅栏、箱子等障碍物 |
| Decoration | 花、草丛、小道具等装饰 |
| Collision | 专门标记不可通行区域,可不显示 |
这样做的好处是:地面可以铺满整张地图,障碍物可以单独处理碰撞,装饰物也不会影响角色移动逻辑。
4. 透明背景比想象中重要
如果背景没有被正确移除,地图里会出现白边、色块或脏边。尤其是像素风素材,半透明边缘和抗锯齿像素很容易留下杂色。导出前最好放在深色和浅色背景下各看一遍,确认边缘干净。
5. 不要强求一次生成完美素材
更稳定的思路是分工:
flowchart LR
A[ChatGPT Image 2] -->|生成风格统一的素材草稿| B[SpriteSheet 编辑器]
B -->|清理、裁剪、重排| C[Tiled]
C -->|拼地图、分图层、做关卡| D[游戏原型]
AI 负责“从无到有”,编辑器负责“变得可用”,Tiled 负责“组成地图”。每一步只解决自己擅长的问题,整体流程会比反复修改提示词更可控。



