Skip to content

Anim Tools

WbpAnimTools is an editor-only UI Foundry module with 18 focused inspection and cleanup panels for Widget Blueprint animation data. Use Animation Studio for direct keyframe and curve editing, Animation Workbench for hierarchy and clip coverage, and Anim Tools for targeted inspection, cleanup, remapping, and reports.

The tool works on standard UWidgetAnimation and MovieScene data. It does not introduce a new runtime format.

Anim Tools also connects the animation side of UI Foundry to the material side. It can detect material/parameter-like animation tracks, compare animated parameter names against discoverable widget template materials, and remap stale material parameter paths. When you need to inspect or document the material asset itself, continue in WBP Materials.

Some panels are inspection-only. Supported repairs include key cleanup, widget binding remapping, tangent normalization, and explicit track/channel removal, with undo, backup preparation, and copyable reports. General FPS conversion and automatic project-wide animation migration are not implemented.

For validation scenarios, see Anim Tools Test Cases.

Anim Tools is owned by the Widget Blueprint editor. Open a Widget Blueprint, then use that editor’s UI Foundry -> Anim Tools entry or dockable Anim Tools tab. The panel targets the owning Widget Blueprint directly; it is not exposed as a general level-editor utility and does not show a top-level asset picker.

Because the tab is WBP-editor-owned, it behaves more like Details or Animations than a global singleton. Opening it from a Widget Blueprint scopes every scan, repair, backup, and navigation action to that editor’s current Widget Blueprint. If an explicit Widget Blueprint is passed to the module, the tool verifies it matches the live editor before opening, so stale menu contexts do not retarget the wrong asset.

The module provides:

  • a catalog of the 18 available inspection and cleanup panels
  • a health summary for the selected Widget Blueprint
  • compact WBP-owned top controls with no separate asset picker, Use Selected button, Refresh button, or pin toggle
  • per-Widget Blueprint editor tab/menu registration, instead of a shared global Tools menu hook
  • a tool dropdown that controls enabled tools, per-user tool order, reset-to-default ordering, and per-tool move-up/move-down actions
  • issue rows with severity, fix-risk classification, context, detail, and recommendation
  • copyable Markdown report output
  • safe-fix review focus for issues classified as safe
  • configurable backup-before-apply behavior, including save-if-unsaved, persistent backup path/name settings, backup naming tokens, and a Content Browser folder picker
  • scanning for stale widget animation bindings
  • remapping stale widget animation bindings to existing replacement widgets while preserving binding GUIDs
  • removing stale widget bindings as a destructive fallback
  • scanning for stray MovieScene bindings
  • dedicated Sequencer Track Doctor summary for missing MovieScene data, stray bindings, and safe removals
  • removing empty or unsupported-key tracks through Unused Track Finder
  • dedicated Unused Track Finder summary for no-section tracks, no-key tracks, and safe removes
  • duplicate key detection for float, bool, byte, color, and 2D transform channels
  • duplicate key cleanup for supported channels
  • dense-key detection for likely over-authored channels
  • extreme/non-finite tangent detection for float channels
  • tangent/interpolation cleanup for supported float channels
  • faster duplicate-frame checks on sorted key times
  • material/parameter-like track detection for remap review
  • material parameter inventory checks against discoverable widget template materials
  • material parameter findings classified as Valid, Missing, Runtime, or Unknown
  • Blueprint graph scanning for common dynamic material setup nodes such as dynamic material creation/fetch and material assignment calls, with clearer confirmed/likely runtime-material evidence
  • material remap source candidates and source-prefill rows
  • material remap picker menus populated from checker findings and discoverable material parameter inventories
  • material remap dry-run affected-track counts before apply
  • material/parameter-like MovieScene property remapping by exact source/target text
  • Rename Migration Runner aggregation for widget binding, material parameter, and stale property-path migration candidates
  • event/function-like track detection for reference review
  • Event Track Auditor rows for Sequencer event/function tracks and missing state-machine entry, exit, or transition-condition callbacks
  • Blueprint callback validation that checks generated classes, skeleton classes, function graphs, and Ubergraph pages before reporting missing callbacks
  • suspicious property path detection
  • visibility/opacity conflict detection
  • Frame & State Drift checks for loop-like clips whose first/last float values can pop on repeat
  • empty playback range and section-outside-range checks, including custom Range Guard start/end time
  • Range Guard cleanup for supported float, bool, byte, color, and 2D transform channels
  • animation parity rows for binding, track, and key-volume comparison across clips
  • State Compatibility Checker validation for owned or clip-matched state machine definitions, including missing clips, duplicate state names, invalid transition targets, invalid initial state, shared clip reuse, invalid curve-atlas timing, and looping states with finish-trigger transitions
  • clickable navigation to animation/widget/track/section/key sources where available
  • Go To actions for rows that can reveal a concrete animation, track, section, key, widget, or state-machine source
  • per-user enabled-tool and tool-order persistence
  • grouped Track Purger filters with parent/child channel selection and per-group candidate counts

