सारांश
यह आलेख बताएगा कि Nuke में कॉलबैक कैसे सेट किया जाए और कॉलबैक के लिए उपयोग करने हेतु सही पायथन कमांड कैसे खोजें।
उपलब्ध कॉलबैक और उदाहरणों की पूरी सूची Nuke पायथन डेवलपर गाइड में पाई जा सकती है।
अधिक जानकारी
कॉलबैक, Nuke वातावरण में जोड़ा गया कोड का एक टुकड़ा है जो Nuke में विभिन्न घटनाओं (जैसे नोड बनाना या स्क्रिप्ट लोड करना) के घटित होने पर स्वचालित रूप से पायथन फ़ंक्शन को कॉल करता है।
यह कई स्थितियों में उपयोगी है, उदाहरण के लिए नोड बनाते समय नॉब मानों के लिए प्राथमिकताएं निर्धारित करना, स्क्रिप्ट के वृद्धिशील संस्करणों को स्वचालित रूप से सहेजना, या नया प्रोजेक्ट सेट करते समय प्रोजेक्ट सेटिंग्स बदलना।
नीचे आप एक कॉलबैक बनाने का उदाहरण पा सकते हैं जो Nuke में प्रत्येक नए बनाए गए Write नोड के लिए Write नोड के "फ़ाइल प्रकार" को EXR पर सेट करेगा और "फ़ाइल" पथ को एक अस्थायी स्थान पर सेट करेगा।
कॉलबैक सेट अप करने के लिए, कृपया निम्नलिखित चरण अपनाएं (प्रत्येक चरण के बारे में अधिक जानकारी के लिए कृपया आगे पढ़ें):
- यह सुनिश्चित करने के लिए कि वे सही ढंग से काम करते हैं, Nuke के स्क्रिप्ट संपादक में कमांड का परीक्षण करें
- अपना कॉलबैक फ़ंक्शन परिभाषित करें, इसे कॉलबैक के रूप में जोड़ें, और इसे .nuke फ़ोल्डर के अंदर init.py में सहेजें
- अगली बार जब Nuke खुलेगा, तो निर्दिष्ट घटना घटित होने पर कॉलबैक निष्पादित किया जाएगा
1. यह सुनिश्चित करने के लिए कि वे सही ढंग से काम करते हैं, Nuke के स्क्रिप्ट एडिटर में कमांड का परीक्षण करें
कॉलबैक बनाने के लिए, पहले Nuke सत्र के अंदर स्क्रिप्ट एडिटर में पायथन कमांड का परीक्षण करना अक्सर मददगार होता है। उपलब्ध पायथन API कमांड के बारे में अधिक जानकारी आपको Nuke पायथन डेवलपर गाइड और Nuke पायथन API संदर्भ में मिल सकती है ।
स्क्रिप्टिंग के लिए नोड के नॉब के नाम आमतौर पर नॉब पर माउस घुमाने पर प्रदर्शित लेबल में पाए जा सकते हैं।
उदाहरण के लिए, Write नोड में "file" नॉब को file उपयोग करके स्क्रिप्टिंग के लिए संदर्भित किया जा सकता है, और "file type" नॉब को file_type के माध्यम से स्क्रिप्टिंग के लिए संदर्भित किया जाता है:
किसी विशेष नॉब का वर्तमान मान प्राप्त करने के लिए, उदाहरण के लिए file_type , स्क्रिप्ट संपादक में निम्नलिखित कमांड चलाएँ:
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 " का सूचकांक है। पायथन के माध्यम से file_type को " exr " में बदलने के लिए, स्क्रिप्ट संपादक में निम्न आदेश दर्ज करें:
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 निर्देशिका का पता लगाना
init.py फ़ाइल और इसकी कार्यक्षमता के बारे में अतिरिक्त जानकारी के लिए, कृपया निम्नलिखित लेख देखें: Q100490: init.py और menu.py स्टार्टअप स्क्रिप्ट फ़ाइलें क्या हैं
3. अगली बार जब Nuke खुलेगा, तो निर्दिष्ट घटना घटित होने पर कॉलबैक निष्पादित किया जाएगा
ऐसा करने के बाद, कॉलबैक Nuke वातावरण में जोड़ दिया जाएगा और अगली बार जब आप एप्लिकेशन लॉन्च करेंगे और नए Write नोड्स बनाएंगे, तो उनमें file और file_type सेटिंग्स लागू होंगी।
नोट: यदि आप चाहते हैं कि किसी विशेष वर्ग के प्रत्येक नोड पर विशिष्ट सेटिंग्स लागू हों, जिनमें सहेजे गए स्क्रिप्ट को खोलते समय लोड की गई सेटिंग्स भी शामिल हैं, तो आप nuke .addOnUserCreate के बजाय nuke .addOnCreate कॉलबैक का nuke कर सकते हैं।
आगे की सहायता
यदि आपको अपने कॉलबैक सेट अप करने में कोई समस्या आ रही है, तो कृपया एक सपोर्ट टिकट खोलें और हमें बताएं कि आपको क्या समस्या आ रही है और आपने अब तक क्या समस्या निवारण कदम उठाए हैं।
समर्थन टिकट खोलने के तरीके के बारे में अधिक जानकारी के लिए, कृपया समर्थन टिकट कैसे खोलें लेख देखें ।
हम चाहते हैं कि खेद व्यक्त करते हैं
कृपया हमें बताएँ कि