Keyframes

Part of the animation skill: these tools appear once it is loaded — by blender_enable_skill with animation, or by find_tool when a search returns one of them.

blender_set_frame

Sets the current frame, the scene's frame range and the frame rate; returns the effective values.

only adds · every call adds · stays inside Blender.

Parameter Type Required Default Description
frame integer? — null Move the playhead to this frame.
start integer? — null First frame of the scene.
end integer? — null Last frame of the scene.
fps integer? — null Frames per second.
JSON Schema
{
  "type": "object",
  "properties": {
    "frame": {
      "description": "Move the playhead to this frame.",
      "type": [
        "integer",
        "null"
      ],
      "default": null
    },
    "start": {
      "description": "First frame of the scene.",
      "type": [
        "integer",
        "null"
      ],
      "default": null
    },
    "end": {
      "description": "Last frame of the scene.",
      "type": [
        "integer",
        "null"
      ],
      "default": null
    },
    "fps": {
      "description": "Frames per second.",
      "type": [
        "integer",
        "null"
      ],
      "default": null
    }
  }
}

blender_insert_keyframe

Keys properties of an object on a frame, optionally setting their values first (rotation in degrees). Without channels or values, keys location, rotation and scale.

only adds · every call adds · stays inside Blender.

Parameter Type Required Default Description
name string yes — Name of the object as shown in the outliner.
frame integer? — null Frame to key; the current frame otherwise.
channels array? — null Animated properties: location, rotation_euler, scale, or any data path such as data.energy for a light, data.lens for a camera, hide_render.
values object? — null Values to set before keying, by channel: {"location": [0, 0, 2], "rotation_euler": [0, 0, 90]} (degrees), {"data.energy": 500}.
interpolation string? — null CONSTANT, LINEAR, BEZIER (the default) or an eased kind: SINE, QUAD, CUBIC, QUART, QUINT, EXPO, CIRC, BACK, BOUNCE, ELASTIC.
JSON Schema
{
  "type": "object",
  "properties": {
    "name": {
      "description": "Name of the object as shown in the outliner.",
      "type": "string"
    },
    "frame": {
      "description": "Frame to key; the current frame otherwise.",
      "type": [
        "integer",
        "null"
      ],
      "default": null
    },
    "channels": {
      "description": "Animated properties: location, rotation_euler, scale, or any data path such as data.energy for a light, data.lens for a camera, hide_render.",
      "type": [
        "array",
        "null"
      ],
      "items": {
        "type": [
          "string",
          "null"
        ]
      },
      "default": null
    },
    "values": {
      "description": "Values to set before keying, by channel: {\u0022location\u0022: [0, 0, 2], \u0022rotation_euler\u0022: [0, 0, 90]} (degrees), {\u0022data.energy\u0022: 500}.",
      "type": [
        "object",
        "null"
      ],
      "default": null
    },
    "interpolation": {
      "description": "CONSTANT, LINEAR, BEZIER (the default) or an eased kind: SINE, QUAD, CUBIC, QUART, QUINT, EXPO, CIRC, BACK, BOUNCE, ELASTIC.",
      "type": [
        "string",
        "null"
      ],
      "default": null
    }
  },
  "required": [
    "name"
  ]
}

blender_delete_keyframes

Deletes keys on a frame or channels; with neither, strips all animation from the object.

may overwrite or delete · every call adds · stays inside Blender.

Parameter Type Required Default Description
name string yes — Name of the object as shown in the outliner.
frame integer? — null Only keys on this frame.
channels array? — null Animated properties: location, rotation_euler, scale, or any data path such as data.energy for a light, data.lens for a camera, hide_render.
JSON Schema
{
  "type": "object",
  "properties": {
    "name": {
      "description": "Name of the object as shown in the outliner.",
      "type": "string"
    },
    "frame": {
      "description": "Only keys on this frame.",
      "type": [
        "integer",
        "null"
      ],
      "default": null
    },
    "channels": {
      "description": "Animated properties: location, rotation_euler, scale, or any data path such as data.energy for a light, data.lens for a camera, hide_render.",
      "type": [
        "array",
        "null"
      ],
      "items": {
        "type": [
          "string",
          "null"
        ]
      },
      "default": null
    }
  },
  "required": [
    "name"
  ]
}

