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

概要

choice( [objects] , [attribute=string], [controlPoints=boolean], [index=uint], [name=string], [selector=name], [shape=boolean], [sourceAttribute=name], [time=time])

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

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

choice コマンドは、入力を特定の基準(通常は時間ベース)に基づいたアトリビュートに変更するメカニズムを提供します。たとえば、オブジェクトをフレーム 1 から 30 までモーション パスでアニメートし、フレーム 30 から 50 までキーフレーム アニメーションに追従させ、フレーム 50 の後はモーション パスに戻します。または、リボルブ サーフェスであれば、トランスフォームの回転値の一部に従って Input カーブを変更することもできます。

choice コマンドは選択したオブジェクトの指定したアトリビュートすべてに choice ノード(まだない場合)を作成します。アトリビュートがすでに何かに接続されている場合、接続された側は次に choice ノードの入力の i 番目のインデックス(または、-in/index フラグが指定されていない場合、次に使用可能な入力)に再度接続されます。ソース アトリビュートが指定されている場合、そのアトリビュートは choice ノードの i 番目の入力に接続されます。

choice ノードは、その Selector アトリビュートの値で操作し、出力を通してどの入力アトリビュートを渡すかを定義します。入力アトリビュートはどのタイプにもできます。たとえば、Selector アトリビュートが(1,1)、(30,2)と(50,1)のキーフレームが設定されたアニメーション カーブで接続されている場合、choice ノードは、time1 から 30 と time50 より後では input[1] から、time30 から 50 では input[2] からデータを渡すといることです。

このコマンドは、作成または変更された choice ノードの名前を返します。アニメーション カーブにキーフレームが追加されている場合、インデックス(またはアニメーション カーブの値)が指定されます。

戻り値

string[]セレクタ キーフレームが作成されたアトリビュートの、新しく作成/変更された choice ノードです。
例:choice1.input[3] choice2.input[3]

照会モードでは、戻り値のタイプは照会されたフラグに基づきます。

フラグ

attribute, controlPoints, index, name, selector, shape, sourceAttribute, time
ロング ネーム(ショート ネーム) 引数タイプ プロパティ
attribute(at) string createmultiuse
choice ノードを作成する必要のあるアトリビュートを指定します。既定は、指定したオブジェクトのキー設定可能なすべてのアトリビュートです。このフラグが照会可能でなくても、指定したオブジェクトのどのアトリビュートを照会するかを指定することができます。

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

controlPoints(cp) boolean create
アトリビュートのリストにシェイプのコントロール ポイントを含めるかどうかを明示的に指定します(「-s」フラグを参照)。既定: false
index(index) uint createquery
ソース アトリビュートを接続する、choice ノードのマルチ入力インデックスを指定します。照会すると、指定した -t/time ごとに整数のリストを返します。これは、その時間に使用する choice ノードのマルチインデックスを示します。
name(n) string createquery
新しく作成された choice ノードに付ける名前です。照会すると、文字列のリストを返します。
selector(sl) name createquery
choice ノードのセレクタとして使用されるアトリビュートを指定します。指定した時間のセレクタの値で、choice ノードのマルチインデックスのうちどれを使用するかを定義します。このフラグは編集のみ可能です(作成時間に指定できません)。照会すると、文字列のリストを返します。
shape(s) boolean create
トランスフォームの下にあるシェイプのアトリビュート(「controlPoints」以外)もすべて考慮します。既定: true
sourceAttribute(sa) name create
-t/time で指定した時間に選択される、choice ノードに接続するアトリビュートを指定します。
time(t) time createmultiuse
choice ノードが、指定したソース アトリビュート、またはソース アトリビュートが指定されていない場合は現在接続されているアトリビュートを使用する時間を指定します。既定は現在時間です。このフラグは照会できませんが、ほかのアトリビュートを照会する時間を指定することができます。

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


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

Python 例

import maya.cmds as cmds

# This example animates an object airplane along a motion path
# from frames 1 to 30, then continues with keyframe animation until
# frame 50, then returns to the motion path at frame 50.
path = cmds.curve(d=3,p=[(-10, 0, 0),(-6, 0, 10),(-3, 0, -10),(10, 0, 0)],k=[0, 0, 0, 1, 1, 1])
cmds.polyPlane()
cmds.pathAnimation('pPlane1',c=path,stu=1,etu=100)

# Set a choice node on the path animation, ensuring that the choice
# selects path animation from 1 to 30, and then returns at 50.
cmds.choice( 'pPlane1', at='ty', t=[1,30,50] )

# Start a new kind of choice at time 31
cmds.choice( 'pPlane1', at='ty', t=31 )

# Create some keyframe animation between times 31 and 49
cmds.currentTime( 31 )
cmds.setKeyframe( 'pPlane1', at="ty" )
cmds.move( 1, 2, 3, r=True )
cmds.setKeyframe( 'pPlane1', at="ty", t=40 )
cmds.move( 4, 5, 6, r=True )
cmds.setKeyframe( 'pPlane1', at="ty", t=49 )

# Note that the -at/attribute and -t/time flags are not
# queryable in themselves, but they can be used to
# modify the choice nodes to query.

# What is the attribute that is connected to the pPlane1.ty choice node's
# selector attribute?
cmds.choice( 'pPlane1', at='ty', query=True, sl=True)

# Which indices will be evaluated for the choice node to pPlane1.ty
# at the given times?
cmds.choice( 'pPlane1', at='ty', t=[1,30,50], query=True, index=True)