移動先: 概要 戻り値 フラグ Python の例

概要

connectControl( string attribute... , [fileName=boolean], [index=uint], [preventOverride=boolean])

注意: オブジェクト名や引数を表す文字列はカンマで区切ります。これは概要には示されていません。

connectControl は「元に戻す」が可能、「照会」が不可能「編集」が不可能です。

このコマンドは、1 つまたは複数のディペンデンシー ノードのアトリビュートの 1 番目の引数として指定された UI ウィジェットをアタッチします。このアトリビュートまたはノードは最初から存在している必要はなく、必要に応じてルックアップされます。フラグが指定されていない場合、このコマンドは次のようなコントロールに対して有効です。floatField、floatScrollBar、floatSlider、intField、intScrollBar、intSlider、floatFieldGrp、intFieldGrp、checkBox、radioCollection、optionMenu。index フラグと共に使用すると、その他のすべてのグループの個々のコンポーネントで機能します。

このコマンドは、コントロールと(最初に指定した)アトリビュートの双方向コネクションを設定します。この最初のアトリビュートが変更された場合、コントロールの値も一致するよう適切に更新されます。

まとめ: コントロールを変更すると、すべてのコネクトしたアトリビュートも変更されます。コントロールにアタッチされた最初のアトリビュートを変更すると、そのコントロールは変更されます。

注: connectControl コマンドの発行時にアトリビュートが存在しなければ、双方コネクションは確立されません。その後、そのコントロールを使用した時点でコネクションが確立されます。

connectControl を radioCollections と optionMenus と共に効果的に使用するには、radioButton と menuItem ごとに 1 つのデータをアタッチする必要があります。このデータ(整数)は、radioButton コマンドや menuItem コマンドで data フラグを使用してアタッチできますこのボタン/項目が選択されると、アトリビュートはそのデータの値に設定されます。アトリビュートが変更された場合、その集合(あるいは optionMenu)は、新規のアトリビュート値と一致する項目に切り替わります。一致する項目がない場合は、変更されないままとなります。

コネクション機能(とその他の機能)が組み込まれた特別なコントロールがいくつかあります。attrFieldSliderGrp、attrFieldGrp と attrColorSliderGrp を参照してください。 これらのクラスは、connectControl より簡単に使用することができます。

戻り値

なし

フラグ

fileName, index, preventOverride
ロング ネーム(ショート ネーム) 引数型 プロパティ
index(index) uint create
このフラグで、多数の異なるコントロールを含むグループから、サブコントロールを見つけることができます。 たとえば、floatFieldGrp の 1 つのフィールドをコネクトすることができます。この場合、存在する可能性のあるテキスト ラベルを含む、グループのひとつひとつのメンバーを数に入れなければなりません。たとえば、ラベルの付いたチェック ボックスのグループがあるとすると、そのラベルはインデックス 1、そして最初のチェック ボックスはインデックス 2 と数えられます(インデックスは 1 ベースです)。
fileName(fi) boolean create
このフラグによって、コネクションはファイル名として扱われ、内部から外部へのファイル名表示の変換は、データがコピーされる際に行われます。これは Tfield コントロールへのコネクションのみにあてはまります。
preventOverride(po) boolean create
true の場合、コントロールのコントロールは親のレイアウトの条件によって無効にされ右マウス ボタン メニューを使用した コントロール アトリビュートのオーバーライドは無効です。

: コマンドの作成モードで使用可能なフラグ : コマンドの編集モードで使用可能なフラグ
: コマンドの照会モードで使用可能なフラグ : タプルまたはリストとして渡された複数の引数を持てるフラグ

Python の例

import maya.cmds as cmds

sphereNames = cmds.sphere()
sphereName = sphereNames[0]
window = cmds.window()
cmds.columnLayout()
cmds.text( l='X Value:' )
cmds.floatField( 'xx' )
cmds.connectControl( 'xx', '%s.tx' % sphereName )
cmds.text( l='Visibility' )
cmds.checkBox( 'vis' )
cmds.connectControl( 'vis', '%s.visibility' % sphereName )
cmds.floatFieldGrp( 'rot', l='Rotation:', numberOfFields=3 )
# index 1 would be the text label
cmds.connectControl( 'rot', '%s.rx' % sphereName, index=2 )
cmds.connectControl( 'rot', '%s.ry' % sphereName, index=3 )
cmds.connectControl( 'rot', '%s.rz' % sphereName, index=4 )
cmds.showWindow( window )

# Connecting two attributes to a single control
#
cmds.window()
cmds.columnLayout()
cmds.floatSlider( 'slider' )
cmds.showWindow()

cmds.polySphere()
cmds.polyCube()
cmds.move( 0, 2, 0 )
cmds.connectControl( 'slider', 'pCube1.tx', 'pSphere1.tx' )