blender_list_keyframes

Every animation curve of an object with its keys, interpolation and modifiers, plus its drivers.

read-only · every call adds · stays inside Blender.

Parameter Type Required Default Description
name string yes — Name of the object as shown in the outliner.
channels array? — null Animated properties: location, rotation_euler, scale, or any data path such as data.energy for a light, data.lens for a camera, hide_render.
JSON Schema
{
  "type": "object",
  "properties": {
    "name": {
      "description": "Name of the object as shown in the outliner.",
      "type": "string"
    },
    "channels": {
      "description": "Animated properties: location, rotation_euler, scale, or any data path such as data.energy for a light, data.lens for a camera, hide_render.",
      "type": [
        "array",
        "null"
      ],
      "items": {
        "type": [
          "string",
          "null"
        ]
      },
      "default": null
    }
  },
  "required": [
    "name"
  ]
}

blender_set_interpolation

Sets the interpolation and easing of keys, on all curves or a frame range.

only adds · every call adds · stays inside Blender.

Parameter Type Required Default Description
name string yes — Name of the object as shown in the outliner.
interpolation string — BEZIER CONSTANT, LINEAR, BEZIER (the default) or an eased kind: SINE, QUAD, CUBIC, QUART, QUINT, EXPO, CIRC, BACK, BOUNCE, ELASTIC.
easing string? — null For the eased kinds: EASE_IN, EASE_OUT, EASE_IN_OUT or AUTO.
channels array? — null Animated properties: location, rotation_euler, scale, or any data path such as data.energy for a light, data.lens for a camera, hide_render.
fromFrame integer? — null Only keys from this frame on.
toFrame integer? — null Only keys up to this frame.
JSON Schema
{
  "type": "object",
  "properties": {
    "name": {
      "description": "Name of the object as shown in the outliner.",
      "type": "string"
    },
    "interpolation": {
      "description": "CONSTANT, LINEAR, BEZIER (the default) or an eased kind: SINE, QUAD, CUBIC, QUART, QUINT, EXPO, CIRC, BACK, BOUNCE, ELASTIC.",
      "type": "string",
      "default": "BEZIER"
    },
    "easing": {
      "description": "For the eased kinds: EASE_IN, EASE_OUT, EASE_IN_OUT or AUTO.",
      "type": [
        "string",
        "null"
      ],
      "default": null
    },
    "channels": {
      "description": "Animated properties: location, rotation_euler, scale, or any data path such as data.energy for a light, data.lens for a camera, hide_render.",
      "type": [
        "array",
        "null"
      ],
      "items": {
        "type": [
          "string",
          "null"
        ]
      },
      "default": null
    },
    "fromFrame": {
      "description": "Only keys from this frame on.",
      "type": [
        "integer",
        "null"
      ],
      "default": null
    },
    "toFrame": {
      "description": "Only keys up to this frame.",
      "type": [
        "integer",
        "null"
      ],
      "default": null
    }
  },
  "required": [
    "name"
  ]
}

blender_move_keyframes

Shifts keys in time and/or stretches their timing around a pivot frame.

only adds · every call adds · stays inside Blender.

