Q100439: Katana दृश्य को पूर्व-कॉन्फ़िगर करने के लिए स्टार्टअप के दौरान वैश्विक ग्राफ़ स्टेट वैरिएबल को कैसे संशोधित करें

सारांश

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

ग्राफ स्टेट वेरिएबल्स के बारे में जानकारी के लिए कृपया हमारी Katana उपयोगकर्ता गाइड देखें: ग्राफ स्टेट वेरिएबल्स

अधिक जानकारी

Katana के GUI में पायथन टैब के माध्यम से वैश्विक ग्राफ स्टेट वैरिएबल को कैसे सेट किया जाए, इसका एक उदाहरण निम्नलिखित है:

def AddGlobalGraphStateVariable(name, options):
variablesGroup = NodegraphAPI.GetRootNode().getParameter('variables')
variableParam = variablesGroup.createChildGroup(name)
variableParam.createChildNumber('enable', 1)
variableParam.createChildString('value', options[0])
optionsParam = variableParam.createChildStringArray('options', len(options))
for optionParam, optionValue in zip(optionsParam.getChildren(), options):
optionParam.setValue(optionValue, 0)
return variableParam.getName()

name = "Variable Name"
options = ('Option 1','Option 2','Option 3')
AddGlobalGraphStateVariable(name, options)

इंटरैक्टिव मोड में Katana लॉन्च करते समय स्वचालित रूप से पायथन स्क्रिप्ट चलाने के लिए, आप KATANA _RESOURCES पर्यावरण चर निर्देशिका पथ के UIPlugins फ़ोल्डर में पायथन स्क्रिप्ट को सहेज सकते हैं।

हालाँकि, किसी प्रोजेक्ट पर ग्राफ़ स्टेट वैरिएबल सेट करने के लिए, नोड ग्राफ़ का पूरी तरह से लोड होना ज़रूरी है ताकि प्रोजेक्ट सेटिंग्स वैरिएबल एडिट्स के लिए उपलब्ध हों। UIPlugins स्क्रिप्ट, Katana सेशन में नोड ग्राफ़ लोड होने से पहले चलती हैं और शुरुआत में ग्लोबल ग्राफ़ स्टेट वैरिएबल्स तक उनकी पहुँच नहीं होती।

इस समस्या को हल करने के लिए, UIPlugins स्क्रिप्ट में कॉलबैक की आवश्यकता होती है। कॉलबैक, Katana परिवेश में जोड़ा गया पायथन कोड का एक टुकड़ा होता है जो Katana में विभिन्न घटनाओं (जैसे नोड बनाना या स्क्रिप्ट लोड करना) के घटित होने पर स्वचालित रूप से चलता है। इस स्थिति में, हमें स्टार्टअप या प्रोजेक्ट लोड होने के तुरंत बाद वैश्विक ग्राफ़ स्टेट वैरिएबल सेट करने वाला फ़ंक्शन चलाने के लिए onStartupComplete या onSceneLoad कॉलबैक सेट करना होगा।

नीचे एक उदाहरण UIPlugins पायथन स्क्रिप्ट है जो Katana लॉन्च पर वैश्विक ग्राफ स्टेट वैरिएबल सेट करता है (यह भी संलग्न है):

from Katana import Callbacks
import logging

def onStartupComplete(**kwargs):
    log = logging.getLogger("Startup Example")
    import NodegraphAPI
    name = "Variable Name"
    options = ('Option 1','Option 2','Option 3')

    variablesGroup = NodegraphAPI.GetRootNode().getParameter('variables')
    variableParam = variablesGroup.createChildGroup(name)
    variableParam.createChildNumber('enable', 1)
    variableParam.createChildString('value', options[0])
    optionsParam = variableParam.createChildStringArray('options', len(options))
    for optionParam, optionValue in zip(optionsParam.getChildren(), options):
            optionParam.setValue(optionValue, 0)
    log.info("Katana is now fully initialized and ready for use.")

log = logging.getLogger("Startup Example")
log.info("Registering onStartupComplete callback...")
Callbacks.addCallback(Callbacks.Type.onStartupComplete, onStartupComplete)

अग्रिम पठन

आगे की सहायता

यदि आपके कोई और प्रश्न हैं, या आपको वैश्विक ग्राफ़ स्टेट वैरिएबल सेट करने के लिए स्टार्टअप स्क्रिप्ट का उपयोग करने में कोई समस्या आ रही है, तो कृपया एक सहायता टिकट खोलें और हमें अपनी समस्या और अब तक उठाए गए समस्या निवारण चरणों के बारे में बताएँ। कृपया Q100520: Foundry सहायता जाँच के दौरान भेजे जाने वाले हार्डवेयर विनिर्देशों हेतु ऑपरेटिंग सिस्टम रिपोर्ट प्राप्त करना में उल्लिखित सिस्टम जानकारी भी शामिल करें।

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

संलग्नक

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

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