요약
Katana 글로벌 그래프 상태 변수가 설정된 상태로 실행하면 Katana 프로젝트 컨텍스트에 대한 접근 가능한 정보가 미리 정의되어 노드 그래프 또는 사용자 지정 도구를 통해 접근할 수 있습니다. 마찬가지로 아티스트는 쇼 파일 경로나 프로젝트 폴더와 같은 미리 정의된 변수를 설정할 수 있습니다. 이 글에서는 Katana 시작 스크립트와 콜백을 함께 사용하여 그래프 상태 변수를 설정함으로써 Katana 시작 시 Katana 프로젝트의 글로벌 그래프 상태 변수를 수정하는 단계를 안내합니다.
그래프 상태 변수에 대한 자세한 내용은 Katana 사용자 가이드: 그래프 상태 변수를 참조하세요.
더 많은 정보
다음은 Katana GUI의 Python 탭을 통해 글로벌 Graph State 변수를 설정하는 방법의 예입니다.
def AddGlobalGraphStateVariable(name, options):
variablesGroup = NodegraphAPI.GetRootNode().getParameter('variables')
variableParam = variablesGroup.createChildGroup(name)
variableParam.createChildNumber('enable', 1)
variableParam.createChildString('value', options[0])
optionsParam = variableParam.createChildStringArray('options', len(options))
for optionParam, optionValue in zip(optionsParam.getChildren(), options):
optionParam.setValue(optionValue, 0)
return variableParam.getName()
name = "Variable Name"
options = ('Option 1','Option 2','Option 3')
AddGlobalGraphStateVariable(name, options)
Katana 대화형 모드 로 시작할 때 Python 스크립트를 자동으로 실행하려면 KATANA _RESOURCES 환경 변수 디렉토리 경로의 UIPlugins 폴더에 Python 스크립트를 저장할 수 있습니다.
하지만 프로젝트에 그래프 상태 변수를 설정하려면 노드 그래프가 완전히 로드되어야 프로젝트 설정을 사용할 수 있고 변수 편집이 적용됩니다. UIPlugins 스크립트는 Katana 세션에서 노드 그래프가 로드되기 전에 실행되며, 처음에는 전역 그래프 상태 변수에 액세스할 수 없습니다.
이 문제를 해결하려면 UIPlugins 스크립트에 콜백이 필요합니다. 콜백은 Katana 환경에 추가된 Python 코드로, Katana 에서 노드 생성이나 스크립트 로드와 같은 다양한 이벤트가 발생할 때 자동으로 실행됩니다. 이 경우, onStartupComplete 또는 onSceneLoad 콜백을 설정하여 시작 또는 프로젝트 로드 직후 전역 그래프 상태 변수를 설정하는 함수를 실행해야 합니다.
아래는 Katana 실행 시 글로벌 Graph State 변수를 설정하는 UIPlugins Python 스크립트의 예시입니다(첨부 파일도 있음):
from Katana import Callbacks
import logging
def onStartupComplete(**kwargs):
log = logging.getLogger("Startup Example")
import NodegraphAPI
name = "Variable Name"
options = ('Option 1','Option 2','Option 3')
variablesGroup = NodegraphAPI.GetRootNode().getParameter('variables')
variableParam = variablesGroup.createChildGroup(name)
variableParam.createChildNumber('enable', 1)
variableParam.createChildString('value', options[0])
optionsParam = variableParam.createChildStringArray('options', len(options))
for optionParam, optionValue in zip(optionsParam.getChildren(), options):
optionParam.setValue(optionValue, 0)
log.info("Katana is now fully initialized and ready for use.")
log = logging.getLogger("Startup Example")
log.info("Registering onStartupComplete callback...")
Callbacks.addCallback(Callbacks.Type.onStartupComplete, onStartupComplete)
추가 읽기
- Katana 사용자 가이드: 그래프 상태 변수
- Katana 사용자 가이드: Katana 리소스
- Q100385: Python을 사용하여 Katana 에서 콜백 및 이벤트 핸들러를 등록하여 사용자 작업에 따라 사용자 지정 기능을 추가하는 방법
추가 도움말
추가 질문이 있거나 시작 스크립트를 사용하여 전역 그래프 상태 변수를 설정하는 데 문제가 있는 경우, 지원 티켓을 개설하여 발생한 문제와 지금까지 수행한 문제 해결 단계를 알려주세요. 또한 Q100520: Foundry 지원 조사 시 전송할 하드웨어 사양에 대한 운영 체제 보고서 받기 에 설명된 시스템 정보도 함께 제공해 주세요.
지원 티켓을 여는 방법에 대한 자세한 내용은 Q100064: 지원 티켓을 제기하는 방법 문서를 참조하세요.
첨부 파일
우리는 문제로 불편을 끼쳐 드려 죄송합니다
이유를 알려주세요