Communitygithub.com

OpenScaleOrg/pixel-animation

用于在 Aseprite 中为精灵或场景制作动画,包括待机循环、行走循环、攻击动画、环境场景循环(云朵、蒸汽、闪烁灯光)、帧时序、标签和 GIF 导出。

pixel-animation 是什么?

该技能专门指导如何利用 aseprite MCP 工具在 Aseprite 中完成像素动画制作,涵盖从角色到环境的多种动画类型。它强调在已有文件上直接操作,避免新建精灵,并详细介绍了循环长度、帧时序和标签设置,确保动画的可导出性和复用性。技能提供了分层策略:先完成静态层(背景、家具),再通过传播帧复制到所有帧,然后仅对移动层进行逐帧重绘。对于不同物体的移动,技能区分了动画类型:角色和生物采用“姿势到姿势”的关键帧重绘法;软体采用挤压拉伸;刚性物体和次要运动使用补间或偏移;旋转部分交替绘制有限姿势;环境效果逐帧重绘并让Alpha随粒子上升衰减。最后,技能指导如何实现无缝循环(通过位置取模、避免回跳)以及使用洋葱皮、帧对比和边界检查来验证连续性,并推荐使用查看、审核和导出工具(如 GIF 导出、标签导出)完成作品,也可在实时模式下按 Enter 键播放。

兼容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/OpenScaleOrg/Aseprite-Plugin/tree/HEAD/plugins/aseprite/skills/pixel-animation

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

使用 aseprite 工具制作像素动画

首先调用 animation_workflow_guide:使用 use_case="character"、"idle" 或 "environment"。

1. 决定循环

  • 在用户已打开的文件中进行动画制作。 如果画布太小或帧数太少,请使用 resize_canvas 和 add_frames 在同一文件上进行操作。切勿使用 create_canvas 或 Lua 中的 Sprite() 创建新精灵(请参见 aseprite-live 技能)。

  • 长度和时序。 持续时间 = 帧数 × 帧时间。常见的选择是:环境循环使用 8 帧 × 120 ms(约 1 秒),待机循环使用 4–6 帧 × 100–150 ms,行走循环使用 6–8 帧。

  • 持续时间。 使用 add_frames(count, duration_ms),然后使用 set_frame_duration_all。

  • 标签。 使用 set_tag 为每个循环命名(例如 idle 或 walk),以便 export_tag 可以单独导出该循环。

2. 先完成静态层

先完成静止帧;遵循像素艺术技能。然后调用 propagate_cels 将所有不移动的图层(背景、家具)复制到所有帧。之后只对移动层进行重绘。

3. 以正确的方式移动物体

什么在移动如何操作
角色、生物姿势到姿势。在每个关键帧上重新绘制每个关键姿势:预备动作、动作、跟随动作。使用 copy_frame,然后使用 erase_region 擦除移动部分,并使用 draw_rows 重新绘制。涉及整个身体。除非在空中,否则脚要保持在同一条地平线上。
软体(史莱姆、果冻)挤压和拉伸 30–50%,在每个空中帧上改变形状。
刚性物体、次要运动使用 tween_cel_positions_eased、offset_cel_positions 或 oscillate_cel_positions(云朵、浮动图标、摇摆的船)。
旋转部件(风扇、风车)绘制 2–4 个姿势,并使用 copy_cel 交替显示。
环境效果(蒸汽、火花、屏幕内容、闪烁的 LED)每帧重新绘制一小部分像素。随着粒子的上升,让 Alpha 衰减。

切勿将补间用于活物的主要运动。

4. 使循环无缝

  • 最后一帧必须能流畅地接回第一帧。 对于粒子,使用 (frame + offset) % N 的位置。对于滚动,在循环周期内移动恰好一个周期。
  • 避免回跳。 某物漂移 8 像素然后跳回会被视为一个故障。使用来回摇摆,或者让它移动整个画布宽度从而离开并重新进入。
  • 使用 render_onion_skin 检查连续性。 使用 compare_frames 和 get_bounds 确认移动了哪些内容以及移动了多少。

5. 审查和导出

  • 审查。 调用 view_sprite(frames="1-8") 并排查看每一帧,并调用 audit_animation 或 validate_scene 查找缺失的 cel。
  • 导出。 export_animation(output.gif, scale=4-8, background="#...") 生成可共享的 GIF;使用 export_tag 导出单个循环。
  • 在实时模式下,用户还可以在 Aseprite 中按 Enter 键播放动画。

Individual skills in this repo

This repo contains 3 individual skills — each has its own dedicated page.

相关技能