सारांश
यह आलेख बताएगा कि आप सक्रिय Nuke Studio / Hiero सत्र के भीतर अपने टास्क प्रीसेट को कैसे ताज़ा कर सकते हैं।
अधिक जानकारी
डिफ़ॉल्ट रूप से, Nuke Studio और Hiero अपने टास्क प्रीसेट को केवल तभी रीफ़्रेश करेंगे जब एप्लिकेशन पुनः प्रारंभ हो जाएगा। हालाँकि, Python का उपयोग करके, आप किसी साझा स्थान पर सहेजे गए पहले से मौजूद टास्क प्रीसेट को पुनः लोड कर सकते हैं या अपनी टास्क प्रीसेट निर्देशिका में तुरंत नए टास्क प्रीसेट जोड़ सकते हैं। यह कैसे किया जा सकता है, इसका एक सरल उदाहरण निम्नलिखित है:
#remove all presets that are currently loaded as this prevents them being duplicated
R = hiero .exporters.registry
presetNamesToRemove = hiero .exporters.registry.processorPresetNames()
for presetName in presetNamesToRemove:
R.removeProcessorPreset(presetName)
#reload the presets in again
#where ~/.nuke/TaskPresets/16.0/ is the path to your Export Presets
R.loadPresets("~/.nuke/TaskPresets/16.0") #change this path to your Export Presets directory
उपरोक्त कोड वर्तमान में लोड किए गए कार्य प्रीसेट की सूची ढूंढकर उन्हें हटा देता है , इससे उन्हें hiero .exporters.registry.loadPresets() के साथ फिर से लोड किए जाने पर डुप्लिकेट होने से रोका जा सकेगा ।
उपरोक्त कोड को यथावत काम करने के लिए, आपको इसे हर बार अपने टास्क प्रीसेट को रीफ़्रेश करने के लिए स्क्रिप्ट एडिटर में चलाना होगा। हालाँकि, आप कोड को एक बटन या विजेट में लपेटकर इसे और बेहतर बना सकते हैं। उदाहरण के लिए, निम्न कोड इसे राइट-क्लिक मेनू में जोड़ देगा:
import hiero .core, hiero .ui, nuke , glob, os
from hiero .core import events
try:
from PySide2 import QtWidgets
from PySide2.QtWidgets import QMessageBox
except:
from PySide6 import QtWidgets
from PySide6.QtWidgets import QMessageBox
from PySide6 import QtGui as QtWidgets
class refreshTaskPresets(QtWidgets.QAction):
def __init__(self, event):
QtWidgets.QAction.__init__(self, "", None)
self.event = event
self.triggered.connect(self.doit)
def doit(self):
presetPath = os.path.expanduser("~")+"/.nuke/TaskPresets/16.0" #change this path to your Export Presets directory
#checking if the path given path contains xml files
if len(glob.glob(presetPath+"/*/*/*.xml")) > 1:
#remove all presets that are currently loaded as this prevents them being duplicated
R = hiero .exporters.registry
presetNamesToRemove = hiero .exporters.registry.processorPresetNames()
for presetName in presetNamesToRemove:
R.removeProcessorPreset(presetName)
#reload the presets in again
R.loadPresets(presetPath)
#if the path is invalid, a warning error will appear
else:
msgBox = QMessageBox()
msgBox.setText("Task Presets could not be refreshed. Please check if the path set in refreshTaskPresets.py is valid: "+presetPath)
msgBox.exec()
def AddActionToMenu(event):
menu = event.menu
menu.addAction("Refresh Task Presets", lambda: refreshTaskPresets(event).trigger())
events.registerInterest((events.EventType.kShowContextMenu), AddActionToMenu)
यह स्क्रिप्ट पहले उदाहरण कोड को QAction के रूप में QWidget में जोड़कर काम करती है। फिर यह जाँचती है कि क्या उपयोगकर्ता द्वारा स्क्रिप्ट में सेट किए गए पथ ( presetPath ) में xml फ़ाइलें हैं और यदि हैं, तो टास्क प्रीसेट रीफ़्रेश हो जाते हैं। हालाँकि, यदि ऐसा नहीं है, तो उपयोगकर्ता को एक त्रुटि संदेश प्रदर्शित होता है।
आप इस स्क्रिप्ट को अपनी ~/.nuke/Python/Startup डायरेक्टरी में जोड़ सकते हैं और अब आपको अपने राइट-क्लिक मेनू पर " रिफ्रेश टास्क प्रीसेट्स" विकल्प दिखाई देगा। उदाहरण के लिए, यदि आप टाइमलाइन पर राइट-क्लिक करते हैं:
अग्रिम पठन
निम्नलिखित आलेख में आपके कार्य प्रीसेट XML फ़ाइलों को कहां खोजें, इसके बारे में अधिक जानकारी दी गई है:
Q100294: Nuke Studio और Hiero निर्यात प्रीसेट के लिए निर्देशिका स्थान
आप Nuke Studio और Hiero में पायथन स्टार्टअप स्क्रिप्ट का उपयोग करने के बारे में अधिक जानकारी निम्नलिखित लेख में पा सकते हैं: Q100142: स्टार्टअप पर NukeStudio में Hiero पायथन कोड कैसे निष्पादित करें
ग्लोब मॉड्यूल के बारे में अधिक जानकारी पायथन के दस्तावेज़ में पाई जा सकती है।
आप Nuke में PySide6 के साथ काम करने के बारे में कुछ जानकारी यहां पा सकते हैं, हालांकि, आपको अधिक जानकारी के लिए Qt for Python Documentation को देखना होगा।
हम चाहते हैं कि खेद व्यक्त करते हैं
कृपया हमें बताएँ कि