Tiled地图导出全攻略:Godot/Unity/Defold无缝对接
【免费下载链接】tiled 项目地址: https://gitcode.com/gh_mirrors/til/tiled
还在为Tiled地图导出到游戏引擎时出现的坐标偏移、图层丢失、 tileset引用失效而头疼?本文将系统讲解如何将Tiled地图无缝导出到Godot 4、Unity和Defold引擎,解决90%的常见兼容性问题。读完本文你将掌握:三种引擎的导出插件配置、自定义属性映射技巧、动画瓷砖导出方案以及故障排查指南。
准备工作
在开始导出前,请确保你的Tiled地图满足以下条件:
- 所有tileset图片资源已整理至项目
images目录 - 地图使用相对路径引用资源(避免绝对路径导致引擎无法定位)
- 已安装对应引擎的导出插件(Tiled 1.10+已内置主流引擎支持)
官方文档:导出基础配置
环境检查清单
| 检查项 | 要求 |
|---|---|
| Tiled版本 | ≥1.10(Godot 4支持) |
| 项目结构 | 存在.godot/ProjectSettings.asset标记文件 |
| 图片格式 | PNG-8位色深(优化内存占用) |
| 图层命名 | 不含特殊字符(建议使用下划线命名法) |
Godot 4导出流程
Godot 4采用了全新的TileMap系统,Tiled 1.10+提供原生.tscn格式导出支持。相比Godot 3需要第三方插件,原生导出能完美支持图层属性映射和碰撞体自动生成。
基础导出设置
- 在Tiled中打开地图,通过
文件 > 导出为选择Godot 4场景文件 (*.tscn) - 确保导出路径与Godot项目的
res://目录结构匹配 - 勾选"自动创建tileset资源"选项
图层属性配置
通过自定义属性控制Godot图层行为:
# 为前景层添加Z轴排序
zIndex=10
ySortEnabled=true
# 忽略注释图层
noExport=true
核心属性说明:
zIndex:控制图层渲染顺序(正数在前,负数在后)ySortEnabled:启用Y轴排序(角色与 tiles 遮挡关系)tilesetResPath:指定共享tileset资源路径(如res://tilesets/ground.tres)
官方文档:Godot 4导出规范
动画瓷砖处理
Godot 4要求动画帧必须按从左到右、从上到下顺序排列,不能跳过或复用帧。在Tiled中创建动画时需遵循此规则:
提示:使用Tiled的瓷砖动画编辑器可以直观调整帧顺序和时长
Unity导出方案
虽然Tiled未直接提供Unity导出插件,但可通过以下两种方案实现无缝对接:
方案A:JSON中间格式
- 导出为JSON格式:
文件 > 导出为 > JSON地图文件 (*.json) - 在Unity中使用TMX Importer导入
- 配置坐标转换(Tiled原点在左上角,Unity在左下角)
关键代码片段:
// 修正Y轴坐标
float unityY = mapHeight - tiledY - tileHeight;
方案B:GameMaker格式中转
通过Tiled的GameMaker导出插件生成.yy文件,再通过Unity的YY解析器转换:
- 导出设置:
文件 > 导出为 > GameMaker房间文件 (*.yy) - 使用YYImporter工具转换为Unity场景
- 调整图层深度:通过
depth属性控制渲染顺序
注意:Unity导出需特别处理瓦片翻转数据,Tiled的水平/垂直翻转在Unity中需通过材质缩放实现
Defold引擎对接
Defold提供两种导出格式选择,分别适用于简单地图和复杂场景:
defold格式(基础版)
适合单tileset的简单地图:
- 导出选项:
文件 > 导出为 > Defold TileMap (*.tilemap) - 自定义属性设置:
# 设置瓦片集引用 tile_set=res://tilesets/ground.tilesource # 图层Z轴偏移 z=0.5
defoldcollection格式(进阶版)
支持多tileset和组图层:
- 导出选项:
文件 > 导出为 > Defold Collection (*.collection) - 自动创建层级结构:
- 顶层组图层转为Collection
- 子图层转为独立TileMap
- 自动分配Z轴索引(0~0.1范围)
官方文档:Defold导出插件
跨引擎通用技巧
坐标系统转换
不同引擎的坐标原点差异处理:
| 引擎 | 原点位置 | Tiled坐标转换公式 |
|---|---|---|
| Godot | 左上角 | (x, y) → (x, y) |
| Unity | 左下角 | (x, y) → (x, mapHeight - y) |
| Defold | 左上角 | (x, y) → (x, y) |
碰撞体导出方案
使用Tiled的对象层定义碰撞区域:
- 创建专用碰撞层,命名为
collision - 使用矩形/多边形工具绘制碰撞区域
- 导出时通过
collisionLayer=true属性标记
常见问题排查
tileset引用丢失
- 检查Tiled中
tileset属性是否使用相对路径 - 验证引擎项目中是否存在对应
.tilesource/.tres文件 - 示例修复:
tilesetResPath=res://assets/tiles/ground.tres
图层顺序错乱
- 统一使用
zIndex/depth属性显式指定层级 - Godot中确保
ySortEnabled属性正确设置 - 参考:图层渲染顺序指南
高级应用:自动化导出流程
通过Tiled的命令行工具实现构建流程集成:
# Windows
tiled.exe --export-map desert.tmx res://maps/desert.tscn --format godot4
# macOS/Linux
tiled --export-map desert.tmx res://maps/desert.tscn --format godot4
配合构建系统(如CMake/QBS)可实现地图修改后自动重新导出,示例配置:构建脚本
总结与资源
本文介绍的导出方案已覆盖90%的2D游戏开发场景。掌握这些技巧后,你可以:
- 实现Tiled与主流引擎的无缝协作
- 避免手动调整带来的人为错误
- 构建专业的地图工作流
深入学习资源:
- 官方示例项目:sticker-knight
- 视频教程:Tiled地图设计实战
- API文档:脚本化导出
提示:关注Tiled更新日志获取最新导出功能,如即将支持的3D tiles导出和WebGL预览功能。收藏本文,下次导出遇到问题时可快速查阅解决方案!
【免费下载链接】tiled 项目地址: https://gitcode.com/gh_mirrors/til/tiled
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考








