환경 구성 참조

소개

툴킷 파이프라인의 핵심에는 환경 구성이 있습니다. 툴킷 파이프라인 구성 내에서 환경 구성 파일은 다양한 DCC 내에서 사용할 수 있는 툴킷 앱을 정의하고 각 설정을 커스터마이즈할 수 있는 곳입니다. 이 문서는 환경 구성 파일의 구조 및 기능을 전체적으로 소개하는 완전한 참조 자료입니다. 이 문서에서는 프로젝트 내에서 다양한 워크플로우를 구성할 수 있게 해 주는 툴킷 환경의 개념과 커스터마이즈할 수 있는 항목을 찾는 방법에 대해 설명합니다.

참고 : 이 문서는 환경 구성 파일에 대한 참조 자료로 사용될 수 있으며 툴킷 기본 사항 안내서의 파이프라인 구성 편집에서는 구성 설정 편집에 대한 단계별 예제를 확인할 수 있습니다.

환경이란?

ShotGrid 툴킷 플랫폼은 스튜디오 파이프라인을 구축하는 데 일반적으로 사용되는 컨텐츠 작성 소프트웨어를 위해 완전히 커스터마이즈 가능한 통합 세트를 제공합니다. 프로젝트 구성 내에서 통합이 있는 소프트웨어 패키지, 각각 사용 가능한 툴킷 앱, 각 앱에 대한 옵션을 지정하여 스튜디오의 요구 사항에 맞게 아티스트 워크플로우를 구축할 수 있습니다.

하지만 대부분의 스튜디오 파이프라인에서는 아티스트 유형별로 다른 워크플로우를 사용하는 것이 일반적입니다. 간단한 예로, 에셋 작업 중인 아티스트의 경우 텍스처 페인팅 소프트웨어(예: Mari)를 사용하게 하고 샷 작업 중인 아티스트의 경우에는 컴포지팅 소프트웨어(예: Nuke)를 사용하게 할 수 있습니다.

소프트웨어 패키지뿐 아니라 동일한 툴킷 앱에 대한 설정도 아티스트별로 다르게 지정할 수 있습니다. 예를 들어 샷 아티스트와 에셋 아티스트 둘 다 Workfiles 앱을 사용할 수 있지만 샷 아티스트는 샷 엔티티, 에셋 아티스트는 에셋 엔티티와 관련된 파일로만 파일 네비게이션을 제한할 수 있습니다.

프로젝트 내에서 이렇게 서로 다른 워크플로우를 지원하기 위해 툴킷은 환경에서 앱과 엔진 구성을 분리합니다. 각 환경에는 소프트웨어 패키지 셋트의 통합과 설정이 모두 공통적으로 포함되어 있습니다.

위의 예에서 에셋 작업 중인 아티스트는 에셋 단계 환경에서 작업하고 샷 작업 중인 아티스트는 샷 단계 환경에서 작업합니다. 각 환경은 서로 독립적으로 구성되므로 한 프로젝트 내에서 각기 다른 워크플로우를 사용할 수 있습니다.

툴킷의 기본 구성에 대한 참고 사항

툴킷은 환경을 구성하는 방식에 있어 매우 자유롭습니다. 이 문서에서는 사용 가능한 모든 옵션을 모두 소개하므로 파이프라인 요구 사항에 가장 적합한 선택을 하는 데 필요한 지식을 얻을 수 있습니다.

또한 이 문서에서는 기본 구성이라는 시작점으로 제공되는 파이프라인 구성의 선택 사항에 대해서도 설명합니다. 파이프라인을 커스터마이즈할 준비가 된 경우 첫 번째 단계는 프로젝트에 대해 편집 가능한 파이프라인 구성을 생성하는 것입니다.

