我有点困在尝试用OpenMaya创建驱动(无单位)动画曲线
我在maya 2017,使用OpenMaya api 2.0
我尝试使用MFnAnimCurve同时创建多个关键帧。这在使用定时曲线类型(使用MTimeArray作为第一个参数)时似乎有效,但在使用无单位曲线和第一个参数使用MDoubleArray时,它将失败。。 我错过什么了吗?我应该在第一个参数中使用不同的类型吗?在
import maya.api.OpenMaya as om
import maya.api.OpenMayaAnim as oma
graph_modifier = om.MDGModifier()
m_object = om.MFnDependencyNode().create('transform', 'locator1')
node = om.MFnDependencyNode(m_object)
m_plug = node.findPlug(node.attribute('translateX'), True)
out_plug = node.findPlug(node.attribute('translateY'), True)
mfn_anim_curve = oma.MFnAnimCurve()
curve_type = mfn_anim_curve.unitlessAnimCurveTypeForPlug(m_plug)
#curve_type = mfn_anim_curve.timedAnimCurveTypeForPlug(m_plug)
anim_curve_m_object = oma.MFnAnimCurve().create(m_plug, animCurveType=curve_type)
anim_curve = oma.MFnAnimCurve(anim_curve_m_object)
in_plug = anim_curve.findPlug(anim_curve.attribute('input'), True)
graph_modifier.connect(out_plug, in_plug)
graph_modifier.doIt()
in_values = om.MDoubleArray()
out_values = om.MDoubleArray()
for x in range(5):
in_values.append(float(x))
for x in range(5):
out_values.append(float(x))
print in_values, out_values
anim_curve.addKey(1.0, 1.0)
anim_curve.addKey(2.0, 2.0)
#This Fails
anim_curve.addKeys(in_values, out_values)
有人向我指出MFnAnimCurve.addKeys()确实指定它仅适用于kAnimCurveTA、kAnimCurveTL和kAnimCurveTU。而UnitlesAnimCurveTypeForPlug()返回的类型是kAnimCurveUL
相关问题 更多 >
编程相关推荐