Tiled地图导出全攻略:Godot/Unity/Defold无缝对接

Tiled地图导出全攻略:Godot/Unity/Defold无缝对接

【免费下载链接】tiled 【免费下载链接】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需要第三方插件,原生导出能完美支持图层属性映射和碰撞体自动生成。

基础导出设置

  1. 在Tiled中打开地图,通过文件 > 导出为选择Godot 4场景文件 (*.tscn)
  2. 确保导出路径与Godot项目的res://目录结构匹配
  3. 勾选"自动创建tileset资源"选项

Godot导出对话框

图层属性配置

通过自定义属性控制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中间格式

  1. 导出为JSON格式:文件 > 导出为 > JSON地图文件 (*.json)
  2. 在Unity中使用TMX Importer导入
  3. 配置坐标转换(Tiled原点在左上角,Unity在左下角)

关键代码片段:

// 修正Y轴坐标
float unityY = mapHeight - tiledY - tileHeight;

方案B:GameMaker格式中转

通过Tiled的GameMaker导出插件生成.yy文件,再通过Unity的YY解析器转换:

  1. 导出设置:文件 > 导出为 > GameMaker房间文件 (*.yy)
  2. 使用YYImporter工具转换为Unity场景
  3. 调整图层深度:通过depth属性控制渲染顺序

Unity图层深度设置

注意:Unity导出需特别处理瓦片翻转数据,Tiled的水平/垂直翻转在Unity中需通过材质缩放实现

Defold引擎对接

Defold提供两种导出格式选择,分别适用于简单地图和复杂场景:

defold格式(基础版)

适合单tileset的简单地图:

  1. 导出选项:文件 > 导出为 > Defold TileMap (*.tilemap)
  2. 自定义属性设置:
    # 设置瓦片集引用
    tile_set=res://tilesets/ground.tilesource
    
    # 图层Z轴偏移
    z=0.5
    

defoldcollection格式(进阶版)

支持多tileset和组图层:

  1. 导出选项:文件 > 导出为 > Defold Collection (*.collection)
  2. 自动创建层级结构:
    • 顶层组图层转为Collection
    • 子图层转为独立TileMap
    • 自动分配Z轴索引(0~0.1范围)

Defold集合结构

官方文档:Defold导出插件

跨引擎通用技巧

坐标系统转换

不同引擎的坐标原点差异处理:

引擎原点位置Tiled坐标转换公式
Godot左上角(x, y) → (x, y)
Unity左下角(x, y) → (x, mapHeight - y)
Defold左上角(x, y) → (x, y)

碰撞体导出方案

使用Tiled的对象层定义碰撞区域:

  1. 创建专用碰撞层,命名为collision
  2. 使用矩形/多边形工具绘制碰撞区域
  3. 导出时通过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与主流引擎的无缝协作
  • 避免手动调整带来的人为错误
  • 构建专业的地图工作流

深入学习资源:

提示:关注Tiled更新日志获取最新导出功能,如即将支持的3D tiles导出和WebGL预览功能。收藏本文,下次导出遇到问题时可快速查阅解决方案!

【免费下载链接】tiled 【免费下载链接】tiled 项目地址: https://gitcode.com/gh_mirrors/til/tiled

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值