首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >运行后-BatchRender MEL命令

运行后-BatchRender MEL命令
EN

Stack Overflow用户
提问于 2015-04-16 19:39:01
回答 3查看 1.7K关注 0票数 2

我正在寻找一种在批处理呈现结束时运行MEL脚本的方法。这个是可能的吗?我知道“预呈现MEL”和“Post”呈现选项,但我希望在批处理呈现结束时运行脚本。

此代码按预期的方式在“呈现视图”启动后触发,但无法在任何类型的批处理呈现之后触发:

代码语言:javascript
复制
setAttr -type "string" defaultRenderGlobals.postMel     "promptDialog -message \"done: postMel\"";  
setAttr -type "string" defaultRenderGlobals.postRenderMel   "promptDialog -message \"done: postRenderMel\""; 

是否有一个隐藏的设置可以抑制批处理呈现的回调?

系统信息

Maya :2009年x64

操作系统: Win 8.1

EN

回答 3

Stack Overflow用户

发布于 2015-04-17 18:02:13

有几种不同的前/后MEL选项:

  • 预渲染MEL (preMel): 这将在第一个框架呈现之前运行。
  • Post呈现MEL (postMel): 这是在最后一个框架呈现之后运行的。
  • 预渲染层MEL (preRenderLayerMel): 在某个呈现层中启动批处理的第一帧之前,将运行此操作。
  • 后渲染层MEL (postRenderLayerMel): 这将在某个呈现层中批处理的最后一帧之后运行,然后切换到下一层。
  • 预渲染框架MEL (preRenderMel): 最初,这是唯一的两种选择。这将在每一帧呈现之前运行。
  • Post呈现框架MEL (postRenderMel):最初这是唯一的两个选项。这会在每一帧呈现之后运行。

这些都是批量运行的。在我们的管道中,它们提供一个回调,以在开始时验证和更新值(preMel),用进度更新呈现队列系统(preRenderMelpostRenderMel),最后报告在末尾(postMel) )。

票数 1
EN

Stack Overflow用户

发布于 2015-04-22 21:01:15

这不起作用的原因不在于事件本身,而在于你所做的事情。守则:

代码语言:javascript
复制
promptDialog -message "done: postMel"

不会在批量渲染中工作!这是因为批处理模式是一个单独的过程(与Maya并行运行的单独程序)。批处理模式没有GUI,因此它无法对GUI调用作出任何反应。

所以你必须做点别的。

票数 0
EN

Stack Overflow用户

发布于 2015-04-29 16:54:16

如果我错了,请纠正我。您是否从Maya的UI会话启动批处理呈现,并希望在批处理呈现完成后在UI会话中执行mel?

postRenderMel代码将只在批处理会话中工作,不会连接回玛雅的UI会话。Maya会话与玛雅批处理的唯一连接是Stdout。因此,如果您希望在完成渲染时发送邮件,这是完全可能的。但是如果Maya会话需要加载一个不适用于postRenderMel的UI。

我尝试搜索,但可以找到任何与批处理呈现完成相关的事件。我可能尝试的方式是用定制代码包装批处理呈现,可能是使用,然后调用Maya来呈现,然后是需要在完成时执行的命令。

您可以在一个单独的线程中这样做,这样它就不会阻止当前的玛雅会话。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29684447

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档