跳转到正文
全部教程English

Godot 4 动画导入

如何把透明角色动画导入 Godot 4:一次真实项目验证

把 AnimGen Godot 资产包导入真实项目,保留 SpriteFrames 路径、FPS 和轴点,并在浅色与深色背景上检查透明动画。

AnimGen更新于 9 分钟阅读
Godot 4 真实验证场景:同一个 AnimGen 角色动画分别显示在浅色和深色背景上
本文目录

精灵图能够下载下来,并不等于它已经可以放进游戏。Godot 还要正确找到纹理、读取全部帧矩形、按预期速度播放动画,并围绕稳定的轴点放置角色。

这篇文章使用一个真实的 AnimGen Godot 导出包,在小型 Godot 4 项目中完成导入和播放。你可以下载公开 Godot 资产包按步骤操作,也可以直接下载本文使用的完整验证项目

Godot 资产包里有什么

解压演示包后,会得到一个命名目录,其中包含五个文件:

text
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.5y: 0.0),现成场景再把它转换成居中 Godot 精灵的 (0, -48) offset。

这些数字只描述这份可下载演示。你自己的导出可能有不同的帧数、FPS、画布大小、动画名称或轴点,应以对应清单为准,不要照抄这里的数值。

本次 Godot 实测资产包中的 96 帧攻击精灵图,由带透明度的 96 × 96 像素区域排列而成

保持导出根目录完整

把整个 AnimGenDemoGodot 目录复制到 Godot 项目根目录,结构类似这样:

text
res://
├── project.godot
├── your-main-scene.tscn
└── AnimGenDemoGodot/
    ├── spritesheet.png
    ├── animation.tres
    ├── animation.tscn
    ├── animgen-manifest.json
    └── README_Godot.md

生成资源使用以下形式的路径:

text
res://AnimGenDemoGodot/spritesheet.png
res://AnimGenDemoGodot/animation.tres

如果重命名目录,或者只移动 .tres.tscn 中的一个文件,又没有同步修改引用,Godot 就会找不到资源。先按原结构复制,等 Godot 导入 PNG 并确认场景工作,再根据项目规范整理文件。

如果出现纹理或资源缺失错误,先比较当前目录名与 animation.tresanimation.tscn 顶部的路径,不要立刻付费重新生成动画。

打开现成的 AnimatedSprite2D 场景

最快的检查方法是打开 animation.tscn,或者把它放进一个小型测试场景。它已经选择对应动画,并开启了自动播放。

也可以从 GDScript 实例化:

gdscript
var exported_animation := preload(
    "res://AnimGenDemoGodot/animation.tscn"
).instantiate() as AnimatedSprite2D

exported_animation.position = Vector2(640, 500)
add_child(exported_animation)

Godot 的二维精灵动画说明介绍了 AnimatedSprite2DSpriteFrames 的通用用法。对这份资产包来说,不需要重新切割精灵图:.tres 已按顺序包含全部图集区域。

如果要使用项目中已有的 AnimatedSprite2D,可以把 animation.tres 赋给 Sprite Frames,再选择对应动画。需要相同轴点时,还要复制生成场景中的 offset。仅赋值 SpriteFrames 不会同时复制节点的 offset、位置、缩放或材质。

Godot 4 编辑器中选中的 AnimGenAnimation、24 FPS 的攻击动画 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 帧,得到三秒运行片段

在 Godot 中打开的 AnimGen 清单,显示 96 帧、24 FPS、循环、帧尺寸、图集尺寸、轴点以及对应的 SpriteFrames 时间线

这能把“导入问题”和“动作质量判断”分开。纹理缺失、切片数量不对或 FPS 错误属于资产包或导入问题;角色形变、姿态质量、滑步,以及攻击节奏是否适合游戏,仍然需要人来观看和判断。

在明暗背景上检查透明度和位置

验证场景把同一个导出的 AnimatedSprite2D 实例化两次,分别放在浅色和深色面板上。

Godot 4.7.2 显示导入的 AnimGen 角色:同一动画分别位于浅色和深色背景上,并带固定轴点参考线

参考线表示节点的底部中心原点。精灵帧包含透明留白,所以可见的脚可能位于参考线上方;这和节点原点逐帧变化不是一回事。判断是否需要裁剪或换轴点前,应先播放整段动画。

播放或下载这段三秒 Godot 真实运行录屏。它来自实际项目视口,不是网页重新模拟的动画。

透明素材至少要在两种背景上检查。浅色背景更容易暴露深色边缘,深色背景则能看出浅色污染。如果源 PNG 正确,而 Godot 中出现模糊或轮廓,先检查纹理过滤、缩放和项目渲染设置,再决定是否修改动画。

让动画适合你的游戏逻辑

导入成功的是动画资产,不是完整角色控制器。资产包不会自动增加输入、碰撞、位移、动画状态机,也不会处理 idle、run、jump 和 attack 之间的切换。

接入玩法前,可以按以下顺序检查:

  1. animgen-manifest.json 核对帧数和 FPS。
  2. 决定动画是否应该循环。本文演示的攻击动作为了检查而循环;正式攻击通常只播放一次,再回到其他状态。
  3. 检查循环动画时至少连续播放几轮,重点看最后一帧接回第一帧的瞬间。
  4. 保留一条固定基准线,观察脚部和轴点是否稳定。
  5. 在项目实际使用的渲染器与目标平台上再次测试。

一个角色有多个动作时,可以先让每次导出保留自己的命名目录,再有计划地整理资源。直接用一个资产包覆盖另一个,可能会把不同任务的 PNG、.tres 和清单混到一起。

完整路径和排障方法见 AnimGen Godot 4 导入文档。动画准备好后,再查看当前导出格式和权限,生成需要的引擎资产包。你也可以打开 AnimGen 工作台,从自己的角色开始制作。

查看图片细节