jasonjgardner

blockbench-animation

Create and manage animations in Blockbench using MCP tools. Use when animating 3D models, creating keyframes, managing bone rigs, editing animation curves, or working with animation timelines. Covers walk cycles, idle animations, combat animations, and complex multi-bone animations.

jasonjgardner 6 2 Updated 4mo ago
GitHub

Install

npx skillscat add jasonjgardner/blockbench-mcp-project/blockbench-animation

Install via the SkillsCat registry.

SKILL.md

Blockbench Animation

Create animations for 3D models using Blockbench MCP tools.

Available Tools

Tool Purpose
create_animation Create animation with keyframes for bones
manage_keyframes Create/edit/delete keyframes per bone and channel
animation_graph_editor Fine-tune animation curves (smooth, linear, ease)
bone_rigging Create/modify bone structure for animation
animation_timeline Control playback, time, FPS, loop settings
batch_keyframe_operations Batch operations: offset, scale, reverse, mirror
animation_copy_paste Copy animation data between bones/animations

Quick Start

Create a Simple Animation

1. create_animation: name="walk", animation_length=1.0, loop=true
2. manage_keyframes: bone_name="leg_left", channel="rotation",
   keyframes=[{time: 0, values: [30, 0, 0]}, {time: 0.5, values: [-30, 0, 0]}]
3. animation_timeline: action="play"

Animation Channels

  • position - [x, y, z] offset
  • rotation - [x, y, z] degrees
  • scale - [x, y, z] or uniform number

Interpolation Types

  • linear - Constant rate
  • catmullrom - Smooth spline
  • bezier - Custom curves
  • step - Instant change

Common Workflows

Walk Cycle (1 second)

create_animation: name="walk", animation_length=1.0, loop=true, bones={
  "leg_left": [
    {time: 0, rotation: [30, 0, 0]},
    {time: 0.5, rotation: [-30, 0, 0]},
    {time: 1.0, rotation: [30, 0, 0]}
  ],
  "leg_right": [
    {time: 0, rotation: [-30, 0, 0]},
    {time: 0.5, rotation: [30, 0, 0]},
    {time: 1.0, rotation: [-30, 0, 0]}
  ]
}

Smooth Curves

animation_graph_editor: bone_name="arm", channel="rotation", action="smooth"

Copy Animation to Mirrored Bone

animation_copy_paste: action="copy", source={bone: "arm_left"}
animation_copy_paste: action="mirror_paste", target={bone: "arm_right", mirror_axis: "x"}

Batch Timing Adjustment

batch_keyframe_operations: operation="scale", selection="all",
  parameters={scale_factor: 2.0}  # Double animation duration

Bone Rigging

Create Bone Structure

bone_rigging: action="create", bone_data={name: "spine", origin: [0, 12, 0]}
bone_rigging: action="create", bone_data={name: "head", origin: [0, 24, 0], parent: "spine"}

Set Pivot Point

bone_rigging: action="set_pivot", bone_data={name: "arm_left", origin: [4, 22, 0]}

Timeline Control

animation_timeline: action="set_fps", fps=60
animation_timeline: action="set_length", length=2.5
animation_timeline: action="loop", loop_mode="loop"  # or "once", "hold"
animation_timeline: action="set_time", time=0.5
animation_timeline: action="play"

Tips

  • Use list_outline to see available bones before animating
  • Set up bone hierarchy first with bone_rigging before adding keyframes
  • Use catmullrom interpolation for organic movement
  • Use step interpolation for mechanical/robotic movement
  • Mirror animations for symmetrical rigs to save time