Nodes/BrainDead Nodes/BD AutoRig → Fab UEFN Skeleton
ComfyUI Node

BD AutoRig → Fab UEFN Skeleton

From Mixamo rig to a real UEFN/Fortnite skeleton in one pass

By BizaNator·Created 8 months ago·Updated 3 days ago· 15
BD AutoRig → Fab UEFN Skeleton
    • fbx_path
    input_fbx
    filenameuefn_rig
    name_prefix
    auto_incrementtrue
    context_id
    suffix
    context_custom_vars

    So you auto-rigged a character and got a Mixamo-style FBX. Good luck importing that into UEFN and expecting Fortnite animations to work - UEFN wants its own skeleton: pelvis, spine_01..05, clavicle_l, thigh_l, the works. Mixamo bone names don't match, so animations won't transfer. BD AutoRig → UEFN Skeleton is the fix: it takes that Mixamo-rigged FBX and converts it to the full UEFN/Fortnite skeleton, with genuine skin weights, importable directly into UEFN.

    It's step two of BrainDead's autorig chain, right after BD_AutoRigMIA:

    mesh → BD_AutoRigMIA → BD_AutoRigUEFN → UEFN-rigged FBX
    

    How it works

    This is a headless Blender job, and it's doing real work, not just renaming bones. It imports the bundled SKM_UEFN_Mannequin.fbx as a reference, imports your character, then runs a sequence: scale-match the character to the mannequin's height, align the armature (hip translate + yaw), bake the mesh geometry into REST pose, clear the Mixamo vertex groups, transfer skin weights from the mannequin via Blender's Data Transfer modifier, bind to the UEFN armature, and export FBX.

    That weight transfer is the part that matters. You're not just renaming joints - the character inherits the Mannequin's actual skin weights, which is what makes UEFN's stock animations deform it correctly.

    The input that matters

    • input_fbx - path to the Mixamo-rigged FBX from BD_AutoRigMIA. It's forgiving: it accepts both Mixamo bone names (Hips, LeftShoulder) and already-renamed UEFN names (pelvis, clavicle_l), and auto-detects which it's looking at.

    The rest is the pack's standard save plumbing - filename, name_prefix (subdirs like autorig/mychar), auto_increment, and the Save Context fields (context_id, suffix, context_custom_vars) if you're using the pack's template-naming system. Output is a single fbx_path STRING.

    Install and gotchas

    Pack install is standard:

    cd ComfyUI/custom_nodes
    git clone https://github.com/BizaNator/ComfyUI-BrainDead
    cd ComfyUI-BrainDead
    pip install -r requirements.txt
    

    (Or ComfyUI Manager → "BrainDead".) Restart, and nodes live under 🧠BrainDead/AutoRig. This pack needs the ComfyUI V3 node API, so keep ComfyUI updated.

    The real gotcha is Blender. The README claims Blender is bundled in lib/ - it isn't, not the binary. The code searches for a bundled blender-5.0.1-linux-x64 build, then sibling packs (GeometryPack, UniRig), then a system Blender at /usr/bin/blender. If none exist, this node errors with "Blender not found." So: install Blender on your machine (5.0+ is what the pack targets), or have GeometryPack/UniRig present. No model downloads here - the bundled Mannequin FBX is already in the repo.

    One more thing to set expectations: your source mesh should already be humanoid and roughly posed. The node does scale/align work, but garbage in, garbage out. Feed it a good BD_AutoRigMIA output and you get an FBX that drops into UEFN and animates.

    Category🧠BrainDead/AutoRig

    Inputs (7)

    NameTypeDefaultDescription
    input_fbxSTRINGPath to a Mixamo-rigged FBX — the output of BD AutoRig MIA. Both Mixamo bone names (Hips, LeftShoulder) and already-renamed UEFN names (pelvis, clavicle_l) are accepted.
    filenameoptSTRINGuefn_rigBase filename without extension.
    name_prefixoptSTRINGPrepended to filename. Supports subdirs (e.g. 'autorig/mychar').
    auto_incrementoptBOOLEANtrueAuto-increment filename to avoid overwriting.
    context_idoptSTRINGBD_SaveContext id for template-based naming. Empty + one registered context = auto-pick. When resolved, filename/name_prefix pass through as %filename%/%name_prefix%.
    suffixoptSTRINGPer-save suffix → %suffix% in the context template.
    context_custom_varsoptSTRINGExtra key=value template vars (one per line). Only used when context_id resolves.

    Outputs (1)

    NameTypeDescription
    fbx_pathSTRING