Resample (FCurve)
Introduced
3.0
Description
Resamples the fcurve, adding keys from startframe to endframe at the interval defined by the step.
A valid range is defined as:
startframe < endframe and step < 0.25 * ( endframe - startframe )
Note: If the fcurve is locked or if any keys in the interval are locked then the method raises an 'Access Denied' (E_ACCESSDENIED) error.
You can override the key locks by using the OverrideKeyLock argument.
Scripting Syntax
FCurve.Resample( [StartFrame], [EndFrame], [Step], [KeepExistingKeys], [OverrideKeyLock] )
C# Syntax
FCurve.Resample( Object in_StartFrame, Object in_EndFrame, Double in_Step, Boolean in_KeepExistingKeys, Boolean in_OverrideKeyLock );Parameters
|
Parameter |
Type |
Description |
|
StartFrame |
The time in frames at which to start resampling. Default Value: The first key frame on the fcurve or, if there are no keys, the playcontrol In frame value. |
|
|
EndFrame |
The time in frames at which to end resampling. Default Value: The last key frame or, if there are no keys, the playcontrol Out frame value. |
|
|
Step |
The interval in frames between each key. Default Value: 1 |
|
|
KeepExistingKeys |
Do not remove keys in resampled range. Default Value: false |
|
|
OverrideKeyLock |
Override the FCurveKey.Locked value for existing keys in range and remove these keys if the KeepExistingKeys argument is set to false. Default Value: false |
Examples
JScript Example
/* This JScript examples illustrates how to the FCurve.Resample method to add a predetermined number of keys to an fcurve. */ // Create a null Application.NewScene("", false); var nullobj = ActiveSceneRoot.AddNull(); // Create an fcurve on the posx parameter from the null var fc = nullobj.posx.AddFCurve(); // Define a number of keys var nbkeys = 100; var arraysize = nbkeys * 2; var keys = new Array( 2 * nbkeys ); var i = 0, offset = -50; // Generate some key data with a random distribution for ( i=0; i<arraysize; i+=2 ) { v = Math.round( offset + Math.random() * 100 ); keys[i] = v; keys[i+1] = v; } keys.sort(); for ( i=0; i<arraysize; i+=2 ) { keys[i+1] = Math.cos( (i+1) / 10 ) * 100; } // Set the keys onto the fcurve fc.SetKeys( keys ); // Add the same keys to posy for comparision nullobj.posy.AddFCurve().SetKeys( keys ); var empty; // Resample the entire fcurve on posx and disregard the // existing keys fc.Resample( empty, empty, 5 ); LogMessage( "original curve : " + nullobj.posy.Source.GetNumKeys() + " resampled curve : " + nullobj.posx.Source.GetNumKeys() ); // The resampling method can also be used to add keys // to a empty fcurve nullobj.posz.AddFCurve().Resample( -50,50 ); // Outputs: //INFO : original curve : 64 resampled curve : 21
See Also
|
|
|
|
Autodesk Softimage v7.5