mcpField
P
Pixel Art Animator

Pixel Art Animator

github.com/willibrandon创意与媒体397252 次安装54 周前更新
代码仓库

关于 Pixel Art Animator

Pixel Art Animator 是面向像素画创作者的动画 Skill,涵盖帧、时序、动画标签和链接 Cel 的管理,支持组织循环动作并为后续导出做准备。

主要功能

  1. 01添加、复制和删除动画帧
  2. 02设置帧时长
  3. 03创建带播放方向的动画标签
  4. 04链接 Cel 以共享图像数据
  5. 05规划常见动画工作流

适用场景

  1. 01制作待机、行走或攻击循环
  2. 02调整动画帧率与停留时长
  3. 03按动作序列整理复杂精灵
  4. 04让背景在角色动画中保持静止

MCP 相关

通过 pixel-mcp 所用的 Aseprite 工具管理动画,例如添加帧、设置时长、创建标签和链接 Cel。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/willibrandon/pixel-plugin --skill pixel-art-animator

安装后在 Claude Code 中输入/pixel-art-animator确认已加载。

附带文件reference.mdexamples.md

详细介绍

像素艺术动画

概述

此 Skill 处理精灵图的所有动画相关任务,包括帧管理、时序、动画标签(序列)以及用于高效制作动画的链接图层单元。

适用场景

当用户:

  • 想要为精灵图“制作动画”或“添加动画”
  • 提到“帧”“关键帧”或“帧速率”
  • 描述动作:“行走循环”“跑步循环”“待机动画”“攻击动画”
  • 询问“动画标签”“循环”或“播放”
  • 想要创建用于动画的“精灵图集”(与导出器 Skill 协作)

触发关键词: 制作动画、动画、帧、行走循环、跑步、待机、攻击、循环、移动、动作

说明

1. 了解动画基础知识

帧: 动画序列中的单张图像。精灵图初始包含 1 帧。

帧时长: 每帧显示的时间(毫秒)。默认值:100ms(10 FPS)。

动画标签: 命名的帧序列(例如,“行走”使用第 1-4 帧,“待机”使用第 5-8 帧)。

链接图层单元: 与另一个图层单元共享图像数据的图层单元。编辑其中一个会更新所有链接的图层单元。

播放方向:

  • 正向: 按 1 → 2 → 3 → 4 播放帧,然后循环
  • 反向: 按 4 → 3 → 2 → 1 播放帧,然后循环
  • 往返: 按 1 → 2 → 3 → 4 → 3 → 2 → 1 播放帧,然后循环
2. 创建动画帧

添加帧: 使用 mcp__aseprite__add_frame 创建新帧:

  • 帧从 1 开始编号
  • 新帧初始为当前帧的副本(或空白帧)

常见帧数:

  • 待机动画: 2-4 帧(细微动作)
  • 行走循环: 4-8 帧(双腿交替)
  • 跑步循环: 6-8 帧(速度更快,动作更夸张)
  • 攻击动画: 3-6 帧(蓄力、攻击、恢复)
  • 跳跃: 4-6 帧(下蹲、上升、顶点、下降、落地)

复制帧: 使用 mcp__aseprite__duplicate_frame 复制现有帧:

  • 可用于创建不同变体
  • 可作为相似帧的起点

删除帧: 使用 mcp__aseprite__delete_frame 移除帧:

  • 不能删除最后剩余的帧
  • 删除后会重新排列帧编号
3. 设置帧时序

帧时长: 使用 mcp__aseprite__set_frame_duration:

  • 时长以毫秒(ms)为单位
  • 100ms = 10 FPS
  • 50ms = 20 FPS
  • 33ms ≈ 30 FPS
  • 16ms ≈ 60 FPS

常见时序模式:

均匀时序: 所有帧的时长相同。简单且可预测。

  • 行走循环:所有帧均为 100ms(流畅的 10 FPS)

可变时序: 为强调效果设置不同的时长。

  • 待机:帧速较慢(150ms),营造呼吸效果
  • 攻击:快速打击(30ms),较慢恢复(100ms)

