270×138 的 Sprite Sheet,为什么不能直接按4×2均分?
提供有明确假设的尺寸与坐标算例,帮助发现累积偏移;不假定工具自动识别所有布局或提供未确认参数。

封面复用 AI 生成的角色姿势示意,不是270×138测试图,也不表示图中姿势恰好构成本文网格。
知道图里有4列2行,不代表把整张图平均切成8块就一定正确。只要外边距或帧间距不为零,整图宽高除以列行数,得到的就可能不是角色真正占用的帧尺寸。
动画帧工具公开说明提供网格、固定尺寸等拆分方式。下面的数字是人工核对布局的假设例子,不是工具自动检测结果,也不证明所有起点或间距选项都在当前界面中提供。
先固定六个条件
- 4列、2行。
- 每帧画布宽高均为64像素。
- 左右外边距各4像素,上下也各4像素。
- 相邻帧之间横向、纵向间距均为2像素。
- 尺寸按实际像素读取,未在导出中缩放。
- 帧按已确认的规则网格排列;不包含旋转打包。
“64像素帧画布”不是要求每个角色的可见轮廓都填满64像素。透明边仍可属于帧画布,不能把可见主体宽度直接代入公式。
先算整图应有多大
宽=2×4+4×64+3×2=270像素;高=2×4+2×64+1×2=138像素。4列只有3个内部横向间隔,2行只有1个内部纵向间隔,不能把外边距也当成一条普通内部间距。
若直接把270除以4,会得到67.5;138除以2则为69。这与已知64×64帧画布不一致,是应当回查布局的信号,不是将角色拉伸到67.5×69的理由。
再算每个格子的起点
按从0开始的像素坐标,列起点为4、70、136、202,行起点为4、70。相邻起点的步长为64+2=66,而不是64。一般写法是:起点=外边距+格子序号×(帧尺寸+内部间距)。
检查最后一列:202+64=266,距离整图右边270还剩4;最后一行70+64=134,距离下边138也剩4。这里的加法结果表示边界位置,不是最后一个包含像素的编号。
用偏差分布判断下一项检查
如果所有帧都差不多朝同一方向偏,先核对起始边距。如果越往右或往下偏得越多,检查步长是否漏算了间距。这只是依据本规则网格模型的线索,不是对不规则AI素材的唯一诊断。
先看第一帧、中间帧和末帧是否都符合预期,再检查全部输出。不要只让第一帧看起来正确,就把后面的累积偏移交给动画预览掩盖。
参数不受支持时,不强行套公式
先核对当前界面如何表达边距、起点或间距。若某种拆分方式只能对整图均分,不能从中推断它会自动跳过本例的空隙;应准备合适的源图副本,或使用已确认能表达该布局的流程,再核对实际输出。
对于不等距、旋转或紧密打包的素材,不继续套本例公式。先确认输入结构,必要时保留原始坐标数据。更多拆分步骤见 Sprite Sheet 拆分指南。
如果格子切对了却多出透明时间位置,再参照 空白格与有意透明帧的区别判断。空间布局正确与播放序列正确,应分开验收。
推荐使用本站工具

Automatic Sprite Slicing and ZIP Export: A Faster Way to Prepare 2D Game Assets
Learn how automatic sprite slicing and one-click ZIP export can help indie game developers turn character sheets, icon collections, and AI-generated 2D artwork into organized PNG assets faster.

From AI Sprite Cutter to Sprite Sheet Maker: A Complete 2D Asset Workflow
A practical workflow guide for turning raw 2D images into sliced PNG files, downloading them as a ZIP package, and using those files to create sprite sheets for Unity, Cocos, Godot, and custom game engines.

Smart Sprite Sheet Packer: A Practical Guide for 2D Game Developers
Learn how a smart sprite sheet packer helps indie game developers combine PNG assets into clean texture atlases with metadata for Unity, Cocos, Godot, and custom 2D game engines.
