ayon-core/website/docs/admin_hosts_maya.md
2021-07-29 16:34:00 +02:00

4 KiB

id title sidebar_label
admin_hosts_maya Maya Maya

Publish Plugins

Render Settings Validator

ValidateRenderSettings

Render Settings Validator is here to make sure artists will submit renders we correct settings. Some of these settings are needed by OpenPype but some can be defined by TD using OpenPype Settings UI.

OpenPype enforced settings include:

  • animation must be enabled in output
  • render prefix must start with maya/<scene> to make sure renders are in correct directory
  • there must be <renderlayer> or its equivalent in different renderers in file prefix
  • if multiple cameras are to be rendered, <camera> token must be in file prefix

For Vray:

  • AOV separator must be set to _ (underscore)

For Redshift:

  • all AOVs must follow <BeautyPath>/<BeautyFile>_<RenderPass> image file prefix
  • AOV image format must be same as the one set in Output settings

For Renderman:

  • both image and directory prefixes must comply to <layer>_<aov>.<f4>.<ext> and <ws>/renders/maya/<scene>/<layer> respectively

For Arnold:

  • there shouldn't be <renderpass> token when merge AOVs option is turned on

Additional check can be added via Settings - Project Settings > Maya > Publish plugin > ValidateRenderSettings. You can add as many options as you want for every supported renderer. In first field put node type and attribute and in the second required value.

Settings example

In this example we've put aiOptions.AA_samples in first one and 6 to second to enforce Arnolds Camera (AA) samples to 6.

Note that aiOptions is not the name of node but rather its type. For renderers there is usually just one instance of this node type but if that is not so, validator will go through all its instances and check the value there. Node type for VRay settings is VRaySettingsNode, for Renderman it is rmanGlobals, for Redshift it is RedshiftOptions.

Model Name Validator

ValidateRenderSettings

This validator can enforce specific names for model members. It will check them against Validation Regex. There is special group in that regex - shader. If present, it will take that part of the name as shader name and it will compare it with list of shaders defined either in file name specified in Material File or from database file that is per project and can be directly edited from Maya's OpenPype Tools > Edit Shader name definitions when Use database shader name definitions is on. This list defines simply as one shader name per line.

Settings example

For example - you are using default regex (.*)_(\d)*_(?P<shader>.*)_(GEO) and you have two shaders defined in either file or database foo and bar.

Object named SomeCube_0001_foo_GEO will pass but SomeCube_GEO will not and SomeCube_001_xxx_GEO will not too.

Top level group name

There is a validation for top level group name too. You can specify whatever regex you'd like to use. Default will pass everything with _GRP suffix. You can use named capturing groups to validate against specific data. If you put (?P<asset>.*) it will try to match everything captured in that group against current asset name. Likewise you can use it for subset and project - (?P<subset>.*) and (?P<project>.*).

Example

You are working on asset (shot) 0030_OGC_0190. You have this regex in Top level group name:

.*?_(?P<asset>.*)_GRP

When you publish your model with top group named like foo_GRP it will fail. But with foo_0030_OGC_0190_GRP it will pass.

:::info About regex All regexes used here are in Python variant. :::

Custom Menu

You can add your custom tools menu into Maya by extending definitions in Maya -> Scripts Menu Definition. Custom menu definition

:::note Work in progress This is still work in progress. Menu definition will be handled more friendly with widgets and not raw json. :::