Statewright - Animator Controller Authoring Workspace
A downloadable asset pack
It edits the .controller asset your character actually runs on, then gets out of the way.
Unity's Animator window is a good viewer and a slow editor. Statewright is a docked workspace over an AnimatorController that does the four authoring jobs it has never supported.
Retune many transitions at once
One list of every transition in the controller: per state, from Any State, and inside nested sub-state machines, which is where a large controller keeps most of its graph. Filter it, select a dozen, and set exit time, duration, fixed duration, offset, interruption source and can-transition-to-self in one operation. Only the fields you tick are written; an untouched field is left alone rather than stamped with a default. The whole batch lands as one named undo step, so Ctrl+Z puts all of them back together.
Build a layer from a folder of clips
Point it at a folder and it creates one state per clip, named after the clip, with the clip assigned, laid out on a grid below whatever is already there. Clips inside an FBX are found. Give it a trigger name and it wires an Any State transition into each new state and creates the parameter. A clip that already has a state is skipped, so re-running after the folder grows is safe.
Copy a whole sub-state machine into another controller
States, nested machines, transitions, conditions, Entry/Exit/Any State routing, blend trees and state machine behaviours are all recreated in the destination, with conditions rewired to the copied states rather than left pointing at the source. Blend trees are deep-copied, because a shared blend tree means editing one character edits the other. Parameters the copy needs are created on the destination with the source's type, or reported by name, your choice, and nothing is written until you choose.
Rename a parameter and take every reference with it
Transition conditions, state speed/mirror/cycle-offset/time parameters, and blend tree blendParameter, blendParameterY and per-child directBlendParameter, recursing into nested trees. Unity's own parameter list renames the parameter and nothing else: every condition keeps the old string and silently stops matching, and neither produces an error.
And the half no controller edit can reach: your C#
It scans your scripts for the string literals that name the parameter (SetBool, SetTrigger, ResetTrigger, SetFloat, SetInteger, GetBool, GetFloat, GetInteger, StringToHash, IsParameterControlledByCurve), shows you every hit with file and line, and rewrites them only when you press the second button. It matches only a literal in the argument position, so it does not touch the state called "Attack", the tag called "Attack" or the word "attack" in a comment. A hit inside a // comment is shown and never rewritten.
What it does not do
It does not replace the Animator Controller, and it does not ask you to adopt a new runtime. If you have already moved to a code-driven animation system, this is not for you. It is for teams who are keeping their controller and are tired of the clicking.
Undo covers the controller edits. It does not cover the C# rewrite: source files are written to disk, which is exactly why the scan and the rewrite are two separate buttons with the full hit list between them. Use version control, as you would for any refactor.
What ships
- Three assembly definitions (Runtime, Editor, Demo), the Editor one platform-constrained so none of it reaches your player build. No Resources/ folder. No package dependencies.
- A demo scene with a real controller: two layers, a 1D locomotion blend tree, a nested Combat sub-state machine with a Finisher nested inside that, and Any State transitions. Press Play.
- Full readable source with XML documentation on every public API. Nothing is obfuscated or minified.
- One optional runtime struct, StatewrightParameter, which holds a parameter name and caches its hash, so a rename moves your component's reference too. Delete it if you do not want it.
Unity 2022.3 or newer. Built and tested on 6000.5.7f1. Built-In, URP and HDRP all work; nothing here touches a render pipeline.
Documentation: github.com/onefreeman1337/csaf-releases
| Published | 1 day ago |
| Status | Released |
| Category | Assets |
| Author | CSAF — Core Systems Asset Factory |
| Made with | Unity |
| Tags | Animation, csharp, editor, gamedev, state-machine, tool, Unity, unity-editor, utility, workflow |
| Languages | English |
| AI Disclosure | AI Assisted, Code, Graphics |
Purchase
In order to download this asset pack you must purchase it at or above the minimum price of $19.99 USD. You will get access to the following files:







Leave a comment
Log in with itch.io to leave a comment.