Introduction

Open Edit → Animations to browse everything in DATA/GLOBAL/ANIMATION.PAK — every animation clip the game ships, for characters and for props alike.

The editor lets you find a clip, watch it play on a model, export it to a DCC format, and bring new animation back in. It replaces the old raw PAK extract/repack window, which offered no way to see what a file actually contained.

This window is also what opens when you pick an animation for an entity parameter — see Using it as a Picker.

How Animations are Organised

Cathode does not keep a flat list of clips. It asks for animation the way the game needs it, and the editor mirrors that:

  • Kind — the two tabs at the top. Character animations covers anything rigged to a character skeleton; Environment animations covers props and world geometry.
  • Animation set — roughly "one rig's worth of animation". Most sets are named after the skeleton they belong to. Sets whose names begin with # are the game's own grouping entries rather than characters, so they're sorted to the bottom of the list.
  • Context — the state the character is in. A set's clips are grouped by context: one unnamed group that always applies, and then one group per state that overrides it. Around a quarter of the game's sets have more than one context, and some have dozens.
  • Clip — the animation itself. A clip is referenced by the name its set plays it by, which is not the same as its filename.

One more thing worth knowing before you export anything: nearly every clip is authored on a shared rig and moved onto the individual character's skeleton at runtime. The Authored on column tells you which rig a clip was actually built against, which matters when you come to export or preview it.

Browsing

The window is split top and bottom: animation sets above, the clips inside the selected set below, with a Context dropdown between them. Drag the splitter to rebalance — the position is remembered, as is which tab you were last on.

Both lists sort by any column: click a heading to sort by it, click again to reverse. Numeric columns sort as numbers, so you can order by length or frame count and get a sensible result.

Sets & Contexts

The set list shows the set name, the skeleton it uses, how many contexts hold clips, and how many clips it holds in total. A set with no clips left in it is greyed out.

When every set on screen is named after its own rig — which is usually the case — the Skeleton column collapses and hands its width to the names.

Pick a set and the Context dropdown fills with the contexts that actually contain animation. The unnamed one is listed as (always available), and each entry shows its clip count.

The Clip List

Each row describes one clip:

  • Animation — the name the set plays it by, which is what an animation parameter stores
  • File — the file it lives in inside the PAK
  • Authored on — the rig it was built against
  • Frames and Length — how long it runs
  • Properties — how many events it fires and how many settings are hung off it
  • Notes — flagged when the clip is unusual; additive means it layers over whatever else is playing rather than replacing it

Hover a row for its full path, plus any non-standard metadata it carries — how far a locomotion clip travels, where an aim clip points, which sound an audio event fires and from which bone.

A clip that could not be read is greyed out and says so in Notes. That is a defect in the file rather than in the clip you asked for, and the rest of the list still works.

The status bar along the bottom summarises the selection — frame rate, bone count, float tracks, and the rig it was authored on with that rig's bone count.

Previewing

Select a clip and hit Preview… (or double-click it) to open the Animation Preview window and watch it play.

Nothing in the game's data records which model goes with which animation set, so the first time you preview a set you're asked to pick one. Use Choose Mesh… to select a model and Choose Rig… to select a skeleton. Both choices are remembered per animation set, so you only do it once per character.

Playback controls:

  • Play / stop, a scrub bar, and a Speed dropdown from 0.1x to 2x
  • Loop — repeat rather than stopping at the end
  • Root motion — let the clip carry the character across the scene instead of holding it on the spot
  • Show mesh, Show rig, Show textures — draw the model, the skeleton, and the model's materials
  • Parts of the mesh — show or hide individual pieces, with Show all / Hide all

Underneath the viewport is the clip's timeline of markers — the moments the clip fires something. Click a marker to see what it does at that point: a footstep sound, an effect, a gameplay callback.

Export… in this window writes out the clip and the mesh it's playing on together.

Exporting

Export All… writes every clip currently listed. Select more than one row and the button becomes Export Selected… and writes just those. Everything goes into a single file.

Available formats are FBX, glTF (.gltf / .glb) and COLLADA — the formats that can actually carry an animation. OBJ isn't offered here for that reason.