이러한 선택 사항은 일반적인 규칙일 뿐이고 툴킷 워크플로우에 하드코딩되지 않으므로, 기본 구성은 파이프라인을 커스터마이즈한 후 사용할 수 있는 기능을 학습하기 위한 예제로 참조하거나 고유의 구성을 설정하기 위한 모범 사례로 사용하는 것이 좋습니다. 또한 새로운 툴킷 사용자를 위한 시작점으로도 좋으며 몇 가지 규칙을 알아 두면 유용합니다. 이 문서에서는 툴킷 환경 구성의 일반적인 기능과 기본 구성에 특정한 선택 사항을 구분해 두었습니다. 기본 구성의 환경 구조에 대한 자세한 내용은 읽어보기 파일을 참조하십시오.

파일 위치

파이프라인 구성에서 config/ 디렉토리에는 커스터마이즈할 수 있는 모든 파일 및 폴더가 포함됩니다. config/에는 세 개의 하위 디렉토리(cache, coreenv)가 있습니다. env 디렉토리에 환경 구성 파일이 있으므로 이 문서에서는 config/env의 파일을 참조합니다.

env 폴더 컨텐츠

기본 구성의 config/env/에는 다음 파일이 있습니다.

asset.yml
asset_step.yml
project.yml
sequence.yml
shot.yml
shot_step.yml

이러한 각 파일이 환경에 해당하며 별도 파일을 사용하면 각 환경을 별도로 구성할 수 있습니다.

툴킷이 현재 환경을 결정하는 방식

툴킷은 pick_environment라는 코어 후크를 사용하여 현재 컨텍스트를 기반으로 지정된 시간에 사용할 환경 파일을 결정합니다. pick_environment 후크의 반환 값은 환경 구성 파일에 해당합니다. 예를 들어 pick_environmentshot_step을 반환하는 경우 툴킷은 config/env/shot_step.yml을 사용하여 툴킷 환경을 구성합니다.

커스텀 환경

위에 나열된 환경 구성 파일은 기본 구성에서 제공하는 파일입니다. 그러나 일부 스튜디오에서는 다른 환경 또는 추가 환경을 필요로 할 수 있습니다. 예를 들어 스튜디오에서 파이프라인 단계(asset_step_rig, asset_step_model, shot_step_anim, shot_step_light 등)마다 다른 구성 설정을 사용해야 할 수 있습니다. 다행히도 사용 가능한 환경을 완전히 커스터마이즈할 수 있습니다.

이렇게 하려면 원하는 환경 구성 파일을 config/env 디렉토리에 추가해야 합니다. 그런 다음 pick_environment 코어 후크를 재지정하여 새 환경을 사용할 때 정의하는 로직에 추가합니다.

기본 구조

툴킷의 구성 파일은 YAML로 작성됩니다. 모든 번들(앱, 엔진 또는 프레임워크)의 일반적인 구성은 다음과 같은 구조로 되어 있습니다.

bundle_name:
  setting1: value
  setting2: value
  complex_setting:
    sub_setting1: value  
    Sub_setting2: value
  location:
    type: descriptor_type
    descriptor_setting1: value
    descriptor_setting2: value

이 구조를 보여 주는 간단한 예제가 아래에 있습니다(단일 엔진이 있고 엔진 내에 단일 앱이 정의된 환경). 다음은 이 구성에서 project.yml의 내용이 될 수 있습니다.

engines:
  tk-maya:
    apps:
      tk-multi-workfiles2:
        location:
          type: app_store
          name: tk-multi-workfiles2
          version: v0.11.8
    location:
        type: app_store
        name: tk-maya
        version: v0.9.4

엔진 블록

모든 환경 구성 파일은 engines 블록으로 시작합니다. 해당 환경에 대해 정의된 모든 엔진이 이 블록 내에 중첩됩니다.

이 예에서는 하나의 엔진, tk-maya만 정의되어 있습니다. 여기에는 두 개의 설정(appslocation)이 나열되어 있습니다.

location은 모든 번들에 필요한 특수한 설정입니다. apps 설정은 엔진에 대해 정의된 모든 앱의 목록으로, 각 앱에는 자체 설정이 있습니다. 이 예에서는 엔진에 대해 하나의 앱, tk-multi-workfiles2만 정의되어 있습니다.

위치 디스크립터

