【问题标题】:Animating a curve in Maya with Python使用 Python 在 Maya 中设置曲线动画
【发布时间】:2020-11-10 11:37:06
【问题描述】:

我正在 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)。

【问题讨论】:

  • 我不认为您可以直接在编辑点上设置动画,但您可以将它们绑定到集群句柄,然后为该集群设置动画?编辑:可能值得尝试setKeyframecontrolPoints=True,我不确定。标准绝对只是 TRS
  • @itypewithmyhands 我将controlPoints=True 添加到setKeyframe 并且成功了!非常感谢,我一定在文档中忽略了它。现在曲线随着动画的其余部分移动和变化。我应该将它添加为这个问题的答案还是它在 cmets 中就足够了?
  • @itypewithmyhands 只是为了澄清未来的潜在用途,集群句柄到底是什么?我只能找到一个簇变形器 (knowledge.autodesk.com/support/maya/learn-explore/caas/…) 是同一事物的两个名称还是不同的名称?
  • 是的,我指的是集群变形器,只是使用了错误的术语。我将根据我们的评论线程添加这个问题的答案,以便未来的 Google 员工可以更轻松地找到解决方案:)

标签: python maya maya-api


【解决方案1】:

正如 cmets 中所讨论的,OP 的问题通过指定 control points 也应该被键入来解决:

# Original code
cmds.setKeyframe(vectorCurve, time=i)

# Becomes
cmds.setKeyframe(vectorCurve, time=i, controlPoints=True)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-10-31
    • 2020-10-12
    • 1970-01-01
    • 1970-01-01
    • 2014-01-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多