Humanoid Retargeter
LibraryRetarget animations from 19+ humanoid presets, including Mixamo, ActorCore, Mannequin, Cascadeur, and more!
thumb_up
19
open_in_new
View on sbox.game
Humanoid Retargeter
Retarget humanoid animations onto s&box characters or your own custom rigged models; all inside the editor.
- Custom models: Import FBX, GLB, and GLTF characters with automatic bone mapping and material detection.
- Smart Port: Transfer animations, animgraphs, and supporting model settings between compatible humanoid rigs, or
preserve the target’s existing setup and add new clips.
- Create Citizen Animation Model: Set up compatible custom characters with Citizen animations and an animgraph.
- Animation variants: Generate mirrored and additive variants, plus footstep variants with automatically detected
footstep events.
- Live preview: Inspect your retargeted animations before exporting.
No Blender, no Python, no native DLLs.
4
Total Users
5
Total Sessions
2.2 hours
Total Playtime
Positive
Negative
How this works: This chart tracks all anonymous thumbs up/down votes, not just the written reviews below. Playtime is permanently recorded at the exact moment the user casts their vote. Data is exactly as returned by the Facepunch API.
1.1h - 2.1h
2
8.5h - 17.1h
1
17.1h - 34.1h
2
0 recorded entries
| Rank | Player | Score | Recorded |
|---|---|---|---|
|
refresh
Discovering package leaderboards...
|
|||
Package ID:
notpointless.chomnr_humanoid_retargeter
Created:
2026-06-12 13:25 UTC
Updated:
2026-10-11 05:07 UTC
Type:
library
Public:
Yes
Version:
422539
files:
673
Size:
6.6 MB
Engine Version:
29
Asset Version ID:
422539
Version Created:
2026-10-11 05:07 UTC
Hash:
1791695238
Manifest: Open manifest
more_horiz Additional Properties
Summary:
Retargets humanoid animations (Mixamo, ActorCore, UE Mannequin, BVH, glTF and more) onto s&box characters in the editor.
Description:
Humanoid Retargeter converts skeletal animations from common humanoid rigs (Mixamo, ActorCore, UE Mannequin, BVH mocap, glTF/VRM and more) onto the s&box Human, the classic Citizen or any custom humanoid model, entirely inside the editor. Open View > Humanoid Retargeter, add animation files, check the detected bone mapping in the live preview, and convert them to compiled, animgraph-ready VMDL sequences. It is pure C# with no Blender, Python or native DLLs. The optional deep-learning fallback ships SAME weights licensed CC BY-NC 4.0 (non-commercial).
Website Url:
https://github.com/zeljkovranjes/humanoid-retargeter
Tags:
["animation","retargeting","humanoid","mocap","fbx"]
Trim Update
Oct 11, 2026
Added
- Trim editor - a scissors button on each animation opens the character preview with a timeline: cut sections out, keep only a selection, or trim before or after any frame
- Trim editor - Ctrl+Z undoes, Ctrl+Y redoes and Ctrl+R restores the whole animation
- Trim editor - cutting the middle of a walk keeps the character moving forward instead of jumping back
Improved
- RetargetRequest.KeptFrames - trims a conversion from code
Oct 7, 2026
Added
- - Headless Smart Port (`HumanoidRetargeter.EditorTools.SmartPortHeadless`, JSON entry point `PortJson`) runs Smart Port without the editor window, for tools that convert characters in bulk; DMX element ids can be made deterministic.
- - Smart Port takes explicit target bones for roles the mapper cannot find, and re-expresses attachments that ignore their bones' rotation or blend several bones in the ported skeleton's frames, so the body aim no longer bends a ValveBiped spine over.
Improved
- - Runtime namespaces moved under `HumanoidRetargeter.Core`. Code that calls the library directly needs its `using` lines updated:
- - `HumanoidRetargeter` (`Retargeter`, `RetargetRequest`, `RetargetResult`, `RetargetBatchResult`, `RetargetTargetSpec`, `ClipResult`, `ResolvedSource`, `InspectResult`, `MappingReportInfo`, `BatchOptions`, `SolverKind`, `TargetUpAxis`, `CoreInfo`) -> `HumanoidRetargeter.Core`
- - `HumanoidRetargeter.Cleanup` -> `HumanoidRetargeter.Core.Cleanup`
- - `HumanoidRetargeter.Dl` -> `HumanoidRetargeter.Core.Dl`
- - `HumanoidRetargeter.Formats` (and `.Ant`, `.Bvh`, `.Dmx`, `.Fbx`, `.Gltf`, `.Renderware`) -> `HumanoidRetargeter.Core.Formats` (same sub-namespaces)
- - `HumanoidRetargeter.Mapping` -> `HumanoidRetargeter.Core.Mapping`
- - `HumanoidRetargeter.Maths` -> `HumanoidRetargeter.Core.Maths`
- - `HumanoidRetargeter.Skeleton` -> `HumanoidRetargeter.Core.Skeleton`
- - `HumanoidRetargeter.Solve` -> `HumanoidRetargeter.Core.Solve`
- - `HumanoidRetargeter.Target` -> `HumanoidRetargeter.Core.Target`
- - Editor namespaces renamed: `HumanoidRetargeter.Editor` and `HumanoidRetargeter.M0` -> `HumanoidRetargeter.EditorTools`.
- - Vendored editor code moved to `HumanoidRetargeter.EditorTools.Embedded.*`: `HumanoidRetargeterVrf` -> `.ValveResourceFormat`, `HumanoidRetargeterZstd` -> `.ZstdSharp`, `HumanoidRetargeterDmx` -> `.Datamodel` (its `HumanoidRetargeterDmx` class is `Datamodel` again), `HumanoidRetargeterKeyValue` -> `.ValveKeyValue`, `HumanoidRetargeterCompression` -> `.Compression`.
- - Shipped data moved from `Assets/humanoid_retargeter/` to `Assets/data/humanoid_retargeter/` (target rigs, profiles, DL weights). Code that read these files by path must use the new folder. New user presets are saved to `Assets/data/humanoid_retargeter/profiles/user/`; presets saved earlier in `Assets/humanoid_retargeter/profiles/user/` are still found.
- - Code that looks types up by their old full name through TypeLibrary keeps working through aliases: `Skeleton`, `BoneDefinition`, `XForm`, `AutoMapper`, `MappingResult`, `MappingSource`, `BoneRole`, `TargetRig`, `RuntimePoseRetargeter`, `Retargeter`, `RetargetRequest`, `BatchOptions`, `EditorPipeline`, `RetargetWindow`, `SmartPortHeadless` (and its `SmartPortHeadlessRequest`, `SmartPortHeadlessResult`, `SmartPortBone`). Switch to the new names when convenient.
Fixed
- - Pinkies on characters made with "Create Citizen animation model" now curl with the ring finger in fists and grips, as on the stock Citizen, instead of sticking out backwards.
- - The package now follows the workspace layout: all runtime code is in `Code/HumanoidRetargeter/Core` (engine-free, builds as plain .NET), editor code sits directly in `Editor/`, one type per file. Retargeting behaviour is unchanged and every existing test passes unmodified.
- - The main test project moved from `dev/` to `tests/HumanoidRetargeter.Tests`; research notes moved to `docs/research`, verification renders and dumps to `dev/data/verification`.
- - Package summary, description and tags rewritten for the library manager; README rewritten in the standard format.
- - Stock locomotion replacement now replaces each direction on every speed ring (run, fast run, sprint; walk, fast walk; crouch, low crouch), so a replaced forward run shows at the default player speed, and it follows the Citizen graph's subgraphs into project-owned copies instead of failing.
- - Characters bound in a T-pose (most Blender characters, including ones rigged with Humanoid Rigger) no longer play stock Citizen animations with the arms held about 50° too high. "Create Citizen animation model" now points every limb where the Citizen's limb points, so arms, shoulders and biceps no longer stretch.
Oct 7, 2026
Fixed
- Fixed an issue with the bicep when using "Create Citizen animation model"
UI Update
Sep 26, 2026
Improved
- Updated UI
Fixed
- Fixed floating feet with specific bvh clips
Sep 18, 2026
Added
- Regression tests for custom grip placement, arm reach, and attachment preservation.
Improved
- Smart Port now fits copied weapon attachments to custom hand proportions.
- Adjusts grip reach for shorter arms without stretching bones or scaling the character or weapon.
- Preserves existing fitted weapon attachments.
Fixed
- Support-hand drifting during walking, running, and firing on custom rigs.
- Attachment fitting with nested helper bones and inconsistent bone-name casing.
Smart Port
Sep 17, 2026
Added
- Smart Port mode with a dedicated source and target model picker.
- Support for selecting local and cloud assets.
- Project-owned copies of the source animation graph.
- Built-in recovery of compiled model and animation graph files.
- Regression tests for skin bindings, animation data, and compiled output.
Improved
- Retargeting between compatible humanoid rigs with different bind poses and proportions.
- Preservation of animation sequences, additive data, footstep events, and required model settings.
- Preservation of target geometry, materials, and skin bindings.
- Clearer error reporting when Smart Port cannot finish.
Fixed
- Compatible models being rejected because their bind poses differed.
- Missing optional material metadata preventing model creation.
- Additive animations causing stretched limbs.
- Mesh vertices attaching to incorrect bones after compilation, causing mangled models.
Auto Citizen Animgraph + Improvements
Sep 16, 2026
Added
- Automatic Citizen and Human Citizen animation setup for compatible custom armatures.
- Complete stock animation libraries with automatic animgraph assignment.
- Optional editable animgraph copies saved alongside the output model.
- Stock animation replacement using any supported animation source.
- Automatic locomotion direction suggestions from clip names and clear movement.
- Selectable reference frames for additive animation variants.
Improved
- Preservation of animation events, additive settings, blends, IK, attachments, masks, constraints and animation game data.
- Footstep detection for in-place animations, with sample-rate-aware contact timing.
- Armature compatibility checks before enabling automatic setup.
- Backups and conflict protection for existing models and editable graphs.
- Expanded regression coverage without weakening existing tests.
Fixed
- Incorrect compiled facing for replacement animations in prefab-based models.
- Missed footsteps during horizontal foot sliding and repeated events from contact jitter.
- External glTF buffer loading when importing animation files.
- Preserved CopyPinky constraints when adding animations to stock-compatible models.
Known Issues
- Ambiguous locomotion directions require manual selection.
- Fast locomotion variants, animated idle layers and airborne/landing states may require separate setup.
- Stock Human Citizen constraints make pinkies follow ring fingers.
- Direct stock animation setup requires a compatible Citizen armature.
Sep 5, 2026
Added
- Automatic detection of separate FBX mesh parts.
- Regression tests for mesh imports and output upgrades.
Improved
- Custom model compilation preserves source mesh boundaries.
- Existing generated outputs upgrade without losing animations.
Fixed
- Missing eyes and corrupted geometry caused by merged FBX mesh imports.
- An editor compilation error during custom model import.
Sep 4, 2026
Added
- Automatic support for rigs with separate control and deform skeleton branches.
- Automatic detection and animation of articulated single-joint thumbs.
Improved
- Anatomical mapping now selects the bones that actually deform the model.
- Detached body branches now follow the connected animated skeleton.
- Twist and helper bones follow their associated limbs more reliably.
- Thumb retargeting now preserves each model’s authored hand pose.
Fixed
- Fixed mangled or frozen limbs on control/deform rigs.
- Fixed Skeleton’s head pointing slightly upward.
- Fixed thumbs sticking out or flipping by approximately 180 degrees.
- Fixed coincident thumb joints losing their hand reference.
- Fixed disconnected deform bones remaining behind during animation.
Known Issues
- Very dark models may trigger the preview texture-color diagnostic despite compiling with valid materials.
- Distant non-deforming control bones may trigger the wild-bone diagnostic without affecting the rendered model.
Title Runtime Retargeting & EA ANT Support
Sep 3, 2026
Added
- Added a new runtime pose retargeting API for retargeting live humanoid poses without creating animation clips or writing files.
- Added an allocation-free retargeting path designed for continuously evaluated pose streams such as mocap, procedural animation, VR, and other real-time animation systems.
- Added automatic target humanoid mapping support when creating runtime retargeters.
- Added a public source resolution API, allowing integrations to use the same rig detection, mapping, diagnostics, and bind-pose preparation used by normal animation conversion.
- Added .cba files to the Humanoid Retargeter editor, file picker, and Asset Browser retargeting menu.
- Added editor support for selecting the joint-table JSON required by EA ANT animation packages.
- Added support for EA ANT joint-table JSON files stored either as a direct joint array or inside an extractor metadata object.
- Added editor-facing support for EA Fight Night boxer rigs and their associated ANT animation workflow.
Improved
- Improved support for integrations that need fully prepared source animation data in memory instead of immediately exporting DMX animation files.
- Improved runtime retargeting performance by reusing mapping data, solve plans, and temporary buffers between poses.
- Improved runtime error handling with safe TryRetarget-style APIs and clearer diagnostics for invalid pose data or incompatible skeletons.
- Improved .cba workflow integration so ANT animations can use companion skeleton/joint-table files similarly to RenderWare animation sources.
- Improved Fight Night rig detection and mapping validation.
- Improved handling of Fight Night helper, glove, IK, and control bones so they do not interfere with anatomical humanoid mapping.
- Expanded automated test coverage for Fight Night skeleton detection and role mapping.
Fixed
- Fixed Z-up FBX preview orientation being incorrectly rotated when previewing certain FBX targets, including Unreal-style exports.
- Fixed source-space conversion so Z-up FBX targets are no longer rotated a second time during preview preparation.
- Fixed compatibility with ANT skeleton extractor JSON files that wrap their joint list inside a metadata object.
Known Issues
- Humanoid bipeds are currently supported; quadrupeds and tails are not.
- Facial and morph-target animation is not transferred.
- External .bin files referenced by glTF are not supported; use an embedded .glb instead.
- FBX 6.x files are unsupported and must be re-exported as FBX 7.x.
- The experimental deep-learning solver does not retarget fingers and remains weaker on hand motion than the geometric retargeting path.
- EA ANT .cba files contain joint indices rather than bone names, so a matching ordered joint-table JSON is required.
- Custom model support is still lacking.
- Preview is buggy at the moment will fix.
The Custom Targets Update
Jul 5, 2026
Added
- Any humanoid-LIKE model now works as a conversion target: pick any compiled model (.vmdl) or FBX - including rigs with paws, a single finger, or a missing hand. Whatever roles the skeleton doesn't have are simply skipped
- Unrecognized target skeletons no longer dead-end with "not recognized as humanoid": the manual bone mapper opens instead, and the confirmed mapping is saved as a preset so that model is recognized instantly forever after
- Custom FBX targets produce a complete playable model: the FBX is copied into your project - together with its sidecar textures folder - and embedded into the generated vmdl as its mesh + skeleton (previously the vmdl compiled into an empty model with nothing to play). Z-up FBX exports (Unreal, 3ds Max) are detected and handled - no more animations lying on their back. Skeleton-only FBX exports get a clear warning up front. Output vmdls created before this update heal themselves: the next conversion into them adds the missing mesh
- An FBX with its own animation keeps it: retargeting new clips onto an animated FBX preserves the embedded takes as sequences on the output model, next to the converted ones - converted losslessly through the pipeline so they play at the correct scale whatever units the FBX was authored in
- Models exported mid-pose repair themselves: FBX files saved with the skeleton left in an animation pose (common on Auto-Rig Pro and store assets - IK'd hands or a foot half a meter from the bind stance) are detected when picked as a target and their true bind pose is restored from the file's own bind data. Previously such rigs looked fine standing still but played with mangled arms, fingers and legs - the "posed" limbs
- Auto-generated materials handle masked card geometry (eyelashes, hair strands get alpha testing instead of rendering as solid white sheets) and fall back to a matching detail map when a material ships no diffuse texture (a vest with only a specular map shows its strap detail instead of flat white)
- Custom FBX targets get a real skinned preview: picking the FBX compiles a small preview model in the background, so the preview dialog shows your actual character instead of a placeholder
- Custom FBX target skeletons are taken from the engine's own import of the file, so the animations and the compiled model can never disagree - per-exporter quirks (3ds Max Biped, Auto-Rig Pro bone scales, odd pivots) previously produced stretched or misplaced fingers and twisted wrists on some rigs
- Plain-named texture sets now resolve (a material "homer" shipping "homer.png" without any _d suffix used to render untextured)
- Materials are auto-generated for custom FBX targets: a .vmat is written for every FBX material that has none (textures matched from the sidecar folder by name - diffuse and normal maps) and the model's material references are remapped to them, so the model compiles textured instead of showing "Missing vmat" placeholders. The generated files are yours to adjust and are never overwritten
- Wireframe skeleton view in the preview: a "Skeleton" button switches between the skinned model and a stick-figure view of the retargeted animation (and back). Targets without a compiled preview model automatically show the skeleton view instead of an empty viewport
- 2 new rig presets: s&box citizen/human naming (models re-rigged on the citizen skeleton are now auto-recognized) and AdvancedSkeleton (the Maya auto-rigger behind many game rips - Root_M/Scapula/Wrist/Ankle naming; one real model previously auto-mapped its arms and legs onto its head quills and played garbage) (19 presets total)
- Texture matching covers every common suffix convention (diff/albedo/basecolor/col/clr and friends for diffuse; nrm/nm/norm/bump for normals) and now also wires roughness, metalness and ambient-occlusion maps into the generated materials when the set ships them
- Single-set texture packs resolve: when everything is named "<character>_*" ("sonic_mat" + "sonic_diff.png"), the base name alone now decides an unambiguous match - previously the body rendered untextured while only distinctively-named parts (eyes) got their maps. Ambiguous base-name ties are still rejected, so multi-part sets can never grab each other's textures
- Composite-shader texture layers pick the right stand-in by looking at the pixels: materials that ship several same-named layers for a custom shader (an eye as gray ball + white sclera mask + catchlight dot) get the layer with the brightest center as their color map - the pupil-hole layer used to render eyes solid black
- An FBX with no materials at all (bare Blender export) compiles clean: the engine derives a material slot from the geometry name and used to fail with Missing vmat "cube.vmat" - a stub material is now generated for every geometry slot
Fixed
- Custom model (.vmdl) targets were effectively unusable: even citizen-skeleton models were rejected as "not recognized as humanoid (5%)", and animations converted while a pick had silently failed targeted the wrong bones - playing them did nothing. Custom model targets are now recognized, preview skinned, and their compiled sequences actually animate (verified end to end)
- Animations on custom FBX targets played rotated 90 degrees in ModelDoc (characters walking sideways or "backwards", body pitched over) while the preview looked correct - the compiled animation and the compiled mesh disagreed about the root bones' orientation on embedded-mesh models; they play straight now
- Animations converted onto a custom FBX target played ZERO motion on the compiled model: the engine sanitizes bone names at mesh import (3ds Max Biped's "Bip01 R Hand" becomes "Bip01_R_Hand") while the animation channels used the raw names and never bound - targets are now built on the sanitized names (verified end to end on a real 3ds-Max-Biped character with mocap and Mixamo clips actually playing on the compiled model)
- Custom model (.vmdl) targets no longer stretch: bind transforms read from compiled models were misinterpreted, compounding the upper body until heads sat metres away from the torso and the skin pulled into webs ("stretched wrists") - skeletons from compiled models are correct now (a real throw clip went from a bogus 4.3 m "arm swing" to the actual 71 cm one)
- The preview's overlay skeletons (the "Show source" ghost and the "Skeleton" view) finally draw as full stick figures: the line renderer holds a single polyline, so only the last bone segment ever reached the screen, and stick-bind mocap rigs (NVIDIA SOMA) additionally smeared the ghost into streaks - the skeleton now renders one polyline per chain and the ghost aligns from the clip's first frame (verified in rendered images)
- The preview no longer runs at ~2 fps with purple/black flicker on custom FBX targets: copied textures were unknown to the asset system, so the renderer retried resolving them every frame - they are registered now and the model renders textured at full speed
- Rigs whose head bone rests away from the skull (seen on a Sketchfab rig that parks its head joint at chest height, with the skin bind compensating) no longer play every animation with the head pitched back and smearing further as the clip plays - such a bone is not a drivable skull joint, so it and the neck of that broken skull region rest while the spine carries the upper body (map them manually to override; driving the neck sheared a hump onto the character's back because it carried the skull's skin weights)
- Auto-Rig Pro finger chains articulate at the right joints: the "index1_base" metacarpal was mistaken for the first knuckle, so curls bent the finger from inside the palm while the real knuckle never moved
- Extra bones outside the body skeleton (skirt/cloth physics chains parented to the scene root - one model ships 48 of them) now ride the character instead of freezing at their spawn position while the body animates away; Prop bones resting at an extremity anchor there instead - a sword in the hand follows the hand, a skirt at the waist follows the hips
- Limb twist bones on custom targets animate: auto-rigged exports (forearm_twist, ElbowPart1, ForeTwist) spread wrist/knee roll across helper bones the original game constrains at runtime - frozen at rest they candy-wrapped the skin into spike fans at the wrists; they now follow their joint's roll by their position along the limb. The roll extraction is numerically conditioned: near-180-degree limb swings used to inject huge fake rolls (one leg of a throwing character flipped upward while the other stayed correct)
- The preview keeps each bone's bind scale when posing (models with scaled bind bones collapsed around them in the preview only)
- Embedded FBX animations keep their authored bone translations: a 3ds Max Biped take animates spine/thigh positions (up to ~19cm of body sway on a death fall) that used to pin to the rest pose, subtly stiffening the preserved animation
Removed
- The "Detect locomotion sets" checkbox is hidden from the options panel
The RenderWare & Quality Update
Jul 2, 2026
Added
- RenderWare animation support: drop in .anm clips or .an5 animation banks - banks unpack into individual takes like FBX bundles
- RenderWare skeletons load from the model .dff next to your animation (auto-detected, with a "Pick skeleton..." fallback on the file row)
- 4 new rig presets: Source engine ValveBiped, Xsens MVN, Perception Neuron, and DAZ Genesis 3/8 (17 presets total)
- A preset coverage gate: every preset must map everything its rig family can animate (all finger phalanges, toes, clavicles, full spine) - incomplete presets can no longer ship
Improved
- Head and neck alignment on turning clips: the head no longer pitches up/down and the neck no longer tilts sideways when the character faces away from its start heading (was up to ~27 degrees of head pitch and ~13 degrees of sideways neck lean on turning/seated mocap clips)
- NVIDIA SOMA hands: finger mapping now accounts for SOMA's 4-segment fingers (metacarpal + 3 phalanges) - held grips transfer to the citizen hands instead of leaving them frozen flat
- Fixed
Fixed
- Adding to an existing vmdl no longer fails to compile when the vmdl contains animation entries whose DMX files were deleted or moved - stale entries are now detected and pruned (with a warning listing what was removed; a .bak of the original is kept), so a previously broken vmdl heals itself on the next conversion
- Converted animations no longer disappear from the output vmdl: each conversion used to regenerate retargeted_animations.vmdl with only that run's clips (converting one more row wiped everything converted before) - the standalone output now accumulates, re-converting the same clip replaces it in place
- Some BVH files flashed a T-pose at frame 0 in ModelDoc: mocap calibration rest frames at the start/end of a clip are now detected and trimmed (idle clips that genuinely start near rest are never touched)
- BVH clips recorded away from the capture-volume origin no longer float in mid-air or play outside the ModelDoc grid - clips start grounded over the origin, with in-clip travel preserved exactly
- Level walks no longer sink feet through the floor or gain height from the rig's rest lean (pelvis travel is now measured in a gravity-aligned frame)
- Eyes sat outside their sockets in ModelDoc on classic Citizen conversions (preview was correct) - face bones keep their rest animation channels again
- NVIDIA SOMA and other stick-bind BVH rigs (all bones along one axis) retarget correctly - the rest pose is rebuilt from the clip's first frame
- Locomotion set detection: the checkbox now matches renamed/sanitized takes, and re-running a conversion over a previously shrunken locomotion set no longer errors
- Console spam "Compiler CS8632" warnings are gone
Live API Passthrough & Removal Notice
This file manifest and asset metadata are retrieved live directly from the official Facepunch s&box public API. s&box Explorer does not host, store, or redistribute any package files. All download links route directly to Facepunch CDN servers.