Hello Everyone, I am currently working on a basic tool, it is WIP. The purpose of the tool is to create a curve from an object's translation. I know that Maya has something like this already however, I wanted to create the actual script myself using Python.
I have a problem with the script, it seems to be creating a curve at every frame instead of creating one whole curve drawing the whole path, any hints? Thanks so much! import maya.cmds as cmds """ This tool creates a curve or multiple curves from an animated object's translation. Author: Martin LaLand Romero """ def main(): """ This function runs the genCurvefromObj function. """ for i in genCurvefromObj(1, 95, 1): print(i) """ This function generates a curve based on the object's animation path. """ def genCurvefromObj(frameStart, frameStop, step): myObject = cmds.ls(selection = True) #This loop queries the position of the animated object and creates a curve based on its position. for object in myObject: i = frameStart while i <=frameStop: yield i i += step print('The current frame is', cmds.currentTime( i, edit = True)) animationCurve = cmds.curve( p = [(0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0)], name = ('Jack_' + str(object) )) cmds.currentTime(i, edit = True) #Get the object position on everyFrame. pos = cmds.xform((object), r=True, query = True, t=True ) cmds.curve(animationCurve, append = True, p = pos,) cmds.delete(animationCurve + ".cv[0]") if __name__ == "__main__": main() Even after revising the loop as shown below, the tool still doesn't work. frameStart = 1 frameStop = 100 step = 1 myObject = cmds.ls(selection = True) #This loop queries the position of the animated object and creates a curve based on its position. for object in myObject: i = frameStart while i <=frameStop: #yield i i += step print('The current frame is', cmds.currentTime( i, edit = True)) animationCurve = cmds.curve( p = [(0, 0, 0), (0, 0, 0), (0, 0, 0)], name = ('Jack_' + str(object) )) cmds.currentTime(i, edit = True) #Get the object position on everyFrame. pos = cmds.xform((object), r=True, query = True, t=True ) cmds.curve(animationCurve, append = True, p = pos,) cmds.delete(animationCurve + ".cv[0]") Thank you guys, Cheers Martin -- http://groups.google.com/group/python_inside_maya