移動先: 概要 戻り値 関連項目 フラグ Python の例

概要

skinPercent( [object] [selectionList] , [ignoreBelow=float], [normalize=boolean], [pruneWeights=float], [relative=boolean], [resetToDefault=boolean], [transform=string], [transformValue=[string, float]], [value=boolean])

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

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

このコマンドは、1 番目の引数として指定された skinCluster ノードのメンバのウェイト値を編集、照会します。コマンド ラインでオブジェクトのコンポーネントが明示的に 指定されていない場合、カレントのセレクション リストが使用されます。

このコマンドの 1 回の使用で複数のウェイトを設定する方が、 ウェイトをかけた頂点 1 つについて 1 回呼び出すより、 はるかに効率的です。

戻り値

なし

戻り値の型は照会モードでは照会フラグが基になります。

関連項目

copySkinWeights, skinCluster

フラグ

ignoreBelow, normalize, pruneWeights, relative, resetToDefault, transform, transformValue, value
ロング ネーム(ショート ネーム) 引数型 プロパティ
value(v) boolean query
選択したオブジェクト コンポーネントのジョイントの ウェイトに対応する double の配列を返します。
transform(t) string query
(引数を指定せずに) -query フラグの後ろで使用する場合、コマンドは、 選択したオブジェクト コンポーネントに作用する トランスフォームの名前に対応する文字配列を返します。(トランスフォームの名前を指定して) -query フラグの前で使用する場合、コマンドは、 指定したトランスフォームに対応する 選択したオブジェクト コンポーネントのウェイトを返します。

このフラグは照会モードでは値を受け入れます。

transformValue(tv) [string, float] createmultiuse
トランスフォーム名と値からなるペアを受け取り、 指定したトランスフォームに対応する選択したオブジェクト コンポーネントの ウェイトとしてその値を割り当てます。
relative(r) boolean create
-transformValue と一緒に使用して、値の相対設定を指定します。 -relative が true の場合、-tv に渡された値は前の値に追加されます。false の場合は、渡された値が前の値と置き換えられます。
ignoreBelow(ib) float query
-value と -transform による照会で、 指定した限度以上のウェイト値を持つエントリだけが 出力されるようにします。このフラグは、-query フラグの前に使用する必要があります。

このフラグは照会モードでは値が必要になります。

normalize(nrm) boolean create
設定されている場合、-transformValue フラグによって値が割り当てられていないウェイトを正規化して、 選択したオブジェクト コンポーネントのすべてのウェイトの合計が 1 になるようにします。デフォルトはオンです。注: skinCluster には、false に設定されている場合に このアトリビュートをオーバーライドする normalizeWeights アトリビュートがあります。したがって、 skinCluster.normalizeWeights アトリビュートが false に設定されている場合、 skinPercent コマンドを使用してウェイトを正規化するためには normalizeWeights アトリビュートを true に設定する必要があります。
resetToDefault(rtd) boolean create
選択したコンポーネントのウェイトをデフォルト値に設定し、 カスタム ウェイトを上書きします。
pruneWeights(prw) float create
選択したすべてのコンポーネントのうち、指定した値より 小さいウェイトを持つコンポーネントのウェイトを 0 に設定します。このコマンドを使用してすべてのウェイトを 0 に設定するには、 -normalize フラグを「オフ」にする必要があります。そうでないと、 すべてのウェイトを 0 にした後で、ウェイトの合計が 1 になるように skinCluster ノードによってウェイトが正規化されます。ウェイトを保持(Hold Weights)アトリビュートに true が設定されているウェイトは 0 になりません。

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

Python の例

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)] )