Q100248: Nuke 의 콜백을 사용하여 Python 함수를 자동으로 호출하는 방법

팔로우

요약

이 기사에서는 Nuke 에서 콜백을 설정하는 방법과 콜백에 사용할 올바른 Python 명령을 찾는 방법을 설명합니다.

사용 가능한 콜백 및 예제의 전체 목록은 Nuke Python 개발자 가이드에서 찾을 수 있습니다.

추가 정보

콜백은 Nuke 에서 다양한 이벤트(예: 노드 생성 또는 스크립트 로드)가 발생할 때 자동으로 Python 함수를 호출하는 Nuke 환경에 추가된 코드 조각입니다.

이는 노드가 생성될 때 노브 값에 대한 기본 설정을 지정하거나, 스크립트의 증분 버전을 자동으로 저장하거나, 새 프로젝트를 설정할 때 프로젝트 설정을 변경하는 등 다양한 상황에서 유용합니다.

아래에서는 Nuke 에서 새로 생성된 모든 Write 노드에서 Write 노드의 "파일 형식"을 exr로 설정하고 "파일" 경로를 임시 위치로 설정하는 콜백을 생성하는 방법에 대한 예를 찾을 수 있습니다.

콜백을 설정하려면 다음 단계를 따르세요(각 단계에 대한 자세한 내용은 계속 읽어보세요).

  1. Nuke 의 스크립트 편집기에서 명령을 테스트하여 올바르게 작동하는지 확인하세요.
  2. 콜백 함수를 정의하고 이를 콜백으로 추가한 후 .nuke 폴더 내의 init.py에 저장합니다.
  3. 다음에 Nuke 열리면 지정된 이벤트가 발생할 때 콜백이 실행됩니다.


1. Nuke 의 스크립트 편집기에서 명령을 테스트하여 올바르게 작동하는지 확인하십시오.

콜백을 생성하려면 먼저 Nuke 세션 내의 스크립트 편집기에서 Python 명령을 테스트하는 것이 도움이 되는 경우가 많습니다. Nuke Python 개발자 가이드 Nuke Python API 참조 에서 사용 가능한 Python API 명령에 대한 자세한 내용을 확인할 수 있습니다 .

스크립팅을 위한 노드 노브의 이름은 일반적으로 노브 위로 마우스를 가져갈 때 표시되는 레이블에서 찾을 수 있습니다.

예를 들어, 쓰기 노드의 "파일" 손잡이는 "파일"을 사용하여 스크립팅을 위해 참조될 수 있고 "파일 유형" 손잡이는 "file_type"을 통해 스크립팅을 위해 참조됩니다.



특정 손잡이의 현재 값(예: "파일 유형")을 얻으려면 스크립트 편집기에서 다음 명령을 실행하십시오.

node = nuke .toNode(“Write1”)
# replace Write1 with the name of your Write node if it is different

print(node["file_type"].getValue())

그러면 콘솔에 다음이 인쇄됩니다.

# node = nuke .toNode("Write1")
# print(node["file_type"].getValue())
# Result: 2.0

이 경우 2.0은 파일 형식 드롭다운 목록에서 " dpx "의 인덱스입니다. Python을 통해 "파일 형식"을 " exr "로 변경하려면 스크립트 편집기에 다음 명령을 입력합니다.

node["file_type"].setValue(3)

이는 콜백에 추가하려는 명령 중 하나입니다. 대상 "파일" 경로를 임시 위치로 설정하는 다른 명령은 다음과 같습니다.

node["file"].setValue("/tmp/test.####.exr")

2. 콜백 함수를 정의하고 이를 콜백으로 추가한 후 .nuke 폴더 내의 init.py 에 저장합니다.
아래 예제 코드에 설명된 대로 콜백이 단일 Python 함수에서 수행할 모든 작업을 정의하고 이 함수를 OnUserCreate 콜백으로 추가합니다.

import nuke 

def writeSettings():
node = nuke .thisNode()
node["file_type"].setValue(3)
node["file"].setValue("/tmp/test.####.exr")

# add callback to execute this every time a Write node is created
nuke .addOnUserCreate(writeSettings, nodeClass="Write")


이를 복사하여 텍스트 편집기에 붙여넣고 파일을 저장합니다.

파일 이름을 init.py 로 바꾸고 이 작업을 수행할 파일 확장자가 파일 브라우저에 표시되는지 확인하여 파일 확장자가 .txt 또는 기타 가 아닌 .py 인지 확인하세요.


이 파일은 Nuke 시작 시 플러그인을 찾는 첫 번째 위치인 .nuke 폴더에 배치되어야 합니다. .nuke 폴더를 찾으려면 이 문서를 참조하십시오: Q100048: Nuke 디렉토리 위치

3. 다음에 Nuke 열리면 지정된 이벤트가 발생할 때 콜백이 실행됩니다.

이 작업을 완료하면 콜백이 Nuke 환경에 추가되고 다음에 애플리케이션을 시작하고 새 쓰기 노드를 생성할 때 "파일" 및 "파일 유형" 설정이 적용됩니다.

참고: 특정 클래스의 모든 노드에 특정 설정을 적용하고 이전에 저장된 스크립트에서 로드한 설정도 적용하려면 nuke .addOnUserCreate 대신 nuke .addOnCreate 콜백을 사용할 수 있습니다 .


추가 도움말

콜백 설정 시 문제가 발생하는 경우 지원 티켓을 열고 발생한 문제와 지금까지 수행한 문제 해결 단계를 알려주십시오.

서포트 티켓 개설 방법에 대한 자세한 내용은 서포트 티켓 모집 방법 문서 를 참조하세요 .

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

    이유를 알려주세요