01

Layout Map

KeyPro docks below Maya's native timeline using workspaceControl. The panel is divided into four horizontal zones stacked top to bottom.

KP TIMELINE v1.0 · Long Winter Studios
① Select Sets Bar
Named selection set buttons. Click to reselect any rig group. Add/remove sets via right-click. Sits above the anim bar.
② Anim Bar (Toolbar)
Full animation toolbar: TWEEN machine · STEP holds · TANGENT types · TOOLS (µT / SS / FC / AL / MIR / TA / TCP) · CURVES (EI / EO / SM / PP / SB / SKT / PH) · BAKE (RET / LAY / ALL)
③ Strip Row ← main interactive surface
Left: Frame start label · Center: KeyPro Strip (heat bar / tick zone / waveform / key density) · Right: Frame end label + Transport Bar
④ Range Bar (Bottom)
Left: live frame counter + scene range readout · Right: MASTER start/end spinboxes · HANDLES toggle · AUTO-FRAME · JUMP-KEY · ⚙ Settings
Docking: KeyPro docks as a workspaceControl tabbed alongside Maya's Time Slider. If it's floating, drag its title bar to the timeline area. Double-click the title bar to re-dock.
02

Data Layers

The strip renders four independent data layers simultaneously, all in a single painted surface — no child widgets, no flicker.

Layer What it shows Color
Heat Bar A 2px bar at the very top of the strip. Encodes how much of the master range you're currently viewing.
Full master
75%
50%
25%
Zoomed deep
Drawn last — always visible over other layers.
Blue → Red
Audio Waveform Cached RMS waveform rendered per screen pixel using the audio node attached to the Maya scene. Mirrored vertically, centered in the data zone. Updates on scene open and new scene. Non-interactive — purely visual.
Reads Maya's audio node automatically. No setup required.
Gray
Key Density Ticks Every keyframe on every selected node rendered as a vertical tick in the data zone. Tick height scales with the tick size setting. Color encodes how many curves have a key at that frame:
1–2 curves
Mid density
Max density
Updates whenever the key cache refreshes (on scene edit, selection change).
Blue → Pink
Master Range Markers Cyan vertical lines at the master range start and end. If Handles is on, blue transparent zones extend outward by the handle frame count. Double-click the strip to snap Maya's playback range back to the master range.
Master range is persisted as JSON alongside your .ma / .mb scene file.
Cyan
Playhead Orange vertical line + downward-pointing triangle at the top. Tracks Maya's current time. Scrub by left-dragging anywhere on the strip. Orange
Shift-Select Range Orange transparent fill between shift-drag start and end. Edge lines show exact bounds. Frame range label appears in the center when wide enough. Keys within this range are the target for nudge, delete, cut/copy, and mid-mouse drag operations. Orange
Hover Ghost Green bar under the cursor while hovering (not scrubbing). Shows which frame you're about to interact with. Disappears during drag operations. Green
03

Mouse Controls

All interactions happen directly on the strip surface. No modifier key is needed for the most common operations.

Left Drag
Scrub — sets Maya's current time to the frame under cursor. Excluded from undo queue.
Scroll Wheel
Zoom — zooms the strip's view range in or out, centered on the cursor position. Scroll up = zoom in, down = zoom out.
Alt+Left Drag
Pan — shifts the view range left or right without changing zoom. Cursor becomes a closed hand.
Shift+Left Drag
Shift-Select — draws a frame selection range (orange highlight). Anchor point is where you start dragging. Drag left or right to extend.
Middle Drag
Move Keys — on a frame with keys: grabs those keys and moves them live using raw MFnAnimCurve API. On a shift-selected range: moves all keys in the range as a block.
Preview is instant; commit on release via cmds.keyframe — single undoable chunk.
Dbl Click
Reset Zoom + Apply Master Range — resets the strip's zoom to the full scene range and applies the master range to Maya's playback range.
Ctrl+Dbl Click
Zoom to Frame ±10 — zooms the strip view to a tight 20-frame window centered on the clicked frame.
Right Click
Context Menu — opens the full key operations menu at cursor position. See Context Menu section for all items.
Ctrl+Right Click
Inbetweener — opens the floating blend slider at the clicked frame. See Inbetweener section.
04

Keyboard

Keyboard shortcuts active when the strip has focus. Spacebar requires the optional override to be enabled in Settings.

