人们!我的问题涉及我正在尝试解决的Python练习(更具体地说,该程序是Autodesk Maya,但我使用的是Python编码)。练习涉及获取数组/列表中包含的多个对象(球体),然后使用增量变量使它们在偏移动画中移动。换句话说,我希望第一个球体移动,然后下一个球体在延迟的时间内移动,然后是下一个延迟更长时间的球体,等等。
我的代码如下:
spheres = mc.ls(selection=True)
count=0
for i in range(len(spheres)):
count+=2
mc.selectKey(spheres)
mc.keyframe(edit=True, relative=True, timeChange=count)
print spheres(i)
球体是我的物体,正如我所说,我希望第一个球体在时间线上正常移动,然后下一个球体以延迟时间2移动,然后下一个球体以延迟时间4移动,等等。
非常感谢任何帮助。
谢谢, ë
答案 0 :(得分:3)
您实际上并未在单个球体上设置关键帧;看起来你在所有领域设置它
您的for
循环通常是错误的形式,但也没那么有用。尝试将其更改为:
spheres = mc.ls(selection=True)
count=0
for sphere in spheres:
count += 2
mc.selectKey(sphere) # only selecting the one sphere!
mc.keyframe(edit=True, relative=True, timeChange=count)
print sphere # no need to look up the element
# which by the way should have been [i] not (i)
输出:
关键帧最初都排成一行,但现在每个都偏移了两帧。
答案 1 :(得分:1)
你没有告诉我们问题是什么,但我有猜测。 (如果我猜错了,请详细说明你的问题,我会删除我的答案。)
你得到这样的例外吗?
TypeError Traceback (most recent call last)
----> 1 print spheres(i)
TypeError: 'list' object is not callable
您声称自己拥有球体的“阵列/列表”。如果spheres
是list
(或array
或几乎任何其他类型的集合),则使用[]
运算符对其进行索引。 ()
运算符用于函数调用,而不是索引。您试图将list
称为函数,将其作为参数传递i
,而不是尝试将list
作为序列访问,获取{{1}元素。
修复它:
i