Esempio n. 1
0
def getTransposedVector(v, position0, position1, inverse=False):

    v0 = XSIMath.CreateVector3()
    v0.Sub(position0[1], position0[0])
    v0.NormalizeInPlace()

    v1 = XSIMath.CreateVector3()
    v1.Sub(position1[1], position1[0])
    v1.NormalizeInPlace()

    ra = v0.Angle(v1)

    if inverse:
        ra = -ra

    axis = XSIMath.CreateVector3()
    #axis.Cross(v, v0)
    axis.Cross(v0, v1)

    r = XSIMath.CreateRotation()
    r.SetFromAxisAngle(axis, ra)

    vector = XSIMath.CreateVector3()
    vector.MulByRotation(v, r)

    # Check if the rotation has been set in the right order
    ra2 = (math.pi * .5) - v1.Angle(vector)
    r.SetFromAxisAngle(axis, -ra2)
    vector.MulByRotationInPlace(r)

    return vector
Esempio n. 2
0
File: log.py Progetto: jeanim/gear
def logMatrix3AsAngles(m, msg="matrix3"):

    r = XSIMath.CreateRotation()
    r.SetFromMatrix3(m)
    v = r.XYZAngles

    logVector(v, msg)
Esempio n. 3
0
def getRotationFromAxis(in_a, in_b, axis="xy", negate=False):

    a = XSIMath.CreateVector3(in_a.X, in_a.Y, in_a.Z)
    b = XSIMath.CreateVector3(in_b.X, in_b.Y, in_b.Z)
    c = XSIMath.CreateVector3()

    x = XSIMath.CreateVector3()
    y = XSIMath.CreateVector3()
    z = XSIMath.CreateVector3()

    if negate:
        a.NegateInPlace()

    a.NormalizeInPlace()
    c.Cross(a, b)
    c.NormalizeInPlace()
    b.Cross(c, a)
    b.NormalizeInPlace()

    if axis == "xy":
        x = a
        y = b
        z = c
    elif axis == "xz":
        x = a
        z = b
        y.Negate(c)
    elif axis == "yx":
        y = a
        x = b
        z.Negate(c)
    elif axis == "yz":
        y = a
        z = b
        x = c
    elif axis == "zx":
        z = a
        x = b
        y = c
    elif axis == "zy":
        z = a
        y = b
        x.Negate(c)
    else:
        gear.log("Invalid Input", gear.sev_error)
        return

    r = XSIMath.CreateRotation()
    r.SetFromXYZAxes(x, y, z)

    return r
Esempio n. 4
0
def addNullsFromPositions(parent,
                          name,
                          positions,
                          rot_offset=XSIMath.CreateRotation(),
                          size=1,
                          color=[0, 0, 0]):
    # Name
    if "#" in name:
        name = name.replace("#", "%s")
    else:
        name += "%s"

    nullList = []
    i = 0
    for x in positions:
        t = tra.getTransformFromPosition(x)
        t.SetRotation(rot_offset)
        #t = tra.getTransformLookingAt(x, lookat, normal, axis, negate)

        null = addNull(parent, name % i, t, size, color)
        nullList.append(null)
        i += 1
    return nullList
