使用python在Maya中创建bindSkin
我试图创建一个脚本来帮助我自动创建脊椎装备,但我遇到了一个问题。我正在按照提供的教程进行操作,并正在执行将曲线蒙皮到IK关节的步骤 但是,当我尝试使用mc.bindSkin()时,我不断得到一个错误:使用python在Maya中创建bindSkin,python,maya,skinning,Python,Maya,Skinning,我试图创建一个脚本来帮助我自动创建脊椎装备,但我遇到了一个问题。我正在按照提供的教程进行操作,并正在执行将曲线蒙皮到IK关节的步骤 但是,当我尝试使用mc.bindSkin()时,我不断得到一个错误: Error: RuntimeError: file[directory]/maya/2016.5/scripts\createRigSpine.py line 200: Maya command error) 现在对我来说做很多实验已经太晚了,但我希望有人能帮助我,或者告诉我是否使用了错误的命令
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。cmds.bindSkin()
用于将骨骼绑定到几何体的命令。它不适合仅绑定到IK。因此,您需要指定需要绑定到的关节
例如:
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)
要了解您可以使用哪些约束,请使用装配模块
–约束菜单
–父项、点、方向、比例、目标、极向量。我使用了错误的命令。mc.skinCluster是我想要使用的,而不是mc.bindsking。您应该使用将曲线绑定到关节-实际上,您可以不选择任何东西就完成它
试试这个:
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
命令,甚至可以对skinCluster中的各种权重属性使用setAttr
(这有点困难,但不多)hmmm。。。。看起来我开始回答这个问题,并在你发布skinCluster命令的同时校对/验证我的代码-没有注意到你找到了它,但很高兴你找到了!谢谢这比我提供的解决方案要完整一点。很高兴我能帮上忙!