Photoshop CC

Photoshop CC용 Shotgun 엔진

Photoshop CC용 Shotgun 통합
최신 버전: v1.7.2(prod)
버전 번호의 경우 유의적 버전 표준을 따릅니다.
시스템 이름: tk-photoshopcc

참고: 이 문서에서는 툴킷 구성에 대한 제어 권한이 있는 경우에만 사용할 수 있는 기능에 대해 설명합니다. 자세한 정보는 Shotgun 통합 사용자 안내서를 참조하십시오.
개요 요약
설명서
      인터페이스 개요
      설치
      익스텐션 활성화
      인터페이스 구성요소
            컨텍스트 헤더
            즐겨찾기 선반
            명령 목록
            상황에 맞는 메뉴
            로깅 콘솔
      구성 및 기술 상세 정보
            PySide
            CEP 익스텐션
            즐겨찾기 구성
            컨텍스트 필드 표시 후크
            Photoshop API
                  
            환경 변수
            앱 개발자 노트
            이전 통합에서 전환
설치, 업데이트 및 개발
구성 옵션

Photoshop용 Shotgun 엔진에는 Shotgun Pipeline Toolkit 앱을 Photoshop CC로 통합하기 위한 표준 플랫폼이 포함되어 있습니다. 설치가 완료되면 Maya, Nuke 및 기타 응용프로그램에 있는 동일한 앱을 실행할 수 있습니다. 전체 Photoshop API가 앱 개발자에게 노출되므로 Photoshop 플러그인 빌드 및 배포 방법에 대한 자세한 내용을 알지 못하거나 별도로 컴파일하지 않아도 Python 및 Qt를 사용하여 Photoshop 기능을 신속하게 빌드할 수 있습니다.

지원되는 응용프로그램 버전

이 항목은 테스트를 거쳐 2015.5-2019 응용프로그램 버전에서 작동하는 것으로 알려져 있습니다. 최신 릴리즈에서는 더 완벽하게 작동할 수 있지만 이러한 버전에서 아직 공식적으로 테스트되지는 않았습니다.

설명서

Photoshop CC용 Shotgun 엔진은 Photoshop CC 워크플로우에 Shotgun을 통합하기 위한 플랫폼을 제공합니다. 이는 표준 Shotgun Pipeline Toolkit 엔진으로 구성되며 tk-framework-adobe(CEP)를 사용합니다.

활성화되면 Photoshop CC에서 Shotgun 패널을 사용할 수 있게 됩니다. Shotgun 컨텍스트에 대한 정보와 현재 해당 컨텍스트에 설치된 앱에 등록된 명령을 표시합니다.

인터페이스 개요

Shotgun 익스텐션 패널은 기본 Photoshop CC 패널과 동일한 색상 팔레트 및 기본 레이아웃을 사용합니다. Shotgun 익스텐션 패널은 다음 다섯 가지 구성요소로 이루어져 있습니다.

  1. 컨텍스트 헤더 - 현재 컨텍스트에 대한 썸네일 및 필드입니다.
  2. 즐겨찾기 선반 - 현재 컨텍스트에서 가장 많이 사용되는 앱을 표시하도록 디자인되었습니다.
  3. 명령 목록 - 현재 컨텍스트에서 자주 사용되지 않는 모든 명령입니다.
  4. 상황에 맞는 메뉴 - 추가 컨텍스트 관련 명령 및 디버깅 도구입니다.
  5. 로깅 콘솔 - 디버깅용 로깅 출력을 표시하는 콘솔 오버레이입니다.

설치

Photoshop CC용 Shotgun 엔진의 설치는 다른 Shotgun 통합과 동일한 프로토콜을 수행합니다. 엔진 및 앱 설치에 대한 자세한 정보는 툴킷 관리 문서를 참조하십시오. 또한 통합 구성 방법의 예로 기본 툴킷 구성을 참조할 수 있습니다.

익스텐션 활성화

익스텐션이 설치되면 Photoshop CC의 익스텐션 메뉴를 통해 익스텐션을 실행해야 합니다.

이 작업은 한 번만 수행하면 되고 Shotgun 익스텐션 패널은 이후 시작 시 활성화할 필요 없이 Photoshop CC 레이아웃에 유지될 수 있습니다.

활성화하고 이후에 시작하면 Shotgun 통합이 부트스트랩되는 동안 익스텐션 패널에 로딩 화면이 표시됩니다.

