ジャンプ先: 概要. 戻り値. 関連. フラグ. Python 例.
keyframe(
[objects]
, [absolute=boolean], [adjustBreakdown=boolean], [animation=string], [attribute=string], [breakdown=boolean], [clipTime=[time, time, float]], [controlPoints=boolean], [eval=boolean], [float=floatrange], [floatChange=float], [hierarchy=string], [includeUpperBound=boolean], [index=uint], [indexValue=boolean], [keyframeCount=boolean], [lastSelected=boolean], [name=boolean], [option=string], [relative=boolean], [selected=boolean], [shape=boolean], [tickDrawSpecial=boolean], [time=timerange], [timeChange=time], [valueChange=float])
注: オブジェクトの名前と引数を表す文字列は、カンマで区切る必要があります。これはシノプシスに示されていません。
keyframe は、取り消し可能、照会可能、および編集可能です。
このコマンドは、キーセット上に作用します。キーセットは、1 つまたは複数のアニメーション カーブ上の指定したタイム レンジ内のキー グループとして定義されます。
キーセットを構成するアニメーション カーブは、「-animation」フラグの値に依存します。
-
keysOrObjects:
- コマンド ラインにターゲット オブジェクトまたは -attribute フラグが表示されていない場合は任意のアクティブ キー
- アクティブ キーが存在しない場合は、コマンド ラインの targetList として指定されているオブジェクトのキーフレーム可能なすべてのアトリビュートに接続されたすべてのアニメーション カーブ
-
keys: アクティブなキーまたは接線のみに作用します。アクティブなキーまたは接線がない場合は、何も行いません。
-
objects: 指定したオブジェクトのみに作用します。オブジェクトが指定されていない場合は、何も行いません。
-animation フラグを使用して、「translateX」など attributeName という形式の引数を取る、多目的な -attribute フラグによって固有に識別されるカーブをオーバーライドすることができます。
アニメーション カーブ上の各キーは、カーブの時間値またはインデックスによって識別されます。時間とインデックスは、単独にあるいはリストの一部または範囲として指定することができます(例を参照)。
このコマンドは、指定されたオブジェクトまたはパラメータ カーブにおけるキーの時間または値を編集します。
別途、「-query」フラグで指定されていない限り、このコマンドは既定でキーフレームを編集します。
int | (下記に記述があるもの以外)キーが修正されたカーブの数。照会モードでは、このコマンドは、下記の照会可能なフラグで記述されたとおり、さまざまなオブジェクトを返すことがあります。 |
照会モードでは、戻り値のタイプは照会されたフラグに基づきます。
copyKey, cutKey, findKeyframe, keyTangent, keyframeOutliner, keyframeStats, pasteKey, scaleKey, setInfinity, snapKey
absolute, adjustBreakdown, animation, attribute, breakdown, clipTime, controlPoints, eval, float, floatChange, hierarchy, includeUpperBound, index, indexValue, keyframeCount, lastSelected, name, option, relative, selected, shape, tickDrawSpecial, time, timeChange, valueChange
フラグはコマンドの作成モードで表示できます
|
フラグはコマンドの編集モードで表示できます
|
フラグはコマンドの照会モードで表示できます
|
フラグに複数の引数を指定し、タプルまたはリストとして渡すことができます。
|
import maya.cmds as cmds
# Keys on animation curves are identified by either
# their time values or their indices. Times and indices can
# be given as a range or list of ranges.
# time=('10pal','10pal') means the key at frame 10 (PAL format).
# time=[(1.0,1.0),('15ntsc','15ntsc'),(20,20)] means the keys at time 1.0 second, frame 15 (in NTSC format), and time 20 (in the currently defined global time unit).
# time=(10,20) means all keys in the range from 10 to 20, inclusive, in the current time unit.
# Omitting one end of a range means "go to infinity", as in the following examples:
# time=(10,) means all keys from time 10 (in the current time unit) onwards.
# time=(0,10) means all keys up to (and including) time 10 (in the current time unit).
# time=() is a short form to specify all keys.
# index=(0,0) means the first key of each animation curve. (Indices are 0-based.)
# index=[(2,2),(5,5),(7,7)] means the 3rd, 6th, and 8th keys.
# index=(1,5) means the 2nd, 3rd, 4th, 5th, and 6th keys of each animation curve.
import maya.cmds as cmds
# Keys on animation curves are identified by either time values or indices.
# Times and indices can be given as a ranges or list of ranges.
# When specifying times/indices by range,
#
# time=() means all keys.
# time=(10,) means all keys at time 10 (in the current time unit).
# time=(10,20) means all keys in the range from 10 to 20, inclusive, in the current time unit.
# time=('10:',) means all keys at and after time 10
# time=(':20',) means all keys before or at time 20
# time=('10pal',) means the key at frame 10 (PAL format).
#
# index=(0,0) means the first key of each animation curve (i.e., indices are 0-based.)
# index=(1,5) means the 2nd, 3rd, 4th, 5th, and 6th keys of each animation curve.
# index=('2:',) means all keys at and after the 3rd key
# index=(':5',) means all keys before or at the 6th key
# index=('1:5',) means the 2nd - 6th keys (inclusive).
#
# When specifying times/indices by list
#
# time=[(1.0,1.0),('15ntsc','15ntsc'),(20,20)] means the keys at time 1.0 second, frame 15 (in NTSC format), and time 20 (in the currently defined global time unit).
# index=[(2,2),(5,5),(7,7)] means the 3rd, 6th, and 8th keys.
#
# Two ways to find out how many keys there are on the
# paramCurve connected to surface1.translateX;
#
cmds.keyframe( 'surface1', attribute='translateX', query=True, keyframeCount=True )
cmds.keyframe( 'surface1.translateX', query=True, keyframeCount=True )
# Two ways to query all keyframes of object "surface1" within the time range 0 to 20.
#
cmds.keyframe( 'surface1', time=(0,20), query=True, valueChange=True, timeChange=True);
cmds.keyframe( 'surface1', time=('0:20',), query=True, valueChange=True, timeChange=True);
# Three ways to query the time of the second key in the translate X
# parameter curve. Note that since indices are 0-based, the second key is at index 1.
#
cmds.keyframe('surface1.translateX',index=('1:1',),query=True);
cmds.keyframe('surface1.translateX',index=(1,1),query=True);
cmds.keyframe('surface1.translateX',index=(1,),query=True);
# Shift all the active object's keys in the range 10-20
# by one (current) time unit (frame, second, etc.)
#
cmds.keyframe(edit=True,relative=True,timeChange=1,time=(10,20))
# Two ways to move all keys at time 10 of the active object
# to time 12. Note that "-absolute" is the default.
#
cmds.keyframe(time=(10,),timeChange=12)
cmds.keyframe(time=(10,10),absolute=True,timeChange=12)
# Set the 2nd keyframe of cube1's Translate X parameter
# curve to be 10.25 at time 1.5 seconds.
#
cmds.keyframe('surface1.translateX',edit=True,index=(1,1),timeChange='1.5sec',valueChange=10.25)
# Evaluate the animCurve feeding into nurbsCone1's translateX attribute at time 3
#
cmds.keyframe('nurbsCone1',at='tx',t=(3,3),q=True,eval=True)
# Query the times of the active keys on attribute translateX of nurbsCone1
#
cmds.keyframe( 'nurbsCone1', at='tx', sl=True, q=True, tc=True )
# How many keys are selected on nurbsCone1?
#
cmds.keyframe( 'nurbsCone1', sl=True, q=True, kc=True )
# Here's a script to print out all a cone's animCurves that have
# keys selected. Each animCurve is followed by a list of times
# for the selected keys. The result of this script is:
# nurbsCone1_translateX: [5.0]
# nurbsCone1_translateY: [12.0]
# nurbsCone1_translateZ: [4.0, 14.0]
#
myCone = cmds.cone()
cmds.setKeyframe( myCone[0], t=[0,5,10], at='tx', v=5 )
cmds.setKeyframe( myCone[0], t=[2,7,12], at='ty', v=10 )
cmds.setKeyframe( myCone[0], t=[4,9,14], at='tz', v=15 )
cmds.selectKey( t=[(5,5),(12,12),(4,4)] )
cmds.selectKey( animation='objects', add=True, t=(14,14) )
nodes = cmds.keyframe(myCone,query=True,name=True)
for node in nodes:
keyTimes = cmds.keyframe(node,sl=True,query=True,tc=True)
print " {}: {}".format(node, keyTimes)
# For the above sample script, the last selected key is
# nurbsCone1_translateZ: 14. The following may be used to query
# the values for that key
#
cmds.keyframe( query=True, lastSelected=True, name=True )
cmds.keyframe( query=True, lastSelected=True, timeChange=True )
cmds.keyframe( query=True, lastSelected=True, valueChange=True )