使用 Python 在 Maya 中制作曲线动画
Animating a curve in Maya with Python
我正在 Maya 中制作关键帧脚本物理动画(使用 Python),我想显示一些影响动画对象的矢量(算法结果)。
为了表示一个向量,我选择了一条曲线:
import maya.cmds as cmds
vectorCurve = cmds.curve(d=1, p=[(x, y, z), (p, q, r)])
然后,在为动画创建关键帧时,我会:
for i in range(300):
#a,b,c,d,e,f values change every iteration
cmds.move(a, b, c, vectorCurve + ".ep[0]", wd=True)
cmds.move(d, e, f, vectorCurve + ".ep[1]", wd=True)
cmds.setKeyframe(vectorCurve, time=i)
但是当我 运行 脚本时,曲线停留在它们的最终位置并且在动画期间不会移动。
如何正确设置(线性)曲线的动画关键帧?
编辑:
曲线实际上有关键帧,但是当我查看通道盒中的键控值时,平移和旋转均为 0,缩放为 1(对于 X、Y 和 Z)。
正如评论中所讨论的,OP 的问题通过指定 control points
也应该被键入来解决:
# Original code
cmds.setKeyframe(vectorCurve, time=i)
# Becomes
cmds.setKeyframe(vectorCurve, time=i, controlPoints=True)
我正在 Maya 中制作关键帧脚本物理动画(使用 Python),我想显示一些影响动画对象的矢量(算法结果)。
为了表示一个向量,我选择了一条曲线:
import maya.cmds as cmds
vectorCurve = cmds.curve(d=1, p=[(x, y, z), (p, q, r)])
然后,在为动画创建关键帧时,我会:
for i in range(300):
#a,b,c,d,e,f values change every iteration
cmds.move(a, b, c, vectorCurve + ".ep[0]", wd=True)
cmds.move(d, e, f, vectorCurve + ".ep[1]", wd=True)
cmds.setKeyframe(vectorCurve, time=i)
但是当我 运行 脚本时,曲线停留在它们的最终位置并且在动画期间不会移动。
如何正确设置(线性)曲线的动画关键帧?
编辑:
曲线实际上有关键帧,但是当我查看通道盒中的键控值时,平移和旋转均为 0,缩放为 1(对于 X、Y 和 Z)。
正如评论中所讨论的,OP 的问题通过指定 control points
也应该被键入来解决:
# Original code
cmds.setKeyframe(vectorCurve, time=i)
# Becomes
cmds.setKeyframe(vectorCurve, time=i, controlPoints=True)