v3.0
F カーブを再サンプリングします。startframe から endframe まで、step で定義される間隔でキーを追加します。
有効な範囲は、次のように定義されています。
StartFrame < EndFrame でステップ < 0.25 * (EndFrame - StartFrame)
注: F カーブがロックされている場合、または間隔内にあるキーがロックされている場合、メソッドにより「Access Denied」(E_ACCESSDENIED)というエラーが示されます。
キーのロックは、OverrideKeyLock 引数を使用して上書きできます。
FCurve.Resample( Object in_StartFrame, Object in_EndFrame, Double in_Step, Boolean in_KeepExistingKeys, Boolean in_OverrideKeyLock ); |
FCurve.Resample( [StartFrame], [EndFrame], [Step], [KeepExistingKeys], [OverrideKeyLock] ); |
| パラメータ | タイプ | 説明 |
|---|---|---|
| StartFrame | Variant |
再サンプリングを開始する時間(フレーム) デフォルト値:F カーブの最初のキーフレーム。キーがない場合は、playcontrol の In フレーム値 |
| EndFrame | Variant |
再サンプリングを終了する時間(フレーム) デフォルト値:最後のキーフレーム。キーがない場合は、playcontrol の Out フレーム値 |
| Step | Double |
各キーの間隔(フレーム) デフォルト値: 1 |
| KeepExistingKeys | Boolean |
再サンプリングされる範囲内のキーを削除しません。 デフォルト値: false |
| OverrideKeyLock | Boolean |
範囲内に存在するキーのFCurveKey.Locked値を上書きし、KeepExistingKeys引数が false に設定されている場合は既存のキーを削除します。
デフォルト値: false |
/*
This JScript examples illustrates how to the FCurve.Resample method
to add a predetermined number of keys to an fcurve.
*/
// Create a null
Application.NewScene("", false);
var nullobj = ActiveSceneRoot.AddNull();
// Create an fcurve on the posx parameter from the null
var fc = nullobj.posx.AddFCurve();
// Define a number of keys
var nbkeys = 100;
var arraysize = nbkeys * 2;
var keys = new Array( 2 * nbkeys );
var i = 0, offset = -50;
// Generate some key data with a random distribution
for ( i=0; i<arraysize; i+=2 )
{
v = Math.round( offset + Math.random() * 100 );
keys[i] = v;
keys[i+1] = v;
}
keys.sort();
for ( i=0; i<arraysize; i+=2 )
{
keys[i+1] = Math.cos( (i+1) / 10 ) * 100;
}
// Set the keys onto the fcurve
fc.SetKeys( keys );
// Add the same keys to posy for comparision
nullobj.posy.AddFCurve().SetKeys( keys );
var empty;
// Resample the entire fcurve on posx and disregard the
// existing keys
fc.Resample( empty, empty, 5 );
LogMessage( "original curve : " + nullobj.posy.Source.GetNumKeys()
+ " resampled curve : " + nullobj.posx.Source.GetNumKeys() );
// The resampling method can also be used to add keys
// to a empty fcurve
nullobj.posz.AddFCurve().Resample( -50,50 );
// Outputs:
//INFO : original curve : 64 resampled curve : 21 |