Skyrim MCO/AMR Animation Pipeline — Beginner-Friendly Guide (MotionBuilder/Cascadeur → FBX → Blender 3.6 → HKX + Annotations)

Uncategorized

Goal: Take an animation you made in MotionBuilder (or Cascadeur/any DCC), bring it into Blender 3.6, add the needed annotations for MCO/AMR, export HKX, and inject the annotations into the HKX with hkanno64. By the end, you’ll have a working, game-ready attack (e.g., MCO_Attack1.hkx).

This article assumes you’re brand new to Blender, MCO, and AMR. I’ll keep language simple and explain why each step matters, not just what to click.


What we’re building

  • MCO (Modern Combat Overhaul) uses animation events/annotations to handle things like combo windows, hit timing, etc.
  • AMR (Animation Motion Revolution) needs root motion values (called animmotion) inside the HKX so the character can actually move during the animation.
  • We will generate a .txt file with annotations (including animmotion) in Blender, export an HKX of the animation, then merge them so the HKX contains the annotations.

Simple pipeline:

  1. Make animation in MotionBuilder/Cascadeur → export FBX
  2. Import FBX to Blender 3.6
  3. Use scripts to add annotations (and export them to TXT)
  4. Export HKX from Blender
  5. Use hkanno64 to inject TXT annotations into the HKX
  6. Place files according to OAR/MCO rules (covered in a separate article)

Why we need each piece

  • Annotations in HKX (AMR/MCO): Skyrim doesn’t automatically know your animation’s hit timing or how far to move the character. Those are annotations. AMR specifically reads animmotion entries inside the HKX.
  • TXT + HKX → merge: We create annotations in Blender and save them to a TXT file. The animation itself is exported as an HKX. hkanno64 then merges the TXT into the HKX so the game can read them.
  • Blender 3.6: The community scripts we use target Blender. Even if you animate elsewhere (MotionBuilder/Cascadeur), we do the annotation work and HKX export in Blender.

TL;DR: Without annotations injected into HKX, AMR/MCO features won’t work (no root motion movement, no proper combo timing, etc.).


Requirements (download & install first)

Rigs and skeletons

  • Cascadeur Animation Rigs (Humanoid) — contains export skeletons like skeleton.hkx
    Download Humanoid animation rigs 2025.1 (contains Export_skeletons/skeleton.hkx).
  • If you animate in MotionBuilder, use a rig that matches the Cascadeur rig skeleton layout. (The author’s MoBu rig adds a HumanIK control rig on top of the Cascadeur skeleton. Exporting the skeleton gives you the same structure you need.)

Blender 3.6 add-ons & scripts

  • Blender HKX Export add-on (the one that gives you File → Export → HKX).
    Install ZIP in Blender → Edit → Preferences → Add-ons → Install…
  • Skyrim Annotation.py by Smooth (annotation manager in Blender).
  • skyrim_annotation_npc_root_edition_v5.py (author’s improved edition):
    Works with Smooth’s script; lets you choose a bone for root-motion sampling (instead of object location), adds useful toggles, and brings over Flatten Root from krzp’s AMR exporter.
    Install same way as above (Add-ons → Install…)

You need both Smooth’s original script and the author’s npc_root_edition installed at the same time.

hkanno64 & prerequisites


Before you start — Critical settings & mental model

Global FPS

  • Skyrim uses 30 FPS.
    In Blender, set Scene → Output Properties → Frame Rate = 30 before you do anything.
    This keeps your frame counts and annotation times consistent.

Pose Mode & selection

  • When exporting annotations or HKX in Blender, select the Armature in Pose Mode. Exporting from Object Mode often fails or produces wrong results.

Skeleton pathing (HKX export)

  • In the HKX export dialog, you’ll see Primary skeleton and Secondary skeleton:
    • Primary: usually the player/NPC humanoid skeleton (e.g., the skeleton.hkx from the Cascadeur bundle).
    • Secondary: for paired animations (2P), or when your animation involves an animal enemy (bear/wolf). If not using a 2P/killmove, you can set both to the same humanoid skeleton.hkx for now.

Length scale = 1.0 (not 10.0)

  • In the HKX export settings, set Length scale to 1.00.
    The default 10.00 will break things in-game.

Root-motion source (important)

  • AMR’s animmotion needs numbers (ΔX, ΔY, ΔZ per frame). The author’s script lets you pick which bone to sample for these values (e.g., NPC Root [Root]).
  • Author’s MoBu rig note: NPC Root [Root] is constrained under the hip and follows horizontally. If you animate and export with this rig, the root reference follows correctly — you don’t need special handling.

Flatten Root (what & when)

  • Flatten Root zeroes the actual root movement baked in the HKX so your character won’t drift/slide from the animation itself.
  • Workflow rule: First export the annotation TXT (so animmotion is captured). Then use Flatten Root before HKX export. This way, AMR moves the actor in-game using the injected animmotion, while the animation pose itself stays put.

Step 1 — Create your animation in MotionBuilder/Cascadeur

  1. Build your attack (e.g., Light Attack 1).
  2. Make sure your chosen root reference bone (e.g., NPC Root [Root]) moves as intended over time. If your rig differs, pick a sensible root-like bone and keep it consistent.
  3. Export FBX. (Exact MoBu/Cascadeur export steps omitted—use your usual pipeline.)

Step 2 — Import FBX into Blender 3.6

  1. File → Import → FBX and bring your animation in.
  2. Set the scene to 30 FPS if you haven’t already.
  3. Select the Armature, switch to Pose Mode.