Because a large export can be very large indeed, OpenCAGE checks the clip count, bone count and frame count against the format you chose and warns you before writing if the result is going to be big.

Clips that couldn't be read are skipped, and the summary at the end tells you how many were left out.

Choosing a Rig

An animation is only meaningful against a skeleton, so exporting asks which one to write it against. There's no guessing involved — the clips name the rig they were authored on, and that one sorts to the top of the list. Everything else is there if you want to experiment with retargeting.

Export Modes

The Export as dropdown decides what happens to bones the clip never mentions, and to the root. Viewing and re-importing want different things from the same clip:

  • For viewing — held on the spot — bones the clip doesn't touch stay at the rig's rest pose, so the character still looks like itself. Root motion is ignored and the animation plays in place.
  • For viewing — travelling as the clip carries it — as above, but the root moves, so a walk cycle walks.
  • For editing and re-importing — exactly what the clip holds — writes precisely what's stored, including the root as the engine sees it. This is the one to use if you intend to edit the animation and bring it back in.

A rig rests its root a long way from identity, so an export that looks right is not necessarily an export that can come back in. If you're round-tripping an animation, always use For editing and re-importing.

Importing

Select the animation set you want the clip to belong to, then hit Import… and pick an FBX, glTF, GLB or COLLADA file. The Import animation dialog opens, showing what OpenCAGE found in the file and everything that has to be decided before it goes in. Nothing is committed until you press Import.

Once you do, the clip is added to the set and ANIMATION.PAK is written straight away — an import that isn't saved has done nothing, so there's no separate save step. The clip list refreshes with your new animation selected.

Import Options

  • Play it by — the name the set will use to reference the clip. Defaults to the filename, sanitised.
  • Stored as — the path the clip takes inside the PAK.
  • Rig — the skeleton the animation is built against. The rigs the chosen set can use are offered.
  • Root bone — what to do with the rig's root, which belongs to the engine rather than the rig. Leave to the engine unless the file animates it is the default and is usually right; Always leave to the engine forces it; Keep whatever the file holds writes out root motion as authored.
  • Frame rate — take it from the file, or force 24, 25, 30 or 60 fps.
  • Layer over what is already playing — makes the clip additive rather than replacing whatever else is running.

The summary panel updates every time you change something: how many frames and how long, how many of the file's animated nodes matched a bone on the rig, and what the file itself claims its frame rate is. Use it to check the import before committing — if only a handful of nodes matched, something is wrong with the rig choice.

Preview… opens the animation preview on the imported result, so you can look at it rather than guess.

The root bone setting is what turns a character round. If an imported animation comes out facing the wrong way or sliding across the floor, that's the first option to revisit.

Retargeting

Import normally matches the file's nodes to the rig's bones by name, which requires the file to already be on that rig — in practice, that it came out of OpenCAGE in the first place.

Animation you find online generally isn't. Most of it is built on the Unreal Engine mannequin, which has different bone names, different proportions, and a different idea of which way is left. For those files, tick Convert to Alien: Isolation skeletons and OpenCAGE works out the corrective from the two rest poses and rebuilds the animation on the game's rig.

The checkbox only appears when the conversion is actually applicable — when the file is on a rig OpenCAGE recognises and the target is one it can build onto. If nothing matched by name and conversion is the only route in, it ticks itself.

Both the humanoid rigs and the alien are supported targets. Bones the game's rig has and the mannequin doesn't — the alien's tail, spikes and jaw, a human's armour bones — keep their rest shape and ride their parent, which is normal rather than an error. If the two rigs turn out to be mirror images of each other, the summary says so; that's also normal and is handled.

Using it as a Picker

Animation parameters used to be filled from a plain list of enum strings. They now open this window instead, so you can see what a clip is called, how long it runs and what it fires before committing to it.

The window opens on whatever the entity is already set to — right down to selecting the animation itself and scrolling to it — and the button at the bottom becomes Use This Animation (or Use This Set for an animation set parameter). Double-clicking a row picks it.

An animation parameter stores the name the set plays the clip by, and an animation set parameter stores the set's own name. Neither stores a path.