지원 티켓 만들기
팔로우

Q100439 : 시작시 전역 그래프 상태 변수 수정

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

그래프 상태 변수 에 관한 정보는 Katana 사용자 안내서 : 그래프 상태 변수를보십시오 .

이 접근법은 그래프 상태 변수를 설정하기 위해 Katana 시작 스크립트와 콜백을 함께 사용하는 것을 포함합니다.


추가 정보
Katana 시작 스크립트는 KATANA_RESOURCES 환경 변수에 정의 된 경로 아래 Startup 폴더에있는 "init.py"라는 파일 입니다. 또는 $ HOME 디렉토리의 ".katana"폴더에있는 "init.py"파일의 형태로 시작 스크립트를 사용할 수 있습니다. "init.py"의 Python 코드는 Katana 시작시 실행됩니다.

다음은 파이썬을 통해 글로벌 Graph State 변수를 설정하는 예입니다. 예를 들어, 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))
optionParam, optionValue in zip (optionsParam.getChildren (), options) :
optionParam.setValue (optionValue, 0)
return variableParam.getName ()

그러나 "init.py"스크립트를 통해 전역 그래프 상태 변수를 직접 확인 하려고하면 그래프 상태 변수의 변경 사항이 신속하게 파악되지 않습니다.

프로젝트에 그래프 상태 변수를 설정하려면 전역 노드 상태 변수가 저장되는 루트 노드에 액세스하기 위해 해당 프로젝트 (새로운 Katana 세션을 시작할 때로드되는 새 프로젝트를 포함하여)를로드해야합니다. 다른 프로젝트 설정. 시작 스크립트는 프로젝트가 Katana 세션에서로드되기 전에 실행됩니다. 따라서 "init.py"는 전역 상태 변수에 직접 액세스 할 수 없습니다.

이 문제를 해결하려면 시작 스크립트에서 콜백이 필요합니다. 콜백은 Katana 환경에 추가 된 파이썬 코드 조각으로 Katana에서 다양한 노드 (노드 생성 또는 스크립트로드)와 같은 이벤트가 발생할 때 자동으로 실행됩니다. 이 경우, 시작 또는 프로젝트로드 직후 전역 그래프 상태 변수 를 설정하는 함수를 실행하려면 onStartupComplete 또는 onSceneLoad 콜백을 설정해야합니다 . 콜백에 대한 자세한 내용은 기술 자료 문서 Q100385 : Katana의 콜백 및 이벤트 처리기 를 참조하십시오 .

다음은 Katana 실행시 전역 그래프 상태 변수를 설정하는 "init.py"예제입니다. ( "init.py"스크립트는 KATANA _RESOURCES / plugins / Src / Resources / Examples / Startup 폴더에서 제공하는 샘플 스크립트에서 빌려 왔습니다 .)

 Katana 수입 콜백에서 
가져 오기 로깅

def onStartupComplete (** kwargs) :
log = logging.getLogger ( "시작 예제")
import NodegraphAPI
이름 = "변수 이름"
옵션 = ( '옵션 1', '옵션 2', '옵션 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))
optionParam, optionValue in zip (optionsParam.getChildren (), options) :
optionParam.setValue (optionValue, 0)
log.info ( "Katana는 이제 완전히 초기화되고 사용할 준비가되었습니다.")

log = logging.getLogger ( "시작 예제")
log.info ( "onStartupComplete 콜백 등록 중 ...")
Callbacks.addCallback (Callbacks.Type.onStartupComplete, onStartupComplete)

"init.py"시작 스크립트 예제는 아래에 첨부되어 있습니다.

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

지원 티켓을 여는 방법에 대한 자세한 내용은 ' 지원 포털 사용 '문서를 참조하십시오.

더 읽기

부착

도움이 되었습니까?
/

We're sorry to hear that!

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

댓글