Shotgun 패널

Shotgun 패널

씬, 사용자 및 사용자 관련 항목에 대한 Shotgun 정보가 포함된 패널 UI입니다.
최신 버전: v1.6.3(prod)
버전 번호의 경우 유의적 버전 표준을 따릅니다.
시스템 이름: tk-multi-shotgunpanel

참고: 이 문서에서는 툴킷 구성에 대한 제어 권한이 있는 경우에만 사용할 수 있는 기능에 대해 설명합니다. 자세한 정보는 Shotgun 통합 사용자 안내서를 참조하십시오.
개요 요약
설명서
            Shotgun 패널 구성
                  표시 내용 구성
                  액션 구성
설치, 업데이트 및 개발
구성 옵션

Shotgun 패널을 사용하면 포함된 패널에서 Shotgun 정보에 신속하게 액세스할 수 있습니다. 이를 통해 사용자가 현재 작업 중인 태스크에 관한 정보에 쉽게 액세스하고, 액티비티 스트림, 노트, 태스크, 버전 및 게시에 즉시 액세스할 수 있습니다. 다른 팀원의 리뷰를 위해 전송된 버전을 재생할 수 있고, 응용프로그램 내에서 직접 노트에 회신할 수 있습니다. 파이프라인에서 종속성 정보를 트래킹하는 경우에는 Shotgun 패널에서도 이 정보를 직접 찾을 수 있습니다.

개요 동영상

다음 동영상은 해당 기능에 대한 간략한 개요를 보여 줍니다.

설명서

이 문서에서는 툴킷 구성에 대한 제어 권한이 있는 경우에만 사용할 수 있는 기능에 대해 설명합니다. 자세한 정보는 Shotgun 통합 사용자 안내서를 참조하십시오.

Shotgun 패널 구성

Shotgun 패널에서 광범위하게 구성할 수 있는 두 가지 주요 영역은 UI의 텍스트 모양과 데이터와 연결할 액션입니다. 아래 섹션에서는 두 시스템의 구성을 제어하는 방법에 대해 간략히 설명합니다.

표시 내용 구성

상세 정보 영역의 값과 목록은 둘 다 shotgun_fields 후크를 통해 구성할 수 있습니다. 이 후크를 분류하고 구현을 변경하여 원하는 정확한 값을 표시할 수 있습니다.

템플릿 시스템

후크는 간단한 템플릿 언어를 지원하므로 유연성이 뛰어납니다. 또한 Qt에서 지원하는 HTML 하위 세트를 지원하므로 표시되는 값의 색상, 글꼴 크기, 두께 등을 제어할 수 있습니다. 템플릿 언어는 다음과 같은 방식으로 작동합니다.

  • Shotgun 값은 {brackets}로 묶여 있습니다(예: <b>Description:</b> {description}). 이 템플릿이 렌더링되면 {description} 부분은 설명 필드 값으로 대체됩니다.

  • 값의 선택적 접두사 또는 접미사(값이 비어 있지 않은 경우에만 표시)를 원한다면 {[Prefix]sg_field[suffix]} 구문을 사용하면 됩니다. 템플릿 {[Start: ]start_date} {[End: ]end_date}는 두 값이 모두 입력될 경우 Start: 12 July 2009 End: 14 July 2012를 렌더링하지만 종료 날짜가 설정되지 않은 경우 Start: 12 July 2009를 렌더링합니다.

  • 일부 값이 설정되지 않은 경우에는 폴백을 정의할 수 있습니다. Shotgun 버전의 경우 제작자가 아티스트 대신 버전을 제출하는 워크플로우를 지원하기 위해 artist 필드가 created_by 필드보다 우선권을 가집니다. 이 경우, 버전은 제작자에 의해 생성되지만 artist 필드는 아티스트로 설정됩니다. 그러나 항상 그렇지는 않습니다. 아티스트가 자신의 작업을 제출하는 파이프라인에 아티스트를 비워 두는 경우도 있습니다. 따라서 버전을 표시할 때에는 artist 필드를 먼저 확인하고, 이 필드가 설정되어 있지 않은 경우에는 created_by 필드로 폴백할 수 있도록 하는 것이 좋습니다. 이 작업은 {field1|field2} 구문을 사용하여 수행할 수 있습니다(예: Created By: {artist|created_by}). 이 구문을 선택적 필드(예: {[Created By: ]artist|created_by})와 결합할 수도 있습니다.

