Javascript THREE.js:使蒙皮网格跟随样条线

Javascript THREE.js:使蒙皮网格跟随样条线,javascript,math,three.js,Javascript,Math,Three.js,我有一个“蛇”的剥皮网,是从搅拌机出口的。 蛇有骨骼(像脊椎),我想沿着曲线设置动画(SplineCurve3) 我可以沿着样条曲线计算点,以及这些点之间的角度,但我正在努力正确设置骨骼的旋转 问题是,每个骨骼都是前一个骨骼的子骨骼,因此旋转其中一个骨骼也会旋转其他骨骼 这是一张图片: 外形是蛇 粉色线是SplineCurve3的一部分 蓝/绿线是骨骼(三个。SkeletonHelper) 使用SplineCurve3.getTangentAt旋转每个骨骼。因为母蛇也会旋转,所以蛇会卷曲。我基

我有一个“蛇”的剥皮网,是从搅拌机出口的。 蛇有骨骼(像脊椎),我想沿着曲线设置动画(SplineCurve3)

我可以沿着样条曲线计算点,以及这些点之间的角度,但我正在努力正确设置骨骼的旋转

问题是,每个骨骼都是前一个骨骼的子骨骼,因此旋转其中一个骨骼也会旋转其他骨骼

这是一张图片:

外形是蛇

粉色线是SplineCurve3的一部分

蓝/绿线是骨骼(三个。SkeletonHelper)

使用SplineCurve3.getTangentAt旋转每个骨骼。因为母蛇也会旋转,所以蛇会卷曲。我基本上需要骨头在红线的地方

计算骨骼旋转时,如何“补偿”父对象的旋转


此外,在图像中,路径是平坦的,但我的目标是在3维中移动蛇。这是一条会飞的蛇。

你能澄清哪种旋转是哪种旋转吗(也许画一些角度并标记它们以供参考)

如果整条蛇与轴成一定角度,则只需从骨骼角度中减去该角度即可

当然,但是,骨骼角度是相对于父骨骼定义的,而不是相对于轴的绝对角度?如果使用与x轴相对的绝对角度作为相对角度,则会产生您看到的日益旋转的骨骼的行为

假设骨骼角度应相对于父骨骼给定,则需要:

childRelativeAngle = childAbsoluteAngle - parentAbsoluteAngle