Nuke Studio - Shotgun 인식 내보내기

Shotgun Export

Nuke Studio의 시퀀스 내보내기에 Shotgun 인식 기능을 추가하는 앱입니다. 구성을 사용하여 Nuke 스크립트 및 플레이트의 경로를 결정하는 새 프로세서를 추가합니다. 또한 태그를 사용하여 Shotgun 샷 상태와 태스크 템플릿을 결정하여 Shotgun 샷을 생성/업데이트합니다.
최신 버전: v0.5.1(prod)
버전 번호의 경우 유의적 버전 표준을 따릅니다.
시스템 이름: tk-hiero-export

참고: 이 문서에서는 툴킷 구성에 대한 제어 권한이 있는 경우에만 사용할 수 있는 기능에 대해 설명합니다. 자세한 정보는 Shotgun 통합 사용자 안내서를 참조하십시오.
개요 요약
설명서
                  소개
                        개요 동영상 및 데모
                  Shotgun 샷 프로세서
                  태그
                  결합
                  경로
                  커스텀 템플릿 필드
                  Shotgun 태스크
                  내보내기 프로세스
                  Shotgun의 시퀀스 및 샷 업데이트
                  컷 스키마 지원
                  대체 샷 계층
설치, 업데이트 및 개발
구성 옵션

이 앱은 Nuke Studio 시퀀스 내보내기에 Shotgun 기능을 추가합니다. 템플릿을 사용하여 샷의 출력 경로를 결정하는 새 사전 설정을 등록하고, Screening Room에 플레이트를 게시하는 Shotgun 인식 트랜스코드 단계를 포함하고, Nuke Studio 태그에서 Shotgun 샷 상태 및 샷 태스크 템플릿으로의 매핑을 설정합니다. 내보낼 때 Shotgun의 샷이 업데이트되고 스키마에 구성된 대로 디스크의 전체 디렉토리 구조가 만들어집니다.

설명서

소개

이 앱은 Hiero의 시퀀스에 대한 내보내기 대화상자에 Shotgun 인식 기능을 추가합니다.

개요 동영상 및 데모

Shotgun 툴킷 또는 Hiero 통합을 처음 사용하는 경우 Shotgun 툴킷 Hiero 통합을 통해 파이프라인에서 수행할 수 있는 작업의 개요를 빠르게 진행하는 다음 동영상을 확인합니다.

툴킷 및 Hiero에 이미 익숙하다면 언제든지 아래의 문서를 계속 진행합니다.

Shotgun 샷 프로세서

이 앱 자체가 활성화되면 Hiero 내보내기 대화상자에 여러 변경 사항이 등록됩니다.

내보내기 대화상자

가장 먼저 주목해야 할 항목은 등록된 새 프로세서입니다.

프로세서

이 프로세서를 클릭할 때 주의해야 할 새로운 사항이 있습니다.

대화상자 상단에는 시퀀스를 내보낸 결과로 Shotgun에서 샷이 생성/업데이트되는 방식을 제어할 수 있는 추가 UI가 있습니다.

Shotgun UI

태그

드롭다운을 조정하여 다양한 Hiero 태그를 Shotgun 샷 상태 및 샷 태스크 템플릿에 매핑할 수 있습니다. 따라서 Hiero의 태그 지정 워크플로우를 통해 Shotgun 샷을 진행 중으로 설정하거나 그린 스크린, cg 추가 또는 구성에 맞는 샷의 태스크를 설정할 수 있습니다. 이 UI는 후크를 통해 입력되며 추가 기능을 구성하기 쉽습니다.

결합

또한 Hiero의 기본 제공 로직을 미러링하여 함께 트랙 항목을 결합할 수 있는 옵션이 있습니다. 샷을 구성하는 항목이 여러 개일 경우(서로 다른 트랙에서 겹치거나 여러 트랙에 동일한 샷 이름이 있는 경우) 이 옵션을 켜야 합니다. 그러면 Shotgun 툴킷 샷 업데이트 프로그램이 일치하는 결합된 항목을 단일 샷으로 처리합니다.

경로

