代码之家  ›  专栏  ›  技术社区  ›  Santosh Kumar RVG

为什么Read()不在CLI模式下读取帧范围?

  •  2
  • Santosh Kumar RVG  · 技术社区  · 8 年前

    这是我的剧本:

    # 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个不同的帧。

    当我试图调查时,我发现问题在于读取节点。我发现了 帧范围 1. 1.

    如何避免手动设置帧范围?

    1 回复  |  直到 8 年前
        1
  •  2
  •   Andy Jazz    8 年前

    问题包含在您的读取节点中。您应该手动指定帧范围:

    第一种方法

    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")
    

    第二种方法

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

    sys 模块的功能,但绝对不使用 ViewMetaData 节点(在第一种方法中),因为当您在GUI模式或CLI模式下使用它时,它只读取可见的帧范围。这个 metadata()

    node = nuke.toNode("Nuke_Class1")
    print node.metadata()