FCurve.RemoveKeyAtIndex

導入

v3.0

詳細

指定されたインデックスのキーを削除します。

注:F カーブがロックされている場合は、'Access Denied'(E_ACCESSDENIED)エラーが発生します。キーロックは、OverrideKeyLock 引数を使用して上書きできます。

C#構文

FCurve.RemoveKeyAtIndex( Int32 in_Index, Boolean in_OverrideKeyLock );

スクリプト構文

FCurve.RemoveKeyAtIndex( Index, [OverrideKeyLock] );

パラメータ

パラメータ タイプ 説明
Index Long キーのインデックス。0から(キーの数- 1)までの値である必要があります。
OverrideKeyLock Boolean FCurveKey.Locked 値を上書きして、強制的にキーを削除します。

デフォルト値: false

JScript の例

/*

	This JScript example illustrates how to use the FCurve.RemoveKeyAtIndex method

	to remove a key at a specified index.

*/

// Create a null

Application.NewScene( "", false );

var nullobj = ActiveSceneRoot.AddNull();

var empty;

// Create a custom property set on the null

var cpset = nullobj.AddCustomProperty( "CustomPSet" );

var x = cpset.AddParameter( "X", siDouble, empty, siAnimatable, "X", "X", empty, 0.25, -100, 100 );

var y = cpset.AddParameter( "Y", siDouble, empty, siAnimatable, "Y", "Y", empty, 0.25, -100, 100 );

// Create some fcurves

var fc1 = x.AddFCurve();

var fc2 = y.AddFCurve();

// Start editing the fcurves

fc1.BeginEdit();

fc2.BeginEdit();

// Add keys to the fcurves

fc1.Resample();

fc2.Resample();

// Assign random values to the keys

for ( i=0; i<fc1.GetNumKeys(); i++ )

{

	fc1.GetKeyAtIndex(i).Value = ( Math.random() * 200 ) - 100;

	// Copy the value to fc2 for comparison

	fc2.GetKeyAtIndex(i).Value = fc1.GetKeyValue(i);

}

var cKeys = fc1.GetNumKeys();

Application.LogMessage( "total num keys : " +  cKeys );

// Remove all keys that have an absolute value greater than 75

for ( i=cKeys-1; i>0; i-- )

{

	if ( Math.abs( fc1.GetKeyValue(i) ) > 75 ) 

	{

		fc1.RemoveKeyAtIndex(i);

	}	

}

Application.LogMessage( "total num keys : " +  fc1.GetNumKeys() );

// End editing fcurve

fc2.EndEdit();

fc1.EndEdit();

// Outputs:

//INFO : "total num keys : 100"

//INFO : "total num keys : 74"

関連項目

FCurve.RemoveKey FCurve.RemoveKeysAtIndex FCurve.RemoveKeys