## FCurveKey

Object Hierarchy | Related C++ Class: FCurveKey

### Inheritance

###

SIObject

FCurveKey

### Introduced

v1.0

### Description

The FCurveKey represents a key on an FCurve and is used to access and modify information about that key.
Note: For more information about interpolation and extrapolation for fcurves. For more information, see "FCurve Interpolation and Extrapolation" in the Softimage user guide.

### Methods

GetConstraint2 | IsClassOf | IsEqualTo | Set

### Properties

Application | Categories | Constraint | FullName
Help | Index | Interpolation | Left
LeftTanX | LeftTanY | Locked | Name
NestedObjects | Origin | OriginPath | Parent
Right | RightTanX | RightTanY | Selected
Time | Type | Value |

### Examples

#### 1. JScript Example

    /*

    	This example demonstrates how to set an fcurve on the posx parameter

    	and then how to access the keys through the FCurveKey object

    */

    NewScene( null, false )

    var oRoot = Application.ActiveProject.ActiveScene.Root;

    var oNull = oRoot.AddNull();

    var oPosX = oNull.posx;

    // Create and connect an fcurve to the position x

    var oFCurve = oPosX.AddFCurve2( new Array(1, 10, 50, 0, 100, 10) );

    // Set the zero slopes on the key tangents

    oFCurve.SetKeyTangents( new Array(

    	-10.5, 0, 10.5, 0,

    	-10.5, 0, 10.5, 0,

    	-10.5, 0, 10.5, 0

    ));

    // Get the keys on the fcurve

    for ( var i=0; i<oFCurve.Keys.Count; i++ ) {

    	var oFCKey = oFCurve.Keys(i);

    	Application.LogMessage( "oFCKey[" + oFCKey.Index + "] at frame " + oFCKey.Time + " = " + oFCKey.Value );

    }

    // Expected results:

    //INFO : oFCKey[0] at frame 1 = 10

    //INFO : oFCKey[1] at frame 50 = 0

    //INFO : oFCKey[2] at frame 100 = 10

#### 2. VBScript Example

    '

    ' This example demonstrates how to set an fcurve on the posx parameter

    ' and then how to access the keys through the FCurveKey object

    '

    set oRoot = Application.ActiveProject.ActiveScene.Root

    set oNull = oRoot.AddNull

    set oPosX = oNull.posx

    ' Create and connect an fcurve to the position x

    set oFCurve = oPosX.AddFCurve2( Array( 1, 10, 50, 0, 100, 10 ))

    ' Set the zero slopes on the key tangents

    oFCurve.SetKeyTangents( Array( _

    	-10.5, 0, 10.5, 0, _

    	-10.5, 0, 10.5, 0, _

    	-10.5, 0, 10.5, 0 _

    ))

    ' Get the keys on the fcurve

    for each oFCKey in oFCurve.Keys

    	Application.LogMessage "oFCKey[" & oFCKey.Index & "] at frame " & oFCKey.Time & " = " & oFCKey.Value

    next

    ' Expected results:

    'INFO : oFCKey[0] at frame 1 = 10

    'INFO : oFCKey[1] at frame 50 = 0

    'INFO : oFCKey[2] at frame 100 = 10

#### 3. Python Example

    #

    # This example demonstrates how to set an fcurve on the posx parameter

    # and then how to access the keys through the FCurveKey object

    #

    Application.NewScene( "", 0 )

    oRoot = Application.ActiveProject.ActiveScene.Root

    oNull = oRoot.AddNull()

    oPosX = oNull.posx

    # Create and connect an fcurve to the position x

    oFCurve = oPosX.AddFCurve2( [1, 10, 50, 0, 100, 10] )

    # Set the zero slopes on the key tangents

    oFCurve.SetKeyTangents( [

    	-10.5, 0, 10.5, 0,

    	-10.5, 0, 10.5, 0,

    	-10.5, 0, 10.5, 0

    ])

    # Get the keys on the fcurve

    for oFCKey in oFCurve.Keys :

    	Application.LogMessage( "oFCKey[" + str(oFCKey.Index) + "] at frame " + str(oFCKey.Time) + " = " + str(oFCKey.Value) )

    # Expected results:

    #INFO : oFCKey[0] at frame 1.0 = 10.0

    #INFO : oFCKey[1] at frame 50.0 = 0.0

    #INFO : oFCKey[2] at frame 100.0 = 10.0

### See Also

FCurve.Keys FCurveKeyCollection FCurve