OpenMay中的驱动动画曲线

2024-09-19 23:40:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我有点困在尝试用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)

Tags: inapinodeobjectout曲线plugvalues
1条回答
网友
1楼 · 发布于 2024-09-19 23:40:47

有人向我指出MFnAnimCurve.addKeys()确实指定它仅适用于kAnimCurveTA、kAnimCurveTL和kAnimCurveTU。而UnitlesAnimCurveTypeForPlug()返回的类型是kAnimCurveUL

相关问题 更多 >