Q100443: Katana 에서 스크립팅 및 프로그래밍 시작하기

요약

Katana 애플리케이션에 사용자 지정 코드를 추가하는 데 Python, Lua, C++의 세 가지 언어를 지원합니다. 이 글에서는 Katana 에서 스크립팅 및 프로그래밍을 시작하는 방법과 각 언어가 가장 적합한 작업에 대해 간략하게 설명합니다.

더 많은 정보

Katana 에서 사용 가능한 각 언어는 고유한 장점을 가지고 있으므로, 어떤 언어가 가장 적합한지는 특정 사용 사례에 따라 달라집니다.

파이썬

Python은 신속한 애플리케이션 개발에 널리 사용되며, 특히 사용자가 애플리케이션을 사용자 정의할 수 있는 API 컨텍스트에서 사용됩니다. 예를 들어 프로젝트 작업 , 노드 작업 , 노드 유형 사용자 정의 , 사용자 인터페이스 사용자 정의 또는 Python 기반 매개변수 표현식 작업 시에 사용됩니다 .

Katana 에서 Python 스크립팅을 시작하는 데 도움을 드리고자 다양한 Python 워크플로를 더 자세히 설명하는 문서와 함께 주요 영역을 정리했습니다. 또한, Katana 사용자 가이드에서 Python 스크립팅 에 중점을 둔 더 많은 예제를 확인하실 수 있습니다.

Python 스크립팅 및 UI 기본 사항

이 카테고리에서는 Katana 에서 Python 스크립팅의 기본 사항을 소개하여 워크플로를 자동화하고 매개변수 표현식에 Python을 적용할 수 있도록 지원합니다. 아래 관련 문서를 통해 Katana API를 활용하여 도구를 개발하는 방법을 자세히 알아보세요.

탭 및 UI 사용자 지정 작업

Katana 인터페이스를 개인화하여 작업 공간을 최적화할 수 있습니다. 사용자 지정 탭을 만들면 도구를 더욱 효율적으로 정리하고 워크플로우를 개선할 수 있습니다. Katana 에서 자주 사용하는 기능에 더 빠르게 액세스할 수 있도록 새로운 도구 모음과 UI 요소를 만들어 사용자의 필요에 맞춰 더욱 맞춤화된 환경을 구축할 수 있습니다.

아래 기사를 통해 이러한 워크플로에 대해 자세히 알아볼 수 있습니다.

노드를 사용한 스크립팅

노드는 Katana 워크플로의 핵심입니다. Python을 사용하여 노드를 생성 및 수정하고, 입력 및 출력 포트를 제어하고, 노드 매개변수를 프로그래밍 방식으로 조정할 수 있습니다. 이를 통해 필요에 맞게 워크플로를 유연하게 사용자 지정할 수 있습니다.

다음 링크를 통해 관련 기사를 확인하실 수 있습니다.

장면 및 프로젝트 자동화

Katana 에서 장면과 프로젝트를 최적화하기 위해 여러 가지 옵션을 살펴볼 수 있습니다. 한 가지 방법은 시작 시 특정 작업이 자동으로 수행되도록 하는 것입니다. 특정 전역 설정을 특정 요구에 맞게 조정하고 싶을 수도 있습니다. 여러 프레임을 렌더링하도록 설정하거나, 장면 그래프에서 속성을 쿼리하여 장면을 더욱 세부적으로 제어할 수도 있습니다. Katana 필요에 맞게 최적화할 수 있는 방법은 여러 가지가 있습니다.

다음 링크를 통해 추가 기사를 찾아볼 수 있습니다.

PYTHON - 성능 고려 사항

더 빠른 성능이 필요한 경우 Python은 항상 이상적인 선택은 아닙니다(부분적으로는 GIL 이라는 무서운 문제 때문입니다).

매개변수 표현식의 맥락에서, 노드나 매개변수를 참조하는 간단한 표현식에 대해 Python 표현식보다 더 빠른 대안을 사용할 수 있습니다. 이를 참조 표현식 이라고 하며, Katana 개발자 가이드에서 이에 대한 자세한 정보를 확인할 수 있습니다.

Lua는 더 나은 성능을 제공하므로 OpScript 노드를 사용하는 씬 그래프 처리 작업을 위한 선호되는 스크립팅 언어입니다.

루아

Katana 의 OpScript 노드에서는 Lua가 사용됩니다. OpScript/Lua를 사용하면 Python보다 빠르고 강력한 Op API에 접근할 수 있습니다. 특히 OpScript 노드를 사용하면 위치 삭제, 새 자식 위치 생성, 속성 설정 및 편집 등 씬 그래프 계층 구조를 수정할 수 있습니다.

Lua는 씬 그래프에서 작업을 개발할 때 빠른 개발 처리 시간(나중에 Op 유형으로 구현될 예정인 보다 복잡한 작업의 프로토타입 제작에도 해당)과 씬 쿠킹의 일부로서 빠른 실행 시간 및 안정성 간의 적절한 균형을 나타냅니다.

특정 상황에서는 OpScript/Lua 대신 사용자 지정 Op 유형 플러그인을 구현하는 것이 좋을 수 있습니다. 이러한 플러그인의 이점은 실제 사용 사례, 즉 프로젝트 및 에셋의 복잡성, 수행할 작업 수, 타겟팅할 씬 그래프 위치 수에 따라 달라집니다. OpScript/Lua보다는 Ops/C++에서 파티클 시뮬레이션과 같은 FX 데이터를 처리하는 것이 좋습니다.

OpScript와 Op API 사용에 대한 소개는 Katana 도움말 > 예제 프로젝트 메뉴에서 OpScript 튜토리얼을 참조하세요.

Op API에 대한 자세한 내용은 Katana 사용자 가이드Katana 개발자 가이드 에서 확인할 수 있습니다.

다음 기사도 흥미로울 수 있습니다.

씨++

성능이 중요한 경우, 예를 들어 대용량 데이터 세트를 다루는 경우 Lua OpScript를 C++ Op 유형 플러그인으로 이식할 수 있습니다.

인터페이스에 대한 설명서는 Katana 개발자 가이드를 참조하고 다음 위치에 있는 Katana 소스 코드와 함께 제공되는 예제 "HelloWorld" Op를 참조하세요. $KATANA_ROOT/plugins/Src/Ops/HelloWorld

빌드 지침은 여기에서 확인할 수 있습니다: $KATANA_ROOT/plugins/Src/README.md

예제 Op를 컴파일하는 방법에 대한 추가 힌트와 지침은 다음 문서를 참조하세요. Q100326: 첫 번째 사용자 정의 Op를 작성하고 테스트하는 방법

다음 콘텐츠에도 관심이 있으실 수 있습니다. Q100351: 시간 관련 값에 반응하기 위해 C++ Op 내부에서 시스템 그래프 상태 데이터를 쿼리하는 방법

추가 읽기

각 언어에 대한 가이드와 추가 참고 자료는 Katana 사용자 가이드와 개발자 가이드를 참조하세요.

파이썬

루아

씨++

    우리는 문제로 불편을 끼쳐 드려 죄송합니다

    이유를 알려주세요