2017-09-06 21 views
2

私は脊椎リグの作成を自動化するのに役立つスクリプトを作成しようとしていますが、問題が発生しています。私はhereのチュートリアルに従っており、IKジョイントにカーブをスキップするステップに取り組んでいます。私はmc.bindSkin()を使用しようとするとPythonを使用してMayaでbindSkinを作成する

はしかし、私はエラーを取得しておいてください。

Error: RuntimeError: file[directory]/maya/2016.5/scripts\createRigSpine.py line 200: Maya command error) 

それは私がずっと実験を行うために、今手遅れだが、私は、誰かが助けることができる期待していました私が間違ったコマンドを使っているかどうか教えてください。

mc.select(crvSpine, jntIkMidSpine, jntIkChest) 
mc.bindSkin(crvSpine, jntIkMidSpine, jntIkChest, tsb=True) 

(mc.bindSkinは(も試してみました)とmc.bindSkin(TSB =真))

理想的には、私は設定になりたい:

Bind To: Selected Joints 
Bind Method: Closest Distance 
Skinning Method: Classic Linear 
Normalize Weights: Interactive 

編集:私が欲しかったですbindSkinではなく、skinClusterを使用する。

答えて

1

あなたのカーブをジョイントにバインドするには、skinCluster commandを使用する必要があります。何も選択せずに実際に行うことができます。

これを試してください:あなたがしたい場合

import maya.cmds as mc 

influences = [jntIkMidSpine, jntIkChest] 
scls = mc.skinCluster(influences, crvSpine, name='spine_skinCluster', toSelectedBones=True, bindMethod=0, skinMethod=0, normalizeWeights=1)[0] 

# alternatively, if you don't want such a long line of code: 
# 
influences = [jntIkMidSpine, jntIkChest] 
kwargs = { 
    'name': 'spine_skinCluster', # or whatever you want to call it... 
    'toSelectedBones': True, 
    'bindMethod': 0, 
    'skinMethod': 0, 
    'normalizeWeights': 1 
} 
scls = mc.skinCluster(influences, crvSpine, **kwargs)[0] 

# OR just use the short names for the kwargs... 
# 
influences = [jntIkMidSpine, jntIkChest] 
scls = mc.skinCluster(influences, crvSpine, n='spine_skinCluster', tsb=True, bm=0, sm=0, nw=1)[0] 

、あなたはまた、明示的に曲線の各品種のためにしたいの重みを設定することができます。 skinPercentコマンドを使用するか、skinClusterのさまざまな体重attrsにsetAttrを使用することもできます(それほど難しくありませんが、それほど難しくありません)

+0

hmmm ....私はskinClusterコマンドについてあなたが投稿したのと同じ時間に、これに答えて、私のコードを校正/検証することを始めたようです。あなたがそれを見つけたことに気がつかなかったのですが、うれしく思いました! –

+0

ありがとうございます。それは私が提供したソリューションよりも少し完全です。 – Peter

+0

私は助けることができてうれしい! –

0

cmds.bindSkin()ジオメトリにボーンを結合するコマンド。それはIKの唯一のバインディングには適していません。したがって、あなたがバインドする必要があるものをjointに割り当てる必要があります。例えば

:選択したオブジェクトを拘束するための

import maya.cmds as mc 

mc.select('ikHandle1','nurbsCircle1','joint5') 
mc.bindSkin('ikHandle1','nurbsCircle1','joint5') 

# the order of selection is vital 

は次のようにコマンドを使用します。

mc.pointConstraint('ikHandle1','nurbsCircle1', weight=5.0) 

は、制約がおりますものを見つけるRigging module使用するには - Constrain menu - 親、ポイントを、オリエント、スケール、目的、極ベクトル

+0

申し訳ありませんが、ikwhateversは関節です。私はこれを編集します。 – Peter

0

間違ったコマンドを使用していました。 mc.skinClusterはmc.bindSkinではなく、使いたいものです。

関連する問題