예를 들어 샷 010과 020을 나타내는 두 개의 트랙 항목이 있다고 가정합니다. 010이 먼저 나오고 020은 다른 트랙의 010 끝에 겹칩니다. 010이 먼저 나오므로 히어로이며 결합이 활성화된 상태에서 Shotgun은 두 항목을 단일 샷 010으로 처리합니다. 즉, Shotgun에 샷 010이 생성되거나 업데이트됨을 의미합니다. 컷 인은 트랙 항목 010의 시작 부분과 일치하고 컷 아웃은 트랙 항목 020의 끝 부분과 일치합니다. 각 항목에 대해 Screening Room에서 바로 사용할 수 있는 버전이 생성되지만 둘 다 샷 010에 링크됩니다. 각 항목에 대해 게시된 파일로 플레이트가 생성되지만 둘 다 샷 010에 링크됩니다. 2개의 읽기 노드를 포함하는 샷 010에 링크된 단일 Nuke 스크립트가 각 항목에 하나씩 게시됩니다. 이 상황에서는 샷 010에 결합되었기 때문에 Shotgun에서 샷 020에 대한 생성이나 업데이트가 없습니다.

경로

경로

아래 Shotgun UI는 표준 경로 대화상자입니다. 기본적으로 Hiero를 통해 샷에 추가되는 세 가지 항목이 있으며 이는 기본 Nuke 스크립트, 기본 Nuke 쓰기 위치 및 플레이트 트랜스코드의 기본 위치입니다. 이러한 항목의 위치는 앱 구성에 따라 결정되며 템플릿 시스템을 최대한 활용할 수 있습니다.

경로

이 앱은 Shotgun 툴킷용으로 올바르게 형식이 지정되고 버전 문자열로 대체될 {tk_version} 토큰을 Hiero에 추가합니다.

커스텀 템플릿 필드

resolve_custom_strings 후크로 확인되는 custom_template_fields 설정에서 정의하는 모든 토큰은 Hiero의 유효한 대체 토큰 목록에 자동으로 추가되며 툴킷 템플릿 경로에서 유효한 대체 토큰으로 간주됩니다.

예를 들어 툴킷 templates.yml 파일에서 다음과 같이 키를 정의한다고 가정합니다.

    resolution: 
        type: str 
        filter_by: alphanumeric

project.yml 설정에서 tk-hiero-export는 다음과 같이 정의합니다.

  ...
  ...
  tk-hiero:
    apps:
      tk-hiero-export:
        custom_template_fields:
        - {description: Shot Resolution, keyword: resolution}
  ...
  ...

그런 후 다음과 같이 resolve_custom_strings 후크를 수정합니다.

# Copyright (c) 2014 Shotgun Software Inc.
#
# CONFIDENTIAL AND PROPRIETARY
#
# This work is provided "AS IS" and subject to the Shotgun Pipeline Toolkit
# Source Code License included in this distribution package. See LICENSE.
# By accessing, using, copying or modifying this work you indicate your
# agreement to the Shotgun Pipeline Toolkit Source Code License. All rights
# not expressly granted therein are reserved by Shotgun Software Inc.

from tank import Hook

class HieroResolveCustomStrings(Hook):
    """Translates a keyword string into its resolved value for a given task."""

    RESOLUTION_TOKEN_NAME = "{resolution}"

    def execute(self, task, keyword, **kwargs):
        """
        """

        self.parent.log_debug("attempting to resolve custom keyword: %s" % keyword)
        if keyword == self.RESOLUTION_TOKEN_NAME:
            translated_value = self._clip_resolution_string(task)
        else:
            raise RuntimeError("No translation handler found for custom_template_field: %s" % keyword)

        self.parent.log_debug("Custom resolver: %s -> %s" % (keyword, translated_value))
        return translated_value

    # Handle the {resolution_fs} token 
    def _clip_resolution_string(self, task): 
        """ returns sequence resolution or task format override""" 
        width = "" 
        height = ""

        sequence_format = task._sequence.format()

        width = sequence_format.width() 
        height = sequence_format.height()

        if "reformat" in task._preset.properties(): 
            task_reformat_settings = task._preset.properties()["reformat"] 
            if task_reformat_settings['to_type'] != "None": 
                width = task_reformat_settings['width'] 
                height = task_reformat_settings['height']

        return "%sx%s" % (width, height)

