我正在尝试创建一个可以帮助我自动创建脊柱装备的脚本,但我遇到了一个问题。我正在按照here提供的教程进行操作,我正在研究将曲线修剪为IK关节的步骤。
但是,当我尝试使用mc.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 = True))
理想情况下,我希望设置为:
Bind To: Selected Joints
Bind Method: Closest Distance
Skinning Method: Classic Linear
Normalize Weights: Interactive
编辑:我想使用skinCluster,而不是bindSkin。
答案 0 :(得分:2)
你应该使用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]
如果您愿意,还可以为曲线的每个cv明确设置所需的权重。您可以使用skinPercent
命令,甚至只使用setAttr
来表示skinCluster中的各种权重(这有点困难,但并不多)
答案 1 :(得分: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
- 父级,点,东方,比例,目标,极向量。
答案 2 :(得分:0)
我使用了错误的命令。 mc.skinCluster是我想要使用的,而不是mc.bindSkin。