mirror of
https://github.com/ynput/ayon-core.git
synced 2026-01-02 08:54:53 +01:00
Merge branch 'develop' into enchancement/OP-2630_acescg_maya
This commit is contained in:
commit
0ce2d86397
3 changed files with 55 additions and 14 deletions
|
|
@ -43,14 +43,15 @@ def parse_layers_data(data):
|
|||
layer_id, group_id, visible, position, opacity, name,
|
||||
layer_type,
|
||||
frame_start, frame_end, prelighttable, postlighttable,
|
||||
selected, editable, sencil_state
|
||||
selected, editable, sencil_state, is_current
|
||||
) = layer_raw.split("|")
|
||||
layer = {
|
||||
"layer_id": int(layer_id),
|
||||
"group_id": int(group_id),
|
||||
"visible": visible == "ON",
|
||||
"position": int(position),
|
||||
"opacity": int(opacity),
|
||||
# Opacity from 'tv_layerinfo' is always set to '0' so it's unusable
|
||||
# "opacity": int(opacity),
|
||||
"name": name,
|
||||
"type": layer_type,
|
||||
"frame_start": int(frame_start),
|
||||
|
|
@ -59,7 +60,8 @@ def parse_layers_data(data):
|
|||
"postlighttable": postlighttable == "1",
|
||||
"selected": selected == "1",
|
||||
"editable": editable == "1",
|
||||
"sencil_state": sencil_state
|
||||
"sencil_state": sencil_state,
|
||||
"is_current": is_current == "1"
|
||||
}
|
||||
layers.append(layer)
|
||||
return layers
|
||||
|
|
@ -87,15 +89,17 @@ def get_layers_data_george_script(output_filepath, layer_ids=None):
|
|||
" selected editable sencilState"
|
||||
),
|
||||
# Check if layer ID match `tv_LayerCurrentID`
|
||||
"is_current=0",
|
||||
"IF CMP(current_layer_id, layer_id)==1",
|
||||
# - mark layer as selected if layer id match to current layer id
|
||||
"is_current=1",
|
||||
"selected=1",
|
||||
"END",
|
||||
# Prepare line with data separated by "|"
|
||||
(
|
||||
"line = layer_id'|'group_id'|'visible'|'position'|'opacity'|'"
|
||||
"name'|'type'|'startFrame'|'endFrame'|'prelighttable'|'"
|
||||
"postlighttable'|'selected'|'editable'|'sencilState"
|
||||
"postlighttable'|'selected'|'editable'|'sencilState'|'is_current"
|
||||
),
|
||||
# Write data to output file
|
||||
"tv_writetextfile \"strict\" \"append\" '\"'output_path'\"' line",
|
||||
|
|
|
|||
|
|
@ -41,6 +41,7 @@ from openpype.client import get_asset_by_name
|
|||
from openpype.lib import (
|
||||
prepare_template_data,
|
||||
AbstractAttrDef,
|
||||
UILabelDef,
|
||||
UISeparatorDef,
|
||||
EnumDef,
|
||||
TextDef,
|
||||
|
|
@ -66,7 +67,7 @@ RENDER_LAYER_DETAILED_DESCRIPTIONS = (
|
|||
Be aware Render Layer <b>is not</b> TVPaint layer.
|
||||
|
||||
All TVPaint layers in the scene with the color group id are rendered in the
|
||||
beauty pass. To create sub passes use Render Layer creator which is
|
||||
beauty pass. To create sub passes use Render Pass creator which is
|
||||
dependent on existence of render layer instance.
|
||||
|
||||
The group can represent an asset (tree) or different part of scene that consist
|
||||
|
|
@ -82,8 +83,8 @@ could be Render Layer which has 'Arm', 'Head' and 'Body' as Render Passes.
|
|||
RENDER_PASS_DETAILED_DESCRIPTIONS = (
|
||||
"""Render Pass is sub part of Render Layer.
|
||||
|
||||
Render Pass can consist of one or more TVPaint layers. Render Layers must
|
||||
belong to a Render Layer. Marker TVPaint layers will change it's group color
|
||||
Render Pass can consist of one or more TVPaint layers. Render Pass must
|
||||
belong to a Render Layer. Marked TVPaint layers will change it's group color
|
||||
to match group color of Render Layer.
|
||||
"""
|
||||
)
|
||||
|
|
@ -461,7 +462,10 @@ class CreateRenderPass(TVPaintCreator):
|
|||
"render_layer_instance_id"
|
||||
)
|
||||
if not render_layer_instance_id:
|
||||
raise CreatorError("Missing RenderLayer instance")
|
||||
raise CreatorError((
|
||||
"You cannot create a Render Pass without a Render Layer."
|
||||
" Please select one first"
|
||||
))
|
||||
|
||||
render_layer_instance = self.create_context.instances_by_id.get(
|
||||
render_layer_instance_id
|
||||
|
|
@ -598,12 +602,45 @@ class CreateRenderPass(TVPaintCreator):
|
|||
]
|
||||
|
||||
def get_pre_create_attr_defs(self):
|
||||
# Find available Render Layers
|
||||
# - instances are created after creators reset
|
||||
current_instances = self.host.list_instances()
|
||||
render_layers = [
|
||||
{
|
||||
"value": instance["instance_id"],
|
||||
"label": instance["subset"]
|
||||
}
|
||||
for instance in current_instances
|
||||
if instance["creator_identifier"] == CreateRenderlayer.identifier
|
||||
]
|
||||
if not render_layers:
|
||||
render_layers.append({"value": None, "label": "N/A"})
|
||||
|
||||
return [
|
||||
EnumDef(
|
||||
"render_layer_instance_id",
|
||||
label="Render Layer",
|
||||
items=render_layers
|
||||
),
|
||||
UILabelDef(
|
||||
"NOTE: Try to hit refresh if you don't see a Render Layer"
|
||||
),
|
||||
BoolDef(
|
||||
"mark_for_review",
|
||||
label="Review",
|
||||
default=self.mark_for_review
|
||||
)
|
||||
]
|
||||
|
||||
def get_instance_attr_defs(self):
|
||||
# Find available Render Layers
|
||||
current_instances = self.create_context.instances
|
||||
render_layers = [
|
||||
{
|
||||
"value": instance.id,
|
||||
"label": instance.label
|
||||
}
|
||||
for instance in self.create_context.instances
|
||||
for instance in current_instances
|
||||
if instance.creator_identifier == CreateRenderlayer.identifier
|
||||
]
|
||||
if not render_layers:
|
||||
|
|
@ -615,6 +652,9 @@ class CreateRenderPass(TVPaintCreator):
|
|||
label="Render Layer",
|
||||
items=render_layers
|
||||
),
|
||||
UILabelDef(
|
||||
"NOTE: Try to hit refresh if you don't see a Render Layer"
|
||||
),
|
||||
BoolDef(
|
||||
"mark_for_review",
|
||||
label="Review",
|
||||
|
|
@ -622,9 +662,6 @@ class CreateRenderPass(TVPaintCreator):
|
|||
)
|
||||
]
|
||||
|
||||
def get_instance_attr_defs(self):
|
||||
return self.get_pre_create_attr_defs()
|
||||
|
||||
|
||||
class TVPaintAutoDetectRenderCreator(TVPaintCreator):
|
||||
"""Create Render Layer and Render Pass instances based on scene data.
|
||||
|
|
|
|||
|
|
@ -31,13 +31,13 @@
|
|||
"default_variants": []
|
||||
},
|
||||
"create_render_layer": {
|
||||
"mark_for_review": true,
|
||||
"mark_for_review": false,
|
||||
"default_pass_name": "beauty",
|
||||
"default_variant": "Main",
|
||||
"default_variants": []
|
||||
},
|
||||
"create_render_pass": {
|
||||
"mark_for_review": true,
|
||||
"mark_for_review": false,
|
||||
"default_variant": "Main",
|
||||
"default_variants": []
|
||||
},
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue