Q100487: सक्रिय Nuke Studio / Hiero सत्र के भीतर टास्क प्रीसेट को रीफ्रेश कैसे करें

अनुसरण करें

सारांश

यह लेख इस बात की रूपरेखा तैयार करेगा कि आप एक सक्रिय Nuke Studio / Hiero सत्र के भीतर अपने टास्क प्रीसेट को कैसे ताज़ा कर सकते हैं।

अधिक जानकारी

डिफ़ॉल्ट रूप से, Nuke Studio और Hiero एप्लिकेशन के पुनरारंभ होने के बाद ही अपने टास्क प्रीसेट को रीफ्रेश करेंगे। हालाँकि, पायथन का उपयोग करके, आप किसी साझा स्थान पर सहेजे गए पहले से मौजूद टास्क प्रीसेट को फिर से लोड करने में सक्षम हैं या तुरंत अपनी टास्क प्रीसेट निर्देशिका में नए जोड़ सकते हैं। इसे कैसे प्राप्त किया जा सकता है इसका एक सरल उदाहरण निम्नलिखित है:

 #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/14.0/ is the path to your Export Presets
R.loadPresets("~/.nuke/TaskPresets/14.0")

 उपरोक्त कोड केवल वर्तमान में लोड किए गए टास्क प्रीसेट की एक सूची ढूंढकर काम करता है और उन्हें हटा देता है , इससे उन्हें hiero .exporters.registry.loadPresets() के साथ फिर से लोड होने पर डुप्लिकेट होने से रोका जा सकेगा।

उपरोक्त कोड को वैसे ही काम करने के लिए, जब भी आप अपने टास्क प्रीसेट को रीफ्रेश करना चाहें तो इसे स्क्रिप्ट एडिटर में चलाने की आवश्यकता होगी। हालाँकि, आप कोड को एक बटन या विजेट में लपेटकर इस पर काम कर सकते हैं। उदाहरण के लिए, निम्नलिखित कोड इसे राइट-क्लिक मेनू में जोड़ देगा:

 import hiero .core, hiero .ui, nuke 
from PySide2 import QtWidgets
from PySide2.QtWidgets import QMessageBox
from hiero .core import events
import glob

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 = "~/.nuke/TaskPresets/14.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)

यह स्क्रिप्ट QWidget में QAction के रूप में पहला उदाहरण कोड जोड़कर काम करती है। इसके बाद यह जाँचता है कि क्या उपयोगकर्ता द्वारा स्क्रिप्ट में निर्धारित पथ ( presetPath ) में xml फ़ाइलें हैं और, यदि ऐसा होता है, तो टास्क प्रीसेट ताज़ा हो जाते हैं, हालाँकि, यदि ऐसा नहीं होता है, तो उपयोगकर्ता को चेतावनी देने के लिए एक त्रुटि संदेश प्रदर्शित होता है।

आप इस स्क्रिप्ट को अपनी ~/.nuke/Python/Startup निर्देशिका में जोड़ सकते हैं और अब आपको अपने राइट क्लिक मेनू पर 'रिफ्रेश टास्क प्रीसेट' विकल्प देखने में सक्षम होना चाहिए। उदाहरण के लिए, यदि आप टाइमलाइन पर राइट क्लिक करते हैं:

अग्रिम पठन

निम्नलिखित आलेख में इस बारे में अधिक जानकारी है कि आपकी टास्क प्रीसेट XML फ़ाइलें कहां खोजें: Q100294: Nuke Studio और Hiero निर्यात प्रीसेट के लिए निर्देशिका स्थान

आप Nuke Studio और Hiero में Python स्टार्टअप स्क्रिप्ट का उपयोग करने के बारे में अधिक जानकारी निम्नलिखित लेख में पा सकते हैं: Q100142: स्टार्टअप पर NukeStudio में Hiero Python कोड कैसे निष्पादित करें

ग्लोब मॉड्यूल के बारे में अधिक जानकारी पायथन के दस्तावेज़ में पाई जा सकती है।

आप Nuke में PySide2 के साथ काम करने के बारे में कुछ जानकारी यहाँ पा सकते हैं , हालाँकि, आपको अधिक जानकारी के लिए Python दस्तावेज़ीकरण के लिए Qt का संदर्भ लेना होगा।

    हम चाहते हैं कि खेद व्यक्त करते हैं

    कृपया हमें बताएँ कि