Scene Manager: Load Publish and numbered instances

Load Publish (Loaded panel) searches every asset of the project, then
loads any of its published .blend files at any version, cast in the shot
or not. The file the casting would load and the latest version on this
site are preselected; a version not on this site is requested instead.
Built on the existing wtd_list_assets / wtd_get_asset_files /
wtd_get_revisions commands.

New instances are numbered (COL_bob_01, tree_01...), counting on from the
highest number in the file (SCENE_MANAGER_INSTANCE_NAME).

README: Pick Shot only lists shots that exist in Libreflow.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
NDemaerschalkandClaude Opus 5.5 committed 2026-10-28 10:47:05 +01:00
1 parent 6ec2b228ae
commit fbc7ac18e4
9 files changed
+307 -32

No files matched your search

+9 -1
View File
@@ -3,7 +3,8 @@
python dev/fake_libreflow.py <workdir>
Serves a project with one shot casting bob (main_character, x2), tree (bg_set), rock (main_props),
lamp (main_props, nothing published), car (vehicles, v001 not on this site) and ghost (not in the flow). The asset files come
lamp (main_props, nothing published), car (vehicles, v001 not on this site) and ghost (not in the flow);
chair (set_props) is not cast, for Load Publish. The asset files come
from dev/make_test_assets.py (<workdir>/lib). Writes <workdir>/kabaret/server.json:
point config LIBREFLOW_SERVER_FILE to it (see dev/test_scene_manager.py).
@@ -36,6 +37,11 @@ ASSETS = { # asset oid -> (type, {file_oid: (label, [revisions oldest first])})
f"{PROJECT}/asset_types/main_props/assets/lamp": ("main_props", {}),
f"{PROJECT}/asset_types/vehicles/assets/car": ("vehicles", {f"{PROJECT}/asset_types/vehicles/assets/car/tasks/rigging/files/car_blend": ("rigging/car.blend", [
rev("v001", f"{ROOT}/lib/car/v001/car.blend", available=False)])}),
f"{PROJECT}/asset_types/set_props/assets/chair": ("set_props", {
f"{PROJECT}/asset_types/set_props/assets/chair/tasks/shading/files/chair_shading_blend": ("shading/chair_shading.blend", [
rev("v001", f"{ROOT}/lib/chair/v001/chair.blend")]),
f"{PROJECT}/asset_types/set_props/assets/chair/tasks/modeling/files/chair_blend": ("modeling/chair.blend", [
rev("v001", f"{ROOT}/lib/chair/v001/chair.blend"), rev("v002", f"{ROOT}/lib/chair/v001/chair.blend", available=False)])}),
}
CASTING = [("bob", "main_character", 2), ("tree", "bg_set", 1), ("rock", "main_props", 1), ("lamp", "main_props", 1), ("car", "vehicles", 1), ("ghost", "main_character", 1)]
CALLS = []
@@ -100,6 +106,8 @@ def cmd(name, kw):
a["error"] = "No published revision available on this site"
out.append(a)
return {"shot_oid": SHOT, "assets": out}
if name == "wtd_get_asset_files":
return [file_data(f) for f in ASSETS[kw["oid"]][1]]
if name == "wtd_get_latest_revisions":
res = {}
for f in kw["file_oids"]: