Skills

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
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

  1. Run scripts/scene_audit.py (add --fix purge scale paths only on files you own). It reports units, unapplied/negative scale, default names, objects in the scene root, missing images, orphans and far-off origins.
  2. 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).
  3. Build the collection layout (below). Every object must be in a named collection, never the scene root.
  4. Name everything with the conventions below. Rename after every duplicate or join so no .001 suffixes remain.
  5. 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.
  6. Apply rotation and scale on meshes (Ctrl+A). Keep location unless the asset should export at the origin.
  7. Re-run the audit. It's done when issues is 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.

Read the whole SKILL.md on GitHub

More in Engineering