Exemple #1
0
    def stampDeltas(self):
        try:
            cmds.undoInfo(openChunk=True)
            bb = self.blendBoard
            if bb:
                #build attr
                if not utils.attrExists(bb + '.initialPoseDict'):
                    cmds.addAttr(bb, longName='initialPoseDict', dt='string')
                    cmds.setAttr(bb + '.initialPoseDict', '{}', type='string')

                initialPoseDict={}

                drivenDict = self.readDrivenDict(bb)
                for drivingAttr in drivenDict:
                    attrDict = {}
                    for driven in drivenDict[drivingAttr]:
                        cmds.setAttr(drivingAttr, 1.0)
                        attrDict[driven] = cmds.getAttr(driven)
                    initialPoseDict[drivingAttr] = attrDict
                    cmds.setAttr(drivingAttr, 0.0)

                cmds.setAttr(bb + '.initialPoseDict', json.dumps(initialPoseDict), type='string')

            else:
                cmds.warning('No blendBoard/poses found!')
        except Exception as e:
            print(traceback.format_exc())
            cmds.undoInfo(closeChunk=True)
Exemple #2
0
 def readDrivenDict(self, node):
     if utils.attrExists(node + '.drivenDict'):
         dict = cmds.getAttr(node + '.drivenDict')
         if dict:
             return json.loads(dict)
     else:
         cmds.warning('No drivenDict found on object: ' + node)
         return {}
Exemple #3
0
 def connectControlBoard(self, controlBoard):
     bb = self.blendBoard
     utils.msgConnect(self.node + '.controlBoard', controlBoard + '.faceModule')
     if bb:
         for attr in cmds.listAttr(bb, k=1):
             bbAttr = bb + '.' + attr
             if cmds.listConnections(bbAttr):
                 cbAttr = controlBoard + '.' + attr
                 if utils.attrExists(cbAttr):
                     cmds.connectAttr(cbAttr, bbAttr, f=1)
Exemple #4
0
 def updateConstraints(self, node):
     '''
     This is basically made for the method 'snapEyeSdkPivots' below.
     It is a general function, except the part where is pops the sdkNode connection.
     '''
     parent = cmds.listRelatives(node, parent=1)[0]
     listConnectionsSucks = cmds.listConnections(parent, type='parentConstraint')
     if listConnectionsSucks:
         for const in set(listConnectionsSucks):
             conns = list(set(cmds.listConnections(const, type='transform')))
             conns.pop(conns.index(const))
             conns.pop(conns.index(parent))
             if utils.attrExists(const + '.sdkNode'):
                 conns.pop(conns.index(cmds.listConnections(const + '.sdkNode')[0]))
             if len(conns) == 1:
                 cmds.parentConstraint(conns[0], parent, e=1, mo=1)
Exemple #5
0
    def active(self, mode):
        if not utils.attrExists(self.node + '.active'):
            cmds.addAttr(self.node, longName='active', at='bool')
        cmds.setAttr(self.node+'.active', mode)

        self.toggleMaskActive(mode)