ジャンプ先: 概要. 戻り値. 関連. フラグ. Python 例.
polyCut([caching=boolean], [constructionHistory=boolean], [cutPlaneCenter=[linear, linear, linear]], [cutPlaneCenterX=linear], [cutPlaneCenterY=linear], [cutPlaneCenterZ=linear], [cutPlaneHeight=linear], [cutPlaneRotate=[angle, angle, angle]], [cutPlaneRotateX=angle], [cutPlaneRotateY=angle], [cutPlaneRotateZ=angle], [cutPlaneSize=[linear, linear]], [cutPlaneWidth=linear], [cuttingDirection=string], [deleteFaces=boolean], [extractFaces=boolean], [extractOffset=[linear, linear, linear]], [extractOffsetX=linear], [extractOffsetY=linear], [extractOffsetZ=linear], [name=string], [nodeState=int], [onObject=boolean], [worldSpace=boolean])
注: オブジェクトの名前と引数を表す文字列は、カンマで区切る必要があります。これはシノプシスに示されていません。
polyCut は、取り消し可能、照会可能、および編集可能です。
このコマンドは、メッシュ(ポリゴン フェースのセット)をプレーンに沿って分割します。このプレーンの位置と向きは、上記の適切なフラグで調整できます。さらにカットする際には、カットするプレーンの片側にあるフェースを削除することや、オフセット量でこれらのフェースを抽出することができます。
照会モードでは、戻り値のタイプは照会されたフラグに基づきます。
polySplit, polySubdivideEdge
caching, constructionHistory, cutPlaneCenter, cutPlaneCenterX, cutPlaneCenterY, cutPlaneCenterZ, cutPlaneHeight, cutPlaneRotate, cutPlaneRotateX, cutPlaneRotateY, cutPlaneRotateZ, cutPlaneSize, cutPlaneWidth, cuttingDirection, deleteFaces, extractFaces, extractOffset, extractOffsetX, extractOffsetY, extractOffsetZ, name, nodeState, onObject, worldSpace
| ロング ネーム(ショート ネーム) |
引数タイプ |
プロパティ |
|
| Common poly modifier operation flags |
caching(cch)
|
boolean
|
 
|
|
すべてのアトリビュートのキャッシングを切り替えることで、再計算を不要にします。
|
|
constructionHistory(ch)
|
boolean
|

|
|
コンストラクション ヒストリをオンまたはオフにします(適切な場合)。コンストラクション ヒストリがオンの場合、対応するノードがメッシュのヒストリ チェーンに挿入されます。コンストラクション ヒストリがオフの場合、操作オブジェクト上に直接行われます。 注: コンストラクション ヒストリがすでにオブジェクトにある場合は、このフラグは無視され、ノードは必ずヒストリ チェーンに挿入されます。
|
|
cutPlaneCenter(pc)
|
[linear, linear, linear]
|
 
|
|
カットするプレーンの位置を指定します。 既定: 0.0, 0.0, 0.0
|
|
cutPlaneCenterX(pcx)
|
linear
|
 
|
|
|
cutPlaneCenterY(pcy)
|
linear
|
 
|
|
|
cutPlaneCenterZ(pcz)
|
linear
|
 
|
|
|
cutPlaneHeight(ph)
|
linear
|
 
|
|
|
cutPlaneRotate(ro)
|
[angle, angle, angle]
|
 
|
|
カットするプレーンの方向です。 既定: 0.0, 0.0, 0.0
|
|
cutPlaneRotateX(rx)
|
angle
|
 
|
|
|
cutPlaneRotateY(ry)
|
angle
|
 
|
|
|
cutPlaneRotateZ(rz)
|
angle
|
 
|
|
|
cutPlaneSize(ps)
|
[linear, linear]
|
 
|
|
カットするプレーンの幅と高さです。 既定: 1.0, 1.0
|
|
cutPlaneWidth(pw)
|
linear
|
 
|
|
|
cuttingDirection(cd)
|
string
|
|
|
カットするプレーンの向きを指定します。有効な値は「x」、「y」、「z」で、値が「x」のときは、YZ プレーンに沿って、バウンディング ボックスの中央でオブジェクトをカットします。値が「y」のときは、ZX プレーンに沿って、バウンディング ボックスの中央でオブジェクトをカットします。値が「z」のときは、XY プレーンに沿って、バウンディング ボックスの中央でオブジェクトをカットします。
|
|
deleteFaces(df)
|
boolean
|
 
|
|
ポリゴンからカットするフェースの半分を削除するかどうかを指定します。true の場合は削除されます。 既定: false
|
|
extractFaces(ef)
|
boolean
|
 
|
|
ポリゴンからカットしたフェースを個別のシェルに抽出するかどうかを指定します。true の場合は抽出されます。 既定: false
|
|
extractOffset(eo)
|
[linear, linear, linear]
|
 
|
|
カットするフェースのディスプレイスメント オフセットです。 既定: 0.5, 0.5, 0.5
|
|
extractOffsetX(eox)
|
linear
|
 
|
|
カットするフェースの X ディスプレイスメント オフセットです。
|
|
extractOffsetY(eoy)
|
linear
|
 
|
|
カットするフェースの Y ディスプレイスメント オフセットです。
|
|
extractOffsetZ(eoz)
|
linear
|
 
|
|
カットするフェースの Z ディスプレイスメント オフセットです。
|
|
name(n)
|
string
|
|
|
|
nodeState(nds)
|
int
|
 
|
|
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
|
|
onObject(oo)
|
boolean
|
 
|
|
polyObject 全体またはその中の選択済みフェース コンポーネントのどちらとして動作するかを指定します。 既定値: true
|
|
worldSpace(ws)
|
boolean
|
 
|
|
このフラグは、使用するリファレンスを指定します。オンの場合: すべてのジオメトリ値はワールド リファレンスで考慮されます。オフの場合: すべてのジオメトリ値はオブジェクト リファレンスで考慮されます。 C: 既定はオフです。 Q: 照会すると int を返します。
|
|
フラグはコマンドの作成モードで表示できます
|
フラグはコマンドの編集モードで表示できます
|
フラグはコマンドの照会モードで表示できます
|
フラグに複数の引数を指定し、タプルまたはリストとして渡すことができます。
|
import maya.cmds as cmds
# Introduce new edges at the middle of a cylinder
#
cmds.polyCylinder( r=1, h=2, sx=20, sy=1, sz=1, ax=(0, 1, 0), cuv=1, ch=1, name='pCylA' )
cmds.polyCut( 'pCylA.f[0:59]', cd='Y', ch=1 )
# Delete the bottom half of the cylinder
#
cmds.select( cl=True )
cmds.polyCylinder( r=1, h=2, sx=20, sy=1, sz=1, ax=(0, 1, 0), cuv=1, ch=1, name='pCylB' )
cmds.move( 3, 0, 0, r=True )
cmds.polyCut( 'pCylB.f[0:59]', cd='Y', df=1, ch=1 )
cmds.select( cl=True )
# Split the bottom half of the cylinder
#
cmds.select( cl=True )
cmds.polyCylinder( r=1, h=2, sx=20, sy=1, sz=1, ax=(0, 1, 0), cuv=1, ch=1, name='pCylC' )
cmds.move( 6, 0, 0, r=True )
cmds.polyCut( 'pCylC.f[0:59]', cd='Y', ef=1, ch=1 )
# select one of the cylinders, and select the polyCut node from the
# channel box, and enter the showManipulator Tool, on the Toolbar.
# You can interactively place the cutting plane, and the result of
# cut operation will adjust accordingly.