FCurve.GetKeyIndex

導入

v3.0

詳細

指定されたフレームにおけるキーのインデックスを戻します。キーが存在しない場合は、-1 が戻されます。

C#構文

Int32 FCurve.GetKeyIndex( Object in_Frame, Double in_Tolerance );

スクリプト構文

oLong = FCurve.GetKeyIndex( Frame, [Tolerance] );

戻り値

Long

パラメータ

パラメータ タイプ 説明
Frame Variant キーを検索する時間(フレーム)
Tolerance Double キーの許容範囲

デフォルト値: -1

指定可能な値:

説明:

>0 Frame ‐ Tolerance と Frame + Tolerance のキーを合わせます。
0 キーは正確にフレームの位置にある必要があります
-1 最も近い 0.5 フレーム

JScript の例

/*

	This JScript example illustrates how to use the resample method to 

	add keys to an fcurve and the getkeyindex() method to look up an

	keys index from a frame value.

*/

// Create a null

Application.NewScene( null, false );

var nullobj = ActiveSceneRoot.AddNull();

// Create an fcurve on the posx parameter from the null

var fc = nullobj.posx.AddFCurve()

// Start editing the fcurve

fc.BeginEdit();

// Use the Resample method to add keys to the fcurve on every second frame

var empty;

fc.Resample(empty,empty,2);

// Look up the key near frame 25

var key, index, frame, tolerance, keyframe;

frame = 24;

tolerance = 1;

if ( fc.KeyExists( frame, tolerance ) )

{

	// Get index from frame using a tolerance of 1 frame (for example, 25 +/- 1 frame).

	// This will find the key at frame 23

	index = fc.GetKeyIndex( frame, tolerance );

	keyframe = fc.GetKeyFrame( index );

	LogMessage( "found key " + index + " at frame " + keyframe + " between frame " 

		+ (frame-tolerance) + " and " + (frame+tolerance)  );

	// Get the key at index

	key = fc.GetKeyAtIndex( index );

	// Set the key value

	key.Value = Math.random() * 100;

}

// End editing the fcurve and put the undo event onto 

// the undo/redo stack

fc.EndEdit();

// Outputs:

//INFO : found key 11 at frame 23.000000000000003 between frame 23 and 25

関連項目

FCurveKey.Index FCurve.Keys FCurve.GetKey FCurve.GetKeyFrame FCurve.GetKeyValue