在之前的一篇文中介绍了在maya中生成nuke工程脚本的方法,后来部门负责人希望更简单一些,能在那个功能面板里提交deadline农场渲染更好,这样就不用打开nuke手动提交了,省去了在两个软件直接来回切换的冗余工作。

于是开始结合deadline提交原理分析这个需求。首先行业内大部分农场软件都是UI封装一堆命令行的方式,那么我们提交任务也完全可以跳过提交任务的设置界面,直接用subprocess.Popen()来运行提交任务的命令行即可。

仔细读了SubmitNukeToDeadline.py及DeadlineNukeClient.py,剥离出一行最基本的代码:

  subprocess.Popen(["C:\\Program Files\\Thinkbox\\Deadline7\\bin\\deadlinecommand.exe",\
"D:/nuke_submit_info.job",\
"D:/nuke_plugin_info.job"])

subprocess.Popen()函数中有三个参数,第一个是本机deadline客户端执行文件路径,第二个提交信息的参数文件路径,第三个是软件信息文件的路径。也就是说我们只需要构建后面两个文件,就可以在任意软件环境利用subprocess.Popen()提交Nuke任务到deadline渲染农场中了。

放一个构建这两个参数文件的函数吧:

def submit_script_to_deadline():
#create plugin file
plugin_InfoFile = "D:/nuke_plugin_info.job" plugin_fileHandle = open( plugin_InfoFile, "w" ) plugin_fileHandle.write("SceneFile=%s\n"%(projpath))
plugin_fileHandle.write("Version=8.0\n\
Threads=0\n\
RamUse=0\n\
BatchMode=False\n\
BatchModeIsMovie=False\n\
NukeX=True\n\
UseGpu=False\n\
ProxyMode=False\n\
EnforceRenderOrder=False\n\
ContinueOnError=False\n\
Views=\n\
StackSize=0\n\
") plugin_fileHandle.close() #create submit file
submit_InfoFile = "D:/nuke_submit_info.job" submit_fileHandle = open( submit_InfoFile, "w" ) submit_fileHandle.write("Plugin=Nuke\n")
projreg = re.compile('\S+\\\\(\w+.nk)')
matchgroup_2 = projreg.match(projpath)
projectname = matchgroup_2.group(1)
submit_fileHandle.write("Name=%s\n"%(projectname))
submit_fileHandle.write("Comment=\n\
Department=\n\
Pool=none\n\
SecondaryPool= \n\
Group=none\n\
Priority=50\n\
MachineLimit=0\n\
TaskTimeoutMinutes=0\n\
EnableAutoTimeout=False\n\
ConcurrentTasks=1\n\
LimitConcurrentTasksToNumberOfCpus=True\n\
LimitGroups=\n\
JobDependencies=\n\
OnJobComplete=Nothing\n\
")
submit_fileHandle.write("Frames=%s-%s\n"%(startframe,endframe))
submit_fileHandle.write("ChunkSize=10\n\
Whitelist=\n\
OutputFilename0=%s"%(writepath))
submit_fileHandle.close()