Esempio n. 5
0
    def addObjects(self):

        self.div_count = len(self.guide.apos) - 5

        plane = [self.guide.apos[0], self.guide.apos[-4], self.guide.apos[-3]]
        self.normal = self.getNormalFromPos(plane)
        self.binormal = self.getBiNormalFromPos(plane)

        # Heel ---------------------------------------------
        t = tra.getTransformLookingAt(self.guide.pos["heel"],
                                      self.guide.apos[-4], self.normal, "xz",
                                      self.negate)

        self.heel_loc = pri.addNull(self.root, self.getName("heel_loc"), t,
                                    self.size * .15)
        xsi.SetNeutralPose(self.heel_loc)
        self.addToGroup(self.heel_loc, "hidden")

        self.heel_ctl = self.addCtl(self.heel_loc,
                                    "heel_ctl",
                                    t,
                                    self.color_ik,
                                    "sphere",
                                    w=self.size * .1)
        xsi.SetNeutralPose(self.heel_ctl)
        par.setKeyableParameters(self.heel_ctl, self.r_params)

        # Tip ----------------------------------------------
        v = XSIMath.CreateVector3(self.guide.apos[-5].X, self.guide.apos[-1].Y,
                                  self.guide.apos[-5].Z)
        t.SetTranslation(v)
        self.tip_ctl = self.addCtl(self.heel_ctl,
                                   "tip_ctl",
                                   t,
                                   self.color_ik,
                                   "circle",
                                   w=self.size * .5)
        xsi.SetNeutralPose(self.tip_ctl)
        par.setKeyableParameters(self.heel_ctl, self.r_params)

        # Roll ---------------------------------------------
        if self.settings["roll"] == 0:
            t = tra.getTransformFromPosition(self.guide.pos["root"])
            t.SetRotation(
                tra.getRotationFromAxis(self.y_axis, self.normal, "yz",
                                        self.negate))
            self.roll_ctl = self.addCtl(self.root,
                                        "roll_ctl",
                                        t,
                                        self.color_ik,
                                        "cylinder",
                                        w=self.size * .5,
                                        h=self.size * .5,
                                        ro=XSIMath.CreateRotation(
                                            3.1415 * .5, 0, 0))
            xsi.SetNeutralPose(self.roll_ctl)
            par.setKeyableParameters(self.roll_ctl, ["rotx", "rotz"])

        # Backward Controlers ------------------------------
        bk_pos = self.guide.apos[1:-3]
        bk_pos.reverse()
        parent = self.tip_ctl
        self.bk_ctl = []
        for i, pos in enumerate(bk_pos):

            if i == 0:
                t = self.heel_loc.Kinematics.Global.Transform
                t.SetTranslation(pos)
            else:
                dir = bk_pos[i - 1]
                t = tra.getTransformLookingAt(pos, dir, self.normal, "xz",
                                              self.negate)

            bk_ctl = self.addCtl(parent,
                                 "bk%s_ctl" % i,
                                 t,
                                 self.color_ik,
                                 "sphere",
                                 w=self.size * .15)
            xsi.SetNeutralPose(bk_ctl)
            par.setKeyableParameters(bk_ctl, self.r_params)

            self.bk_ctl.append(bk_ctl)
            parent = bk_ctl

        # Forward Controlers ------------------------------
        self.fk_ref = pri.addNullFromPos(self.bk_ctl[-1],
                                         self.getName("fk_ref"),
                                         self.guide.apos[0], self.size * .5)
        self.addToGroup(self.fk_ref, "hidden")

        self.fk_ctl = []
        parent = self.fk_ref
        for i, bk_ctl in enumerate(reversed(self.bk_ctl[1:])):
            t = bk_ctl.Kinematics.Global.Transform
            dist = vec.getDistance(self.guide.apos[i + 1],
                                   self.guide.apos[i + 2])
            fk_ctl = self.addCtl(parent,
                                 "fk%s_ctl" % i,
                                 t,
                                 self.color_fk,
                                 "cube",
                                 w=dist,
                                 h=self.size * .5,
                                 d=self.size * .5,
                                 po=XSIMath.CreateVector3(
                                     dist * .5 * self.n_factor, 0, 0))
            xsi.SetNeutralPose(fk_ctl)
            par.setKeyableParameters(fk_ctl)
            self.addShadow(fk_ctl, i)

            parent = fk_ctl
            self.fk_ctl.append(fk_ctl)
