Scripting 在MEL中运行模拟的功能是什么?

Scripting 在MEL中运行模拟的功能是什么?,scripting,simulation,maya,mel,Scripting,Simulation,Maya,Mel,我想创建一个MEL脚本,用于创建场景,设置ncloth和被动碰撞器对象,并将模拟运行到某一帧 在脚本编辑器中,我可以看到场景设置,但没有启动模拟的功能。在脚本编辑器中,可以告诉Maya“回显所有命令”。如果启用该选项,然后在UI中执行某些操作,它将在脚本编辑器中输出所有MEL命令。在脚本编辑器中,您可以告诉Maya“回显所有命令”。如果启用该功能,然后在UI中执行某些操作,它将在脚本编辑器中输出所有MEL命令。 @Andreas建议的技术有时被称为“命令捕获”。这是了解Maya正在做什么以及如何

我想创建一个MEL脚本,用于创建场景,设置ncloth和被动碰撞器对象,并将模拟运行到某一帧


在脚本编辑器中,我可以看到场景设置,但没有启动模拟的功能。

在脚本编辑器中,可以告诉Maya“回显所有命令”。如果启用该选项,然后在UI中执行某些操作,它将在脚本编辑器中输出所有MEL命令。

在脚本编辑器中,您可以告诉Maya“回显所有命令”。如果启用该功能,然后在UI中执行某些操作,它将在脚本编辑器中输出所有MEL命令。

@Andreas建议的技术有时被称为“命令捕获”。这是了解Maya正在做什么以及如何做事情的一个很好的方法。但要回答您的具体问题:

可以使用
cmds.play()
开始在Maya上播放

您可能希望使用
cmds.playbackOptions()
命令设置播放范围的开始帧和结束帧

所以你会这样做:(添加相关解释性评论)

编辑:我刚刚注意到您要求使用MEL命令。只需使用上述命令并对其进行修改,如下所示:

playbackOptions -e animationStartTime 1 animationEndTime 120 playbackSpeed 0;
play -f 1;
建议:最好播放此播放预览,以适当的fps和播放速度观看

希望这有用。

@Andreas建议的技术有时被称为“命令捕获”。这是了解Maya正在做什么以及如何做事情的一个很好的方法。但要回答您的具体问题:

可以使用
cmds.play()
开始在Maya上播放

您可能希望使用
cmds.playbackOptions()
命令设置播放范围的开始帧和结束帧

所以你会这样做:(添加相关解释性评论)

编辑:我刚刚注意到您要求使用MEL命令。只需使用上述命令并对其进行修改,如下所示:

playbackOptions -e animationStartTime 1 animationEndTime 120 playbackSpeed 0;
play -f 1;
建议:最好播放此播放预览,以适当的fps和播放速度观看

希望这是有用的。

我会尝试使用将sim卡转换为普通顶点动画。然后,您可以将时间提前到所需的时间,并以这种方式导出OBJ

一旦执行,这将禁用模拟-这有助于获得结果,但不会编辑结果

我会尝试使用将sim卡转换为普通顶点动画。然后,您可以将时间提前到所需的时间,并以这种方式导出OBJ



一旦执行,这将禁用模拟-这有助于获得结果,但不会编辑结果

你能把问题说得更清楚些吗?在脚本编辑器中可以看到场景设置是什么意思?到目前为止,您是否编写了任何代码?我按照nCloth教程的要求单击“播放”按钮开始模拟,但在脚本历史记录中,我没有看到任何MEL命令执行此操作。这就是为什么我想知道是否存在启动/停止模拟的MEL命令?我希望这一点现在更清楚:)你能把问题说得更清楚些吗?在脚本编辑器中可以看到场景设置是什么意思?到目前为止,您是否编写了任何代码?我按照nCloth教程的要求单击“播放”按钮开始模拟,但在脚本历史记录中,我没有看到任何MEL命令执行此操作。这就是为什么我想知道是否存在启动/停止模拟的MEL命令?我希望这一点现在更清楚:)非常感谢你的详细回答。我已经按照您的步骤在末尾添加了导出,但似乎在模拟完成之前调用了导出。如果脚本在Maya中启动(即从脚本编辑器启动),则脚本可以正常工作。我已使用pdb调试了代码,发现在模拟后调用了导出。因此,我认为cmds.evalFerred()不能解决这个问题。神奇的是,在Maya中启动相同的脚本时没有问题。以下是我使用“Maya入门”中数据集的完整代码:。能否请您快速查看代码并告诉我是否存在明显错误?能否尝试使用cmds.file()执行file命令?eval通常是邪恶的。此外,如果您的目的是在模拟后导出网格,请尝试使用@theodox answer-use bakeSimulationEval在maya中不是eevil。如果是这样的话,那么整个GUI的一半都在调用eval,这会给您带来麻烦。玛雅天生就不安全。非常感谢你的详细回答。我已经按照您的步骤在末尾添加了导出,但似乎在模拟完成之前调用了导出。如果脚本在Maya中启动(即从脚本编辑器启动),则脚本可以正常工作。我已使用pdb调试了代码,发现在模拟后调用了导出。因此,我认为cmds.evalFerred()不能解决这个问题。神奇的是,在Maya中启动相同的脚本时没有问题。以下是我使用“Maya入门”中数据集的完整代码:。能否请您快速查看代码并告诉我是否存在明显错误?能否尝试使用cmds.file()执行file命令?eval通常是邪恶的。此外,如果您的目的是在模拟后导出网格,请尝试使用@theodox answer-use bakeSimulationEval在maya中不是eevil。如果是这样的话,那么整个GUI的一半都在调用eval,这会给您带来麻烦。玛雅天生就不安全是的。。听起来比通过播放和导出要可靠得多+1.在烘焙模拟结束时,场景将返回到初始位置!我也无法返回到特定帧,因此我认为从模拟到动画的转换失败:(也许我的代码可以给你更多的想法:。提前谢谢!我现在没有访问maya的权限,但是你应该能够烘焙从初始设置帧到设置帧的范围,然后使用
cmds.currentTime
currentTime do将帧提前到该时间。)