d6cd3293ae
assets/avatars/catalog.json referenced 14 GLB files that were never in the repo, so the avatar system could not load a single avatar. And the loader's assembly path had never run against a real skeleton -- it called Skeleton3D.has_bone() (no such method in Godot 4) and hand-copied bones in a way that dropped the skin binding. - scripts/tools/gen_placeholder_avatars.gd: generates the pack headlessly via GLTFDocument -- one rigged/skinned base body (the full 24-bone canonical rig from a T-pose) + 13 primitive attachments. Crude on purpose; real art swaps in as a pure content change (catalog paths unchanged). - assets/avatars/*.glb: the generated pack (checked in). - avatar_loader.gd: rewrote _parse_glb_as_avatar to lift the skin-bound Skeleton3D that generate_scene() already produces, instead of rebuilding it. Attachments now mount via BoneAttachment3D to the catalog's mount_bone and are actually added to the avatar tree (they were parsed then dropped). Fixed the has_bone() crash, the null ARRAY_BONES cast in _retarget_skin, and the Array[String] type mismatch on the accessory list. - smoke_test_avatar_system.gd: replaced the "asserts it fails gracefully because the files don't exist" section with a real assembly check -- Skeleton3D present, full 24-bone rig, canonical bones resolve by name, visible body mesh, equipped items mounted to bones. 14/14 from a cold cache. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015jtxAiu5dAW4WxCNdGkrkJ
43 lines
1.1 KiB
Plaintext
43 lines
1.1 KiB
Plaintext
[remap]
|
|
|
|
importer="scene"
|
|
importer_version=1
|
|
type="PackedScene"
|
|
uid="uid://dvou487niwnjt"
|
|
path="res://.godot/imported/accessory_necklace_01.glb-75d713dbb1ff9579d6f0bf8b7ddde1e2.scn"
|
|
|
|
[deps]
|
|
|
|
source_file="res://assets/avatars/accessory_necklace_01.glb"
|
|
dest_files=["res://.godot/imported/accessory_necklace_01.glb-75d713dbb1ff9579d6f0bf8b7ddde1e2.scn"]
|
|
|
|
[params]
|
|
|
|
nodes/root_type=""
|
|
nodes/root_name=""
|
|
nodes/root_script=null
|
|
nodes/apply_root_scale=true
|
|
nodes/root_scale=1.0
|
|
nodes/import_as_skeleton_bones=false
|
|
nodes/use_name_suffixes=true
|
|
nodes/use_node_type_suffixes=true
|
|
meshes/ensure_tangents=true
|
|
meshes/generate_lods=true
|
|
meshes/create_shadow_meshes=true
|
|
meshes/light_baking=1
|
|
meshes/lightmap_texel_size=0.2
|
|
meshes/force_disable_compression=false
|
|
skins/use_named_skins=true
|
|
animation/import=true
|
|
animation/fps=30
|
|
animation/trimming=false
|
|
animation/remove_immutable_tracks=true
|
|
animation/import_rest_as_RESET=false
|
|
import_script/path=""
|
|
materials/extract=0
|
|
materials/extract_format=0
|
|
materials/extract_path=""
|
|
_subresources={}
|
|
gltf/naming_version=2
|
|
gltf/embedded_image_handling=1
|