mirror of
https://github.com/ynput/ayon-core.git
synced 2025-12-25 05:14:40 +01:00
refactor the script to be frame number rather then frame range
This commit is contained in:
parent
ab0e8ac1b1
commit
abc266e9e5
3 changed files with 50 additions and 52 deletions
47
openpype/hosts/nuke/startup/frame_setting_for_read_nodes.py
Normal file
47
openpype/hosts/nuke/startup/frame_setting_for_read_nodes.py
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
""" OpenPype custom script for resetting read nodes start frame values """
|
||||
|
||||
import nuke
|
||||
import nukescripts
|
||||
|
||||
|
||||
class FrameSettingsPanel(nukescripts.PythonPanel):
|
||||
""" Frame Settings Panel """
|
||||
def __init__(self):
|
||||
nukescripts.PythonPanel.__init__(self, "Set Frame Start (Read Node)")
|
||||
|
||||
# create knobs
|
||||
self.frame = nuke.Int_Knob(
|
||||
'frame', 'Frame Number')
|
||||
self.selected = nuke.Boolean_Knob("selection")
|
||||
# add knobs to panel
|
||||
self.addKnob(self.selected)
|
||||
self.addKnob(self.frame)
|
||||
|
||||
# set values
|
||||
self.selected.setValue(False)
|
||||
self.frame.setValue(nuke.root().firstFrame())
|
||||
|
||||
def process(self):
|
||||
""" Process the panel values. """
|
||||
# get values
|
||||
frame = self.frame.value()
|
||||
if self.selected.value():
|
||||
# selected nodes processing
|
||||
if not nuke.selectedNodes():
|
||||
return
|
||||
for rn_ in nuke.selectedNodes():
|
||||
if rn_.Class() != "Read":
|
||||
continue
|
||||
rn_["frame_mode"].setValue("start_at")
|
||||
rn_["frame"].setValue(str(frame))
|
||||
else:
|
||||
# all nodes processing
|
||||
for rn_ in nuke.allNodes(filter="Read"):
|
||||
rn_["frame_mode"].setValue("start_at")
|
||||
rn_["frame"].setValue(str(frame))
|
||||
|
||||
|
||||
def main():
|
||||
p_ = FrameSettingsPanel()
|
||||
if p_.showModalDialog():
|
||||
print(p_.process())
|
||||
|
|
@ -1,49 +0,0 @@
|
|||
import nuke
|
||||
import nukescripts
|
||||
import re
|
||||
|
||||
|
||||
class FrameSettingsPanel(nukescripts.PythonPanel):
|
||||
def __init__(self, node):
|
||||
nukescripts.PythonPanel.__init__(self, 'Frame Range')
|
||||
self.read_node = node
|
||||
# CREATE KNOBS
|
||||
self.range = nuke.String_Knob('fRange', 'Frame Range', '%s-%s' %
|
||||
(nuke.root().firstFrame(),
|
||||
nuke.root().lastFrame()))
|
||||
self.selected = nuke.Boolean_Knob("selection")
|
||||
self.info = nuke.Help_Knob("Instruction")
|
||||
# ADD KNOBS
|
||||
self.addKnob(self.selected)
|
||||
self.addKnob(self.range)
|
||||
self.addKnob(self.info)
|
||||
self.selected.setValue(False)
|
||||
|
||||
def knobChanged(self, knob):
|
||||
frame_range = self.range.value()
|
||||
pattern = r"^(?P<start>-?[0-9]+)(?:(?:-+)(?P<end>-?[0-9]+))?$"
|
||||
match = re.match(pattern, frame_range)
|
||||
frame_start = int(match.group("start"))
|
||||
frame_end = int(match.group("end"))
|
||||
if not self.read_node:
|
||||
return
|
||||
for r in self.read_node:
|
||||
if self.onchecked():
|
||||
if not nuke.selectedNodes():
|
||||
return
|
||||
if r in nuke.selectedNodes():
|
||||
r["frame_mode"].setValue("start_at")
|
||||
r["frame"].setValue(frame_range)
|
||||
r["first"].setValue(frame_start)
|
||||
r["last"].setValue(frame_end)
|
||||
else:
|
||||
r["frame_mode"].setValue("start_at")
|
||||
r["frame"].setValue(frame_range)
|
||||
r["first"].setValue(frame_start)
|
||||
r["last"].setValue(frame_end)
|
||||
|
||||
def onchecked(self):
|
||||
if self.selected.value():
|
||||
return True
|
||||
else:
|
||||
return False
|
||||
|
|
@ -226,9 +226,9 @@
|
|||
{
|
||||
"type": "action",
|
||||
"sourcetype": "python",
|
||||
"title": "Set Frame Range (Read Node)",
|
||||
"command": "import openpype.hosts.nuke.startup.ops_frame_setting_for_read as popup;import nuke;popup.FrameSettingsPanel(nuke.allNodes('Read')).showModalDialog();",
|
||||
"tooltip": "Set Frame Range for Read Node(s)"
|
||||
"title": "Set Frame Start (Read Node)",
|
||||
"command": "from openpype.hosts.nuke.startup.frame_setting_for_read_nodes import main;main();",
|
||||
"tooltip": "Set frame start for read node(s)"
|
||||
}
|
||||
]
|
||||
},
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue