Skip to content
Marcus Ottosson edited this page Aug 28, 2014 · 8 revisions

Pyblish facilitates a few contrasting methods of working in production.

# Legend
#  WORKSPACE:    Current working directory
#  INTERSECTION: The point at which two branches merge

Overview

In feature film, there is a very large amount of divide-and-conquer of resources - heads are literally separated from their bodies. In commercial work however, it is possible to spend the entirety of a project within a single application, such as Autodesk Maya, and as such not require various output formats or conversions between software. Neither is it uncommon for a project in visualisation to spend the entirety of their time working on a single image. Pyblish must facilitate for these concerns.

Feature film

Feature film work consisting of tens or hundreds of shots is typically divided into assets and sub-assets. An asset representing a higher-level concept, such as a character in the film, and sub-assets representing its various components; rigs, shaders, textures, models and so forth.

Commercials

Commercials are somewhat like feature film work, but typically much less structured. As the number of artists involved are much less than that of feature film work, there is less need for divide-and-conquer and a studio can typically get away with sticking to ad-hoc naming conventions spelled out up front and in person.

Visualisation

Assuming for a second that all visualisations are about producing a single image, a single image can still be a daunting task. However, a few aspects of publishing are no longer necessary; such as sequences, including meshes and images.

Styles

For reference, here are the following supported styles of working. Styles are not necessarily mutually exclusive and may be combined within a single production.

Minimal
# No separation between artists, assets or software
/
    spiderman/
        scenes/
           my_scene_v001.ma
        pyblishes/
           v001/

The minimal style corresponds to the one used in epic but for the entirety of a project. Where epic produces a minimal workspace per resource, this style produces one encompassing workspace.

This style is suited for when a project consists of a single asset or an equally small task. It doesn't take into account multiple assets, shots or users.

Monolithic
# No separation between artists or assets
/
    spiderman/
        maya/
            scenes/
                Peter/
            pyblished/
                Peter/
                    v001/

In monolithic, data is restricted to the confines of a single WORKSPACE and assets are separated conceptually, but not physically as opposed to epic and branched.

Branched
# Resources are branched and reach beyond their working directories.
/
    spiderman/
        assets/
            characters/
                Peter/
        pyblished/
            Peter/  # Peter exists in two branches

A branched development style is valid, yet more difficult to customise and encapsulate due to the fact that no relation exists between your working directory and the directory in which you store pyblished resources. The relation will have to be made explicit and out-of-band.

>>> workspace_path = os.getcwd()
>>> # Get closest intersection (by convention)
>>> intersection_path = workspace_path
>>> for i in xrange(3):
...     intersection_path = os.path.dirname(intersection_path)
>>> # Compose pyblished path (by convention)
>>> pyblish_path = os.path.join(intersection_path, 'pyblished')

Language, software and platform agnostic, feature film-strength quality assurance for content.

Table of contents

Architecture

Developer Resources

Strategies

More

Community

Clone this wiki locally