Asset Pipeline v2 #145

Closed
Nick Alberelli wants to merge 431 commits from (deleted):feature/asset-pipeline-v2 into main

When changing the target branch, be careful to rebase the branch in your fork to match. See documentation.
Showing only changes of commit 796f3e2d06 - Show all commits

View File

@ -2,7 +2,7 @@
## Introduction
This Add-On was designed to allow multiple artists to collaborate while contributing to a common Asset. It enables simultaneous work on the same asset by multiple artists. The add-on works by tracking what data each artist contributes to the asset and merges the assets together into a final "Published" asset. This published asset is marked to be discovered by Blender's asset manager.
## Table of Contents
<!-- TOC -->
- [Asset Pipeline](#asset-pipeline)
@ -22,6 +22,7 @@ This Add-On was designed to allow multiple artists to collaborate while contribu
- [Active](#active)
- [Staged](#staged)
- [Review](#review)
- [Creating Custom Task Layers](#creating-custom-task-layers)
<!-- /TOC -->
@ -83,13 +84,13 @@ To setup an asset using "Current File" mode, please open the file you would like
## Push/Pull
The Push/Pull process happens in three steps.
### 1. Updating Ownership
### Updating Ownership
When you Push/Pull a file, you will be greeted with an operator dialogue. This dialogue will list any new data that it has found in your file. Pressing OK will assign these new pieces of data to your local task layer, if you have multiple local task layers, you will be able to select which one is the owner of each piece of data. Once completed this information will be used to ensure your work is merged properly with the published file.
### 2. Save File
### Save File
The add-on will optionally save your current file plus any unsaved/unpacked images will be saved in a directory relative to your asset (configurable in the add-on preferences). It will always create a back-up of your current file, in the case where the merge process fails, you will be prompted to revert your file back to it's pre-merge status.
### 3. Merge with Published File
### Merge with Published File
Push and Pull are merging operations done to/from the published file. When you want to share your updated work to the rest of the team select "Push to Publish" to update the published file with your changes. Push will update any Transferable Data you edited, and update any objects/collections you own with the version in your current file. Transferable Data owned by other artists will be re-applied to your objects.
If another artist then uses the "Pull to Publish" operator the same process will occur, keeping all objects, collections and Transferable Data that is local to their file, and importing any data that was owned externally by other task layers.
@ -107,4 +108,65 @@ An active publish is a publish that can be referenced by the production into sho
A staged asset, is an publish that cannot be referenced by the production, only one staged asset can exist at a time. If a staged publish exists it will replace the active publish as the push/pull target. The staged area exists so artists can collaborate on a new version of an asset that is not ready to be used in production.
### Review
A review publish is simple a way to test out the final published version of your asset. You can create as many review publishes as you want to check your work and ensure the merge process produces results that are expected. Review publish is never used as a push/pull target and is for testing only.
A review publish is simple a way to test out the final published version of your asset. You can create as many review publishes as you want to check your work and ensure the merge process produces results that are expected. Review publish is never used as a push/pull target and is for testing only.
## Creating Custom Task Layers
Add your own custom Task Layers to the asset pipeline addon. To create a custom task layer, find one of the templates at `/asset_pipeline/task_layer_configs/` copy one of the task layers to your own custom directory. The layout of the JSON file is as follows...
```JSON
{
// Task Layer Types are formatted as {"Name of Task Layer": "Prefix"}
"TASK_LAYER_TYPES": {
"Modeling": "MOD",
"Rigging": "RIG",
"Shading": "SHD"
},
// These are the default or preferred owners for each type of transfer data
"TRANSFER_DATA_DEFAULTS": {
"GROUP_VERTEX": { // Name of Transfer Data Type (not customizable)
"default_owner": "Rigging", // Matching one of the Task Layer types above
"auto_surrender": false // If data type will be surrendered on initialization
},
"MODIFIER": {
"default_owner": "Rigging",
"auto_surrender": false
},
"CONSTRAINT": {
"default_owner": "Rigging",
"auto_surrender": false
},
"MATERIAL": {
"default_owner": "Shading",
"auto_surrender": true
},
"SHAPE_KEY": {
"default_owner": "Modeling",
"auto_surrender": false
},
"ATTRIBUTE": {
"default_owner": "Rigging",
"auto_surrender": false
},
"PARENT": {
"default_owner": "Rigging",
"auto_surrender": false
}
},
// These are default attributes created by Blender
"ATTRIBUTE_DEFAULTS": {
"sharp_face": {
"default_owner": "Modeling",
"auto_surrender": true
},
"UVMap": {
"default_owner": "Shading",
"auto_surrender": true
}
}
}
```