모든 툴킷 번들에는 번들의 디스크립터라고 불리는 location 설정이 있습니다. 디스크립터를 통해 툴킷은 지정된 번들의 위치를 파악하고 해당 유형에 따라 직접 액세스할지 아니면 로컬로 캐시할지 여부를 파악합니다. 툴킷 번들을 가져올 수 있는 위치는 ShotGrid 앱 스토어, git 리포지토리, 디스크의 경로 또는 ShotGrid 사이트에 업로드된 ZIP 파일 등입니다. 이러한 각 위치에 해당하는 디스크립터 유형이 있으며 여기에는 해당 유형과 관련된 설정이 포함됩니다. 위 예제의 tk-maya 엔진에 대한 디스크립터는 다음과 같습니다.

    location:
        type: app_store
        name: tk-maya
        version: v0.9.4

이 예는 app_store 유형의 디스크립터로, 툴킷이 ShotGrid 앱 스토어에서 지정된 번들을 가져오도록 합니다. app_store 유형의 디스크립터에는 nameversion 설정이 있습니다.

한편, 커스텀 번들을 개발 중이고 스튜디오의 특정 워크플로우에 대한 툴킷 앱을 작성 중인 경우 디스크의 경로에서 직접 가져오고 싶을 수 있습니다. 이 경우 다음과 같이 dev 유형의 디스크립터를 사용합니다.

    location:
        type: dev
        path: /path/to/app

dev 디스크립터에는 app_store 디스크립터와 다른 설정이 있습니다. 다른 설정을 가져올 수 있지만 디스크에 있는 앱 위치를 가리키는 path 설정으로 간단하게 설정할 수 있습니다.

사용 가능한 모든 디스크립터 유형 및 해당 설정에 대한 자세한 내용은 Toolkit Core API 문서의 디스크립터 섹션을 참조하십시오.

앱 블록

앱은 툴킷의 사용자 도구로, 각 앱은 서로 독립적으로 실행할 수 있습니다. 파이프라인 요구 사항에 맞게 사용할 앱을 선택할 수 있으며 엔진 블록 내의 apps 설정은 지정된 엔진에서 사용할 수 있는 앱을 정의하는 곳입니다.

위 예제에서 apps 설정은 다음과 같습니다.

engines:
  tk-maya:
    apps:
      tk-multi-workfiles2:
        location:
          type: app_store
          name: tk-multi-workfiles2
          version: v0.11.8

단일 앱인 tk-multi-workfiles2 앱이 정의되어 있는 것을 확인할 수 있습니다. 현재는 하나의 설정(디스크립터)만 정의되어 있습니다.

project 환경의 tk-maya 엔진에서 다른 앱을 사용할 수 있도록 하려면 여기에 추가합니다. 엔진에 Panel, tk-multi-shotgunpanel 및 앱 정보 tk-multi-about을 추가해 보겠습니다. project.yml 예제 파일은 이제 다음과 같이 표시됩니다.

engines:
  tk-maya:
    apps:
      tk-multi-about:
        location:
          type: app_store
          name: tk-multi-about
          version: v0.2.8
      tk-multi-shotgunpanel:
        location:
          type: app_store
          name: tk-multi-shotgunpanel
          version: v1.6.3
      tk-multi-workfiles2:
        location:
          type: app_store
          name: tk-multi-workfiles2
          version: v0.11.8
    location:
        type: app_store
        name: tk-maya
        version: v0.9.4

이때 다음과 같은 몇 가지 중요 사항에 유의해야 합니다.

  • 기본 구성에는 번들이 알파벳순으로 나열되며 이 예에서는 해당 규칙을 따릅니다.
  • 파일이 길어지기 시작하고 있지만 아직 어떤 구성 설정도 추가하지 않은 상태입니다.
  • 다른 엔진 및 다른 환경에서도 이와 동일한 앱을 사용할 수 있습니다. 예를 들어 다른 엔진(예: Houdini, Nuke 또는 Photoshop) 및 다른 환경(예: asset_step 또는 shot_step)에도 이 세 개의 앱(Panel 앱, About 앱, Workfiles 앱)이 모두 있을 수 있습니다. 구성에서 여러 곳에 공통 앱 설정을 정의하면 변경 시에도 여러 곳에서 수정해야 합니다.

