Q100465: Nuke के विभिन्न संस्करणों के लिए प्लगइन्स कैसे लोड करें

सारांश

यह आलेख दो अलग-अलग तरीकों की रूपरेखा प्रस्तुत करेगा कि आप Nuke के कई संस्करणों के लिए विभिन्न प्लगइन निर्देशिकाओं को कैसे लोड कर सकते हैं।

यदि आप एक साथ Nuke के कई अलग-अलग संस्करणों का उपयोग कर रहे हैं तो यह उपयोगी हो सकता है, क्योंकि आप पा सकते हैं कि कुछ तृतीय पक्ष प्लगइन्स आपके द्वारा उपयोग किए जा रहे Nuke के सभी संस्करणों के साथ संगत नहीं हैं।

Nuke 13.0v1 के बाद से, Python 2 अब समर्थित नहीं है इसलिए यह तब भी सहायक हो सकता है जब आप अपनी पायथन स्क्रिप्ट को पायथन 3.7 के साथ संगत बनाने के लिए अपडेट कर रहे हों, और यही सिद्धांत Nuke 16.0v1 में PySide2 से PySide6 में परिवर्तन के लिए पायथन कोड को अपडेट करते समय भी लागू होता है।

अधिक जानकारी

सबसे पहले, आपको अपने प्लगइन्स को प्रत्येक Nuke संस्करण के लिए अलग-अलग निर्देशिकाओं में सहेजना होगा। फिर आप Nuke लॉन्च होने पर लोड करने के लिए अतिरिक्त निर्देशिकाएँ जोड़ सकते हैं।

कोई भी प्लगइन जिसे आप केवल Nuke के विशिष्ट संस्करणों के लिए लोड करना चाहते हैं, उसे आपके स्थानीय ~/.nuke फ़ोल्डर के शीर्ष स्तर में नहीं जोड़ा जाना चाहिए, क्योंकि यह निर्देशिका हमेशा लोड होती है (जब तक कि आप सुरक्षित मोड में नहीं चल रहे हों)।

Nuke के विभिन्न संस्करणों के लिए प्लगइन्स लोड करने के लिए आप दो विधियों का उपयोग कर सकते हैं:

  1. पायथन स्टार्टअप स्क्रिप्ट बनाना 

    प्लगइन निर्देशिकाओं को Nuke के लिए pluginAddPath() विधि, या Nuke Studio और Hiero के लिए addPluginPath() विधि का उपयोग करके पायथन के माध्यम से जोड़ा जा सकता है।

  2. एक पर्यावरण चर आवरण स्क्रिप्ट बनाना

    वैकल्पिक रूप से, एक कस्टम रैपर स्क्रिप्ट का उपयोग Nuke , Nuke Studio , या Hiero के विशिष्ट संस्करणों को लॉन्च करने के लिए किया जा सकता है, जिसमें वांछित प्लगइन्स की ओर इंगित करने वाला एक पर्यावरण चर होता है।

इन दोनों विधियों के परिणामों के बीच मुख्य अंतर उनके मूल्यांकन क्रम में है pluginAddPath() का उपयोग करने पर निर्देशिकाएँ Nuke के प्लगइन पथ के आगे जुड़ जाएँगी, जबकि एक पर्यावरण चर का उपयोग करने पर निर्देशिका आपकी ~/.nuke निर्देशिका के बाद जुड़ जाएगी। निम्नलिखित स्क्रिप्ट संपादक में nuke .pluginPath() चलाने का एक उदाहरण है, जिसमें Nuke के प्लगइन पथ में दो निर्देशिकाएँ जोड़ी गई हैं, एक पायथन के माध्यम से जोड़ी गई है और एक पर्यावरण चर के साथ सेट की गई है:

आप किस विधि का उपयोग करना चाहते हैं, यह आपके वर्तमान पाइपलाइन वातावरण और आपके प्लगइन्स पर निर्भर रहने वाली किसी भी निर्भरता पर निर्भर करेगा।


पायथन स्टार्टअप स्क्रिप्ट बनाना

अपनी init.py फ़ाइल का उपयोग करके , आप यह निर्धारित कर सकते हैं कि किसी दिए गए Nuke संस्करण के लिए लॉन्च पर कौन सा प्लगइन पथ लोड किया जाए।

