extends SceneTree ## Dev tool: print the skeleton's bone hierarchy for a skin's GLB. ## godot --headless --path . -s res://debug/dump_bones.gd -- func _init() -> void: call_deferred("_run") func _run() -> void: var args := OS.get_cmdline_user_args() var path: String = args[0] if args.size() > 0 \ else "res://assets/characters/skins/taila.glb" var scene := GLBLoader.load(path) if not scene: printerr("could not load ", path) quit(1) return var skel: Skeleton3D = _find(scene) as Skeleton3D if not skel: printerr("no skeleton") quit(1) return print("bones: ", skel.get_bone_count()) for i in skel.get_bone_count(): var p := skel.get_bone_parent(i) var pname := skel.get_bone_name(p) if p >= 0 else "-" var n := skel.get_bone_name(i) if n.findn("arm") != -1 or n.findn("hand") != -1 or n.findn("shoulder") != -1: print(" %d %s parent=%s" % [i, n, pname]) quit(0) func _find(node: Node) -> Node: if node is Skeleton3D: return node for c in node.get_children(): var f := _find(c) if f: return f return null