Houdini

Houdini용 Shotgun 엔진

Houdini에서 Shotgun Pipeline Toolkit 통합
최신 버전: v1.5.6(prod)
버전 번호의 경우 유의적 버전 표준을 따릅니다.
시스템 이름: tk-houdini

참고: 이 문서에서는 툴킷 구성에 대한 제어 권한이 있는 경우에만 사용할 수 있는 기능에 대해 설명합니다. 자세한 정보는 Shotgun 통합 사용자 안내서를 참조하십시오.
개요 요약
설명서
      앱 개발자를 위한 정보
            지원되는 플랫폼
            PySide
            메뉴 로드
            Shotgun 선반
            패널
            OTL을 사용하는 앱
            OSX에서 터미널을 통한 디버깅 시작
설치, 업데이트 및 개발
구성 옵션

Houdini용 Shotgun 엔진은 Shotgun Pipeline Toolkit 앱과 Houdini를 연결합니다. 여기에는 Windows를 위한 Qt/PySide 배포가 포함되는데, Houdini와 함께 번들로 제공되는 Python 버전과 호환되기 때문에 엔진에서 바로 실행되는 Python 및 PySide를 사용하여 앱을 작성할 수 있습니다.

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

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

개요 동영상

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

설명서

Houdini용 Shotgun 엔진에는 Shotgun 앱을 Houdini에 통합하기 위한 표준 플랫폼이 포함되어 있습니다.

Houdini용 Shotgun 엔진

앱 개발자를 위한 정보

지원되는 플랫폼

Houdini용 Shotgun 엔진은 현재 Windows, Linux 및 OSX에서 지원됩니다.

OSX에서는 Houdini의 최신 버전(14 및 15)만 지원됩니다. 이전 버전의 Houdini가 OSX용으로 컴파일된 방식으로 인해(운영 체제 레벨의 가비지 수집 기능 포함) 응용프로그램과 이진 호환되는 Qt 빌드가 지원되지 않았습니다. Houdini 14부터 Houdini는 PySide를 번들로 제공하므로 외부 빌드가 필요하지 않습니다.

PySide

