Files
workinf_Blender_Wasm/web/tests/fixtures/nla-main-snapshots.py
mes123456 f3e21c6b98
Some checks failed
M6 deployable RC / quick (push) Has been cancelled
M6 deployable RC / chromium (push) Has been cancelled
M6 deployable RC / release (push) Has been cancelled
chore: checkpoint web Blender migration source, tools and docs
Accumulated uncommitted work: GHOST Web backend, WebGL/GPU web layer,
web workflow engine and protocol, tooling, docs and task records.
Large generated evidence, user-testing archives, build snapshots and
imported test assets remain untracked.

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-11-10 11:18:01 +08:00

42 lines
1.9 KiB
Python

"""Read canonical native Main NLA state from saved UI test artifacts."""
import json
from pathlib import Path
import sys
import bpy
directory = Path(sys.argv[sys.argv.index("--") + 1])
snapshots = {}
for blend in sorted(directory.glob("*.blend")):
bpy.ops.wm.open_mainfile(filepath=str(blend), load_ui=False)
objects = []
for obj in sorted(bpy.data.objects, key=lambda item: item.name):
tracks = []
if obj.animation_data:
for track in obj.animation_data.nla_tracks:
tracks.append({
"name": track.name,
"mute": track.mute,
"solo": track.is_solo,
"strips": [{
"name": strip.name,
"type": strip.type,
"action": strip.action.name if strip.action else None,
"start": strip.frame_start,
"end": strip.frame_end,
"actionStart": strip.action_frame_start,
"actionEnd": strip.action_frame_end,
"scale": strip.scale,
"repeat": strip.repeat,
"influence": strip.influence,
"blend": strip.blend_type,
"extrapolation": strip.extrapolation,
"mute": strip.mute,
"reverse": strip.use_reverse,
} for strip in track.strips],
})
objects.append({"name": obj.name, "type": obj.type, "data": obj.data.name if obj.data else None, "tracks": tracks})
snapshots[blend.stem] = {"objects": objects, "scenes": [{"name": scene.name, "frame": scene.frame_current} for scene in sorted(bpy.data.scenes, key=lambda item: item.name)]}
(directory / "native-nla-snapshots.json").write_text(json.dumps(snapshots, sort_keys=True, separators=(",", ":")), encoding="utf-8")