Esempio n. 6
0
    def addObjects(self):

        self.normal = self.getNormalFromPos(self.guide.apos)

        self.length0 = vec.getDistance(self.guide.apos[0], self.guide.apos[1])
        self.length1 = vec.getDistance(self.guide.apos[1], self.guide.apos[2])
        self.length2 = vec.getDistance(self.guide.apos[2], self.guide.apos[3])

        # FK Controlers ------------------------------------
        t = tra.getTransformLookingAt(self.guide.apos[0], self.guide.apos[1], self.normal, "xz", self.negate)
        self.fk0_ctl = self.addCtl(self.root, "fk0_ctl", t, self.color_fk, "circle", w=self.size*.1, po=XSIMath.CreateVector3(.5*self.n_factor,0,0), ro=XSIMath.CreateRotation(0,0,3.1415*.5))
        xsi.SetNeutralPose(self.fk0_ctl)
        par.setKeyableParameters(self.fk0_ctl)
        par.addLocalParamToCollection(self.inv_params, self.fk0_ctl, ["posx", "posy", "posz"])

        t = tra.getTransformLookingAt(self.guide.apos[1], self.guide.apos[2], self.normal, "xz", self.negate)
        self.fk1_ctl = self.addCtl(self.fk0_ctl, "fk1_ctl", t, self.color_fk, "circle", w=self.size*.1, po=XSIMath.CreateVector3(.5*self.n_factor,0,0), ro=XSIMath.CreateRotation(0,0,3.1415*.5))
        xsi.SetNeutralPose(self.fk1_ctl, c.siST)
        par.setKeyableParameters(self.fk1_ctl)
        par.addLocalParamToCollection(self.inv_params, self.fk1_ctl, ["posx", "posy", "posz"])

        t = tra.getTransformLookingAt(self.guide.apos[2], self.guide.apos[3], self.normal, "xz", self.negate)
        self.fk2_ctl = self.addCtl(self.fk1_ctl, "fk2_ctl", t, self.color_fk, "circle", w=self.size*.1, ro=XSIMath.CreateRotation(0,0,3.1415*.5))
        xsi.SetNeutralPose(self.fk2_ctl, c.siST)
        par.setKeyableParameters(self.fk2_ctl)
        par.addLocalParamToCollection(self.inv_params, self.fk2_ctl, ["posx", "posy", "posz"])

        # IK Controlers ------------------------------------
        self.ik_cns = pri.addNullFromPos(self.root, self.getName("ik_cns"), self.guide.apos[2], self.size*.02)
        self.addToGroup(self.ik_cns, "hidden")

        self.ikcns_ctl = self.addCtl(self.ik_cns, "ikcns_ctl", self.ik_cns.Kinematics.Global.Transform, self.color_ik, "null", h=self.size*.2)
        par.setKeyableParameters(self.ikcns_ctl)
        par.addLocalParamToCollection(self.inv_params, self.ikcns_ctl, ["posx", "rotx", "rotz"])

        t = tra.getTransformLookingAt(self.guide.apos[2], self.guide.apos[3], self.x_axis, "zx", False)
        self.ik_ctl = self.addCtl(self.ikcns_ctl, "ik_ctl", t, self.color_ik, "circle", w=self.size*.2)
        self.addToCtlGroup(self.ik_ctl)
        par.setKeyableParameters(self.ik_ctl)
        par.addLocalParamToCollection(self.inv_params, self.ik_ctl, ["posx"])

        v = XSIMath.CreateVector3()
        v.Sub(self.guide.apos[2], self.guide.apos[0])
        v.Cross(self.normal, v)
        v.NormalizeInPlace()
        v.ScaleInPlace(self.size*.5)
        v.AddInPlace(self.guide.apos[1])
        self.upv_cns = pri.addNullFromPos(self.root, self.getName("upv_cns"), v, self.size*.02)
        self.addToGroup(self.upv_cns, "hidden")

        self.upv_ctl = self.addCtl(self.upv_cns, "upv_ctl", self.upv_cns.Kinematics.Global.Transform, self.color_ik, "diamond", w=self.size*.05)
        par.setKeyableParameters(self.upv_ctl, self.t_params)
        par.addLocalParamToCollection(self.inv_params, self.upv_ctl, ["posx"])

        self.ik_ref = pri.addNull(self.ik_ctl, self.getName("ik_ref"), self.ik_ctl.Kinematics.Global.Transform, self.size * .1)
        self.addToGroup(self.ik_ref, "hidden")

        # Chain --------------------------------------------
        self.chain = pri.add2DChain(self.root, self.getName(""), self.guide.apos[:-1], self.normal, self.negate, 1, False)
        self.ctrn_loc = pri.addNullFromPos(self.chain.bones[0], self.getName("ctrn_loc"), self.guide.pos["knee"], self.size*.1)
        self.addToGroup(self.chain.all, "hidden")
        self.addToGroup(self.ctrn_loc, "hidden")

        # leash
        self.leash_crv = cur.addCnsCurve(self.root, self.getName("leash_crv"), [self.chain.bones[1], self.upv_ctl], False, 1)
        self.addToGroup(self.leash_crv, "unselectable")

        # shadows
        self.settings["division0"] = 4
        self.settings["division1"] = 4

        self.div0_loc = []
        for i in range(self.settings["division0"]):
            d = min(i/(self.settings["division0"]-1.0), 1-(.5/(self.settings["division0"]-1.0)))

            t = self.chain.bones[0].Kinematics.Global.Transform
            t.SetTranslation(vec.linearlyInterpolate(self.guide.pos["root"], self.guide.pos["knee"], d))
            div_loc = pri.addNull(self.chain.bones[0], self.getName("div%s_loc"%(i)), t, self.size*.05)
            self.addShadow(div_loc, i)
            self.div0_loc.append(div_loc)

        self.addShadow(self.ctrn_loc, self.settings["division0"])

        self.div_loc = []
        for i in range(self.settings["division1"]):
            d = max(i/(self.settings["division1"]-1.0), .5/(self.settings["division1"]-1.0))

            t = self.chain.bones[1].Kinematics.Global.Transform
            t.SetTranslation(vec.linearlyInterpolate(self.guide.pos["knee"], self.guide.pos["ankle"], d))
            div_loc = pri.addNull(self.chain.bones[1], self.getName("div%s_loc"%(i+self.settings["division0"]+1)), t, self.size*.05)
            self.addShadow(div_loc, i+self.settings["division0"]+1)
            self.div_loc.append(div_loc)

        self.addToGroup(self.div0_loc, "hidden")
        self.addToGroup(self.div_loc, "hidden")

        # Hook ----------------------------------------------
        t = self.chain.bones[1].Kinematics.Global.Transform
        t.SetTranslation(self.guide.pos["ankle"])
        self.end_ref = pri.addNull(self.chain.bones[1], self.getName("end_ref"), t, self.size * .1)
        self.addToGroup(self.end_ref, "hidden")

        self.addShadow(self.end_ref, "end")