이제 Hiero에서 resolution 토큰을 사용할 수 있을 뿐만 아니라 툴킷에서 정의한 모든 템플릿 경로에 대해 유효성을 검사하므로 다음과 같은 위치로 내보낼 수 있습니다.

    hiero_plate_path: "sequences/{Sequence}/{Shot}/hiero_plates/{resolution}/v{version}/{project}_{Shot}.mov"

Shotgun 태스크

두 개의 새로운 태스크 유형이 등록되었습니다.

Shotgun 트랜스코드 이미지

이 유형은 표준 Hiero 트랜스코딩 태스크의 하위 클래스로, Shotgun에서 트랜스코드 결과를 게시로 등록합니다. 선택적으로 버전도 Shotgun에 생성됩니다. 버전이 생성되면 Quicktime도 생성되어 Screening Room 미디어로 업로드됩니다.

Shotgun Nuke 프로젝트 파일

이 유형은 표준 Hiero Nuke 스크립트 내보내기의 하위 클래스로, Shotgun에서 샷에 링크된 결과 Nuke 스크립트를 게시된 파일로 등록합니다. 이 설정을 통해 내보낼 때 파일에 포함할 툴킷 사용 쓰기 노드를 지정할 수 있습니다.

Nuke 프로젝트 파일 설정

앱 설정 plate_published_file_typenuke_script_published_file_type을 사용하여 게시된 파일이 등록되는 파일 유형을 제어할 수 있습니다. 또한 nuke_script_toolkit_write_nodes를 사용하여 내보내기 대화상자에서 사용 가능한 쓰기 노드 설정을 제어할 수 있습니다.

내보내기 프로세스

내보내기가 실행되면 내보내기 대기열에 몇 가지 추가 태스크가 표시됩니다.

내보내기 대기열

각 샷은 Shotgun에 샷을 생성하고 스키마 구성에 지정된 전체 샷 구조를 생성하는 ShotgunShotUpdater 태스크를 실행합니다.

검색기

Shotgun의 시퀀스 및 샷 업데이트

Hiero 시퀀스의 이름이 시퀀스 이름으로 사용되며 샷의 컷 정보(컷 순서, 헤드 인, 컷 인, 컷 아웃, 테일 아웃, 컷 기간 및 작업 시간)가 입력됩니다. 또한 샷을 구성하는 항목 또는 시퀀스의 포스터 프레임이 선택되면 샷의 썸네일로 업로드됩니다.

워크플로우에서 시퀀스 외의 엔티티를 샷 상위(예: 에피소드)로 사용하는 경우 hook_get_shot 후크에서 get_shot_parent 메서드를 재지정할 수 있습니다. 기본 구현은 필요한 경우 시퀀스를 만들고 반환합니다.

컷 스키마 지원

Shotgun 사이트가 컷 스키마(v7.0.0 이상)를 지원하는 경우 이 앱은 Shotgun에 해당 컷 항목이 있는 을 자동으로 생성합니다. 엔티티는 Hiero 시퀀스에 해당하며 컷 항목은 시퀀스의 항목에 해당합니다. hook_get_shot 후크의 get_shot_parent 메서드에 의해 반환될 때 상위 엔티티(기본적으로 시퀀스)에 링크됩니다. 컷 항목 엔티티와 연결되고 내보내기 중에 생성된 리뷰 가능한 버전에 링크됩니다. 내보내기 후 은 Shotgun의 미디어 탭 및 RV에서 재생할 수 있습니다.

컷 항목 엔티티와 관련된 모든 메타데이터는 내보내기 UI에서 지정할 수 있는 컷 유형(Cut Type) 필드를 제외하고 Hiero에서 추정됩니다.

컷 유형

해당 값은 유형 필드에 표시됩니다.

결합 옵션 중 하나가 선택된 경우 컷 스키마가 지원되지 않으며 컷 항목 항목 생성을 건너뜁니다.

