Re: Getting Fcurves

2012-12-07 Thread Gustavo Eggert Boehs
Hmm... aparently not. It returns a boolean after checking for a given type
of source, but not the source itself:
http://download.autodesk.com/global/docs/softimage2012/en_us/sdkguide/si_om/Parameter.IsAnimated.html


RE: Getting Fcurves

2012-12-07 Thread Matt Lind
That is correct.  I think the animation mixer is used behind the scenes to 
provide the layer functionality.

Use Parameter.Sources which will return a collection of all animation sources 
for the parameter.  The returned sources are organized from most significant to 
least significant (top layer to bottom layer).  The base layer will be the last 
item in the returned collection.

// JScript
var oItem   = Selection(0);
var oAnimatedParameters = oItem.AnimatedParameters( 
siFCurveSource );

for ( var i = 0; i  oAnimatedParameters.Count; i++ ) {

var oAnimatedParameter = oAnimatedParameters(i);
LogMessage( oAnimatedParameter.FullName );
var oParameterSources  = oParameter.Sources;

for ( var j = 0; j  oParameterSources.Count; 
j++ ) {

var oParameterSource = 
oParameterSources(j);

LogMessage(   -  + 
oParameterSource.FullName );
}
}



Matt



From: softimage-boun...@listproc.autodesk.com 
[mailto:softimage-boun...@listproc.autodesk.com] On Behalf Of Gustavo Eggert 
Boehs
Sent: Thursday, December 06, 2012 5:58 PM
To: SI mailing list
Subject: Getting Fcurves

Hey guys, little python question.

If I want to get an fCurve all I need to do is get something like:
object.kine.local.posx.Source

Nonetheless if I have animation layers for that channel I (aparently) get a 
mixer. At least thats what it says when I try to log the object. Is that 
correct?

Is there any way to safely get the base layer everytime from this mixer?


Thanks
--
Gustavo E Boehs
http://www.gustavoeb.com.br/blog


Re: Getting Fcurves

2012-12-07 Thread Gustavo Eggert Boehs
Great! Aparently I was using Source instead of Source*s*.
Would never even perceive they were two different things without your help.
Thanks Matt, owe you a beer now :)

For archiving purposes, python code looks like this:
  fCurvePosx = object.kine.local.posx.Sources
  fCurvePosx = fCurvePosx[fCurvePosx.Count -1]

Cheers


2012/12/7 Matt Lind ml...@carbinestudios.com

 That is correct.  I think the animation mixer is used behind the scenes to
 provide the layer functionality.

 ** **

 Use Parameter.Sources which will return a collection of all animation
 sources for the parameter.  The returned sources are organized from most
 significant to least significant (top layer to bottom layer).  The base
 layer will be the last item in the returned collection.

 ** **

 // JScript

 var oItem   = Selection(0);

 var oAnimatedParameters = oItem.AnimatedParameters(
 siFCurveSource );

 

 for ( var i = 0; i  oAnimatedParameters.Count; i++ ) {***
 *

 

 var oAnimatedParameter =
 oAnimatedParameters(i);

 LogMessage( oAnimatedParameter.FullName );
 

 var oParameterSources  =
 oParameter.Sources;

 

 for ( var j = 0; j 
 oParameterSources.Count; j++ ) {

 

 var oParameterSource =
 oParameterSources(j);

 

 LogMessage(   -  +
 oParameterSource.FullName );

 }

 }

 ** **

 ** **

 ** **

 Matt

 ** **

 ** **

 ** **

 *From:* softimage-boun...@listproc.autodesk.com [mailto:
 softimage-boun...@listproc.autodesk.com] *On Behalf Of *Gustavo Eggert
 Boehs
 *Sent:* Thursday, December 06, 2012 5:58 PM
 *To:* SI mailing list
 *Subject:* Getting Fcurves

 ** **

 Hey guys, little python question.

 ** **

 If I want to get an fCurve all I need to do is get something like:

 object.kine.local.posx.Source

 ** **

 Nonetheless if I have animation layers for that channel I (aparently) get
 a mixer. At least thats what it says when I try to log the object. Is that
 correct?

 ** **

 Is there any way to safely get the base layer everytime from this mixer?
 

 ** **

 ** **

 Thanks

 --
 Gustavo E Boehs
 http://www.gustavoeb.com.br/blog




-- 
Gustavo E Boehs
http://www.gustavoeb.com.br/blog