Flow
Work in progress
Sorry, this part of the documentation is not yet redacted.
Structure
variables:
"var_name": "value"
workflows:
"document-model": # or document-model(group-model=group)
"item-model": # or item-model(group-model=group)
"task-model"("task"): # or task-model(*)
settings:
"element-slug":
delete_action: "action-slug"
create_action: "action-slug"
visibility_action: "action-slug"
actions:
"element-slug":
"action-slug":
enabled: bool # if false, cannot be used
public: bool # if false, cannot be ran manually
write_manifest: bool
parameters:
"param-slug":
value: "value"
editable: bool
links:
"link-slug":
item: "item-slug" | $element.item | $document.item
document_model: "document-model" | $document.document_model
task_model: "task-model" | $document.task_model
task: "task" | $document.task
element: "name" | $element.name
version: 1 | $latest | $new | $document.version
force_create_task: bool
force_create_document: bool
force_create_version: bool
origin: bool # If true, the origin will be linked to the element and used for update checks
recipes:
"recipe-slug":
name: "Recipe name"
description: "Description of the recipe"
queue:
"order-slug":
name: "Order name"
description: "Order description"
action: "element-slug">"action-slug"
item: $element.item | $document.item | "item-slug"
parameters:
"param-slug": "value" | $other-order-slug
undo: bool
filters:
condition: value
Example
For this example, we assume that the following ElementModels have been created:
- asset:
- name: Asset
- linked: true
- item_model: asset
- helper:
- name: Helper
- linked: true
- item_model: helper
- camera:
- name: Camera
- linked: true
- item_model: asset
- material:
- name: Material
- linked: true
- item_model: asset
- light:
- name: Light
- linked: true
- item_model: asset
- render-pass:
- name: Render pass
- linked: false
variables:
framerate: 25
workflows:
scene(software=maya):
asset(category=character):
modeling(modeling):
settings:
asset:
delete_action: delete
create_action: false
visibility_action: false
helper:
delete_action: delete
create_action: import
visibility_action: false
render-layers:
delete_action: delete
create_action: create
visibility_action: false
light-rig:
delete_action: delete
create_action: import
visibility_action: false
camera:
delete_action: delete
create_action: import
visibility_action: false
actions:
document:
set-settings:
enabled: true
public: true
parameters:
resolution:
value: $project.metadata(resolution)
editable: false
framerate:
value: %framerate
editable: false
set-render-settings:
enabled: true
public: true
create-folders:
enabled: true
public: true
parameters:
preset:
value: asset
editable: false
asset:
delete:
enabled: true
public: true
import:
enabled: true
public: false
write_manifest: true
export:
enabled: true
public: false
links:
target:
task_model: modeling
task: modeling
document_model: camera
require:
- validate
- clean
clean:
enabled: true
public: true
validate:
enabled: true
public: true
fix:
enabled: true
public: true
visibility:
enabled: true
helper:
import:
enabled: true
public: true
delete:
enabled: true
public: true
render-layer:
create:
enabled: true
public: true
delete:
enabled: true
public: true
render:
enable: true
public: false
links:
output:
task_model: $document.task_model
task: $document.task
document_model: render
version: $document.version
item: $document.item
element: $element.name
force_create_task: true
force_create_document: true
force_create_version: true
light-rig:
import:
enabled: true
public: true
delete:
enabled: true
public: true
update:
enabled: true
public: true
camera:
create:
enabled: true
public: true
delete:
enabled: true
public: true
recipes:
build:
name: Build
description: Initialize the scene
queue:
set-settings:
name: Scene settings
description: Setup scene settings
action: document>set-setting
set-render-settings:
name: Render settings
action: document>set-render-settings
create-folders:
name: Create folders
action: document>create-folders
create-main-asset:
name: Create main asset
action: asset>create
item: $document.item
import-turntable:
name: Import turntable
action: helper>import
item: turntable
create-render-layers:
name: Create render layers
action: render-layers>create
import-light-rig:
name: Import Light rig
action: light>import
parameters:
target_element: $generate-main-asset
create-camera:
name: Create camera
action: camera>create
parameters:
target_element: $generate-main-asset
publish:
name: Publish
queue:
validate-asset:
name: Validate asset
action: asset>validate
fix-asset:
name: Fix asset
action: asset>fix
parameters:
from_validation: $validate-asset
clean-asset:
name: Clean asset
action: asset>clean
undo: true
export-asset:
name: Export asset
action: asset>export
undo: true
render:
name: Render
queue:
hide-unselected:
name: Hide unselected
action: asset>visibility
parameters:
show: false
filters:
$element.selected: false
show-selected:
name: Show selected
action: asset>visibility
parameters:
show: true
submit-render:
name: Submit render
action: render-layer>render
texturing(texturing):
settings:
asset:
delete_action: delete
actions:
asset:
delete:
enable: true
public: true
import:
enabled: true
public: false
links:
source:
task_model: modeling
task: modeling
document_model: model
item: $element.item
origin: true
export:
links:
target:
task_model: texturing
task: texturing
document_model: model
item: $element.item
helper:
import:
source:
task_model: texturing
task: texturing
document_model: model
item: $element.item
recipes:
build:
name: Build
queue:
import-asset:
name: Import Asset
action: asset>import
item: $manifest
import-turntable:
name: Import turntable
action: helper>import
item: turntable
update:
name: Update
queue:
update-asset:
name: Update asset
type: Asset
action: update
publish:
name: Publish
queue:
shot:
layout(layout):
settings:
asset:
create_action: import
actions:
asset:
import:
enabled: true
public: true
write_manifest: true
links:
source:
task_model: texturing
task: texturing
groups:
variant: $user
document_model: model
item: $element.item
recipes:
build:
name: Build
queue:
# Allow to manually add elements (+ import)
# Recipes
# Build (import from manifest)
animation(animation):
actions:
asset:
cache:
enabled: true
public: false
parameters:
format:
value: abc
editable: false
links:
target:
task_model: animation
task: animation
item: $document.item
document_model: cache
track:
enabled: true
public: false
parameters:
format: fbx
editable: false
links:
target:
task_model: animation
task: animation
item: $document.item
document_model: cache
document:
playblast:
enabled: true
public: true
recipes:
build:
name: Build
update:
name: Update
publish:
name: Publish
queue:
alembic:
name: Alembic
action: asset>cache
parameters:
format: abc
filters:
$element.item.metadata(deformation): organic
$element.item.slug: [JohnDoe, DarkVador]
playblast:
name: Playblast
queue:
playblast:
name: Playblast
action: document>playblast
lighting(lighting):
actions:
asset:
import:
enabled: true
public: false
links:
model:
task_model: texturing
task: texturing
document_model: model
item: $element.item
cache:
task_model: animation
task: animation
document_model: cache
item: $document.item
update:
enabled: true
public: true
render-layers:
render:
enabled: true
public: true
recipes:
render:
name: Render
queue:
hide-unselected:
name: Hide unselected
action: asset>visibility
parameters:
show: false
filters:
$element.selected: false
show-selected:
name: Show selected
action: asset>visibility
parameters:
show: true
submit-render:
name: Submit render
action: render-layer>render