跳到正文
AI Sprite Maker

精灵图集制作工具

拖入你的帧,几秒钟就能得到打包好的精灵图集,以及引擎能读取的数据文件。

  • 免费
  • 本地运行
  • 无需注册
拖入你的帧
一次选择或拖入多张 PNG。它们会按文件名自然排序,所以 walk_2 排在 walk_10 前面。
选择文件
在浏览器中运行 · 不上传任何内容

所有处理都在你的浏览器中完成。文件绝不会上传,页面加载后即使离线也能使用。

精灵图集只完成了一半工作。引擎还需要知道每一帧在哪里、持续多久。这个工具会把你的帧打包成网格、条带或紧凑图集,并以引擎真正能导入的格式写出这些数据:TexturePacker/Phaser JSON、Aseprite JSON、Godot 4 SpriteFrames 资源、CSS,以及 Unity 切片设置。帧会按你编号的习惯排序,所以 walk_10 排在 walk_9 之后。

精灵图集制作工具使用方法

  1. 一次拖入所有帧 PNG。它们会按名称自然排序,随时可以继续添加。
  2. 用箭头调整顺序,移除多余的帧,或者整体倒序。
  3. 选择布局:网格(自动或固定列数)、单行、单列,或裁掉透明边缘后紧凑打包。
  4. 设置帧间内边距、外边距和边缘扩展。如果目标平台需要 64、128、256 px 纹理,请打开 2 的幂尺寸。
  5. 在预览中检查动画并设置 FPS。
  6. 下载 PNG 和一个数据文件,或包含 PNG 和全部格式的 ZIP。

你能得到什么

  • PNG 精灵图集,带透明度,与预览完全一致。
  • Phaser / TexturePacker JSON(hash 和 array),包含裁剪偏移,紧凑打包的帧依然能对齐。
  • Aseprite JSON,含帧标签和时长。
  • Godot 4 SpriteFrames .tres,使用 AtlasTexture,可直接用于 AnimatedSprite2D。
  • CSS 精灵,每帧一个 class 并附逐帧动画,另有 Unity 导入和切片设置。

适配哪些引擎

  • Phaser 3:this.load.atlas(key, 'sheet.png', 'sheet.json'),然后用帧名创建动画。
  • Godot 4:把 .tres 放在 PNG 旁边,再指定给 AnimatedSprite2D 的 Sprite Frames。
  • Unity:网格布局用设置文件中的数值按 Grid By Cell Size 切片。使用 Point 过滤并关闭压缩。
  • PixiJS、Defold、Cocos、Construct:可直接或通过各自的导入器读取 TexturePacker JSON (hash)。

来自游戏开发实战的技巧

  • 角色动画请用网格布局和统一尺寸的帧。引擎的网格切片和洋葱皮工具都默认这种格式。
  • 对于包含大量不同尺寸图片的道具和 UI 图集,用紧凑打包并开启裁剪。
  • 如果图集会以非整数倍缩放或生成 mipmap,加 1–2 px 的边缘扩展,可以防止相邻帧在边缘渗色。
  • 给帧起有意义的名字(hero_walk_00…),它们会成为 JSON 里的帧键名。

适用场景

  • 把从 Aseprite、Blender 或 Spine 导出的帧打包成一张纹理。
  • 为网页游戏制作 UI 或道具图集。
  • 把 AI 生成的帧做成引擎能直接播放的精灵图集。
  • 为落地页制作 CSS 精灵动画。

常见问题

支持导出哪些数据格式?
hash 和 array 两种形式的 TexturePacker JSON(Phaser、PixiJS 和许多引擎都能读取)、Aseprite JSON、Godot 4 SpriteFrames .tres、带关键帧的 CSS 精灵类,以及一个包含 Unity 导入和切片设置的文本文件。
紧凑打包是做什么的?
它会裁掉每帧的透明边框,把裁剪后的帧按高度排序后逐行排列,尝试多种宽度并保留最小的图集。JSON 会记录每帧的原始尺寸和偏移,保证渲染位置正确。
什么是边缘扩展?
边缘扩展会把每帧最外圈的像素向外复制 1–4 px。当 GPU 采样稍稍超出帧的范围时(过滤、mipmap、非整数缩放),读到的是这一帧自己的边缘,而不是相邻帧。
我的帧尺寸不一样,会怎样?
在网格、单行和单列布局中,每个单元格都和最大的帧一样大,较小的帧按底部居中、居中或左上对齐。紧凑打包则保持每帧原本的尺寸。
帧数有限制吗?
没有固定限制。所有处理都在浏览器中进行,实际上限取决于设备内存。几百张 64 px 的帧完全没问题。
我的图片会被上传吗?
不会。帧在本地读取和打包,不会发送到任何服务器。
全部免费工具 →