마지막 두 가지 문제점을 해결하기 위해 툴킷 구성은 includes를 지원합니다.

Includes

includes는 구성에서 한 파일의 섹션을 다른 파일에서 참조할 수 있게 해 줍니다. includes를 사용하면 한 곳에서 구성 설정을 설정한 후 여러 환경에서 사용할 수 있습니다.

includes는 두 부분으로 구성됩니다.

  • includes 목록: 키가 includes인 YAML 사전이며 값은 포함할 모든 파일의 목록입니다.
  • 구성 설정 내의 참조: 앞에 @ 기호가 붙고, 포함된 파일에서 참조할 섹션의 이름을 가리키도록 명명됩니다.

위의 예제를 구체화하기 위해 모든 엔진에 대한 위치 디스크립터가 있는 단일 파일이 있다고 가정합니다. 이 파일을 includes 하위 폴더에 넣고 engine_locations.yml로 지정하겠습니다.

engine_locations.yml의 내용은 다음과 같습니다.

config/env/includes/engine_locations.yml:

engines.tk-maya.location:
  type: app_store
  name: tk-maya
  version: v0.9.4

engines.tk-nuke.location:
  type: app_store
  name: tk-nuke
  version: v0.11.5

...

이 파일은 모든 엔진 위치에 대한 단일 소스 역할을 하며 모든 환경 구성에서 참조할 수 있습니다. 이 포함 파일을 사용할 경우 예제는 이제 다음과 같이 표시됩니다.

config/env/project.yml:

includes:
- includes/engine_locations.yml

engines:
  tk-maya:
    apps:
      tk-multi-about:
        location:
          type: app_store
          name: tk-multi-about
          version: v0.2.8
      tk-multi-shotgunpanel:
        location:
          type: app_store
          name: tk-multi-shotgunpanel
          version: v1.6.3
      tk-multi-workfiles2:
        location:
          type: app_store
          name: tk-multi-workfiles2
          version: v0.11.8
    location: @engines.tk-maya.location

engine_locations 포함 파일

tk-maya 엔진에 대한 location 설정 값이 이제 포함된 YAML 파일의 키에 대한 참조임을 확인할 수 있습니다.

참고 : 이 예제에서와 같이 config/env/includes/engine_locations.yml 파일에 모든 엔진 위치가 있는 기본 구성의 규칙을 따릅니다.

앱 위치에 대한 두 번째 포함 파일을 추가할 수 있으며 사실 기본 구성은 이 작업을 수행합니다. 예제를 확장해 보겠습니다.

config/env/includes/app_locations.yml:

apps.tk-multi-about.location:
  type: app_store
  name: tk-multi-about
  version: v0.2.8

apps.tk-multi-shotgunpanel.location:
  type: app_store
  name: tk-multi-shotgunpanel
  version: v1.6.3

apps.tk-multi-workfiles2.location:
  type: app_store
  name: tk-multi-workfiles2
  version: v0.11.8

config/env/project.yml:

includes:
- includes/app_locations.yml
- includes/engine_locations.yml

engines:
  tk-maya:
    apps:
      tk-multi-about:
        location: @apps.tk-multi-about.location
      tk-multi-shotgunpanel:
        location: @apps.tk-multi-about.shotgunpanel.location
      tk-multi-workfiles2:
        location: @apps.tk-multi-workfiles2.location
    location: @engines.tk-maya.location

이제 포함된 engine_locations.yml 파일에서 tk-maya 엔진의 디스크립터를 가져오고 포함된 app_locations.yml 파일에서 tk-maya 엔진에 대해 정의된 각 앱의 디스크립터를 가져옵니다.