Esempio n. 7
0
 def addObjects(self):
 
     # Jaw objects
     self.jawRotCenter = pri.addNullFromPos(self.root, self.getName("jaw_rot_center"), self.guide.apos[2], self.size*.02)
     self.jawTrans = pri.addNullFromPos(self.jawRotCenter, self.getName("jaw_translation"), self.guide.apos[0], self.size*.02)
     self.jawRotBase = pri.addNullFromPos(self.jawTrans, self.getName("jaw_rot_base"), self.guide.apos[0], self.size*.02)
     
     self.addToGroup(self.jawRotCenter, "hidden")
     self.addToGroup(self.jawTrans, "hidden")
     self.addToGroup(self.jawRotBase, "hidden")
     
     self.addShadow(self.jawRotBase, "jaw")
     
     plane = [self.guide.apos[0], self.guide.apos[1], self.guide.apos[2]]
     self.normal = self.getNormalFromPos(plane)
     
     
     
     self.jawContLvl = pri.addNullFromPos(self.root, self.getName("jaw_ctl_Level"), self.guide.apos[1], self.size*.02)
     t = self.jawContLvl.Kinematics.Global.Transform
     self.oAngle = XSIMath.DegreesToRadians( 90)
     self.tmpRot = XSIMath.CreateRotation(self.oAngle, 0.0, 0.0)    
     self.jawControl = self.addCtl(self.jawContLvl, "jaw_ctl", t, self.color_fk,  "circle", w=self.size*.5, ro = self.tmpRot)
     
     self.addToGroup(self.jawContLvl, "hidden")
     
     #Neutral posing
     
     xsi.SetNeutralPose(self.jawRotCenter, c.siSRT)
     xsi.SetNeutralPose(self.jawTrans, c.siSRT)
     
     
     #teeth Objects
     
     plane = [self.guide.pos["root"], self.guide.pos["lip01"], self.guide.pos["tongueB"]]
     self.normal = self.getNormalFromPos(plane)
     self.binormal = self.getBiNormalFromPos(plane)
     
     
     t = tra.getTransformLookingAt(self.guide.pos["teethT"], self.guide.pos["teethB"], self.normal, "zx", 1)        
     self.teeth_lvl = pri.addNull(self.root, self.getName("teeth_lvl"), t)
     self.teeth_lvl.Parameters("primary_icon").Value = 1
     self.teethHead = pri.addNull(self.root, self.getName("teethHead"), t)
     self.teethJaw = pri.addNull(self.jawRotBase, self.getName("teethJaw"), t)
     self.upTeethControl = self.addCtl(self.teeth_lvl, "upTeeth_ctl", t, self.color_fk,  "circle", w=self.size*.2)
     self.downTeethControl = self.addCtl(self.teethJaw, "downTeeth_ctl", t, self.color_fk,  "circle", w=self.size*.2)
     
     self.addToGroup(self.teeth_lvl, "hidden")
     self.addToGroup(self.teethHead, "hidden")
     self.addToGroup(self.teethJaw, "hidden")
     self.addShadow(self.upTeethControl, "upTeeth")
     self.addShadow(self.downTeethControl, "lowTeeth")
     
     
     
     #Lips Objects
     t = tra.getTransformLookingAt(self.guide.pos["teethT"], self.guide.pos["teethB"], self.normal, "zx", 1)        
     self.upLips_lvl = pri.addNull(self.root, self.getName("upLips_lvl"), t)
     self.upLips_lvl.Parameters("primary_icon").Value = 4
     self.upLips_loc = pri.addNull(self.upLips_lvl, self.getName("upLips_loc"), t)
     self.upLipsHead = pri.addNull(self.root, self.getName("upLipsHead"), t)
     self.upLipsJaw = pri.addNull(self.jawRotBase, self.getName("upLipsJaw"), t)
     self.lowLipsJaw_lvl = pri.addNull(self.jawRotBase, self.getName("lowLipsJaw_lvl"), t)
     self.lowLipsJaw = pri.addNull(self.lowLipsJaw_lvl, self.getName("lowLipsJaw"), t)
     
     self.addToGroup(self.upLips_lvl, "hidden")
     self.addToGroup(self.upLipsHead, "hidden")
     self.addToGroup(self.upLipsJaw, "hidden")
     self.addToGroup(self.lowLipsJaw_lvl, "hidden")
     self.addToGroup(self.lowLipsJaw, "hidden")
     self.addToGroup(self.upLips_loc, "hidden")
     
     
     #upper lips
     t = tra.getTransformFromPosition(self.guide.pos["lip01"])
     self.uLip01Upper_ref = pri.addNull(self.upLips_loc, self.getName("uLip01Upper_loc"), t, self.size * .01)
     self.uLip01Lower_ref = pri.addNull(self.lowLipsJaw, self.getName("uLip01Lower_loc"), t, self.size * .01)
     self.uLip01_lvl = pri.addNull(self.root, self.getName("uLip01_lvl"), t, self.size * .01)
     self.uLip01_ctl = self.addCtl(self.uLip01_lvl, "uLip01_ctl", t, self.color_fk,  "cube", w=self.size*.02, h = self.size*.02, d = self.size*.02 )
     self.addToGroup(self.uLip01_lvl, "hidden")
     self.addToGroup(self.uLip01Upper_ref, "hidden")
     self.addToGroup(self.uLip01Lower_ref, "hidden")
     self.addShadow(self.uLip01_ctl, "uLip01")
     
     
     t = tra.getTransformFromPosition(self.guide.pos["lip02"])
     self.uLip02Upper_ref = pri.addNull(self.upLips_loc, self.getName("uLip02Upper_loc"), t, self.size * .01)
     self.uLip02Lower_ref = pri.addNull(self.lowLipsJaw, self.getName("uLip02Lower_loc"), t, self.size * .01)
     self.uLip02_lvl = pri.addNull(self.root, self.getName("uLip02_lvl"), t, self.size * .01)
     self.uLip02_ctl = self.addCtl(self.uLip02_lvl, "uLip02_ctl", t, self.color_fk,  "cube", w=self.size*.02, h = self.size*.02, d = self.size*.02 )
     self.addToGroup(self.uLip02_lvl, "hidden")
     self.addToGroup(self.uLip02Upper_ref, "hidden")
     self.addToGroup(self.uLip02Lower_ref, "hidden")
     self.addShadow(self.uLip02_ctl, "uLip02")
     
     t = tra.getTransformFromPosition(self.guide.pos["lip03"])
     self.uLip03Upper_ref = pri.addNull(self.upLips_loc, self.getName("uLip03Upper_loc"), t, self.size * .01)
     self.uLip03Lower_ref = pri.addNull(self.lowLipsJaw, self.getName("uLip03Lower_loc"), t, self.size * .01)
     self.uLip03_lvl = pri.addNull(self.root, self.getName("uLip03_lvl"), t, self.size * .01)
     self.uLip03_ctl = self.addCtl(self.uLip03_lvl, "uLip03_ctl", t, self.color_fk,  "cube", w=self.size*.02, h = self.size*.02, d = self.size*.02 )
     self.addToGroup(self.uLip03_lvl, "hidden")
     self.addToGroup(self.uLip03Upper_ref, "hidden")
     self.addToGroup(self.uLip03Lower_ref, "hidden")
     self.addShadow(self.uLip03_ctl, "uLip03")
     
     t = tra.getTransformFromPosition(self.guide.pos["lip11"])
     self.uLip11Upper_ref = pri.addNull(self.upLips_loc, self.getName("uLip11Upper_loc"), t, self.size * .01)
     self.uLip11Lower_ref = pri.addNull(self.lowLipsJaw, self.getName("uLip11Lower_loc"), t, self.size * .01)
     self.uLip11_lvl = pri.addNull(self.root, self.getName("uLip11_lvl"), t, self.size * .01)
     self.uLip11_ctl = self.addCtl(self.uLip11_lvl, "uLip11_ctl", t, self.color_fk,  "cube", w=self.size*.02, h = self.size*.02, d = self.size*.02 )
     self.addToGroup(self.uLip11_lvl, "hidden")
     self.addToGroup(self.uLip11Upper_ref, "hidden")
     self.addToGroup(self.uLip11Lower_ref, "hidden")
     self.addShadow(self.uLip11_ctl, "uLip11")
     
     t = tra.getTransformFromPosition(self.guide.pos["lip12"])
     self.uLip12Upper_ref = pri.addNull(self.upLips_loc, self.getName("uLip12Upper_loc"), t, self.size * .01)
     self.uLip12Lower_ref = pri.addNull(self.lowLipsJaw, self.getName("uLip12Lower_loc"), t, self.size * .01)
     self.uLip12_lvl = pri.addNull(self.root, self.getName("uLip12_lvl"), t, self.size * .01)
     self.uLip12_ctl = self.addCtl(self.uLip12_lvl, "uLip12_ctl", t, self.color_fk,  "cube", w=self.size*.02, h = self.size*.02, d = self.size*.02 )
     self.addToGroup(self.uLip12_lvl, "hidden")
     self.addToGroup(self.uLip12Upper_ref, "hidden")
     self.addToGroup(self.uLip12Lower_ref, "hidden")
     self.addShadow(self.uLip12_ctl, "uLip12")
     
     
     
     
     #lower Lips
     
     t = tra.getTransformFromPosition(self.guide.pos["lip05"])
     self.lLip05Upper_ref = pri.addNull(self.upLips_loc, self.getName("lLip05Upper_loc"), t, self.size * .01)
     self.lLip05Lower_ref = pri.addNull(self.lowLipsJaw, self.getName("lLip05Lower_loc"), t, self.size * .01)
     self.lLip05_lvl = pri.addNull(self.root, self.getName("lLip05_lvl"), t, self.size * .01)
     self.lLip05_ctl = self.addCtl(self.lLip05_lvl, "lLip05_ctl", t, self.color_fk,  "cube", w=self.size*.02, h = self.size*.02, d = self.size*.02 )
     self.addToGroup(self.lLip05_lvl, "hidden")
     self.addToGroup(self.lLip05Upper_ref, "hidden")
     self.addToGroup(self.lLip05Lower_ref, "hidden")
     self.addShadow(self.lLip05_ctl, "lLip05")
     
     t = tra.getTransformFromPosition(self.guide.pos["lip06"])
     self.lLip06Upper_ref = pri.addNull(self.upLips_loc, self.getName("lLip06Upper_loc"), t, self.size * .01)
     self.lLip06Lower_ref = pri.addNull(self.lowLipsJaw, self.getName("lLip06Lower_loc"), t, self.size * .01)
     self.lLip06_lvl = pri.addNull(self.root, self.getName("lLip06_lvl"), t, self.size * .01)
     self.lLip06_ctl = self.addCtl(self.lLip06_lvl, "lLip06_ctl", t, self.color_fk,  "cube", w=self.size*.02, h = self.size*.02, d = self.size*.02 )
     self.addToGroup(self.lLip06_lvl, "hidden")
     self.addToGroup(self.lLip06Upper_ref, "hidden")
     self.addToGroup(self.lLip06Lower_ref, "hidden")
     self.addShadow(self.lLip06_ctl, "lLip06")
     
     t = tra.getTransformFromPosition(self.guide.pos["lip07"])
     self.lLip07Upper_ref = pri.addNull(self.upLips_loc, self.getName("lLip07Upper_loc"), t, self.size * .01)
     self.lLip07Lower_ref = pri.addNull(self.lowLipsJaw, self.getName("lLip07Lower_loc"), t, self.size * .01)
     self.lLip07_lvl = pri.addNull(self.root, self.getName("lLip07_lvl"), t, self.size * .01)
     self.lLip07_ctl = self.addCtl(self.lLip07_lvl, "lLip07_ctl", t, self.color_fk,  "cube", w=self.size*.02, h = self.size*.02, d = self.size*.02 )
     self.addToGroup(self.lLip07_lvl, "hidden")
     self.addToGroup(self.lLip07Upper_ref, "hidden")
     self.addToGroup(self.lLip07Lower_ref, "hidden")
     self.addShadow(self.lLip07_ctl, "lLip07")
     
     t = tra.getTransformFromPosition(self.guide.pos["lip08"])
     self.lLip08Upper_ref = pri.addNull(self.upLips_loc, self.getName("lLip08Upper_loc"), t, self.size * .01)
     self.lLip08Lower_ref = pri.addNull(self.lowLipsJaw, self.getName("lLip08Lower_loc"), t, self.size * .01)
     self.lLip08_lvl = pri.addNull(self.root, self.getName("lLip08_lvl"), t, self.size * .01)
     self.lLip08_ctl = self.addCtl(self.lLip08_lvl, "lLip08_ctl", t, self.color_fk,  "cube", w=self.size*.02, h = self.size*.02, d = self.size*.02 )
     self.addToGroup(self.lLip08_lvl, "hidden")
     self.addToGroup(self.lLip08Upper_ref, "hidden")
     self.addToGroup(self.lLip08Lower_ref, "hidden")
     self.addShadow(self.lLip08_ctl, "lLip08")
     
     t = tra.getTransformFromPosition(self.guide.pos["lip09"])
     self.lLip09Upper_ref = pri.addNull(self.upLips_loc, self.getName("lLip09Upper_loc"), t, self.size * .01)
     self.lLip09Lower_ref = pri.addNull(self.lowLipsJaw, self.getName("lLip09Lower_loc"), t, self.size * .01)
     self.lLip09_lvl = pri.addNull(self.root, self.getName("lLip09_lvl"), t, self.size * .01)
     self.lLip09_ctl = self.addCtl(self.lLip09_lvl, "lLip09_ctl", t, self.color_fk,  "cube", w=self.size*.02, h = self.size*.02, d = self.size*.02 )
     self.addToGroup(self.lLip09_lvl, "hidden")
     self.addToGroup(self.lLip09Upper_ref, "hidden")
     self.addToGroup(self.lLip09Lower_ref, "hidden")
     self.addShadow(self.lLip09_ctl, "lLip09")
    
     
     
     #Corner lips
     
     t = tra.getTransformLookingAt(self.guide.pos["lip04"], self.guide.pos["lipL"], self.normal, "zx", 1)
     self.lLip04Upper_ref = pri.addNull(self.upLips_loc, self.getName("LLip04Upper_loc"), t, self.size * .01)
     self.lLip04Lower_ref = pri.addNull(self.lowLipsJaw, self.getName("LLip04Lower_loc"), t, self.size * .01)
     self.cLip04_lvl = pri.addNull(self.root, self.getName("cLip04_lvl"), t, self.size * .05)
     self.cLip04_ctl = self.addCtl(self.cLip04_lvl, "LLip04_ctl", t, self.color_fk,  "cube", w=self.size*.02, h = self.size*.02, d = self.size*.02 )
     self.addToGroup(self.cLip04_lvl, "hidden")
     self.addToGroup(self.lLip04Upper_ref, "hidden")
     self.addToGroup(self.lLip04Lower_ref, "hidden")
     self.addShadow(self.cLip04_ctl, "cLip04")
     
     
     t = tra.getTransformLookingAt(self.guide.pos["lip10"], self.guide.pos["lipR"], self.normal, "zx", 1) 
     self.lLip10Upper_ref = pri.addNull(self.upLips_loc, self.getName("RLip10Upper_loc"), t, self.size * .01)
     self.lLip10Lower_ref = pri.addNull(self.lowLipsJaw, self.getName("RLip10Lower_loc"), t, self.size * .01)
     self.cLip10_lvl = pri.addNull(self.root, self.getName("cLip10_lvl"), t, self.size * .05)
     self.cLip10_ctl = self.addCtl(self.cLip10_lvl, "RLip10_ctl", t, self.color_fk,  "cube", w=self.size*.02, h = self.size*.02, d = self.size*.02 )
     self.addToGroup(self.cLip10_lvl, "hidden")
     self.addToGroup(self.lLip10Upper_ref, "hidden")
     self.addToGroup(self.lLip10Lower_ref, "hidden")
     self.addShadow(self.cLip10_ctl, "cLip10")
     
     
     #Tongue
     
     self.oAngle = XSIMath.DegreesToRadians( 90)
     self.tmpRot = XSIMath.CreateRotation(0.0, 0.0, self.oAngle)    
     
     t = tra.getTransformLookingAt(self.guide.pos["tongueB"], self.guide.pos["tongueBM"], self.normal, "zx", 0) 
     self.tongue01_ctl = self.addCtl(self.teethJaw, "tongue01_ctl", t, self.color_fk,  "square", w=self.size*.1, d=self.size*.01, ro=self.tmpRot)
     self.tongue01 = pri.addNull(self.tongue01_ctl, self.getName("tongue01"), t, self.size * .05) 
     self.addShadow(self.tongue01_ctl, "tongue01")
     xsi.SetNeutralPose(self.tongue01_ctl, c.siSRT)
     self.addToGroup(self.tongue01, "hidden")
       
     t = tra.getTransformLookingAt(self.guide.pos["tongueBM"], self.guide.pos["tongueC"], self.normal, "zx", 0)
     self.tongue02_ctl = self.addCtl(self.tongue01, "tongue02_ctl", t, self.color_fk,  "square", w=self.size*.1, d=self.size*.01, ro=self.tmpRot)        
     self.tongue02 = pri.addNull(self.tongue02_ctl, self.getName("tongue02"), t, self.size * .05)
     self.addShadow(self.tongue02_ctl, "tongue02")
     xsi.SetNeutralPose(self.tongue02_ctl, c.siSRT)
     self.addToGroup(self.tongue02, "hidden")
     
     t = tra.getTransformLookingAt(self.guide.pos["tongueC"], self.guide.pos["tongueTM"], self.normal, "zx", 0)
     self.tongue03_ctl = self.addCtl(self.tongue02, "tongue03_ctl", t, self.color_fk,  "square", w=self.size*.1, d=self.size*.01, ro=self.tmpRot)
     self.tongue03 = pri.addNull(self.tongue03_ctl, self.getName("tongue03"), t, self.size * .05)
     self.addShadow(self.tongue03_ctl, "tongue03")
     xsi.SetNeutralPose(self.tongue03_ctl, c.siSRT)
     self.addToGroup(self.tongue03, "hidden")
     
     t = tra.getTransformLookingAt(self.guide.pos["tongueTM"], self.guide.pos["tongueT"], self.normal, "zx", 0) 
     self.tongue04_ctl = self.addCtl(self.tongue03, "tongue04_ctl", t, self.color_fk,  "square", w=self.size*.1, d=self.size*.01, ro=self.tmpRot)
     self.tongue04 = pri.addNull(self.tongue04_ctl, self.getName("tongue04"), t, self.size * .05)
     self.addShadow(self.tongue04_ctl, "tongue04")
     xsi.SetNeutralPose(self.tongue04_ctl, c.siSRT)
     self.addToGroup(self.tongue04, "hidden")
     
     t = tra.getTransformLookingAt(self.guide.pos["tongueT"], self.guide.pos["tongueTM"], self.normal, "zx", 1) 
     self.tongue05_ctl = self.addCtl(self.tongue04, "tongue05_ctl", t, self.color_fk,  "square", w=self.size*.1, d=self.size*.01, ro=self.tmpRot)
     self.tongue05 = pri.addNull(self.tongue05_ctl, self.getName("tongue05"), t, self.size * .05)
     self.addShadow(self.tongue05_ctl, "tongue05")
     xsi.SetNeutralPose(self.tongue05_ctl, c.siSRT)
     self.addToGroup(self.tongue05, "hidden")
