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

概要

polySmooth([caching=boolean], [constructionHistory=boolean], [continuity=float], [degree=int], [divisions=int], [divisionsPerEdge=int], [keepBorder=boolean], [keepHardEdge=boolean], [keepMapBorders=int], [keepSelectionBorder=boolean], [keepTesselation=boolean], [keepTessellation=boolean], [method=int], [name=string], [nodeState=int], [osdCreaseMethod=int], [osdFvarBoundary=int], [osdFvarPropagateCorners=boolean], [osdSmoothTriangles=boolean], [osdVertBoundary=int], [propagateEdgeHardness=boolean], [pushStrength=float], [roundness=float], [smoothUVs=boolean], [subdivisionLevels=int], [subdivisionType=int])

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

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

ポリゴン オブジェクトを滑らかにします。このコマンドは、ポリゴン オブジェクトかフェースで動作します。

戻り値

stringノード名

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

関連

polyAppend, polyAppendVertex, polyBevel, polyChipOff, polyCreateFacet, polyExtrudeEdge, polyExtrudeFacet, polySplit, polySplitVertex, polySubdivideEdge, polySubdivideFacet, polyTriangulate

フラグ

caching, constructionHistory, continuity, degree, divisions, divisionsPerEdge, keepBorder, keepHardEdge, keepMapBorders, keepSelectionBorder, keepTesselation, keepTessellation, method, name, nodeState, osdCreaseMethod, osdFvarBoundary, osdFvarPropagateCorners, osdSmoothTriangles, osdVertBoundary, propagateEdgeHardness, pushStrength, roundness, smoothUVs, subdivisionLevels, subdivisionType
ロング ネーム(ショート ネーム) 引数タイプ プロパティ
Common poly modifier operation flags
caching(cch) boolean createqueryedit
すべてのアトリビュートのキャッシングを切り替えることで、再計算を不要にします。
constructionHistory(ch) boolean createquery
コンストラクション ヒストリをオンまたはオフにします(適切な場合)。コンストラクション ヒストリがオンの場合、対応するノードがメッシュのヒストリ チェーンに挿入されます。コンストラクション ヒストリがオフの場合、操作オブジェクト上に直接行われます。
注: コンストラクション ヒストリがすでにオブジェクトにある場合は、このフラグは無視され、ノードは必ずヒストリ チェーンに挿入されます。
name(n) string create
作成されるノードに名前をつけます。
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
Flags From The polySmoothFacet Node
continuity(c) float createqueryedit
このフラグは平滑性パラメータを指定します。最小値の 0.0 にすると、フェースは細分割されるだけです。最大値の 1.0 にすると、フェースはできる限り滑らかになります。
C: 既定は 1.0 です
Q: 照会すると float を返します。
degree(deg) int create
結果の制限サーフェスの次数です。
divisions(dv) int createqueryedit
スムージングの反復ステップ数を指定します。
C: 既定は 1 です。
Q: 照会すると int を返します。
divisionsPerEdge(dpe) int create
各ステップに対する 1 つのエッジに沿ったサブ ディビジョンの数です。
keepBorder(kb) boolean createqueryedit
オンにした場合、オブジェクトの境界は、スムージング オペレーション中に移動しません。
C: 既定はオンです。
Q: 照会すると int を返します。
keepHardEdge(khe) boolean createqueryedit
true の場合は、ハード エッジの頂点は変更されません。
C: 既定は false です。
Q: 照会すると boolean を返します。
keepMapBorders(kmb) int create
UV マップ境界線の扱いです。0 - すべてのマップ境界エッジをスムージング。1 - ジオメトリの境界でもあるマップ境界をスムージング。2 - マップ境界のスムージングなし。
keepSelectionBorder(ksb) boolean createqueryedit
true にすると、選択した境界の頂点は修正されません。
C: 既定は false です。
Q: 照会すると boolean を返します。
keepTesselation(xkt) boolean create
true の場合: フレームからフレームまで、一貫してオブジェクトがスムージングされます。これは、オブジェクトが変形またはアニメートされている場合に最適です。false の場合: スムージングする前に、星型でないフェースは三角形化されます。これにより自己オーバーラッピングを防げますが、アニメートされた変形の場合、フレームからフレームへのトポロジ(頂点数とフェース数)の変更を招く恐れがあります。
keepTessellation(kt) boolean create
true の場合: フレームからフレームまで、一貫してオブジェクトがスムージングされます。これは、オブジェクトが変形またはアニメートされている場合に最適です。false の場合: スムージングする前に、星型でないフェースは三角形化されます。これにより自己オーバーラッピングを防げますが、アニメートされた変形の場合、フレームからフレームへのトポロジ(頂点数とフェース数)の変更を招く恐れがあります。
method(mth) int create
使用するスムージング アルゴリズムのタイプ。0 - 指数関数(従来のスムージング)、1 - リニア(エッジごとのフェース数がリニアに増加)。
osdCreaseMethod(ocr) int createqueryedit
境界エッジと頂点の補間方法をコントロールします。
osdFvarBoundary(ofb) int createqueryedit
フェースに応じて変わるデータ(UV および頂点カラー)に対する境界の処理方法をコントロールします。
osdFvarPropagateCorners(ofc) boolean createqueryedit
osdSmoothTriangles(ost) boolean createqueryedit
特別なサブディビジョン ルールを、三角形をより滑らかにサブディバイドするために経験的に定義されたすべての三角面に適用します。
osdVertBoundary(ovb) int createqueryedit
境界エッジと頂点の補間方法をコントロールします。
propagateEdgeHardness(peh) boolean createqueryedit
true の場合、エッジのスムーズの結果であるエッジには、エッジの硬度に同じ値が与えられます。新たに細分割されたエッジは、常にスムーズになります。
C: 既定は false です。
Q: 照会すると boolean を返します。
pushStrength(ps) float create
コメント: 0.0 は近似値で、1.0 は補間スキーム。
roundness(ro) float create
1.0 の場合、長さを一定に保つために、押し出しベクトルは再正規化されます。
smoothUVs(suv) boolean create
True の場合、UV およびジオメトリがスムージングされます。
subdivisionLevels(sl) int create
分割とスムージングの操作は何回も実行されます。
subdivisionType(sdt) int createqueryedit
スムージングに使用されるサブディビジョン方法です。
C: 既定は 0 です。
0: Maya Catmull-Clark
1: OpenSubdiv Catmull-Clark

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