यहां पायथन कोड का एक उदाहरण दिया गया है जो यह जांच करेगा कि आपने Nuke 13 या Nuke 16 लॉन्च किया है या नहीं और तदनुसार प्लगइन पथ लोड करेगा:

import nuke 

if nuke .NUKE_VERSION_MAJOR==16:
nuke .pluginAddPath(" /path/to/plugins/folder/ nuke 16 ")

if nuke .NUKE_VERSION_MAJOR==13:
nuke .pluginAddPath(" /path/to/plugins/folder/ nuke 13 ")


उपरोक्त कोड केवल आपके द्वारा चलाए जा रहे Nuke के मुख्य संस्करण (Nuke 13, Nuke 16, आदि) की जाँच करेगा, लेकिन and स्टेटमेंट और NUKE _MINOR_VERSION का उपयोग करके, आप अधिक विशिष्ट रूप से बता सकते हैं कि कौन से Nuke संस्करण कुछ प्लगइन्स लॉन्च करेंगे। उदाहरण के लिए, यदि संस्करण मेल खाता है, तो प्लगइन पथ लोड करने से पहले निम्न कोड जाँच करेगा कि क्या Nuke संस्करण 15.1 है:

import nuke 

if nuke .NUKE_VERSION_MAJOR==15 and nuke .NUKE_VERSION_MINOR==1:
nuke .pluginAddPath(" /path/to/plugins/folder/ nuke 151 ")


आप NUKE _VERSION_STRING का उपयोग करके भी पूर्ण Nuke संस्करण की जांच कर सकते हैं, जैसे:

import nuke 

if nuke .NUKE_VERSION_STRING=="16.0v4":
nuke .pluginAddPath(" /path/to/plugins/folder/ nuke 160v4 ")

Nuke Studio और Hiero

Nuke के लिए प्लगइन पथ बनाने के समान, Nuke Studio और Hiero के लिए आप एक if स्टेटमेंट लिखकर ऐसा कर सकते हैं जो यह जांचता है कि Nuke Studio / Hiero का कौन सा संस्करण लॉन्च किया गया है और तदनुसार प्लगइन पथ लोड करता है।

हालाँकि, इस कोड को अपनी ~/.nuke/init.py फ़ाइल में जोड़ने के बजाय, इसे अपनी ~/.nuke/Python/Startup या ~/.nuke/Python/StartupUI निर्देशिकाओं के अंदर एक .py फ़ाइल में सहेजना होगा। Nuke Studio और Hiero में प्लगइन पथ जोड़ने के बारे में अधिक जानकारी आपको निम्नलिखित लेख में मिल सकती है: Q100373: Nuke Studio और Hiero में अतिरिक्त प्लगइन पथ कैसे जोड़ें

नोट: आपके द्वारा लोड की जा रही अतिरिक्त निर्देशिकाओं में भी आपके ~/.nuke फ़ोल्डर के समान /Python/Startup या /Python/StartupUI फ़ोल्डर संरचना होनी चाहिए।

Nuke Studio / Hiero 13 या 16 के लिए लोड किए जाने वाले विभिन्न प्लगइन पथों को सेट करने के लिए निम्नलिखित एक उदाहरण है:

import hiero 
from hiero .core import env

if env["VersionMajor"]==16:
# scripts saved in /path/to/plugins/folder/ hiero 16/Python/Startup
hiero .core.addPluginPath("/path/to/plugins/folder/ hiero 16")

if env["VersionMajor"]==13:
# scripts saved in /path/to/plugins/folder/ hiero 13/Python/Startup
hiero .core.addPluginPath("/path/to/plugins/folder/ hiero 13")


Nuke की तरह, आप env["VersionMinor"] and स्टेटमेंट के साथ इस्तेमाल करके मेजर और माइनर वर्जन के लिए प्लगइन पथ निर्धारित कर सकते हैं। उदाहरण के लिए, निम्न कोड सभी Nuke Studio / Hiero 15.1 वर्जन के लिए प्लगइन पथ लोड करेगा:

import hiero 
from hiero .core import env

