Q100458: Nuke Studio 내보내기 토큰 사용자 지정

요약

이 문서에서는 Nuke Studio 에서 사용 가능한 내보내기 토큰 목록을 찾는 방법과 추가 토큰을 추가하여 사용자가 내보내기에서 사용되는 내보내기 경로를 더욱 사용자 정의할 수 있도록 하는 방법을 설명합니다.


더 많은 정보

Nuke Studio Exporter 내의 내보내기 토큰은 내보내기로 선택한 작업에 따라 문자열로 변환되는 특수 키워드입니다. 예를 들어, {shot} 내보내기 토큰은 내보낼 샷의 이름을 반환하며, 샷을 내보낼 때만 사용할 수 있습니다. 내보내기를 사용하는 사용자의 이름을 반환하는 {user} 토큰과 같은 다른 토큰은 시퀀스, 샷 또는 클립을 내보낼 때 사용할 수 있습니다.

사용 가능한 토큰 목록은 다음에서 확인할 수 있습니다.

  • 경로 템플릿 위에 마우스를 올려놓고 도구 설명을 읽습니다.

  • 활성 경로 템플릿을 마우스 오른쪽 버튼으로 클릭하고 키워드 선택...을 선택합니다.

추가 토큰 추가

Python을 사용하면 추가 토큰을 추가할 수 있으며, 이를 통해 프로덕션 파이프라인과 같은 특정 환경에서 더 잘 작동할 수 있습니다.

그렇게 하려면 특정 키워드에 대해 호출되고 토큰 대신 최종 경로에 사용될 문자열을 반환하는 리졸버를 추가해야 합니다.

다음의 인스턴스를 재정의하여 리졸버를 추가할 수 있습니다.

hiero .core.TaskPresetBase.addUserResolveEntries

기본 hiero .core.TaskPresetBase.addUserResolveEntries 재정의하면 모든 내보내기 프로세서에 리졸버가 추가됩니다.

하지만 hiero .exporters.FnShotProcessor.ShotProcessorPreset.addUserResolveEntries 와 같이 addUserResolveEntries 의 다른 인스턴스 중 하나를 재정의하는 경우 리졸버는 샷 내보내기 프로세서에만 추가됩니다.

글로벌 수출 토큰 추가

다음은 글로벌 내보내기 토큰을 추가하는 방법의 예입니다.

 import hiero .core
def global_addUserResolveEntries(self, resolver):
resolver.addResolver("{proj}", "First four characters of the project.", lambda keyword, task: task.projectName()[:4])

# This token can be applied to ANY export process, so add it to the base class
hiero .core.TaskPresetBase.addUserResolveEntries = global_addUserResolveEntries

이 예제에서는 task.projectName()[:4] 호출하여 프로젝트 이름의 처음 4자를 반환합니다. 이 호출은 프로젝트의 전체 이름을 반환한 다음 Python 문자열 구문을 사용하여 처음 4자만 반환합니다.

addResolver() 함수에는 세 개의 인수가 필요합니다. 토큰의 이름(키워드), 툴팁과 키워드 선택 대화 상자에 나타날 토큰에 대한 설명, 토큰 대신 경로에 사용될 문자열을 반환하는 함수인 resolver입니다.

샷별 내보내기 토큰 추가

아래는 샷별 내보내기 토큰을 추가하는 방법의 예입니다.

 from hiero .exporters.FnShotProcessor import ShotProcessorPreset
def shot_addUserResolveEntries(self, resolver):
def plateWidth(task):
trackItem = task._item
media = trackItem.source().mediaSource()
return str(media.width())

resolver.addResolver("{platewidth}", "Returns the width of the source plate", lambda keyword, task: plateWidth(task))

resolver.addResolver("{plateheight}", "Returns the height of the source plate", lambda keyword, task: str(task._item.source().mediaSource().height()))

# This token will only be applied to the Shot Processor
ShotProcessorPreset.addUserResolveEntries = shot_addUserResolveEntries

이 예제는 소스 플레이트의 너비/높이 문자열을 반환합니다. 너비는 미디어 소스의 .width() 메서드 문자열을 반환하는 plateWidth() 함수를 호출하여 구합니다. 높이는 같은 방식으로 구하지만, 다른 함수를 호출하는 대신 한 줄에서 계산합니다. 두 리볼버 모두 shot_addUserResolveEntries() 함수에 추가되므로 addUserResolveEntries 재정의할 때 샷 내보내기 프로세서에 모두 추가됩니다.

스크립트 편집기에서 위 예제를 실행하면 해당 토큰이 Nuke Studio 세션의 내보내기 도구에 추가됩니다. 토큰이 제대로 작동하는지 확인하려면 경로에 토큰을 추가하고 내보내기 도구에서 경로 미리보기를 확인하세요. 이 경우 전체 HD 영상의 해상도가 반환됩니다.

토큰은 .nuke/Python/Startup 디렉터리의 Python(.py) 파일에 추가하여 Nuke Studio 설정에 영구적으로 추가할 수 있습니다. .nuke 디렉터리에 /Python/Startup 디렉터리가 없는 경우 새로 만들어야 할 수도 있습니다.

추가 읽기

Nuke Studio 내보내기 시스템에 대한 자세한 내용은 여기 문서에서 확인할 수 있습니다.
수출 시스템

.nuke 디렉토리를 찾는 방법에 대한 정보는 여기에서 확인할 수 있습니다.
Q100048: Nuke 디렉토리 위치

.nuke/ Python/Startup 디렉토리에 대한 정보는 여기에서 확인할 수 있습니다.
Q100142: Nuke Studio 시작 시 Hiero Python 코드를 실행하는 방법

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

    이유를 알려주세요