本人刚刚学习 有错误的地方 还请大神指出
我勉勉强强写出了类似的功能。下面是思路。
利用maya现有的节点,是能连接出球体滚动效果的.
只有一个轴向在转。 把移动数值转化为度数传递到这个 M 上去
所以主要思路就是把球的自身坐标(叫做 Q 吧)。转换到咱们自己创建出了的坐标(叫做 M 吧)。然后去旋转这个 M 坐标,再把 M 坐标转换到 Q 上面去。
第一步 创建出 M
创建 M 坐标。创建的 M 坐标的宗旨就是,始终有一个轴向和求的运动方向是一致的
比如,图中 M 的 X 轴和运动方向重合,此时 球就以 Z 轴旋转。

怎么定义这个M
咱们知道了运动方向,咱们就把这个运动方向定义为 X 轴( X,Y,Z 都可以无所谓)。在定义向上轴,这个轴咱定义为 Y , Y 就是经过 X ,并垂直于球所在的运动平面。
知道了 X , Y 。差乘求出 Z 。 Z 就是旋转的轴向。
公式。
这里,需要自己创建出一个矩阵 Mm ,比如,上面是 Z 轴旋转,那么这个 Mm 就只有 Z 的信息。咱们距离转化为度数就是传给这个矩阵。
Qm = Q*M 的逆 (这个就是球相对于咱创建出来的矩阵, Q 相对于 M 旋转了多少)
球旋转后的矩阵 = Qm * Mm * M
还有一个公式能达到同样的效果 :
咱不是可以得到球体的 旋转轴 Z 和 位移距离并转化无弧度An
然后咱再得到球位移之前的球体的旋转值 Rotate
那么 球体位移之后的旋转就是 = Rotate 绕 Z 转了 An
(maya 里有个对应的API函数 )
等节点,完成之后。会把相关文件放到网上去
节点路径