Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用python在Maya中创建bindSkin_Python_Maya_Skinning - Fatal编程技术网

使用python在Maya中创建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) 现在对我来说做很多实验已经太晚了,但我希望有人能帮助我,或者告诉我是否使用了错误的命令

我试图创建一个脚本来帮助我自动创建脊椎装备,但我遇到了一个问题。我正在按照提供的教程进行操作,并正在执行将曲线蒙皮到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。

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命令的同时校对/验证我的代码-没有注意到你找到了它,但很高兴你找到了!谢谢这比我提供的解决方案要完整一点。很高兴我能帮上忙!