SuperAPI AI 工具集

godot-2d-animation

设计与创作

查看项目

更新于 10-15 18:27

技能介绍

用途

本技能面向 Godot 引擎的 2D 动画实现,覆盖基于精灵帧(spritesheet)的逐帧动画,以及基于剪纸(cutout)与骨骼绑定的 2D 动画工作流。适合需要在 Godot 中处理角色动画、程序化动画效果、骨骼层级与帧精确计时的开发者。

主要能力

  • 精灵帧动画:围绕 AnimatedSprite2D 与 SpriteFrames 组织帧序列、循环标记与信号时序。
  • 程序化动画:提供物理驱动的挤压拉伸(squash/stretch)实现,包含落地挤压、速度拉伸与插值恢复。
  • 剪纸与骨骼:支持剪纸骨骼层级、FABRIK/CCDIK 解算、静止姿态(rest pose)以及两骨 IK 足部着地。
  • 帧精确计时:通过方法轨道(method tracks)、值轨道(value tracks)协调命中框、音效与生成偏移等元数据,使其与视觉动画解耦。
  • 动画状态机:结合 AnimationTree 的状态机 travel 与过渡队列实现状态驱动动画。
  • 性能与显存:提供 GPU 网格优化、MultiMesh 群集动画以及高分辨率帧的线程化注入与卸载。

使用方式

该技能以“按场景加载脚本”的方式组织,并强调脚本即事实来源,不应内联复制脚本食谱。核心约定包括:

  • 同帧同步:在调用 play() 后立即调用 advance(0),以确保该帧内姿态与 flip_h 等属性同步生效。
  • 循环检测:循环动画使用 animation_looped,一次性动画使用 animation_finished。
  • 保留动画进度换帧:使用 set_frame_and_progress(frame, progress),避免直接设置 frame 导致进度归零。
  • Tween 管理:避免多个 Tween 争抢同一属性,需先对旧实例调用 kill()。
  • 物理帧:动画驱动的 CharacterBody2D 运动应通过物理回调模式处理,以保证固定时间步与插值。
  • 缓存节点:热路径中使用 @onready 缓存动画节点,避免运行时查找开销。

适用场景

  • 单角色/玩家动画与其状态同步。
  • 帧事件、命中框与音效同步。
  • 游戏手感相关的挤压拉伸效果。
  • 剪纸与 IK 肢体(如足部着地)。
  • 动画触发的着色器闪光或溶解效果。
  • 大量实体(如蝙蝠、鱼群、道具)的群集动画。

限制与注意事项

  • 不使用 AnimatedTexture(已弃用且在现代渲染器中效率低下)。
  • 不应在同一精灵上混用 AnimationPlayer 轨道与代码驱动的 AnimatedSprite2D。
  • 剪纸形变不应使用过薄的骨架网格,需在关节附近维持合理顶点密度。
  • 具体平台支持、收费方式与价格信息暂未提供。