이 후크에는 다음 메서드가 포함됩니다.

목록에 표시되는 항목 제어

get_list_item_definition() 메서드는 Shotgun 엔티티 유형이 지정된 다양한 목록의 항목 모양을 제어하는 사전을 반환합니다. top_left, top_rightbody 키가 포함된 사전을 반환합니다. 예를 들면 다음과 같습니다.

{
 "top_left": "<big>{code}</big>",
 "top_right": "{updated_at}",
 "body": "By: {created_by}<br>Description: {description}"
}

상단 상세 정보 영역 제어

get_main_view_definition() 메서드는 Shotgun 엔티티 유형에 따라 키 titlebody를 사용하여 사전을 반환합니다. 이 값은 상세 정보 영역의 객체 모양을 제어합니다. 예를 들면 다음과 같습니다.

{
 "title": "{type} {code}",
 "body": "By: {created_by}<br>Description: {description}"
}

정보(Info) 탭에 표시되는 필드 제어

get_all_fields() 메서드는 정보(Info) 탭에 렌더링될 때 해당하는 엔티티에 따라 표시할 필드의 목록을 반환합니다.

액션 구성

액션은 Shotgun 데이터에서 작동하는 작은 코드 조각입니다. 다음과 같은 예를 들 수 있습니다.

  • 지정된 Shotgun 버전에 대해 RV를 시작하는 액션
  • 사용자가 지정된 태스크에 자신을 할당할 수 있는 액션
  • Maya에 Shotgun 게시를 Maya 참조로 로드하는 액션

액션의 실제 페이로드는 액션 후크에 정의됩니다. 액션 로직을 정의한 후에는 앱 구성에서 해당 액션을 Shotgun 객체에 매핑할 수 있습니다. 이 액션 매핑은 다음 예와 같은 모습입니다.

action_mappings:
  PublishedFile:
  - actions: [reference, import]
    filters: {published_file_type: Maya Scene}
  - actions: [texture_node]
    filters: {published_file_type: Rendered Image}
  Task:
  - actions: [assign_task]
    filters: {}
  Version:
  - actions: [play_in_rv]
    filters: {}

위의 예에서는 reference, import, texture_node, assign_taskplay_in_rv 액션을 사용합니다. 다음으로 다양한 Shotgun 객체 및 조건에 액션을 매핑합니다. 예를 들어 모든 Maya 씬 게시 유형에 import 액션을 표시하려고 합니다.

객체가 패널에 로드되면 위의 액션 구성을 확인하고 분석합니다. 현재 객체에 대한 적절한 액션 목록이 판별되고 generate_actions() 후크 메서드가 실행됩니다. 이때 지정된 엔티티의 Shotgun 데이터가 후크로 전달되므로 후크 코드가 이 특정 Shotgun 객체에 대한 액션을 실행할 수 있는지 확인할 수 있습니다. 이렇게 하면 각 후크가 표시되기 전에 검사를 실행할 수 있습니다. 예를 들어 play_in_rv 후크는 로컬에서 사용할 수 있는 미디어가 있는 경우에만 관련될 수 있고 구성에서 설정된 액션 매핑은 지정된 Shotgun 엔티티에 대해 활성화할 액션을 패널에 알려 주지만 generate_actions() 메서드가 지정된 객체에 적합하지 않다고 판단할 수 있으므로 모두 표시되지 않을 수 있습니다.

generate_actions() 메서드에서 반환되는 액션은 액션 메뉴에 표시되고 사용자가 이를 클릭하면 execute_action() 후크 메서드가 호출되어 액션을 실행합니다.

