Game Maker Language リファレンス > 組み込み関数 用途別 > リソース操作 > リソース操作・アニメーションカーブ > animcurve_get()
この関数は、指定されたアニメーションカーブのすべてのデータを含む構造体を返します。 (Asset Browserで定義されている)アニメーションカーブアセットIDを指定すると、関数は次の変数を持つ構造体を返します。
変数名 | データ種別 | 詳細 |
name | string | アニメーションカーブの名前 |
channels | array pointer | チャンネル構造体の配列 |
この方法でアニメーションカーブにアクセスすると、配列が返されます。
各配列の項目は、カーブ内のチャンネルに関連するデータを持つ構造体です。 チャンネル構造体には次の変数があります。
変数名 | データ種別 | 詳細 |
name | string | チャンネルの名前 |
type | constant | ポイント間の線形補間の場合は定数 animcurvetype_linear、"catmull-rom" 補間を使用したポイント間の「滑らかな」補間の場合は animcurvetype_catmullrom |
iterations | integer | チャネルがcatmull-rom(「スムーズ」)補間を使用している場合、これはカーブの各セグメントに対して生成されたポイントの数を保持します(これらの追加ポイントは関数の内部にあり、実行時の計算にのみ使用されることに注意してください)。 チャネルが線形補間を使用している場合、この値は存在しますが、曲線の補間方法に影響を与えないため、無視できます |
points | array pointer | ポイント構造体の配列 |
チャンネルと同様に、単一のチャンネル上のポイントは、構造体として配列に格納されます。 配列の各項目は、単一のポイント構造体です。 ポイント構造体には次の変数があります。
変数名 | データ種別 | 詳細 |
posx | real | ポイントの(0〜1に正規化された)時間での座標 |
value | real | ポイントの値 |
animcurve_get(curve_id);
var _curve = animcurve_get(ac_ButtonTween); var _channel = _curve.channels[0]; if _channel.type != animcurvetype_linear { _channel.type = animcurvetype_linear; }
上記コードは、アニメーションカーブ "ac_ButtonTween" を取得し、0番目のチャンネルのアニメーションカーブが線形補間でなければ、線形補間に変更します