Tool enablement, tool order, and backup behavior are stored in Anim Tools project/editor settings, so a team’s default repair posture can stay consistent between editor sessions. Mutating actions still create undo transactions and refresh the scan after apply.

The catalog contains the following 18 panels. The shared health dashboard summarizes their findings and is not an additional panel.

  • Redundant Keyframe Cleaner
  • Interpolation Cleaner
  • Animation Reference Checker
  • Animation Material Parameter Checker
  • Material Parameter Remapper
  • Broken Widget Binding Repair
  • Animation Parity Map
  • Unused Track Finder
  • Rename Migration Runner
  • Range Guard
  • Interaction State Inspector
  • Duration / FPS Normalizer
  • Key Usage Map
  • State Compatibility Checker
  • Sequencer Track Doctor
  • Event Track Auditor
  • Frame & State Drift Checker
  • Track Purger

Every finding is classified with a risk level:

  • Safe Fix: likely safe to automate after preview, such as redundant keys or stale MovieScene bindings.
  • Confirm: likely repairable, but requires a user-selected target or timing decision.
  • Manual: useful finding, but not enough context to safely automate yet.
  • Danger: explicitly destructive operations, such as selected track or channel removal, that require careful review of their scope.
  • Inspect: informational review item.

This is intentionally conservative. The module should earn trust by explaining before it edits.

Use Animation Studio to edit keys and curves. Use Animation Workbench to review the complete widget hierarchy, compare sibling clips, add standard channels, copy reviewed timing or values, apply scoped repairs, or use its optional state-machine bridge.

Use Anim Tools when you want to audit a Widget Blueprint for broken references, rename damage, over-keyed curves, material parameter risks, unsafe events, or reportable production health.

This scanner looks for UWbpAnimStateMachineDefinition assets that either explicitly point at the current Widget Blueprint through OwnerWidgetClass or plausibly belong to it because their states reference animations in the WBP. Matching definitions are checked against the current clip inventory and Blueprint callback surface.

The checker currently reports:

  • invalid or missing initial state
  • duplicate or unnamed states
  • states that reference missing UWidgetAnimation clips
  • states with neither a WBP animation nor curve-atlas bindings
  • curve-atlas bindings with zero duration
  • invalid auto-transition and tick-condition targets
  • transition FromState / ToState names that do not exist
  • OnAnimationFinished transitions starting from looping or ping-pong states
  • shared clip reuse across multiple states

The auditor is inspect-first. It surfaces event/function-like Sequencer tracks, and it also checks state-machine EntryFunctionName, ExitFunctionName, and transition ConditionFunctionName values against the owning Widget Blueprint. Callback lookup covers generated classes, skeleton classes, function graphs, and Ubergraph pages, which keeps normal Blueprint-authored callbacks from being mislabeled as missing. Findings are navigable where the source is a MovieScene track or section.

The first version focuses on loop-like animations, using names such as Idle, Loop, or Cycle as a conservative signal. It flags float channels whose first and last authored values differ enough to cause a visible seam or persistent-state pop. The finding is manual-review by design because a mismatch can be intentional.