停留帧: 延长时长以营造戏剧效果。

  • 跳跃顶点:200ms(滞空时间)
  • 撞击:50ms(快速闪现)
4. 创建动画标签

用途: 将帧整理为命名序列。

使用 mcp__aseprite__create_tag:

  • 名称:“walk”“idle”“attack”等
  • 起始帧:起始帧(从 1 开始计数)
  • 结束帧:结束帧(包含在内)
  • 方向:“forward”“reverse”或“ping-pong”

标签示例:

  • 标签“idle”:第 1-2 帧,往返播放
  • 标签“walk”:第 3-6 帧,正向播放
  • 标签“attack”:第 7-10 帧,正向播放

优点:

  • 单独导出特定动画
  • 整理复杂的精灵图集
  • 游戏引擎可以引用标签
5. 使用链接图层单元

用途: 在多个帧之间共享图像数据,以节省内存并保持一致性。

使用 mcp__aseprite__link_cel:

  • 帧内容不变时很有用
  • 示例:背景图层在整个动画中保持不变
  • 编辑其中一个链接图层单元会更新所有链接项

适用场景:

  • 静态背景元素
  • 行走循环中的角色面部(如果身体单独制作动画)
  • 动画中的重复帧

工作流:

  1. 创建包含内容的帧
  2. 链接需要共享数据的图层单元
  3. 编辑一次,即可在所有位置更新
6. 动画工作流

工作流 1:行走循环(4 帧)

  1. 创建基础精灵图(或使用已有精灵图)
  2. 再添加 3 帧(共 4 帧)
  3. 编辑每一帧,呈现行走姿势:
    • 第 1 帧:左脚向前
    • 第 2 帧:着地(双脚都接触地面)
    • 第 3 帧:右脚向前
    • 第 4 帧:着地(双脚都接触地面)
  4. 将所有帧的持续时间设为 100ms
  5. 创建标签 "walk":第 1-4 帧,正向播放

工作流 2:待机动画(2 帧)

  1. 创建基础精灵图
  2. 再添加 1 帧(共 2 帧)
  3. 添加细微变化:
    • 第 1 帧:正常站姿
    • 第 2 帧:细微动作(呼吸、眨眼)
  4. 将帧的持续时间设为 500ms(缓慢、轻微)
  5. 创建标签 "idle":第 1-2 帧,往返播放

工作流 3:包含多种复杂动画的精灵图

  1. 创建基础精灵图
  2. 为所有动画添加足够的帧:
    • 待机:2 帧
    • 行走:4 帧
    • 跳跃:4 帧
    • 共计:10 帧
  3. 按顺序排列帧
  4. 创建单独的标签:
    • 标签 "idle":第 1-2 帧
    • 标签 "walk":第 3-6 帧
    • 标签 "jump":第 7-10 帧
  5. 为每种动画设置适当的帧持续时间

示例

示例 1:简单的 2 帧待机动画

用户请求:

“为这个精灵图添加一个简单的待机动画”

处理方法:

  1. 添加 1 帧(现在有第 1 帧和第 2 帧)
  2. 在第 2 帧中做出细微变化(将像素上下移动 1-2 个像素)
  3. 将两帧的持续时间都设为 500ms
  4. 创建标签 "idle":第 1-2 帧,往返播放
  5. 结果:轻柔地来回摆动的待机动作
示例 2:4 帧行走循环

用户请求:

“为这个角色创建行走循环动画”

处理方法:

  1. 添加 3 帧(现在共有第 1、2、3、4 帧)
  2. 编辑每一帧,呈现行走姿势
  3. 将所有帧的持续时间设为 100ms
  4. 创建标签 "walk":第 1-4 帧,正向播放
  5. 结果:以 10 FPS 循环播放的行走动画
示例 3:变速攻击

用户请求:

“添加一个带快速出击动作的攻击动画”