Esempio n. 8
0
    def addObjects(self):
        self.normal = self.guide.blades["blade"].z
        t = tra.getTransformLookingAt(self.guide.apos[0], self.guide.apos[2],
                                      self.normal, "zx", False)
        offsetRotation = XSIMath.CreateRotation()
        t.GetRotation(offsetRotation)
        self.tracking_lvl = pri.addNullFromPos(self.root,
                                               self.getName("tracking_lvl"),
                                               self.guide.apos[0],
                                               self.size * .15)
        self.addToGroup(self.tracking_lvl, "hidden")
        self.loc = pri.addNullsFromPositions(self.tracking_lvl,
                                             self.getName("#_loc"),
                                             self.guide.apos[3:],
                                             offsetRotation, self.size * .15)
        self.addToGroup(self.loc, "hidden")
        i = 0
        self.oDirDriverList = []
        self.oDirDrivenList = []
        self.oPointerLvlList = []
        self.oCornersList = []
        self.oUpDownList = []
        self.oSidesList = []

        for x in self.loc:
            t = x.Kinematics.Global.Transform
            self.coners_lvl = pri.addNull(x, self.getName("coners%s_lvl" % i),
                                          t, self.size * .15)
            self.upDown_lvl = pri.addNull(self.coners_lvl,
                                          self.getName("upDown%s_lvl" % i), t,
                                          self.size * .15)
            self.sides_lvl = pri.addNull(self.upDown_lvl,
                                         self.getName("sides%s_lvl" % i), t,
                                         self.size * .15)
            self.tweak_lvl = pri.addNull(self.sides_lvl,
                                         self.getName("tweak%s_lvl" % i), t,
                                         self.size * .15)
            t2 = tra.getTransformLookingAt(
                self.guide.apos[0], x.Kinematics.Global.Transform.Translation,
                self.normal, "xy", False)
            self.oPointer = pri.addNull(self.root,
                                        self.getName("pointer%s_loc" % i), t2,
                                        self.size * .15)
            self.oPointerLvl = pri.addNull(self.root,
                                           self.getName("pointer%s_lvl" % i),
                                           t, self.size * .15)
            self.shadow = self.addShadow(self.oPointerLvl, "%s" % i)
            self.oHiddenList = [
                self.coners_lvl, self.upDown_lvl, self.sides_lvl,
                self.oPointer, self.oPointerLvl, self.tweak_lvl
            ]
            self.addToGroup(self.oHiddenList, "hidden")
            self.oDirDriverList.append(self.tweak_lvl)
            self.oDirDrivenList.append(self.oPointer)
            self.oPointerLvlList.append(self.oPointerLvl)
            self.oCornersList.append(self.coners_lvl)
            self.oUpDownList.append(self.upDown_lvl)
            self.oSidesList.append(self.sides_lvl)

            i += 1

        self.cornerA_lvl = pri.addNullFromPos(self.root,
                                              self.getName("cornerA_lvl"),
                                              self.guide.apos[3],
                                              self.size * .15)
        self.cornerA = pri.addNullFromPos(self.cornerA_lvl,
                                          self.getName("cornerA"),
                                          self.guide.apos[3], self.size * .15)
        self.addToGroup(self.cornerA_lvl, "hidden")
        self.addToGroup(self.cornerA, "hidden")

        self.cornerB_lvl = pri.addNullFromPos(self.root,
                                              self.getName("cornerB_lvl"),
                                              self.guide.apos[-1],
                                              self.size * .15)
        self.cornerB = pri.addNullFromPos(self.cornerB_lvl,
                                          self.getName("cornerB"),
                                          self.guide.apos[-1], self.size * .15)
        self.addToGroup(self.cornerB_lvl, "hidden")
        self.addToGroup(self.cornerB, "hidden")

        self.upVec = pri.addNullFromPos(self.root, self.getName("upVec_loc"),
                                        self.guide.apos[1], self.size * .15)
        self.addToGroup(self.upVec, "hidden")

        self.mediumPosition = self.guide.apos[(
            (len(self.guide.apos) - 3) // 2) + 3]
        self.oTempPosY = XSIMath.CreateVector3()
        self.oTempPosY.X = self.mediumPosition.X
        self.oTempPosY.Y = self.mediumPosition.Y + 3
        self.oTempPosY.Z = self.mediumPosition.Z

        self.oTempPosZ = XSIMath.CreateVector3()
        self.oTempPosZ.X = self.mediumPosition.X
        self.oTempPosZ.Y = self.mediumPosition.Y
        self.oTempPosZ.Z = self.mediumPosition.Z + 3

        t = tra.getTransformLookingAt(self.mediumPosition, self.oTempPosZ,
                                      self.oTempPosY, "zy", self.negate)
        t.RotZ = 0.0

        self.control_lvl = pri.addNull(self.root,
                                       self.getName("eyelidCtl_lvl"), t,
                                       self.size * .15)
        self.addToGroup(self.control_lvl, "hidden")
        self.control = self.addCtl(self.control_lvl,
                                   "eyelid_ctl",
                                   t,
                                   self.color_ik,
                                   "square",
                                   w=self.size * .2)