ジャンプ先: 概要. 戻り値. 関連. フラグ. Python 例.

概要

snapKey( animatedObject , [animation=string], [attribute=string], [controlPoints=boolean], [float=floatrange], [hierarchy=string], [includeUpperBound=boolean], [index=uint], [mergeDuplicate=boolean], [shape=boolean], [time=timerange], [timeMultiple=float], [valueMultiple=float])

注: オブジェクトの名前と引数を表す文字列は、カンマで区切る必要があります。これはシノプシスに示されていません。

snapKey は、取り消し可能、照会不可能、および編集不可能です。

このコマンドは、キーセット上に作用します。キーセットは、1 つまたは複数のアニメーション カーブ上の指定したタイム レンジ内のキー グループとして定義されます。

キーセットを構成するアニメーション カーブは、「-animation」フラグの値に依存します。

-animation フラグを使用して、「translateX」など attributeName という形式の引数を取る、多目的な -attribute フラグによって固有に識別されるカーブをオーバーライドすることができます。

アニメーション カーブ上の各キーは、カーブの時間値またはインデックスによって識別されます。時間とインデックスは、単独にあるいはリストの一部または範囲として指定することができます(例を参照)。

このコマンドは、すべてのターゲット キーの時間および/または値を、指定したフラグ引数の倍数の時間および/または値に「スナップ」します。どちらの倍数も指定されていない場合は、既定で 1.0 の倍数の時間にスナップされます。隣接する他のキーを超えてキーを移動すると、このコマンドは失敗することに注意してください。snapKey 操作を実行しても、キーのインデックスは変更されません。

TbaseKeySetCmd.h

戻り値

int時間スナップの不整合によってスナップされなかったキーを持つアニメーション カーブの数です。

関連

copyKey, cutKey, findKeyframe, keyTangent, keyframe, keyframeOutliner, keyframeStats, pasteKey, scaleKey, setInfinity

フラグ

animation, attribute, controlPoints, float, hierarchy, includeUpperBound, index, mergeDuplicate, shape, time, timeMultiple, valueMultiple
ロング ネーム(ショート ネーム) 引数タイプ プロパティ
animation(an) string create
このコマンドが、自身が影響を与えるアニメーションを取得する場所です。有効な値は「objects」、「keys」、「keysOrObjects」で、既定は「keysOrObjects」です(詳細については、説明を参照してください)。
attribute(at) string createmultiuse
選択するアトリビュートのリストです。

照会モードでは、このフラグに値が必要になります。

controlPoints(cp) boolean create
このフラグは、アトリビュートのリストにシェイプのコントロール ポイントを含めるかどうかを明示的に指定します(「-s」フラグを参照)。既定: false(「pasteKey」コマンドでは無効)。

照会モードでは、このフラグに値が必要になります。

float(f) floatrange createmultiuse
時間ベースの animCurve 上の時間ベースでないキー(またはキー レンジ)を固有に表す値です。有効な floatRange は、単一の値(-f 10)、または上下限をコロンで区切った文字列(-f "10:20")です。

照会モードでは、このフラグに値が必要になります。

hierarchy(hi) string create
階層展開オプションです。有効な値は、「above」、「below」、「both」、「none」です。(「pasteKey」コマンドでは無効)。

照会モードでは、このフラグに値が必要になります。

includeUpperBound(iub) boolean create
-t/time または -f/float フラグがキーの範囲を表す場合に、範囲の上限のキーをキーセットに含めるかどうかを定義します。既定値: true。このフラグは、-t/time フラグの引数が上下限が指定したタイム レンジである場合に限り有効です(「pasteKey」コマンドでこのフラグを使用するときに「replace」、「fitReplace」、「scaleReplace」などのオプションを指定すると、このフラグは、置き換えられるターゲット カーブの時間範囲のみを参照します。このフラグは、クリップボードからペーストされたカーブには影響しません)。
index(index) uint createmultiuse
アニメーション カーブ上のキーのインデックス

照会モードでは、このフラグに値が必要になります。

mergeDuplicate(md) boolean create
このフラグが存在する場合、複製されたフレームを持つキーは 1 にマージされます。既定は false です。
shape(s) boolean create
トランスフォームの下にあるシェイプのアトリビュート(「controlPoints」以外)も考慮します。既定: true(「pasteKey」コマンドでは無効)。

照会モードでは、このフラグに値が必要になります。

time(t) timerange createmultiuse
時間ベースのアニメーション カーブ上のキー(またはキー レンジ)を固有に表す時間です。単一のフレームまたはフレーム範囲の設定方法については、以下のコード例を参照してください。

照会モードでは、このフラグに値が必要になります。

timeMultiple(tm) float create
このフラグがある場合、キーの時間は指定した float 値の倍数にスナップされます。
valueMultiple(vm) float create
このフラグがある場合、キーの値は指定した float 値の倍数にスナップされます。

フラグはコマンドの作成モードで表示できます フラグはコマンドの編集モードで表示できます
フラグはコマンドの照会モードで表示できます フラグに複数の引数を指定し、タプルまたはリストとして渡すことができます。

Python 例

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.

# Two ways to snap all keys on nurbsSphere1 to integer values.
#
cmds.snapKey( 'nurbsSphere1', tm=1.0 )
cmds.snapKey( 'nurbsSphere1' )

# Snap active objects' keys between times 10 and 20 so that
# they have times that are multiples of 0.5.
#
cmds.snapKey( t=(10,20), tm=0.5 )

# Snap active objects' keys between times 10 and 20 so that
# they have times that are multiples of 0.5 and values that
# are multiples of 1.0.
#
cmds.snapKey( t=(10,20), tm=0.5, vm=1.0 )