The checker scans material/parameter-like MovieScene property tracks and, when the bound widget template exposes materials through reflected properties, compares the animated parameter name against the material inventory. If template material data is unavailable, it also scans Blueprint graphs for common dynamic material setup evidence such as dynamic material creation/fetch nodes and material assignment calls.

For material-asset metadata, custom previews, graph-node inspection, parameter organization, texture usage, function dependencies, or UI compliance review, use WBP Materials. The remapper focuses on the Widget Blueprint animation track; the Material Library and Material Editor panels focus on the material asset.

Results are classified as:

  • Valid: the animated parameter exists on a discoverable material.
  • Missing: the widget has discoverable material parameters, but the animated name was not found.
  • Runtime: no template material inventory was found, but Blueprint graph evidence confirms or strongly suggests the widget creates, fetches, or assigns a material dynamically.
  • Unknown: the track looks material-related, but the widget has no discoverable template material inventory. This commonly means the material is assigned dynamically at runtime.

The remapper performs exact text replacement in material/parameter-like MovieScene property tracks after a source and target name are provided. Checker rows can prefill the source name, picker menus offer discovered From and To candidates, and the panel shows how many tracks currently match the source text before apply.

When the material graph should own the change instead of the animation track, open the material and use WBP Materials Parameter Organizer to review names, groups, defaults, and sort priority.

Backup settings live in the panel and persist through Anim Tools settings:

  • Backup Before Apply: creates a duplicate of the targeted Widget Blueprint before a mutating action.
  • Save If Unsaved: saves the Widget Blueprint before backup so the duplicate contains the latest editor state.
  • Backup Path: chooses the Content Browser folder used for generated backups.
  • Backup Name Format: supports tokens such as {AssetName}, {YYYYMMDD}, and {HHmmss}.

Every mutating tool reads the same backup configuration before applying a fix. If backup creation fails, the mutation is blocked instead of continuing silently.

Rename Migration Runner is an aggregation cockpit rather than a separate mutation path. It groups likely rename damage and points each case at the safest specialized tool:

  • stale widget animation bindings route to Broken Widget Binding Repair
  • material/parameter-like track names route to Material Parameter Remapper
  • empty or stale property paths route to manual Go To review or removal

The runner is inspect/report only. Apply a supported widget binding or material parameter change in the dedicated remapper. Automatic project-wide animation migration is not implemented.

Unused Track Finder identifies tracks with no sections or no supported keyed data. Its apply action removes those tracks through a scoped transaction after backup/undo protection. Tracks that may be intentionally reserved should be inspected with Go To before removal.

Sequencer Track Doctor inspects lower-level MovieScene health. It reports missing MovieScene data as manual recovery work and reports stray MovieScene bindings when a binding GUID no longer exists in the UWidgetAnimation binding table. Remove Strays deletes those orphaned tracks.

Interaction State Inspector is intentionally inspect-only. It highlights widgets that key both visibility and opacity because these can create invisible-but-interactive or visible-but-disabled states if the clip leaves persistent properties behind.

Range Guard finds keys, events, and sections outside the intended animation range. It can use the animation playback range or a custom time range, and its cleanup path can delete out-of-range supported keys, trim sections, and optionally preserve boundary values before removing keys outside the chosen range.

Despite its panel name, the implemented repair is Normalize Duration: initialize an empty animation playback range from authored section bounds. Existing non-empty ranges are preserved. General FPS conversion, timing-preservation modes for FPS conversion, and automatic project-wide retiming are not implemented.

Key Usage Map is an inspect-only density view. It summarizes keyed channel and key counts for the current selection and per animation, and animation rows are clickable so the selected animation in Sequencer can drive the current summary. It does not list every individual keyframe by default because large WBPs can contain thousands of keys; detailed key navigation belongs in the repair tools that need exact rows, such as Redundant Keyframe Cleaner and Range Guard.

Track Purger is the intentionally destructive cleanup tool for removing selected track, property, or channel types across the owning Widget Blueprint’s animations. It supports grouped and granular filters for transform channels, color/opacity channels, visibility/enabled tracks, material-like tracks, events, primitive property tracks, empty tracks, and other fallback categories. Parent filter selections cover and disable their children so users cannot accidentally double-select the same purge target.