Houdini의 이전 버전(13 이하)은 PySide의 외부 빌드가 필요합니다. Windows에서는 Houdini가 실행되는 Python에서 작동하는 호환 가능한 PySide 빌드가 번들로 제공됩니다. Linux에서 Houdini는 PySide 또는 PyQt를 지원해야 하는 시스템 Python(http://www.sidefx.com/docs/houdini12.0/hom/)을 사용합니다.

메뉴 로드

Shotgun 메뉴

Houdini 15의 파생 효과로 동적 메뉴 시스템이 도입되어 이제 엔진은 컨텍스트 스위치에서 Shotgun 메뉴를 다시 작성할 수 있습니다.

Houdini 14 이하에서는 Houdini의 Shotgun 메뉴가 Houdini가 시작되기 전에 생성되며 세션 전체에서 정적입니다. 이로 인해 메뉴에 등록된 툴킷 명령은 컨텍스트 변경 시 업데이트되지 않습니다.

Shotgun 선반

Shotgun 선반

v0.2.4 릴리즈는 엔진에 동적 Shotgun 선반을 도입했습니다. 선반에는 등록된 모든 앱 명령이 도구 버튼으로 표시됩니다. 버튼은 메뉴 명령과 거의 동일한 순서로 표시됩니다.

enable_sg_shelf 설정을 사용하여 환경 내에서 선반을 켭니다. 동적 메뉴를 지원하지 않는 Houdini 버전(14 이하)을 사용하는 경우 선반 사용 시 Shotgun 메뉴를 끌 수도 있습니다. 이 작업은 enable_sg_menu 설정을 false로 설정하여 수행할 수 있습니다.

선반을 통해 컨텍스트 전환을 활성화하려면 엔진 구성에서 tk-multi-workfiles 앱의 sg_entity_types 설정에 엔티티 유형도 추가해야 합니다.

Shotgun 선반과 관련된 설정을 살펴보겠습니다.

tk-houdini:
  apps:
    # ... other app definitions
    tk-multi-workfiles:
       # ... other app settings
       sg_entity_types: [Shot, Asset] # allow context switching to Shots or Assets
       # ... other app settings
  enable_sg_shelf: true
  enable_sg_menu: false
  # ... other engine settings

Shotgun 선반을 활성화한 후에는 수동으로 houdini 내부의 선반 세트에 추가해야 합니다.

Shotgun 선반 추가

선반 세트에 추가되면 Shotgun 선반은 houdini 세션 간에 유지되며 Shotgun 컨텍스트가 변경되면 동적으로 업데이트됩니다.

패널

v0.2.8부터 엔진은 포함된 툴킷 패널에 대한 지원을 추가합니다.

적절한 내장 패널을 지원하려면 현재 Houdini 버전 15.0.272 이상이 필요합니다. 등록된 패널은 지원되는 Houdini 버전의 창 메뉴에 창으로 표시됩니다.

Houdini의 이전 버전은 등록된 패널을 대화상자로 표시합니다. SESI는 몇 가지 버그 수정을 Houdini 14의 최신 빌드로 백포팅할 수 있습니다. 그러면 해당 버전에도 내장 패널을 사용할 수 있습니다.

OTL을 사용하는 앱

Houdini용 Shotgun 엔진을 사용하면 응용프로그램에서 제공하는 OTL을 쉽게 로드할 수 있습니다. OTL을 사용하는 앱을 작성하는 경우 otls라는 폴더에 OTL을 배치하기만 하면 엔진에서 자동으로 세션에 로드합니다.

Houdini OTL

그런 다음 일반적인 Houdini 방법을 통해 노드에 쉽게 액세스할 수 있습니다.

경고: OTL을 사용하는 것이 편리할 수 있지만 씬에 지속되는 노드를 만들려는 경우에는 일반적으로 적절한 솔루션이 아닙니다. 그 이유는 씬에 OTL을 넣으면 씬과 OTL 코드 간에 종속성이 발생하기 때문입니다. 씬을 로드할 때마다 Shotgun 툴킷을 로드해야 할 뿐만 아니라 코드를 업데이트해도 씬에서 사용 중인 이전 OTL이 손상되지 않도록 신중하게 코드를 관리해야 합니다.

OSX에서 터미널을 통한 디버깅 시작

OS X에서 tk-houdini 엔진의 debug_logging을 켜면 모든 디버그 메시지를 터미널로 전송하지 않습니다. 이는 기본적으로 tk-multi-launchapp 앱에서 open 명령을 사용하여 실행 파일을 시작하기 때문입니다. 이는 터미널에서 새로운 하위 프로세스를 생성하지 않지만 OS X의 시작 서비스를 사용하여 다른 곳에서 새 프로세스를 만듭니다. 결과적으로 로그 문은 표시되지 않습니다. Houdini에서 사용자의 기본 데스크톱에 python 셸이 저장되어 있어도 시작 중에 디버깅 문을 표시하지 않는 것처럼 보입니다. 시작 후 내장 python 셸은 디버그 로깅 문을 표시하지만 시작 중에 사용 가능한 출력과 차이가 있습니다. 엔진 시작 중에 디버그 로깅 문에 액세스해야 하는 경우 두 가지를 변경할 수 있습니다.

먼저 테스트 구성에서 houdini_mac 경로를 Houdini 앱 번들 내부의 실행 파일을 가리키도록 임시로 변경합니다. 예를 들면 다음과 같습니다.

#houdini_mac: /Applications/Houdini 15.0.272/Houdini Apprentice.app
houdini_mac: /Applications/Houdini\ 15.0.272/Houdini\ Apprentice.app/Contents/MacOS/happrentice

다음으로 테스트 구성의 config/hooks 디렉토리에서 tk-multi-launchapp 앱의 app_launch 후크 복사본을 만들어 config/env/includes/app_launchers.yml 파일에서 이를 지정할 수 있습니다.

launch_houdini:
  defer_keyword: ''
  engine: tk-houdini
  extra: {}
  hook_app_launch: app_launch    # <----- use a custom app_launch hook
  hook_before_app_launch: default
  icon: '{target_engine}/icon_256.png'
  linux_args: ''
  linux_path: '@houdini_linux'
  location: {name: tk-multi-launchapp, type: app_store, version: v0.6.6}
  mac_args: ''
  mac_path: '@houdini_mac'
  menu_name: Launch Houdini
  versions: []
  windows_args: ''
  windows_path: '@houdini_windows'

그런 다음 실행 파일을 직접 시작하도록 시작 로직을 수정하기만 하면 됩니다. 예를 들어 디렉토리(응용프로그램 번들)에 대한 이전 동작을 유지하고 명령을 직접 실행할 수 있습니다. 다음은 예입니다.

        elif system == "darwin":
            # on the mac, the executable paths are normally pointing
            # to the application bundle and not to the binary file
            # embedded in the bundle, meaning that we should use the
            # built-in mac open command to execute it
            if os.path.isdir(app_path):
                cmd = "open -n \"%s\"" % (app_path)
                if app_args:
                    cmd += " --args \"%s\"" % app_args.replace("\"", "\\\"")

            # not a directory, execute directly
            else:
                cmd = "%s %s" % (app_path, app_args.replace("\"", "\\\""))

다음에 터미널에서 tank를 통해 launch_houdini를 실행하면 모든 디버그 출력이 표시됩니다. 테스트가 끝나면 경로를 되돌리고 앱 시작 변경 사항을 취소해야 합니다. 디버깅이 완료되었습니다.

설치 및 업데이트

Shotgun Pipeline Toolkit에 이 엔진 추가

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

> tank Project XYZ install_engine asset tk-houdini

최신 버전으로 업데이트

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

> cd /my_tank_configs/project_xyz
> ./tank updates

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

> tank Project XYZ updates

협업 및 개선

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

특별 요구 사항

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

구성

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

run_at_startup

유형: list

설명: 시작할 때 실행할 앱을 제어합니다. 이 설정은 하나의 목록이며 각 요소는 'app_instance'와 'name'이라는 두 개의 키가 포함된 사전입니다. app_instance 값은 이 항목을 환경 구성 파일에 정의된 특정 앱 인스턴스에 연결합니다. name은 Houdini 엔진을 시작할 때 실행할 명령의 메뉴 이름입니다. name이 ''이면 지정된 앱 인스턴스의 모든 명령이 시작됩니다.

enable_sg_shelf

유형: bool

기본값: True

설명: 설치한 앱에 의해 등록된 명령으로 선반 빌드 여부를 제어합니다. Shotgun 컨텍스트가 변경되면 선반이 동적으로 재빌드됩니다.

menu_favourites

유형: list

설명: 기본 메뉴의 즐겨찾기 섹션을 제어합니다. 이 설정은 하나의 목록이며 각 메뉴 항목은 app_instance와 name이라는 키가 포함된 사전입니다. app_instance 매개변수는 이 항목을 환경 구성 파일에 정의된 특정 앱 인스턴스에 연결합니다. name은 즐겨찾기를 만들기 위한 메뉴 이름입니다.

launch_builtin_plugins

유형: list

설명: Houdini를 시작할 때 로드할 tk-houdini 플러그인의 쉼표로 구분된 목록입니다. 이 기능을 사용하면 Houdini가 시작될 때 툴킷을 부트스트랩하는 기본 메커니즘이 비활성화됩니다.

debug_logging

유형: bool

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

automatic_context_switch

유형: bool

기본값: True

설명: 현재 로드된 파일이 변경될 때마다 툴킷이 컨텍스트를 자동으로 조정할지 여부를 제어합니다. 기본값은 True입니다.

enable_sg_menu

유형: bool

기본값: True

설명: 설치한 앱에 의해 등록된 명령으로 메뉴 빌드 여부를 제어합니다. 현재 Shotgun 컨텍스트 전환에서 메뉴를 다시 빌드할 수는 없으므로 이 옵션을 사용하면 동적으로 다시 빌드할 수 있는 Shotgun 선반이 사용되도록 메뉴를 비활성화할 수 있습니다.

팔로우

0 댓글

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