Python 例

import maya.cmds as cmds

cmds.polyCube( n='plg1' )
cmds.move( -3, 0, 2 )
cmds.polyCube( n='plg2' )
cmds.move( -3, 0, -2 )
cmds.polyCube( n='plg3' )
cmds.move( 0, 0, 2 )
cmds.delete( 'plg3.f[1]' )
cmds.polyCube( n='plg4' )
cmds.move( 0, 0, -2 )
cmds.delete( 'plg4.f[1]' )
cmds.polyCube( n='plg5' )
cmds.move( 3, 0, 2 )
cmds.polyCube( n='plg6' )
cmds.move( 3, 0, -2 )

cmds.polyOptions( ao=True, db=1 )

# only one division:
cmds.polySmooth( 'plg1.f[0:5]', dv=1 )

# 2 divisions produces a round-ish object
cmds.polySmooth( 'plg2.f[0:5]', dv=2 )

# keep border edges
cmds.select( 'plg3.f[0:4]' )
cmds.polySmooth( kb=1 )

# don't keep border edges
cmds.select( 'plg4.f[0:4]' )
cmds.polySmooth( kb=0 )

# 1 division, continuity 0.2
cmds.select( 'plg5' )
cmds.polySmooth( c=0.2 )

# 1 division, continuity 0.8
cmds.polySmooth( 'plg6.f[0:5]', c=0.8 )