Merge branch 'develop' into enhancement/OP-6968_Invert-the-logic-of-Skip-Opening-of-Last-Workfile

This commit is contained in:
Toke Jepsen 2024-02-26 14:35:07 +00:00 committed by GitHub
commit 5d78fc7d5e
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
44 changed files with 183 additions and 8357 deletions

View file

@ -15,13 +15,9 @@ from abc import ABCMeta, abstractmethod
import six
import appdirs
from ayon_core.lib import Logger
from ayon_core.lib import Logger, is_dev_mode_enabled
from ayon_core.client import get_ayon_server_api_connection
from ayon_core.settings import get_system_settings
from ayon_core.settings.ayon_settings import (
is_dev_mode_enabled,
get_ayon_settings,
)
from ayon_core.settings import get_studio_settings
from .interfaces import (
IPluginPaths,
@ -648,7 +644,6 @@ class AddonsManager:
def __init__(self, settings=None, initialize=True):
self._settings = settings
self._system_settings = None
self._addons = []
self._addons_by_id = {}
@ -738,14 +733,9 @@ class AddonsManager:
# Prepare settings for addons
settings = self._settings
if settings is None:
settings = get_ayon_settings()
settings = get_studio_settings()
# OpenPype settings
system_settings = self._system_settings
if system_settings is None:
system_settings = get_system_settings()
modules_settings = system_settings["modules"]
modules_settings = {}
report = {}
time_start = time.time()

View file

@ -64,7 +64,7 @@ class CollectRenderInstances(pyblish.api.InstancePlugin):
new_data = new_instance.data
new_data["folderPath"] = seq_name
new_data["folderPath"] = f"/{s.get('output')}"
new_data["setMembers"] = seq_name
new_data["family"] = "render"
new_data["families"] = ["render", "review"]

View file

@ -17,10 +17,6 @@ from ayon_core.settings import (
get_system_settings,
get_project_settings,
)
from ayon_core.settings.constants import (
METADATA_KEYS,
M_DYNAMIC_KEY_LABEL
)
from .log import Logger
from .profiles_filtering import filter_profiles
from .local_settings import get_ayon_username

View file

@ -1,24 +1,18 @@
from .constants import (
SYSTEM_SETTINGS_KEY,
PROJECT_SETTINGS_KEY,
)
from .lib import (
get_general_environments,
get_ayon_settings,
get_studio_settings,
get_system_settings,
get_project_settings,
get_general_environments,
get_current_project_settings,
)
from .ayon_settings import get_ayon_settings
__all__ = (
"SYSTEM_SETTINGS_KEY",
"PROJECT_SETTINGS_KEY",
"get_general_environments",
"get_ayon_settings",
"get_studio_settings",
"get_system_settings",
"get_general_environments",
"get_project_settings",
"get_current_project_settings",
"get_ayon_settings",
)

View file

@ -1,294 +0,0 @@
"""Helper functionality to convert AYON settings to OpenPype v3 settings.
The settings are converted, so we can use v3 code with AYON settings. Once
the code of and addon is converted to full AYON addon which expect AYON
settings the conversion function can be removed.
The conversion is hardcoded -> there is no other way how to achieve the result.
Main entrypoints are functions:
- convert_project_settings - convert settings to project settings
- convert_system_settings - convert settings to system settings
# Both getters cache values
- get_ayon_project_settings - replacement for 'get_project_settings'
- get_ayon_system_settings - replacement for 'get_system_settings'
"""
import os
import collections
import json
import copy
import time
import six
from ayon_core.client import get_ayon_server_api_connection
def _convert_color(color_value):
if isinstance(color_value, six.string_types):
color_value = color_value.lstrip("#")
color_value_len = len(color_value)
_color_value = []
for idx in range(color_value_len // 2):
_color_value.append(int(color_value[idx:idx + 2], 16))
for _ in range(4 - len(_color_value)):
_color_value.append(255)
return _color_value
if isinstance(color_value, list):
# WARNING R,G,B can be 'int' or 'float'
# - 'float' variant is using 'int' for min: 0 and max: 1
if len(color_value) == 3:
# Add alpha
color_value.append(255)
else:
# Convert float alha to int
alpha = int(color_value[3] * 255)
if alpha > 255:
alpha = 255
elif alpha < 0:
alpha = 0
color_value[3] = alpha
return color_value
def _convert_general(ayon_settings, output, default_settings):
output["core"] = ayon_settings["core"]
version_check_interval = (
default_settings["general"]["version_check_interval"]
)
output["general"] = {
"version_check_interval": version_check_interval
}
def _convert_modules_system(
ayon_settings, output, addon_versions, default_settings
):
for key in {
"timers_manager",
"clockify",
"royalrender",
"deadline",
}:
if addon_versions.get(key):
output[key] = ayon_settings
else:
output.pop(key, None)
modules_settings = output["modules"]
for module_name in (
"sync_server",
"job_queue",
"addon_paths",
):
settings = default_settings["modules"][module_name]
if "enabled" in settings:
settings["enabled"] = False
modules_settings[module_name] = settings
for key, value in ayon_settings.items():
if key not in output:
output[key] = value
# Make sure addons have access to settings in initialization
# - AddonsManager passes only modules settings into initialization
if key not in modules_settings:
modules_settings[key] = value
def is_dev_mode_enabled():
"""Dev mode is enabled in AYON.
Returns:
bool: True if dev mode is enabled.
"""
return os.getenv("AYON_USE_DEV") == "1"
def convert_system_settings(ayon_settings, default_settings, addon_versions):
default_settings = copy.deepcopy(default_settings)
output = {
"modules": {}
}
if "core" in ayon_settings:
_convert_general(ayon_settings, output, default_settings)
for key, value in ayon_settings.items():
if key not in output:
output[key] = value
for key, value in default_settings.items():
if key not in output:
output[key] = value
_convert_modules_system(
ayon_settings,
output,
addon_versions,
default_settings
)
return output
# --------- Project settings ---------
def convert_project_settings(ayon_settings, default_settings):
default_settings = copy.deepcopy(default_settings)
output = {}
for key, value in ayon_settings.items():
if key not in output:
output[key] = value
for key, value in default_settings.items():
if key not in output:
output[key] = value
return output
class CacheItem:
lifetime = 10
def __init__(self, value, outdate_time=None):
self._value = value
if outdate_time is None:
outdate_time = time.time() + self.lifetime
self._outdate_time = outdate_time
@classmethod
def create_outdated(cls):
return cls({}, 0)
def get_value(self):
return copy.deepcopy(self._value)
def update_value(self, value):
self._value = value
self._outdate_time = time.time() + self.lifetime
@property
def is_outdated(self):
return time.time() > self._outdate_time
class _AyonSettingsCache:
use_bundles = None
variant = None
addon_versions = CacheItem.create_outdated()
studio_settings = CacheItem.create_outdated()
cache_by_project_name = collections.defaultdict(
CacheItem.create_outdated)
@classmethod
def _use_bundles(cls):
if _AyonSettingsCache.use_bundles is None:
con = get_ayon_server_api_connection()
major, minor, _, _, _ = con.get_server_version_tuple()
use_bundles = True
if (major, minor) < (0, 3):
use_bundles = False
_AyonSettingsCache.use_bundles = use_bundles
return _AyonSettingsCache.use_bundles
@classmethod
def _get_variant(cls):
if _AyonSettingsCache.variant is None:
from ayon_core.lib import is_staging_enabled
variant = "production"
if is_dev_mode_enabled():
variant = cls._get_bundle_name()
elif is_staging_enabled():
variant = "staging"
# Cache variant
_AyonSettingsCache.variant = variant
# Set the variant to global ayon api connection
con = get_ayon_server_api_connection()
con.set_default_settings_variant(variant)
return _AyonSettingsCache.variant
@classmethod
def _get_bundle_name(cls):
return os.environ["AYON_BUNDLE_NAME"]
@classmethod
def get_value_by_project(cls, project_name):
cache_item = _AyonSettingsCache.cache_by_project_name[project_name]
if cache_item.is_outdated:
con = get_ayon_server_api_connection()
if cls._use_bundles():
value = con.get_addons_settings(
bundle_name=cls._get_bundle_name(),
project_name=project_name,
variant=cls._get_variant()
)
else:
value = con.get_addons_settings(project_name)
cache_item.update_value(value)
return cache_item.get_value()
@classmethod
def _get_addon_versions_from_bundle(cls):
con = get_ayon_server_api_connection()
expected_bundle = cls._get_bundle_name()
bundles = con.get_bundles()["bundles"]
bundle = next(
(
bundle
for bundle in bundles
if bundle["name"] == expected_bundle
),
None
)
if bundle is not None:
return bundle["addons"]
return {}
@classmethod
def get_addon_versions(cls):
cache_item = _AyonSettingsCache.addon_versions
if cache_item.is_outdated:
if cls._use_bundles():
addons = cls._get_addon_versions_from_bundle()
else:
con = get_ayon_server_api_connection()
settings_data = con.get_addons_settings(
only_values=False,
variant=cls._get_variant()
)
addons = settings_data["versions"]
cache_item.update_value(addons)
return cache_item.get_value()
def get_ayon_project_settings(default_values, project_name):
ayon_settings = _AyonSettingsCache.get_value_by_project(project_name)
return convert_project_settings(ayon_settings, default_values)
def get_ayon_system_settings(default_values):
addon_versions = _AyonSettingsCache.get_addon_versions()
ayon_settings = _AyonSettingsCache.get_value_by_project(None)
return convert_system_settings(
ayon_settings, default_values, addon_versions
)
def get_ayon_settings(project_name=None):
"""AYON studio settings.
Raw AYON settings values.
Args:
project_name (Optional[str]): Project name.
Returns:
dict[str, Any]: AYON settings.
"""
return _AyonSettingsCache.get_value_by_project(project_name)

View file

@ -1,28 +0,0 @@
# Metadata keys for work with studio and project overrides
M_OVERRIDDEN_KEY = "__overriden_keys__"
# Metadata key for storing dynamic created labels
M_DYNAMIC_KEY_LABEL = "__dynamic_keys_labels__"
METADATA_KEYS = frozenset([
M_OVERRIDDEN_KEY,
M_DYNAMIC_KEY_LABEL
])
# Keys where studio's system overrides are stored
SYSTEM_SETTINGS_KEY = "system_settings"
PROJECT_SETTINGS_KEY = "project_settings"
DEFAULT_PROJECT_KEY = "__default_project__"
__all__ = (
"M_OVERRIDDEN_KEY",
"M_DYNAMIC_KEY_LABEL",
"METADATA_KEYS",
"SYSTEM_SETTINGS_KEY",
"PROJECT_SETTINGS_KEY",
"DEFAULT_PROJECT_KEY",
)

View file

@ -1,26 +0,0 @@
{
"fps": 25.0,
"frameStart": 1001,
"frameEnd": 1001,
"clipIn": 1,
"clipOut": 1,
"handleStart": 0,
"handleEnd": 0,
"resolutionWidth": 1920,
"resolutionHeight": 1080,
"pixelAspect": 1.0,
"applications": [
"maya/2020",
"nuke/12-2",
"nukex/12-2",
"hiero/12-2",
"resolve/stable",
"houdini/18-5",
"blender/2-91",
"harmony/20",
"photoshop/2021",
"aftereffects/2021"
],
"tools_env": [],
"active": true
}

View file

@ -1,258 +0,0 @@
{
"hiero": {
"workfile": {
"ocioConfigName": "nuke-default",
"ocioconfigpath": {
"windows": [],
"darwin": [],
"linux": []
},
"workingSpace": "linear",
"sixteenBitLut": "sRGB",
"eightBitLut": "sRGB",
"floatLut": "linear",
"logLut": "Cineon",
"viewerLut": "sRGB",
"thumbnailLut": "sRGB"
},
"regexInputs": {
"inputs": [
{
"regex": "[^-a-zA-Z0-9](plateRef).*(?=mp4)",
"colorspace": "sRGB"
}
]
}
},
"nuke": {
"viewer": {
"viewerProcess": "sRGB"
},
"baking": {
"viewerProcess": "rec709"
},
"workfile": {
"colorManagement": "Nuke",
"OCIO_config": "nuke-default",
"customOCIOConfigPath": {
"windows": [],
"darwin": [],
"linux": []
},
"workingSpaceLUT": "linear",
"monitorLut": "sRGB",
"int8Lut": "sRGB",
"int16Lut": "sRGB",
"logLut": "Cineon",
"floatLut": "linear"
},
"nodes": {
"requiredNodes": [
{
"plugins": [
"CreateWriteRender"
],
"nukeNodeClass": "Write",
"knobs": [
{
"type": "text",
"name": "file_type",
"value": "exr"
},
{
"type": "text",
"name": "datatype",
"value": "16 bit half"
},
{
"type": "text",
"name": "compression",
"value": "Zip (1 scanline)"
},
{
"type": "bool",
"name": "autocrop",
"value": true
},
{
"type": "color_gui",
"name": "tile_color",
"value": [
186,
35,
35,
255
]
},
{
"type": "text",
"name": "channels",
"value": "rgb"
},
{
"type": "text",
"name": "colorspace",
"value": "linear"
},
{
"type": "bool",
"name": "create_directories",
"value": true
}
]
},
{
"plugins": [
"CreateWritePrerender"
],
"nukeNodeClass": "Write",
"knobs": [
{
"type": "text",
"name": "file_type",
"value": "exr"
},
{
"type": "text",
"name": "datatype",
"value": "16 bit half"
},
{
"type": "text",
"name": "compression",
"value": "Zip (1 scanline)"
},
{
"type": "bool",
"name": "autocrop",
"value": true
},
{
"type": "color_gui",
"name": "tile_color",
"value": [
171,
171,
10,
255
]
},
{
"type": "text",
"name": "channels",
"value": "rgb"
},
{
"type": "text",
"name": "colorspace",
"value": "linear"
},
{
"type": "bool",
"name": "create_directories",
"value": true
}
]
},
{
"plugins": [
"CreateWriteImage"
],
"nukeNodeClass": "Write",
"knobs": [
{
"type": "text",
"name": "file_type",
"value": "tiff"
},
{
"type": "text",
"name": "datatype",
"value": "16 bit"
},
{
"type": "text",
"name": "compression",
"value": "Deflate"
},
{
"type": "color_gui",
"name": "tile_color",
"value": [
56,
162,
7,
255
]
},
{
"type": "text",
"name": "channels",
"value": "rgb"
},
{
"type": "text",
"name": "colorspace",
"value": "sRGB"
},
{
"type": "bool",
"name": "create_directories",
"value": true
}
]
}
],
"overrideNodes": []
},
"regexInputs": {
"inputs": [
{
"regex": "(beauty).*(?=.exr)",
"colorspace": "linear"
}
]
}
},
"maya": {
"colorManagementPreference_v2": {
"enabled": true,
"configFilePath": {
"windows": [],
"darwin": [],
"linux": []
},
"renderSpace": "ACEScg",
"displayName": "sRGB",
"viewName": "ACES 1.0 SDR-video"
},
"colorManagementPreference": {
"configFilePath": {
"windows": [],
"darwin": [],
"linux": []
},
"renderSpace": "scene-linear Rec 709/sRGB",
"viewTransform": "sRGB gamma"
}
},
"flame": {
"project": {
"colourPolicy": "ACES 1.1",
"frameDepth": "16-bit fp",
"fieldDominance": "PROGRESSIVE"
},
"profilesMapping": {
"inputs": [
{
"flameName": "ACEScg",
"ocioName": "ACES - ACEScg"
},
{
"flameName": "Rec.709 video",
"ocioName": "Output - Rec.709"
}
]
}
}
}

View file

@ -1,7 +0,0 @@
{
"work": {
"windows": "C:/projects",
"darwin": "/Volumes/path",
"linux": "/mnt/share/projects"
}
}

View file

@ -1,44 +0,0 @@
{
"Generic": {
"short_name": "gener"
},
"Art": {
"short_name": "art"
},
"Modeling": {
"short_name": "mdl"
},
"Texture": {
"short_name": "tex"
},
"Lookdev": {
"short_name": "look"
},
"Rigging": {
"short_name": "rig"
},
"Edit": {
"short_name": "edit"
},
"Layout": {
"short_name": "lay"
},
"Setdress": {
"short_name": "dress"
},
"Animation": {
"short_name": "anim"
},
"FX": {
"short_name": "fx"
},
"Lighting": {
"short_name": "lgt"
},
"Paint": {
"short_name": "paint"
},
"Compositing": {
"short_name": "comp"
}
}

View file

@ -1,67 +0,0 @@
{
"defaults": {
"version_padding": 3,
"version": "v{version:0>{@version_padding}}",
"frame_padding": 4,
"frame": "{frame:0>{@frame_padding}}"
},
"work": {
"folder": "{root[work]}/{project[name]}/{hierarchy}/{asset}/work/{task[name]}",
"file": "{project[code]}_{asset}_{task[name]}_{@version}<_{comment}>.{ext}",
"path": "{@folder}/{@file}"
},
"render": {
"folder": "{root[work]}/{project[name]}/{hierarchy}/{asset}/publish/{family}/{subset}/{@version}",
"file": "{project[code]}_{asset}_{subset}_{@version}<_{output}><.{@frame}>.{ext}",
"path": "{@folder}/{@file}"
},
"publish": {
"folder": "{root[work]}/{project[name]}/{hierarchy}/{asset}/publish/{family}/{subset}/{@version}",
"file": "{project[code]}_{asset}_{subset}_{@version}<_{output}><.{@frame}><_{udim}>.{ext}",
"path": "{@folder}/{@file}",
"thumbnail": "{thumbnail_root}/{project[name]}/{_id}_{thumbnail_type}.{ext}"
},
"hero": {
"folder": "{root[work]}/{project[name]}/{hierarchy}/{asset}/publish/{family}/{subset}/hero",
"file": "{project[code]}_{asset}_{subset}_hero<_{output}><.{frame}>.{ext}",
"path": "{@folder}/{@file}"
},
"delivery": {},
"unreal": {
"folder": "{root[work]}/{project[name]}/unreal/{task[name]}",
"file": "{project[code]}_{asset}.{ext}",
"path": "{@folder}/{@file}"
},
"others": {
"maya2unreal": {
"folder": "{root[work]}/{project[name]}/{hierarchy}/{asset}/publish/{family}",
"file": "{subset}_{@version}<_{output}><.{@frame}>.{ext}",
"path": "{@folder}/{@file}"
},
"online": {
"folder": "{root[work]}/{project[name]}/{hierarchy}/{asset}/publish/{family}/{subset}/{@version}",
"file": "{originalBasename}<.{@frame}><_{udim}>.{ext}",
"path": "{@folder}/{@file}"
},
"tycache": {
"folder": "{root[work]}/{project[name]}/{hierarchy}/{asset}/publish/{family}/{subset}/{@version}",
"file": "{originalBasename}.{ext}",
"path": "{@folder}/{@file}"
},
"source": {
"folder": "{root[work]}/{originalDirname}",
"file": "{originalBasename}.{ext}",
"path": "{@folder}/{@file}"
},
"transient": {
"folder": "{root[work]}/{project[name]}/{hierarchy}/{asset}/work/{family}/{subset}"
},
"__dynamic_keys_labels__": {
"maya2unreal": "Maya to Unreal",
"online": "online",
"tycache": "tycache",
"source": "source",
"transient": "transient"
}
}
}

View file

@ -1,49 +0,0 @@
{
"imageio": {
"activate_host_color_management": true,
"ocio_config": {
"override_global_config": false,
"filepath": []
},
"file_rules": {
"activate_host_rules": false,
"rules": {}
}
},
"create": {
"RenderCreator": {
"default_variants": [
"Main"
],
"mark_for_review": true
}
},
"publish": {
"CollectReview": {
"enabled": true
},
"ValidateSceneSettings": {
"enabled": true,
"optional": true,
"active": true,
"skip_resolution_check": [
".*"
],
"skip_timelines_check": [
".*"
]
},
"ValidateContainers": {
"enabled": true,
"optional": true,
"active": true
}
},
"workfile_builder": {
"create_first_version": false,
"custom_templates": []
},
"templated_workfile_build": {
"profiles": []
}
}

View file

@ -1,3 +0,0 @@
{
"only_available": false
}

View file

@ -1,217 +0,0 @@
{
"unit_scale_settings": {
"enabled": true,
"apply_on_opening": false,
"base_file_unit_scale": 0.01
},
"set_resolution_startup": true,
"set_frames_startup": true,
"imageio": {
"activate_host_color_management": true,
"ocio_config": {
"override_global_config": false,
"filepath": []
},
"file_rules": {
"activate_host_rules": false,
"rules": {}
}
},
"RenderSettings": {
"default_render_image_folder": "renders/blender",
"aov_separator": "underscore",
"image_format": "exr",
"multilayer_exr": true,
"renderer": "CYCLES",
"aov_list": ["combined"],
"custom_passes": []
},
"workfile_builder": {
"create_first_version": false,
"custom_templates": []
},
"publish": {
"ValidateCameraZeroKeyframe": {
"enabled": true,
"optional": true,
"active": true
},
"ValidateFileSaved": {
"enabled": true,
"optional": false,
"active": true,
"exclude_families": []
},
"ValidateRenderCameraIsSet": {
"enabled": true,
"optional": false,
"active": true
},
"ValidateDeadlinePublish": {
"enabled": true,
"optional": false,
"active": true
},
"ValidateMeshHasUvs": {
"enabled": true,
"optional": true,
"active": true
},
"ValidateMeshNoNegativeScale": {
"enabled": true,
"optional": false,
"active": true
},
"ValidateTransformZero": {
"enabled": true,
"optional": false,
"active": true
},
"ValidateNoColonsInName": {
"enabled": true,
"optional": false,
"active": true
},
"ValidateInstanceEmpty": {
"enabled": true,
"optional": false,
"active": true
},
"ExtractBlend": {
"enabled": true,
"optional": true,
"active": true,
"families": [
"model",
"camera",
"rig",
"action",
"layout",
"blendScene"
]
},
"ExtractFBX": {
"enabled": true,
"optional": true,
"active": false
},
"ExtractModelABC": {
"enabled": true,
"optional": true,
"active": true
},
"ExtractBlendAnimation": {
"enabled": true,
"optional": true,
"active": true
},
"ExtractAnimationFBX": {
"enabled": true,
"optional": true,
"active": false
},
"ExtractCamera": {
"enabled": true,
"optional": true,
"active": true
},
"ExtractCameraABC": {
"enabled": true,
"optional": true,
"active": true
},
"ExtractLayout": {
"enabled": true,
"optional": true,
"active": false
},
"ExtractThumbnail": {
"enabled": true,
"optional": true,
"active": true,
"presets": {
"model": {
"image_settings": {
"file_format": "JPEG",
"color_mode": "RGB",
"quality": 100
},
"display_options": {
"shading": {
"light": "STUDIO",
"studio_light": "Default",
"type": "SOLID",
"color_type": "OBJECT",
"show_xray": false,
"show_shadows": false,
"show_cavity": true
},
"overlay": {
"show_overlays": false
}
}
},
"rig": {
"image_settings": {
"file_format": "JPEG",
"color_mode": "RGB",
"quality": 100
},
"display_options": {
"shading": {
"light": "STUDIO",
"studio_light": "Default",
"type": "SOLID",
"color_type": "OBJECT",
"show_xray": true,
"show_shadows": false,
"show_cavity": false
},
"overlay": {
"show_overlays": true,
"show_ortho_grid": false,
"show_floor": false,
"show_axis_x": false,
"show_axis_y": false,
"show_axis_z": false,
"show_text": false,
"show_stats": false,
"show_cursor": false,
"show_annotation": false,
"show_extras": false,
"show_relationship_lines": false,
"show_outline_selected": false,
"show_motion_paths": false,
"show_object_origins": false,
"show_bones": true
}
}
}
}
},
"ExtractPlayblast": {
"enabled": true,
"optional": true,
"active": true,
"presets": {
"default": {
"image_settings": {
"file_format": "PNG",
"color_mode": "RGB",
"color_depth": "8",
"compression": 15
},
"display_options": {
"shading": {
"type": "MATERIAL",
"render_pass": "COMBINED"
},
"overlay": {
"show_overlays": false
}
}
}
}
}
}
}

View file

@ -1,27 +0,0 @@
{
"imageio": {
"activate_host_color_management": true,
"ocio_config": {
"override_global_config": false,
"filepath": []
},
"file_rules": {
"activate_host_rules": false,
"rules": {}
}
},
"workfile": {
"submission_overrides": [
"render_chunk",
"frame_range",
"resolution"
]
},
"publish": {
"CollectRenderPath": {
"output_extension": "png",
"anatomy_template_key_render_files": "render",
"anatomy_template_key_metadata": "render"
}
}
}

View file

@ -1,157 +0,0 @@
{
"deadline_servers": [],
"publish": {
"CollectDefaultDeadlineServer": {
"pass_mongo_url": true
},
"CollectDeadlinePools": {
"primary_pool": "",
"secondary_pool": ""
},
"ValidateExpectedFiles": {
"enabled": true,
"active": true,
"allow_user_override": true,
"families": [
"render"
],
"targets": [
"deadline"
]
},
"MayaSubmitDeadline": {
"enabled": true,
"optional": false,
"active": true,
"tile_assembler_plugin": "DraftTileAssembler",
"use_published": true,
"import_reference": false,
"asset_dependencies": true,
"priority": 50,
"tile_priority": 50,
"group": "none",
"limit": [],
"jobInfo": {},
"pluginInfo": {},
"scene_patches": [],
"strict_error_checking": true
},
"MaxSubmitDeadline": {
"enabled": true,
"optional": false,
"active": true,
"use_published": true,
"priority": 50,
"chunk_size": 10,
"group": "none"
},
"FusionSubmitDeadline": {
"enabled": true,
"optional": false,
"active": true,
"priority": 50,
"chunk_size": 10,
"concurrent_tasks": 1,
"group": "",
"plugin": "Fusion"
},
"NukeSubmitDeadline": {
"enabled": true,
"optional": false,
"active": true,
"priority": 50,
"chunk_size": 10,
"concurrent_tasks": 1,
"group": "",
"department": "",
"use_gpu": true,
"workfile_dependency": true,
"use_published_workfile": true,
"env_allowed_keys": [],
"env_search_replace_values": {},
"limit_groups": {}
},
"HarmonySubmitDeadline": {
"enabled": true,
"optional": false,
"active": true,
"use_published": true,
"priority": 50,
"chunk_size": 10000,
"group": "",
"department": ""
},
"AfterEffectsSubmitDeadline": {
"enabled": true,
"optional": false,
"active": true,
"use_published": true,
"priority": 50,
"chunk_size": 10000,
"group": "",
"department": "",
"multiprocess": true
},
"CelactionSubmitDeadline": {
"enabled": true,
"deadline_department": "",
"deadline_priority": 50,
"deadline_pool": "",
"deadline_pool_secondary": "",
"deadline_group": "",
"deadline_chunk_size": 10,
"deadline_job_delay": "00:00:00:00"
},
"BlenderSubmitDeadline": {
"enabled": true,
"optional": false,
"active": true,
"use_published": true,
"priority": 50,
"chunk_size": 10,
"group": "none",
"job_delay": "00:00:00:00"
},
"ProcessSubmittedCacheJobOnFarm": {
"enabled": true,
"deadline_department": "",
"deadline_pool": "",
"deadline_group": "",
"deadline_chunk_size": 1,
"deadline_priority": 50
},
"ProcessSubmittedJobOnFarm": {
"enabled": true,
"deadline_department": "",
"deadline_pool": "",
"deadline_group": "",
"deadline_chunk_size": 1,
"deadline_priority": 50,
"publishing_script": "",
"skip_integration_repre_list": [],
"aov_filter": {
"maya": [
".*([Bb]eauty).*"
],
"blender": [
".*([Bb]eauty).*"
],
"aftereffects": [
".*"
],
"celaction": [
".*"
],
"harmony": [
".*"
],
"max": [
".*"
],
"fusion": [
".*"
]
}
}
}
}

View file

@ -1,148 +0,0 @@
{
"imageio": {
"activate_host_color_management": true,
"remapping": {
"rules": []
},
"ocio_config": {
"override_global_config": false,
"filepath": []
},
"file_rules": {
"activate_host_rules": false,
"rules": {}
},
"project": {
"colourPolicy": "ACES 1.1",
"frameDepth": "16-bit fp",
"fieldDominance": "PROGRESSIVE"
},
"profilesMapping": {
"inputs": [
{
"flameName": "ACEScg",
"ocioName": "ACES - ACEScg"
},
{
"flameName": "Rec.709 video",
"ocioName": "Output - Rec.709"
}
]
}
},
"create": {
"CreateShotClip": {
"hierarchy": "{folder}/{sequence}",
"useShotName": true,
"clipRename": false,
"clipName": "{sequence}{shot}",
"segmentIndex": true,
"countFrom": 10,
"countSteps": 10,
"folder": "shots",
"episode": "ep01",
"sequence": "a",
"track": "{_track_}",
"shot": "####",
"vSyncOn": false,
"workfileFrameStart": 1001,
"handleStart": 5,
"handleEnd": 5,
"includeHandles": false,
"retimedHandles": true,
"retimedFramerange": true
}
},
"publish": {
"CollectTimelineInstances": {
"xml_preset_attrs_from_comments": [
{
"name": "width",
"type": "number"
},
{
"name": "height",
"type": "number"
},
{
"name": "pixelRatio",
"type": "float"
},
{
"name": "resizeType",
"type": "string"
},
{
"name": "resizeFilter",
"type": "string"
}
],
"add_tasks": [
{
"name": "compositing",
"type": "Compositing",
"create_batch_group": true
}
]
},
"ExtractSubsetResources": {
"keep_original_representation": false,
"export_presets_mapping": {
"exr16fpdwaa": {
"active": true,
"export_type": "File Sequence",
"ext": "exr",
"xml_preset_file": "OpenEXR (16-bit fp DWAA).xml",
"colorspace_out": "ACES - ACEScg",
"xml_preset_dir": "",
"parsed_comment_attrs": true,
"representation_add_range": true,
"representation_tags": [],
"load_to_batch_group": true,
"batch_group_loader_name": "LoadClipBatch",
"filter_path_regex": ".*"
}
}
},
"IntegrateBatchGroup": {
"enabled": false
}
},
"load": {
"LoadClip": {
"enabled": true,
"families": [
"render2d",
"source",
"plate",
"render",
"review"
],
"reel_group_name": "OpenPype_Reels",
"reel_name": "Loaded",
"clip_name_template": "{asset}_{subset}<_{output}>",
"layer_rename_template": "{asset}_{subset}<_{output}>",
"layer_rename_patterns": [
"rgb",
"rgba"
]
},
"LoadClipBatch": {
"enabled": true,
"families": [
"render2d",
"source",
"plate",
"render",
"review"
],
"reel_name": "OP_LoadedReel",
"clip_name_template": "{batch}_{asset}_{subset}<_{output}>",
"layer_rename_template": "{asset}_{subset}<_{output}>",
"layer_rename_patterns": [
"rgb",
"rgba"
]
}
}
}

View file

@ -1,522 +0,0 @@
{
"events": {
"sync_to_avalon": {
"role_list": [
"Pypeclub",
"Administrator",
"Project manager"
]
},
"prepare_project": {
"enabled": true,
"role_list": [
"Pypeclub",
"Administrator",
"Project manager"
]
},
"sync_hier_entity_attributes": {
"enabled": true,
"interest_entity_types": [
"Shot",
"Asset Build"
],
"interest_attributes": [
"frameStart",
"frameEnd"
],
"action_enabled": true,
"role_list": [
"Pypeclub",
"Administrator",
"Project Manager"
]
},
"clone_review_session": {
"enabled": true,
"role_list": [
"Pypeclub",
"Administrator",
"Project Manager"
]
},
"thumbnail_updates": {
"enabled": true,
"levels": 1
},
"user_assignment": {
"enabled": true
},
"status_update": {
"enabled": true,
"mapping": {
"In Progress": [
"__any__"
],
"Ready": [
"Not Ready"
],
"__ignore__": [
"in progress",
"omitted",
"on hold"
]
}
},
"status_task_to_parent": {
"enabled": true,
"parent_object_types": [
"Shot",
"Asset Build"
],
"parent_status_match_all_task_statuses": {
"Completed": [
"Approved",
"Omitted"
]
},
"parent_status_by_task_status": [
{
"new_status": "In Progress",
"task_statuses": [
"in progress",
"change requested",
"retake",
"pending review"
]
}
]
},
"status_task_to_version": {
"enabled": true,
"mapping": {},
"asset_types_filter": []
},
"status_version_to_task": {
"enabled": true,
"mapping": {},
"asset_types_to_skip": []
},
"next_task_update": {
"enabled": true,
"mapping": {
"Not Ready": "Ready"
},
"ignored_statuses": [
"Omitted"
],
"name_sorting": false
},
"transfer_values_of_hierarchical_attributes": {
"enabled": true,
"role_list": [
"Administrator",
"Project manager"
]
},
"create_daily_review_session": {
"enabled": true,
"role_list": [
"Administrator",
"Project Manager"
],
"cycle_enabled": false,
"cycle_hour_start": [
0,
0,
0
],
"review_session_template": "{yy}{mm}{dd}"
}
},
"user_handlers": {
"application_launch_statuses": {
"enabled": true,
"ignored_statuses": [
"In Progress",
"Omitted",
"On hold",
"Approved"
],
"status_change": {
"In Progress": []
}
},
"create_update_attributes": {
"role_list": [
"Pypeclub",
"Administrator"
]
},
"prepare_project": {
"enabled": true,
"role_list": [
"Pypeclub",
"Administrator",
"Project manager"
],
"create_project_structure_checked": false
},
"clean_hierarchical_attr": {
"enabled": true,
"role_list": [
"Pypeclub",
"Administrator",
"Project manager"
]
},
"delete_asset_subset": {
"enabled": true,
"role_list": [
"Pypeclub",
"Administrator",
"Project Manager"
]
},
"delete_old_versions": {
"enabled": true,
"role_list": [
"Pypeclub",
"Project Manager",
"Administrator"
]
},
"delivery_action": {
"enabled": true,
"role_list": [
"Pypeclub",
"Project Manager",
"Administrator"
]
},
"store_thubmnail_to_avalon": {
"enabled": true,
"role_list": [
"Pypeclub",
"Project Manager",
"Administrator"
]
},
"job_killer": {
"enabled": true,
"role_list": [
"Pypeclub",
"Administrator"
]
},
"sync_to_avalon_local": {
"enabled": true,
"role_list": [
"Pypeclub",
"Administrator"
]
},
"fill_workfile_attribute": {
"enabled": false,
"custom_attribute_key": "",
"role_list": []
},
"seed_project": {
"enabled": true,
"role_list": [
"Pypeclub"
]
}
},
"publish": {
"CollectFtrackFamily": {
"enabled": true,
"profiles": [
{
"hosts": [
"standalonepublisher"
],
"families": [],
"task_types": [],
"tasks": [],
"add_ftrack_family": true,
"advanced_filtering": []
},
{
"hosts": [
"standalonepublisher"
],
"families": [
"matchmove",
"shot"
],
"task_types": [],
"tasks": [],
"add_ftrack_family": false,
"advanced_filtering": []
},
{
"hosts": [
"standalonepublisher"
],
"families": [
"plate"
],
"task_types": [],
"tasks": [],
"add_ftrack_family": false,
"advanced_filtering": [
{
"families": [
"clip",
"review"
],
"add_ftrack_family": true
}
]
},
{
"hosts": [
"traypublisher"
],
"families": [],
"task_types": [],
"tasks": [],
"add_ftrack_family": true,
"advanced_filtering": []
},
{
"hosts": [
"traypublisher"
],
"families": [
"matchmove",
"shot"
],
"task_types": [],
"tasks": [],
"add_ftrack_family": false,
"advanced_filtering": []
},
{
"hosts": [
"traypublisher"
],
"families": [
"plate",
"review",
"audio"
],
"task_types": [],
"tasks": [],
"add_ftrack_family": false,
"advanced_filtering": [
{
"families": [
"clip",
"review"
],
"add_ftrack_family": true
}
]
},
{
"hosts": [
"maya"
],
"families": [
"model",
"setdress",
"animation",
"look",
"rig",
"camera",
"renderlayer"
],
"task_types": [],
"tasks": [],
"add_ftrack_family": true,
"advanced_filtering": []
},
{
"hosts": [
"tvpaint"
],
"families": [
"renderPass"
],
"task_types": [],
"tasks": [],
"add_ftrack_family": false,
"advanced_filtering": []
},
{
"hosts": [
"tvpaint"
],
"families": [],
"task_types": [],
"tasks": [],
"add_ftrack_family": true,
"advanced_filtering": []
},
{
"hosts": [
"nuke"
],
"families": [
"write",
"render",
"prerender"
],
"task_types": [],
"tasks": [],
"add_ftrack_family": false,
"advanced_filtering": [
{
"families": [
"review"
],
"add_ftrack_family": true
}
]
},
{
"hosts": [
"aftereffects"
],
"families": [
"render",
"workfile"
],
"task_types": [],
"tasks": [],
"add_ftrack_family": true,
"advanced_filtering": []
},
{
"hosts": [
"flame"
],
"families": [
"plate",
"take"
],
"task_types": [],
"tasks": [],
"add_ftrack_family": true,
"advanced_filtering": []
},
{
"hosts": [
"houdini"
],
"families": [
"usd"
],
"task_types": [],
"tasks": [],
"add_ftrack_family": true,
"advanced_filtering": []
},
{
"hosts": [
"photoshop"
],
"families": [
"review"
],
"task_types": [],
"tasks": [],
"add_ftrack_family": true,
"advanced_filtering": []
}
]
},
"CollectFtrackCustomAttributeData": {
"enabled": false,
"custom_attribute_keys": []
},
"IntegrateHierarchyToFtrack": {
"create_task_status_profiles": []
},
"IntegrateFtrackNote": {
"enabled": true,
"note_template": "{intent}: {comment}",
"note_labels": []
},
"IntegrateFtrackDescription": {
"enabled": false,
"optional": true,
"active": true,
"description_template": "{comment}"
},
"ValidateFtrackAttributes": {
"enabled": false,
"ftrack_custom_attributes": {}
},
"IntegrateFtrackComponentOverwrite": {
"enabled": true
},
"IntegrateFtrackInstance": {
"family_mapping": {
"camera": "cam",
"look": "look",
"mayaAscii": "scene",
"model": "geo",
"rig": "rig",
"setdress": "setdress",
"pointcache": "cache",
"render": "render",
"prerender": "render",
"render2d": "render",
"nukescript": "comp",
"write": "render",
"review": "mov",
"plate": "img",
"audio": "audio",
"workfile": "scene",
"animation": "cache",
"image": "img",
"reference": "reference",
"ass": "cache",
"mayaScene": "scene",
"camerarig": "rig",
"yeticache": "cache",
"yetiRig": "rig",
"xgen": "xgen",
"rendersetup": "rendersetup",
"assembly": "assembly",
"layout": "layout",
"unrealStaticMesh": "geo",
"vrayproxy": "cache",
"redshiftproxy": "cache",
"usd": "usd"
},
"keep_first_subset_name_for_review": true,
"asset_versions_status_profiles": [],
"additional_metadata_keys": [],
"upload_reviewable_with_origin_name": false
},
"IntegrateFtrackFarmStatus": {
"farm_status_profiles": [
{
"hosts": [
"celaction"
],
"task_types": [],
"task_names": [],
"families": [
"render"
],
"subsets": [],
"status_name": "Render"
}
]
},
"ftrack_task_status_local_publish": {
"status_profiles": []
},
"ftrack_task_status_on_farm_publish": {
"status_profiles": []
},
"IntegrateFtrackTaskStatus": {
"after_version_statuses": true
}
}
}

View file

@ -1,58 +0,0 @@
{
"imageio": {
"activate_host_color_management": true,
"ocio_config": {
"override_global_config": false,
"filepath": []
},
"file_rules": {
"activate_host_rules": false,
"rules": {}
}
},
"copy_fusion_settings": {
"copy_path": "~/.openpype/hosts/fusion/profiles",
"copy_status": false,
"force_sync": false
},
"hooks": {
"InstallPySideToFusion": {
"enabled": true
}
},
"create": {
"CreateSaver": {
"temp_rendering_path_template": "{workdir}/renders/fusion/{subset}/{subset}.{frame}.{ext}",
"default_variants": [
"Main",
"Mask"
],
"instance_attributes": [
"reviewable",
"farm_rendering"
],
"image_format": "exr",
"default_frame_range_option": "asset_db"
},
"CreateImageSaver": {
"temp_rendering_path_template": "{workdir}/renders/fusion/{subset}/{subset}.{ext}",
"default_variants": [
"Main",
"Mask"
],
"instance_attributes": [
"reviewable",
"farm_rendering"
],
"image_format": "exr",
"default_frame": 0
}
},
"publish": {
"ValidateSaverResolution": {
"enabled": true,
"optional": true,
"active": true
}
}
}

View file

@ -1,580 +0,0 @@
{
"version_start_category": {
"profiles": []
},
"imageio": {
"activate_global_color_management": false,
"ocio_config": {
"filepath": [
"{BUILTIN_OCIO_ROOT}/aces_1.2/config.ocio",
"{BUILTIN_OCIO_ROOT}/nuke-default/config.ocio"
]
},
"file_rules": {
"activate_global_file_rules": false,
"rules": {
"example": {
"pattern": ".*(beauty).*",
"colorspace": "ACES - ACEScg",
"ext": "exr"
}
}
}
},
"publish": {
"CollectAnatomyInstanceData": {
"follow_workfile_version": false
},
"CollectAudio": {
"enabled": false,
"audio_subset_name": "audioMain"
},
"CollectSceneVersion": {
"hosts": [
"aftereffects",
"blender",
"celaction",
"fusion",
"harmony",
"hiero",
"houdini",
"maya",
"nuke",
"photoshop",
"resolve",
"tvpaint"
],
"skip_hosts_headless_publish": []
},
"collect_comment_per_instance": {
"enabled": false,
"families": []
},
"CollectFramesFixDef": {
"enabled": true,
"rewrite_version_enable": true
},
"ValidateEditorialAssetName": {
"enabled": true,
"optional": false,
"active": true
},
"ValidateVersion": {
"enabled": true,
"optional": false,
"active": true
},
"ValidateIntent": {
"enabled": false,
"profiles": []
},
"ExtractThumbnail": {
"enabled": true,
"subsets": [],
"integrate_thumbnail": false,
"background_color": [
0,
0,
0,
255
],
"duration_split": 0.5,
"target_size": {
"type": "resize",
"width": 1920,
"height": 1080
},
"oiiotool_defaults": {
"type": "colorspace",
"colorspace": "color_picking",
"view": "sRGB",
"display": "default"
},
"ffmpeg_args": {
"input": [
"-apply_trc gamma22"
],
"output": []
}
},
"ExtractOIIOTranscode": {
"enabled": true,
"profiles": []
},
"ExtractReview": {
"enabled": true,
"profiles": [
{
"families": [],
"hosts": [],
"outputs": {
"png": {
"ext": "png",
"tags": [
"ftrackreview",
"kitsureview"
],
"burnins": [],
"ffmpeg_args": {
"video_filters": [],
"audio_filters": [],
"input": [],
"output": []
},
"filter": {
"families": [
"render",
"review",
"ftrack"
],
"subsets": [],
"custom_tags": [],
"single_frame_filter": "single_frame"
},
"overscan_crop": "",
"overscan_color": [
0,
0,
0,
255
],
"width": 1920,
"height": 1080,
"scale_pixel_aspect": true,
"bg_color": [
0,
0,
0,
0
],
"letter_box": {
"enabled": false,
"ratio": 0.0,
"fill_color": [
0,
0,
0,
255
],
"line_thickness": 0,
"line_color": [
255,
0,
0,
255
]
}
},
"h264": {
"ext": "mp4",
"tags": [
"burnin",
"ftrackreview",
"kitsureview"
],
"burnins": [],
"ffmpeg_args": {
"video_filters": [],
"audio_filters": [],
"input": [
"-apply_trc gamma22"
],
"output": [
"-pix_fmt yuv420p",
"-crf 18",
"-intra"
]
},
"filter": {
"families": [
"render",
"review",
"ftrack"
],
"subsets": [],
"custom_tags": [],
"single_frame_filter": "multi_frame"
},
"overscan_crop": "",
"overscan_color": [
0,
0,
0,
255
],
"width": 0,
"height": 0,
"scale_pixel_aspect": true,
"bg_color": [
0,
0,
0,
0
],
"letter_box": {
"enabled": false,
"ratio": 0.0,
"fill_color": [
0,
0,
0,
255
],
"line_thickness": 0,
"line_color": [
255,
0,
0,
255
]
}
}
}
}
]
},
"ExtractBurnin": {
"enabled": true,
"options": {
"font_size": 42,
"font_color": [
255,
255,
255,
255
],
"bg_color": [
0,
0,
0,
127
],
"x_offset": 5,
"y_offset": 5,
"bg_padding": 5,
"font_filepath": {
"windows": "",
"darwin": "",
"linux": ""
}
},
"profiles": [
{
"families": [],
"hosts": [],
"task_types": [],
"task_names": [],
"subsets": [],
"burnins": {
"burnin": {
"TOP_LEFT": "{yy}-{mm}-{dd}",
"TOP_CENTERED": "",
"TOP_RIGHT": "{anatomy[version]}",
"BOTTOM_LEFT": "{username}",
"BOTTOM_CENTERED": "{asset}",
"BOTTOM_RIGHT": "{frame_start}-{current_frame}-{frame_end}",
"filter": {
"families": [],
"tags": []
}
}
}
},
{
"families": [
"review"
],
"hosts": [
"maya",
"houdini",
"max"
],
"task_types": [],
"task_names": [],
"subsets": [],
"burnins": {
"focal_length_burnin": {
"TOP_LEFT": "{yy}-{mm}-{dd}",
"TOP_CENTERED": "{focalLength:.2f} mm",
"TOP_RIGHT": "{anatomy[version]}",
"BOTTOM_LEFT": "{username}",
"BOTTOM_CENTERED": "{asset}",
"BOTTOM_RIGHT": "{frame_start}-{current_frame}-{frame_end}",
"filter": {
"families": [],
"tags": []
}
}
}
}
]
},
"PreIntegrateThumbnails": {
"enabled": true,
"integrate_profiles": []
},
"IntegrateSubsetGroup": {
"subset_grouping_profiles": [
{
"families": [],
"hosts": [],
"task_types": [],
"tasks": [],
"template": ""
}
]
},
"IntegrateHeroVersion": {
"enabled": true,
"optional": true,
"active": true,
"families": [
"model",
"rig",
"look",
"pointcache",
"animation",
"setdress",
"layout",
"mayaScene"
],
"template_name_profiles": []
},
"CleanUp": {
"paterns": [],
"remove_temp_renders": false
},
"CleanUpFarm": {
"enabled": false
}
},
"tools": {
"creator": {
"families_smart_select": {
"Render": [
"light",
"render"
],
"Model": [
"model"
],
"Layout": [
"layout"
],
"Look": [
"look"
],
"Rig": [
"rigging",
"rig"
]
},
"subset_name_profiles": [
{
"families": [],
"hosts": [],
"task_types": [],
"tasks": [],
"template": "{family}{variant}"
},
{
"families": [
"workfile"
],
"hosts": [],
"task_types": [],
"tasks": [],
"template": "{family}{Task}"
},
{
"families": [
"render"
],
"hosts": [],
"task_types": [],
"tasks": [],
"template": "{family}{Task}{Variant}"
},
{
"families": [
"renderLayer",
"renderPass"
],
"hosts": [
"tvpaint"
],
"task_types": [],
"tasks": [],
"template": "{family}{Task}_{Renderlayer}_{Renderpass}"
},
{
"families": [
"review",
"workfile"
],
"hosts": [
"aftereffects",
"tvpaint"
],
"task_types": [],
"tasks": [],
"template": "{family}{Task}"
},
{
"families": [
"render"
],
"hosts": [
"aftereffects"
],
"task_types": [],
"tasks": [],
"template": "{family}{Task}{Composition}{Variant}"
},
{
"families": [
"staticMesh"
],
"hosts": [
"maya"
],
"task_types": [],
"tasks": [],
"template": "S_{asset}{variant}"
},
{
"families": [
"skeletalMesh"
],
"hosts": [
"maya"
],
"task_types": [],
"tasks": [],
"template": "SK_{asset}{variant}"
}
]
},
"Workfiles": {
"workfile_template_profiles": [
{
"task_types": [],
"hosts": [],
"workfile_template": "work"
},
{
"task_types": [],
"hosts": [
"unreal"
],
"workfile_template": "unreal"
}
],
"last_workfile_on_startup": [
{
"hosts": [],
"task_types": [],
"tasks": [],
"enabled": true,
"use_last_published_workfile": false
}
],
"open_workfile_tool_on_startup": [
{
"hosts": [],
"task_types": [],
"tasks": [],
"enabled": false
}
],
"extra_folders": [],
"workfile_lock_profiles": []
},
"loader": {
"family_filter_profiles": [
{
"hosts": [],
"task_types": [],
"is_include": true,
"filter_families": []
}
]
},
"publish": {
"template_name_profiles": [
{
"families": [],
"hosts": [],
"task_types": [],
"task_names": [],
"template_name": "publish"
},
{
"families": [
"review",
"render",
"prerender"
],
"hosts": [],
"task_types": [],
"task_names": [],
"template_name": "render"
},
{
"families": [
"staticMesh",
"skeletalMesh"
],
"hosts": [
"maya"
],
"task_types": [],
"task_names": [],
"template_name": "maya2unreal"
},
{
"families": [
"online"
],
"hosts": [
"traypublisher"
],
"task_types": [],
"task_names": [],
"template_name": "online"
},
{
"families": [
"tycache"
],
"hosts": [
"max"
],
"task_types": [],
"task_names": [],
"template_name": "tycache"
}
],
"hero_template_name_profiles": [],
"custom_staging_dir_profiles": []
}
},
"project_folder_structure": "{\"__project_root__\": {\"prod\": {}, \"resources\": {\"footage\": {\"plates\": {}, \"offline\": {}}, \"audio\": {}, \"art_dept\": {}}, \"editorial\": {}, \"assets\": {\"characters\": {}, \"locations\": {}}, \"shots\": {}}}",
"sync_server": {
"enabled": false,
"config": {
"retry_cnt": "3",
"loop_delay": "60",
"always_accessible_on": [],
"active_site": "studio",
"remote_site": "studio"
},
"sites": {}
},
"project_plugins": {
"windows": [],
"darwin": [],
"linux": []
},
"project_environments": {}
}

View file

@ -1,38 +0,0 @@
{
"imageio": {
"activate_host_color_management": true,
"ocio_config": {
"override_global_config": false,
"filepath": []
},
"file_rules": {
"activate_host_rules": false,
"rules": {}
}
},
"publish": {
"CollectPalettes": {
"allowed_tasks": [
".*"
]
},
"ValidateAudio": {
"enabled": true,
"optional": true,
"active": true
},
"ValidateContainers": {
"enabled": true,
"optional": true,
"active": true
},
"ValidateSceneSettings": {
"enabled": true,
"optional": true,
"active": true,
"frame_check_filter": [],
"skip_resolution_check": [],
"skip_timelines_check": []
}
}
}

View file

@ -1,87 +0,0 @@
{
"imageio": {
"activate_host_color_management": true,
"ocio_config": {
"override_global_config": false,
"filepath": []
},
"file_rules": {
"activate_host_rules": false,
"rules": {}
},
"workfile": {
"ocioConfigName": "nuke-default",
"workingSpace": "linear",
"sixteenBitLut": "sRGB",
"eightBitLut": "sRGB",
"floatLut": "linear",
"logLut": "Cineon",
"viewerLut": "sRGB",
"thumbnailLut": "sRGB",
"monitorOutLut": "sRGB"
},
"regexInputs": {
"inputs": [
{
"regex": "[^-a-zA-Z0-9](plateRef).*(?=mp4)",
"colorspace": "sRGB"
}
]
}
},
"create": {
"CreateShotClip": {
"hierarchy": "{folder}/{sequence}",
"clipRename": true,
"clipName": "{track}{sequence}{shot}",
"countFrom": 10,
"countSteps": 10,
"folder": "shots",
"episode": "ep01",
"sequence": "sq01",
"track": "{_track_}",
"shot": "sh###",
"vSyncOn": false,
"workfileFrameStart": 1001,
"handleStart": 10,
"handleEnd": 10
}
},
"load": {
"LoadClip": {
"enabled": true,
"families": [
"render2d",
"source",
"plate",
"render",
"review"
],
"clip_name_template": "{asset}_{subset}_{representation}"
}
},
"publish": {
"CollectInstanceVersion": {
"enabled": false
},
"ExtractReviewCutUpVideo": {
"enabled": true,
"tags_addition": [
"review"
]
}
},
"filters": {},
"scriptsmenu": {
"name": "OpenPype Tools",
"definition": [
{
"type": "action",
"sourcetype": "python",
"title": "OpenPype Docs",
"command": "import webbrowser;webbrowser.open(url='https://openpype.io/docs/artist_hosts_hiero')",
"tooltip": "Open the OpenPype Hiero user doc page"
}
]
}
}

View file

@ -1,192 +0,0 @@
{
"general": {
"add_self_publish_button": false,
"update_houdini_var_context": {
"enabled": true,
"houdini_vars":[
{
"var": "JOB",
"value": "{root[work]}/{project[name]}/{hierarchy}/{asset}/work/{task[name]}",
"is_directory": true
}
]
}
},
"imageio": {
"activate_host_color_management": true,
"ocio_config": {
"override_global_config": false,
"filepath": []
},
"file_rules": {
"activate_host_rules": false,
"rules": {}
}
},
"shelves": [],
"create": {
"CreateAlembicCamera": {
"enabled": true,
"default_variants": [
"Main"
]
},
"CreateArnoldAss": {
"enabled": true,
"default_variants": [
"Main"
],
"ext": ".ass"
},
"CreateArnoldRop": {
"enabled": true,
"default_variants": [
"Main"
]
},
"CreateCompositeSequence": {
"enabled": true,
"default_variants": [
"Main"
]
},
"CreateHDA": {
"enabled": true,
"default_variants": [
"Main"
]
},
"CreateKarmaROP": {
"enabled": true,
"default_variants": [
"Main"
]
},
"CreateMantraIFD": {
"enabled": true,
"default_variants": [
"Main"
]
},
"CreateMantraROP": {
"enabled": true,
"default_variants": [
"Main"
]
},
"CreatePointCache": {
"enabled": true,
"default_variants": [
"Main"
]
},
"CreateBGEO": {
"enabled": true,
"default_variants": [
"Main"
]
},
"CreateRedshiftProxy": {
"enabled": true,
"default_variants": [
"Main"
]
},
"CreateRedshiftROP": {
"enabled": true,
"default_variants": [
"Main"
]
},
"CreateReview": {
"enabled": true,
"default_variants": [
"Main"
]
},
"CreateStaticMesh": {
"enabled": true,
"default_variants": [
"Main"
],
"static_mesh_prefix": "S",
"collision_prefixes": [
"UBX",
"UCP",
"USP",
"UCX"
]
},
"CreateUSD": {
"enabled": true,
"default_variants": [
"Main"
]
},
"CreateUSDRender": {
"enabled": true,
"default_variants": [
"Main"
]
},
"CreateVDBCache": {
"enabled": true,
"default_variants": [
"Main"
]
},
"CreateVrayROP": {
"enabled": true,
"default_variants": [
"Main"
]
}
},
"publish": {
"CollectAssetHandles": {
"use_asset_handles": true
},
"CollectChunkSize": {
"enabled": true,
"optional": true,
"chunk_size": 999999
},
"ValidateContainers": {
"enabled": true,
"optional": true,
"active": true
},
"ValidateMeshIsStatic": {
"enabled": true,
"optional": true,
"active": true
},
"ValidateReviewColorspace": {
"enabled": true,
"optional": true,
"active": true
},
"ValidateSubsetName": {
"enabled": true,
"optional": true,
"active": true
},
"ValidateUnrealStaticMeshName": {
"enabled": false,
"optional": true,
"active": true
},
"ValidateWorkfilePaths": {
"enabled": true,
"optional": true,
"node_types": [
"file",
"alembic"
],
"prohibited_vars": [
"$HIP",
"$JOB"
]
}
}
}

View file

@ -1,21 +0,0 @@
{
"entities_naming_pattern": {
"episode": "E##",
"sequence": "SQ##",
"shot": "SH##"
},
"publish": {
"IntegrateKitsuNote": {
"set_status_note": false,
"note_status_shortname": "wfa",
"status_change_conditions": {
"status_conditions": [],
"family_requirements": []
},
"custom_comment_template": {
"enabled": false,
"comment_template": "{comment}\n\n| | |\n|--|--|\n| version| `{version}` |\n| family | `{family}` |\n| name | `{name}` |"
}
}
}
}

View file

@ -1,100 +0,0 @@
{
"unit_scale_settings": {
"enabled": true,
"scene_unit_scale": "Meters"
},
"imageio": {
"activate_host_color_management": true,
"ocio_config": {
"override_global_config": false,
"filepath": []
},
"file_rules": {
"activate_host_rules": false,
"rules": {}
}
},
"RenderSettings": {
"default_render_image_folder": "renders/3dsmax",
"aov_separator": "underscore",
"image_format": "exr",
"multipass": true
},
"CreateReview": {
"review_width": 1920,
"review_height": 1080,
"percentSize": 100.0,
"keep_images": false,
"image_format": "png",
"visual_style": "Realistic",
"viewport_preset": "Quality",
"anti_aliasing": "None",
"vp_texture": true
},
"PointCloud": {
"attribute": {
"Age": "age",
"Radius": "radius",
"Position": "position",
"Rotation": "rotation",
"Scale": "scale",
"Velocity": "velocity",
"Color": "color",
"TextureCoordinate": "texcoord",
"MaterialID": "matid",
"custFloats": "custFloats",
"custVecs": "custVecs"
}
},
"publish": {
"ValidateFrameRange": {
"enabled": true,
"optional": true,
"active": true
},
"ValidateAttributes": {
"enabled": false,
"attributes": {}
},
"ValidateCameraAttributes": {
"enabled": true,
"optional": true,
"active": false,
"fov": 45.0,
"nearrange": 0.0,
"farrange": 1000.0,
"nearclip": 1.0,
"farclip": 1000.0
},
"ValidateLoadedPlugin": {
"enabled": false,
"optional": true,
"family_plugins_mapping": []
},
"ExtractModelObj": {
"enabled": true,
"optional": true,
"active": false
},
"ExtractModelFbx": {
"enabled": true,
"optional": true,
"active": false
},
"ExtractModelUSD": {
"enabled": true,
"optional": true,
"active": false
},
"ExtractModel": {
"enabled": true,
"optional": true,
"active": true
},
"ExtractMaxSceneRaw": {
"enabled": true,
"optional": true,
"active": true
}
}
}

File diff suppressed because it is too large Load diff

View file

@ -1,544 +0,0 @@
{
"general": {
"menu": {
"create": "ctrl+alt+c",
"publish": "ctrl+alt+p",
"load": "ctrl+alt+l",
"manage": "ctrl+alt+m",
"build_workfile": "ctrl+alt+b"
}
},
"imageio": {
"activate_host_color_management": true,
"ocio_config": {
"override_global_config": false,
"filepath": []
},
"file_rules": {
"activate_host_rules": false,
"rules": {}
},
"viewer": {
"viewerProcess": "sRGB (default)"
},
"baking": {
"viewerProcess": "rec709 (default)"
},
"workfile": {
"colorManagement": "OCIO",
"OCIO_config": "nuke-default",
"workingSpaceLUT": "scene_linear",
"monitorLut": "sRGB (default)"
},
"nodes": {
"requiredNodes": [
{
"plugins": [
"CreateWriteRender"
],
"nukeNodeClass": "Write",
"knobs": [
{
"type": "text",
"name": "file_type",
"value": "exr"
},
{
"type": "text",
"name": "datatype",
"value": "16 bit half"
},
{
"type": "text",
"name": "compression",
"value": "Zip (1 scanline)"
},
{
"type": "bool",
"name": "autocrop",
"value": true
},
{
"type": "color_gui",
"name": "tile_color",
"value": [
186,
35,
35,
255
]
},
{
"type": "text",
"name": "channels",
"value": "rgb"
},
{
"type": "text",
"name": "colorspace",
"value": "scene_linear"
},
{
"type": "bool",
"name": "create_directories",
"value": true
}
]
},
{
"plugins": [
"CreateWritePrerender"
],
"nukeNodeClass": "Write",
"knobs": [
{
"type": "text",
"name": "file_type",
"value": "exr"
},
{
"type": "text",
"name": "datatype",
"value": "16 bit half"
},
{
"type": "text",
"name": "compression",
"value": "Zip (1 scanline)"
},
{
"type": "bool",
"name": "autocrop",
"value": true
},
{
"type": "color_gui",
"name": "tile_color",
"value": [
171,
171,
10,
255
]
},
{
"type": "text",
"name": "channels",
"value": "rgb"
},
{
"type": "text",
"name": "colorspace",
"value": "scene_linear"
},
{
"type": "bool",
"name": "create_directories",
"value": true
}
]
},
{
"plugins": [
"CreateWriteImage"
],
"nukeNodeClass": "Write",
"knobs": [
{
"type": "text",
"name": "file_type",
"value": "tiff"
},
{
"type": "text",
"name": "datatype",
"value": "16 bit"
},
{
"type": "text",
"name": "compression",
"value": "Deflate"
},
{
"type": "color_gui",
"name": "tile_color",
"value": [
56,
162,
7,
255
]
},
{
"type": "text",
"name": "channels",
"value": "rgb"
},
{
"type": "text",
"name": "colorspace",
"value": "texture_paint"
},
{
"type": "bool",
"name": "create_directories",
"value": true
}
]
}
],
"overrideNodes": []
},
"regexInputs": {
"inputs": [
{
"regex": "(beauty).*(?=.exr)",
"colorspace": "scene_linear"
}
]
}
},
"nuke-dirmap": {
"enabled": false,
"paths": {
"source-path": [],
"destination-path": []
}
},
"scriptsmenu": {
"name": "OpenPype Tools",
"definition": [
{
"type": "action",
"sourcetype": "python",
"title": "OpenPype Docs",
"command": "import webbrowser;webbrowser.open(url='https://openpype.io/docs/artist_hosts_nuke_tut')",
"tooltip": "Open the OpenPype Nuke user doc page"
},
{
"type": "action",
"sourcetype": "python",
"title": "Set Frame Start (Read Node)",
"command": "from ayon_core.hosts.nuke.startup.frame_setting_for_read_nodes import main;main();",
"tooltip": "Set frame start for read node(s)"
},
{
"type": "action",
"sourcetype": "python",
"title": "Set non publish output for Write Node",
"command": "from ayon_core.hosts.nuke.startup.custom_write_node import main;main();",
"tooltip": "Open the OpenPype Nuke user doc page"
}
]
},
"gizmo": [
{
"toolbar_menu_name": "OpenPype Gizmo",
"gizmo_source_dir": {
"windows": [],
"darwin": [],
"linux": []
},
"toolbar_icon_path": {
"windows": "",
"darwin": "",
"linux": ""
},
"gizmo_definition": [
{
"gizmo_toolbar_path": "/path/to/menu",
"sub_gizmo_list": [
{
"sourcetype": "python",
"title": "Gizmo Note",
"command": "nuke.nodes.StickyNote(label='You can create your own toolbar menu in the Nuke GizmoMenu of OpenPype')",
"icon": "",
"shortcut": ""
}
]
}
]
}
],
"create": {
"CreateWriteRender": {
"temp_rendering_path_template": "{work}/renders/nuke/{subset}/{subset}.{frame}.{ext}",
"default_variants": [
"Main",
"Mask"
],
"instance_attributes": [
"reviewable",
"farm_rendering"
],
"prenodes": {
"Reformat01": {
"nodeclass": "Reformat",
"dependent": "",
"knobs": [
{
"type": "text",
"name": "resize",
"value": "none"
},
{
"type": "bool",
"name": "black_outside",
"value": true
}
]
}
}
},
"CreateWritePrerender": {
"temp_rendering_path_template": "{work}/renders/nuke/{subset}/{subset}.{frame}.{ext}",
"default_variants": [
"Key01",
"Bg01",
"Fg01",
"Branch01",
"Part01"
],
"instance_attributes": [
"farm_rendering",
"use_range_limit"
],
"prenodes": {}
},
"CreateWriteImage": {
"temp_rendering_path_template": "{work}/renders/nuke/{subset}/{subset}.{ext}",
"default_variants": [
"StillFrame",
"MPFrame",
"LayoutFrame"
],
"instance_attributes": [
"use_range_limit"
],
"prenodes": {
"FrameHold01": {
"nodeclass": "FrameHold",
"dependent": "",
"knobs": [
{
"type": "expression",
"name": "first_frame",
"expression": "parent.first"
}
]
}
}
}
},
"publish": {
"CollectInstanceData": {
"sync_workfile_version_on_families": [
"nukenodes",
"camera",
"gizmo",
"source",
"render",
"write"
]
},
"ValidateCorrectAssetContext": {
"enabled": true,
"optional": true,
"active": true
},
"ValidateContainers": {
"enabled": true,
"optional": true,
"active": true
},
"ValidateKnobs": {
"enabled": false,
"knobs": {
"render": {
"review": true
}
}
},
"ValidateOutputResolution": {
"enabled": true,
"optional": true,
"active": true
},
"ValidateBackdrop": {
"enabled": true,
"optional": true,
"active": true
},
"ValidateGizmo": {
"enabled": true,
"optional": true,
"active": true
},
"ValidateScriptAttributes": {
"enabled": true,
"optional": true,
"active": true
},
"ExtractReviewData": {
"enabled": false
},
"ExtractReviewDataLut": {
"enabled": false
},
"ExtractReviewDataMov": {
"enabled": true,
"viewer_lut_raw": false,
"outputs": {
"baking": {
"filter": {
"task_types": [],
"families": [],
"subsets": []
},
"read_raw": false,
"viewer_process_override": "",
"bake_viewer_process": true,
"bake_viewer_input_process": true,
"reformat_nodes_config": {
"enabled": false,
"reposition_nodes": [
{
"node_class": "Reformat",
"knobs": [
{
"type": "text",
"name": "type",
"value": "to format"
},
{
"type": "text",
"name": "format",
"value": "HD_1080"
},
{
"type": "text",
"name": "filter",
"value": "Lanczos6"
},
{
"type": "bool",
"name": "black_outside",
"value": true
},
{
"type": "bool",
"name": "pbb",
"value": false
}
]
}
]
},
"extension": "mov",
"add_custom_tags": []
}
}
},
"ExtractReviewIntermediates": {
"enabled": true,
"viewer_lut_raw": false,
"outputs": {
"baking": {
"filter": {
"task_types": [],
"families": [],
"subsets": []
},
"read_raw": false,
"viewer_process_override": "",
"bake_viewer_process": true,
"bake_viewer_input_process": true,
"reformat_nodes_config": {
"enabled": false,
"reposition_nodes": [
{
"node_class": "Reformat",
"knobs": [
{
"type": "text",
"name": "type",
"value": "to format"
},
{
"type": "text",
"name": "format",
"value": "HD_1080"
},
{
"type": "text",
"name": "filter",
"value": "Lanczos6"
},
{
"type": "bool",
"name": "black_outside",
"value": true
},
{
"type": "bool",
"name": "pbb",
"value": false
}
]
}
]
},
"extension": "mov",
"add_custom_tags": []
}
}
},
"ExtractSlateFrame": {
"viewer_lut_raw": false,
"key_value_mapping": {
"f_submission_note": [
true,
"{comment}"
],
"f_submitting_for": [
true,
"{intent[value]}"
],
"f_vfx_scope_of_work": [
false,
""
]
}
},
"IncrementScriptVersion": {
"enabled": true,
"optional": true,
"active": true
}
},
"load": {
"LoadImage": {
"enabled": true,
"_representations": [],
"node_name_template": "{class_name}_{ext}"
},
"LoadClip": {
"enabled": true,
"_representations": [],
"node_name_template": "{class_name}_{ext}",
"options_defaults": {
"start_at_workfile": true,
"add_retime": true
}
}
},
"workfile_builder": {
"create_first_version": false,
"custom_templates": [],
"builder_on_start": false,
"profiles": []
},
"templated_workfile_build": {
"profiles": []
}
}

View file

@ -1,91 +0,0 @@
{
"imageio": {
"activate_host_color_management": true,
"remapping": {
"rules": []
},
"ocio_config": {
"override_global_config": false,
"filepath": []
},
"file_rules": {
"activate_host_rules": false,
"rules": {}
}
},
"create": {
"ImageCreator": {
"enabled": true,
"active_on_create": true,
"mark_for_review": false,
"default_variants": [
"Main"
]
},
"AutoImageCreator": {
"enabled": false,
"active_on_create": true,
"mark_for_review": false,
"default_variant": ""
},
"ReviewCreator": {
"enabled": true,
"active_on_create": true,
"default_variant": ""
},
"WorkfileCreator": {
"enabled": true,
"active_on_create": true,
"default_variant": "Main"
}
},
"publish": {
"CollectColorCodedInstances": {
"enabled": true,
"create_flatten_image": "no",
"flatten_subset_template": "",
"color_code_mapping": []
},
"CollectReview": {
"enabled": true
},
"CollectVersion": {
"enabled": false
},
"ValidateContainers": {
"enabled": true,
"optional": true,
"active": true
},
"ValidateNaming": {
"invalid_chars": "[ \\\\/+\\*\\?\\(\\)\\[\\]\\{\\}:,;]",
"replace_char": "_"
},
"ExtractImage": {
"formats": [
"png",
"jpg"
]
},
"ExtractReview": {
"make_image_sequence": false,
"max_downscale_size": 8192,
"jpg_options": {
"tags": [
"review",
"ftrackreview"
]
},
"mov_options": {
"tags": [
"review",
"ftrackreview"
]
}
}
},
"workfile_builder": {
"create_first_version": false,
"custom_templates": []
}
}

View file

@ -1,35 +0,0 @@
{
"launch_openpype_menu_on_start": false,
"imageio": {
"activate_host_color_management": true,
"remapping": {
"rules": []
},
"ocio_config": {
"override_global_config": false,
"filepath": []
},
"file_rules": {
"activate_host_rules": false,
"rules": {}
}
},
"create": {
"CreateShotClip": {
"hierarchy": "{folder}/{sequence}",
"clipRename": true,
"clipName": "{track}{sequence}{shot}",
"countFrom": 10,
"countSteps": 10,
"folder": "shots",
"episode": "ep01",
"sequence": "sq01",
"track": "{_track_}",
"shot": "sh###",
"vSyncOn": false,
"workfileFrameStart": 1001,
"handleStart": 10,
"handleEnd": 10
}
}
}

View file

@ -1,10 +0,0 @@
{
"rr_paths": [
"default"
],
"publish": {
"CollectSequencesFromJob": {
"review": true
}
}
}

View file

@ -1,22 +0,0 @@
{
"shotgrid_project_id": 0,
"shotgrid_server": "",
"event": {
"enabled": false
},
"fields": {
"asset": {
"type": "sg_asset_type"
},
"sequence": {
"episode_link": "episode"
},
"shot": {
"episode_link": "sg_episode",
"sequence_link": "sg_sequence"
},
"task": {
"step": "step"
}
}
}

View file

@ -1,20 +0,0 @@
{
"token": "",
"publish": {
"CollectSlackFamilies": {
"enabled": true,
"optional": true,
"profiles": [
{
"families": [],
"hosts": [],
"task_types": [],
"tasks": [],
"subsets": [],
"review_upload_limit": 50.0,
"channel_messages": []
}
]
}
}
}

View file

@ -1,299 +0,0 @@
{
"create": {
"create_workfile": {
"name": "workfile",
"label": "Workfile",
"family": "workfile",
"icon": "cube",
"defaults": [
"Main"
],
"help": "Working scene backup"
},
"create_model": {
"name": "model",
"label": "Model",
"family": "model",
"icon": "cube",
"defaults": [
"Main"
],
"help": "Polygonal static geometry"
},
"create_rig": {
"name": "rig",
"label": "Rig",
"family": "rig",
"icon": "wheelchair",
"defaults": [
"Main",
"Cloth"
],
"help": "Artist-friendly rig with controls"
},
"create_pointcache": {
"name": "pointcache",
"label": "Pointcache",
"family": "pointcache",
"icon": "gears",
"defaults": [
"Main"
],
"help": "Alembic pointcache for animated data"
},
"create_plate": {
"name": "plate",
"label": "Plate",
"family": "plate",
"icon": "camera",
"defaults": [
"Main",
"BG",
"Animatic",
"Reference",
"Offline"
],
"help": "Footage for composting or reference"
},
"create_camera": {
"name": "camera",
"label": "Camera",
"family": "camera",
"icon": "camera",
"defaults": [
"Main"
],
"help": "video-camera"
},
"create_editorial": {
"name": "editorial",
"label": "Editorial",
"family": "editorial",
"icon": "image",
"defaults": [
"Main"
],
"help": "Editorial files to generate shots."
},
"create_image": {
"name": "image",
"label": "Image file",
"family": "image",
"icon": "image",
"defaults": [
"Reference",
"Texture",
"ConceptArt",
"MattePaint"
],
"help": "Holder for all kinds of image data"
},
"create_matchmove": {
"name": "matchmove",
"label": "Matchmove Scripts",
"family": "matchmove",
"icon": "empire",
"defaults": [
"Camera",
"Object",
"Mocap"
],
"help": "Script exported from matchmoving application"
},
"create_render": {
"name": "render",
"label": "Render",
"family": "render",
"icon": "image",
"defaults": [
"Animation",
"Lighting",
"Lookdev",
"Compositing"
],
"help": "Rendered images or video files"
},
"create_mov_batch": {
"name": "mov_batch",
"label": "Batch Mov",
"family": "render_mov_batch",
"icon": "image",
"defaults": [
"Main"
],
"help": "Process multiple Mov files and publish them for layout and comp."
},
"create_texture_batch": {
"name": "texture_batch",
"label": "Texture Batch",
"family": "texture_batch",
"icon": "image",
"defaults": [
"Main"
],
"help": "Texture files with UDIM together with worfile"
},
"create_vdb": {
"name": "vdb",
"label": "VDB Volumetric Data",
"family": "vdbcache",
"icon": "cloud",
"defaults": [],
"help": "Hierarchical data structure for the efficient storage and manipulation of sparse volumetric data discretized on three-dimensional grids"
},
"__dynamic_keys_labels__": {
"create_workfile": "Workfile",
"create_model": "Model",
"create_rig": "Rig",
"create_pointcache": "Pointcache",
"create_plate": "Plate",
"create_camera": "Camera",
"create_editorial": "Editorial",
"create_image": "Image",
"create_matchmove": "Matchmove",
"create_render": "Render",
"create_mov_batch": "Batch Mov",
"create_texture_batch": "Batch Texture",
"create_simple_unreal_texture": "Simple Unreal Texture",
"create_vdb": "VDB Cache"
}
},
"publish": {
"CollectTextures": {
"enabled": true,
"active": true,
"main_workfile_extensions": [
"mra"
],
"other_workfile_extensions": [
"spp",
"psd"
],
"texture_extensions": [
"exr",
"dpx",
"jpg",
"jpeg",
"png",
"tiff",
"tga",
"gif",
"svg"
],
"workfile_families": [],
"texture_families": [],
"color_space": [
"sRGB",
"Raw",
"ACEScg"
],
"input_naming_patterns": {
"workfile": [
"^([^.]+)(_[^_.]*)?_v([0-9]{3,}).+"
],
"textures": [
"^([^_.]+)_([^_.]+)_v([0-9]{3,})_([^_.]+)_({color_space})_(1[0-9]{3}).+"
]
},
"input_naming_groups": {
"workfile": [
"asset",
"filler",
"version"
],
"textures": [
"asset",
"shader",
"version",
"channel",
"color_space",
"udim"
]
},
"workfile_subset_template": "textures{Subset}Workfile",
"texture_subset_template": "textures{Subset}_{Shader}_{Channel}"
},
"ValidateSceneSettings": {
"enabled": true,
"optional": true,
"active": true,
"check_extensions": [
"exr",
"dpx",
"jpg",
"jpeg",
"png",
"tiff",
"tga",
"gif",
"svg"
],
"families": [
"render"
],
"skip_timelines_check": []
},
"ExtractThumbnailSP": {
"ffmpeg_args": {
"input": [
"-apply_trc gamma22"
],
"output": []
}
},
"CollectEditorial": {
"source_dir": "",
"extensions": [
"mov",
"mp4"
]
},
"CollectHierarchyInstance": {
"shot_rename": true,
"shot_rename_template": "{project[code]}_{_sequence_}_{_shot_}",
"shot_rename_search_patterns": {
"_sequence_": "(sc\\d{3})",
"_shot_": "(sh\\d{3})"
},
"shot_add_hierarchy": {
"enabled": true,
"parents_path": "{project}/{folder}/{sequence}",
"parents": {
"project": "{project[name]}",
"sequence": "{_sequence_}",
"folder": "shots"
}
},
"shot_add_tasks": {}
},
"CollectInstances": {
"custom_start_frame": 0,
"timeline_frame_start": 900000,
"timeline_frame_offset": 0,
"subsets": {
"referenceMain": {
"family": "review",
"families": [
"clip"
],
"extensions": [
"mp4"
],
"version": 0,
"keepSequence": false
},
"audioMain": {
"family": "audio",
"families": [
"clip"
],
"extensions": [
"wav"
],
"version": 0,
"keepSequence": false
}
}
}
}
}

View file

@ -1,14 +0,0 @@
{
"imageio": {
"activate_host_color_management": true,
"ocio_config": {
"override_global_config": false,
"filepath": []
},
"file_rules": {
"activate_host_rules": false,
"rules": {}
}
},
"shelves": {}
}

View file

@ -1,352 +0,0 @@
{
"imageio": {
"activate_host_color_management": true,
"ocio_config": {
"override_global_config": false,
"filepath": []
},
"file_rules": {
"activate_host_rules": false,
"rules": {}
}
},
"simple_creators": [
{
"family": "workfile",
"identifier": "",
"label": "Workfile",
"icon": "fa.file",
"default_variants": [
"Main"
],
"description": "Backup of a working scene",
"detailed_description": "Workfiles are full scenes from any application that are directly edited by artists. They represent a state of work on a task at a given point and are usually not directly referenced into other scenes.",
"allow_sequences": false,
"allow_multiple_items": false,
"allow_version_control": false,
"extensions": [
".ma",
".mb",
".nk",
".hrox",
".hip",
".hiplc",
".hipnc",
".blend",
".scn",
".tvpp",
".comp",
".zip",
".prproj",
".drp",
".psd",
".psb",
".aep"
]
},
{
"family": "model",
"identifier": "",
"label": "Model",
"icon": "fa.cubes",
"default_variants": [
"Main",
"Proxy",
"Sculpt"
],
"description": "Clean models",
"detailed_description": "Models should only contain geometry data, without any extras like cameras, locators or bones.\n\nKeep in mind that models published from tray publisher are not validated for correctness. ",
"allow_sequences": false,
"allow_multiple_items": true,
"allow_version_control": false,
"extensions": [
".ma",
".mb",
".obj",
".abc",
".fbx",
".bgeo",
".bgeogz",
".bgeosc",
".usd",
".blend"
]
},
{
"family": "pointcache",
"identifier": "",
"label": "Pointcache",
"icon": "fa.gears",
"default_variants": [
"Main"
],
"description": "Geometry Caches",
"detailed_description": "Alembic or bgeo cache of animated data",
"allow_sequences": true,
"allow_multiple_items": true,
"allow_version_control": false,
"extensions": [
".abc",
".bgeo",
".bgeogz",
".bgeosc"
]
},
{
"family": "plate",
"identifier": "",
"label": "Plate",
"icon": "mdi.camera-image",
"default_variants": [
"Main",
"BG",
"Animatic",
"Reference",
"Offline"
],
"description": "Footage Plates",
"detailed_description": "Any type of image seqeuence coming from outside of the studio. Usually camera footage, but could also be animatics used for reference.",
"allow_sequences": true,
"allow_multiple_items": true,
"allow_version_control": false,
"extensions": [
".exr",
".png",
".dpx",
".jpg",
".tiff",
".tif",
".mov",
".mp4",
".avi"
]
},
{
"family": "render",
"identifier": "",
"label": "Render",
"icon": "mdi.folder-multiple-image",
"default_variants": [],
"description": "Rendered images or video",
"detailed_description": "Sequence or single file renders",
"allow_sequences": true,
"allow_multiple_items": true,
"allow_version_control": false,
"extensions": [
".exr",
".png",
".dpx",
".jpg",
".jpeg",
".tiff",
".tif",
".mov",
".mp4",
".avi"
]
},
{
"family": "camera",
"identifier": "",
"label": "Camera",
"icon": "fa.video-camera",
"default_variants": [],
"description": "3d Camera",
"detailed_description": "Ideally this should be only camera itself with baked animation, however, it can technically also include helper geometry.",
"allow_sequences": false,
"allow_multiple_items": true,
"allow_version_control": false,
"extensions": [
".abc",
".ma",
".hip",
".blend",
".fbx",
".usd"
]
},
{
"family": "image",
"identifier": "",
"label": "Image",
"icon": "fa.image",
"default_variants": [
"Reference",
"Texture",
"Concept",
"Background"
],
"description": "Single image",
"detailed_description": "Any image data can be published as image family. References, textures, concept art, matte paints. This is a fallback 2d family for everything that doesn't fit more specific family.",
"allow_sequences": false,
"allow_multiple_items": true,
"allow_version_control": false,
"extensions": [
".exr",
".jpg",
".jpeg",
".dpx",
".bmp",
".tif",
".tiff",
".png",
".psb",
".psd"
]
},
{
"family": "vdb",
"identifier": "",
"label": "VDB Volumes",
"icon": "fa.cloud",
"default_variants": [],
"description": "Sparse volumetric data",
"detailed_description": "Hierarchical data structure for the efficient storage and manipulation of sparse volumetric data discretized on three-dimensional grids",
"allow_sequences": true,
"allow_multiple_items": true,
"allow_version_control": false,
"extensions": [
".vdb"
]
},
{
"family": "matchmove",
"identifier": "",
"label": "Matchmove",
"icon": "fa.empire",
"default_variants": [
"Camera",
"Object",
"Mocap"
],
"description": "Matchmoving script",
"detailed_description": "Script exported from matchmoving application to be later processed into a tracked camera with additional data",
"allow_sequences": false,
"allow_multiple_items": true,
"allow_version_control": false,
"extensions": []
},
{
"family": "rig",
"identifier": "",
"label": "Rig",
"icon": "fa.wheelchair",
"default_variants": [],
"description": "CG rig file",
"detailed_description": "CG rigged character or prop. Rig should be clean of any extra data and directly loadable into it's respective application\t",
"allow_sequences": false,
"allow_multiple_items": false,
"allow_version_control": false,
"extensions": [
".ma",
".blend",
".hip",
".hda"
]
},
{
"family": "audio",
"identifier": "",
"label": "Audio ",
"icon": "fa5s.file-audio",
"default_variants": [
"Main"
],
"description": "Audio product",
"detailed_description": "Audio files for review or final delivery",
"allow_sequences": false,
"allow_multiple_items": false,
"allow_version_control": false,
"extensions": [
".wav"
]
}
],
"editorial_creators": {
"editorial_simple": {
"default_variants": [
"Main"
],
"clip_name_tokenizer": {
"_sequence_": "(sc\\d{3})",
"_shot_": "(sh\\d{3})"
},
"shot_rename": {
"enabled": true,
"shot_rename_template": "{project[code]}_{_sequence_}_{_shot_}"
},
"shot_hierarchy": {
"enabled": true,
"parents_path": "{project}/{folder}/{sequence}",
"parents": [
{
"type": "Project",
"name": "project",
"value": "{project[name]}"
},
{
"type": "Folder",
"name": "folder",
"value": "shots"
},
{
"type": "Sequence",
"name": "sequence",
"value": "{_sequence_}"
}
]
},
"shot_add_tasks": {},
"family_presets": [
{
"family": "review",
"variant": "Reference",
"review": true,
"output_file_type": ".mp4"
},
{
"family": "plate",
"variant": "",
"review": false,
"output_file_type": ".mov"
},
{
"family": "audio",
"variant": "",
"review": false,
"output_file_type": ".wav"
}
]
}
},
"create": {
"BatchMovieCreator": {
"default_variants": [
"Main"
],
"default_tasks": [
"Compositing"
],
"extensions": [
".mov"
]
}
},
"publish": {
"CollectSequenceFrameData": {
"enabled": true,
"optional": true,
"active": false
},
"ValidateFrameRange": {
"enabled": true,
"optional": true,
"active": true
},
"ValidateExistingVersion": {
"enabled": true,
"optional": true,
"active": true
}
}
}

View file

@ -1,111 +0,0 @@
{
"imageio": {
"activate_host_color_management": true,
"ocio_config": {
"override_global_config": false,
"filepath": []
},
"file_rules": {
"activate_host_rules": false,
"rules": {}
}
},
"stop_timer_on_application_exit": false,
"create": {
"create_workfile": {
"enabled": true,
"default_variant": "Main",
"default_variants": []
},
"create_review": {
"enabled": true,
"active_on_create": true,
"default_variant": "Main",
"default_variants": []
},
"create_render_scene": {
"enabled": true,
"active_on_create": false,
"mark_for_review": true,
"default_pass_name": "beauty",
"default_variant": "Main",
"default_variants": []
},
"create_render_layer": {
"mark_for_review": false,
"default_pass_name": "beauty",
"default_variant": "Main",
"default_variants": []
},
"create_render_pass": {
"mark_for_review": false,
"default_variant": "Main",
"default_variants": []
},
"auto_detect_render": {
"enabled": false,
"allow_group_rename": true,
"group_name_template": "L{group_index}",
"group_idx_offset": 10,
"group_idx_padding": 3
}
},
"publish": {
"CollectRenderInstances": {
"ignore_render_pass_transparency": false
},
"ExtractSequence": {
"review_bg": [
255,
255,
255,
255
]
},
"ValidateProjectSettings": {
"enabled": true,
"optional": true,
"active": true
},
"ValidateMarks": {
"enabled": true,
"optional": true,
"active": true
},
"ValidateStartFrame": {
"enabled": false,
"optional": true,
"active": true
},
"ValidateAssetName": {
"enabled": true,
"optional": true,
"active": true
},
"ExtractConvertToEXR": {
"enabled": false,
"replace_pngs": true,
"exr_compression": "ZIP"
}
},
"load": {
"LoadImage": {
"defaults": {
"stretch": true,
"timestretch": true,
"preload": true
}
},
"ImportImage": {
"defaults": {
"stretch": true,
"timestretch": true,
"preload": true
}
}
},
"workfile_builder": {
"create_first_version": false,
"custom_templates": []
}
}

View file

@ -1,21 +0,0 @@
{
"imageio": {
"activate_host_color_management": true,
"ocio_config": {
"override_global_config": false,
"filepath": []
},
"file_rules": {
"activate_host_rules": false,
"rules": {}
}
},
"level_sequences_for_layouts": false,
"delete_unmatched_assets": false,
"render_config_path": "",
"preroll_frames": 0,
"render_format": "png",
"project_setup": {
"dev_mode": false
}
}

View file

@ -1,145 +0,0 @@
{
"imageio": {
"activate_host_color_management": true,
"ocio_config": {
"override_global_config": false,
"filepath": []
},
"file_rules": {
"activate_host_rules": false,
"rules": {}
}
},
"timeout_profiles": [
{
"hosts": [
"photoshop"
],
"task_types": [],
"timeout": 600
}
],
"publish": {
"CollectPublishedFiles": {
"sync_next_version": false,
"task_type_to_family": {
"Animation": [
{
"is_sequence": false,
"extensions": [
"tvp"
],
"families": [],
"tags": [],
"result_family": "workfile"
},
{
"is_sequence": true,
"extensions": [
"png",
"exr",
"tiff",
"tif"
],
"families": [
"review"
],
"tags": [
"review"
],
"result_family": "render"
}
],
"Compositing": [
{
"is_sequence": false,
"extensions": [
"aep"
],
"families": [],
"tags": [],
"result_family": "workfile"
},
{
"is_sequence": true,
"extensions": [
"png",
"exr",
"tiff",
"tif"
],
"families": [
"review"
],
"tags": [
"review"
],
"result_family": "render"
}
],
"Layout": [
{
"is_sequence": false,
"extensions": [
"psd"
],
"families": [],
"tags": [],
"result_family": "workfile"
},
{
"is_sequence": false,
"extensions": [
"png",
"jpg",
"jpeg",
"tiff",
"tif"
],
"families": [
"review"
],
"tags": [
"review"
],
"result_family": "image"
}
],
"default_task_type": [
{
"is_sequence": false,
"extensions": [
"tvp",
"psd"
],
"families": [],
"tags": [],
"result_family": "workfile"
},
{
"is_sequence": true,
"extensions": [
"png",
"exr",
"tiff",
"tif"
],
"families": [
"review"
],
"tags": [
"review"
],
"result_family": "render"
}
],
"__dynamic_keys_labels__": {
"default_task_type": "Default task type"
}
}
},
"CollectTVPaintInstances": {
"layer_name_regex": "(?P<layer>L[0-9]{3}_\\w+)_(?P<pass>.+)"
}
}
}

View file

@ -1,26 +0,0 @@
{
"studio_name": "Studio name",
"studio_code": "stu",
"admin_password": "",
"environment": {},
"log_to_server": true,
"disk_mapping": {
"windows": [],
"linux": [],
"darwin": []
},
"local_env_white_list": [],
"openpype_path": {
"windows": [],
"darwin": [],
"linux": []
},
"local_openpype_path": {
"windows": "",
"darwin": "",
"linux": ""
},
"production_version": "",
"staging_version": "",
"version_check_interval": 5
}

View file

@ -1,200 +0,0 @@
{
"addon_paths": {
"windows": [],
"darwin": [],
"linux": []
},
"avalon": {
"AVALON_TIMEOUT": 1000,
"AVALON_THUMBNAIL_ROOT": {
"windows": "",
"darwin": "",
"linux": ""
}
},
"ftrack": {
"enabled": false,
"ftrack_server": "",
"ftrack_actions_path": {
"windows": [],
"darwin": [],
"linux": []
},
"ftrack_events_path": {
"windows": [],
"darwin": [],
"linux": []
},
"intent": {
"allow_empty_intent": true,
"empty_intent_label": "",
"items": {
"wip": "WIP",
"final": "Final",
"test": "Test"
},
"default": ""
},
"custom_attributes": {
"show": {
"avalon_auto_sync": {
"write_security_roles": [
"API",
"Administrator"
],
"read_security_roles": [
"API",
"Administrator"
]
},
"library_project": {
"write_security_roles": [
"API",
"Administrator"
],
"read_security_roles": [
"API",
"Administrator"
]
},
"applications": {
"write_security_roles": [
"API",
"Administrator"
],
"read_security_roles": [
"API",
"Administrator"
]
}
},
"is_hierarchical": {
"tools_env": {
"write_security_roles": [
"API",
"Administrator"
],
"read_security_roles": [
"API",
"Administrator"
]
},
"avalon_mongo_id": {
"write_security_roles": [
"API",
"Administrator"
],
"read_security_roles": [
"API",
"Administrator"
]
},
"fps": {
"write_security_roles": [],
"read_security_roles": []
},
"frameStart": {
"write_security_roles": [],
"read_security_roles": []
},
"frameEnd": {
"write_security_roles": [],
"read_security_roles": []
},
"clipIn": {
"write_security_roles": [],
"read_security_roles": []
},
"clipOut": {
"write_security_roles": [],
"read_security_roles": []
},
"handleStart": {
"write_security_roles": [],
"read_security_roles": []
},
"handleEnd": {
"write_security_roles": [],
"read_security_roles": []
},
"resolutionWidth": {
"write_security_roles": [],
"read_security_roles": []
},
"resolutionHeight": {
"write_security_roles": [],
"read_security_roles": []
},
"pixelAspect": {
"write_security_roles": [],
"read_security_roles": []
}
}
}
},
"kitsu": {
"enabled": false,
"server": ""
},
"shotgrid": {
"enabled": false,
"leecher_manager_url": "http://127.0.0.1:3000",
"leecher_backend_url": "http://127.0.0.1:8090",
"filter_projects_by_login": true,
"shotgrid_settings": {}
},
"timers_manager": {
"enabled": true,
"auto_stop": true,
"full_time": 15.0,
"message_time": 0.5,
"disregard_publishing": false
},
"clockify": {
"enabled": false,
"workspace_name": ""
},
"sync_server": {
"enabled": false,
"sites": {}
},
"deadline": {
"enabled": true,
"deadline_urls": {
"default": "http://127.0.0.1:8082"
}
},
"royalrender": {
"enabled": false,
"rr_paths": {
"default": {
"windows": "C:\\RR8",
"darwin": "/Volumes/share/RR8",
"linux": "/mnt/studio/RR8"
}
}
},
"log_viewer": {
"enabled": true
},
"standalonepublish_tool": {
"enabled": false
},
"project_manager": {
"enabled": true
},
"slack": {
"enabled": false
},
"job_queue": {
"server_url": "",
"jobs_root": {
"windows": "",
"darwin": "",
"linux": ""
}
},
"asset_reporter": {
"enabled": false
}
}

View file

@ -1,90 +0,0 @@
{
"tool_groups": {
"mtoa": {
"environment": {
"MTOA": "{STUDIO_SOFTWARE}/arnold/mtoa_{MAYA_VERSION}_{MTOA_VERSION}",
"MAYA_RENDER_DESC_PATH": "{MTOA}",
"MAYA_MODULE_PATH": "{MTOA}",
"ARNOLD_PLUGIN_PATH": "{MTOA}/shaders",
"MTOA_EXTENSIONS_PATH": {
"darwin": "{MTOA}/extensions",
"linux": "{MTOA}/extensions",
"windows": "{MTOA}/extensions"
},
"MTOA_EXTENSIONS": {
"darwin": "{MTOA}/extensions",
"linux": "{MTOA}/extensions",
"windows": "{MTOA}/extensions"
},
"DYLD_LIBRARY_PATH": {
"darwin": "{MTOA}/bin"
},
"PATH": {
"windows": "{PATH};{MTOA}/bin"
}
},
"variants": {
"3-2": {
"host_names": [],
"app_variants": [],
"environment": {
"MTOA_VERSION": "3.2"
}
},
"3-1": {
"host_names": [],
"app_variants": [],
"environment": {
"MTOA_VERSION": "3.1"
}
},
"__dynamic_keys_labels__": {
"3-2": "3.2",
"3-1": "3.1"
}
}
},
"vray": {
"environment": {},
"variants": {}
},
"yeti": {
"environment": {},
"variants": {}
},
"renderman": {
"environment": {},
"variants": {
"24-3-maya": {
"host_names": [
"maya"
],
"app_variants": [
"maya/2022"
],
"environment": {
"RFMTREE": {
"windows": "C:\\Program Files\\Pixar\\RenderManForMaya-24.3",
"darwin": "/Applications/Pixar/RenderManForMaya-24.3",
"linux": "/opt/pixar/RenderManForMaya-24.3"
},
"RMANTREE": {
"windows": "C:\\Program Files\\Pixar\\RenderManProServer-24.3",
"darwin": "/Applications/Pixar/RenderManProServer-24.3",
"linux": "/opt/pixar/RenderManProServer-24.3"
}
}
},
"__dynamic_keys_labels__": {
"24-3-maya": "24.3 RFM"
}
}
},
"__dynamic_keys_labels__": {
"mtoa": "Autodesk Arnold",
"vray": "Chaos Group Vray",
"yeti": "Peregrine Labs Yeti",
"renderman": "Pixar Renderman"
}
}
}

View file

@ -1,198 +1,131 @@
import os
import json
import logging
import collections
import copy
import time
from .constants import (
M_OVERRIDDEN_KEY,
METADATA_KEYS,
SYSTEM_SETTINGS_KEY,
PROJECT_SETTINGS_KEY,
DEFAULT_PROJECT_KEY
)
from .ayon_settings import (
get_ayon_project_settings,
get_ayon_system_settings,
get_ayon_settings,
)
from ayon_core.client import get_ayon_server_api_connection
log = logging.getLogger(__name__)
# Py2 + Py3 json decode exception
JSON_EXC = getattr(json.decoder, "JSONDecodeError", ValueError)
class CacheItem:
lifetime = 10
def __init__(self, value, outdate_time=None):
self._value = value
if outdate_time is None:
outdate_time = time.time() + self.lifetime
self._outdate_time = outdate_time
@classmethod
def create_outdated(cls):
return cls({}, 0)
def get_value(self):
return copy.deepcopy(self._value)
def update_value(self, value):
self._value = value
self._outdate_time = time.time() + self.lifetime
@property
def is_outdated(self):
return time.time() > self._outdate_time
# Path to default settings
DEFAULTS_DIR = os.path.join(
os.path.dirname(os.path.abspath(__file__)),
"defaults"
)
class _AyonSettingsCache:
use_bundles = None
variant = None
addon_versions = CacheItem.create_outdated()
studio_settings = CacheItem.create_outdated()
cache_by_project_name = collections.defaultdict(
CacheItem.create_outdated)
# Variable where cache of default settings are stored
_DEFAULT_SETTINGS = None
@classmethod
def _use_bundles(cls):
if _AyonSettingsCache.use_bundles is None:
con = get_ayon_server_api_connection()
major, minor, _, _, _ = con.get_server_version_tuple()
use_bundles = True
if (major, minor) < (0, 3):
use_bundles = False
_AyonSettingsCache.use_bundles = use_bundles
return _AyonSettingsCache.use_bundles
@classmethod
def _get_variant(cls):
if _AyonSettingsCache.variant is None:
from ayon_core.lib import is_staging_enabled, is_dev_mode_enabled
def clear_metadata_from_settings(values):
"""Remove all metadata keys from loaded settings."""
if isinstance(values, dict):
for key in tuple(values.keys()):
if key in METADATA_KEYS:
values.pop(key)
variant = "production"
if is_dev_mode_enabled():
variant = cls._get_bundle_name()
elif is_staging_enabled():
variant = "staging"
# Cache variant
_AyonSettingsCache.variant = variant
# Set the variant to global ayon api connection
con = get_ayon_server_api_connection()
con.set_default_settings_variant(variant)
return _AyonSettingsCache.variant
@classmethod
def _get_bundle_name(cls):
return os.environ["AYON_BUNDLE_NAME"]
@classmethod
def get_value_by_project(cls, project_name):
cache_item = _AyonSettingsCache.cache_by_project_name[project_name]
if cache_item.is_outdated:
con = get_ayon_server_api_connection()
if cls._use_bundles():
value = con.get_addons_settings(
bundle_name=cls._get_bundle_name(),
project_name=project_name,
variant=cls._get_variant()
)
else:
clear_metadata_from_settings(values[key])
elif isinstance(values, list):
for item in values:
clear_metadata_from_settings(item)
value = con.get_addons_settings(project_name)
cache_item.update_value(value)
return cache_item.get_value()
def load_openpype_default_settings():
"""Load openpype default settings."""
return load_jsons_from_dir(DEFAULTS_DIR)
def reset_default_settings():
"""Reset cache of default settings. Can't be used now."""
global _DEFAULT_SETTINGS
_DEFAULT_SETTINGS = None
def _get_default_settings():
return load_openpype_default_settings()
def get_default_settings():
"""Get default settings.
Todo:
Cache loaded defaults.
Returns:
dict: Loaded default settings.
"""
global _DEFAULT_SETTINGS
if _DEFAULT_SETTINGS is None:
_DEFAULT_SETTINGS = _get_default_settings()
return copy.deepcopy(_DEFAULT_SETTINGS)
def load_json_file(fpath):
# Load json data
try:
with open(fpath, "r") as opened_file:
return json.load(opened_file)
except JSON_EXC:
log.warning(
"File has invalid json format \"{}\"".format(fpath),
exc_info=True
@classmethod
def _get_addon_versions_from_bundle(cls):
con = get_ayon_server_api_connection()
expected_bundle = cls._get_bundle_name()
bundles = con.get_bundles()["bundles"]
bundle = next(
(
bundle
for bundle in bundles
if bundle["name"] == expected_bundle
),
None
)
return {}
if bundle is not None:
return bundle["addons"]
return {}
@classmethod
def get_addon_versions(cls):
cache_item = _AyonSettingsCache.addon_versions
if cache_item.is_outdated:
if cls._use_bundles():
addons = cls._get_addon_versions_from_bundle()
else:
con = get_ayon_server_api_connection()
settings_data = con.get_addons_settings(
only_values=False,
variant=cls._get_variant()
)
addons = settings_data["versions"]
cache_item.update_value(addons)
def load_jsons_from_dir(path, *args, **kwargs):
"""Load all .json files with content from entered folder path.
Data are loaded recursively from a directory and recreate the
hierarchy as a dictionary.
Entered path hierarchy:
|_ folder1
| |_ data1.json
|_ folder2
|_ subfolder1
|_ data2.json
Will result in:
```javascript
{
"folder1": {
"data1": "CONTENT OF FILE"
},
"folder2": {
"subfolder1": {
"data2": "CONTENT OF FILE"
}
}
}
```
Args:
path (str): Path to the root folder where the json hierarchy starts.
Returns:
dict: Loaded data.
"""
output = {}
path = os.path.normpath(path)
if not os.path.exists(path):
# TODO warning
return output
sub_keys = list(kwargs.pop("subkeys", args))
for sub_key in tuple(sub_keys):
_path = os.path.join(path, sub_key)
if not os.path.exists(_path):
break
path = _path
sub_keys.pop(0)
base_len = len(path) + 1
for base, _directories, filenames in os.walk(path):
base_items_str = base[base_len:]
if not base_items_str:
base_items = []
else:
base_items = base_items_str.split(os.path.sep)
for filename in filenames:
basename, ext = os.path.splitext(filename)
if ext == ".json":
full_path = os.path.join(base, filename)
value = load_json_file(full_path)
dict_keys = base_items + [basename]
output = subkey_merge(output, value, dict_keys)
for sub_key in sub_keys:
output = output[sub_key]
return output
def subkey_merge(_dict, value, keys):
key = keys.pop(0)
if not keys:
_dict[key] = value
return _dict
if key not in _dict:
_dict[key] = {}
_dict[key] = subkey_merge(_dict[key], value, keys)
return _dict
def merge_overrides(source_dict, override_dict):
"""Merge data from override_dict to source_dict."""
if M_OVERRIDDEN_KEY in override_dict:
overridden_keys = set(override_dict.pop(M_OVERRIDDEN_KEY))
else:
overridden_keys = set()
for key, value in override_dict.items():
if (key in overridden_keys or key not in source_dict):
source_dict[key] = value
elif isinstance(value, dict) and isinstance(source_dict[key], dict):
source_dict[key] = merge_overrides(source_dict[key], value)
else:
source_dict[key] = value
return source_dict
return cache_item.get_value()
def get_site_local_overrides(project_name, site_name, local_settings=None):
@ -211,6 +144,66 @@ def get_site_local_overrides(project_name, site_name, local_settings=None):
return {}
def get_ayon_settings(project_name=None):
"""AYON studio settings.
Raw AYON settings values.
Args:
project_name (Optional[str]): Project name.
Returns:
dict[str, Any]: AYON settings.
"""
return _AyonSettingsCache.get_value_by_project(project_name)
def get_studio_settings(*args, **kwargs):
return _AyonSettingsCache.get_value_by_project(None)
# Backward compatibility
get_system_settings = get_studio_settings
def get_project_settings(project_name, *args, **kwargs):
return _AyonSettingsCache.get_value_by_project(project_name)
def get_general_environments(studio_settings=None):
"""General studio environment variables.
Args:
studio_settings (Optional[dict]): Pre-queried studio settings.
Returns:
dict[str, Any]: General studio environment variables.
"""
if studio_settings is None:
studio_settings = get_ayon_settings()
return json.loads(studio_settings["core"]["environments"])
def get_project_environments(project_name, project_settings=None):
"""Project environment variables.
Args:
project_name (str): Project name.
project_settings (Optional[dict]): Pre-queried project settings.
Returns:
dict[str, Any]: Project environment variables.
"""
if project_settings is None:
project_settings = get_project_settings(project_name)
return json.loads(
project_settings["core"]["project_environments"]
)
def get_current_project_settings():
"""Project settings for current context project.
@ -227,16 +220,4 @@ def get_current_project_settings():
return get_project_settings(project_name)
def get_general_environments():
settings = get_ayon_settings()
return json.loads(settings["core"]["environments"])
def get_system_settings(*args, **kwargs):
default_settings = get_default_settings()[SYSTEM_SETTINGS_KEY]
return get_ayon_system_settings(default_settings)
def get_project_settings(project_name, *args, **kwargs):
default_settings = get_default_settings()[PROJECT_SETTINGS_KEY]
return get_ayon_project_settings(default_settings, project_name)

View file

@ -17,7 +17,7 @@ from ayon_core.lib import (
is_staging_enabled,
is_running_from_build,
)
from ayon_core.settings import get_ayon_settings
from ayon_core.settings import get_studio_settings
from ayon_core.addon import (
ITrayAction,
ITrayService,
@ -47,7 +47,7 @@ class TrayManager:
self.log = Logger.get_logger(self.__class__.__name__)
studio_settings = get_ayon_settings()
studio_settings = get_studio_settings()
update_check_interval = studio_settings["core"].get(
"update_check_interval"