if env["VersionMajor"]==15 and env["VersionMinor"]==1:
# scripts saved in /path/to/plugins/folder/ hiero 151/Python/Startup
hiero .core.addPluginPath(" /path/to/plugins/folder/ hiero 151 ")

आप env["VersionString"] उपयोग करके सटीक संस्करण के आधार पर प्लगइन्स भी लोड कर सकते हैं। हालाँकि, कृपया ध्यान दें कि env["VersionString"] के परिणाम में उत्पाद का नाम भी शामिल होता है (उदाहरण के लिए "Hiero 16.0v4" या "NukeStudio 16.0v4" )।

import hiero 
from hiero .core import env

if env["VersionString"].endswith("16.0v4"):
# scripts saved in /path/to/plugins/folder/ hiero 160v4/Python/Startup
hiero .core.addPluginPath("/path/to/plugins/folder/ hiero 160v4")

एक पर्यावरण चर आवरण स्क्रिप्ट बनाना

एक रैपर स्क्रिप्ट सिस्टम कमांड या यूटिलिटीज़ को एक निष्पादन योग्य फ़ाइल में एम्बेड करती है, जिससे आप कमांड लाइन में दोबारा टाइप किए बिना, कमांड को बार-बार इनवोक कर सकते हैं। इस स्थिति में, आप NUKE _PATH एनवायरनमेंट वैरिएबल सेट कर सकते हैं और एप्लिकेशन लॉन्च कर सकते हैं। रैपर स्क्रिप्ट के माध्यम से एनवायरनमेंट वैरिएबल सेट करने का अर्थ है कि कमांड केवल उस सक्रिय कमांड लाइन सत्र के लिए सक्षम हैं और यह आपके सिस्टम पर स्थायी रूप से सेट नहीं है।

रैपर स्क्रिप्ट को आपकी मशीन पर कहीं भी सेव किया जा सकता है और टर्मिनल में चलाकर निष्पादित किया जा सकता है। आप इन फ़ाइलों को डिफ़ॉल्ट रूप से टर्मिनल में खोलने के लिए भी सेट कर सकते हैं ताकि आप उन पर डबल क्लिक करके उन्हें निष्पादित कर सकें।

macOS और Linux के रैपर स्क्रिप्ट में बहुत समान कमांड होते हैं, लेकिन Nuke एप्लिकेशन डायरेक्टरी दोनों ऑपरेटिंग सिस्टम के बीच सबसे बड़ा अंतर है। प्रत्येक ऑपरेटिंग सिस्टम पर Nuke 16.0v4 के लिए स्क्रिप्ट के उदाहरण नीचे दिए गए हैं:

टिप: यही सिद्धांत Nuke Studio और Hiero पर भी लागू होता है, जिसे इन स्क्रिप्ट में --hiero या --studio लॉन्च फ्लैग जोड़कर लॉन्च किया जा सकता है।

मैक ओएस:

#! /bin/bash
export NUKE _PATH=/path/to/some/folder/
/Applications/ Nuke 16.0v4/ Nuke 16.0v4.app/Contents/MacOS/ Nuke 16.0

लिनक्स:

#! /bin/sh
export NUKE _PATH=/path/to/some/folder/
/usr/local/ Nuke 16.0v4/ Nuke 16.0

यह विंडोज़ से काफ़ी अलग है, जहाँ आपको एक स्क्रिप्ट बनानी होगी जो विंडोज़ कमांड प्रॉम्प्ट में कमांड चलाए। ऐसा करने के लिए, आप एक बैच फ़ाइल (. bat ) बना सकते हैं जिसमें निम्नलिखित कमांड हों:

विंडोज़:

set NUKE _PATH=\path\to\some\folder
"C:\Program Files\Nuke16.0v4\Nuke16.0.exe"

नोट: आप इस आलेख के साथ संलग्न प्रत्येक ऑपरेटिंग सिस्टम के लिए उदाहरण रैपर स्क्रिप्ट भी पा सकते हैं।

अग्रिम पठन

Nuke में प्लगइन्स लोड करने के बारे में अधिक जानकारी हमारे दस्तावेज़ के निम्नलिखित पृष्ठों में पाई जा सकती है:


उदाहरण फ़ाइलें

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

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