博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

自定义Write节点的afterrender属性

Posted on 2015-10-10 18:27  SolHe  阅读(808)  评论(0编辑  收藏  举报

由于nuke中的write节点提供了beforerender,afterrender这类事件,我们想添加一些功能只需要在这里面敲入代码即可。事件一旦发生,自然会触发我们敲入的co

de。
 
Nuke中每次渲染完毕后还需要把渲染结果再倒入进来,实在不胜其烦,于是写了一段代码敲入afterrender输入栏里,希望在渲染结束后触发这段代码自动导入渲染结果。
 
Talk is cheap,show you the code:
 
###########################################################################

inputx = nuke.thisNode()['xpos'].value()
inputy = nuke.thisNode()['ypos'].value()
filelist = nuke.getFileNameList(os.path.dirname(nuke.thisNode().knob('file').value()))
for a in filelist:
    if a.find('.db') < 0:
        if a.find('-') >= 0:
            firstframe=a.split(' ')[1].split("-")[0]
            lastframe=a.split(' ')[1].split("-")[1] 
            newnode = nuke.nodes.Read(file=os.path.dirname(nuke.thisNode().knob('file').value()) + '/' + a.split(' ')[0],first=firstframe,last=lastframe,) 
            newnode.setXYpos(int(inputx),int(inputy)+50) 
        else: 
            firstframe=a.split('.')[-2] 
            lastframe=a.split('.')[-2] 
            newnode = nuke.nodes.Read(file=os.path.dirname(nuke.thisNode().knob('file').value()) + '/' + a.split(' ')[0],first=firstframe,last=lastframe,) 
            newnode.setXYpos(int(inputx),int(inputy)+50) 
    else:
        pass