Unity

Verified in Unity 6 (6000.6.7f1, glTFast 6.14.1, 2026-11-02): every sample export imports with glTFast's defaults and no fixes, makes a valid Humanoid avatar (UE or Mixamo naming) and plays UAL's walk. The run is bun tools/engines/unity.ts on samples/unity; its evidence is in reports/spike-1.md. Unity's automatic avatar mapping in the editor window was not tried: the check maps the bones explicitly, as below.

Try it: the Unity player is the three.js demo's walk-round in Unity's Web player, loading your export at runtime with glTFast. That is glTFast's runtime path, with legacy clips; a game in the editor would more often use the editor import and a Humanoid avatar, below.

Import with glTFast

Unity reads GLB through glTFast (com.unity.cloud.gltfast), Unity's own glTF package. Add it in Package Manager (Add package by name) or in Packages/manifest.json:

{ "dependencies": { "com.unity.cloud.gltfast": "6.14.1" } }

Then drop the .glb into Assets/. glTFast makes a prefab: one SkinnedMeshRenderer per part (body, eyes, hair, garment_<asset>, ...), all sharing one 65-bone skeleton, with the face units as blend shapes. glTFast mirrors X to go from glTF's right-handed axes to Unity's left-handed ones; the character stands on the floor facing +Z.

Humanoid

glTFast does not offer Unity's Humanoid rig type in its import settings, so build the avatar from the skeleton in code with AvatarBuilder. The bone map is fixed by the export profile (UE mannequin names, or their Mixamo equivalents):

Unity HumanBodyBones Dramatis joint
Hips, Spine, Chest, UpperChest, Neck, Head pelvis, spine_01, spine_02, spine_03, neck_01, Head
Left/Right Shoulder, UpperArm, LowerArm, Hand clavicle_l/r, upperarm_l/r, lowerarm_l/r, hand_l/r
Left/Right UpperLeg, LowerLeg, Foot, Toes thigh_l/r, calf_l/r, foot_l/r, ball_l/r
Fingers Proximal, Intermediate, Distal `thumb

root and the _leaf tips are not human bones. The complete builder is BuildHumanoid in samples/unity/Assets/Editor/DramatisEngineCheck.cs. The export's rest pose is a T-pose, which is what Humanoid expects.

With a Humanoid avatar, any Humanoid clip (Mixamo's, the Asset Store's) drives the character through Unity's retargeting.

UAL and other UE-mannequin clips

The skeleton has the rest frames of Quaternius' Universal Animation Library, so UAL clips play on it as Generic clips with no retargeting, as long as their curve paths match the character's hierarchy. The simplest way is to put the clip into the character's own file:

bun tools/engines/splice-clip.ts hero.glb hero.walk.glb   # UAL Walk_Loop by default

hero.walk.glb imports with its clip on the character's own joints (rotations on every joint, translations on root and pelvis only, the pelvis scaled to the character's hip height). If glTFast makes no clip, set the importer's Animation to Legacy or Mecanim in the Inspector.

Run the check

bun tools/engines/unity.ts

copies the sample exports into samples/unity/Assets/Characters/ and runs the editor in batch mode (exact command and steps: samples/unity/README.md).