GetKeyInfo

Description

Gets information for a function curve key.

Note: This command uses output arguments. C# and some scripting languages (such as JScript, PerlScript and Python) don't support arguments passed by reference so you need to use the best workaround for your situation:

For scripting languages this command returns an ISIVTCollection which you can use to get the output arguments.

For C# you can use the XSIApplication.ExecuteCommand method to call this command. ExecuteCommand packs the output arguments into a C# System.Object containing an Array of the output arguments (see Calling Commands from C#).

Scripting Syntax

    GetKeyInfo( InputObj, Index, [Parameter], [LeftValue], [RightValue], [LeftTanParam], [LeftTanValue], [RightTanParam], [RightTanValue], [RightSegKind], Constraints )

Parameters

Parameter | Type | Description
InputObj | String | Component on which is connected a FCurve
Index | Integer | Index of a key. Keys are indexed from 0 to (nbKeys - 1). Default Value: 0
Parameter [out] | Double | Returns the parameter value.
LeftValue [out] | Double | Returns the left value of the key.
RightValue [out] | Double | Returns the right value of the key.
LeftTanParam [out] | Double | Returns the left value of the tangent parameter for the key.
LeftTanValue [out] | Double | Returns the left value of the tangent for the key.
RightTanParam [out] | Double | Returns the right value of the tangent parameter for the key.
RightTanValue [out] | Double | Returns the right value of the tangent for the key.
RightSegKind [out] | Integer | Returns the segment type of the right side of the key. Possible Values: • 0: DEFAULT • 1: CONSTANT • 2: LINEAR • 3: CUBIC
Constraints [out] | Integer | Constraints on the key. This value is a bitfield. Possible Values: • 0: No constraint. • 1: Parameter is immutable. • 2: Left and right values are immutable. • 4: Function curve is G1 continuous at this key. • 8: Left- and right-tangent directions are immutable. • 16: Left- and right-tangent lengths are immutable. • 32: Parameter, values, and tangents are immutable. • 64: Tangents are considered horizontal. • 128: Tangents are considered as horizontal when the key is a local extremum. • 256: Tangents are adjusted automatically when neighbouring keys are created or moved.

Examples

VBScript Example

    ' create a null to hold animation
    GetPrim "Null"

    ' Save some keys on the X position of the Null object
    SaveKey "Null.kine.local.posx", 1, -5.0
    SaveKey "Null.kine.local.posx", 25, 7.0
    SaveKey "Null.kine.local.posx", 50, 2.0

    ' Get the animation source of type FCurve
    set collection = GetSource( "Null.kine.local.posx",siFCurveSource  )

    for each fcurve in collection

       ' get fcurve info
           GetFCurveInfo fcurve, crvtype, nokeyval, nbKeys, extrap, segtype, lowclamp, highclamp

       LogMessage "FCurve: " & vbCR & vbLF & _
           "Type : " & crvtype & vbCR & vbLF & _
           "No Key Value : " & nokeyval& vbCR & vbLF & _
           "Num Keys : " & nbKeys& vbCR & vbLF & _
           "Extrapolation : " & extrap & vbCR & vbLF & _
           "Default Segment Type : " & segtype& vbCR & vbLF & _
           "Low Clamp : " & seglowclamp & vbCR & vbLF & _
           "High Clamp : " & highclamp & vbCR & vbLF

       for i = 0 to nbkeys - 1

           ' get fcurvekey info
           GetKeyInfo fcurve, i, parameter, leftval, rightval, lefttanparam, lefttanval, righttanparam, righttanval, rightsegkind, constraints
           LogMessage "Key: " & i & vbCR & vbLF & _
              "KeyParam : " & parameter & vbCR & vbLF & _
              "LeftValue: " & leftval & vbCR & vbLF & _
              "RightValue: " & rightval & vbCR & vbLF & _
              "LeftTanParam: " & lefttanparam & vbCR & vbLF & _
              "LeftTanValue: " & lefttanval & vbCR & vbLF & _
              "RightTanParam: " & righttanparam & vbCR & vbLF & _
              "RightTanValue: " & righttanval & vbCR & vbLF & _
              "RightSegKind: " & rightsegkind & vbCR & vbLF & _
              "Constraints: " & constraints & vbCR & vbLF
       next
    next
    'INFO : "FCurve:
    'Type : 20
    'No Key Value : -5
    'Num Keys : 3
    'Extrapolation : 1
    'Default Segment Type : 3
    'Low Clamp :
    'High Clamp : 1.79769313486232E+308
    '"
    'INFO : "Key: 0
    'KeyParam : 3.33666666666667E-02
    'LeftValue: -5
    'RightValue: -5
    'LeftTanParam: 0
    'LeftTanValue: 0
    'RightTanParam: 0.266933333333333
    'RightTanValue: 0
    'RightSegKind: 3
    'Constraints: 260
    '"
    'INFO : "Key: 1
    'KeyParam : 0.834166666666667
    'LeftValue: 7
    'RightValue: 7
    'LeftTanParam: -0.266933333333333
    'LeftTanValue: -1.14285714285714
    'RightTanParam: 0.278055555555556
    'RightTanValue: 1.19047619047619
    'RightSegKind: 3
    'Constraints: 260
    '"
    'INFO : "Key: 2
    'KeyParam : 1.66833333333333
    'LeftValue: 2
    'RightValue: 2
    'LeftTanParam: -0.278055555555556
    'LeftTanValue: 0
    'RightTanParam: 0
    'RightTanValue: 0
    'RightSegKind: 3
    'Constraints: 260
    '"

See Also

FCurveKey | GetFCurveInfo | GetSource

Autodesk Softimage v7.5