anim
AGIR text to author or read back Animation Blueprint graphs.
What it's for
An Animation Blueprint graph is a node network the editor normally only shows you visually. This
namespace turns that graph into AGIR, a plain-text form of the Anim Graph you and your
assistant can read, diff, and edit. You decompile an existing UAnimBlueprint to AGIR
text, or compile AGIR text back into a target Anim Blueprint.
Reach for this when you want to understand how an Anim Blueprint is wired without clicking through the graph editor, snapshot a graph before a change, or have your assistant author new nodes such as blend spaces, cached poses, layered blends, linked anim layers, and state-machine aliases as text. AGIR round-trips these node families, so a graph you decompile can be recompiled without loss.
This is the low-level text-IR surface for Anim Blueprint graphs specifically. Broader
skeletal-animation asset helpers live under call("animation"), and fine-grained
authoring for tracks, montages, blend spaces, IK, and retargeting lives under
call("animation.authoring"). For the sibling Control Rig text IR, see
call("controlrig").
Examples
Read an Anim Blueprint graph as text
Ask your assistant to inspect the graph, and it decompiles the Anim Blueprint to AGIR.
You: Show me how ABP_Mannequin's anim graph is wired.
call("anim.decompile_agir", {assetPath:"/Game/Characters/ABP_Mannequin"})
→ {agir:"anim_graph { blend_space %blend_space_0 (...) ... }"}
Done. Decompiled ABP_Mannequin to AGIR so you can read the graph as text.
Author nodes into an Anim Blueprint
Hand your assistant AGIR text and it compiles it into the target graph, marking the asset to save.
You: Add a locomotion blend space to ABP_Mannequin's anim graph.
call("anim.compile_agir", {text:"anim_graph { blend_space %blend_space_0 (...) }",
context:"/Game/Characters/ABP_Mannequin", mode:"Extend", save:true})
→ {ok:true, compiled:true}
Done. Added the blend space to ABP_Mannequin and marked it dirty for saving.
Snapshot a graph, then recompile an edited version
Read the graph out, edit the AGIR, and compile it back over the original with a clean replace.
You: Replace the anim graph in ABP_Enemy with my edited version.
call("anim.decompile_agir", {assetPath:"/Game/Characters/ABP_Enemy"})
→ {agir:"anim_graph { ... }"}
call("anim.compile_agir", {text:"anim_graph { ...edited... }",
context:"/Game/Characters/ABP_Enemy", mode:"Replace", runLayout:true, save:true})
→ {ok:true, compiled:true}
Done. Replaced ABP_Enemy's anim graph and auto-laid out the new nodes.