FCurve を作成し、Parameter オブジェクトに接続します。必要な場合はキーを追加します。型引数を指定しない場合、追加される F カーブはパラメータの型(パラメータの定義で設定)を基準にします。SPDl の属性'FCurveType = Standard;'または'FCurveType = Integer;'を追加することにより、パラメータに関連付けられているデフォルトF カーブタイプを無効にできます。
デフォルトでは、以下のパラメータに対して標準F カーブが作成されます。siDouble、siFloat、siInt4、siInt2、siByte、siUInt4、siUInt2、および SiUByte(これらのタイプについては siVariantType を参照)。 パラメータがブール値で表現される場合は、ブールの F カーブが作成されます。
このメソッドの Jscript バージョンについては、「Parameter.AddFCurve2」を参照してください。
FCurve Parameter.AddFCurve( Object in_Type, Object in_Interpolation, Object in_Extrapolation, Object in_KeyDataArray ); |
oReturn = Parameter.AddFCurve( [Type], [Interpolation], [Extrapolation], [KeyDataArray] ); |
パラメータ | タイプ | 説明 |
---|---|---|
Type | siFCurveType |
F カーブのタイプ デフォルト値:パラメータのタイプによって決定 |
Interpolation | siFCurveInterpolation |
F カーブの補間 デフォルト値:パラメータのタイプによって決定 |
Extrapolation | siFCurveExtrapolation |
F カーブのエクストラポレーション デフォルト値:パラメータのタイプによって決定 |
KeyDataArray | Variant |
配列の構造は、前のパラメータと番号キーによって決まります。配列は 1D 配列または 2D 配列である必要があります。2D 配列では、最初の次元で各キーの値を定義し、2 番目の次元でキーの番号を定義します。 デフォルトキー補間を使用する標準 F カーブのタンジェンシ(接線)を明示的に定義するか、キュービック補間を指定する必要があります。一定のリニアキー補間を使う標準F カーブでは、各キーに対し、キー時間(フレーム単位)およびそのフレームにおけるキーの値を定義します。 タンジェンシを指定するにあたり、各キーに対し 6 つの値を以下の順番で定義する必要があります。1. キー時間(フレーム単位)、2. そのフレームにおけるキーの値、3. キー時間に相対的な左タンジェント時間(フレーム単位、負の値である必要があります)、4. キーの値に相対的な左タンジェント値、5. キー時間に相対的な右タンジェント時間(フレーム単位、正の値である必要があります)、6. キーの値に相対的な右タンジェント値 タンジェントが正確に指定通りの値を持つよう、オートタンジェントコンストレイントはオフになります。タンジェント値によっては無効なカーブになる恐れもありますが、これによりタンジェントを指定通りに設定できます。タンジェンシ値に対して空の値が指定されると、デフォルトのタンジェント値が計算されます。 ユーザは、コンスタント補間またはリニアキー補間を使用する F カーブのタンジェントを指定できます。このタンジェントは、キー補間がキュービック補間に変更される場合にのみ使用されるため、必須ではありません。 カーブハンドルは、前のキーフレームの値を継承することはありません。タンジェンシが明示的に定義されている場合は、タンジェント値にこのことを反映する必要があります。キュービック F カーブでは、タンジェントに"Empty"を渡すと、正しいハンドルのタンジェントが自動的に計算されます(リニア F カーブやコンスタントF カーブでは指定する必要がありません)。F カーブの左右のタンジェントには任意の実数値を設定できますが、F カーブの機能性を保持するためにタンジェントは変更される場合があります。x 軸、y 軸上で有効な関数であっても、もともと選択された値でカーブが生成されない場合は、この値は自動的に変更され、別の F カーブが表示されます。F カーブは定義により関数となるため、各x値に対してユニークなy 値が存在するプロパティを設定する必要があります。視覚的に説明すると、x軸に沿う縦のラインが f カーブと1度だけ交差することになります。カーブにこのような関数プロパティを確実に保持させるには、指定されたキーの右タンジェントが、次のキーの左タンジェント以下であることが最低限のルールとなります。このポイントを通過するように右タンジェントを移動させつつ、有効なF カーブが存在するようにすることが可能ですが、このポイントを何かが通過するとタンジェント値は変更される可能性があります。さらに、F カーブの機能性を保持するために、指定されたキーの右タンジェントは、常にキーの値以上でなければならず、左タンジェントはキーの値以下である必要があります。y 軸上にはコンストレイントは存在しません。 ブールF カーブでは、接線を指定する必要はありません。定義しなければならない値はキー時間のみです。キー時間(任意の実数値)およびキー値("1"または"0")です。"True"と"False" は無効なパラメータであることにご注意ください。値の表現には"1"と"0"を使用してください。 |
' ' This example demonstrates how to create a standard fcurve with tangents automationally ' calculated. ' NewScene , False set oCube = Application.ActiveSceneRoot.AddGeometry( "Cube","MeshSurface" ) dim aKeyData : aKeyData = array( 1.00, 5.00, Empty, Empty, Empty, Empty, 100.00, 6.00, Empty, Empty, Empty, Empty ) set f = oCube.posx.AddFCurve( , , , aKeyData ) ' Write the fcurve keys (assuming standard fcurve) for each k in f.Keys Application.LogMessage k.Name &" Value: " & k.Value Application.LogMessage k.Name &" Locked: " & k.Locked Application.LogMessage k.Name &" Left: " & k.Left Application.LogMessage k.Name &" Right: " & k.Right Application.LogMessage k.Name &" LeftTanX: " & k.LeftTanX Application.LogMessage k.Name &" LeftTanY: " & k.LeftTanY Application.LogMessage k.Name &" RightTanX: " & k.RightTanX Application.LogMessage k.Name &" RightTanY: " & k.RightTanY Application.LogMessage k.Name &" Interpolation: " & k.Interpolation Application.LogMessage k.Name &" Flags: " & k.Flags next |
/* This example demonstrates how to create a standard fcurve with linear interpolation */ NewScene( null, false ); var cube = Application.ActiveSceneRoot.AddGeometry( "Cube", "MeshSurface" ); var aKeyData = Array ( 1.00, 5.00, 100.00, 6.00 ) // Create a standard fcurve with linear interpolation. Notice that you // only specify time/value pairs for the keydata. var fc = cube.posx.AddFCurve( null, siLinearInterpolation, null, aKeyData ); |