Del or Backspace
Delete Keys in Range — deletes all keys on selected nodes within the current shift-select range. Does nothing if no range is active.
Space
Play / Stop — toggles Maya playback. Requires the Spacebar Override to be enabled in Settings. When enabled, Space is remapped from Maya's default (maximize pane) to KeyPro's play toggle.
Strip focus: The strip must have keyboard focus for Del/Backspace to fire. Click the strip first. Spacebar override is global — it fires from anywhere in Maya once enabled.
05

Context Menu

Right-click anywhere on the strip to open the context menu. Items are enabled/disabled based on whether you have a selection and/or an active range.

Item Action Requires
Frame N Informational header showing the clicked frame number. Not clickable.
Selection A → B Informational header showing the active shift-select range, if one exists. Range
Cut Keys Cuts keys on selected nodes within the shift-select range to the clipboard. Selection Range
Copy Keys Copies keys on selected nodes within the shift-select range. Selection Range
Paste Keys Pastes clipboard keys at the right-clicked frame position using merge mode. Selection
Delete Keys Deletes all keys on selected nodes within the shift-select range. Same as Del key when a range is active. Selection Range
Set Key at Frame Sets a keyframe on all selected nodes at the right-clicked frame. Selection
Set Master Start Here Moves the master range start to the right-clicked frame. Saves to JSON. Master
Set Master End Here Moves the master range end to the right-clicked frame. Saves to JSON. Master
Set Master Range to Selection Sets both master start and end to match the active shift-select range. Master Range
Clear Selection Clears the shift-select range highlight. Range
Reset Zoom Resets the strip's zoom to show the full scene range. Same as double-click.
Nudge Keys ▸ Submenu: ← 1f, → 1f, ← 5f, → 5f, ← 10f, → 10f. Nudges all keys on selected nodes by that many frames. If a shift-select range is active, nudges only keys within that range. Selection
06

Inbetweener

A floating blend slider that opens on Ctrl + Right Click at any frame. Blends attribute values between the two bracketing keys on either side of the clicked frame.

0% Copies the value of the previous key exactly.
50% Linear midpoint between prev and next key values.
100% Copies the value of the next key exactly.
Drag slider Live preview — values update in the viewport as you drag. No key is written until you release.
Release Commits the blended value as a keyframe at the clicked frame. Single undoable operation.
Click outside Same as release — commits and closes the popup.
Escape Cancels — undoes the preview and closes without writing a key.
Enter Commits at the current slider value and closes.
Works whether or not a key already exists at the frame. If the frame already has a key, that key's value is replaced. The inbetweener finds the nearest prev/next keys strictly outside the current frame to avoid self-referencing.
07

Tween Machine

The leftmost section of the anim bar. A full aTools-compatible tween row with overshoots, linear tweens, and percentage presets. Operates on graph-editor selected keys when the GE is visible, otherwise on the timeline range selection.

