예제 #1
0
    def getMotion(self):
        motions = self.Motions.getValue()

        blend = Piavca.MultiBlend()
        print motions
        tangentSpaces = Piavca.TangentSpace_calculateTangentSpacesFromMotionAverages(
            motions)
        mots = []
        pca = PCA()
        for mot in motions:
            lm = Piavca.LogMapMotion(tangentSpaces, mot)
            lm.setName(mot.getName())
            print lm, type(lm)
            mots.append(lm)

        pca.do_analysis(mots, 20)
        pcmots = pca.getPCMotions()

        for m in pcmots:
            blend.addMotion(m)

        em = Piavca.ExpMapMotion(tangentSpaces, blend)
        mask = Piavca.MaskedMotion()
        mask.setMotion(blend)
        mask.addToMask(Piavca.root_position_id)

        override = Piavca.OverrideMotion(mask, em)

        return override
예제 #2
0
파일: Track.py 프로젝트: markmze/Piavca
    def __init__(self, motion, name, joints):
        # name
        self.name = name
        # joint that the track shows
        #self.joints = joints

        # the set of subranges
        self.splits = []
        # last place clicked
        self.latestPoint = None

        print "Adding track for motion", motion

        if joints == None:
            self.motion = motion
            self.masked = 0
            print "self.motion", self.motion
            return

        self.masked = 1

        # a piavca.MaskedMotion that implements playing only
        # the specified joints
        maskedMotion = Piavca.MaskedMotion()
        #self.maskedMotion.setUseSecondary(0)
        maskedMotion.setMotion(motion)
        self.motion = maskedMotion
        for joint in joints:
            print joint
            jointid = Piavca.Core.getCore().getJointId(joint)
            print joint, jointid
            maskedMotion.addToMask(jointid)
        print "IIself.motion", self.motion
예제 #3
0
    def getMotion(self):
        motions = self.Motions.getValue()

        blend = Piavca.MultiBlend()
        print motions
        tangentSpaces = Piavca.TangentSpace_calculateTangentSpacesFromMotionAverages(
            motions)
        for mot in motions:
            lm = Piavca.LogMapMotion(tangentSpaces, mot)
            lm.setName(mot.getName())
            print lm, type(lm)
            blend.addMotion(lm)
        em = Piavca.ExpMapMotion(tangentSpaces, blend)
        mask = Piavca.MaskedMotion()
        mask.setMotion(blend)
        mask.addToMask(Piavca.root_position_id)

        override = Piavca.OverrideMotion(mask, em)

        return override