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也如法炮制即可