3

我正在尝试在一个文件夹中播放多个 Maya 场景,而不打开 Maya GUI。

  • 我已经成功调用了一个无头 Maya 实例mayabatch.exe
  • 该实例调用爬取文件夹的脚本
  • 每个场景都打开
  • 但我无法播放场景文件

1.紫噪声

如果我简单地打电话pm.playblast(format='movie', filename=some_filepathname, viewer=False, forceOverwrite=True, offScreen=True),我会得到一个带有紫色噪音的 AVI 文件。如果我切换到,format='image'我会得到一系列带有紫色噪声的图像。

2. 看不透

基于一些示例播放预览代码,我尝试pm.lookThru("persp")先调用,但这会触发以下回溯:

#   File "C:\Users\username\Documents\playbatch\blaster.py", line 23, in blast_file
#     pm.lookThru("persp")
#   File "C:\Program Files\Autodesk\Maya2016\Python\lib\site-packages\pymel\inte
rnal\pmcmds.py", line 133, in wrappedCmd
#     res = new_cmd(*new_args, **new_kwargs)
# RuntimeError: There is no active view.

...大概是因为无头实例没有视图。

3.强制单个可渲染相机没有效果

一个相对较新的(2015 年)帖子 TO [Maya-Python],“Playblasting in Standalone”表明只需要一个可渲染的相机。

cams = cmds.ls(type='camera')
for cam in cams:
    cmds.setAttr(cam + '.rnd', 0)
cmds.setAttr('persp.rnd', 1)

...但这仍然会产生紫色噪音。

从 Maya 脚本编辑器/GUI 调用 playblast 命令有效。是否可以从无头/mayabatch 实例播放预览?如果是这样,还需要为成功的播放预览设置哪些其他值?

4

2 回答 2

1

由于它使用 GUI,您无法使用 mayabatch 进行爆破。

你有两个选择:

  • 使用硬件渲染器渲染
  • 打开 Maya 并执行播放预览
于 2016-04-13T15:34:10.233 回答
1

实际上,您可以在 mayabatch 或 mayapy 模式下进行播放预览(默认情况下,两者在播放预览中具有不同的背景)。我从来没有深入研究过它,但我得到了与经典 Maya 播放预览类似的结果。我认为您无法访问 HUD 选项和其他图形设置,如果您有硬件着色器或其他非标准着色器要显示,可能会出现问题。

永远不要使用“透视”,只需使用您链接的脚本将您的相机设置为可渲染相机,Maya 将完成剩下的工作。也不要使用 pymel,它会带来非常狡猾的错误,如果它不能在批处理模式下工作,我不会感到惊讶。尽量不要导入它的模块,因为它在后台设置了很多东西(当它在交互模式下工作时,我在批处理模式下遇到了一些奇怪的行为和错误)。

  1. 您的紫色播放预览是使用已经定制的 Maya 场景完成的,还是您首先创建了一个非常基本的文件,其中包含类似的基元而没有花哨的东西?通过基本设置获得良好结果,然后在获得良好结果后尝试使用真实场景。如果它对他们不起作用,那么尝试减少它以找出其中的问题。或者一步一步地实现从最终场景到基本工作场景的内容,以找出正在做的事情。

  2. 否则,您可以使用环境变量 MAYA_OVERRIDE_UI 在没有 GUI 的情况下启动 Maya。将其设置为位于脚本文件夹中的 mel 文件名,然后您可以使用带有一点 mel的更简单的窗口启动 Maya 。

  3. 您还可以从maya-capture 库中获得帮助,这样您就不必自己编写所有代码。

  4. 使用硬件渲染器。

于 2016-05-03T20:12:06.797 回答