该函数可用于创建新的动画曲线通道struct。
通道结构具有以下变量:
动画曲线通道结构 | ||
---|---|---|
变量名 | 数据类型 | 描述 |
name | string | 这是通道的名称。 |
type | 动画曲线插值类型常数 | 这将是下表中给出的常数之一。 |
iterations | integer | 如果通道使用catmull- rom (“平滑”) 插值,则可以保存为曲线的每段生成了多少个点 (请注意,这些额外的点在函数内部,仅用于运行时计算)。如果通道使用线性插值,则该值仍将存在,但可以忽略,因为它与曲线的插值方式无关。 |
points | array | 这是一个数组,其中数组中的每个项目都是一个Animation Curve Point Struct。 |
动画曲线插值类型常数 | |
---|---|
常量 | 描述 |
animcurvetype_linear | Used for linear interpolation between points. |
animcurvetype_catmullrom | Used for smooth interpolation between points using Catmull-Rom interpolation. |
animcurvetype_bezier | Used for Bezier interpolation between points. |
默认情况下,当您创建新的通道结构时,“名称” 变量将是一个空字符串,“类型” 将是animcurvetype_linear,“迭代” 将是16。所有这些变量都可以设置为您需要的值 (请注意,“迭代” 值对线性曲线类型没有影响)。创建后,您需要将点添加到曲线,这是通过将不同的点结构添加到 “点”数组来完成的。这些点结构可以使用函数animcurve_point_new()创建。
animcurve_channel_new();
my_curve = animcurve_create();
my_curve.name = "My_Curve";
var _channels = array_create(1);
_channels[0] = animcurve_channel_new();
_channels[0].name = "alpha";
_channels[0].type = animcurvetype_catmullrom;
_channels[0].iterations = 8;
var _points = array_create(3);
_points[0] = animcurve_point_new();
_points[0].posx = 0;
_points[0].value = 0;
_points[1] = animcurve_point_new();
_points[1].posx = 0.5;
_points[1].value = 1;
_points[2] = animcurve_point_new();
_points[2].posx = 1;
_points[2].value = 0;
_channels[0].points = _points;
my_curve.channels = _channels;
上面的代码创建了一个新的动画曲线结构,并将其存储在变量 “my_curve” 中。然后用名称和通道数组填充此结构。通道阵列包含具有三个点的单个通道。