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
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
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