Timeline Improver
A deep quality-of-life overhaul for Timeline.
Version
1.4
Access
Pro
Category
Animation
GUID user.timeline.improver
Overview
Timeline Improver is a Studio-only add-on that layers dozens of quality-of-life features onto joan6694's Timeline animation plugin. It fixes the long-standing broken keyframe paste, then adds rich right-click menus, easing presets, smooth spline motion through position keyframes, a repeat-at-intervals tool, built-in undo/redo, a curve editor, a viewport motion-path overlay, color-coded keyframe groups, and everyday editing shortcuts, all with an optional dark/light theme and custom font. It also bundles a body ripple/shockwave effect system that can be keyframed inside Timeline or fired live on collisions. It runs only inside HS2 Studio and requires the Timeline plugin to be installed.
Hotkeys
| Key | Action |
|---|---|
| Ctrl+C / Ctrl+X / Ctrl+V | Copy, cut, and paste the selected keyframes (works with either Ctrl key and while extra modifiers are held) |
| F2 | Rename every selected parameter (rebindable) |
| T | Drop a keyframe at the playback cursor on every selected parameter (rebindable) |
| M | Toggle the viewport motion-path overlay (rebindable) |
| G | Open or close the Keyframe Groups window (rebindable) |
| H | Open or close the curve / graph editor window (rebindable) |
| Esc | Close the active Timeline Improver dialog, rename box, or window |
| Ctrl+Shift+P | Re-apply the pinned-parameter ordering right now |
| K | Fire a ripple / shockwave on the visible character body (bundled ripple system, rebindable) |
| L | Clear all active ripples (rebindable) |
| N | Toggle the ripple tuning window (rebindable) |
| J | Toggle automatic collision-driven ripples on or off (rebindable) |
| F10 | Log ripple contact diagnostics to the BepInEx console (rebindable) |
Features
- Reliable keyframe pasteFixes the stock plugin's silent paste-abort so a copied block actually lands, letting overlapping keyframes overwrite (or skip) instead of cancelling the whole paste, and briefly pulses the new keyframes so you can see where they went.
- Repeat keyframes at intervalsA dialog that stamps the selected keyframes down the timeline at a fixed time interval, either a set number of times or all the way until the end of the animation.
- Rich right-click menusRight-clicking a keyframe or a parameter row adds actions like seek-to-here, select all keyframes with the same value, select every other node, set interpolation, and repeat.
- Easing interpolation presetsApply Linear, Smooth, Ease In, Ease Out, or Step easing to the selected keyframes or to every keyframe of a whole channel in one click.
- Curved spline motionMark position keyframes so the object arcs smoothly through them instead of moving in straight lines, choosing between Catmull-Rom, Natural (C2), B-spline, and Hermite curves with adjustable tension per keyframe or globally.
- Undo and redoAn on-screen Undo/Redo bar pinned to the Timeline window steps back and forward through keyframe edits, keeping up to 100 history states.
- Curve editor windowA pop-up graph editor lets you drag control points and in/out tangent handles to shape a keyframe's easing curve, apply presets, and mirror the result across every selected keyframe.
- Motion-path overlayDraws the selected position parameter's real trajectory in the 3D viewport, curved when the keyframes are splined, with a marker at each keyframe.
- Keyframe groupsCreate color-coded, named groups of keyframes that tint in the grid and can be re-selected as a set with a single click for easier organization of complex animations.
- Everyday editing shortcutsRename selected parameters, add a keyframe at the playhead across all selected parameters, and automatically select a parameter's linked guide object in the scene when you pick it.
Configuration
| Setting | Default | What it does |
|---|---|---|
| Paste: On time conflict | Overwrite | What happens when a pasted keyframe lands on a time that already has one: Overwrite replaces it, Skip keeps the original and drops the paste, Abort cancels the whole paste (the old Timeline behavior). |
| Highlight pasted keyframes | true | Briefly pulse newly pasted keyframes so you can spot where they landed; pulse colors, duration, and speed are all adjustable. |
| Enable shortcut fallback | true | Lets the plugin listen for Ctrl+C/X/V itself so copy/cut/paste keep working even when another plugin has hijacked the keys; turn off to rely only on Timeline's own binding. |
| Pin to top of list | (selected object pos/rot/scl) | Comma-separated parameter names that are kept at the top of the parameter list in the given order; leave empty to disable. |
| Spline: Algorithm | Catmull-Rom | Default curve type for newly splined keyframes; also selectable per keyframe from the right-click Spline submenu. |
| Spline: Tension | 1.0 | Overall strength of spline curves, from 0 (straight line) through 1 (standard) up to 4 (dramatic overshoot); meaning varies slightly by algorithm. |
| Theme: Dark mode | true | Switches the Repeat dialog, context menus, and Timeline's own UI between a dark and a light color scheme; the change applies immediately. |
| Custom font family | (empty) | OS-installed font family for the dialog and menus; empty uses the bundled default Questrial if installed, otherwise Arial. |
| Custom font size override | 0 | Pixel size for the dialog and menu text; 0 keeps the existing default sizes. |
| Replace keyframe at same time | true | When the add-keyframe shortcut hits a time that already has a keyframe, replace it; off leaves the existing one untouched. |
| Auto-select linked GuideObject | true | Selecting a parameter also selects its linked guide object in the scene. |
| Motion Path: Smoothness | 24 | Samples drawn per keyframe segment for the viewport motion-path line; higher is smoother. |
| Tint grouped keyframes | true | Tints grouped keyframes in the grid with their group color (selected and freshly pasted keyframes keep their normal highlight). |
| Collision ripples: Enable | true | Bundled ripple system automatically fires ripples where bodies collide; turn off to use only the manual hotkey. |
| Contact denting: Enable | true | Bundled ripple system dents the skin around fingers and palms via GPU contact deformation; requires Hanmen's contact shader to be visible. |
Requirements
- Timeline (joan6694). Hard dependency. Timeline Improver enhances joan6694's Timeline and hooks directly into its internals, so it will not load unless Timeline is installed.
- HS2 Studio (StudioNEOV2). The plugin only runs in Studio; it does nothing in the main game.
- KKAPI / HS2API (optional). Soft dependency used by the bundled ripple system's Studio toolbar button; loaded first if present but not required.
- Hanmen displacement / contact shader (optional). The bundled ripple mesh displacement works on its own, but the normal-mode and skin-contact denting effects stay inert until Hanmen's shader is present.
- Questrial font (optional). The plugin's intended dialog and menu look uses the free Questrial font; without it the text falls back to Arial.
Tips
- Undo and redo live on the on-screen bar at the top-right of the Timeline window, not on a Ctrl+Z shortcut.
- Spline marks, per-keyframe tension, and keyframe groups are session-only and reset when you load or import a scene, so re-apply them after loading.
- Right-click a parameter row (not just a keyframe) to re-curve or spline an entire channel at once without selecting all its keyframes first.
- The bundled ripple/shockwave system is fired with K, cleared with L, and tuned with the N window; some of its effects need Hanmen's shader to appear.