Files
settled-reach/tooling/blender_list_animations.py
T
jpmschweitzerandClaude Opus 4.6 23ec1ddebd feat(client): CharacterVisualDescriptor and compositor (#703, #704)
Add CharacterVisualDescriptor (11-variant BodyType enum, wire format
encode/decode, body_type_key mapping) and CharacterVisual compositor
(runtime 3D character assembler with slot architecture, BoneAttachment3D,
clothing coverage, recolor mask loading, skin tone tinting, bone
validation). Includes 64 unit tests and Blender utility scripts.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-20 07:48:47 +01:00

33 lines
947 B
Python

"""
blender_list_animations.py
Usage: tooling/blender --background --python tooling/blender_list_animations.py -- <input.glb>
Lists all animation actions in a GLB file.
"""
import sys
import bpy
if __name__ == "__main__":
argv = sys.argv
if "--" not in argv:
print("Usage: tooling/blender --background --python tooling/blender_list_animations.py -- <input.glb>")
sys.exit(1)
args = argv[argv.index("--") + 1:]
input_path = args[0]
bpy.ops.wm.read_factory_settings(use_empty=True)
bpy.ops.import_scene.gltf(filepath=input_path)
actions = list(bpy.data.actions)
print("ACTIONS_COUNT=" + str(len(actions)))
for action in sorted(actions, key=lambda a: a.name):
print("ACTION: " + action.name)
# Also report armature bone count if present
for obj in bpy.context.scene.objects:
if obj.type == 'ARMATURE':
print("ARMATURE_BONES=" + str(len(obj.data.bones)))