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 Double Returns the parameter value.
LeftValue Double Returns the left value of the key.
RightValue Double Returns the right value of the key.
LeftTanParam Double Returns the left value of the tangent parameter for the key.
LeftTanValue Double Returns the left value of the tangent for the key.
RightTanParam Double Returns the right value of the tangent parameter for the key.
RightTanValue Double Returns the right value of the tangent for the key.
RightSegKind Integer Returns the segment type of the right side of the key.

Possible Values:

Description:

0 DEFAULT
1 CONSTANT
2 LINEAR
3 CUBIC
Constraints Integer Constraints on the key. This value is a bitfield.

Possible Values:

Description:

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