python编写脚本方法_面向初级 Python 脚本编写人员的提示和技巧

为已设置动画的曲线创建关键帧

可以使用以下 Python 示例脚本来创建已设置动画的曲线并设定其关键帧:

import maya.OpenMaya as om

import maya.OpenMayaAnim as oma

def addkeys(plugName, times, values, changeCache):

# Get the plug to be animated.

sel = om.MSelectionList()

sel.add(plugName)

plug = om.MPlug()

sel.getPlug(0, plug)

# Create the animCurve.

animfn = oma.MFnAnimCurve()

animCurve = animfn.create(plug, oma.MFnAnimCurve.kAnimCurveTL)

# Copy the times into an MTimeArray and the values into an MDoubleArray.

timeArray = om.MTimeArray()

valueArray = om.MDoubleArray()

for i in range(len(times)):

timeArray.append(om.MTime(times[i], om.MTime.uiUnit()))

valueArray.append(values[i])

# Add the keys to the animCurve.

animfn.addKeys(

timeArray,

valueArray,

oma.MFnAnimCurve.kTangentGlobal,

oma.MFnAnimCurve.kTangentGlobal,

False,

changeCache

)

以上示例代码会将关键帧动画添加到通道(即栓)。如果不需要具有撤消更改的能力,则可以按以下方式进行调用:

addkeys('pCube1.tx', [1.0, 3.0, 5.0], [0.6, 1.2, 2.4], None)

但是,如果需要具有撤消更改的能力,那么请按以下方式进行调用:

changeCache = oma.MAnimCurveChange()

addkeys('pCube1.tx', [1.0, 3.0, 5.0], [0.6, 1.2, 2.4], changeCache)

然后执行以下脚本以撤消更改:

changeCache.undoIt()

注意

为简便起见,该函数假定由 plugName 指定的栓当前未设置动画。这种情况作为练习,以便您添加使假设不必要所需的检查。

你可能感兴趣的:(python编写脚本方法)