Skip to content

Commit

Permalink
Added initial documentation
Browse files Browse the repository at this point in the history
  • Loading branch information
mottosso committed Sep 14, 2016
1 parent 2c4626b commit b39de48
Show file tree
Hide file tree
Showing 5 changed files with 145 additions and 6 deletions.
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
examples/maya/private**
examples/maya/public**
125 changes: 123 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,123 @@
# pyblish-starter
Jumpstart your publishing pipeline with a basic configuration
### Pyblish Starter

Jumpstart your publishing pipeline with a basic configuration.

<br>
<br>
<br>

### Features

- Basic discovery of assets
- Basic validation
- Model, rig and animation extraction

<br>
<br>
<br>

### Install

Starter takes the form of a Python package with embedded plug-ins.

```bash
$ pip install pyblish-starter
```

<br>
<br>
<br>

### Usage

Plug-ins are registered by calling `setup()`.

```python
>>> import pyblish_starter
>>> pyblish_starter.setup()
```

### Example

Scripted demonstration of how to model, rig and animate an asset.

<br>
<br>
<br>

### Contract

Starter defines these families.

| Family | Definition | Link
|:--------------------|:----------------------------------------------|:------------
| `starter.model` | Geometry with deformable topology | [Spec](#startermodel)
| `starter.rig` | An articulated `starter.model` for animators | [Spec](#starterrig)
| `starter.animation` | Pointcached `starter.rig` for lighting | [Spec](#starteranimation)

<br>

### `starter.model`

<img align="right" src="https://cloud.githubusercontent.com/assets/2152766/18501858/3c85ab26-7a4b-11e6-8d09-8420a68f16b8.png"></img>

A generic representation of geometry.

```yaml
Instance:
label (str, optional): Pretty printed name
in graphical user interfaces

Sets:
geometry_SEL: Meshes suitable for rigging
aux_SEL: Auxilliary meshes for e.g. fast
preview, collision geometry
```
<br>
<br>
### `starter.rig`

<img align="right" src="https://cloud.githubusercontent.com/assets/2152766/18501865/484fe1a6-7a4b-11e6-9157-ce1275fe86ea.png"></img>

The `starter.rig` contains the necessary implementation and interface for animators to produce

```yaml
Instance:
label (str, optional): Pretty printed name
in graphical user interfaces
Sets:
cache_SEL: Meshes suitable for
pointcaching from animation
controls_SEL: All animatable controls
resources_SEL: Nodes that reference an external file
```

<br>

### `starter.animation`

<img align="right" src="https://cloud.githubusercontent.com/assets/2152766/18502081/d027e1cc-7a4c-11e6-8c01-baba21faabbe.png"></img>

Point positions and normals represented as one Alembic file.

```yaml
Instance:
label (str, optional): Pretty printed name
in graphical user interfaces
Sets:
None
```

<br>
<br>
<br>

#### Todo

Instances, in particular the Animation instance, requires some setup before being cachable. We don't want the user to perform this setup, but rather a tool. The tool could be in the form of a GUI that guides a user through selecting the appropriate nodes. Ideally the tools would be implicit in the loading of an asset through an asset library of sorts.

- Tool to create model, rig and animation instance.
19 changes: 17 additions & 2 deletions pyblish_starter/__init__.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,25 @@
import os
import pyblish.api

from .pipeline import (
time,
private_dir,
format_private_dir,
)

def register_plugins():
# Register accompanying plugins
from . import plugins
plugin_path = os.path.dirname(plugins.__file__)
pyblish.api.register_plugin_path(plugin_path)


def setup():
register_plugins()


__all__ = [
"time",
"private_dir",
"setup",
"register_plugins",
"format_private_dir",
]
Empty file.
5 changes: 3 additions & 2 deletions pyblish_starter/plugins/collect_instances.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@ class CollectStarterInstances(api.ContextPlugin):
id (str): "pyblish.starter.instance"
Supported Families:
model: Geometric representation of artwork
rig: An articulated model for animators.
starter.model: Geometric representation of artwork
starter.rig: An articulated model for animators.
A rig may contain a series of sets in which to identify
its contents.
Expand All @@ -25,6 +25,7 @@ class CollectStarterInstances(api.ContextPlugin):
- One (1) rig per scene file
- Unmanaged history, it is up to the TD to ensure
history is up to par.
starter.animation: Pointcache of `starter.rig`
Limitations:
- Does not take into account nodes connected to those
Expand Down

0 comments on commit b39de48

Please sign in to comment.