Support Blender Core Development with a monthly contribution.
The creators who share. Access production content and knowledge from the Open Movies.
Latest news and updates on Blender development.
Join the community and help with design, development, docs and more.
A platform to collect and display the Blender Benchmark results.
Documentation on Blender's features, tools and API.
The yearly event that brings together the Blender community in one place.
Download the latest Blender version, or try the beta!
Pipeline and Tools
Location: {project root}/lib/char/{char subfolder}/{char name}.blend
A character asset is a collection which contains shaded geometry, rigs, rigging objects such as mesh deformers and lattices. All of these are needed to give animators control over their movement and make up the final rendered representation of the character in the movie
Location: {project root}/lib/prop/{prop subfolder}/{prop name}.blend
A prop in real life is a rigged, animatable object which characters interact with or can be constrained to. An environment library asset can sometimes be turned into a prop (e.g. Autumn picks up a branch from the ground and breaks it into pieces).
Location: {project root}/lib/env/{env subfolder}/{env name}.blend
The building blocks needed to turn over sets and construct the movie stage. These are either static, or can be animated in a more limited way than props. Typically a larger set of them is needed with different variations, so we group them into asset library files. For example on Spring there was trees.blend, rocks.blend, etc. Each asset is in its own collection, but is also placed in a library collection that groups them together for easier linking access.
Location: {project root}/lib/set/{set subfolder}/{set name}.blend
Sets are more tricky to define, since they can differ even on a shot level. In practice they are formed by a ground plane and dressed with environment assets. They can also contain individually created assets (Spring example: riverbed.blend contained two non-library trees which were modelled and shaded uniquely in this set). Sets can be connected together to build a larger world if necessary. Sets are contained in a main collection which has sub-collections for visibility management)
Location: {project root}**/**shots**/**{sequence number}**/**{shot identifier}/{shot identifier}.{task identifier}.blend
Examples: gabby.blend, gabby.shading.blend, gabby.rigging.blend
The main asset files should be as simple as possible: {asset name}.blend. These main asset files are meant to be written by our asset pipeline, but should rarely be touched by hand (other than solving errors). Data is consolidated
We use task identifiers to distinguish between the different stages of the asset. {asset name}.{task identifier}.blend.
task identifiers:
E.g. **010_0030_A** {scene number}_{shot number}_{variant}
Scene: 3 digits, incremented by 10 at first creation
Shot number: 4 digits, incremented by 10 at first creation
Variant: Letters A - Z
Example: **140_0010_B.anim.blend**
Its position in the repository would be at:
pro/**shots/140_credits/140_0010_A/140_0010_A.anim.blend**
Output for the animation playblasts at:
/render/**shots/140_credits/140_0010_A/140_0010_A.anim/140_0010_A.anim.v001.mp4**
/render/**shots/140_credits/140_0010_A/140_0010_A.anim/140_0010_A.anim.v002.mp4**
...
Output of the rendered frames:
/render/**shots/140_credits/140_0010_A/140_0010_A.lighting/000001.exr**
Generated previews from frames:
/render/**shots/140_credits/140_0010_A/140_0010_A.lighting/140_0010_A.lighting.mp4**
Example of a Backup copy of frames:
/render/**shots/140_credits/140_0010_A/140_0010_A.lighting_bak/140_0010_A.lighting.mp4**
pro/**shots/110_rextoria/110_0010_A/110_0010_A.anim.blend**
pro/**shots/110_rextoria/110_0010_A/110_0010_A.layout.blend**
pro/**shots/110_rextoria/110_0010_A/110_0010_A.fx.blend**
pro/**shots/110_rextoria/110_0010_A/110_0010_A.comp.blend**
pro/**shots/110_rextoria/110_rextoria.layout.blend**
pro/**shots/110_rextoria/110_rextoria.scene.blend**
We use prefixes only for top level collections of an asset. This is important to distinguish types of assets. The name of the asset itself should be lowercase.
Example: CH-phileas
Sub-collections should start with the character's name and have dots as separators: phileas.rig.widgets
All objects should have a prefix, followed by a dash that determines their type:
Use dot uppercase L or R for objects that belong to one side and are mirrored
Example: GEO-dresser_drawer.L
If a name contains a of relationship - in the above example the drawer of the dresser - these should not be separated by a dot, but rather with an underscore.
Another example: GEO-ellie_watch_screw and not GEO-ellie_watch.screw
If the watch had a variant of type clean and dirty, these would be using a dot to express the nature of the variant: GEO-ellie_watch.clean and GEO-ellie_watch.dirty
Example: PLB-spring.hand
More examples:
ANI-rex.140_0020_A.v001
ANI-ellie.060_scratch.layout.v001
ANI-sprite_A.110_0100_A.v001
PLB-rex_face.scared
PLB-rex_face.happy
PLB-rex_hand.closed
Location:
{project root}/lib/maps/ for general textures which are used across the entire project
{asset folder}/maps/ for specific textures related to an asset
Example: dresser_wood.faded.col.png
{show_prefix:optional}-{name}-v{version:optional}.{variant:optional}.{representation:optional}.{extension}