지원 티켓 만들기
팔로우

Q100443 : 카타나에서의 스크립팅 및 프로그래밍

개요

Katana 는 Python, Lua 및 C ++와 같이 응용 프로그램에 사용자 지정 코드를 추가하는 세 가지 언어를 지원합니다. 이 기사에서는 Katana에서 스크립팅 및 프로그래밍을 시작하는 방법과 각 언어가 가장 적합한 작업에 대한 개요를 제공합니다.

추가 정보

카타나에서 사용할 수있는 각 언어마다 고유 한 강점이 있으므로 특정 유스 케이스에 따라 달라집니다.

PYTHON

파이썬은 때 사용자가 예를 들어, 응용 프로그램을 사용자 정의 할 수 있도록, 특히 API를의 맥락에서, 빠른 애플리케이션 개발에 널리 사용되는 프로젝트 작업 , 노드 작업 , 노드 유형을 사용자 정의 , 사용자 인터페이스 사용자 정의 , 또는 파이썬 기반의 매개 변수 식을 .

다른 예제는 Katana Scripting with Python의 온라인 도움말과 다양한 Python 워크 플로에 대해 자세히 설명하는 다음 기사에서 설명합니다 .

피톤 - 성능 고려 사항

더 빠른 성능이 요구되는 곳에서, 파이썬은 항상 이상적인 선택이되는 것은 아닙니다 (부분적으로 두려운 GIL 때문에 ).

매개 변수 표현식의 컨텍스트에서 노드 또는 매개 변수를 참조하는 간단한 표현식에 대해 Python 표현식 대신 더 빠른 대안을 사용할 수 있습니다. 이를 참조 식이 라고 부릅니다 . 자세한 내용은 Katana 개발자 가이드 링크를 따르십시오.

Katana의 이전 릴리스는 소위 Katana ProcessManager를 통해 Python 기반 AttributeScript 및 자산 플러그 인을 프로세스 외부에서 실행하는 경우 안정성 문제로 어려움을 겪었습니다.

Katana 2.5 릴리스 ( Katana 2.5v1 릴리스 노트 의 TP 128448 참조)에서는 ProcessManager의 안정성이 향상 되었지만 특히 장면 평가의 맥락에서 파이썬의 성능은 문제가 있습니다.

Lua는 더 나은 성능을 제공하므로 OpScript 노드를 사용하여 장면 그래프 처리 작업에 선호되는 스크립트 언어가 됩니다.

루아

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

루아는 씬 그래프에서 연산을 개발하는 데 걸리는 빠른 개발 처리 시간 (나중에 Op 유형으로 구현 될 더 복잡한 연산의 프로토 타이핑)과 장면을 요리하는 과정에서 빠른 실행 시간과 안정성 사이의 적절한 균형을 나타냅니다.

어떤 상황에서는 OpScript / Lua를 사용하는 대신 사용자 정의 Op 유형 플러그인을 구현하는 것이 좋습니다. 이점의 유무는 실제 사용 사례, 즉 프로젝트와 자산의 복잡성, 수행 할 작업 수, 대상으로하는 장면 그래프 위치 수에 따라 다릅니다. OpScript / Lua보다는 Ops / C ++에서 입자 시뮬레이션과 같은 FX 데이터를 처리하는 것이 좋습니다.

OpScript 및 Op API 사용에 대한 소개 는 Katana도움말 > 예제 프로젝트 메뉴에서 OpScript 자습서를 참조하십시오 .

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

다음 기사에 관심이있을 수도 있습니다.

C ++

성능이 중요한 경우, 예를 들어 큰 데이터 세트로 작업하는 경우, Lua OpScript는 C ++ Op 유형 플러그인으로 이식 될 수 있습니다.

인터페이스에 대한 문서는 Katana 개발자 가이드 를 참조하고 Katana 소스 코드와 함께 제공되는 "HelloWorld"Op 예제를 참조하십시오. $ KATANA_ROOT / plugins / Src / Ops / HelloWorld

빌드 지침은 $ KATANA_ROOT / plugins / Src / README.md 에서 찾을 수 있습니다.

예제 Op 컴파일에 대한 추가 힌트와 지침은 Q100326 : Custom Ops 작성 및 테스트 를 참조하십시오.

다음 내용에 관심이있을 수도 있습니다.

Q100351 : C ++에서 현재 프레임 (및 다른 시스템 그래프 상태) 쿼리하기

더 읽기

Katana 온라인 도움말 및 개발자 안내서에서 각 언어에 대한 안내 및 추가 참조를 참조하십시오.

파이썬

루아

C ++

도움이 되었습니까?
/

We're sorry to hear that!

Please tell us why.
0명 중 0명이 도움이 되었다고 했습니다.

댓글