尝试使用OpenMaya创建驱动(无单位)animCurves时,我有些困惑
我正在使用OpenMaya api 2.0进入Maya 2017
我正在尝试使用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)
答案 0 :(得分:0)
有人向我指出,MFnAnimCurve.addKeys()的文档确实指定了它仅适用于kAnimCurveTA,kAnimCurveTL和kAnimCurveTU。而unitlessAnimCurveTypeForPlug()返回的类型是kAnimCurveUL