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>
14 lines
889 B
Markdown
14 lines
889 B
Markdown
# 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.
|