mirror of
https://github.com/ynput/ayon-core.git
synced 2025-12-25 21:32:15 +01:00
custom settings for write node without publish and register
This commit is contained in:
parent
862d34bb7e
commit
6de4ceabd3
2 changed files with 74 additions and 0 deletions
67
openpype/hosts/nuke/startup/ops_write_node_no_publish.py
Normal file
67
openpype/hosts/nuke/startup/ops_write_node_no_publish.py
Normal file
|
|
@ -0,0 +1,67 @@
|
|||
import os
|
||||
import nuke
|
||||
from pathlib import Path
|
||||
from openpype.client import get_asset_by_name, get_project
|
||||
from openpype.pipeline import Anatomy, legacy_io
|
||||
from openpype.pipeline.template_data import get_template_data
|
||||
from openpype.hosts.nuke.api.lib import (
|
||||
get_imageio_node_setting,
|
||||
set_node_knobs_from_settings)
|
||||
|
||||
|
||||
def main():
|
||||
project_name = legacy_io.Session["AVALON_PROJECT"]
|
||||
asset_name = legacy_io.Session["AVALON_ASSET"]
|
||||
task_name = legacy_io.Session["AVALON_TASK"]
|
||||
# fetch asset docs
|
||||
asset_doc = get_asset_by_name(project_name, asset_name)
|
||||
|
||||
# get task type to fill the timer tag
|
||||
# template = "{root[work]}/{project[name]}/{hierarchy}/{asset}"
|
||||
anatomy = Anatomy(project_name)
|
||||
project_doc = get_project(project_name)
|
||||
template_data = get_template_data(project_doc, asset_doc)
|
||||
template_data["root"] = anatomy.roots
|
||||
template_data["task"] = {"name":task_name}
|
||||
|
||||
padding = int(
|
||||
anatomy.templates["render"]["frame_padding"]
|
||||
)
|
||||
version_int = 0
|
||||
version_int += 1
|
||||
if version_int:
|
||||
version_int += 1
|
||||
|
||||
node_settings = get_imageio_node_setting(
|
||||
"Write", "CreateWriteRender", subset=None)
|
||||
|
||||
ext = None
|
||||
for knob in node_settings["knobs"]:
|
||||
if knob["name"] == "file_type":
|
||||
ext = knob["value"]
|
||||
data = {
|
||||
"asset": asset_name,
|
||||
"task": task_name,
|
||||
"subset": "non_publish_render",
|
||||
"frame": "#" * padding,
|
||||
"ext": ext
|
||||
}
|
||||
|
||||
write_selected_nodes = [
|
||||
s for s in nuke.selectedNodes() if s.Class() == "Write"]
|
||||
|
||||
for i in range(len(write_selected_nodes)):
|
||||
data.update({"version": i})
|
||||
data.update(template_data)
|
||||
|
||||
anatomy_filled = anatomy.format(data)
|
||||
folder = anatomy_filled["work"]["folder"]
|
||||
render_folder = os.path.join(folder, "render_no_publish")
|
||||
filename = anatomy_filled["render"]["file"]
|
||||
file_path = os.path.join(render_folder, filename)
|
||||
file_path = file_path.replace("\\", "/")
|
||||
|
||||
knobs = node_settings["knobs"]
|
||||
for w in write_selected_nodes:
|
||||
w["file"].setValue(file_path)
|
||||
set_node_knobs_from_settings(w, knobs)
|
||||
|
|
@ -222,6 +222,13 @@
|
|||
"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 non publish output for Write Node",
|
||||
"command": "from openpype.hosts.nuke.startup.ops_write_node_no_publish import main;main();",
|
||||
"tooltip": "Open the OpenPype Nuke user doc page"
|
||||
}
|
||||
]
|
||||
},
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue