Skip to content

Instantly share code, notes, and snippets.

@mottosso
Last active June 9, 2016 14:39
Show Gist options
  • Save mottosso/fc44ab7a052e2374ceb856db5d7ecd45 to your computer and use it in GitHub Desktop.
Save mottosso/fc44ab7a052e2374ceb856db5d7ecd45 to your computer and use it in GitHub Desktop.
A small publishing pipeline with Pyblish, Maya and Nuke.

A small publishing pipeline with Pyblish, Maya and Nuke.

It can:

  1. Identify one type of asset, a "model"
  2. Ensure correctness of one aspect
  3. Write a single file to disk
  4. Register model with server

Usage

$ pip install pyblish-base
$ git clone https://gist.github.com/fc44ab7a052e2374ceb856db5d7ecd45.git plugins
$ export PYBLISHPLUGINPATH=$(pwd)/plugins
$ python -m pyblish publish
INFO - Collecting instances..
INFO - Integrating..
import pyblish.api
class CollectInstances(pyblish.api.ContextPlugin):
order = pyblish.api.CollectorOrder
def process(self, context):
self.log.info("Collecting instances..")
import pyblish.api
class ExtractModel(pyblish.api.InstancePlugin):
order = pyblish.api.ExtractorOrder
families = ["model"]
def process(self, instance):
self.log.info("Extracting..")
import shutil
import pyblish.api
class IntegrateInstances(pyblish.api.ContextPlugin):
order = pyblish.api.IntegratorOrder
def process(self, context):
self.log.info("Integrating..")
for instance in context:
pass
import pyblish.api
class UnlockNormals(pyblish.api.Action):
label = "Unlock Normals"
on = "failed"
def process(self, context, plugin):
pass
class ValidateLockedNormals(pyblish.api.InstancePlugin):
"""A valid model is one with unlocked normals"""
order = pyblish.api.ValidatorOrder
families = ["model"]
actions = [UnlockNormals]
def process(self, instance):
self.log.info("Validating normals...")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment