サポートチケットを作成する
フォローする

Q100195:NukeStudio / HieroからNukeスクリプトのエクスポートをカスタマイズする方法

概要

「Export ..」オプションを使用してNukeスクリプトをエクスポートする場合、または「Compを作成」または「Comp Compを作成...」を使用してNukeスクリプトを作成する場合、デフォルトでNukeStudio / Hieroからエクスポートされるノードを変更することはできません。

詳しくは

エクスポート時に、Nukeスクリプトに追加されるノードはhiero.core.nuke.ScriptWriterクラスを介して作成されます。デフォルトのノードを手動で変更するには、このクラスをオーバーライドし、必要に応じてノードノブをカスタマイズします。

以下に、ノードの読み取りノブをカスタマイズする方法を示す例を示します。

スクリプトは次のように機能します。

1)元のhiero.core.nuke.ScriptWriterクラスを継承する

2)addNode()メソッドをサブクラス化して、各ノードに対してonNodeAdded()を呼び出す

3)onNodeAdded()メソッドを定義します。
このメソッドは、どのノードにどの変更を適用するかを定義し、必要なノード設定をカスタマイズするために編集できます。

4)編集したバージョンで元のScriptWriterをオーバーライドします。

編集したバージョンを使用するには、Pythonスクリプトを.nuke / Python / Startupに保存する必要があります。 .nukeディレクトリの検索に関する情報は次の場所にあります: Q100048: Nuke Directory Locations

PythonおよびStartupディレクトリが.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

Pythonスクリプトは、以下のリンクからダウンロードできます。

この記事は役に立ちましたか?
/

私たちはそれを聞いて申し訳ございません

理由をお聞かせください
6人中6人がこの記事が役に立ったと言っています

コメント