Each of the 19 ped rigs carried 1-9 primitives / 1-3 materials (fleet 92 draws, ~116 at the 24-rig near cap). merge_ped.py (Blender) merges each to 1 primitive + 1 atlased material: join meshes -> pack material UVs into a non-overlapping atlas UV -> EMIT-bake base-colours into one 1024 atlas -> single material. Skinning + skeleton preserved (65 joints, walk/idle untouched, clips retarget unchanged). Fleet 92->19 draws (1/ped); near-cap 116->24 (79% cut). Verified in vendored GLTFLoader: all 19 load as SkinnedMesh + bind walk; man_suit poses byte-identical to original. Hands to Lane D (D1) for full validation + full-density numbers, then F flips the roster. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
103 lines
2.1 KiB
JSON
103 lines
2.1 KiB
JSON
{
|
|
"peds": [
|
|
{
|
|
"file": "comical_boy_01.glb",
|
|
"size_before_kb": 121,
|
|
"size_after_kb": 125
|
|
},
|
|
{
|
|
"file": "comical_luchador_01.glb",
|
|
"size_before_kb": 159,
|
|
"size_after_kb": 163
|
|
},
|
|
{
|
|
"file": "man_athletic_01.glb",
|
|
"size_before_kb": 429,
|
|
"size_after_kb": 288
|
|
},
|
|
{
|
|
"file": "man_bouncer_01.glb",
|
|
"size_before_kb": 183,
|
|
"size_after_kb": 187
|
|
},
|
|
{
|
|
"file": "man_casual_01.glb",
|
|
"size_before_kb": 179,
|
|
"size_after_kb": 184
|
|
},
|
|
{
|
|
"file": "man_casual_02.glb",
|
|
"size_before_kb": 203,
|
|
"size_after_kb": 200
|
|
},
|
|
{
|
|
"file": "man_casual_03.glb",
|
|
"size_before_kb": 220,
|
|
"size_after_kb": 197
|
|
},
|
|
{
|
|
"file": "man_dj_streetwear_01.glb",
|
|
"size_before_kb": 291,
|
|
"size_after_kb": 239
|
|
},
|
|
{
|
|
"file": "man_elder_01.glb",
|
|
"size_before_kb": 200,
|
|
"size_after_kb": 203
|
|
},
|
|
{
|
|
"file": "man_grunge_01.glb",
|
|
"size_before_kb": 402,
|
|
"size_after_kb": 277
|
|
},
|
|
{
|
|
"file": "man_soldier_ww2_01.glb",
|
|
"size_before_kb": 326,
|
|
"size_after_kb": 244
|
|
},
|
|
{
|
|
"file": "man_suit_01.glb",
|
|
"size_before_kb": 436,
|
|
"size_after_kb": 303
|
|
},
|
|
{
|
|
"file": "man_worker_hivis_01.glb",
|
|
"size_before_kb": 463,
|
|
"size_after_kb": 279
|
|
},
|
|
{
|
|
"file": "woman_athleisure_01.glb",
|
|
"size_before_kb": 395,
|
|
"size_after_kb": 267
|
|
},
|
|
{
|
|
"file": "woman_business_01.glb",
|
|
"size_before_kb": 357,
|
|
"size_after_kb": 255
|
|
},
|
|
{
|
|
"file": "woman_casual_01.glb",
|
|
"size_before_kb": 351,
|
|
"size_after_kb": 396
|
|
},
|
|
{
|
|
"file": "woman_casual_02.glb",
|
|
"size_before_kb": 390,
|
|
"size_after_kb": 284
|
|
},
|
|
{
|
|
"file": "woman_chef_01.glb",
|
|
"size_before_kb": 336,
|
|
"size_after_kb": 339
|
|
},
|
|
{
|
|
"file": "woman_smart_01.glb",
|
|
"size_before_kb": 397,
|
|
"size_after_kb": 251
|
|
}
|
|
],
|
|
"fleet_draws_before": 92,
|
|
"fleet_draws_after": 19,
|
|
"near_cap_before": 116,
|
|
"near_cap_after": 24
|
|
} |