요약
이 문서에서는 Nuke 에서 콜백을 설정하는 방법과 콜백에 사용할 올바른 Python 명령어를 찾는 방법을 설명합니다.
사용 가능한 콜백과 예제의 전체 목록은 Nuke Python 개발자 가이드 에서 확인할 수 있습니다.
더 많은 정보
콜백은 Nuke 환경에 추가된 코드로, Nuke 에서 다양한 이벤트(노드 생성이나 스크립트 로드 등)가 발생할 때마다 자동으로 Python 함수를 호출합니다.
이 기능은 노드를 생성할 때 노브 값에 대한 기본 설정을 지정하거나, 스크립트의 증분 버전을 자동으로 저장하거나, 새 프로젝트를 설정할 때 프로젝트 설정을 변경하는 등 여러 상황에서 유용합니다.
아래에서 Nuke 에서 새로 생성된 모든 Write 노드에 대해 Write 노드의 "파일 유형"을 EXR로 설정하고 "파일" 경로를 임시 위치로 설정하는 콜백을 만드는 방법의 예를 확인할 수 있습니다.
콜백을 설정하려면 다음 단계를 따르세요(각 단계에 대한 자세한 내용은 계속 읽어보세요).
- Nuke 의 스크립트 편집기에서 명령을 테스트하여 제대로 작동하는지 확인하세요.
- 콜백 함수를 정의하고 콜백으로 추가한 다음 .nuke 폴더 내의 init.py에 저장합니다.
- 다음에 Nuke 열리면 지정된 이벤트가 발생하면 콜백이 실행됩니다.
1. Nuke 의 스크립트 편집기에서 명령을 테스트하여 올바르게 작동하는지 확인합니다.
콜백을 생성하려면 먼저 Nuke 세션 내의 스크립트 편집기에서 Python 명령을 테스트해 보는 것이 좋습니다. 사용 가능한 Python API 명령에 대한 자세한 내용은 Nuke Python 개발자 가이드 와 Nuke Python API 참조 에서 확인할 수 있습니다 .
스크립팅을 위한 노드의 노브 이름은 일반적으로 노브 위에 마우스를 올려 놓았을 때 표시되는 레이블에서 찾을 수 있습니다.
예를 들어, 쓰기 노드의 "파일" 노브는 스크립팅을 위해 file 사용하여 참조될 수 있으며, "파일 유형" 노브는 스크립팅을 위해 file_type 통해 참조됩니다.
예를 들어 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
이 경우, 파일 형식 드롭다운 목록에서 " dpx "의 인덱스는 2.0 입니다. Python을 사용하여 file_type 을 " 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 로 바꾸고 파일 확장자가 파일 브라우저에 표시되는지 확인하여 파일 확장자가 .py 인지 , .txt 또는 다른 확장자 가 아닌지 확인하세요.
이 파일은 Nuke 시작 시 플러그인을 가장 먼저 찾는 위치인 .nuke 폴더에 저장해야 합니다. .nuke 폴더의 위치는 다음 문서를 참조하세요. Q100048: 기본 .nuke 디렉터리 찾기
init.py 파일과 해당 기능에 대한 추가 세부 정보는 다음 문서를 참조하세요. Q100490: init.py 및 menu.py 시작 스크립트 파일이란 무엇입니까?
3. 다음에 Nuke 열리면 지정된 이벤트가 발생하면 콜백이 실행됩니다.
이 작업을 완료하면 콜백이 Nuke 환경에 추가되고 다음에 애플리케이션을 실행하고 새로운 쓰기 노드를 만들면 file 및 file_type 설정이 적용됩니다.
참고: 저장된 스크립트를 열 때 로드되는 설정을 포함하여 특정 클래스의 모든 노드에 특정 설정을 적용하려면 nuke .addOnUserCreate 대신 nuke .addOnCreate 콜백을 사용하면 됩니다.
추가 도움말
콜백을 설정하는 데 문제가 발생하는 경우 지원 티켓을 개설하여 발생한 문제와 지금까지 취한 문제 해결 단계를 알려주세요.
지원 티켓을 여는 방법에 대한 자세한 내용은 지원 티켓을 제기하는 방법 문서 를 참조하세요 .
우리는 문제로 불편을 끼쳐 드려 죄송합니다
이유를 알려주세요