Read Keyframes
Read keyframe data from an upstream connection.
What it does
Read Keyframes taps any connection in the graph and reports the keyframe data animating it. Wired to a whole node's output it reads every keyframe on that node; wired to a specific parameter, only that value; wired to a single component such as the X of a position, only that component.
The connected value passes through unchanged. Alongside it come read-only outputs: how many keyframes exist, whether the source is animated, whether the current frame lands exactly on a keyframe, the first and last keyframe frames, and full lists of every keyframe frame and value.
When to use it
Confirming an upstream parameter is animated before building logic on top of it.
Triggering something only on keyframe frames, via
has_keyframe.Getting the first or last frame of an animated range without scrubbing the timeline by hand.
Pulling raw keyframe frames and values out of the graph for an Expression, a plot, or a custom curve.
| Parameter | Type | Default |
|---|---|---|
source | Any | — |
Gotchas
With no keyframes on the source, first_frame and last_frame come back as -1 rather than 0. Check is_animated first to tell "no keyframes" apart from "a keyframe at frame 0".
Connect Source to the exact port you care about. Connecting to a whole node reads every keyframe across all of its parameters; connecting to one parameter or one component narrows the read to that value.
keyframe_frames and keyframe_values are lists in matching order. Pair them up, in an Expression for instance, for per-keyframe frame and value pairs.
Worked example
Add Read Keyframes.
Wire the parameter you want to inspect, for example a Circle's Position, into Source.
Check
is_animatedto confirm it is keyframed, then readfirst_frameandlast_framefor its animated range.Use
has_keyframeto drive logic that should only fire on exact keyframe frames, or readkeyframe_frames/keyframe_valuesto work with the full curve elsewhere in the graph.