美文网首页CgTd
Nuke Python 线程

Nuke Python 线程

作者: N景波 | 来源:发表于2016-11-22 11:54 被阅读0次

    线程很重要,你可以在后台干事,而不让nuke假死。这样背后运行系统命令,程序啥的就很方便。
    根据你想干啥,可以很方便地调用python的Threading借口来实现:

    threading.Thread( target=<function_name>, args=<tuple_of_arguments> ).start()
    

    也可以用threading.Thread创建自己的线程类:

    class MyClass( threading.Thread ):
    
        def __init__( self ):
        threading.Thread.__init__( self )
    

    当想从子线程和主线程通信(nuke session),下面的方法就可用:

    executeInMainThread(call, args=(), kwargs={})
    

    args是可选参数,kwargs是有名字的参数,在nuke主线程执行完立马返回

    executeInMainThreadWithResult(call, args=(), kwargs={})
    

    参数同上,执行后等待结果可用才返回。

    注意: 不要在nuke 主线程运行上述函数,nuke会挂起

    Examples
    MirrorNodes

    Node graph里面的mirrors小工具,在组织复杂节点数的时候很有帮助。这段脚本利用线程来慢慢将节点移动到新位置(而不是瞬间),显式的过程,疑惑更少,也更有趣。先来看下基础,下面的代码片段显示了如何平行移动所选节点 。

    nodes = nuke.selectedNodes()
    positions = [ n.xpos()+n.screenWidth()/2 for n in nodes]
    axis = float( sum( positions ) ) / len( positions )
    

    相关文章

      网友评论

        本文标题:Nuke Python 线程

        本文链接:https://www.haomeiwen.com/subject/ammppttx.html