Terminal 是否在命令行渲染期间打印当前帧?

Terminal 是否在命令行渲染期间打印当前帧?,terminal,rendering,maya,mel,Terminal,Rendering,Maya,Mel,有没有一种方法可以在命令行渲染期间基本上打印我自己的输出 假设我不需要/不想要maya默认输出的所有其他输出,我知道您可以更改详细程度,但有一些非常具体的内容我想输出,但我想不出来。我当前将详细输出渲染到文件中,因此我希望在终端(我使用MAC)中打印渲染当前达到的帧 这可能只是简单的想法,但以下是我尝试的: Render -preFrame "print `currentTime -q`;" -s 1 -e 20 -rd /render/directory/ maya_file.mb 显然,

有没有一种方法可以在命令行渲染期间基本上打印我自己的输出

假设我不需要/不想要maya默认输出的所有其他输出,我知道您可以更改详细程度,但有一些非常具体的内容我想输出,但我想不出来。我当前将详细输出渲染到文件中,因此我希望在终端(我使用MAC)中打印渲染当前达到的帧

这可能只是简单的想法,但以下是我尝试的:

Render -preFrame "print `currentTime -q`;" -s 1 -e 20 -rd /render/directory/ maya_file.mb 
显然,
-preFrame
需要一个字符串,根据文档,这可以使用mel命令,但显然这仅限于某些命令,我假设currentTime命令从maya中的时间轴中提取信息,而不是从渲染器中提取信息。。。当我直接运行上面的命令时,它会发出这样的信息:
-bash:currentTime:command-notfound
,并且在渲染失败/未启动后不久

理想情况下,我希望在每一帧开始时打印以下内容:

“开始渲染帧XXXX的时间到此为止”
,这样,我可以快速查看终端,查看渲染器是否出现故障、卡住或在何处以及何时启动

所以我的问题是,如果currentTime是Maya中使用的mel命令,是否有其他方法可以打印此信息

干杯,
Shannon

查看渲染设置的
预渲染层MEL
和/或
预渲染帧MEL
部分

它需要MEL,所以您需要用MEL编写它,或者用MEL包装python。对于这样一个简单的用法,我会说用MEL编写它:

print `currentTime -q`

经过数小时的搜索,我终于发现可以将maya作为交互式shell启动。通过这样做,我能够在打开脚本时为其提供源代码,并在内存中运行我想要的任何内容,就像我当时打开了Maya一样

/Applications/Autodesk/maya2014/Maya.app/Contents/MacOS/maya -prompt -script "/Volumes/raid/farm_script/setupRender.mel"
setupRender.mel
文件中,我能够分配变量,包含渲染等选项,在这样做的过程中,我还能够为帧编号创建一个全局变量,并在帧前回调期间增加它,如下所示:

int $startFrame                 = 100;
int $endFrame                   = 1110;
global int $frameCount         = 0;
string $preRenderStatistics    = "'global int $frameCount; $frameCount = " + $startFrame + ";'";
string $preFrameStatistics     = "'print(\"Rendering frame: \" + $frameCount++)'";
string $additionalFlags         = "";
string $sceneFilePath           = "'/Volumes/path/to/file/intro_video_001.mb'";

system("Render -preRender " + $preRenderStatistics + " -preFrame " + $preFrameStatistics + " -s " + $startFrame + " -e " + $endFrame + " -x " + $additionalFlags + " " + $sceneFilePath);

这是我目前所拥有的一个非常简化的版本,但如果其他人偶然发现它,希望这将对他们有所帮助。

这与我现在所做的不一样吗?或者这会有不同的工作方式吗?请尝试并报告:)不幸的是,它没有工作,主要是因为从terminal开始,我指定了不同的开始命令和preRender标志,覆盖了文本字段中的内容。好建议!