지원 티켓 만들기
팔로우

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

개요

'내보내기 ..'옵션을 사용하여 Nuke 스크립트를 내보내거나 '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명이 도움이 되었다고 했습니다.

댓글