2017-08-16 69 views
1

這是我的腳本:爲什麼Read()沒有在CLI模式下讀取幀範圍?

# confirming the project dimension resolution 
projset = nuke.Root() 
projset["format"].setValue("HD_1080") 

# load video 
foot = nuke.nodes.Read(file="C:/Users/Santosh/Desktop/MVI_8411.MOV", name="Nuke_Class1") 

# select read node and attach write node to it 
nuke.toNode("Nuke_Class1").setSelected(True) 
wr = nuke.createNode("Write") 

# specify the sequence path 
wr["file"].setValue("C:/Users/Santosh/Desktop/nukke/nuke_API_###.jpg") 

# connect to the first viewer, if many 
nukescripts.connect_selected_to_viewer(0) 

# perform the render, 50th to 140th frame 
nuke.render(wr, 50, 140, 1) 

我基本上讀取視頻,寫出來的圖像序列。

問題是,這個腳本渲染1幀91次,預計渲染91個不同的幀。

當我試圖進行調查時,發現問題與Read節點有關。我發現幀範圍被設置爲 - 。我是否必須手動設置幀範圍?因爲當我讀取相同的視頻文件時,在GUI上,幀範圍設置正確。這表明GUI取決於元數據,而我的腳本不是,也許?

我該如何擺脫手動設置幀範圍?

回答

0

該問題包含在您的Read節點中。您應該手動分配的框架範圍:

第一種方法

nuke.nodes.Read(file="C:/Users/Santosh/Desktop/MVI_8411.MOV", first="1", last="91") 

或只是沒有第一個參數:

nuke.nodes.Read(file="C:/Users/Santosh/Desktop/MVI_8411.MOV", last="91") 

第二方法

或者,如果你不」 t知道幀範圍,您可以使用TCL樣式自動讀取Q​​T文件:

autoFR = nuke.createNode("Read") 
autoFR["file"].fromUserText("C:/Users/Santosh/Desktop/MVI_8411.MOV") 

此外,我想這是可能與sys模塊的功能,但絕對不使用ViewMetaData節點(在第一種方法),「因爲它僅在可見幀範圍讀取時在GUI模式下或在CLI模式下使用它已經分配了幀範圍。 metadata()方法返回一個包含Nuke_Class1節點的元數據的Python字典,例如:

node = nuke.toNode("Nuke_Class1") 
print node.metadata() 
相關問題