이 화면은 일반적으로 현재 컨텍스트가 결정되고 명령이 표시되기까지 몇 초 동안 표시됩니다.

인터페이스 구성요소

다음 섹션에서는 Shotgun Photoshop CC 통합의 구성요소를 간략하게 설명합니다.

컨텍스트 헤더

컨텍스트 헤더는 현재 Shotgun 컨텍스트에 대한 정보를 표시할 수 있는 커스터마이즈 가능 영역입니다.

컨텍스트는 현재 활성 문서에 의해 결정됩니다. 엔진에서 컨텍스트가 결정되면 헤더가 업데이트되어 컨텍스트의 썸네일 필드 상세 정보가 표시됩니다. 필드 정보는 후크로 제어됩니다. 필드 표시를 커스터마이즈하는 방법에 대한 자세한 정보는 아래의 컨텍스트 필드 표시 후크 섹션을 참조하십시오.

또한 Photoshop CC는 다중 문서 인터페이스이므로 활성 문서를 변경하면 컨텍스트가 업데이트되고 따라서 Shotgun 익스텐션도 업데이트됩니다. 특히 여러 Shotgun 컨텍스트에서 동시에 작업할 때 아티스트가 이 동작을 이해하는 것이 중요합니다.

즐겨찾기 선반

즐겨찾기 선반은 Maya 및 Houdini와 같은 다른 Shotgun DCC 통합에서 사용할 수 있는 메뉴 즐겨찾기와 유사합니다. 이 인터페이스 섹션에서는 가장 일반적으로 사용되는 툴킷 앱을 컨텍스트 헤더 바로 아래에서 쉽게 사용할 수 있고 쉽게 찾습니다.

선반은 즐겨찾는 명령을 버튼으로 표시하며, 버튼 위에 마우스 커서를 놓으면 회색 음영에서 색상으로 전환되고 상단의 레이블에 이름이 표시됩니다. 버튼 위에 마우스 커서를 놓으면 버튼에 대한 툴팁이 표시됩니다.

버튼 중 하나를 클릭하면 실행하도록 등록된 명령에 대한 콜백이 트리거됩니다.

명령 즐겨찾기를 지정하는 방법에 대한 자세한 정보는 아래의 선반 즐겨찾기 섹션을 참조하십시오.

명령 목록

명령 목록에는 현재 컨텍스트에 대해 등록된 다른 "일반" 명령이 표시됩니다.

일반적으로 파이프라인 구성 내에 설치된 앱은 여기에 표시되는 하나 이상의 명령을 등록합니다. 명령이 즐겨찾기로 식별되지 않고 상황에 맞는 메뉴 명령으로도 식별되지 않는 경우 여기에 표시됩니다.

명령 목록 버튼은 즐겨찾기 선반의 버튼과 비슷한 방식으로 동작합니다. 유일한 차이점은 아이콘의 오른쪽에 전체 이름이 있는 목록으로 표시된다는 점입니다.

상황에 맞는 메뉴

상황에 맞는 메뉴 명령으로 등록된 모든 명령은 Shotgun 익스텐션 패널의 상황에 맞는 메뉴에 표시됩니다.

다른 명령 영역과 마찬가지로 이러한 명령은 컨텍스트와 함께 변경됩니다. Shotgun으로 이동(Jump to Shotgun)파일 시스템으로 이동(Jump to Filesystem)과 같은 명령은 항상 여기에서 사용할 수 있습니다.

로깅 콘솔

로깅 콘솔에는 CEP Javascript 인터프리터 및 툴킷의 Python 프로세스의 모든 로깅 출력이 표시됩니다.

익스텐션에 문제가 있어 지원이 필요한 경우 로깅 콘솔 출력은 Shotgun 지원 팀이 문제를 디버깅하는 데 매우 유용합니다.

구성 및 기술 상세 정보

다음 섹션에서는 스튜디오 파이프라인의 특정 요구 사항으로 통합을 구성할 수 있는 통합의 보다 기술적인 측면에 대해 설명합니다.

PySide

Photoshop CC용 Shotgun 엔진은 PySide를 사용합니다. Pyside 설치에 대한 공식 지침을 참조하십시오.

CEP 익스텐션

익스텐션 자체는 엔진과 함께 번들로 제공되며 엔진은 Photoshop CC를 처음 시작할 때 자동으로 설치를 처리합니다. 익스텐션은 아티스트의 로컬 컴퓨터에 OS별 CEP 익스텐션 표준 디렉토리에 설치됩니다.

