2 minute read

Flow Production Tracking (이전 ShotGrid)는 프로젝트 관리 도구로, 특히 영상 제작 과정에서 복잡한 작업들을 관리하기위해 사용됩니다.

간단한 역사

디즈니사에서는 처음 3D 영화를 제작할 때 엑셀로 프로젝트를 관리했습니다. 그러나 프로젝트 규모가 커지면서 전용 도구의 필요성을 느꼈고, 이에 따라 전용 프로젝트 매니지먼트 툴인 Shotgun Software가 개발되었습니다. 이후, 이 도구는 디즈니를 떠나 독립적으로 운영되었으며, 후에 오토데스크사에 인수되었습니다. 2021년에는 ShotGrid라는 이름으로 운용되었으나, 최근에는 “Flow Production Tracking (FPTR)”로 변경되었습니다.

용어 정리

  • 샷 (Shot): 카메라가 1회 녹화한 분량 (녹화 시작부터 종료까지).
  • 시퀀스 (Sequence): 같은 주제를 가진 샷들의 집합.
  • 영화 (Film): 여러 시퀀스들의 모음.

FPTR의 기능

  • 일정 관리(Scheduling):
    • 프로젝트의 전체 일정을 관리하고, 각 샷의 마감일을 설정
  • 작업 할당(Task Assignment):
    • 팀원들에게 구체적인 작업을 할당하고, 작업 진행 상황을 추적
  • 버전 관리(Version Control):
    • 각 태스크의 다양한 버전을 관리하고, 변경 사항을 기록
  • 검토 및 피드백(Review and Feedback):
    • 태스크/샷에 대한 리뷰를 받고, 피드백을 기록하여 수정 작업에 반영
  • 통합(Integration):
    • python-api를 통해 FPTR와 사용자의 도구를 쉽게 통합할 수 있습니다.
    • 예시: 자동화 프로세스 구축, 타사 소프트웨어 패키지 통합, 스튜디오 내 기존 도구와 통신

FPTR 구성

sg_arch

FPTR의 각 구성요소들은 개별적인 엔티티로 이해하면 됩니다.

1. 프로젝트(Project):

  • 최상위 레벨; 모든 작업과 데이터는 특정 프로젝트 내에서 이루어집니다.

    2. 시퀀스(Sequence)와 에셋 타입(Asset Type):

  • 프로젝트안에는 시퀀스와 에셋 타입 두가지 주요 카테고리를 가지고 있습니다.
  • 시퀀스: 영상 제작의 특정 부분을 의미, 동일한 주제를 가진 여러 샷으로 구성
  • 에셋 타입: 제작에 필요한 다양한 리소스 유형들

    3. 샷(Shots)과 에셋(Assets):

  • 샷: 시퀀스 내의 각각의 장면이나 컷
  • 에셋: 에셋 타입 내의 각각의 개별 리소스

4. 태스크(Tasks):

  • 샷과 에셋 각각에 연결된 구체적인 작업들을 나타냅니다.
  • 특정 샷에 대한 작업: 원화, 애니메이션, FX, 조명
  • 특정 어셋에 대한 작업: 원화, 모델링, 리깅, 텍스처

5. 노트(Notes):

  • 작업 진행 상황이나 피드백 등을 기록하는데 사용되며, 각 샷이나 에셋, 또는 그에 관련된 태스크에 대한 노트를 남길 수 있습니다.

6. 버전(Version):

  • 샷이나 에셋의 각 작업물의 버전 관리를 위한 요소입니다. 작업물이 업데이트되거나 수정될때마다 새로운 버전이 생성됩니다.

7. 플레이리스트(Playlist):

  • 여러 버전을 모아놓은 리스트입니다. 특정 작업의 여러 버전을 한눈에 보고 비교하거나 리뷰할 수 있습니다.

Flow Production Tracking Python API library(공식 문서 바로가기)

FPTR python-api에서는 필드를 조회할 때 Field Code를 사용하며, 필드 이름으로 조회합니다.

python-api 설치 및 환경 설정

python-api를 설치하기 위해 다음 단계를 따릅니다(Windows 기준):

  1. Python 3.10 설치
  2. Python을 환경 변수에 추가
  3. 경로를 C:\python310으로 지정

API로그인 스크립트 계정

API를 사용하여 스크립트 계정으로 로그인할 때는 사용자가 ID, 비밀번호를 설정하고 개인 엑세스 토큰을 생성해야 합니다.

사용 예제

  1. 클래스를 임포트하고 인스턴스를 생성합니다.
  2. 이후 CRUD 작업을 수행합니다.
  3. FPTR에서의 ‘Read’는 find 함수를 사용합니다.
sg.find("Shot", [["code", "is", "010"]], ["code"])

팁: pprint() 함수를 사용하면 자동 포매팅이 되어 결과를 보기 쉽게 할 수 있습니다.

FPTR로 개발 할수 있는것은?

스탠드 얼론 프로그램:

  • FPTR과 상호작용할 수 있는 독립적인 프로그램을 개발할 수 있습니다.
  • 예시: PySide를 사용하여 GUI를 구현하고, FPTR API3를 통해 데이터를 가져와서 보여줄 수 있음

AMI(액션 메뉴 아이템):

  • 메뉴 항목을 추가하여 사용자가 원하는 작업을 수행할 수 있도록 할 수 있습니다.
  • 예시: 샷이나 태스크를 선택한 후에 메뉴에서 “다운로드”를 선택하면 해당 데이터의 파일들을 일괄로 다운로드 가능

이벤트 데몬:

  • FPTR에서 발생하는 모든 이벤트를 감지하고 자동으로 특정 작업을 수행하는 데몬을 개발할 수 있습니다.
  • 예시: 새로운 샷이 생성되거나 태스크가 완료될 때마다 이벤트를 감지하고 특정 알림을 보내는 등의 작업을 수행

요구사항에 따라 아래와 같이 구현할 수 있습니다:

  • 웹 구현: 사용자 인터페이스나 서비스를 웹 애플리케이션으로 구현할 수 있습니다.
  • 커스텀 프로토콜: 사용자가 직접 정의한 프로토콜을 사용하여 특정한 애플리케이션을 실행하거나 상호작용할 수 있습니다.

Leave a comment