참고 : 기본 구성은 여기에 설명되지 않은 두 번째 중첩 수준을 사용합니다. 디스크립터 외에도 설정이 있는 모든 앱 또는 엔진에 includes/settings의 설정 파일(예: includes/settings/tk-maya.yml, includes/settings/tk-multi-workfiles2.yml)이 있습니다. 엔진 설정 파일에는 앱 설정 파일의 앱 설정이 포함되고 환경 구성 파일에는 엔진 설정 파일의 설정이 포함됩니다. 기본 구성의 구조에 대한 자세한 내용은 읽어보기 파일을 참조하십시오. 구성 설정 수정에 대한 자세한 내용은 툴킷 기본 사항 안내서의 파이프라인 구성 편집을 참조하십시오.

스파스 구성

모든 툴킷 번들에는 각 기본값이 포함된 일련의 구성 설정이 있습니다. 툴킷은 스파스 구성을 허용하므로 환경 구성 파일(및/또는 포함 파일)에 구성 설정이 명시적으로 지정되지 않은 경우에는 번들의 기본값이 사용됩니다.

이 예에서는 location을 제외하고 앱에 대한 어떤 설정도 지정하지 않았습니다. 따라서 구성의 현재 상태에서 세 개의 앱은 모든 설정에 대해 기본값을 사용합니다. 그렇다면 어떤 구성 설정을 사용할 수 있는지 어떻게 알 수 있을까요?

참고 : 툴킷 구성이 스파스일 필요는 없지만 기본 구성은 스파스 구성입니다.

사용 가능한 구성 설정 확인

스파스 구성의 경우 단순히 구성 파일을 보는 것만으로는 앱에 대해 사용할 수 있는 구성 설정을 바로 확인할 수 없습니다. 사용 가능한 앱 구성 설정을 확인하려면 두 가지 방법이 있습니다.

  • 앱 설명서: 각 앱에는 고유의 설명서 페이지가 있으며 이 각 페이지마다 “구성 옵션” 섹션이 있습니다. 이 섹션에는 각각의 설명 및 기본값을 포함하여 사용 가능한 모든 앱 구성 설정이 나와 있습니다. 예를 들어 Workfiles 설명서 페이지를 참조할 수 있습니다. 앱 및 엔진 페이지에는 모든 앱 및 엔진에 대한 문서 페이지가 나열되어 있습니다.
  • 매니페스트: 모든 툴킷 번들에는 루트 디렉토리에 info.yml 파일이 포함되어 있습니다. 이 파일을 번들의 매니페스트라고 하며 각각의 설명 및 기본값을 포함하여 번들에 대해 사용 가능한 모든 구성 설정을 정의합니다. 매니페스트는 번들의 자체 캐시(예: 파이프라인 구성 내의 install/app_store/tk-multi-workfiles2/v0.11.8/info.yml) 또는 GitHub(Workfiles용)에서 찾을 수 있습니다.

구성 설정 수정

기본값에서 구성을 수정하려면 파이프라인의 구성에서 적절한 환경의 적절한 블록에 추가하고 값을 설정하면 됩니다.

예제로 돌아가 프로젝트 환경에서 Maya를 시작할 때 tk-multi-workfiles2가 자동으로 시작되도록 구성한다고 가정해 보겠습니다. 앱의 매니페스트에서 응용프로그램 시작 시 Workfiles UI 시작 여부를 제어하는 launch_at_startup 설정이 있고 기본값은 False임을 확인할 수 있습니다. 따라서 launch_at_startup 옵션을 추가하고 해당 옵션을 True로 설정합니다. project.yml 파일은 이제 다음과 같이 표시됩니다.

config/env/project.yml:

includes:
- includes/app_locations.yml
- includes/engine_locations.yml

engines:
  tk-maya:
    apps:
      tk-multi-about:
        location: @apps.tk-multi-about.location
      tk-multi-shotgunpanel:
        location: @apps.tk-multi-about.shotgunpanel.location
      tk-multi-workfiles2:
        launch_at_startup: True
        location: @apps.tk-multi-workfiles2.location
    location: @engines.tk-maya.location

tk-multi-workfiles2에 대한 설정을 포함 파일에서 가져온 경우 해당 파일에서 설정을 변경해야 합니다.

추가 리소스


Edit this document