또한 컷 스키마는 리타임된 클립을 처리하지 않습니다. 리타임된 클립을 내보낼 때 디버그 경고가 기록됩니다.

대체 샷 계층

표준 시퀀스 > 샷 계층에서 작업하지 않지만 에피소드 및/또는 씬을 사용하는 스튜디오의 경우에는 hiero_get_shot 후크를 통해 스튜디오에서 사용 중인 모든 샷 계층에서 작동하도록 앱을 구성할 수 있습니다.

관련 앱 및 문서

Flame 샷 내보내기

Flame 샷 내보내기를 사용하면 Shotgun 프로젝트를 쉽게 시작할 수 있습니다. Flame 내에서 내보낼 시퀀스를 선택하기만 하면 내보내기 도구가 나머지를 처리합니다. 또한 샷과 태스크를 만들고, Shotgun에서 컷 정보를 설정하고, 디스크에 폴더를 생성하고, 플레이트를 디스크로 렌더링하며 Shotgun Review로 미디어를 보냅니다. 작업이 끝나면 Flare 또는 Nuke와 같은 다른 도구로 바로 이동하여 작업을 계속할 수 있습니다.

Flame Review 내보내기

Flame Review 앱을 사용하면 Shotgun에서 리뷰할 시퀀스를 쉽고 간편하게 보낼 수 있습니다. Flame이 QuickTime을 생성하여 이를 Shotgun에 업로드하면 Screening Room, Client Review Site 또는 Shotgun iPhone 앱에서 리뷰할 수 있습니다. 모든 처리가 백그라운드에서 실행되므로 작업에 바로 집중할 수 있습니다.

Open In Shotgun

Shotgun에서 선택한 트랙 항목과 관련된 샷을 찾아서 해당 상세 정보 페이지를 브라우저 창에 표시하는 단순한 앱입니다.

설치 및 업데이트

Shotgun Pipeline Toolkit에 이 앱 추가

이 앱을 이름이 asset인 환경에 있는 프로젝트 XYZ에 추가하고 싶다면 다음 명령을 실행합니다.

> tank Project XYZ install_app asset tk-hiero tk-hiero-export

최신 버전으로 업데이트

프로젝트에 이 항목이 이미 설치되어 있는 경우 최신 버전을 얻으려면 update 명령을 실행할 수 있습니다. 특정 프로젝트와 함께 제공되는 tank 명령을 탐색하여 다음과 같이 실행할 수 있습니다.

> cd /my_tank_configs/project_xyz
> ./tank updates

또는 스튜디오 tank 명령을 실행하고 업데이트 확인을 실행할 프로젝트 이름을 지정할 수 있습니다.

> tank Project XYZ updates

협업 및 개선

Shotgun Pipeline Toolkit에 액세스할 수 있다면 모든 앱, 엔진 및 프레임워크가 저장 및 관리되는 Github에서 그 소스 코드에도 액세스할 수 있습니다. 이러한 항목을 자유롭게 개선하여 향후 독립적인 개발을 위한 기반으로 사용하고 변경 후 다시 풀 리퀘스트를 제출하거나, 아니면 그냥 조금만 손을 보고 어떻게 빌드되었는지, 툴킷이 어떻게 작동하는지 확인해 보십시오. https://github.com/shotgunsoftware/tk-hiero-export에서 이 코드 리포지토리에 액세스할 수 있습니다.

특별 요구 사항

  • 이 기능을 이용하려면 Shotgun Pipeline Toolkit Core API 버전 v0.18.124 이상이 필요합니다.

구성

아래는 사용되는 모든 구성 설정을 요약한 것입니다. 해당 설정은 이 앱 또는 엔진을 활성화하려는 환경 파일에서 정의해야 합니다.

hook_upload_thumbnail

유형: hook

기본값: hiero_upload_thumbnail

