Scene Manager: LOD switching; Shot Viewer renamed Shot Manager
LODs are child collections of the asset collection (COL_{asset}_LOD{n}).
Overrides hide the other LOD collections (viewport and render), keeping
the rig, pose and animation; collection instances instance the LOD
collection. Each instance has its own LOD, set per instance or for the
selection in the Loaded panel, kept through save, reload and updates.
Loading shows SCENE_MANAGER_DEFAULT_LOD (0).
The Shot Viewer panel is now "Shot Manager" and starts closed. Code
names and SHOT_VIEWER_* config keys are unchanged.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
9fe38ce58a
commit
bac7a6f5da
10 files changed
+258
-45
No files matched your search
@@ -4,7 +4,7 @@ Blender add-on for the Melvile pipeline (Walking The Dog). It brings together:
|
||||
|
||||
- **[Sanity Check](#sanity-check)**: checks a file against the production specs and fixes what can be fixed.
|
||||
- **[Rename](#rename)**: batch renames objects and materials to the naming convention, with consistent numbering.
|
||||
- **[Shot Viewer](#shot-viewer)**: switch, create and delete the shots of a sequence (camera markers) from the sidebar, with quick access to the character and prop rigs.
|
||||
- **[Shot Manager](#shot-manager)**: switch, create and delete the shots of a sequence (camera markers) from the sidebar, with quick access to the character and prop rigs.
|
||||
- **[Scene Manager](#scene-manager)**: loads the assets cast in a shot from Libreflow, keeps them up to date, and publishes scene collections as new assets.
|
||||
- **[Get Oid](#get-oid-for-open-scene)**: asks Libreflow for the id of the open file.
|
||||
|
||||
@@ -19,7 +19,7 @@ Most values the tools rely on (prefixes, shot naming, frame rate…) live in `co
|
||||
- [Sanity Check](#sanity-check)
|
||||
- [Tools panel](#tools-panel)
|
||||
- [Rename](#rename)
|
||||
- [Shot Viewer](#shot-viewer)
|
||||
- [Shot Manager](#shot-manager)
|
||||
- [Scene Manager](#scene-manager)
|
||||
- [Configuration](#configuration)
|
||||
- [Troubleshooting](#troubleshooting)
|
||||
@@ -31,7 +31,7 @@ Most values the tools rely on (prefixes, shot naming, frame rate…) live in `co
|
||||
|
||||
Tested on **Blender 5.2**.
|
||||
|
||||
The Shot Viewer builds its cameras with the **Add Camera Rigs** extension (*Edit > Preferences > Get Extensions*, search "Add Camera Rigs"). Install and enable it next to Melvile Tools.
|
||||
The Shot Manager builds its cameras with the **Add Camera Rigs** extension (*Edit > Preferences > Get Extensions*, search "Add Camera Rigs"). Install and enable it next to Melvile Tools.
|
||||
|
||||
The Scene Manager talks to a **running Libreflow** with the `wtdcmds` extension, on the same machine.
|
||||
|
||||
@@ -63,7 +63,7 @@ Open the sidebar of the 3D Viewport (**N**) and click the **WTD** tab.
|
||||
| **Sanity Check** | 3D Viewport, Video Sequencer |
|
||||
| **Tools** (Get Oid) | 3D Viewport |
|
||||
| **Rename** | 3D Viewport, Shader Editor |
|
||||
| **Shot Viewer** | 3D Viewport |
|
||||
| **Shot Manager** | 3D Viewport |
|
||||
| **Scene Manager** (Casting, Loaded, Assetize) | 3D Viewport |
|
||||
|
||||
---
|
||||
@@ -238,7 +238,7 @@ The box under the **Rename** button previews every change (`old name → new nam
|
||||
|
||||
---
|
||||
|
||||
## Shot Viewer
|
||||
## Shot Manager
|
||||
|
||||
A sidebar panel to go through the shots of a sequence in their camera. You can switch shots, add and delete them, and grab the character and prop rigs.
|
||||
|
||||
@@ -255,7 +255,7 @@ During playback, Blender itself switches to the camera of each marker, so playin
|
||||
|
||||
### Where it is
|
||||
|
||||
*3D Viewport sidebar (**N**) > WTD tab > **Shot Viewer***.
|
||||
*3D Viewport sidebar (**N**) > WTD tab > **Shot Manager***.
|
||||
|
||||
Choosing a shot in the panel moves the playhead to it and puts **the 3D view you clicked in** into that shot's camera view. Keep a Timeline open (for example at the bottom of the Layout workspace) to see the camera markers and where you are in the sequence.
|
||||
|
||||
@@ -360,6 +360,7 @@ Lists the assets cast in the shot, with how many instances are loaded out of how
|
||||
- **Collection:** from that file, `COL_<asset>`, else `<asset>`, else `environments` (set dressing files), else the file's only top-level collection.
|
||||
- **Characters, props and vehicles** (`*_character`, `main_props`, `secondary_props`, `vehicles`) become **library overrides**, so animators can pose them. Other types, like sets and set props, become **collection instances**.
|
||||
- **Where they go:** each asset type gets its own collection, `COL_main_character`, `COL_main_props`, `COL_bg_location`…
|
||||
- **Level of detail:** when the asset collection holds LOD collections (`COL_<asset>_LOD0`, `COL_<asset>_LOD1`…), LOD 0 is shown (the lowest LOD the file has, if not LOD 0). See [Levels of detail](#levels-of-detail).
|
||||
|
||||
All of these can be changed in the [Configuration](#configuration).
|
||||
|
||||
@@ -368,14 +369,32 @@ All of these can be changed in the [Configuration](#configuration).
|
||||
Lists everything the Scene Manager loaded, one line per asset, with its version:
|
||||
|
||||
- The version is **red** when it is not the latest publish. The line under it says either "v004 available" (click the update icon), or "v004 published, not available on this site yet" (click the globe to request it, then "v004 requested, waiting for the download").
|
||||
- **Arrow**: shows the asset's instances, each with a button to select its objects and one to remove it.
|
||||
- **Arrow**: shows the asset's instances, each with a button to select its objects and one to remove it. Under an instance with levels of detail, one button per LOD (`LOD 0 1 2`), the shown one pressed.
|
||||
- **Menu icon**: pick another published version, for example to roll back. Versions not on this site are marked: picking one requests it; pick it again once it is downloaded.
|
||||
- **✕**: removes the asset entirely: all its instances and the link to its file.
|
||||
- **Update All** / **Update Selected**: switch all the loaded assets (or the ones of the selected objects) to their latest available publish.
|
||||
- **Remove Selected**: removes the instances of the selected objects.
|
||||
- **Selected LOD** (shown when a selected instance has LODs): switch the instances of the selected objects to that LOD.
|
||||
- The magnifier re-checks the versions.
|
||||
|
||||
Updating swaps the linked file and reloads it. Overrides keep their posing and animation. **Ctrl+Z** undoes removing and updating.
|
||||
Updating swaps the linked file and reloads it. Overrides keep their posing and animation, and instances keep their LOD (an instance showing a LOD the new version no longer has goes back to LOD 0). **Ctrl+Z** undoes removing, updating and LOD switches.
|
||||
|
||||
### Levels of detail
|
||||
|
||||
Rigs and models can hold their levels of detail as **child collections of the asset collection**, named `COL_<asset>_LOD<n>`. One LOD is shown at a time:
|
||||
|
||||
```
|
||||
COL_bob
|
||||
├─ RIG_bob (shared: rig, controllers…)
|
||||
├─ COL_bob_LOD0 shown
|
||||
├─ COL_bob_LOD1 hidden
|
||||
└─ COL_bob_LOD2 hidden
|
||||
```
|
||||
|
||||
- **Overrides** (characters, props, vehicles): the other LOD collections are hidden in the viewport and the render, so they cost nothing. The rig and everything outside the LOD collections stay; posing and animation are kept when switching.
|
||||
- **Collection instances** (sets, set props…): the instance shows the LOD collection itself. This needs everything of the asset to sit in its LOD collections: an asset with objects or collections next to them cannot switch LODs as an instance (load it as an override instead).
|
||||
|
||||
Each instance has its own LOD: two instances of the same asset can show different LODs. The choice is saved with the file. The naming and the LOD shown on load are `SCENE_MANAGER_LOD_COLLECTION` and `SCENE_MANAGER_DEFAULT_LOD` in the [Configuration](#configuration).
|
||||
|
||||
### Assetize
|
||||
|
||||
@@ -434,8 +453,8 @@ Name formats use Python's `str.format`: `"sq{:04d}"` turns `10` into `sq0010`. `
|
||||
| Sanity Check: layout | `SET_COLLECTION_PATTERN` |
|
||||
| Sanity Check: panel | `CATEGORY_ORDER`, `MAX_ISSUES_DRAWN` |
|
||||
| Rename | `RENAME_SEPARATOR`, `RENAME_PADDING`, `RENAME_SIDES`, `RENAME_TYPE_SUFFIXES` (plus `OBJECT_PREFIXES` / `DATABLOCK_PREFIXES` for *By Type* prefixes) |
|
||||
| Shot Viewer | `SHOT_VIEWER_RIG_GROUPS`, `SHOT_VIEWER_ASSET_TYPE_GROUPS`, `SHOT_NAME_FORMAT`, `SHOT_NUMBER_STEP`, `SHOT_FRAME_START`, `SHOT_DEFAULT_DURATION`, `SEQUENCE_NAME_FORMAT`, `SHOT_CAMERA_NAME_FORMAT`, `SHOT_CAMERA_RIG_NAME_FORMAT`, `SHOT_CAMERA_RIG_MODES` |
|
||||
| Scene Manager | `LIBREFLOW_SERVER_FILE`, `LIBREFLOW_TIMEOUT`, `SCENE_MANAGER_FILE_PATTERNS`, `SCENE_MANAGER_COLLECTION_NAMES`, `SCENE_MANAGER_LINK_MODES`, `SCENE_MANAGER_TYPE_COLLECTION`, `SCENE_MANAGER_ASSETIZE_TASK` |
|
||||
| Shot Manager | `SHOT_VIEWER_RIG_GROUPS`, `SHOT_VIEWER_ASSET_TYPE_GROUPS`, `SHOT_NAME_FORMAT`, `SHOT_NUMBER_STEP`, `SHOT_FRAME_START`, `SHOT_DEFAULT_DURATION`, `SEQUENCE_NAME_FORMAT`, `SHOT_CAMERA_NAME_FORMAT`, `SHOT_CAMERA_RIG_NAME_FORMAT`, `SHOT_CAMERA_RIG_MODES` |
|
||||
| Scene Manager | `LIBREFLOW_SERVER_FILE`, `LIBREFLOW_TIMEOUT`, `SCENE_MANAGER_FILE_PATTERNS`, `SCENE_MANAGER_COLLECTION_NAMES`, `SCENE_MANAGER_LINK_MODES`, `SCENE_MANAGER_LOD_COLLECTION`, `SCENE_MANAGER_DEFAULT_LOD`, `SCENE_MANAGER_TYPE_COLLECTION`, `SCENE_MANAGER_ASSETIZE_TASK` |
|
||||
|
||||
---
|
||||
|
||||
@@ -453,10 +472,10 @@ Either no character reference is set (see [Character reference](#character-refer
|
||||
**Rename: the preview shows nothing.**
|
||||
Nothing is selected, the selection is linked from a library, or (in *Materials* mode) the selected objects have no local material.
|
||||
|
||||
**Shot Viewer: a rig is not in the list.**
|
||||
**Shot Manager: a rig is not in the list.**
|
||||
Only armatures in the scene's view layer are listed. A collection instance that has not been overridden does not expose its armature: make a library override first.
|
||||
|
||||
**Shot Viewer: a shot is missing from the list.**
|
||||
**Shot Manager: a shot is missing from the list.**
|
||||
Only markers bound to a camera are shots. Select the marker, select its camera, and press **Ctrl+B** in the Timeline.
|
||||
|
||||
**Scene Manager: "Libreflow is not running".**
|
||||
@@ -471,7 +490,7 @@ The newer version is published but not downloaded on this site yet. Request it (
|
||||
**Scene Manager: "...its wtdcmds extension is too old".**
|
||||
Libreflow runs an older `wtdcmds` without the command (e.g. requests). Update the extension and restart Libreflow.
|
||||
|
||||
**Shot Viewer: playback only plays one shot.**
|
||||
**Shot Manager: playback only plays one shot.**
|
||||
**Loop Shot** is on. Untick it to play the whole sequence.
|
||||
|
||||
---
|
||||
@@ -489,7 +508,7 @@ Libreflow runs an older `wtdcmds` without the command (e.g. requests). Update th
|
||||
| `checks/` | The checks, one folder per family |
|
||||
| `ui/` | Sanity Check operators, settings and every panel |
|
||||
| `rename.py` | Rename tool (logic, settings, operator) |
|
||||
| `shot_viewer.py` | Shot Viewer (logic, settings, operators) |
|
||||
| `shot_viewer.py` | Shot Manager (logic, settings, operators) |
|
||||
| `tools_ops.py` | Libreflow tools (Get Oid) |
|
||||
| `scene_manager/` | Scene Manager: `ipc.py` (Libreflow client and background jobs), `library.py` (linking, overrides, updates), `operators.py` |
|
||||
|
||||
|
||||
Reference in new issue
Block a user