处理方法:

  1. 添加 5 帧(共 6 帧,假设第 1 帧已存在)
  2. 帧序列:
    • 第 2 帧:蓄势(缓慢)
    • 第 3 帧:准备(缓慢)
    • 第 4 帧:出击(快速)
    • 第 5 帧:后续动作(中速)
    • 第 6 帧:恢复(缓慢)
  3. 设置持续时间:
    • 第 2-3 帧:150ms(缓慢蓄势)
    • 第 4 帧:30ms(快速出击)
    • 第 5 帧:80ms(中速后续动作)
    • 第 6 帧:120ms(缓慢恢复)
  4. 创建标签 "attack":第 2-6 帧,正向播放
示例 4:关联背景

用户请求:

“为角色制作动画,同时保持背景静止”

处理方法:

  1. 假设有 2 个图层:"Background"、"Character"
  2. 为动画添加帧
  3. 在每一帧中编辑 "Character" 图层,制作动画
  4. 关联 "Background" 图层上的所有赛璐珞:
    • 将第 2 帧的背景关联到第 1 帧
    • 将第 3 帧的背景关联到第 1 帧
    • 将第 4 帧的背景关联到第 1 帧
  5. 背景保持不变,角色则进行动画

技术详情

帧编号
  • 帧编号从 1 开始(第一帧为第 1 帧)
  • 在位置 N 添加帧会将其插入该位置
  • 删除第 N 帧后,后续帧会重新编号
帧持续时间限制
  • 最小值:1ms(不建议,速度太快)
  • 最大值:65535ms(65.5 秒)
  • 实用范围:16ms(60 FPS)至 500ms(2 FPS)
动画标签限制
  • 标签数量没有硬性限制
  • 标签可以覆盖相同的帧
  • 标签名称应保持唯一且描述清晰
关联赛璐珞的行为
  • 编辑一个关联赛璐珞会更新所有关联实例
  • 取消关联会创建独立副本
  • 有助于优化大型动画的内存使用
性能
  • 添加帧:<20ms
  • 复制帧:<30ms
  • 设置帧持续时间:<10ms
  • 创建标签:<15ms
  • 关联赛璐珞:<25ms

常见模式

模式:呼吸式待机

2 帧、往返播放、缓慢节奏(400-500ms)

  • 第 1 帧:正常
  • 第 2 帧:轻微垂直移动(1-2 个像素)
模式:基础行走

4 帧,向前移动,时长均匀(100ms)

  • 第 1 帧:左脚向前,右脚向后
  • 第 2 帧:双脚并拢(接触)
  • 第 3 帧:右脚向前,左脚向后
  • 第 4 帧:双脚并拢(接触)
模式:跑步循环

6-8 帧,向前移动,时长更短(60-80ms)

  • 姿势比行走时更夸张
  • 步幅更大
  • 身体前倾
模式:跳跃序列

5-6 帧,向前移动,时长可变

  • 第 1 帧:下蹲(100ms)
  • 第 2 帧:起跳(50ms)
  • 第 3 帧:上升(80ms)
  • 第 4 帧:最高点(200ms)——滞空
  • 第 5 帧:下降(80ms)
  • 第 6 帧:落地(100ms)

与其他技能集成

  • 先使用 pixel-art-creator 创建基础精灵,再制作动画
  • 制作动画后使用 pixel-art-professional 进行润色(阴影、抗锯齿)
  • 用户想要导出精灵表或 GIF 时,交由 pixel-art-exporter 处理

错误处理

无法删除最后一帧:

  • 精灵必须至少有 1 帧
  • 如果用户尝试删除最后一帧,请告知用户

无效帧编号:

  • 帧编号必须为 1 到 N(N 为总帧数)
  • 执行操作前检查边界

标签帧范围错误:

  • “起始”帧必须小于或等于“结束”帧
  • 两者都必须是有效的帧编号

成功指标

满足以下条件时,表示你已成功使用此技能:

  • 正确添加或修改帧
  • 根据目标 FPS 设置合适的帧时长
  • 使用正确的范围创建动画标签
  • 用户了解动画将按指定方式循环或播放
  • 动画已准备好导出或进一步润色

评论

支持 Markdown