
本文目录
精灵图能够下载下来,并不等于它已经可以放进游戏。Godot 还要正确找到纹理、读取全部帧矩形、按预期速度播放动画,并围绕稳定的轴点放置角色。
这篇文章使用一个真实的 AnimGen Godot 导出包,在小型 Godot 4 项目中完成导入和播放。你可以下载公开 Godot 资产包按步骤操作,也可以直接下载本文使用的完整验证项目。
Godot 资产包里有什么
解压演示包后,会得到一个命名目录,其中包含五个文件:
AnimGenDemoGodot/
├── spritesheet.png
├── animation.tres
├── animation.tscn
├── animgen-manifest.json
└── README_Godot.md
它们分别负责不同工作:
spritesheet.png保存带透明度的帧像素。animation.tres是 Godot 4 的SpriteFrames资源,里面的各帧是指向精灵图区域的AtlasTexture。animation.tscn是已经使用该资源、可以自动播放的AnimatedSprite2D场景。animgen-manifest.json记录与引擎无关的帧矩形、动画名、FPS、循环、图集尺寸和轴点。- README 记录预期的
res://路径和基础导入步骤。
本文演示包有 96 帧,播放速度为 24 FPS。每个区域是 96 × 96 像素,位于一张 960 × 960 的精灵图中。清单使用底部居中轴点(x: 0.5、y: 0.0),现成场景再把它转换成居中 Godot 精灵的 (0, -48) offset。
这些数字只描述这份可下载演示。你自己的导出可能有不同的帧数、FPS、画布大小、动画名称或轴点,应以对应清单为准,不要照抄这里的数值。
保持导出根目录完整
把整个 AnimGenDemoGodot 目录复制到 Godot 项目根目录,结构类似这样:
res://
├── project.godot
├── your-main-scene.tscn
└── AnimGenDemoGodot/
├── spritesheet.png
├── animation.tres
├── animation.tscn
├── animgen-manifest.json
└── README_Godot.md
生成资源使用以下形式的路径:
res://AnimGenDemoGodot/spritesheet.png
res://AnimGenDemoGodot/animation.tres
如果重命名目录,或者只移动 .tres、.tscn 中的一个文件,又没有同步修改引用,Godot 就会找不到资源。先按原结构复制,等 Godot 导入 PNG 并确认场景工作,再根据项目规范整理文件。
如果出现纹理或资源缺失错误,先比较当前目录名与 animation.tres、animation.tscn 顶部的路径,不要立刻付费重新生成动画。
打开现成的 AnimatedSprite2D 场景
最快的检查方法是打开 animation.tscn,或者把它放进一个小型测试场景。它已经选择对应动画,并开启了自动播放。
也可以从 GDScript 实例化:
var exported_animation := preload(
"res://AnimGenDemoGodot/animation.tscn"
).instantiate() as AnimatedSprite2D
exported_animation.position = Vector2(640, 500)
add_child(exported_animation)
Godot 的二维精灵动画说明介绍了 AnimatedSprite2D 和 SpriteFrames 的通用用法。对这份资产包来说,不需要重新切割精灵图:.tres 已按顺序包含全部图集区域。
如果要使用项目中已有的 AnimatedSprite2D,可以把 animation.tres 赋给 Sprite Frames,再选择对应动画。需要相同轴点时,还要复制生成场景中的 offset。仅赋值 SpriteFrames 不会同时复制节点的 offset、位置、缩放或材质。
先核对导入数据,再评价动作
2026 年 9 月 9 日,我们使用 Godot 4.7.2 stable、macOS 26.5.2 和 Compatibility 渲染器,导入了没有修改的公开演示包。验证项目检查了以下内容:
| 检查项 | 实际结果 |
|---|---|
| 导出 Schema | animgen.sprite-export.v1 |
| 动画 | 存在 tactician_slash,并且自动播放 |
| 帧数据 | 96 个 AtlasTexture 区域与清单中的 96 个矩形全部一致 |
| 播放设置 | 24 FPS、开启循环,与清单一致 |
| 轴点 | 底部居中轴点及场景 (0, -48) offset 得到保留 |
| 运行状态 | 0.75 秒后,动画由第 0 帧推进到第 18 帧 |
| 录制结果 | 以 24 FPS 录制 72 帧,得到三秒运行片段 |
这能把“导入问题”和“动作质量判断”分开。纹理缺失、切片数量不对或 FPS 错误属于资产包或导入问题;角色形变、姿态质量、滑步,以及攻击节奏是否适合游戏,仍然需要人来观看和判断。
在明暗背景上检查透明度和位置
验证场景把同一个导出的 AnimatedSprite2D 实例化两次,分别放在浅色和深色面板上。
参考线表示节点的底部中心原点。精灵帧包含透明留白,所以可见的脚可能位于参考线上方;这和节点原点逐帧变化不是一回事。判断是否需要裁剪或换轴点前,应先播放整段动画。
播放或下载这段三秒 Godot 真实运行录屏。它来自实际项目视口,不是网页重新模拟的动画。
透明素材至少要在两种背景上检查。浅色背景更容易暴露深色边缘,深色背景则能看出浅色污染。如果源 PNG 正确,而 Godot 中出现模糊或轮廓,先检查纹理过滤、缩放和项目渲染设置,再决定是否修改动画。
让动画适合你的游戏逻辑
导入成功的是动画资产,不是完整角色控制器。资产包不会自动增加输入、碰撞、位移、动画状态机,也不会处理 idle、run、jump 和 attack 之间的切换。
接入玩法前,可以按以下顺序检查:
- 用
animgen-manifest.json核对帧数和 FPS。 - 决定动画是否应该循环。本文演示的攻击动作为了检查而循环;正式攻击通常只播放一次,再回到其他状态。
- 检查循环动画时至少连续播放几轮,重点看最后一帧接回第一帧的瞬间。
- 保留一条固定基准线,观察脚部和轴点是否稳定。
- 在项目实际使用的渲染器与目标平台上再次测试。
一个角色有多个动作时,可以先让每次导出保留自己的命名目录,再有计划地整理资源。直接用一个资产包覆盖另一个,可能会把不同任务的 PNG、.tres 和清单混到一起。
完整路径和排障方法见 AnimGen Godot 4 导入文档。动画准备好后,再查看当前导出格式和权限,生成需要的引擎资产包。你也可以打开 AnimGen 工作台,从自己的角色开始制作。
