Try setting simulation to 1 for bakeResults.
On May 30, 2012, at 8:03 PM, Carlo <[email protected]> wrote: > Hey Justin, > > Right now I'm simply trying to bake out the animation of the controller and > copying the animation back onto a locator. The problem is that will the > constrained controller is baked out it only the first is baked over the > entire time range. So when the controller is suppose to follow whatever was > constraining it, it just stays in place. > > It's not that I wouldn't be able to directly use data from the XML it's just > that it would take time to load to the data back onto the controllers every > time the animation is updated. Not only to mention if there are 200 > controllers in the scene I would have to go frame by frame for each > controller and their attribute and save the data out. It just doesn't seem > very efficient. > > This is a quick and dirty version of my code. The overall code uses just > simple maya commands, which is why I find it very odd to be having such an > issue. > > import sys, os.path > import maya.standalone as st > > ##Start Maya Standalone > st.initialize(name='python') > > import maya.cmds as cmds > > path= 'animatedScene.ma' > ##Open File > cmds.file( path, f=1, o=1) > > path= os.path.normpath( path) > #print( path) > > ##Open File > cmds.file( path, f=1, o=1) > > ##Grab Start Frame > startTime= int( cmds.playbackOptions( q=True, min=True)) > #print( startTime) > > ##Grab End Frame > endTime= int( cmds.playbackOptions( q=True, max=True)) > print( endTime) > > ##Grab all sets > setList= cmds.ls( et= 'objectSet' ) > #print( setList) > > for set in setList: > ctrl_list= cmds.sets( set, q= 1) > #print( ctrl_list) > > ##Bake controllers from Set Lister > for ctrl in ctrl_list: > ##Bake out controls > cmds.bakeResults( ctrl, simulation=0, t=( startTime, endTime), > shape=1, dic= 0, pok= 0) > > ##Copy animation from controller to locator > for ctrl in ctrl_list: > ##Fix namespace > newCtrl= ctrl.replace( ':', '_NmSp_') > #print( newCtrl) > > ##Create locator > sceneAnimLoc= cmds.spaceLocator( n= newCtrl+'_animLoc', p=[0, > 0, 0] )[0] > #print( sceneAnimLoc) > > ##Grab attributes > attrList= cmds.listAttr( ctrl, k= 1, u= 1) > #print( ctrl, attrList) > > for attr in attrList: > newAttr= attr.replace( ':','_NmSp_') > newAttr= newCtrl+'_'+ newAttr > #print( newAttr) > > ##Create attribute for locator > cmds.addAttr( sceneAnimLoc, ln= newAttr, at= 'double', > k= 1) > > ##Check if controller attribute is keyed > checkKey= cmds.keyframe( ctrl, q= 1, at= attr) > #print( ctrl, attr, checkKey) > > if( checkKey): > ##Copy key from at Controller attribute > cmds.copyKey( ctrl, time=[], f=[], attribute= > attr) > > ##Paste Controller Attribute onto SceneAnim Loc > cmds.pasteKey( sceneAnimLoc, attribute= newAttr) > > ##Save File > cmds.file( rn= 'baked_animScene.mb') > cmds.file( s=1, f=1) > > currentFile= cmds.file( q=1, exn=1) > print( currentFile) > -- > view archives: http://groups.google.com/group/python_inside_maya > change your subscription settings: > http://groups.google.com/group/python_inside_maya/subscribe -- view archives: http://groups.google.com/group/python_inside_maya change your subscription settings: http://groups.google.com/group/python_inside_maya/subscribe
