Q100248: Nuke के कॉलबैक के साथ Python फ़ंक्शंस को स्वचालित रूप से कैसे कॉल करें

अनुसरण करें

सारांश

यह आलेख समझाएगा कि Nuke में कॉलबैक कैसे सेट करें और कॉलबैक के लिए उपयोग करने के लिए सही पायथन कमांड कैसे ढूंढें।

उपलब्ध कॉलबैक और उदाहरणों की पूरी सूची Nuke पायथन डेवलपर गाइड में पाई जा सकती है।

अधिक जानकारी

कॉलबैक Nuke एनवायरनमेंट में जोड़ा गया कोड का एक टुकड़ा है जो Nuke में विभिन्न घटनाओं (जैसे नोड बनाना या स्क्रिप्ट लोड करना) होने पर स्वचालित रूप से पायथन फ़ंक्शन को कॉल करता है।

यह कई स्थितियों में उपयोगी है, उदाहरण के लिए नोड बनाते समय नॉब मानों के लिए प्राथमिकताएं सेट करना, स्क्रिप्ट के वृद्धिशील संस्करणों को स्वचालित रूप से सहेजना, या नया प्रोजेक्ट सेट करते समय प्रोजेक्ट सेटिंग्स बदलना।

नीचे आप कॉलबैक बनाने के तरीके का एक उदाहरण पा सकते हैं जो एक राइट नोड के "फ़ाइल प्रकार" को एक्सआर पर सेट करेगा और Nuke में प्रत्येक नए बनाए गए राइट नोड्स पर "फ़ाइल" पथ को एक अस्थायी स्थान पर सेट करेगा।

कॉलबैक सेट अप करने के लिए, कृपया निम्नलिखित कदम उठाएं (कृपया प्रत्येक चरण पर अधिक जानकारी के लिए आगे पढ़ें):

  1. यह सुनिश्चित करने के लिए कि वे सही ढंग से काम करते हैं, Nuke के स्क्रिप्ट एडिटर में कमांड का परीक्षण करें
  2. अपने कॉलबैक फ़ंक्शन को परिभाषित करें, इसे कॉलबैक के रूप में जोड़ें, और इसे .nuke फ़ोल्डर के अंदर init.py में सहेजें
  3. अगली बार जब Nuke खुलेगा, तो निर्दिष्ट घटना होने पर कॉलबैक निष्पादित किया जाएगा


1. यह सुनिश्चित करने के लिए कि वे सही ढंग से काम करते हैं, Nuke के स्क्रिप्ट एडिटर में कमांड का परीक्षण करें

कॉलबैक बनाने के लिए, पहले Nuke सत्र के अंदर स्क्रिप्ट एडिटर में पायथन कमांड का परीक्षण करना अक्सर सहायक होता है। आप Nuke पायथन डेवलपर गाइड और Nuke पायथन एपीआई संदर्भ में उपलब्ध पायथन एपीआई कमांड के बारे में अधिक जानकारी पा सकते हैं

स्क्रिप्टिंग के लिए नोड के नॉब के नाम आमतौर पर नॉब के ऊपर मँडराते समय प्रदर्शित लेबल में पाए जा सकते हैं।

उदाहरण के लिए, राइट नोड में "फ़ाइल" नॉब को "फ़ाइल" का उपयोग करके स्क्रिप्टिंग के लिए संदर्भित किया जा सकता है, और "फ़ाइल प्रकार" नॉब को "फ़ाइल_टाइप" के माध्यम से स्क्रिप्टिंग के लिए संदर्भित किया जा सकता है:



किसी विशेष नॉब का वर्तमान मान प्राप्त करने के लिए, उदाहरण के लिए "फ़ाइल प्रकार", स्क्रिप्ट एडिटर में निम्नलिखित कमांड चलाएँ:

node = nuke .toNode(“Write1”)
# replace Write1 with the name of your Write node if it is different

print(node["file_type"].getValue())

यह निम्नलिखित को कंसोल पर प्रिंट करेगा:

# node = nuke .toNode("Write1")
# print(node["file_type"].getValue())
# Result: 2.0

इस मामले में, 2.0 फ़ाइल प्रकारों की ड्रॉपडाउन सूची में " dpx " का सूचकांक है। पायथन के माध्यम से "फ़ाइल प्रकार" को " एक्सआर " में बदलने के लिए, स्क्रिप्ट एडिटर में निम्नलिखित कमांड दर्ज करें:

node["file_type"].setValue(3)

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

node["file"].setValue("/tmp/test.####.exr")

2. अपने कॉलबैक फ़ंक्शन को परिभाषित करें, इसे कॉलबैक के रूप में जोड़ें, और इसे .nuke फ़ोल्डर के अंदर init.py में सहेजें
उन सभी क्रियाओं को परिभाषित करें जिन्हें आप चाहते हैं कि आपका कॉलबैक एक ही पायथन फ़ंक्शन में प्रदर्शन करे और इस फ़ंक्शन को OnUserCreate कॉलबैक के रूप में जोड़ें, जैसा कि नीचे दिए गए उदाहरण कोड में दिखाया गया है:

import nuke 

def writeSettings():
node = nuke .thisNode()
node["file_type"].setValue(3)
node["file"].setValue("/tmp/test.####.exr")

# add callback to execute this every time a Write node is created
nuke .addOnUserCreate(writeSettings, nodeClass="Write")


इसे कॉपी करके टेक्स्ट एडिटर में पेस्ट करें और फ़ाइल को सेव करें।

फ़ाइल का नाम बदलकर init.py कर दें और सुनिश्चित करें कि जब आप ऐसा करते हैं तो फ़ाइल एक्सटेंशन आपके फ़ाइल ब्राउज़र में दिखाए जाएं, यह सत्यापित करने के लिए कि फ़ाइल एक्सटेंशन .py है , न कि .txt या अन्य।


इस फ़ाइल को आपके .nuke फ़ोल्डर में रखा जाना चाहिए, जो पहला स्थान है जहां Nuke स्टार्टअप पर प्लग-इन की तलाश करेगा। कृपया अपने .nuke फ़ोल्डर का पता लगाने के लिए इस आलेख को देखें: Q100048: Nuke निर्देशिका स्थान

3. अगली बार जब Nuke खुलेगा, तो निर्दिष्ट घटना होने पर कॉलबैक निष्पादित किया जाएगा

आपके ऐसा करने के बाद, कॉलबैक को Nuke वातावरण में जोड़ दिया जाएगा और अगली बार जब आप एप्लिकेशन लॉन्च करेंगे और नए राइट नोड बनाएंगे, तो इनमें "फ़ाइल" और "फ़ाइल प्रकार" सेटिंग्स लागू होंगी।

ध्यान दें: यदि आप चाहते हैं कि किसी विशेष वर्ग के प्रत्येक नोड पर विशिष्ट सेटिंग्स लागू की जाएं, साथ ही पुरानी, सहेजी गई स्क्रिप्ट से लोड की गई सेटिंग्स, तो आप nuke .addOnUserCreate के बजाय nuke .addOnCreate कॉलबैक का उपयोग कर सकते हैं।


अतिरिक्त सहायता

यदि आप अपने कॉलबैक सेट करने में किसी समस्या का सामना कर रहे हैं, तो कृपया एक सहायता टिकट खोलें और हमें बताएं कि आप किस समस्या का सामना कर रहे हैं और आपने अब तक क्या समस्या निवारण कदम उठाए हैं।

समर्थन टिकट कैसे खोलें के बारे में अधिक जानकारी के लिए, कृपया समर्थन टिकट कैसे जुटाएं लेख देखें।

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

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