Maya:独立和嵌入模式下的不同行为

时间:2014-11-24 11:52:28

标签: python scripting simulation maya

我想创建一个导入场景的脚本,运行nCloth模拟并将结果导出为OBJ格式。

我使用的输入是从Maya"入门"下载的。部分。该脚本是用Python编写的,以便以独立模式启动:http://pastebin.com/3hptPYbB

在Maya中启动时,脚本运行正常。在独立模式下,nCloth模拟不会显着触发,因为结果是模拟前的场景,并且脚本很快就会终止。

有谁知道为什么两种运行模式之间的结果不同以及如何解决这个问题?也许应该预先加载一个nCloth插件?

谢谢,

1 个答案:

答案 0 :(得分:2)

在这种情况下,我认为它实际上是bakeResults上的标志。我能够让它在Maya独立工作:

import maya.mel
import maya.cmds as cmds
cmds.file(new=True, f=True)
cmds.polyCube()
cmds.polyPlane(sx = 21, sy = 22)
cmds.xform(t= (.0005, .015, .0005)) # note units - my maya is working in meters...
mel.eval("createNCloth 0;")
maya.mel.eval("createNCloth 0;")
cmds.select('pCube1')
maya.mel.eval("makeCollideNCloth")
cmds.playbackOptions(animationStartTime=0)
cmds.playbackOptions(animationEndTime=100)
cmds.play(f=True)
cmds.bakeResults('pPlane1', simulation=True, t=(1,20), disableImplicitControl=True, sb = 1, shape=True, cp=True )

# use openMaya to set the frame - cmds.currentTime does not 
# stick in standalone:
import maya.OpenMaya as om
om.MGlobal.viewFrame(20)
# delete the cloth solution 
cmds.delete('nCloth1', 'nRigid1')
# delete the orphaned shape
cmds.delete('pPlaneShape1')
cmds.file(rename = "C:/test/cloth.mb")
cmds.file(save=True)

我注意到的两个问题是需要在烘焙结果中设置形状和控制点标记,并且需要在删除布料解算器后将烘焙形状与原始几何体分开。在此示例中,删除布料和刚体而不删除pPlaneShape1会留下悬挂在空中的原始平面的副本。您可能需要删除删除并查看结果以了解此场景中的操作。