설명: Hiero 소스의 썸네일을 Shotgun에 업로드해야 할 때 호출됩니다. 첫 번째 인수는 업로드할 Shotgun 엔티티인 사전입니다. 두 번째 인수는 썸네일을 가져올 Hiero 소스입니다. 세 번째 인수는 소스를 가져온 Hiero TrackItem입니다. 썸네일이 타임라인의 항목에 해당하지 않으면 TrackItem이 None일 수 있습니다.

hook_post_version_creation

유형: hook

기본값: hiero_post_version_creation

설명: 버전 엔티티가 생성된 후에 호출됩니다. 후크에는 생성된 엔티티의 ID 번호를 포함하는 새 엔티티 데이터 사전이 제공됩니다.

template_render_path

유형: template

선택적 템플릿 키: ***

설명: 렌더의 이름을 지정하는 템플릿에 대한 참조입니다. 변환 템플릿 후크는 이를 Hiero 키워드로 변환하는 방법을 이해해야 합니다.

hook_update_shot

유형: hook

기본값: hiero_update_shot

설명: SG 샷 처리 중에 호출됩니다. 내보내기 중에 샷 파일 시스템 구조의 생성 여부와 방법 및 샷의 엔티티 업데이트 여부와 방법을 관리하는 메서드를 제공합니다.

hook_update_cuts

유형: hook

기본값: hiero_update_cuts

설명: SG 샷 처리 중에 호출됩니다. 컷 및 컷 항목의 생성 및 업데이트 여부와 방법을 관리하는 메서드를 제공합니다.

default_task_template

유형: str

기본값: Basic shot template

설명: 앱이 Shotgun에서 새로운 샷을 만들 때 사용할 기본 샷 태스크 템플릿입니다. 이 설정은 커스텀 Shotgun Export UI에 제공되며 원하는 경우 내보내기를 실행하기 전에 변경할 수 있습니다.

hook_get_quicktime_settings

유형: hook

기본값: hiero_get_quicktime_settings

설명: Quicktime 만들기를 위한 기본 설정을 생성할 때 호출됩니다. 인수는 부울이며 결과 Quicktime이 Shotgun에 업로드할 때만 True이고 기본 Quicktime 트랜스코드에 설정을 사용할 때는 False입니다. 반환값은 두 항목의 튜플입니다. 첫 번째는 생성될 Nuke Write node의 file_type인 문자열입니다. 두 번째는 키가 쓰기 노드의 노브 이름이고 값이 해당 노드 값인 사전입니다.

nuke_script_published_file_type

유형: tank_type

기본값: Nuke Script

설명: Nuke 스크립트에 사용된 게시된 파일/탱크 유형의 문자열 값입니다.

hook_pre_export

유형: hook

기본값: hiero_pre_export

설명: Shotgun의 샷 프로세서를 시작하기 전에 호출됩니다. 캐시를 지우고 다른 특정 초기화를 수행하는 데 사용할 수 있습니다.

audio_published_file_type

유형: tank_type

기본값: Hiero Audio

설명: 게시된 오디오에 사용된 게시된 파일/탱크 유형의 문자열 값입니다.

nuke_script_toolkit_write_nodes

유형: list

설명: 없습니다.

plate_published_file_type

유형: tank_type

기본값: Hiero Plate

설명: 게시된 플레이트에 사용된 게시된 파일/탱크 유형의 문자열 값입니다.

hook_customize_export_ui

유형: hook

기본값: hiero_customize_export_ui

설명: 내보내기 UI 초기화 중에 호출됩니다. 사전 설정에서 커스텀 UI 특성을 정의하고, 내보내기 도구에 커스텀 위젯을 초기화 및 삽입하고, 특성 UI 위젯을 사용하도록 커스텀 위젯을 설정하는 메서드를 제공합니다.

template_plate_path

유형: template

선택적 템플릿 키: ***

설명: 샷 플레이트를 게시할 디렉토리를 지정하는 템플릿에 대한 참조입니다. 변환 템플릿 후크는 이를 Hiero 키워드로 변환하는 방법을 이해해야 합니다.

default_task_filter

유형: str

기본값: [['step.Step.code', 'is', 'Comp']]

