Skip to main content

control-point

需求:通过对控制点的K帧得到了动画,该控制点控制vellum的运动。我们需要输出该控制点随时间变化的位置。

1. 找到控制点数据?

控制点显然是这俩红点 在这里插入图片描述

在这里插入图片描述 在这里插入图片描述

我们分析发现,是通过transform来k帧的,显示bezier()表示是k帧出来的

这是控制点pin1,pin2也是同理。

因此数据在pin1和pin2这两个group中

2. 清理控制点

在这里插入图片描述

首先,使用split将两个组分离出来

然后使用delete attribute吧除了坐标以外的多余的东西删掉

然后用vex将多个点平均成一个

run over detail(once)

int npt = npoints(0);
vector pos = {0,0,0};
for(int i = 0;i < npt; i++){
pos += point(0, "P", i);
removepoint(0,i,1);
}

addpoint(0,pos/npt);

为啥有多个点呢?你看一下,实际上控制点是一组点,而我们只需要一个

在这里插入图片描述

最后用file输出

注意file输出的时候要先高亮一下这个节点。并且后缀$F表示时间帧数

然后播放,我们可以调整先播放到50帧。

对CP2也如法炮制即可 在这里插入图片描述

在这里插入图片描述 在这里插入图片描述 在这里插入图片描述