패널이 지원하는 각 응용프로그램에 대해 적절한 액션을 구현하는 액션 후크가 있습니다. 예를 들어 Maya 등을 사용하면 기본 후크가 reference, importtexture_node 액션을 구현하고 각각 특정 Maya 명령을 수행하여 현재 Maya 씬으로 게시를 가져옵니다. 모든 후크와 마찬가지로 재정의 및 변경이 완벽히 가능하고, 기본 제공 후크로부터 파생되는 후크를 생성하는 것 역시 가능하기 때문에 많은 코드를 복제할 필요 없이 기본 제공 후크에 다른 액션을 쉽게 추가할 수 있습니다.

패널은 툴킷의 2세대 후크 인터페이스를 사용하기 때문에 그 유연성이 뛰어납니다. 이 후크 형식은 향상된 구문을 사용합니다. 기본 구성 설정에서 다음과 같은 형식을 볼 수 있습니다.

actions_hook: '{self}/tk-maya_actions.py'

{self} 키워드를 통해 툴킷은 앱의 hooks 폴더에서 후크를 찾을 수 있습니다. 이 후크를 사용자 구현으로 재지정하려면 값을 {config}/panel/maya_actions.py로 변경합니다. 이렇게 하면 툴킷이 사용자 구성 폴더에 있는 hooks/panel/maya_actions.py라는 후크를 사용하게 됩니다.

자세한 정보는 앱과 함께 제공되는 후크 파일을 참조하십시오. 후크는 또한 상속을 이용합니다. 즉, 후크의 모든 사항을 재지정할 필요는 없지만 다양한 방식으로 기본 후크를 좀 더 쉽게 확장하거나 확대하여 보다 쉽게 후크를 관리할 수 있습니다.

후크에서 상속을 사용하면 다음과 같은 기본 후크에 액션을 추가할 수 있습니다.

import sgtk
import os

# toolkit will automatically resolve the base class for you
# this means that you will derive from the default hook that comes with the app
HookBaseClass = sgtk.get_hook_baseclass()

class MyActions(HookBaseClass):

    def generate_actions(self, sg_data, actions, ui_area):
        """
        Returns a list of action instances for a particular object.
        The data returned from this hook will be used to populate the 
        actions menu.

        The mapping between Shotgun objects and actions are kept in a different place
        (in the configuration) so at the point when this hook is called, the app
        has already established *which* actions are appropriate for this object.

        This method needs to return detailed data for those actions, in the form of a list
        of dictionaries, each with name, params, caption and description keys.

        Because you are operating on a particular object, you may tailor the output 
        (caption, tooltip etc) to contain custom information suitable for this publish.

        The ui_area parameter is a string and indicates where the publish is to be shown. 

        - If it will be shown in the main browsing area, "main" is passed. 
        - If it will be shown in the details area, "details" is passed.

        :param sg_data: Shotgun data dictionary with all the standard publish fields.
        :param actions: List of action strings which have been defined in the app configuration.
        :param ui_area: String denoting the UI Area (see above).
        :returns List of dictionaries, each with keys name, params, caption, group and description
        """

        # get the actions from the base class first
        action_instances = super(MyActions, self).generate_actions(sg_data, actions, ui_area)

        if "my_new_action" in actions:
            action_instances.append( {"name": "my_new_action",
                                      "params": None,
                                      "group": "Pipeline Utils",
                                      "caption": "My New Action",
                                      "description": "My New Action."} )

        return action_instances

    def execute_action(self, name, params, sg_data):
        """
        Execute a given action. The data sent to this be method will
        represent one of the actions enumerated by the generate_actions method.

        :param name: Action name string representing one of the items returned by generate_actions.
        :param params: Params data, as specified by generate_actions.
        :param sg_data: Shotgun data dictionary with all the standard publish fields.
        :returns: No return value expected.
        """

        if name == "my_new_action":
            # do some stuff here!

        else:
            # call base class implementation
            super(MyActions, self).execute_action(name, params, sg_data)

그런 다음 이 새 액션을 구성의 게시 유형 세트에 바인딩할 수 있습니다.