Parameter Type Required Default Description
name string yes — Name of the object as shown in the outliner.
offset number — 0 Frames to shift the keys by; negative moves earlier.
scale number — 1 Factor to stretch the timing by around the pivot; 2 makes the motion twice as slow.
pivot integer? — null Frame the stretch is anchored at; the scene start otherwise.
channels array? — null Animated properties: location, rotation_euler, scale, or any data path such as data.energy for a light, data.lens for a camera, hide_render.
fromFrame integer? — null Only keys from this frame on.
toFrame integer? — null Only keys up to this frame.
JSON Schema
{
  "type": "object",
  "properties": {
    "name": {
      "description": "Name of the object as shown in the outliner.",
      "type": "string"
    },
    "offset": {
      "description": "Frames to shift the keys by; negative moves earlier.",
      "type": "number",
      "default": 0
    },
    "scale": {
      "description": "Factor to stretch the timing by around the pivot; 2 makes the motion twice as slow.",
      "type": "number",
      "default": 1
    },
    "pivot": {
      "description": "Frame the stretch is anchored at; the scene start otherwise.",
      "type": [
        "integer",
        "null"
      ],
      "default": null
    },
    "channels": {
      "description": "Animated properties: location, rotation_euler, scale, or any data path such as data.energy for a light, data.lens for a camera, hide_render.",
      "type": [
        "array",
        "null"
      ],
      "items": {
        "type": [
          "string",
          "null"
        ]
      },
      "default": null
    },
    "fromFrame": {
      "description": "Only keys from this frame on.",
      "type": [
        "integer",
        "null"
      ],
      "default": null
    },
    "toFrame": {
      "description": "Only keys up to this frame.",
      "type": [
        "integer",
        "null"
      ],
      "default": null
    }
  },
  "required": [
    "name"
  ]
}

blender_add_fcurve_modifier

Adds an F-Curve modifier to the object's animation curves: repeat with CYCLES, jitter with NOISE, and the rest.

only adds · every call adds · stays inside Blender.

Parameter Type Required Default Description
name string yes — Name of the object as shown in the outliner.
type string yes — CYCLES (repeat), NOISE, ENVELOPE, LIMITS, STEPPED, GENERATOR or FNGENERATOR.
channels array? — null Animated properties: location, rotation_euler, scale, or any data path such as data.energy for a light, data.lens for a camera, hide_render.
settings object? — null Modifier settings by Python name, e.g. NOISE {"strength": 0.5, "scale": 10}, CYCLES {"mode_after": "REPEAT_OFFSET"}.
JSON Schema
{
  "type": "object",
  "properties": {
    "name": {
      "description": "Name of the object as shown in the outliner.",
      "type": "string"
    },
    "type": {
      "description": "CYCLES (repeat), NOISE, ENVELOPE, LIMITS, STEPPED, GENERATOR or FNGENERATOR.",
      "type": "string"
    },
    "channels": {
      "description": "Animated properties: location, rotation_euler, scale, or any data path such as data.energy for a light, data.lens for a camera, hide_render.",
      "type": [
        "array",
        "null"
      ],
      "items": {
        "type": [
          "string",
          "null"
        ]
      },
      "default": null
    },
    "settings": {
      "description": "Modifier settings by Python name, e.g. NOISE {\u0022strength\u0022: 0.5, \u0022scale\u0022: 10}, CYCLES {\u0022mode_after\u0022: \u0022REPEAT_OFFSET\u0022}.",
      "type": [
        "object",
        "null"
      ],
      "default": null
    }
  },
  "required": [
    "name",
    "type"
  ]
}

blender_add_marker

Adds a timeline marker, optionally binding a camera to it so the render switches cameras there.

only adds · every call adds · stays inside Blender.

Parameter Type Required Default Description
frame integer? — null Frame of the marker; the current frame otherwise.
markerName string? — null Marker name.
camera string? — null Camera that becomes active from this marker on (camera switching).
JSON Schema
{
  "type": "object",
  "properties": {
    "frame": {
      "description": "Frame of the marker; the current frame otherwise.",
      "type": [
        "integer",
        "null"
      ],
      "default": null
    },
    "markerName": {
      "description": "Marker name.",
      "type": [
        "string",
        "null"
      ],
      "default": null
    },
    "camera": {
      "description": "Camera that becomes active from this marker on (camera switching).",
      "type": [
        "string",
        "null"
      ],
      "default": null
    }
  }
}