Q100195: Nuke Studio / Hiero 에서 내보낸 Nuke 스크립트를 사용자 정의하는 방법

팔로우

요약

현재는 'Export..' 옵션을 사용하여 Nuke 스크립트를 내보내거나 'Create Comp' 또는 'Create Comp Special...'을 통해 Nuke 스크립트를 생성할 때 Nuke Studio / Hiero 에서 기본적으로 내보낸 노드를 변경할 수 없습니다. .


추가 정보

내보내기 시 Nuke 스크립트에 추가되는 노드는 hiero .core.nuke.ScriptWriter 클래스를 통해 생성됩니다. 기본 노드를 수동으로 변경하려면 이 클래스를 재정의하고 필요에 따라 노드 손잡이를 사용자 정의할 수 있습니다.

아래에서는 읽기 노드 노브를 사용자 정의하는 방법을 보여주는 예를 찾을 수 있습니다. 스크립트는 다음과 같이 작동합니다.

1) 원래 hiero .core.nuke.ScriptWriter 클래스를 상속합니다.

2) 각 노드에 대해 onNodeAdded() 호출하도록 addNode() 메서드를 서브클래싱합니다.

3) onNodeAdded() 메소드를 정의합니다. 이 방법은 어떤 노드에 적용할 변경 사항을 정의하고 편집하여 필요한 노드 설정을 사용자 정의할 수 있습니다.

4) 원본 ScriptWriter를 편집된 버전으로 재정의합니다.


편집된 버전을 사용하려면 Python 스크립트를 .nuke/Python/Startup 에 저장해야 합니다.

Python 및 Startup 디렉터리가 .nuke 디렉터리에 아직 없으면 수동으로 만들어야 합니다. 이 디렉토리에 대한 자세한 내용은 여기에서 확인할 수 있습니다.
Q100142: 시작 시 Nuke StudioHiero 에서 Hiero Python 코드를 실행하는 방법

 """
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(
"raw" , True ) # This sets disables the input color transform

   
return node
     
         
hiero .core.nuke.ScriptWriter = CustomScriptWriter


Python 스크립트는 아래 링크에서 다운로드할 수 있습니다.

우리는 문제로 불편을 끼쳐 드려 죄송합니다

이유를 알려주세요