action_mappings:
  PublishedFile:
  - actions: [reference, import, my_new_action]
    filters: {published_file_type: Maya Scene}
  Version:
  - actions: [play_in_rv]
    filters: {}

위의 그림과 같이 후크에서 파생된 커스텀 후크 코드는 유지 관리 및 업데이트가 보다 쉽도록 실제 추가된 비즈니스 로직만 포함하면 됩니다.

관련 앱 및 문서

로더

Shotgun Loader를 사용하면 Shotgun에 게시한 파일을 신속하게 확인하고 탐색할 수 있습니다. 검색 가능한 트리 뷰 네비게이션 시스템 덕분에 원하는 태스크, 샷 또는 에셋을 빠르고 쉽게 찾을 수 있고, 찾고 나면 로더가 해당 항목의 모든 게시에 대한 개요를 기반으로 썸네일을 보여 줍니다. 그러면 구성 가능한 후크를 통해 쉽게 게시를 참조하거나 현재 씬으로 가져올 수 있습니다.

게시

아티스트는 Publish 앱을 통해 아티스트 다운스트림에서 사용할 수 있도록 작업물을 게시할 수 있습니다. 아티스트의 컨텐츠 생성 소프트웨어 내에서 기존 게시 워크플로우를 지원하고 디스크상의 파일을 독립 실행형으로 게시할 수 있습니다. 컨텐츠 생성 소프트웨어에서 작업하거나 기본 Shotgun 통합을 사용하여 작업할 때 이 앱은 아티스트가 게시할 수 있는 항목을 자동으로 검색해 표시해 줍니다. 보다 정교한 프로덕션이 필요한 경우 스튜디오는 커스텀 게시 플러그인을 작성하여 아티스트 워크플로우를 진행할 수 있습니다.

Shotgun Workfiles

이 응용프로그램은 Shotgun Pipeline Toolkit에서 파일 관리의 기초를 형성합니다. 이를 통해 여러 Shotgun 엔티티 사이를 빠르게 이동하고 작업을 신속하게 시작할 수 있습니다. 응용프로그램이 백그라운드에서 관리해 주기 때문에 경로를 지정할 필요가 없습니다. 이 응용프로그램을 사용하면 작업 영역 내에서 작업 파일을 관리하고 다른 사람들과 작업을 쉽게 공유할 수 있습니다.

관리자 안내서

Shotgun 통합에 대한 관리자 안내서입니다.

개발 안내서

Shotgun 통합용 개발 안내서입니다.

사용자 안내서

Shotgun 통합에 대한 사용자 안내서입니다.

설치 및 업데이트

Shotgun Pipeline Toolkit에 이 앱 추가

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

> tank Project XYZ install_app asset tk-maya tk-multi-shotgunpanel

최신 버전으로 업데이트

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

> cd /my_tank_configs/project_xyz
> ./tank updates

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

> tank Project XYZ updates

협업 및 개선

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

특별 요구 사항

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

구성

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

action_mappings

유형: dict

기본값: {u'PublishedFile': [{u'filters': {}, u'actions': [u'publish_clipboard']}], u'Task': [{u'filters': {}, u'actions': [u'assign_task', u'task_to_ip']}], u'Version': [{u'filters': {}, u'actions': [u'quicktime_clipboard', u'sequence_clipboard', u'add_to_playlist']}]}

설명: Shotgun 객체를 액션과 연결합니다. 액션은 액션 후크 내에 모두 정의되어 있으므로 기본적으로 여러 액션을 사용할 수 있으며 이 외에도 원하는 경우 고유의 액션을 추가할 수 있습니다.

enable_context_switch

유형: bool

설명: 컨텍스트 스위치 UI의 표시 여부를 제어하는 플래그입니다.

actions_hook

유형: hook

기본값: {self}/general_actions.py

설명: 액션 관리에 대한 모든 메서드가 포함된 후크입니다.

shotgun_fields_hook

유형: hook

기본값: {self}/shotgun_fields.py

설명: 값 표시 방법을 제어하는 후크입니다.

팔로우

0 댓글

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