एक टिकट बनाएं
अनुसरण करें

Q100195: NukeStudio / Hiero से Nuke स्क्रिप्ट निर्यात कैसे अनुकूलित करें

सारांश

वर्तमान में NukeStudio / Hiero से डिफ़ॉल्ट रूप से निर्यात किए गए नोड्स को बदलना संभव नहीं है, जब 'Export ..' विकल्प का उपयोग करके एक Nuke स्क्रिप्ट निर्यात करते हैं या 'Create Comp' या 'Create Comp Special ...' के माध्यम से Nuke स्क्रिप्ट बनाते हैं।

अधिक जानकारी

निर्यात समय पर, नोड्स जो Nuke स्क्रिप्ट में जोड़े जाते हैं, hiero.core.nuke.ScriptWriter वर्ग के माध्यम से बनाए जाते हैं। डिफ़ॉल्ट नोड्स को मैन्युअल रूप से बदलने के लिए आप इस वर्ग को ओवरराइड कर सकते हैं और आवश्यकतानुसार नोड नॉब्स को कस्टमाइज़ कर सकते हैं।

नीचे आप एक उदाहरण पा सकते हैं कि पढ़े गए नोड को कैसे अनुकूलित किया जा सकता है।

स्क्रिप्ट इसके द्वारा काम करती है:

1) मूल hiero.core.nuke.ScriptWriter वर्ग का इनहेरिट करना

2) AddNode () मेथड को Subclassing करना ताकि यह प्रत्येक नोड के लिए onNodeAdded () को कॉल करे

3) onNodeAdded () विधि को परिभाषित करना।
यह विधि परिभाषित करती है कि किन नोड्स पर लागू करने के लिए परिवर्तन होते हैं और आवश्यक नोड सेटिंग्स को अनुकूलित करने के लिए संपादित किया जा सकता है।

4) संपादित संस्करण के साथ मूल ScriptWriter को ओवरराइड करना।

संपादित संस्करण का उपयोग करने के लिए आपको पायथन स्क्रिप्ट को .nuke / Python / Startup पर सहेजना होगा। आपकी .nuke निर्देशिका को खोजने के बारे में जानकारी यहाँ पाई जा सकती है: Q100048: Nuke निर्देशिका स्थान

यदि पायथन और स्टार्टअप निर्देशिका पहले से ही आपके .nuke निर्देशिका में मौजूद नहीं हैं, तो आपको उन्हें मैन्युअल रूप से बनाने की आवश्यकता होगी।

"""
Example showing how to override the ScriptWriter class for a Studio/Hiero export
"""
 

import  hiero.core

OriginalScriptWriter = hiero.core.nuke.ScriptWriter

class   CustomScriptWriter (OriginalScriptWriter) :

 
def   __init__ (self) :
   OriginalScriptWriter.__init__(self)
   
 
def   addNode (self, node) :
   
# List of nodes that should actually be added to the script
   nodesToAdd = []
   
   
# node might actually be a list of nodes.  If it is, call onNodeAdded for each one
   
if  isinstance(node, hiero.core.nuke.Node):
     nodesToAdd.append( self.onNodeAdded(node) )
   
else :
     
try :
       
for  n in  node:
         nodesToAdd.append( self.onNodeAdded(n) )
     
except :
       
pass
       
   
# Call base class to add the node(s)
   OriginalScriptWriter.addNode(self, nodesToAdd)
   
 
def   onNodeAdded (self, node) :
   
""" Callback when a node is added. Return the node that should actually be added. """
   
if  node.type() == "Read" : # Change for the type of node you want to edit
     
# Make adjustments to all nodes of that type
     node.setKnob(
"on_error" , "black" ) # This sets each Read nodes missing frames to black
     node.setKnob(
"auto_alpha" , True ) # This sets each Read nodes missing frames to black

   
return  node
     
         
hiero .core.nuke.ScriptWriter = CustomScriptWriter

पायथन लिपि को नीचे दिए गए लिंक से डाउनलोड किया जा सकता है।

क्या यह लेख उपयोगी था?

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

कृपया हमें बताएँ कि
6 में से 6 के लिए उपयोगी रहा

टिप्पणियां