Q100439: Katana 장면을 사전 구성하기 위해 시작 중에 전역 그래프 상태 변수를 수정하는 방법

팔로우

요약

전역 그래프 상태 변수 세트를 사용하여 Katana 시작하면 Katana 프로젝트의 컨텍스트에 대한 액세스 가능한 정보가 사전 정의되어 노드 그래프 또는 사용자 정의 도구를 통해 액세스할 수 있습니다. 마찬가지로 아티스트는 쇼에 대한 파일 경로나 프로젝트 폴더와 같은 사전 정의된 변수 세트를 가질 수 있습니다. 이 문서에서는 Katana 시작 시 Katana 프로젝트의 전역 그래프 상태 변수를 수정하는 단계를 안내합니다.

그래프 상태 변수에 관한 자세한 내용은 Katana 사용자 가이드: 그래프 상태 변수를 참조하세요.

이 접근 방식에는 Katana 시작 스크립트와 콜백을 함께 사용하여 그래프 상태 변수를 설정하는 것이 포함됩니다.

추가 정보

다음은 Katana GUI의 Python 탭을 통해 전역 그래프 상태 변수를 설정하는 방법의 예입니다.

 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 스크립트를 저장할 수 있습니다.

그러나 프로젝트에 그래프 상태 변수를 설정하려면 변수 편집이 유지되도록 프로젝트 설정을 사용할 수 있도록 노드 그래프가 완전히 로드되어야 합니다. UIPlugin 스크립트는 노드 그래프가 Katana 세션에 로드되기 전에 실행되며 처음에는 전역 그래프 상태 변수에 액세스할 수 없습니다.

이 문제를 해결하려면 UIPlugin 스크립트에 콜백이 필요합니다. 콜백은 Katana 에서 다양한 이벤트(예: 노드 생성 또는 스크립트 로드)가 발생할 때 자동으로 실행되는 Katana 환경에 추가된 Python 코드입니다. 이 경우 시작 또는 프로젝트 로드 직후 전역 그래프 상태 변수를 설정하는 함수를 실행하려면 onStartupComplete 또는 onSceneLoad 콜백을 설정해야 합니다.

다음은 Katana 실행 시 전역 그래프 상태 변수를 설정하는 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)

추가 질문이 있거나 시작 스크립트를 사용하여 전역 그래프 상태 변수를 설정하는 데 문제가 있는 경우 지원 티켓을 열고 발생한 문제와 지금까지 수행한 문제 해결 단계를 알려주십시오. .

지원 티켓 개설 방법에 대한 자세한 내용은 " 지원 티켓 모집 방법 " 문서를 참조하세요.

추가 읽기

첨부 파일

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

이유를 알려주세요