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

概要

attachSurface( [surface] [surface] , [blendBias=float], [blendKnotInsertion=boolean], [caching=boolean], [constructionHistory=boolean], [directionU=boolean], [keepMultipleKnots=boolean], [method=int], [name=string], [nodeState=int], [object=boolean], [parameter=float], [replaceOriginal=boolean], [reverse1=boolean], [reverse2=boolean], [swap1=boolean], [swap2=boolean], [twist=boolean])

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

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

Attach コマンドは、サーフェスをアタッチするときに使います。サーフェスが一度アタッチされると、結合ポイントには複数のノットができます。多重ノットは、必要に応じて保持または除去できます。

1 番目のサーフェスの終端は、2 番目のサーフェスの開始端に、指定した方向でアタッチされます。

注: オリジナルの維持(Keep Original)をオフにしてコマンドを実行すると、モデルには余分なサーフェス(2 番目のサーフェス)ができます。このコマンドは、余分なカーブを削除しません。1 番目のサーフェスは、アタッチされるサーフェスで置き換えられます。

戻り値

string[]オブジェクト名とノード名

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

フラグ

blendBias, blendKnotInsertion, caching, constructionHistory, directionU, keepMultipleKnots, method, name, nodeState, object, parameter, replaceOriginal, reverse1, reverse2, swap1, swap2, twist
ロング ネーム(ショート ネーム) 引数タイプ プロパティ
blendBias(bb) float createqueryedit
ブレンド ファクトリに応じて 1 番目または 2 番目のカーブの方向に結果のオブジェクトを傾斜させて、0.5 より小さいまたは 0.5 より大きい範囲に収めます。
既定: 0.5
blendKnotInsertion(bki) boolean createqueryedit
true に設定されている場合、少し異なるエフェクトを作成するため、オリジナル カーブの 1 つ(以下のパラメータ アトリビュートで指定される相対的な位置)にノットを挿入します。
既定: false
caching(cch) boolean createqueryedit
すべてのアトリビュートのキャッシングを切り替えることで、再計算を不要にします。
directionU(du) boolean createqueryedit
true の場合はサーフェスの U 方向にアタッチし、false の場合はサーフェスの V 方向にアタッチします。
既定: true
keepMultipleKnots(kmk) boolean createqueryedit
true の場合、結合パラメータの多重ノットを維持します。false の場合、多重ノットを除去します。
既定: true
method(m) int createqueryedit
アタッチ方法(接続 -0、ブレンド -1)。
既定: 0
nodeState(nds) int createqueryedit

Maya のディペンデンシー ノードには 6 種類の設定可能な状態があります。通常(Normal)(0)、エフェクトなし(HasNoEffect)(1)、ブロッキング(Blocking)(2)ステータスは、グラフの評価方法を変更するために使用されます。

待機 - 通常(Waiting-Normal)(3)、待機 - エフェクトなし(Waiting-HasNoEffect)(4)、待機 - ブロッキング(Waiting-Blocking)(5)は、内部でのみ使用されます。これらは、インタラクション(例: 操作)の実行中にグラフのパーツを一時的に遮断します。操作が完了すると、ステータスは適切にリセットされます(例: 待機 - ブロッキング(Waiting-Blocking) は ブロッキング(Blocking) にリセットされます)。

通常(Normal)およびブロッキング(Blocking)のケースはすべてのノードに適用できますが、エフェクトなし(HasNoEffect)はノード特定です。多くのノードはこのオプションをサポートしていません。プラグインは状態を MPxNode::state アトリビュートに保存します。誰もがこのアトリビュートを設定したり確認したりすることができます。これらの 3 つの状態に関するその他の詳細は次の通りです。

状態 説明
通常(Normal) 通常のノードの状態です。これが既定の設定です。
エフェクトなし(HasNoEffect)

エフェクトなし(HasNoEffect)オプション(別名: 通過)は、同じデータ タイプの出力を生成する入力を操作している場合に使用されます。 ほぼすべてのデフォーマが、他のいくつかのノードと同様に、この状態をサポートします。前に説明したように、すべてのノードでサポートされるわけではありません。

ノードの計算メソッドでエフェクトなし(HasNoEffect)状態のサポートを実装し、適切な操作を実行することが一般的です。プラグインはエフェクトなし(HasNoEffect)もサポートします。

この状態を普通に実装するには、ノードにアルゴリズムを適用しないで、適合する出力に直接入力をコピーします。デフォーマの場合は、この状態を適用することにより、入力ジオメトリが出力でデフォーム解除されたままになります。

