# Keyframe(bpy_struct)

base class — `bpy_struct`

class `bpy.types.``Keyframe`(bpy_struct)

  Bezier curve point with two handles defining a Keyframe on an F-Curve

  `amplitude`

    Amount to boost elastic bounces for ‘elastic’ easing

    Type: | float in [0, inf], default 0.0

  `back`

    Amount of overshoot for ‘back’ easing

    Type: | float in [-inf, inf], default 0.0

  `co`

    Coordinates of the control point

    Type: | float array of 2 items in [-inf, inf], default (0.0, 0.0)

  `easing`

    Which ends of the segment between this and the next keyframe easing interpolation is applied to

    - `AUTO` Automatic Easing, Easing type is chosen automatically based on what the type of interpolation used (e.g. ‘Ease In’ for transitional types, and ‘Ease Out’ for dynamic effects).
    - `EASE_IN` Ease In, Only on the end closest to the next keyframe.
    - `EASE_OUT` Ease Out, Only on the end closest to the first keyframe.
    - `EASE_IN_OUT` Ease In and Out, Segment between both keyframes.

    Type: | enum in [‘AUTO’, ‘EASE_IN’, ‘EASE_OUT’, ‘EASE_IN_OUT’], default ‘AUTO’

  `handle_left`

    Coordinates of the left handle (before the control point)

    Type: | float array of 2 items in [-inf, inf], default (0.0, 0.0)

  `handle_left_type`

    Handle types

    - `FREE` Free.
    - `VECTOR` Vector.
    - `ALIGNED` Aligned.
    - `AUTO` Automatic.
    - `AUTO_CLAMPED` Auto Clamped, Auto handles clamped to not overshoot.

    Type: | enum in [‘FREE’, ‘VECTOR’, ‘ALIGNED’, ‘AUTO’, ‘AUTO_CLAMPED’], default ‘FREE’

  `handle_right`

    Coordinates of the right handle (after the control point)

    Type: | float array of 2 items in [-inf, inf], default (0.0, 0.0)

  `handle_right_type`

    Handle types

    - `FREE` Free.
    - `VECTOR` Vector.
    - `ALIGNED` Aligned.
    - `AUTO` Automatic.
    - `AUTO_CLAMPED` Auto Clamped, Auto handles clamped to not overshoot.

    Type: | enum in [‘FREE’, ‘VECTOR’, ‘ALIGNED’, ‘AUTO’, ‘AUTO_CLAMPED’], default ‘FREE’

  `interpolation`

    Interpolation method to use for segment of the F-Curve from this Keyframe until the next Keyframe

    - `CONSTANT` Constant, No interpolation, value of A gets held until B is encountered.
    - `LINEAR` Linear, Straight-line interpolation between A and B (i.e. no ease in/out).
    - `BEZIER` Bezier, Smooth interpolation between A and B, with some control over curve shape.
    - `SINE` Sinusoidal, Sinusoidal easing (weakest, almost linear but with a slight curvature).
    - `QUAD` Quadratic, Quadratic easing.
    - `CUBIC` Cubic, Cubic easing.
    - `QUART` Quartic, Quartic easing.
    - `QUINT` Quintic, Quintic easing.
    - `EXPO` Exponential, Exponential easing (dramatic).
    - `CIRC` Circular, Circular easing (strongest and most dynamic).
    - `BACK` Back, Cubic easing with overshoot and settle.
    - `BOUNCE` Bounce, Exponentially decaying parabolic bounce, like when objects collide.
    - `ELASTIC` Elastic, Exponentially decaying sine wave, like an elastic band.

    Type: | enum in [‘CONSTANT’, ‘LINEAR’, ‘BEZIER’, ‘SINE’, ‘QUAD’, ‘CUBIC’, ‘QUART’, ‘QUINT’, ‘EXPO’, ‘CIRC’, ‘BACK’, ‘BOUNCE’, ‘ELASTIC’], default ‘CONSTANT’

  `period`

    Time between bounces for elastic easing

    Type: | float in [-inf, inf], default 0.0

  `select_control_point`

    Control point selection status

    Type: | boolean, default False

  `select_left_handle`

    Left handle selection status

    Type: | boolean, default False

  `select_right_handle`

    Right handle selection status

    Type: | boolean, default False

  `type`

    Type of keyframe (for visual purposes only)

    - `KEYFRAME` Keyframe, Normal keyframe - e.g. for key poses.
    - `BREAKDOWN` Breakdown, A breakdown pose - e.g. for transitions between key poses.
    - `EXTREME` Extreme, An ‘extreme’ pose, or some other purpose as needed.
    - `JITTER` Jitter, A filler or baked keyframe for keying on ones, or some other purpose as needed.

    Type: | enum in [‘KEYFRAME’, ‘BREAKDOWN’, ‘EXTREME’, ‘JITTER’], default ‘KEYFRAME’

Inherited Properties

`bpy_struct.id_data` |

Inherited Functions

`bpy_struct.as_pointer` `bpy_struct.driver_add` `bpy_struct.driver_remove` `bpy_struct.get` `bpy_struct.is_property_hidden` `bpy_struct.is_property_readonly` `bpy_struct.is_property_set` `bpy_struct.items` | `bpy_struct.keyframe_delete` `bpy_struct.keyframe_insert` `bpy_struct.keys` `bpy_struct.path_from_id` `bpy_struct.path_resolve` `bpy_struct.property_unset` `bpy_struct.type_recast` `bpy_struct.values`

References

`FCurve.keyframe_points` `FCurveKeyframePoints.insert` | `FCurveKeyframePoints.remove`