v3.0
指定されたインデックスのキーを削除します。
注:F カーブがロックされている場合は、'Access Denied'(E_ACCESSDENIED)エラーが発生します。キーロックは、OverrideKeyLock 引数を使用して上書きできます。
FCurve.RemoveKeyAtIndex( Int32 in_Index, Boolean in_OverrideKeyLock ); |
FCurve.RemoveKeyAtIndex( Index, [OverrideKeyLock] ); |
パラメータ | タイプ | 説明 |
---|---|---|
Index | Long | キーのインデックス。0から(キーの数- 1)までの値である必要があります。 |
OverrideKeyLock | Boolean |
FCurveKey.Locked 値を上書きして、強制的にキーを削除します。 デフォルト値: false |
/* 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" |