सारांश
कई इनपुट (जैसे मर्ज, स्विच, या वेरिएबलस्विच नोड्स) वाले नोड्स सेट करते समय, प्रत्येक इनपुट पोर्ट का नाम बदलना उपयोगी हो सकता है ताकि यह पता चल सके कि किस प्रकार का नोड उससे अपस्ट्रीम में जुड़ा है। हालाँकि, पोर्ट का मैन्युअल रूप से नाम बदलना थकाऊ हो सकता है।
इस आलेख का उद्देश्य Q100372: स्पष्ट कनेक्शन के लिए पायथन के साथ इनपुट और आउटपुट पोर्ट का नाम कैसे बदलें में दिए गए उदाहरणों पर निर्माण करना है और उपयोगकर्ता-परिभाषित श्रेणियों के माध्यम से मर्ज नोड में इनपुट पोर्ट का नाम बदलने की कार्यक्षमता प्रदान करना है।
अधिक जानकारी
Katana टेम्पलेट बनाते समय, टेम्पलेट के प्रवाह को समझना आसान होता है यदि इनपुट पोर्ट उस नोड की श्रेणी प्रदर्शित करते हैं जिससे वे अपस्ट्रीम से जुड़े हैं।
मर्ज नोड के डिफ़ॉल्ट व्यवहार का उपयोग करते समय, बनाए गए इनपुट को i0, i1, i2, आदि नाम दिया जाता है। यह नामकरण परंपरा अपस्ट्रीम से जुड़े नोड्स के बारे में कोई जानकारी प्रदान नहीं करती है।
मर्ज नोड के डिफ़ॉल्ट पोर्ट नामों का उपयोग करने के बजाय, आप एक कस्टम पायथन सेटअप बना सकते हैं जो कनेक्टेड नोड्स की श्रेणी के आधार पर मर्ज नोड इनपुट पोर्ट का नाम बदल देता है (उदाहरण के लिए, कैमराक्रिएट नोड से कनेक्ट होने पर मर्ज नोड इनपुट पोर्ट "कैमरा" होगा, नेटवर्कमटेरियल नोड के लिए यह "मटेरियल" होगा)।
उदाहरण के तौर पर, मर्ज नोड में कार्यक्षमता जोड़ने के लिए निम्नलिखित इनपुट पोर्ट नामों का उपयोग किया जा सकता है, जिससे अपस्ट्रीम सेटअप को आसानी से समझा जा सकेगा:
जैसा कि ऊपर दी गई छवि में दिखाया गया है, मर्ज नोड के इनपुट पोर्ट का नाम प्रत्येक इनपुट से जुड़े नोड्स की श्रेणी के अनुसार बदला जाता है।
उदाहरण स्क्रिप्ट
इस लेख के साथ एक पायथन उदाहरण स्क्रिप्ट संलग्न है जिसे डाउनलोड किया जा सकता है और आपकी स्टूडियो आवश्यकताओं के लिए संशोधित किया जा सकता है।
स्क्रिप्ट को काम करने के लिए आपको संलग्न फ़ाइल को अपने .katana/Shelves फ़ोल्डर स्थान में जोड़ना होगा, उदाहरण के लिए:
विंडोज़: C:\Users\USERNAME\.katana\Shelves\RenameShelf\Type_Merge.py
लिनक्स: /mnt/nethome/users/USERNAME/.katana/Shelves/RenameShelf/Type_Merge.py
शेल्फ स्क्रिप्ट पर अधिक जानकारी के लिए कृपया निम्नलिखित लेख देखें:
Q100401: आसानी से सुलभ कस्टम पायथन स्क्रिप्ट प्रदान करने के लिए Katana में शेल्फ आइटम कैसे बनाएं
Q100402: मौजूदा कस्टम पायथन स्क्रिप्ट को संशोधित करने के लिए Katana में शेल्फ आइटम को कैसे संपादित और हटाया जाए
स्क्रिप्ट का उपयोग करना
Katana के भीतर इस कस्टम स्क्रिप्ट का परीक्षण करने के लिए आपको नोड्स का चयन करना होगा (उदाहरण के लिए कैमराक्रिएट, पोनीक्रिएट और एक मटेरियल नोड)।
नोड्स बन जाने के बाद, उन सभी का चयन करें और कीबोर्ड शॉर्टकट Ctrl+M का उपयोग करके कस्टम शेल्फ आइटम स्क्रिप्ट का उपयोग करके नोड्स को मर्ज करें। वैकल्पिक रूप से, स्क्रिप्ट को सहायता के बगल में स्थित कॉग आइकन पर जाकर और शेल्फ के अंतर्गत, RenameShelf शेल्फ क्रिया और Type_Merge शेल्फ आइटम का चयन करके भी एक्सेस किया जा सकता है।
जैसा कि ऊपर उदाहरण छवि में दिखाया गया है, मर्ज नोड इनपुट पोर्ट्स को नोड की श्रेणी के अनुसार नामित किया जाएगा, जिससे वे जुड़े हुए हैं, जैसा कि शेल्फ आइटम स्क्रिप्ट में परिभाषित किया गया है।
यह टूल कई श्रेणियां भी जोड़ सकता है। उदाहरण के लिए, 'PrmanCameraSettings' नोड के मर्ज पोर्ट का नाम 'Prman_Camera_Settings' होगा।
कनेक्शन स्थापित करने, शेल्फ आइटम और सुपरटूल्स बनाने के बारे में अधिक जानकारी के लिए, कृपया नीचे दिए गए लिंक का उपयोग करके Katana उपयोगकर्ता गाइड और Katana डेवलपर गाइड देखें:
पायथन नोड्स को जोड़ना: Katana डेवलपर गाइड - नोड्स के साथ कार्य करना - नोड्स को जोड़ना
शेल्फ स्क्रिप्ट: Katana उपयोगकर्ता गाइड - Katana में स्क्रिप्टिंग और प्रोग्रामिंग - शेल्फ आइटम स्क्रिप्ट
सुपरटूल्स: Katana उपयोगकर्ता गाइड - समूह, मैक्रोज़ और सुपरटूल्स - सुपरटूल्स
स्क्रिप्ट स्पष्टीकरण
परिभाषाएँ और लाइब्रेरी वैरिएबल सेट अप करने के बाद, स्क्रिप्ट चयनित नोड्स (पंक्ति 80) को एकत्रित करके शुरू होती है। यह डेटा एकत्रित हो जाने पर, नया मर्ज नोड बनाया जाता है।
Q100372: स्पष्ट कनेक्शन के लिए पायथन के साथ इनपुट और आउटपुट पोर्ट का नाम कैसे बदलें स्क्रिप्ट उदाहरण के साथ, पंक्ति 87 से, चयनित नोड्स को एक फॉर लूप में प्रत्येक चयनित नोड के माध्यम से पुनरावृति करके नव निर्मित मर्ज नोड से जोड़ा जाता है, जो चयनित नोड्स के सभी आउटपुट पोर्ट प्राप्त करता है।
यह स्क्रिप्ट Q100372: स्पष्ट कनेक्शन के लिए पायथन के साथ इनपुट और आउटपुट पोर्ट का नाम कैसे बदलें लेख में दिए गए उदाहरण से भिन्न है, जिसमें इनपुट पोर्ट जोड़ने से पहले विशिष्ट नोड्स के लिए उपयोगकर्ता द्वारा परिभाषित शब्दकोशों की समीक्षा करने के लिए एक नया फ़ंक्शन checkDictionary() कॉल किया जाता है।
कस्टम शब्दकोश (पंक्ति 18 से पंक्ति 44), मौजूदा नोड नामों (जैसे प्रिमिटिवक्रिएट) या नोड नामों में संभावित भागों (जैसे कैमरा) से मिलान करने के लिए शब्दकोश मानों का उपयोग करते हैं, जिसमें इनपुट पोर्ट का नाम बदलने के लिए नोड श्रेणी कुंजियों का उपयोग किया जाता है।
लाइन 24 पर MergeType कस्टम शब्दकोश इस प्रकार है:
उदाहरण के लिए, ऊपर दी गई शब्दकोश कुंजियों के अनुसार, एक PrimitiveCreate नोड के आउटपुट को उसके नोड श्रेणी मैपिंग के आधार पर 'Geometry' नाम दिया जाएगा:
checkDictionary() फ़ंक्शन इन शब्दकोशों में पुनरावृति करता है और यह पता लगाने का प्रयास करता है कि क्या कोई कुंजी चयनित नोड के प्रकार से मेल खाती है। जब किसी नोड का प्रकार किसी कुंजी से मेल खाता है, तो कुंजी को 'mergeLabel' नामक एक चर में जोड़ दिया जाता है, जिसका उपयोग इनपुट पोर्ट के नाम के रूप में किया जाता है।
उदाहरण के तौर पर, अर्नोल्डकैमरासेटिंग्स नोड 3 कुंजियों को पकड़ेगा और उन्हें एक के बाद एक जोड़ेगा, जैसे:
अंतिम इनपुट पोर्ट नाम में नाम घटकों को जोड़ने का क्रम checkDictionary() का उपयोग करके श्रेणी शब्दकोशों की जाँच के क्रम से निर्धारित होता है:
यदि ऊपर दिखाए गए checkDictionary() के कॉल को स्विच किया गया, तो इनपुट पोर्ट का नाम “Arnold_Camera_Settings” के बजाय “Camera_Settings_Arnold” होगा।
शब्दकोश स्वरूपण के बाद, आप अपना स्वयं का कस्टम शब्दकोश जोड़ सकते हैं और इनपुट पोर्ट नाम में आगे के घटक जोड़ने के लिए checkDictionary() कॉल कर सकते हैं।
एक बार सभी इनपुट पोर्ट जोड़ दिए जाने के बाद, नया मर्ज नोड चयनित नोड के रूप में सेट हो जाता है और Q100402 में चर्चा किए गए कार्यों के माध्यम से नोड ग्राफ टैब में तैरता है: मौजूदा कस्टम पायथन स्क्रिप्ट को संशोधित करने के लिए Katana में शेल्फ आइटम को कैसे संपादित और हटाएं
मर्ज नोड को फ्लोट करने से नया नोड बनाने जैसा ही व्यवहार प्राप्त होता है।
नोट: स्क्रिप्ट पर अधिक स्पष्टीकरण के लिए कृपया स्क्रिप्ट में सहायता टिप्पणियों की समीक्षा करें।
संलग्नक
हम चाहते हैं कि खेद व्यक्त करते हैं
कृपया हमें बताएँ कि