本文整理匯總了Python中maya.cmds.joint方法的典型用法代碼示例。如果您正苦於以下問題:Python cmds.joint方法的具體用法?Python cmds.joint怎麽用?Python cmds.joint使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類maya.cmds
的用法示例。
在下文中一共展示了cmds.joint方法的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。
示例1: createEyelidJoints
# 需要導入模塊: from maya import cmds [as 別名]
# 或者: from maya.cmds import joint [as 別名]
def createEyelidJoints(self, side, lid, middle, cvEyelidLoc, jointLabelNumber, *args):
''' Create the eyelid joints to be used in the needed setup.
Returns EyelidBaseJxt and EyelidJnt created for rotate and skinning.
'''
# declating a concatenated name used for base to compose:
baseName = side+self.userGuideName+"_"+self.langDic[self.langName][lid]+"_"+self.langDic[self.langName]['c042_eyelid']+middle
# creating joints:
eyelidBaseZeroJxt = cmds.joint(name=baseName+"_Base_Zero_Jxt", rotationOrder="yzx", scaleCompensate=False)
eyelidBaseJxt = cmds.joint(name=baseName+"_Base_Jxt", rotationOrder="yzx", scaleCompensate=False)
eyelidZeroJxt = cmds.joint(name=baseName+"_Zero_Jxt", rotationOrder="yzx", scaleCompensate=False)
eyelidJnt = cmds.joint(name=baseName+"_Jnt", rotationOrder="yzx", scaleCompensate=False)
cmds.addAttr(eyelidJnt, longName='dpAR_joint', attributeType='float', keyable=False)
utils.setJointLabel(eyelidJnt, jointLabelNumber, 18, self.userGuideName+"_"+self.langDic[self.langName][lid]+"_"+self.langDic[self.langName]['c042_eyelid']+middle)
cmds.select(eyelidZeroJxt)
eyelidSupportJxt = cmds.joint(name=baseName+"_Jxt", rotationOrder="yzx", scaleCompensate=False)
cmds.setAttr(eyelidSupportJxt+".translateX", self.ctrlRadius*0.1)
# positioning and orienting correctely eyelid joints:
cmds.delete(cmds.aimConstraint(cvEyelidLoc, eyelidBaseZeroJxt, aimVector=(0,0,1), worldUpType="objectrotation", worldUpObject=self.eyelidJxt))
cmds.delete(cmds.parentConstraint(cvEyelidLoc, eyelidZeroJxt, mo=False))
cmds.setAttr(eyelidZeroJxt+".rotateX", 0)
cmds.setAttr(eyelidZeroJxt+".rotateY", 0)
cmds.setAttr(eyelidZeroJxt+".rotateZ", 0)
cmds.select(self.eyelidJxt)
return eyelidBaseJxt, eyelidJnt
示例2: reset_actor
# 需要導入模塊: from maya import cmds [as 別名]
# 或者: from maya.cmds import joint [as 別名]
def reset_actor():
from . import sisidebar_sub
sel = cmds.ls(sl=True, l=True)
joints = cmds.ls(sl=True, l=True, type='joint')
if not joints:
joints = []
for s in sel:
if cmds.nodeType(s) == 'KTG_ModelRoot':
child_joints = cmds.ls(cmds.listRelatives(s, ad=True, f=True), l=True, type='joint')
if child_joints:
joints += child_joints
if not sel:
joints = cmds.ls(l=True, type='joint')
for j in joints:
con_info = cmds.connectionInfo(j+'.bindPose', dfs=True)
if not con_info:
continue
con_info = con_info[0]
bind_info = con_info.replace('world', 'xform')
pose = cmds.getAttr(bind_info)
cmds.xform(j, m=pose)
sisidebar_sub.get_matrix()
示例3: setUp
# 需要導入模塊: from maya import cmds [as 別名]
# 或者: from maya.cmds import joint [as 別名]
def setUp(self):
self.group = cmds.createNode("transform", name="skeleton_grp")
cmds.select(cl=True)
j1 = cmds.joint(p=(0, 10, 0))
cmds.joint(p=(1, 9, 0))
cmds.joint(p=(2, 8, 0))
j = cmds.joint(p=(3, 9, 0))
cmds.joint(p=(4, 6, 0))
cmds.joint(p=(5, 5, 0))
cmds.joint(p=(6, 3, 0))
self.cube = cmds.polyCube()[0]
cmds.parent(self.cube, j)
cmds.parent(j1, self.group)
cmds.joint(j1, e=True, oj="xyz", secondaryAxisOrient="yup", ch=True, zso=True)
self.translates = [
cmds.getAttr("{0}.t".format(x))[0] for x in cmds.ls(type="joint")
]
self.rotates = [
cmds.getAttr("{0}.r".format(x))[0] for x in cmds.ls(type="joint")
]
self.orients = [
cmds.getAttr("{0}.jo".format(x))[0] for x in cmds.ls(type="joint")
]
示例4: assert_hierarachies_match
# 需要導入模塊: from maya import cmds [as 別名]
# 或者: from maya.cmds import joint [as 別名]
def assert_hierarachies_match(self):
self.assertEqual(7, len(cmds.ls(type="joint")))
# Make sure the joint orients are the same
translates = [cmds.getAttr("{0}.t".format(x))[0] for x in cmds.ls(type="joint")]
rotates = [cmds.getAttr("{0}.r".format(x))[0] for x in cmds.ls(type="joint")]
orients = [cmds.getAttr("{0}.jo".format(x))[0] for x in cmds.ls(type="joint")]
for orient, new_orient in zip(self.orients, orients):
self.assertListAlmostEqual(orient, new_orient)
for translate, new_translate in zip(self.translates, translates):
self.assertListAlmostEqual(translate, new_translate)
for rotate, new_rotate in zip(self.rotates, rotates):
self.assertListAlmostEqual(rotate, new_rotate)
# The geometry should not have been exported
self.assertFalse(cmds.objExists(self.cube))
self.assertTrue(cmds.objExists(self.group))
self.assertEqual("joint1", cmds.listRelatives(self.group, children=True)[0])
示例5: get_joint_data
# 需要導入模塊: from maya import cmds [as 別名]
# 或者: from maya.cmds import joint [as 別名]
def get_joint_data(node):
"""Get the serializable data of a node.
:param node: Joint or transform name.
:return: Data dictionary.
"""
node_type = cmds.nodeType(node)
shapes = cmds.listRelatives(node, children=True, shapes=True)
if node_type not in ["joint", "transform"] or (shapes and node_type == "transform"):
# Skip nodes that are not joints or transforms or if there are shapes below.
return None
parent = cmds.listRelatives(node, parent=True)
parent = parent[0] if parent else None
joint_data = {"nodeType": node_type, "name": node, "parent": parent}
for attr in ATTRIBUTES:
attribute = "{}.{}".format(node, attr)
if not cmds.objExists(attribute):
continue
value = cmds.getAttr(attribute)
if isinstance(value, list):
value = list(value[0])
joint_data[attr] = value
return joint_data
示例6: create
# 需要導入模塊: from maya import cmds [as 別名]
# 或者: from maya.cmds import joint [as 別名]
def create(data_list):
"""Create the transform hierarchy.
:param data_list: The list of transform/joint data generated from dumps.
"""
for data in data_list:
node = data["name"]
if not cmds.objExists(node):
node = cmds.createNode(data["nodeType"], name=node)
parent = data["parent"]
if parent and cmds.objExists(parent):
cmds.parent(node, parent)
for attr in ATTRIBUTES:
attribute = "{}.{}".format(node, attr)
if not cmds.objExists(attribute):
continue
value = data[attr]
if isinstance(value, string_types):
cmds.setAttr(attribute, value, type="string")
elif isinstance(value, list):
cmds.setAttr(attribute, *value)
else:
cmds.setAttr(attribute, value)
示例7: mirror
# 需要導入模塊: from maya import cmds [as 別名]
# 或者: from maya.cmds import joint [as 別名]
def mirror(joint, search_for, replace_with):
joints = [joint] + (cmds.listRelatives(joint, ad=True, path=True) or [])
for joint in joints:
mirrored_joint = joint.replace(search_for, replace_with)
if cmds.objExists(mirrored_joint):
translate = list(cmds.getAttr("{0}.t".format(joint))[0])
parent = cmds.listRelatives(joint, parent=True, path=True)
if parent and search_for not in parent[0]:
translate[2] *= -1.0
else:
translate = [x * -1.0 for x in translate]
cmds.setAttr("{0}.t".format(mirrored_joint), *translate)
rotate = cmds.getAttr("{0}.r".format(joint))[0]
cmds.setAttr("{0}.r".format(mirrored_joint), *rotate)
scale = cmds.getAttr("{0}.s".format(joint))[0]
cmds.setAttr("{0}.s".format(mirrored_joint), *scale)
示例8: make_position_planar
# 需要導入模塊: from maya import cmds [as 別名]
# 或者: from maya.cmds import joint [as 別名]
def make_position_planar(*args):
sel = cmds.ls(sl=True, type="joint")
if len(sel) <= 3:
raise RuntimeError(
"Select 3 joints to make a plane and then additional joints to move onto that plane."
)
a, b, c = [get_position(sel[i]) for i in range(3)]
ab = (b - a).normal()
ac = (c - a).normal()
normal = (ab ^ ac).normal()
joints = sel[3:]
for joint in joints:
children = _unparent_children(joint)
p = get_position(joint)
pa = a - p
dot = pa * normal
p = p + (normal * dot)
cmds.xform(joint, ws=True, t=(p.x, p.y, p.z))
_reparent_children(joint, children)
if sel:
cmds.select(sel)
示例9: align_with_child
# 需要導入模塊: from maya import cmds [as 別名]
# 或者: from maya.cmds import joint [as 別名]
def align_with_child(joints):
"""Aligns the up axis of the given joints with their respective child joint.
@param joints: List of joints to orient.
"""
for joint in joints:
children = _unparent_children(joint)
if children:
cmds.delete(
cmds.aimConstraint(
children[0],
joint,
aim=(1, 0, 0),
upVector=(0, 1, 0),
worldUpType="objectrotation",
worldUpVector=(0, 1, 0),
worldUpObject=children[0],
)
)
cmds.makeIdentity(joint, apply=True)
_reparent_children(joint, children)
if joints:
cmds.select(joints)
示例10: orient_to_world
# 需要導入模塊: from maya import cmds [as 別名]
# 或者: from maya.cmds import joint [as 別名]
def orient_to_world(joints):
"""Orients the given joints with the world.
@param joints: Joints to orient.
"""
for joint in joints:
children = _unparent_children(joint)
parent = cmds.listRelatives(joint, parent=True, path=True)
orig_joint = joint.split("|")[-1]
if parent:
joint = cmds.parent(joint, world=True)[0]
cmds.joint(joint, e=True, oj="none", zso=True)
if parent:
joint = cmds.parent(joint, parent)[0]
joint = cmds.rename(joint, orig_joint)
_reparent_children(joint, children)
if joints:
cmds.select(joints)
示例11: offset_orient
# 需要導入模塊: from maya import cmds [as 別名]
# 或者: from maya.cmds import joint [as 別名]
def offset_orient(joints, amount, axis):
"""Offsets the orient by the given amount
@param joints: Joints to orient.
@param amount: Amount to offset by.
@param axis: Which axis X, Y or Z
"""
for joint in joints:
children = _unparent_children(joint)
attribute = "{0}.jointOrient{1}".format(joint, axis)
orient = cmds.getAttr(attribute)
orient += amount
cmds.setAttr(attribute, orient)
_reparent_children(joint, children)
if joints:
cmds.select(joints)
示例12: createGuide
# 需要導入模塊: from maya import cmds [as 別名]
# 或者: from maya.cmds import joint [as 別名]
def createGuide(self, *args):
Base.StartClass.createGuide(self)
# Custom GUIDE:
cmds.addAttr(self.moduleGrp, longName="flip", attributeType='bool')
cmds.setAttr(self.moduleGrp+".flip", 0)
cmds.addAttr(self.moduleGrp, longName="fatherB", dataType='string')
cmds.setAttr(self.moduleGrp+".moduleNamespace", self.moduleGrp[:self.moduleGrp.rfind(":")], type='string')
self.cvALoc, shapeSizeCH = self.ctrls.cvJointLoc(ctrlName=self.guideName+"_JointLocA", r=0.3, d=1, guide=True)
self.connectShapeSize(shapeSizeCH)
self.jAGuide = cmds.joint(name=self.guideName+"_jAGuide", radius=0.001)
cmds.setAttr(self.jAGuide+".template", 1)
cmds.parent(self.jAGuide, self.moduleGrp, relative=True)
self.cvBLoc, shapeSizeCH = self.ctrls.cvJointLoc(ctrlName=self.guideName+"_JointLocB", r=0.3, d=1, guide=True)
self.connectShapeSize(shapeSizeCH)
cmds.parent(self.cvBLoc, self.cvALoc)
cmds.setAttr(self.cvBLoc+".tz", 3)
cmds.setAttr(self.cvBLoc+".rotateX", 180)
self.jBGuide = cmds.joint(name=self.guideName+"_jBGuide", radius=0.001)
cmds.setAttr(self.jBGuide+".template", 1)
cmds.transformLimits(self.cvBLoc, tz=(0.01, 1), etz=(True, False))
self.ctrls.setLockHide([self.cvBLoc], ['tx', 'ty', 'rx', 'ry', 'rz', 'sx', 'sy', 'sz'])
cmds.parent(self.cvALoc, self.moduleGrp)
cmds.parent(self.jBGuide, self.jAGuide)
cmds.parentConstraint(self.cvALoc, self.jAGuide, maintainOffset=False, name=self.jAGuide+"_ParentConstraint")
cmds.parentConstraint(self.cvBLoc, self.jBGuide, maintainOffset=False, name=self.jBGuide+"_ParentConstraint")
cmds.scaleConstraint(self.cvALoc, self.jAGuide, maintainOffset=False, name=self.jAGuide+"_ScaleConstraint")
cmds.scaleConstraint(self.cvBLoc, self.jBGuide, maintainOffset=False, name=self.jBGuide+"_ScaleConstraint")
示例13: createGuide
# 需要導入模塊: from maya import cmds [as 別名]
# 或者: from maya.cmds import joint [as 別名]
def createGuide(self, *args):
Base.StartClass.createGuide(self)
# Custom GUIDE:
cmds.addAttr(self.moduleGrp, longName="nJoints", attributeType='long')
cmds.setAttr(self.moduleGrp+".nJoints", 1)
cmds.addAttr(self.moduleGrp, longName="flip", attributeType='bool')
cmds.setAttr(self.moduleGrp+".flip", 0)
cmds.setAttr(self.moduleGrp+".moduleNamespace", self.moduleGrp[:self.moduleGrp.rfind(":")], type='string')
self.cvJointLoc, shapeSizeCH = self.ctrls.cvJointLoc(ctrlName=self.guideName+"_JointLoc1", r=0.3, d=1, guide=True)
self.connectShapeSize(shapeSizeCH)
self.jGuide1 = cmds.joint(name=self.guideName+"_JGuide1", radius=0.001)
cmds.setAttr(self.jGuide1+".template", 1)
cmds.parent(self.jGuide1, self.moduleGrp, relative=True)
self.cvEndJoint, shapeSizeCH = self.ctrls.cvLocator(ctrlName=self.guideName+"_JointEnd", r=0.1, d=1, guide=True)
self.connectShapeSize(shapeSizeCH)
cmds.parent(self.cvEndJoint, self.cvJointLoc)
cmds.setAttr(self.cvEndJoint+".tz", 1.3)
self.jGuideEnd = cmds.joint(name=self.guideName+"_JGuideEnd", radius=0.001)
cmds.setAttr(self.jGuideEnd+".template", 1)
cmds.transformLimits(self.cvEndJoint, tz=(0.01, 1), etz=(True, False))
self.ctrls.setLockHide([self.cvEndJoint], ['tx', 'ty', 'rx', 'ry', 'rz', 'sx', 'sy', 'sz'])
cmds.parent(self.cvJointLoc, self.moduleGrp)
cmds.parent(self.jGuideEnd, self.jGuide1)
cmds.parentConstraint(self.cvJointLoc, self.jGuide1, maintainOffset=False, name=self.jGuide1+"_ParentConstraint")
cmds.parentConstraint(self.cvEndJoint, self.jGuideEnd, maintainOffset=False, name=self.jGuideEnd+"_ParentConstraint")
示例14: createGuide
# 需要導入模塊: from maya import cmds [as 別名]
# 或者: from maya.cmds import joint [as 別名]
def createGuide(self, *args):
Base.StartClass.createGuide(self)
# Custom GUIDE:
cmds.addAttr(self.moduleGrp, longName="flip", attributeType='bool')
cmds.setAttr(self.moduleGrp+".flip", 0)
cmds.addAttr(self.moduleGrp, longName="indirectSkin", attributeType='bool')
cmds.setAttr(self.moduleGrp+".indirectSkin", 0)
cmds.addAttr(self.moduleGrp, longName='holder', attributeType='bool')
cmds.setAttr(self.moduleGrp+".holder", 0)
cmds.setAttr(self.moduleGrp+".moduleNamespace", self.moduleGrp[:self.moduleGrp.rfind(":")], type='string')
self.cvJointLoc, shapeSizeCH = self.ctrls.cvJointLoc(ctrlName=self.guideName+"_JointLoc1", r=0.3, d=1, guide=True)
self.connectShapeSize(shapeSizeCH)
self.jGuide1 = cmds.joint(name=self.guideName+"_JGuide1", radius=0.001)
cmds.setAttr(self.jGuide1+".template", 1)
cmds.parent(self.jGuide1, self.moduleGrp, relative=True)
self.cvEndJoint, shapeSizeCH = self.ctrls.cvLocator(ctrlName=self.guideName+"_JointEnd", r=0.1, d=1, guide=True)
self.connectShapeSize(shapeSizeCH)
cmds.parent(self.cvEndJoint, self.cvJointLoc)
cmds.setAttr(self.cvEndJoint+".tz", 1.3)
self.jGuideEnd = cmds.joint(name=self.guideName+"_JGuideEnd", radius=0.001)
cmds.setAttr(self.jGuideEnd+".template", 1)
cmds.transformLimits(self.cvEndJoint, tz=(0.01, 1), etz=(True, False))
self.ctrls.setLockHide([self.cvEndJoint], ['tx', 'ty', 'rx', 'ry', 'rz', 'sx', 'sy', 'sz'])
cmds.parent(self.cvJointLoc, self.moduleGrp)
cmds.parent(self.jGuideEnd, self.jGuide1)
cmds.parentConstraint(self.cvJointLoc, self.jGuide1, maintainOffset=False, name=self.jGuide1+"_ParentConstraint")
cmds.parentConstraint(self.cvEndJoint, self.jGuideEnd, maintainOffset=False, name=self.jGuideEnd+"_ParentConstraint")
cmds.scaleConstraint(self.cvJointLoc, self.jGuide1, maintainOffset=False, name=self.jGuide1+"_ScaleConstraint")
cmds.scaleConstraint(self.cvEndJoint, self.jGuideEnd, maintainOffset=False, name=self.jGuideEnd+"_ScaleConstraint")
示例15: createGuide
# 需要導入模塊: from maya import cmds [as 別名]
# 或者: from maya.cmds import joint [as 別名]
def createGuide(self, *args):
Base.StartClass.createGuide(self)
# Custom GUIDE:
cmds.addAttr(self.moduleGrp, longName="flip", attributeType='bool')
cmds.setAttr(self.moduleGrp+".flip", 0)
cmds.setAttr(self.moduleGrp+".moduleNamespace", self.moduleGrp[:self.moduleGrp.rfind(":")], type='string')
self.cvJointLoc, shapeSizeCH = self.ctrls.cvJointLoc(ctrlName=self.guideName+"_JointLoc1", r=0.3, d=1, guide=True)
self.connectShapeSize(shapeSizeCH)
self.jGuide1 = cmds.joint(name=self.guideName+"_JGuide1", radius=0.001)
cmds.setAttr(self.jGuide1+".template", 1)
cmds.parent(self.jGuide1, self.moduleGrp, relative=True)
self.cvEndJoint, shapeSizeCH = self.ctrls.cvLocator(ctrlName=self.guideName+"_JointEnd", r=0.1, d=1, guide=True)
self.connectShapeSize(shapeSizeCH)
cmds.parent(self.cvEndJoint, self.cvJointLoc)
cmds.setAttr(self.cvEndJoint+".tz", 3)
self.jGuideEnd = cmds.joint(name=self.guideName+"_JGuideEnd", radius=0.001)
cmds.setAttr(self.jGuideEnd+".template", 1)
cmds.transformLimits(self.cvEndJoint, tz=(0.01, 1), etz=(True, False))
self.ctrls.setLockHide([self.cvEndJoint], ['tx', 'ty', 'rx', 'ry', 'rz', 'sx', 'sy', 'sz'])
cmds.parent(self.cvJointLoc, self.moduleGrp)
cmds.parent(self.jGuideEnd, self.jGuide1)
cmds.parentConstraint(self.cvJointLoc, self.jGuide1, maintainOffset=False, name=self.jGuide1+"_ParentConstraint")
cmds.parentConstraint(self.cvEndJoint, self.jGuideEnd, maintainOffset=False, name=self.jGuideEnd+"_ParentConstraint")
cmds.setAttr(self.moduleGrp+".translateY", 3)
cmds.setAttr(self.moduleGrp+".rotateX", 45)