# Windows
> C:\Users\[user name]\AppData\Roaming\Adobe\CEP\extensions\

# OS X
> ~/Library/Application Support/Adobe/CEP/extensions/

Photoshop CC를 시작할 때마다 엔진 부트스트랩 코드는 엔진과 함께 번들로 제공되는 익스텐션 버전을 컴퓨터에 설치된 버전과 비교하여 검사합니다. 즉, 엔진 업데이트 후 새 익스텐션 버전이 함께 제공된 경우 설치된 익스텐션이 번들로 제공되는 새 버전으로 자동 업데이트됩니다.

즐겨찾기 구성

즐겨찾기 선반은 설치된 앱에 등록된 모든 명령을 표시하도록 구성할 수 있습니다. 이렇게 하려면 환경 설정의 tk-photoshopcc 섹션에 shelf_favorites 구성을 추가하면 됩니다. 다음은 예입니다.

shelf_favorites:
    - {app_instance: tk-multi-workfiles2, name: File Save...}
    - {app_instance: tk-multi-workfiles2, name: File Open...}
    - {app_instance: tk-multi-publish, name: Publish...}
    - {app_instance: tk-multi-snapshot, name: Snapshot...}

설정의 값은 구성에 설치된 앱 중 하나에서 제공하는 등록된 명령을 식별하는 사전 목록입니다. app_instance 키는 설치된 특정 앱을 식별하고 name 키는 해당 앱에서 등록된 명령의 표시 이름과 일치합니다. 위의 예에서 즐겨찾는 네 가지 명령, tk-multi-workfiles2 앱의 파일 열기 및 저장 대화상자와 표준 툴킷 게시 및 스냅샷 대화상자를 볼 수 있습니다. 이제 이 네 가지 명령이 즐겨찾기 선반에 표시됩니다.

컨텍스트 필드 표시 후크

엔진에는 패널의 컨텍스트 헤더 섹션에 표시되는 필드를 제어하는 후크가 제공됩니다. 후크에서 표시되는 항목을 커스터마이즈하기 위해 재지정할 수 있는 두 가지 메서드가 있습니다.

첫 번째는 get_entity_fields() 메서드입니다. 이 메서드는 현재 Shotgun 컨텍스트를 나타내는 엔티티 유형을 적용합니다. 예상되는 반환값은 표시를 위해 쿼리해야 하는 해당 엔티티의 필드 목록입니다. 엔진 자체는 비동기적으로 데이터 쿼리를 처리합니다.

Shotgun에서 데이터를 쿼리하면 후크의 두 번째 메서드가 호출됩니다. 이 get_context_html() 메서드는 get_entity_fields() 메서드에서 지정된 쿼리된 필드로 채워진 컨텍스트 엔티티 사전을 수신합니다. 예상되는 반환값은 쿼리된 엔티티 필드를 표시하도록 형식이 지정된 HTML을 포함하는 문자열입니다.

기본 후크 구현은 이러한 메서드에 필요한 사항에 대한 좋은 참조 자료입니다.

엔진은 엔티티 썸네일을 사용할 수 있는 경우 항상 이를 표시합니다.

Photoshop API

이 엔진은 Photoshop CC용 Javascript API를 Python에 노출합니다. 이 API에 대한 전체 문서는 여기에서 찾을 수 있습니다.

Photoshop API 객체는 engine.adobe로 노출됩니다. 아래 예는 툴킷 앱과 후크 내에서 Photoshop DOM을 직접 조작하는 방법을 보여 줍니다. 표준 툴킷 앱에는 Photoshop 문서와 상호 작용하는 방법에 대한 작업 예가 포함되어 있습니다.

파일 로드:

f = adobe.File('/Path/To/File.jpeg')
adobe.app.load(f)

눈금자 단위를 픽셀로 설정:

pixels = adobe.Units.PIXELS
adobe.app.preferences.rulerUnits = pixels

기본 옵션을 사용하여 현재 웹 문서 내보내기:

temp_thumb_file = adobe.File(out_path)
save_for_web = adobe.ExportType.SAVEFORWEB
export_options = adobe.ExportOptionsSaveForWeb()
adobe.app.activeDocument.exportDocument(temp_thumb_file, save_for_web, export_options)

각 레이어를 별도의 파일로 내보내기:

doc = adobe.app.activeDocument
layers = doc.artLayers
layers = [layers[i] for i in xrange(layers.length)]
original_visibility = [layer.visible for layer in layers]

