+Render Layer bakes all the animation layers of one particular color group together.
-Render Layer bakes all the animation layers of one particular color group together.
+- In the **Create** tab, pick `Render Layer`
+- Fill `variant`, type in the name that the final published RenderLayer should have according to the naming convention in your studio. *(L10, BG, Hero, etc.)*
+ - Color group will be renamed to the **variant** value
+- Choose color group from combobox
+ - or select a layer of a particular color and set combobox to **<Use selection>**
+- Hit `Create` button
-- Choose any amount of animation layers that need to be rendered together and assign them a color group.
-- Select any layer of a particular color
-- Go to `Creator` and choose `RenderLayer`.
-- In the `Subset`, type in the name that the final published RenderLayer should have according to the naming convention in your studio. *(L10, BG, Hero, etc.)*
-- Press `Create`
-- When you run [publish](#publish), the whole color group will be rendered together and published as a single `RenderLayer`
+After creating a RenderLayer, choose any amount of animation layers that need to be rendered together and assign them the color group.
+
+You can change `variant` later in **Publish** tab.
@@ -97,27 +85,45 @@ Render Layer bakes all the animation layers of one particular color group togeth
+
-Render Passes are specific because they have to belong to a particular layer. If you try to create a render pass and did not create any render layers before, an error message will pop up.
-When you want to create `RenderPass`
-- choose one or several animation layers within one color group that you want to publish
-- In the Creator, pick `RenderPass`
-- Fill the `Subset` with the name of your pass, e.g. `Color`.
+When you want to create Render Pass
+- choose one or several TVPaint layers.
+- in the **Create** tab, pick `Render Pass`.
+- fill the `variant` with desired name of pass, e.g. `Color`.
+- select the Render Layer you want the Render Pass to belong to from the combobox.
+ - if you don't see new Render Layer try refresh first.
- Press `Create`
+After creating a Render Pass, selected the TVPaint layers that should be marked with color group of Render Layer.
+
+You can change `variant` or Render Layer later in **Publish** tab.
+
@@ -126,52 +132,26 @@ When you want to create `RenderPass`
+:::warning
+You cannot change TVPaint layer name once you mark it as part of Render Pass. You would have to remove created Render Pass and create it again with new TVPaint layer name.
+:::
+
-
-
-Now that you have created the required instances, you can publish them via `Publish` tool.
-- Click on `Publish` in OpenPype Tools menu.
-- wait until all instances are collected.
-- You can check on the left side whether all your instances have been created and are ready for publishing.
+Now that you have created the required instances, you can publish them.
- Fill the comment on the bottom of the window.
-- Press the `Play` button to publish
-
-
-
-
-
-
-
-
-
-Once the `Publisher` turns gets green your renders have been published.
+- Double check enabled instance and their context.
+- Press `Publish`.
+- Wait to finish.
+- Once the `Publisher` turns turns green your renders have been published.
---
-## Subset Manager
-All created instances (render layers, passes, and reviews) will be shown as a simple list. If you don't want to publish some, right click on the item in the list and select `Remove instance`.
-
-
-
----
-
-## Load
+## Load
When you want to load existing published work you can reach the `Loader` through the OpenPype Tools `Load` button.
The supported families for TVPaint are:
@@ -192,4 +172,4 @@ Scene Inventory shows you everything that you have loaded into your scene using

-You can switch to a previous version of the file or update it to the latest or delete items.
+You can switch to a previous version of the file or update it to the latest or delete items.
diff --git a/website/docs/assets/3dsmax_SavingFirstFile2_OP.png b/website/docs/assets/3dsmax_SavingFirstFile2_OP.png
new file mode 100644
index 0000000000..4066ee0f1a
Binary files /dev/null and b/website/docs/assets/3dsmax_SavingFirstFile2_OP.png differ
diff --git a/website/docs/assets/3dsmax_SavingFirstFile_OP.png b/website/docs/assets/3dsmax_SavingFirstFile_OP.png
new file mode 100644
index 0000000000..c4832ca6bb
Binary files /dev/null and b/website/docs/assets/3dsmax_SavingFirstFile_OP.png differ
diff --git a/website/docs/assets/3dsmax_context.png b/website/docs/assets/3dsmax_context.png
new file mode 100644
index 0000000000..9b84cb2587
Binary files /dev/null and b/website/docs/assets/3dsmax_context.png differ
diff --git a/website/docs/assets/3dsmax_menu_OP.png b/website/docs/assets/3dsmax_menu_OP.png
new file mode 100644
index 0000000000..bce2f9aac0
Binary files /dev/null and b/website/docs/assets/3dsmax_menu_OP.png differ
diff --git a/website/docs/assets/3dsmax_menu_first_OP.png b/website/docs/assets/3dsmax_menu_first_OP.png
new file mode 100644
index 0000000000..c3a7b00cbb
Binary files /dev/null and b/website/docs/assets/3dsmax_menu_first_OP.png differ
diff --git a/website/docs/assets/3dsmax_model_OP.png b/website/docs/assets/3dsmax_model_OP.png
new file mode 100644
index 0000000000..293c06642c
Binary files /dev/null and b/website/docs/assets/3dsmax_model_OP.png differ
diff --git a/website/docs/assets/3dsmax_tray_OP.png b/website/docs/assets/3dsmax_tray_OP.png
new file mode 100644
index 0000000000..cfd0b07ef6
Binary files /dev/null and b/website/docs/assets/3dsmax_tray_OP.png differ
diff --git a/website/docs/assets/maya-arnold_scene_source.png b/website/docs/assets/maya-arnold_scene_source.png
new file mode 100644
index 0000000000..4150b78aac
Binary files /dev/null and b/website/docs/assets/maya-arnold_scene_source.png differ
diff --git a/website/docs/assets/maya-arnold_standin.png b/website/docs/assets/maya-arnold_standin.png
new file mode 100644
index 0000000000..74571a86fa
Binary files /dev/null and b/website/docs/assets/maya-arnold_standin.png differ
diff --git a/website/docs/assets/maya-pointcache_setup.png b/website/docs/assets/maya-pointcache_setup.png
index 8904baa239..b2dc126901 100644
Binary files a/website/docs/assets/maya-pointcache_setup.png and b/website/docs/assets/maya-pointcache_setup.png differ
diff --git a/website/docs/assets/tvp_create_layer.png b/website/docs/assets/tvp_create_layer.png
index 9d243da17a..25081bdf46 100644
Binary files a/website/docs/assets/tvp_create_layer.png and b/website/docs/assets/tvp_create_layer.png differ
diff --git a/website/docs/assets/tvp_create_pass.png b/website/docs/assets/tvp_create_pass.png
index 7d226ea4b5..6c8e600af2 100644
Binary files a/website/docs/assets/tvp_create_pass.png and b/website/docs/assets/tvp_create_pass.png differ
diff --git a/website/docs/assets/tvp_openpype_menu.png b/website/docs/assets/tvp_openpype_menu.png
index cb5c2d4aac..23eaf33fc3 100644
Binary files a/website/docs/assets/tvp_openpype_menu.png and b/website/docs/assets/tvp_openpype_menu.png differ
diff --git a/website/docs/assets/tvp_publisher.png b/website/docs/assets/tvp_publisher.png
new file mode 100644
index 0000000000..e5b1f936df
Binary files /dev/null and b/website/docs/assets/tvp_publisher.png differ
diff --git a/website/docs/module_deadline.md b/website/docs/module_deadline.md
index c96da91909..ab1016788d 100644
--- a/website/docs/module_deadline.md
+++ b/website/docs/module_deadline.md
@@ -28,16 +28,16 @@ For [AWS Thinkbox Deadline](https://www.awsthinkbox.com/deadline) support you ne
OpenPype integration for Deadline consists of two parts:
- The `OpenPype` Deadline Plug-in
-- A `GlobalJobPreLoad` Deadline Script (this gets triggered for each deadline job)
+- A `GlobalJobPreLoad` Deadline Script (this gets triggered for each deadline job)
The `GlobalJobPreLoad` handles populating render and publish jobs with proper environment variables using settings from the `OpenPype` Deadline Plug-in.
-The `OpenPype` Deadline Plug-in must be configured to point to a valid OpenPype executable location. The executable need to be installed to
+The `OpenPype` Deadline Plug-in must be configured to point to a valid OpenPype executable location. The executable need to be installed to
destinations accessible by DL process. Check permissions (must be executable and accessible by Deadline process)
- Enable `Tools > Super User Mode` in Deadline Monitor
-- Go to `Tools > Configure Plugins...`, find `OpenPype` in the list on the left side, find location of OpenPype
+- Go to `Tools > Configure Plugins...`, find `OpenPype` in the list on the left side, find location of OpenPype
executable. It is recommended to use the `openpype_console` executable as it provides a bit more logging.
- In case of multi OS farms, provide multiple locations, each Deadline Worker goes through the list and tries to find the first accessible
@@ -45,12 +45,22 @@ executable. It is recommended to use the `openpype_console` executable as it pro

+### Pools
+
+The main pools can be configured at `project_settings/deadline/publish/CollectDeadlinePools/primary_pool`, which is applied to the rendering jobs.
+
+The dependent publishing job's pool uses `project_settings/deadline/publish/ProcessSubmittedJobOnFarm/deadline_pool`. If nothing is specified the pool will fallback to the primary pool above.
+
+:::note maya tile rendering
+The logic for publishing job pool assignment applies to tiling jobs.
+:::
+
## Troubleshooting
#### Publishing jobs fail directly in DCCs
- Double check that all previously described steps were finished
-- Check that `deadlinewebservice` is running on DL server
+- Check that `deadlinewebservice` is running on DL server
- Check that user's machine has access to deadline server on configured port
#### Jobs are failing on DL side
@@ -61,40 +71,40 @@ Each publishing from OpenPype consists of 2 jobs, first one is rendering, second
- Jobs are failing with `OpenPype executable was not found` error
- Check if OpenPype is installed on the Worker handling this job and ensure `OpenPype` Deadline Plug-in is properly [configured](#configuration)
+ Check if OpenPype is installed on the Worker handling this job and ensure `OpenPype` Deadline Plug-in is properly [configured](#configuration)
- Publishing job is failing with `ffmpeg not installed` error
-
+
OpenPype executable has to have access to `ffmpeg` executable, check OpenPype `Setting > General`

- Both jobs finished successfully, but there is no review on Ftrack
- Make sure that you correctly set published family to be send to Ftrack.
+ Make sure that you correctly set published family to be send to Ftrack.

Example: I want send to Ftrack review of rendered images from Harmony :
- `Host names`: "harmony"
- - `Families`: "render"
+ - `Families`: "render"
- `Add Ftrack Family` to "Enabled"
-
+
Make sure that you actually configured to create review for published subset in `project_settings/ftrack/publish/CollectFtrackFamily`

- Example: I want to create review for all reviewable subsets in Harmony :
+ Example: I want to create review for all reviewable subsets in Harmony :
- Add "harmony" as a new key an ".*" as a value.
- Rendering jobs are stuck in 'Queued' state or failing
Make sure that your Deadline is not limiting specific jobs to be run only on specific machines. (Eg. only some machines have installed particular application.)
-
+
Check `project_settings/deadline`
-
+

Example: I have separated machines with "Harmony" installed into "harmony" group on Deadline. I want rendering jobs published from Harmony to run only on those machines.
diff --git a/website/docs/module_kitsu.md b/website/docs/module_kitsu.md
index 73e31a280b..7738ee1ce2 100644
--- a/website/docs/module_kitsu.md
+++ b/website/docs/module_kitsu.md
@@ -37,3 +37,8 @@ This functionality cannot deal with all cases and is not error proof, some inter
```bash
openpype_console module kitsu push-to-zou -l me@domain.ext -p my_password
```
+
+## Q&A
+### Is it safe to rename an entity from Kitsu?
+Absolutely! Entities are linked by their unique IDs between the two databases.
+But renaming from the OP's Project Manager won't apply the change to Kitsu, it'll be overriden during the next synchronization.
diff --git a/website/docs/project_settings/assets/global_oiio_transcode.png b/website/docs/project_settings/assets/global_oiio_transcode.png
new file mode 100644
index 0000000000..d818ecfe19
Binary files /dev/null and b/website/docs/project_settings/assets/global_oiio_transcode.png differ
diff --git a/website/docs/project_settings/assets/global_oiio_transcode2.png b/website/docs/project_settings/assets/global_oiio_transcode2.png
new file mode 100644
index 0000000000..906f780830
Binary files /dev/null and b/website/docs/project_settings/assets/global_oiio_transcode2.png differ
diff --git a/website/docs/project_settings/settings_project_global.md b/website/docs/project_settings/settings_project_global.md
index 37fed93e69..b320b5502f 100644
--- a/website/docs/project_settings/settings_project_global.md
+++ b/website/docs/project_settings/settings_project_global.md
@@ -45,6 +45,25 @@ The _input pattern_ matching uses REGEX expression syntax (try [regexr.com](http
The **colorspace name** value is a raw string input and no validation is run after saving project settings. We recommend to open the specified `config.ocio` file and copy pasting the exact colorspace names.
:::
+### Extract OIIO Transcode
+OIIOTools transcoder plugin with configurable output presets. Any incoming representation with `colorspaceData` is convertable to single or multiple representations with different target colorspaces or display and viewer names found in linked **config.ocio** file.
+
+`oiiotool` is used for transcoding, eg. `oiiotool` must be present in `vendor/bin/oiio` or environment variable `OPENPYPE_OIIO_PATHS` must be provided for custom oiio installation.
+
+Notable parameters:
+- **`Delete Original Representation`** - keep or remove original representation. If old representation is kept, but there is new transcoded representation with 'Create review' tag, original representation loses its 'review' tag if present.
+- **`Extension`** - target extension. If left empty, original extension is used.
+- **`Transcoding type`** - transcoding into colorspace or into display and viewer space could be used. Cannot use both at the same time.
+- **`Colorspace`** - target colorspace, which must be available in used color config. (If `Transcoding type` is `Use Colorspace` value in configuration is used OR if empty value collected on instance from DCC).
+- **`Display & View`** - display and viewer colorspace. (If `Transcoding type` is `Use Display&View` values in configuration is used OR if empty values collected on instance from DCC).
+- **`Arguments`** - special additional command line arguments for `oiiotool`.
+
+
+Example here describes use case for creation of new color coded review of png image sequence. Original representation's files are kept intact, review is created from transcoded files, but these files are removed in cleanup process.
+
+
+Another use case is to transcode in Maya only `beauty` render layers and use collected `Display` and `View` colorspaces from DCC.
+n
## Profile filters
diff --git a/website/sidebars.js b/website/sidebars.js
index cc945a019e..93887e00f6 100644
--- a/website/sidebars.js
+++ b/website/sidebars.js
@@ -44,11 +44,13 @@ module.exports = {
"artist_hosts_maya_multiverse",
"artist_hosts_maya_yeti",
"artist_hosts_maya_xgen",
+ "artist_hosts_maya_arnold",
"artist_hosts_maya_vray",
"artist_hosts_maya_redshift",
],
},
"artist_hosts_blender",
+ "artist_hosts_3dsmax",
"artist_hosts_harmony",
"artist_hosts_houdini",
"artist_hosts_aftereffects",
@@ -85,6 +87,7 @@ module.exports = {
type: "category",
label: "Configuration",
items: [
+ "admin_environment",
"admin_settings",
"admin_settings_system",
"admin_settings_project_anatomy",
diff --git a/website/yarn.lock b/website/yarn.lock
index 9af21c7500..559c58f931 100644
--- a/website/yarn.lock
+++ b/website/yarn.lock
@@ -4273,9 +4273,9 @@ htmlparser2@^6.1.0:
entities "^2.0.0"
http-cache-semantics@^4.0.0:
- version "4.1.0"
- resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390"
- integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==
+ version "4.1.1"
+ resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz#abe02fcb2985460bf0323be664436ec3476a6d5a"
+ integrity sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==
http-deceiver@^1.2.7:
version "1.2.7"
@@ -7180,9 +7180,9 @@ typedarray-to-buffer@^3.1.5:
is-typedarray "^1.0.0"
ua-parser-js@^0.7.30:
- version "0.7.31"
- resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.31.tgz#649a656b191dffab4f21d5e053e27ca17cbff5c6"
- integrity sha512-qLK/Xe9E2uzmYI3qLeOmI0tEOt+TBBQyUIAh4aAgU05FVYzeZrKUdkAZfBNVGRaHVgV0TDkdEngJSw/SyQchkQ==
+ version "0.7.33"
+ resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.33.tgz#1d04acb4ccef9293df6f70f2c3d22f3030d8b532"
+ integrity sha512-s8ax/CeZdK9R/56Sui0WM6y9OFREJarMRHqLB2EwkovemBxNQ+Bqu8GAsUnVcXKgphb++ghr/B2BZx4mahujPw==
unherit@^1.0.4:
version "1.1.3"