2017-09-06 1 views
2

척추 장비 생성을 자동화하는 데 도움이되는 스크립트를 만들려고하는데 문제가 생겼습니다. 자습서 (here)를 따르고 있으며 IK 접합부의 커브를 스키닝하는 단계를 진행하고 있습니다. 그러나Python을 사용하여 Maya에서 bindSkin 만들기

, 내가 mc.bindSkin()를 사용하려고하면, 나는 오류가 점점 계속 :

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

그것은 나에게 많은 실험을 수행하기에 지금은 너무 늦었어요,하지만 누군가가 도움이 될 기대했다 나, 내가 잘못된 명령을 사용하고 있는지 말해줘.

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

편집 :

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

(도 시도 mc.bindSkin()와 mc.bindSkin (TSB = 참))

가 이상적으로, 내가 설정이되고 싶어 내가 원 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] 

, 당신은 또한 명시 적으로 곡선의 각 CV에 대해 원하는 가중치를 설정할 수 있습니다. skinPercent 명령을 사용하거나 심지어 skinCluster의 다양한 무게 attrs에 setAttr을 사용할 수 있습니다 (조금 어렵지만 많지는 않습니다)

+0

hmmm .... 스킨 클러스터 명령에 대해 게시 한 것과 같은 시간에이 질문에 답하고 증거를 읽거나 확인하는 등의 코드를 읽는 것처럼 보입니다. - 찾지 못했지만 기뻤습니다! –

+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이 아니라 사용하고 싶습니다.

관련 문제