save_for_web = adobe.ExportType.SAVEFORWEB
export_options = adobe.ExportOptionsSaveForWeb()

for layer in layers:
    layer.visible = False

for layer in layers:
    layer.visible = True
    out_file = adobe.File("c:/layer.%s.jpg" % str(layer.name))
    doc.exportDocument(
        out_file,
        save_for_web,
        export_options,
    )
    layer.visible = False

for (i, layer) in enumerate(layers):
    layer.visible = original_visibility[i]

환경 변수

디버깅을 돕기 위해 엔진의 일부 기본값을 변경하는 일련의 환경 변수가 있습니다.

SHOTGUN_ADOBE_HEARTBEAT_INTERVAL - Python heartbeat 간격(초)입니다(기본값: 1초). 레거시 환경 변수 SGTK_PHOTOSHOP_HEARTBEAT_INTERVAL 역시 설정된 경우 적용됩니다.

SHOTGUN_ADOBE_HEARTBEAT_TOLERANCE - 종료하기 전 heartbeat 오류 수입니다(기본값: 2). 레거시 환경 변수 SGTK_PHOTOSHOP_HEARTBEAT_TOLERANCE 역시 설정된 경우 적용됩니다.

SHOTGUN_ADOBE_NETWORK_DEBUG - 출력 로깅 시 추가 네트워킹 디버그 메시지를 포함합니다. 레거시 환경 변수 SGTK_PHOTOSHOP_NETWORK_DEBUG 역시 설정된 경우 적용됩니다.

SHOTGUN_ADOBE_PYTHON - 엔진을 시작할 때 사용할 Python 실행 파일의 경로입니다. 설정되지 않은 경우 시스템 Python이 사용됩니다. Photoshop이 Shotgun 데스크톱과 같은 Python 프로세스에서 또는 tk-shell 엔진을 통해 시작되면 해당 프로세스에서 사용되는 Python이 Photoshop 통합에서 사용됩니다.

참고: Adobe 프레임워크에 추가 환경 변수가 존재합니다. 자세한 내용은 개발자 설명서에서 참조하십시오.

앱 개발자 노트

  • Python 프로세스는 Photoshop CC 프로세스와 별개이므로 가능한 깔끔한 방식으로 Photoshop 창 위에 표시되는 앱 창을 만들기 위해 엔진 내에서 일부 작업이 수행됩니다. 이 설정의 한 가지 문제는 QFileDialog의 경우 기본 OS 창을 사용하도록 하는 기본 옵션입니다. 이 엔진과 함께 사용할 앱을 개발하는 경우 기본 대화상자를 사용하지 않도록 옵션을 설정해야 합니다. tk-multi-pythonconsole 앱에서 이 예를 참조하십시오.

이전 통합에서 전환

레거시 Photoshop 통합에서 전환하는 방법에 대한 지침은 이 문서를 참조하십시오. 문제가 발생하거나 이 전환에 대해 더 궁금한 점이 있으면 Shotgun 지원에 문의하십시오.

설치 및 업데이트

Shotgun Pipeline Toolkit에 이 엔진 추가

asset 환경의 XYZ 프로젝트에 이 엔진을 추가하려면 다음 명령을 실행합니다.

> tank Project XYZ install_engine asset tk-photoshopcc

최신 버전으로 업데이트

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

> cd /my_tank_configs/project_xyz
> ./tank updates

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

> tank Project XYZ updates

협업 및 개선

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

특별 요구 사항

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

구성

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

automatic_context_switch

유형: bool

기본값: True

설명: 활성 문서 변경 시 컨텍스트 변경 여부를 제어합니다.

shelf_favorites

유형: list

설명: Shotgun 패널의 즐겨찾기 선반에 나타나는 등록된 명령을 제어합니다. 이 설정은 하나의 목록이며 각 요소는 'app_instance' 및 'name' 키가 포함된 사전입니다. 'app_instance' 키는 이 항목을 환경 구성 파일에 정의된 특정 앱 인스턴스에 연결합니다. 'name'은 즐겨찾기를 만들기 위한 명령 이름입니다.

debug_logging

유형: bool

설명: 디버거 메시지를 로거로 내보낼지 여부를 제어합니다.

context_fields_display_hook

유형: hook

기본값: {self}/context_fields_display.py

설명: 컨텍스트 필드를 쿼리하고 컨텍스트 헤더에 표시하는 방법을 제어하는 후크입니다.

팔로우