설명: 게시가 등록될 샷의 태스크를 반환하는 필터입니다. 이 값은 엔티티에 대한 조건 없이 Shotgun API의 find 메서드에 전달할 수 있는 유효한 필터여야 합니다(샷에 엔티티를 링크하는 값은 게시할 때 추가됨). 필터에 ['step.Step.code', 'is', VALUE] 형식의 조건이 포함되어 있으면 VALUE가 무엇이든 게시 템플릿에서 {Step} 확장 시 사용할 값으로 기본 translate_template 후크에서 사용됩니다. 필터 결과가 단일 태스크이면 앱에서 만든 모든 게시가 해당 태스크와 연결됩니다. 그렇지 않은 경우 샷과만 연결됩니다.

template_nuke_script_path

유형: template

선택적 템플릿 키: ***

설명: 게시된 Nuke 스크립트의 이름을 지정하는 템플릿에 대한 참조입니다. 변환 템플릿 후크는 이를 Hiero 키워드로 변환하는 방법을 이해해야 합니다.

custom_template_fields

유형: list

설명: Hiero 확인자에 추가할 커스텀 문자열 목록입니다. 각 항목은 대체할 키워드를 지정하는 사전이며 내보내기 트리의 툴팁에 표시될 해당 키워드에 대한 설명입니다. 유효한 항목 형식은 '{keyword: a_keyword, description: This is a keyword}'입니다. 각 키워드는 커스텀 문자열 확인 후크에 의해 확인된 문자열로 변환되어야 합니다.

hook_get_extra_publish_data

유형: hook

기본값: hiero_get_extra_publish_data

설명: Shotgun에 트랜스코드용 게시된 파일을 만들기 전에 호출됩니다. 게시된 파일과 연결할 추가 정보나 Shotgun API의 update 메서드와 호환되는 사전이 없는 경우 이 후크는 None을 반환해야 합니다.

hook_resolve_custom_strings

유형: hook

기본값: hiero_resolve_custom_strings

설명: custom_template_fields 설정을 통해 Hiero 확인자에 추가된 커스텀 항목을 확인할 때 호출됩니다. 첫 번째 인수는 확인할 키워드이고 두 번째 인수는 실행 중인 Hiero 태스크입니다. 반환값은 키워드에 대해 확인된 문자열 값입니다.

hook_translate_template

유형: hook

기본값: hiero_translate_template

설명: 템플릿을 Hiero 스타일 대체 문자열로 변환해야 할 때 호출됩니다. 첫 번째 인수는 변환할 템플릿입니다. 두 번째 인수는 변환할 템플릿의 유형을 설명하는 문자열입니다. 반환값은 변환된 문자열입니다.

template_version

유형: template

필수 템플릿 키: version

선택적 템플릿 키: ***

설명: Hiero tk_version 토큰을 tk의 버전 문자열로 형식화하는 방법을 지정하는 문자열 템플릿입니다.

hook_update_version_data

유형: hook

기본값: hiero_update_version_data

설명: Shotgun에 트랜스코드용 버전을 만들기 전에 호출됩니다. 버전의 기본값은 이미 version_data 사전에 입력되어 있습니다. 이 사전을 수정하여 Shotgun API 생성 호출에 대한 인수로 전달할 내용을 변경합니다.

hook_get_shot

유형: hook

기본값: hiero_get_shot

설명: 컷 정보를 업데이트할 샷을 반환하기 위해 호출됩니다. 첫 번째 인수는 Hiero 내보내기 태스크 객체입니다. 두 번째 인수는 샷 생성을 구동하는 hiero.core.TrackItem입니다. 세 번째 인수는 샷 생성에 대한 여러 호출 간에 데이터를 전달하는 데 사용할 수 있는 데이터 사전입니다. 반환값은 ID가 업데이트될 샷의 데이터 사전입니다. 샷에서 Shotgun 업데이트가 호출되기 전에 컷 정보가 이 사전에 병합됩니다. 기본 구현은 내보낼 Hiero 시퀀스 다음에 명명된 시퀀스를 만들거나 조회하고 이를 sg_sequence 필드를 통해 샷에 링크합니다.

팔로우

0 댓글

댓글을 남기려면 로그인하세요.