ジャンプ先: 概要. 戻り値. 関連. フラグ. Python 例.
skinPercent(
[object] [selectionList]
, [ignoreBelow=float], [normalize=boolean], [pruneWeights=float], [relative=boolean], [resetToDefault=boolean], [transform=string], [transformMoveWeights=string], [transformValue=[string, float]], [value=boolean], [zeroRemainingInfluences=boolean])
注: オブジェクトの名前と引数を表す文字列は、カンマで区切る必要があります。これはシノプシスに示されていません。
skinPercent は、取り消し可能、照会可能、および編集不可能です。
このコマンドは、1 番目の引数として指定された skinCluster ノードのメンバーのウェイト値を編集、照会します。コマンド ラインでオブジェクトのコンポーネントが明示的に指定されていない場合、現在のセレクション リストが使用されます。
このコマンドの 1 回の使用で複数のウェイトを設定する方が、ウェイトをかけた頂点 1 つについて 1 回コールするより、はるかに効率的です。
なし
照会モードでは、戻り値のタイプは照会されたフラグに基づきます。
copySkinWeights, skinCluster
ignoreBelow, normalize, pruneWeights, relative, resetToDefault, transform, transformMoveWeights, transformValue, value, zeroRemainingInfluences
フラグはコマンドの作成モードで表示できます
|
フラグはコマンドの編集モードで表示できます
|
フラグはコマンドの照会モードで表示できます
|
フラグに複数の引数を指定し、タプルまたはリストとして渡すことができます。
|
import maya.cmds as cmds
# Create a joint chain and a polygonal plane and bind them as skin
cmds.select(d=True)
cmds.joint(p=(-3.0, 0.0,-12.0))
cmds.joint(p=(-3.0, 0.0, -5.0))
cmds.joint(p=(1.0, 0.0, 5.5))
cmds.joint(p=(6.0, 0.0, 10.0))
cmds.polyPlane(w=20.0,h=20.0,sx=25,sy=25)
cmds.skinCluster( 'joint1', 'pPlane1' )
# For vtx[100], set the weight wrt joint1 to 0.2, the weight
# wrt joint3 to 0.8 and adjust the remaining weights to keep
# the overall weight normalized (i.e. set all other joints to zero,
# since the weights we are setting sum to 1.0)
#
cmds.skinPercent( 'skinCluster1', 'pPlane1.vtx[100]', transformValue=[('joint1', 0.2), ('joint3', 0.8)])
# Get the weight values corresponding to all of the influences
#
cmds.skinPercent( 'skinCluster1', 'pPlane1.vtx[100]', query=True, value=True )
# Get the weight values that are above 0.5
#
cmds.skinPercent( 'skinCluster1', 'pPlane1.vtx[100]', ignoreBelow=0.5, query=True, value=True )
# Get the weight of vtx[100] corresponding to joint1
#
cmds.skinPercent( 'skinCluster1', 'pPlane1.vtx[100]', transform='joint1', query=True )
# Normalize the existing weights for vtx[100]
#
cmds.skinPercent( 'skinCluster1', 'pPlane1.vtx[100]', normalize=True )
# Reset the weights for vtx[100] to their default values
#
cmds.skinPercent( 'skinCluster1', 'pPlane1.vtx[100]', resetToDefault=True )
# Zero all the weights that are below 0.1
#
cmds.skinPercent( 'skinCluster1', 'pPlane1', pruneWeights=0.1 )
# Zero all the weights
#
cmds.skinPercent( 'skinCluster1', 'pPlane1', pruneWeights=100, normalize=False )
# Assign weights to a large number of vertices,
# several at a time to reduce the number of calls
# to the skinPercent command.
#
for i in range(0,675,10):
cmds.select('pPlane1.vtx[%i]' % i,'pPlane1.vtx[%i]' % (i+1), 'pPlane1.vtx[%i]' % (i+2), 'pPlane1.vtx[%i]' % (i+3), 'pPlane1.vtx[%i]' % (i+4), 'pPlane1.vtx[%i]' % (i+5), 'pPlane1.vtx[%i]' % (i+6), 'pPlane1.vtx[%i]' % (i+7), 'pPlane1.vtx[%i]' % (i+8), 'pPlane1.vtx[%i]' % (i+9))
cmds.skinPercent( 'skinCluster1',transformValue=[('joint1', 0.5),('joint2', 0.5)] )