ブロッキング(Blocking)

これはディペンデンシー ノードのベース クラスで実装され、すべてのノードに適用されます。ブロッキング(Blocking)は評価フェーズ中に接続に適用されます。 ブロックされた接続に対する評価要求が失敗を返すと、目的プラグが現在の値を保持します。 ダーティな伝播はこの状態の間接的な影響を受けますが、ブロックされた接続がクリーンアップされることはありません。

ノードをブロッキング(Blocking)に設定すると、すべての送信接続が解除されたのと同じ動作になる可能性があります。 ブロックされたノードの評価を直接要求しない限り、その後に再評価されることはありません。ブロックされたノードは getAttr 要求に引き続き応答しますが、下流ノードの getAttr は、ブロックされたノードを再評価しないことに注意してください。

ブロッキング(Blocking)に対して階層のルート変換を設定しても、自動的にはこの階層の子変換に影響しません。これを実行するには、ブロッキング(Blocking)状態に対してすべての子ノードを明示的に設定する必要があります。

たとえば、すべての子トランスフォームをブロッキング(Blocking)に設定するには、次のスクリプトを使用します。

 import maya.cmds as cmds def blockTree(root): nodesToBlock = [] for node in {child:1 for child in cmds.listRelatives( root, path=True, allDescendents=True )}.keys(): nodesToBlock += cmds.listConnections(node, source=True, destination=True ) for node in {source:1 for source in nodesToBlock}.keys(): cmds.setAttr( '%s.nodeState' % node, 2 ) 

このスクリプトを適用してオブジェクトの描画を継続できますが、アニメートは行えません。


既定: kdnNormal
parameter(p) float createqueryedit
新しく挿入されたノットの位置に関するパラメータ値です。
既定: 0.1
reverse1(rv1) boolean createqueryedit
true の場合、アタッチする前に 1 つ目の入力サーフェスの(directionU で指定された)方向を逆にします。false の場合、アタッチする前に 1 つ目の入力サーフェスに何も実行しません。注: このアトリビュートをランダム値に設定すると、予期せぬ結果を引き起こすためサポートされていません。
既定: false
reverse2(rv2) boolean createqueryedit
true の場合、アタッチする前に 2 つ目の入力サーフェスの(directionU で指定された)方向を逆にします。false の場合、アタッチする前に 2 つ目の入力サーフェスに何も実行しません。注: このアトリビュートをランダム値に設定すると、予期せぬ結果を引き起こすためサポートされていません。
既定: false
swap1(sw1) boolean createqueryedit
true の場合、アタッチする前に 1 つ目の入力サーフェスの UV 方向を入れ替えます。false の場合、アタッチする前に 1 つ目の入力サーフェスに何も実行しません。注: このアトリビュートをランダム値に設定すると、予期せぬ結果を引き起こすためサポートされていません。
既定: false
swap2(sw2) boolean createqueryedit
true の場合、アタッチする前に 2 つ目の入力サーフェスの UV 方向を入れ替えます。false の場合、アタッチする前に 2 つ目の入力サーフェスに何も実行しません。注: このアトリビュートをランダム値に設定すると、予期せぬ結果を引き起こすためサポートされていません。
既定: false
twist(tw) boolean createqueryedit
true の場合、アタッチする前に 2 番目のサーフェスの(directionU で指定された)方向の逆に反転します。これにより、アタッチされたサーフェスでのねじれが避けられます。false の場合、アタッチする前に 2 つ目の入力サーフェスに何も実行しません。注: このアトリビュートをランダム値に設定すると、予期せぬ結果を引き起こすためサポートされていません。
既定: false
共通のフラグ
constructionHistory(ch) boolean create
コンストラクション ヒストリをオンまたはオフにします。
name(n) string create
新しく作成するノードの名前を設定します。ネームスペース パスを含む場合、指定されたネームスペースの下に新しいノードが作成されます。ネームスペースが存在しない場合は、ネームスペースが作成されます。
object(o) boolean create
結果のオブジェクト、またはディペンデンシー ノードのみを作成します。
replaceOriginal(rpo) boolean create
「同じ位置」に作成(つまり置き換え)します。

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

Python 例

import maya.cmds as cmds

# Attach the nurbs planes (in the default U direction) and remove the
# multiple knots:
cmds.attachSurface( 'nurbsPlane1', 'nurbsPlane2', kmk=False )

# Attach the two active surfaces along the v direction (keeps multiple
# knots by default):
cmds.attachSurface( du=False )