Ejemplo n.º 1
0
def create_fk_ik_sn(controls, **kwargs):
	
	fk, ik = get_fk_ik_joints(controls)
	
	# Add the FkIkMode attribute to both controls and identify
	# which control is the fk control and which is the ik control.
	for c in controls:
		addAttr(c, longName='FkIkMode', niceName='FKIK Mode',
			attributeType='enum', enumName='FK:IK', keyable=True,
			defaultValue=1)
	
	sn = scriptNode(scriptType=2, sourceType='python',
		beforeScript=';'.join(['import pymel.core.nodetypes as nt',
			'import %s as x' % __name__,
			"x.create_fk_ik_sj(%s)" % controls]),
		afterScript=';'.join(['import pymel.core.nodetypes as nt',
			"[c.attr('FkIkMode').delete() for c in %s]" % controls]),
		**kwargs)
	
	# Make the appropriate connections to toggle both visibility and
	# orient constraints.
	rev = shadingNode('reverse', asUtility=True)
	ik['ctrl'].attr('FkIkMode').connect(ik['ctrl'].attr('visibility'))
	fk['ctrl'].attr('FkIkMode').connect(rev.attr('inputX'))
	rev.attr('outputX').connect(fk['ctrl'].attr('visibility'))
	ik['ctrl'].attr('FkIkMode').connect(ik['sj'].attr('visibility'))
	fk['ctrl'].attr('FkIkMode').connect(rev.attr('inputY'))
	rev.attr('outputY').connect(fk['sj'].attr('visibility'))
	for jtype in ('shoulder', 'elbow', 'hand'):
		kwargs = jtype == 'elbow' and dict(skip=('x', 'z')) or {}
		oc = orientConstraint(ik[jtype], fk[jtype], **kwargs)
		ik['ctrl'].attr('FkIkMode').connect( \
			oc.attr(ik[jtype].nodeName() + 'W0'))
	
	create_fk_ik_sj(controls)
Ejemplo n.º 2
0
def create_fk_ik_sn(controls, **kwargs):

    fk, ik = get_fk_ik_joints(controls)

    # Add the FkIkMode attribute to both controls and identify
    # which control is the fk control and which is the ik control.
    for c in controls:
        addAttr(c,
                longName='FkIkMode',
                niceName='FKIK Mode',
                attributeType='enum',
                enumName='FK:IK',
                keyable=True,
                defaultValue=1)

    sn = scriptNode(scriptType=2,
                    sourceType='python',
                    beforeScript=';'.join([
                        'import pymel.core.nodetypes as nt',
                        'import %s as x' % __name__,
                        "x.create_fk_ik_sj(%s)" % controls
                    ]),
                    afterScript=';'.join([
                        'import pymel.core.nodetypes as nt',
                        "[c.attr('FkIkMode').delete() for c in %s]" % controls
                    ]),
                    **kwargs)

    # Make the appropriate connections to toggle both visibility and
    # orient constraints.
    rev = shadingNode('reverse', asUtility=True)
    ik['ctrl'].attr('FkIkMode').connect(ik['ctrl'].attr('visibility'))
    fk['ctrl'].attr('FkIkMode').connect(rev.attr('inputX'))
    rev.attr('outputX').connect(fk['ctrl'].attr('visibility'))
    ik['ctrl'].attr('FkIkMode').connect(ik['sj'].attr('visibility'))
    fk['ctrl'].attr('FkIkMode').connect(rev.attr('inputY'))
    rev.attr('outputY').connect(fk['sj'].attr('visibility'))
    for jtype in ('shoulder', 'elbow', 'hand'):
        kwargs = jtype == 'elbow' and dict(skip=('x', 'z')) or {}
        oc = orientConstraint(ik[jtype], fk[jtype], **kwargs)
        ik['ctrl'].attr('FkIkMode').connect( \
         oc.attr(ik[jtype].nodeName() + 'W0'))

    create_fk_ik_sj(controls)
Ejemplo n.º 3
0
 def addAttr( self, **kwargs):
     kwargs['longName'] = self.plugAttr()
     kwargs.pop('ln', None )
     from pymel.core.general import addAttr
     return addAttr( self.node(), **kwargs )
Ejemplo n.º 4
0
Archivo: other.py Proyecto: zewt/pymel
 def addAttr(self, **kwargs):
     kwargs['longName'] = self.plugAttr()
     kwargs.pop('ln', None)
     from pymel.core.general import addAttr
     return addAttr(self.node(), **kwargs)
Ejemplo n.º 5
0
def _sign_the_scene(author):
    if not objExists('defaultLayer.Author'):
        addAttr('defaultLayer', longName='Author', dataType='string')
        setAttr('defaultLayer.Author', author, type='string', lock=True)
Ejemplo n.º 6
0
def _sign_the_scene(author):
	if not objExists('defaultLayer.Author'):
		addAttr('defaultLayer', longName='Author', dataType='string')
		setAttr('defaultLayer.Author', author, type='string', lock=True)