Esempio n. 1
0
    def __init__(self, name='neck', parent=None, *args, **kwargs):

        Profiler.getInstance().push('Construct Neck Component:' + name)
        super(NeckComponentGuide, self).__init__(name, parent, *args, **kwargs)

        # =========
        # Controls
        # =========

        # Guide Controls
        self.neckCtrl = Control('neck', parent=self.ctrlCmpGrp, shape='sphere')
        self.neckCtrl.scalePoints(Vec3(0.5, 0.5, 0.5))
        self.neckMidCtrl = Control('neckMid',
                                   parent=self.ctrlCmpGrp,
                                   shape='sphere')
        self.neckMidCtrl.scalePoints(Vec3(0.5, 0.5, 0.5))
        self.neckEndCtrl = Control('neckEnd',
                                   parent=self.ctrlCmpGrp,
                                   shape='sphere')
        self.neckEndCtrl.scalePoints(Vec3(0.5, 0.5, 0.5))

        self.neckCtrlShape = Control('neck',
                                     parent=self.ctrlCmpGrp,
                                     shape='pin')
        self.neckCtrlShape.rotatePoints(90.0, 0.0, 0.0)
        self.neckCtrlShape.rotatePoints(0.0, 90.0, 0.0)
        self.neckCtrlShape.setColor('orange')
        self.neckMidCtrlShape = Control('neckMid',
                                        parent=self.ctrlCmpGrp,
                                        shape='pin')
        self.neckMidCtrlShape.rotatePoints(90.0, 0.0, 0.0)
        self.neckMidCtrlShape.rotatePoints(0.0, 90.0, 0.0)
        self.neckMidCtrlShape.setColor('orange')

        # Guide Operator
        self.neckGuideKLOp = KLOperator(name + 'GuideKLOp', 'NeckGuideSolver',
                                        'Kraken')
        self.addOperator(self.neckGuideKLOp)

        # Add Att Inputs
        self.neckGuideKLOp.setInput('drawDebug', self.drawDebugInputAttr)
        self.neckGuideKLOp.setInput('rigScale', self.rigScaleInputAttr)

        # Add Source Inputs
        self.neckGuideKLOp.setInput(
            'sources', [self.neckCtrl, self.neckMidCtrl, self.neckEndCtrl])

        # Add Target Outputs
        self.neckGuideKLOp.setOutput(
            'targets', [self.neckCtrlShape, self.neckMidCtrlShape])

        # Calculate default values
        neckVec = Vec3(0.0, 16.00, -0.75)
        neckMidVec = Vec3(0.0, 16.50, -0.50)
        neckEndVec = Vec3(0.0, 17.00, -0.25)
        upVector = Vec3(0.0, 0.0, -1.0)

        neckOri = Quat()
        neckOri.setFromDirectionAndUpvector(
            (neckMidVec - neckVec).unit(),
            ((neckVec + upVector) - neckVec).unit())

        neckMidOri = Quat()
        neckMidOri.setFromDirectionAndUpvector(
            (neckEndVec - neckMidVec).unit(),
            ((neckMidVec + upVector) - neckMidVec).unit())

        self.default_data = {
            "name": name,
            "location": "M",
            "neckXfo": Xfo(tr=neckVec, ori=neckOri),
            "neckMidXfo": Xfo(tr=neckMidVec, ori=neckMidOri),
            "neckEndXfo": Xfo(tr=neckEndVec, ori=neckMidOri),
            "neckCrvData": self.neckCtrlShape.getCurveData(),
            "neckMidCrvData": self.neckMidCtrlShape.getCurveData()
        }

        self.loadData(self.default_data)

        Profiler.getInstance().pop()
Esempio n. 2
0
    def __init__(self, name='neck', parent=None, *args, **kwargs):

        Profiler.getInstance().push('Construct Neck Component:' + name)
        super(NeckComponentGuide, self).__init__(name, parent, *args, **kwargs)

        # =========
        # Controls
        # =========

        # Guide Controls
        self.neckCtrl = Control('neck', parent=self.ctrlCmpGrp, shape='sphere')
        self.neckCtrl.scalePoints(Vec3(0.5, 0.5, 0.5))
        self.neckMidCtrl = Control('neckMid', parent=self.ctrlCmpGrp, shape='sphere')
        self.neckMidCtrl.scalePoints(Vec3(0.5, 0.5, 0.5))
        self.neckEndCtrl = Control('neckEnd', parent=self.ctrlCmpGrp, shape='sphere')
        self.neckEndCtrl.scalePoints(Vec3(0.5, 0.5, 0.5))

        self.neckCtrlShape = Control('neck', parent=self.ctrlCmpGrp, shape='pin')
        self.neckCtrlShape.rotatePoints(90.0, 0.0, 0.0)
        self.neckCtrlShape.rotatePoints(0.0, 90.0, 0.0)
        self.neckCtrlShape.setColor('orange')
        self.neckMidCtrlShape = Control('neckMid', parent=self.ctrlCmpGrp, shape='pin')
        self.neckMidCtrlShape.rotatePoints(90.0, 0.0, 0.0)
        self.neckMidCtrlShape.rotatePoints(0.0, 90.0, 0.0)
        self.neckMidCtrlShape.setColor('orange')

        # Guide Operator
        self.neckGuideKLOp = KLOperator(name + 'GuideKLOp', 'NeckGuideSolver', 'Kraken')
        self.addOperator(self.neckGuideKLOp)

        # Add Att Inputs
        self.neckGuideKLOp.setInput('drawDebug', self.drawDebugInputAttr)
        self.neckGuideKLOp.setInput('rigScale', self.rigScaleInputAttr)

        # Add Source Inputs
        self.neckGuideKLOp.setInput('sources', [self.neckCtrl, self.neckMidCtrl, self.neckEndCtrl])

        # Add Target Outputs
        self.neckGuideKLOp.setOutput('targets', [self.neckCtrlShape, self.neckMidCtrlShape])


        # Calculate default values
        neckVec = Vec3(0.0, 16.00, -0.75)
        neckMidVec = Vec3(0.0, 16.50, -0.50)
        neckEndVec = Vec3(0.0, 17.00, -0.25)
        upVector = Vec3(0.0, 0.0, -1.0)

        neckOri = Quat()
        neckOri.setFromDirectionAndUpvector((neckMidVec - neckVec).unit(),
                                            ((neckVec + upVector) - neckVec).unit())

        neckMidOri = Quat()
        neckMidOri.setFromDirectionAndUpvector((neckEndVec - neckMidVec).unit(),
                                               ((neckMidVec + upVector) - neckMidVec).unit())

        self.default_data = {
            "name": name,
            "location": "M",
            "neckXfo": Xfo(tr=neckVec, ori=neckOri),
            "neckMidXfo": Xfo(tr=neckMidVec, ori=neckMidOri),
            "neckEndXfo": Xfo(tr=neckEndVec, ori=neckMidOri),
            "neckCrvData": self.neckCtrlShape.getCurveData(),
            "neckMidCrvData": self.neckMidCtrlShape.getCurveData()
        }

        self.loadData(self.default_data)

        Profiler.getInstance().pop()