v6.0
F カーブを時間または相対量による値でスケールします。スケール量は、キーフレームのバウンディングボックスとアンカーポイントに対する相対値です。そのため値が 0.5 の場合はキーが 50% スケールされることがあります。
注:F カーブがロックされている場合は、'Access Denied'(E_ACCESSDENIED)エラーが発生します。
警告: このメソッドでのスケールで、負の値は使用できません。
FCurve.Scale( Double in_FrameFactor, Double in_ValueFactor, Object in_FrameAnchor, Object in_ValueAnchor ); |
FCurve.Scale( [FrameFactor], [ValueFactor], [FrameAnchor], [ValueAnchor] ); |
パラメータ | タイプ | 説明 |
---|---|---|
FrameFactor | Double |
F カーブの時間をスケールする相対量 デフォルト値: 1.0 |
ValueFactor | Double |
F カーブの値をスケールする相対量 デフォルト値: 1.0 |
FrameAnchor | Variant |
フレームのスケールの中央点 デフォルト値: 0.0 |
ValueAnchor | Variant |
値のスケールの中心点 デフォルト値: 0.0 |
// // This example illustrates how to scale an fcurve to 50% of the original fcurve. // Create a new scene NewScene(null, false); // Create a null oNull = Application.GetPrim("Null"); // Get the posx parameter of the null oPosX = oNull.posx // Create array of time-value pairs aKeys = new Array( 0.00, 5.00, 1.00, 6.00, 2.00, 7.00, 3.00, 8.00, 4.00, 9.00, 5.00, 10.00 ); // Create an empty FCurve oFCurve = oPosX.AddFCurve2( null, siStandardFCurve ); // Set the fcurve keys oFCurve.SetKeys( aKeys ); Application.LogMessage( 'Before Scaling:', siInfo ); for (var i = 0; i < oFCurve.Keys.Count; i++) { Application.LogMessage( 'Time: ' + oFCurve.Keys(i).Time + ', Value: ' + oFCurve.Keys(i).Value, siInfo ); } oFCurve.Scale( 0.5, 0.5, 0.0, 7.5 ); Application.LogMessage( 'After Scaling:', siInfo ); for (var i = 0; i < oFCurve.Keys.Count; i++) { Application.LogMessage( 'Time: ' + oFCurve.Keys(i).Time + ', Value: ' + oFCurve.Keys(i).Value, siInfo ); } // Produces the following output: // //INFO : Before Scaling: //INFO : Time: 0, Value: 5 //INFO : Time: 1, Value: 6 //INFO : Time: 2, Value: 7 //INFO : Time: 3, Value: 8 //INFO : Time: 4, Value: 9 //INFO : Time: 5, Value: 10 //INFO : After Scaling: //INFO : Time: 0, Value: 6.25 //INFO : Time: 0.5, Value: 6.75 //INFO : Time: 1, Value: 7.25 //INFO : Time: 1.5, Value: 7.75 //INFO : Time: 2, Value: 8.25 //INFO : Time: 2.5, Value: 8.75 |