Character is a byte copy of 90sDJsim's man_casual_01 ped (already metre-scale, head bone 1.75 m, bind pose proven in that game). Clips ride beside it in an anim-only carrier built from the FBX libraries on the M1 Ultra. The peds cannot round-trip through Blender: they encode metre scale as a node scale of 0.01 on mixamorig*:Hips with child bones in centimetres, and Blender bones carry no rest scale, so the glTF importer silently drops it — the rig is exploded on import (LeftToe_End 96 m below the floor) before any merge happens. So merging clips onto the ped (PLAN3D 5-D.1) is not viable; we ship the ped untouched and retarget rotation-only clips onto it at runtime, the same shape 90sDJsim already uses for peds/idle.glb + peds/walk.glb. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
889 B
889 B
Lane D runtime models (copies — see PLAN3D §0 "asset copies rule")
| File | Source (canonical) | Notes |
|---|---|---|
player_01.glb |
90sDJsim/web/world/models/peds/man_casual_01.glb |
Byte copy, never edited. Head bone 1.75 m, already metre-scale. |
player_anims.glb |
built by tools/character/build_player_anims.py on the M1 Ultra |
Anim-only carrier: Idle/Walk/Run/Falling/CrouchToStand/Reaction. No mesh, no skin. |
Rebuild the clips: see the header of tools/character/build_player_anims.py.
Do not round-trip player_01.glb through Blender. The peds encode metre scale as a node
scale of 0.01 on mixamorig*:Hips with children in centimetres; Blender bones have no rest
scale, so the glTF importer drops it and the skeleton explodes on import (LeftToe_End lands
96 m below the floor). Clips are carried beside the ped instead, never merged into it.