Linear Group (Left edge)
◂L Linear Prev
Extrapolate linearly past the previous key — overshoots in the prev direction using linear slope.
L True Linear
Interpolates the value using true linear math between prev and next key times — not a percentage blend.
L▸ Linear Next
Extrapolate linearly past the next key — overshoots in the next direction using linear slope.
Main Tween Row
Button%What it does
◂◂−50%Overshoot 50% past the previous key value
−30%Overshoot 30% past the previous key value
−10%Overshoot 10% past the previous key value
P0%Copy the previous key's value exactly
3310%10% of the way from prev toward next
2020%20% of the way from prev toward next
1033%33% of the way from prev toward next
5050%Exact midpoint between prev and next
1066%66% of the way toward next
2080%80% of the way toward next
3390%90% of the way toward next
N100%Copy the next key's value exactly
110%Overshoot 10% past the next key value
130%Overshoot 30% past the next key value
▸▸150%Overshoot 50% past the next key value
Tween buttons mark intermediate keys with tickDrawSpecial (orange ticks in Maya's native timeline). The new key inherits the tangent type of the previous key. Fully undoable as a single chunk per click.
08

Stepped / Holds

Four numbered buttons (1, 2, 3, 4) in the STEP section of the anim bar. Two modes depending on modifier key.

Click 1 / 2 / 3 / 4
Set Stepped Tangents Only — applies step/stepnext tangents to keys in the timeline range (or GE selected keys). Does not change key timing or values. Fast, non-destructive.
Shift+Click
1 / 2 / 3 / 4
Resample + Step Tangents — resamples all curves to every N frames, deletes in-between keys, sets step/stepnext tangents. Uses shift-select range if active, otherwise full playback range.
⚠ Destructive within the range — deletes existing keys and replaces with sampled values.
09

Tangents

Seven tangent buttons in the TANGENT section. Click applies to the current GE selection or timeline range. Right-click reveals options for applying to all keys, first/last key only, or in/out direction independently.

FLOW Flow
Balances both tangent handles at each key so the curve passes through smoothly. Uses weighted tangent math. Linearizes endpoints to avoid overshoots. Custom Long Winter algorithm.
BNCE Bounce
Mirrors the incoming tangent handle to create a physical bounce effect — the curve arrives and leaves at symmetric angles. Good for bouncing balls and secondary motion.
AUTO Auto
Maya's Auto tangent. Smooth, tries to avoid overshoots.
SPLN Spline
Maya's Spline tangent. Smooth, allows overshoots. Classic production default.
LIN Linear
Straight line between keys. No ease in or out.
FLAT Flat
Horizontal handles — zero slope at the key. Creates ease in/out effect.
STEP Step
Holds the value until the next key — no interpolation. Same as the STEP section buttons but applied as a tangent type, not a resample.
Right-click any tangent button for options: apply to All Keys, First Key only, Last Key only, In tangent only, or Out tangent only.
10

Special Tools

Seven rig-aware tools in the TOOLS section. Most support right-click for additional options.

µT Micro Transform Toggle
Scales the Maya manipulator speed down to a fine-tuning increment. Click to toggle on/off (button stays lit when active). Right-click to set the speed multiplier.
Useful for making tiny positional adjustments without overshooting.
SS Space Switch
Opens a menu of available spaces for the selected control (reads enum attributes). Selecting a space switches it while preserving the world-space position — no popping. Bakes compensating keys at the current frame.
Right-click shows the same menu. Click = right-click for this tool.
FC Fake Constrain
Click — copies the world-space matrix of the current selection.
Right-click — shows Copy / Copy (relative to target) / Paste / Paste to All Frames options.
Paste sets translate and rotate keys at the copied world matrix position.
Does not modify the rig graph — no constraint nodes created.
AL Align
Click — aligns selected objects' position and rotation to the last selected (target), at the current frame or GE selected key times.
Right-click — Position Only, Rotation Only, Position + Rotation, or All Keys.
Uses point/orient constraints internally to sample values, then deletes them. Applies euler filter on rotation curves.
MIR Mirror
Click — mirrors the current pose to the opposite control (current frame only).
Right-click — Mirror All Keys, Mirror Range, or Mirror Pose options.
Finds the mirror control using naming conventions (L/R, _l/_r, Left/Right prefixes/suffixes).
TA Transform All Toggle
When active (lit), propagates value changes made to any keyable attribute across all keys on that curve — not just the current frame. Click to toggle. Right-click for options.
Useful for bulk-adjusting an offset across an entire animation range.
TCP Temp Custom Pivot Toggle
Creates a temporary locator and parents selected controls to it, giving them a shared custom pivot point for group transforms. Click again to clear the pivot and restore the original hierarchy.
Right-click to set the pivot position (selection center, world origin, or cursor position).
11

Curve Tools

Seven tools in the CURVES section. Slider tools (EI, EO, SM, PP) open a floating horizontal slider on click — drag to preview live, release to commit. Discrete tools (SB, SKT, PH) fire immediately.

Slider Tools — opens floating slider on click
EI Ease In
Redistributes intermediate key values along a cubic ease-in curve (slow start, fast end) between the first and last selected keys. Slider from 0 (no change) to 1 (full ease). Live preview, single undo on commit.
Escape to cancel and restore original values.
EO Ease Out
Same as Ease In but with a fast-start, slow-end curve. Good for deceleration.
SM Smooth
Averages each intermediate key value with its neighbors. Slider: right = smooth, left = roughen (push values away from neighbors). Works on GE selected keys or timeline range.
PP Pull / Push
Scales key values relative to their average. Right (Push) = amplify motion, moves values further from average. Left (Pull) = dampen motion, moves values toward average. Slider from −1 to +1.
Discrete Tools — fires immediately on click
SB Simplify
Removes redundant keys while preserving curve shape. Uses Maya's filterCurve simplify with tight tolerances (time: 0.05, value: 0.01). Operates on GE selected keys or timeline range.
SKT Share Key Times
Finds every key time across all selected controls and inserts a key at that time on every other curve (at its currently evaluated value). Ensures all curves share the same key frame positions.
Useful before baking or when controls need to be in sync for retargeting.
PH Project Handles
Adds a key 5 frames before the first key and 5 frames after the last key on every curve in the scene, using linear extrapolation of the adjacent segment. Prevents unintended curve drift near the edges.
Run this before any bake operation — it's automatically called by RET, LAY, and ALL.
12

Bake Tools

Three bake operations in the BAKE section. All are destructive and show a confirmation dialog before running. Project Handles is called automatically before each bake.

All bake operations are destructive. A confirmation dialog will appear. These cannot be cleanly undone — save your scene first.
RET Bake Retime
Detects Maya's animCurveTT timewarp nodes, evaluates each output frame through the retime curve to find the source time, bakes all driven attributes at that remapped time to normal keyframes, then disconnects and deletes the timewarp curves.
Useful when handing off a retimed shot that needs to be a clean linear timeline.
LAY Merge Layers
Collects all objects driven by non-base anim layers, bakes them to world space across the full playback range using simulation=True, then deletes all non-base layers.
Equivalent to Maya's Bake Simulation + Delete All Layers, but scoped intelligently to only affected objects.
ALL Bake All Curves
Resamples every animated transform in the scene to 1-frame intervals across the full playback range. Used for clean file delivery — guarantees every frame has an explicit key with no simulation or constraint dependency.
Runs Project Handles first, then bakeResults with simulation=True, sampleBy=1.
13

Transport Bar

Sits to the right of the strip. Mirrors Maya's native transport layout. All playback state is synced via scriptJob — the play button updates to ⏹ while playing.

+ / −
Stacked buttons on the far left. + increases key tick size (max 8), decreases (min 1). Affects the height and width of key density ticks in the strip.
|◀
Go to animation start — jumps to animationStartTime (not playback min).
◀|
Previous Key — moves to the nearest keyframe before the current time using Maya's findKeyframe.
Step Back 1 Frame — decrements current time by exactly 1 frame.
▶ / ⏹
Play / Stop — toggles forward playback. Turns cyan and shows ⏹ while playing. Synced to Maya's playingBack state.
(second)
Step Forward 1 Frame — increments current time by exactly 1 frame.
|▶
Next Key — moves to the nearest keyframe after the current time.
▶|
Go to animation end — jumps to animationEndTime.
◀ nudge / nudge ▶
Stacked nudge buttons. Emits a nudge signal that moves all keys on selected nodes by the nudge step. Default step is 1 frame. Right-click either button to set step: 1, 2, 5, or 10 frames. Button label updates to show current step (e.g. "◀ 5f").
14

Range Bar

The bottom bar of KeyPro. Live readout on the left, master range controls and toggles on the right.

▶ N Live current frame counter. Updates every frame during playback.
A → B Live scene playback range readout (scene_start → scene_end). Updates when Maya's range changes.
MASTER [start] → [end] Spinbox inputs for the master range start and end frames. Editing either field and pressing Enter (or clicking away) applies the new master range. The master range is saved as JSON next to the scene file on every change.
HANDLES Toggle. When on, blue transparent zones extend outward from the master range markers by the handle frame count (configured in Settings). Handles represent the ease-in/out buffer frames. Double-click the strip with handles on applies the extended range to Maya.
AUTO-FRAME Toggle. When on, the Graph Editor zooms automatically to fit the key range of the current selection on every SelectionChanged event. Also fires when the strip's view range changes (zoom/pan). Mirrors aTools framePlaybackRange behavior.
JUMP-KEY Toggle. When on, the timeline jumps to the average time of any keys selected in the Graph Editor on SelectionChanged. A guard flag prevents the scriptJob from retriggering itself. Mirrors aTools animMod.jumpToSelectedKey.
Opens the Settings panel. See Settings section.
15

Select Sets Bar

A compact bar above the anim bar. Each button is a named selection set — clicking it reselects that group of objects in Maya. Sets are saved per-scene.

Click button Reselects all objects in that set in Maya's viewport.
Right-click button Context menu: Rename, Update (replace set contents with current selection), Delete.
+ button Creates a new set from the current Maya selection. A dialog prompts for the set name.
16

Settings

Opens as a floating panel near the ⚙ button. Closes when you click elsewhere.

Spacebar Override Remaps the Space key from Maya's default (maximize pane) to KeyPro's Play/Stop toggle. Uses Maya's runTimeCommand and hotkey system — creates a named command axeTimelinePlayStop. Disabling restores Maya's default ToggleUIElements hotkey. Setting persists in Maya prefs between sessions.
Nudge Step Sets the default step for the nudge buttons in the Transport Bar. Can also be set by right-clicking the nudge buttons directly.