2017-09-18 2 views
1

나는 추가 가공을위한 프로젝트의 평신도 용어 높이에서 프로젝트의 차원 (format)을 얻으려고합니다. Nuke Python 개발자 가이드의 Formats documentation에 대한 문서를 읽는 동안 프로젝트의 너비와 높이를 얻으려면 스크립트의 노드를 선택해야합니다.파운드리 핵무기에서 프로젝트 차원을 얻는 방법?

# Viewer1 is only generic thing in every project 
nuke.toNode("Viewer1").setSelected(True) 
projwidth = nuke.selectedNode().format().width() 
projheight = nuke.selectedNode().format().height() 

그러나 노드 그래프에 악영향을 미칩니다. 기즈모는 위의 줄 끝에 nuke.toNode("Viewer1").setSelected(False)을 붙이더라도 뷰어 1에 연결됩니다.

Here's 전체 스크립트를보고 싶다면 코드.

이 전체 과정은 너무 심해 보입니다. 내가 뭘 잘못 했니? 가능한 수정 사항은 무엇입니까?

답변

1

당신은 Script Editor이 줄을 사용하여 프로젝트의 뷰어 크기를 변경할 수 있습니다

nuke.tcl('knob root.format ' '4K_DCP') 

에주의가 root.formatspace있다. 1600 900 0 0 1600 900 1 Format_1600은 다음과 같습니다 :

# width = 1600, height = 900 
# x = 0, y = 0, right = 1600, top = 900 
# pixel aspect = 1 (square pixels) 
# name = Format_1600 

또는 당신이 할 수있는

import nuke 

Format_1600 = "1600 900 0 0 1600 900 1 Format_1600" 
nuke.addFormat(Format_1600) 
nuke.knobDefault("Root.format", "Format_1600") 

: 당신이 (자동으로) 자신의 형식을 사용 싶다면

은 또한 당신은 .nuke 폴더에 init.py 또는 menu.py에 다음 줄을 넣어한다 핵무기 목록에서 기존 형식을 선택하십시오.

nuke.knobDefault('Root.format', 'HD_1080') 

는 그리고 물론, 프로젝트의 형식의 get 치수와 다른 값을 수행 할 수 있습니다

nuke.root()['format'].value().width() 
nuke.root()['format'].value().height() 

nuke.root()['format'].value().name() 
nuke.root()['format'].value().pixelAspect() 
nuke.root()['format'].value().x() 
nuke.root()['format'].value().y() 
nuke.root()['format'].value().r() 
nuke.root()['format'].value().t() 
+0

하지만 * 프로젝트 형식 * 설정하지 않습니다. 나는 그것을 얻고 싶다. 작업 영역의 중심을 계산해야하는 스크립트를 작성 중입니다. 작업 영역 (형식)을 계산 한 후에 만 ​​수행 할 수 있습니다. –

+0

좋아, 나는 그것을 얻는 방법을 추가 할 것이다. – andy