Step 3 — Install & use the annotation scripts

  1. Install Skyrim Annotation.py (Smooth) and skyrim_annotation_npc_root_edition_v5.py (author’s).
    • Blender → Edit → Preferences → Add-ons → Install… → choose .py → enable add-on(s).
  2. In the UI (Marker panel):
    • Pick your root reference bone for animmotion generation.
    • Use Generate Markers from Root (npc_root_edition) to auto-create animmotion markers across the timeline.
    • (Optional) Toggle Zero Z (Flatten vertical) if you want Z movement exported as 0 in the TXT (common for Skyrim ground motion).
  3. Presets: If a file named marker_presets.txt sits next to your .blend file, you can load common annotations from the Favorites/Presets dropdown (same as Smooth’s original feature). This is great for quickly stamping combo windows, hit markers, footstep SFX, etc.
  4. Here I’m attaching my test annotation .txt along with marker_presets.txt. I’ll research what each annotation actually does and post a separate write-up later.

Why this matters: animmotion is the only way AMR knows how far to move the actor each frame. Other annotations (combo open/close, hit events, SFX) are for MCO and gameplay feel.


Step 4 — Export the annotation TXT

  • Use the script’s Export Annotations to write a TXT file.
  • Name it exactly like your HKX will be (e.g., MCO_Attack1.txt).
  • The author’s script lets you choose how filenames are generated (e.g., from the Blender scene name). If your scene is MCO_Attack1, you’ll get MCO_Attack1.txt.

Important: Do TXT first (before Flatten Root & HKX export), so your animmotion values reflect the un-flattened root.


Step 5 — (Optional) Run Flatten Root

  • After you exported the TXT, use the built-in Flatten Root (ported from krzp’s plugin) to zero out the armature’s root motion for the HKX.
  • Don’t run this before exporting the TXT.

Step 6 — Export the HKX

  1. File → Export → HKX.
  2. In the export dialog:
    • Primary skeleton: point to your humanoid skeleton.hkx (from Cascadeur rigs package).
    • Secondary skeleton: same as above unless you’re doing a paired/killmove or animal interaction (bear/wolf).
    • Length scale: set to 1.00.
  3. Name it exactly the same as your TXT (e.g., MCO_Attack1.hkx).

Step 7 — Merge TXT into HKX with hkanno64

One-click batch way (recommended)

  1. Install Havok Content Tools to C:\Havok (required by hkanno64).
  2. Download hkanno64 and the mass dumping/updating helper.
  3. Put MCO_Attack1.hkx and MCO_Attack1.txt into the helper’s update folder.
  4. Double-click MassiveUpdate.bat.
    • It runs the equivalent of: hkanno64.exe update -i MCO_Attack1.txt MCO_Attack1.hkx for all files in the folder.

Manual command (for reference)

hkanno64.exe update -i MCO_Attack1.txt MCO_Attack1.hkx

If it errors, double‑check paths and that Havok tools are installed at C:\Havok.

Result: Your HKX now contains the annotations. AMR will read animmotion; MCO/OAR will react to your other markers.


Step 8 — Place files for OAR/MCO (separate article)

  • The final step is to put your HKX (now with annotations) into the OAR rules structure for your moveset. That placement and rules setup will be covered in a follow‑up article.

Troubleshooting & gotchas (read this!)

  • Wrong FPS → Set Blender scene to 30 FPS. Skyrim expects 30; mismatches cause timing issues and bad annotation timestamps.
  • Exporting from Object Mode → Switch to Pose Mode and select the Armature when exporting annotations/HKX.
  • Length scale still 10.0 → Must be 1.0 or your in‑game results will explode.
  • No movement in-game → Did you: (1) generate animmotion markers from the correct bone, (2) export TXT before Flatten Root, (3) actually merge TXT into HKX?
  • TXT/HKX names don’t match → Make filenames identical (e.g., MCO_Attack1.txt + MCO_Attack1.hkx).
  • hkanno64 fails → Check that Havok tools are installed at C:\Havok, paths are ASCII/no deep nesting, and you’re running from the hkanno64 folder.
  • Root Z drift → Enable the script’s Zero Z toggle for animmotion export if you don’t want vertical offsets.
  • Forgot the order → TXT first → Flatten Root → HKX export → hkanno64 update.

Quick checklist (pin me)

  • Scene set to 30 FPS.
  • Armature selected in Pose Mode.
  • animmotion generated from the correct root reference bone.
  • Export TXT (name matches your HKX).
  • Flatten Root (optional, recommended).
  • Export HKX (Length scale = 1.00, skeletons set).
  • hkanno64 update to inject TXT into HKX.
  • Place files via OAR rules (later article).

FAQ (short)

Q: Do I have to animate in Blender?
A: No. Animate in MotionBuilder/Cascadeur/etc. We only need Blender for annotations + HKX export.

Q: Which bone should I use for root?
A: On the author’s MoBu rig, NPC Root [Root] is constrained under the hip and follows horizontally, so it’s a safe default. In other rigs, pick the closest equivalent and be consistent.

Q: When do I use Flatten Root?
A: After exporting the TXT (so animmotion is recorded), before exporting HKX. It prevents double movement.

Q: What about OAR placement and rules?
A: Coming in the next article.


Credits & tools referenced


Final note

You’re not locked to any one Blender rig. Animate in MotionBuilder, Cascadeur, Maya—any DCC—then land in the same Blender → TXT/HKX → hkanno64 pipeline. As long as your rig exposes a sensible root reference bone, you can produce MCO‑ready clips.

I post progress and answer questions on Patreon. If you want deeper help and WIP notes, paid members also have access to my Discord. You’re welcome anytime.

コメント

タイトルとURLをコピーしました