BD Native Fortnite Skeleton
The repose that makes them actually bind
- fbx_path
- blend_path
- report_path
Let's be honest about who this node is for before you go anywhere near it. If you've been generating 3D characters with Pixal3D or TRELLIS2 and dreaming of dropping them into Fortnite, you've already hit the wall the KB's 3D essay describes: generated meshes have no rig, and "anything that has to deform, animate, or ship in a game as-is" needs a retopology and rig pass you did not sign up for. BD Native Fortnite Skeleton (class BD_TargetFortniteSkeleton) is the last step of that pass - the one that takes a character already rigged and bound to Epic's UEFN skeleton and reposes it to Fortnite's measured Character Device reference so it binds, poses, and stays put in-engine. It won't rig your mesh for you. It finishes one that's already rigged.
Where it sits in the pipeline
It's the tail end of the pack's AutoRig category, which the top-level README hasn't even caught up to yet (the real doc lives at docs/native-skeleton-target.md in the repo):
Mesh → BD_AutoRigMIA → BD_AutoRigUEFN → BD_TargetFortniteSkeleton
(auto-rig, (Mixamo → (native completion,
Mixamo skel) Fab UEFN skel) repose + audit)
That middle step is worth understanding: BD_AutoRigUEFN transfers weights from the Fab/UEFN mannequin, and the native Character Device has a different rest pose than that mannequin. That difference is exactly why this node exists. It reposes the Basis pose and every morph against the measured device (or full Player) reference, keeping your existing weights and shape keys, re-exports the whole rig, then reimports its own FBX and audits it. No model files, no GPU - this is pure CPU Blender work.
The inputs that matter
source_asset- a file path to a rigged.fbxor.blendwith canonical (UEFN-named) bones. This is a string field, not a file browser; paste the path.target_profile-NATIVE_DEVICE(default; the 88-bone body core) is the one you want.NATIVE_PLAYERgoes for the full 280-entry Player hierarchy but needs a newer private backend.FAB_UEFNis the legacy option.require_fingers- on by default, and this is where people get burned. A full character must already weight all 30 finger bones, or the job dies before export. That failure is the intended signal: repair the hands. Turn it off only for standalone parts like a head or feet.filename- output name, and it's strict: letters, digits, and underscores only, must start with a letter.
The optional fields (reference_fbx, reference_contract, converter_script, blender_executable, source_rig) are the escape hatch for anyone not on the author's studio NAS - more on that below.
Outputs are three string paths: fbx_path (the completed native rig), blend_path (an editable copy), and report_path (the conversion.json audit). Wire them into a string/display node or just read them - it's an output node, so nothing downstream consumes a mesh here.
Installing and the honest catch
Install the pack the usual way - ComfyUI Manager, search "BrainDead", or git clone into custom_nodes/. The requirements.txt (MoGe, natten, and friends) only feeds the image-to-3D nodes; this one needs none of it.
Here's the thing the README glosses over: this node expects a private studio backend that is not in the repo. The defaults resolve to B:\Brains\... or /mnt/tank/Studio/Brains/... - the author's Biloxi Studios NAS - where a convert_skeleton_target.py script plus a measured reference FBX and its .provenance.json contract live. On your machine those paths don't exist, and you'll get a FileNotFoundError. To use it outside the studio you must supply your own converter_script, reference_fbx, and reference_contract, and point blender_executable at a real install.
Two more gotchas. It's pinned to exactly Blender 5.1.2 - the code checks the version string and refuses anything else, so "any Blender" won't do. And it never caches: every queue run re-reads the source asset (which is deliberate - files change in place), so don't be surprised it re-runs every time.
Honest bottom line: this is a genuinely useful node if you're shipping custom characters into Fortnite UEFN and you have the reference skeleton and converter to point at it. If you're not, it's a great demonstration that the hard part of "AI character into a game" is never the generation - it's the skeleton, the weights, and the fingers.
Inputs (9)
| Name | Type | Default | Description |
|---|---|---|---|
| source_asset | STRING | Rigged FBX or .blend with canonical bone names. | |
| target_profile | COMBO | NATIVE_DEVICE | 3 options: NATIVE_DEVICE, NATIVE_PLAYER, FAB_UEFN |
| filename | STRING | NativeCharacter | — |
| require_fingers | BOOLEAN | true | Full characters must weight all 30 finger bones. Disable for standalone non-hand parts. |
| source_rigopt | STRING | root | — |
| reference_fbxopt | STRING | — | |
| reference_contractopt | STRING | — | |
| converter_scriptopt | STRING | — | |
| blender_executableopt | STRING | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| fbx_path | STRING | — |
| blend_path | STRING | — |
| report_path | STRING | — |