How to reverse Animation Curve?


Hi, I’m trying to flip the x and the y values of an animation curve in maya. That is, I want to run information through a curve backwards (using the curve.output channel as the input). The information only needs to be queried, so it could be done with a calculation. I’ve tried my hand at this for quite some time now with no success. If anyone has any ideas, please let me know!
Right now I’m trying to make a duplicate curve and rebuild that backwards. The only problem with that is reversing the tangent angles: something that appears to be beyond me. The tangent angles returned from the keyTangent command seem to be degrees at first glance, however they do not change in a linear fashion. So I don’t understand how to get them into a predictable unit I understand and convert them back again.


Well, I managed to figure something out myself. If anyone needs to reverse an animation curve in the future, here’s the code I came up with. I’m fairly sure it only works with weighted curves though.

global proc inverseCurve(string $curve){
 	//this is closer to reversing a curve, but that is already a named command.
 	int $numKeys = `keyframe -q -kc $curve`;
 	float $tempFloat[];
 	float $yVal[];
 	float $xVal[];
 	float $ox[];
 	float $oy[];
 	float $ix[];
 	float $iy[];
 	for($x = 0; $x < $numKeys; $x++){
 		$tempFloat = `keyframe -in $x -a -q -vc $curve `;	   $yVal[$x] = $tempFloat[0];
 		$tempFloat = `keyframe -in $x -a -q -fc $curve `;	   $xVal[$x] = $tempFloat[0];
 		$tempFloat = `keyTangent -in $x -q -ox $curve `;		$ox[$x] = $tempFloat[0];
 		$tempFloat = `keyTangent -in $x -q -oy $curve `;		$oy[$x] = $tempFloat[0];
 		$tempFloat = `keyTangent -in $x -q -ix $curve `;		$ix[$x] = $tempFloat[0];
 		$tempFloat = `keyTangent -in $x -q -iy $curve `;		$iy[$x] = $tempFloat[0];
 	for($x = 0; $x < $numKeys; $x++){
 		keyframe -in $x -a -o over -fc $yVal[$x] -vc $xVal[$x] $curve;
 		keyTangent -in $x -ox $oy[$x] -oy $ox[$x] -ix $iy[$x] -iy $ix[$x] $curve;

I would still like to know why the tangent angles in maya don’t move in a linear fashion, if anyone knows. You never know when you’ll need to know stuff like that in the future!


This thread has been automatically closed as it remained inactive for 12 months. If you wish to continue the discussion, please create a new thread in the appropriate forum.