
Blender Scene Setup
Set up and audit Blender scenes the way studios do - units and real-world scale...
Install
npx skills add EL4CTEO/blender-skills --skill blender-scene-setup -g -a claude-code -y- Repository
- EL4CTEO/blender-skills651
- Category
- Engineering
- Updated
- 5d ago
- License
- MIT
- Context cost
- Lightabout 1,208 tokens
- Runs scripts
- Yes, review before use
What it does
Set up and audit Blender scenes the way studios do - units and real-world scale, collection layout, naming conventions (SM_/SK_/T_/M_), origins, linking vs appending, library overrides, asset libraries and catalogs, collection exporters, orphan/path cleanup. Use when starting a project, organizing a .blend, or before handoff/export.
Scene Setup & Hygiene
The execution model and verification steps are in blender-core.
Procedure
- Run
scripts/scene_audit.py(add--fix purge scale pathsonly on files you own). It reports units, unapplied/negative scale, default names, objects in the scene root, missing images, orphans and far-off origins. - Set units: Metric, Unit Scale 1.0, Length meters. Keep 1.0 even for Unreal/Roblox, because exporters handle the conversion (see
blender-export-pipelines). - Build the collection layout (below). Every object must be in a named collection, never the scene root.
- Name everything with the conventions below. Rename after every duplicate or join so no
.001suffixes remain. - Set origins: props at the bottom-center (they sit on the ground at Z=0), characters at world origin between the feet, doors/hinges at the pivot.
- Apply rotation and scale on meshes (Ctrl+A). Keep location unless the asset should export at the origin.
- Re-run the audit. It's done when
issuesis empty or every remaining issue is intentional and explained.
Collection layout (one asset per .blend, or one collection per asset)
ASSET_Crate
├── Crate_high # sculpt / subdiv source (exclude from export)
├── Crate_low # game mesh(es) SM_Crate, SM_Crate_LOD1..
├── Crate_bake # cages, bake helpers
├── Crate_collision # UCX_SM_Crate_00 (UE) / Crate-col (Godot)
└── Crate_ref # reference images/blockout (hide_render)
Use Collection Exporters (4.2+) to define the export once per collection, then re-export with one call:
with bpy.context.temp_override(collection=col):
bpy.ops.collection.exporter_add(name="IO_FH_gltf2")
ex = col.exporters[-1]; ex.export_properties.filepath = "//export/SM_Crate.glb"
with bpy.context.temp_override(collection=col):
bpy.ops.collection.exporter_export(index=len(col.exporters) - 1)
bpy.ops.wm.collection_export_all() re-runs every collection exporter.
