v 5.1
指定されたフィルタを使用して、指定されたタイムスパンの F
カーブをスムージングします。スムージングを実行すると、キー間の平均をとって、F カーブの鋭いスパイクやギザギザが取り除かれます。F
カーブは最初にスムージングされ、in_dSamplingStep のサンプリングステップで再サンプリングされます。
注:F カーブがロックされているか、内部のいずれかのキーがロックされている場合は、'Access
Denied'(E_ACCESSDENIED)エラーが発生します。
FCurve.Smooth( [StartFrame], [EndFrame], [FilterSize], [SamplingStep], [FilterType], [GaussianVariance] ); |
パラメータ | タイプ | 詳細 |
---|---|---|
StartFrame | Variant | スムージングする範囲の開始時間EndFrame 値よりも低い値にする必要があります。
デフォルト値:F カーブの最初のキーフレーム。キーがない場合は、PlayControlの In フレーム値 |
EndFrame | Variant | スムージングを終了する時間(フレーム)
デフォルト値:最後のキーフレーム。キーがない場合は、PlayControlの Out フレーム値 |
FilterSize | Double | 新しいキーを計算するために平均化するキーの数を定義します。 フィルタのサイズが大きいほど直線に近いカーブが得られます。この値は
1より大きい値である必要があります。
デフォルト値: 5 |
SamplingStep | Double | スムージングの後に F カーブに適用されたサンプリングステップ。FilterSizeよりも小さい値にする必要があります。
デフォルト値: 1 |
FilterType | siFCurveSmoothFilterType | スムージングに使用するフィルタのタイプを指定します。
デフォルト値:siFCurveAverageFilterType |
GaussianVariance | Double | ガウスフィルタの変位。スムージングの程度をコントロールします。 変位の値が大きいほど滑らかなファンクション
カーブになります。この値は 0より大きい値である必要があります。
デフォルト値: 1 |
/* This example illustrates how to use FCurve.Smooth method */ // Create a null NewScene("", false); var nullobj = Application.ActiveSceneRoot.AddNull(); // Use the Resample method to add keys to empty fcurves nullobj.posx.AddFCurve().Resample( 1,50, 5 ); nullobj.posy.AddFCurve().Resample( 1,50, 5 ); var posxFC = nullobj.posx.Source; var posyFC = nullobj.posy.Source; Application.LogMessage( "posx curve : " + posxFC.GetNumKeys() ); Application.LogMessage( "posy curve : " + posyFC.GetNumKeys() ); // Smooth the posx curve posxFC.Smooth(1,50); Application.LogMessage( "smoothed posx curve : " + posxFC.GetNumKeys() ); Application.LogMessage( "posy curve : " + posyFC.GetNumKeys() ); // Outputs: //INFO : posx curve : 11 //INFO : posy curve : 11 //INFO : smoothed posx curve : 50 //INFO : posy curve : 11 |