Maya中提交Nuke工程到deadline中的方法的更多相关文章

  1. MVC中提交包含HTML代码的页面处理方法(尤其是在使用kindeditor富文本编辑器的时候)

    针对文本框中有HTML代码提交时,mvc的action默认会阻止提交,主要是出于安全考虑.如果有时候需求是要将HTML代码同表单一起提交,那么这时候我们可以采取以下两种办法实现: 1.给Control ...

  2. Maya中输出nuke脚本的方法

    因项目需要,三维部门跟踪组动画组都需要一个能够快速输出nuke预合成工程的脚本.脚本已经写完,源码不便于放出来,写一个大致思路吧. 我首先分析了nuke工程,内部包含了哪些节点,这些节点有哪些属性需要 ...

  3. 在eclipse上使用github,向github中提交项目

    1.下载egit插件 打开Eclipse,git需要eclipse授权,通过网页是无法下载egit的安装包的.在菜单栏依次打开eclipse→help→install new software→add ...

  4. 如何在Java应用中提交Spark任务?

    最近看到有几个Github友关注了Streaming的监控工程--Teddy,所以思来想去还是优化下代码,不能让别人看笑话,是不.于是就想改在一下之前最丑陋的一个地方--任务提交 本博客内容基于Spa ...

  5. 在VS2015 RC打开CTP中创建的工程

    VS2015终于出了RC了!小伙伴们快来安装试用吧,地址在这里,还有新的Windows 10开发工具哦,要不然是开发不了Universal Windows App的,安装前记得卸载CTP版本. 新的R ...

  6. ] 解决myeclipse中新建javaweb工程,无法使用Web App Libraries问题

    ] 解决myeclipse中新建javaweb工程,无法使用Web App Libraries问题 标签: myeclipsejavawebWeb App Libraries 2013-10-16 1 ...

  7. MyEclipse8.6中提交SVN报错

    上周五(11月27日)的时候,从TortoiseSVN提交项目报错,然后直接从MyEclipse中检出来,修改后提交同样报错. MyEclipse8.6中提交SVN报错,错误提示如下: commit ...

  8. 4 weekend110的textinputformat对切片规划的源码分析 + 倒排索引的mr实现 + 多个job在同一个main方法中提交

    好的,现在,来weekend110的textinputformat对切片规划的源码分析, Inputformat默认是textinputformat,一通百通. 这就是今天,weekend110的te ...

  9. 第二篇:智能电网(Smart Grid)中的数据工程与大数据案例分析

    前言 上篇文章中讲到,在智能电网的控制与管理侧中,数据的分析和挖掘.可视化等工作属于核心环节.除此之外,二次侧中需要对数据进行采集,数据共享平台的搭建显然也涉及到数据的管理.那么在智能电网领域中,数据 ...

随机推荐

  1. Rails-Treasure chest2 嵌套表单;

    嵌套表单1-1 嵌套表单1-多 选日期时间的UI (一个jquery Plugin) 拆除前后台css和js Rich Editor, 显示输入的HTML tag 批次编辑/删除 嵌套表单1-1 核心 ...

  2. Servlet 会话技术cookie和session

    会话技术 Cookie技术:会话数据保存在浏览器客户端. Session技术:会话数据保存在服务器端. 一.Cooke技术 1. 特点 Cookie技术:会话数据保存在浏览器客户端. 2 .Cooki ...

  3. Eclipse+Maven+Scala Project+Spark | 编译并打包wordcount程序

    学习用Eclipse+Maven来构建并打包一个简单的单词统计的例程. 本项目源码已托管于Github –>[Spark-wordcount] 第一步 在EclipseIDE中安装Scala插件 ...

  4. NODE_ENV=production关于不同系统的写法

    通过NODE_ENV可以来设置环境变量(默认值为development).一般我们通过检查这个值来分别对开发环境和生产环境下做不同的处理.可以在命令行中通过下面的方式设置这个值: linux & ...

  5. 32 C++常见错误集锦

    1 下列程序中,K的值为:6 enum { a,b=5,c,d=4,e }k; K=c; 分析:enum中,首元素不赋值的话,默认为0:后一个元素不赋值的话比前一个元素大1. 2  程序运行正常. # ...

  6. navicat连接Oracle数据库

    记录一下navicat连接Oracle数据库过程: 一.根据自己版本去Oracle官网下载instantclient 地址:https://www.oracle.com/technetwork/top ...

  7. JQ 查找 两个同辈元素之间 的同辈元素 nextUntil() 用于做一个多级菜单

    可以应用的地方,参考了淘宝的API菜单列表 我自己的应用

  8. nodejs 安装失败 ,出现error 2502 和error2503

    出现error 2502 和error2503是因为win8的权限问题所导致的,具体说就是要以管理员身份进行安装就可以解决,下面详细来说一下. 1.cmd命令行点击以管理员身份运行. 2.这时候就可以 ...

  9. html/css杂题

    1.css选择器:详细(http://www.ruanyifeng.com/blog/2009/03/css_selectors.html) 派生选择器:按标签 类别选择器:按class ID选择器: ...

  10. 蓝牙协议分析(5)_BLE广播通信相关的技术分析

    1. 前言 大家都知道,相比传统蓝牙,蓝牙低功耗(BLE)最大的突破就是加大了对广播通信(Advertising)的支持和利用.关于广播通信,通过“玩转BLE(1)_Eddystone beacon” ...