예제 #1
0
def snapOrientPLocOnMesh(loc, mesh):
    """
    """
    mesh = pm.PyNode(mesh)
    if loc.orientType.get() == 1:
        rt.alignTransformToMesh(loc, mesh, "sliding")
    elif loc.orientType.get() == 2:
        rt.alignTransformToMesh(loc, mesh, "normal")
    else:
        # leave at world or user
        pass
예제 #2
0
def snapOrientPLocOnMesh(loc, mesh):
    '''
    '''
    mesh = pm.PyNode(mesh)
    if loc.orientType.get() == 1:
        rt.alignTransformToMesh(loc, mesh, 'sliding')
    elif loc.orientType.get() == 2:
        rt.alignTransformToMesh(loc, mesh, 'normal')
    else:
        # leave at world or user
        pass
예제 #3
0
def orientAllPlacements(pGrp):
    """
    """
    locs = [loc for loc in pGrp.getChildren() if loc.hasAttr("orientType")]
    mesh = pm.PyNode(pGrp.mouthLipsLoop.get()[0]).node()

    for loc in locs:
        if loc.orientType.get() == 1:
            rt.alignTransformToMesh(loc, mesh, "sliding")
        elif loc.orientType.get() == 2:
            rt.alignTransformToMesh(loc, mesh, "normal")
        else:
            # leave at world or user
            pass
예제 #4
0
def orientAllPlacements(pGrp):
    '''
    '''
    locs = [loc for loc in pGrp.getChildren() if loc.hasAttr('orientType')]
    mesh = pm.PyNode(pGrp.mouthLipsLoop.get()[0]).node()

    for loc in locs:
        if loc.orientType.get() == 1:
            rt.alignTransformToMesh(loc, mesh, 'sliding')
        elif loc.orientType.get() == 2:
            rt.alignTransformToMesh(loc, mesh, 'normal')
        else:
            # leave at world or user
            pass
예제 #5
0
face.orientLoopTransforms([nt.Transform(u'LT_corner_lip_pLoc'), 
                           nt.Transform(u'LT_upper_pinch_lip_pLoc'), 
                           nt.Transform(u'LT_upper_sneer_lip_pLoc'), 
                           nt.Transform(u'LT_upper_side_lip_pLoc'), 
                           nt.Transform(u'CT_upper_lip_pLoc')], (-1, 0, 0))

face.orientLoopTransforms([nt.Transform(u'LT_corner_lip_pLoc'), 
                           nt.Transform(u'LT_lower_pinch_lip_pLoc'), 
                           nt.Transform(u'LT_lower_sneer_lip_pLoc'), 
                           nt.Transform(u'LT_lower_side_lip_pLoc'), 
                           nt.Transform(u'CT_lower_lip_pLoc')], (-1, 0, 0))

# Align for sliding
slidingBnds = data.slidingBnds
for eachBnd in slidingBnds:
    rt.alignTransformToMesh(eachBnd, mesh, method='sliding')

# manual orienting and tweaking
# notes:
# cheek locs should have Y-up, so they can translate up and make a bulge, etc
# align jaw locs along jawline
# brow neg-Y should point outwards to maintain brow volume
    
#------------------------------------------------------------------------------ 
# Mirror
placementGrp.snapPlacementsToMesh(pGrp)
placementGrp.mirrorAllPlacements(pGrp)
pDict = data.placeLocXforms
placementGrp.setPlacementGrpFromDict(pGrp, pDict)
#===============================================================================
# BUILD BNDS
예제 #6
0
    nt.Transform(u'LT_upper_side_lip_pLoc'),
    nt.Transform(u'CT_upper_lip_pLoc')
], (-1, 0, 0))

face.orientLoopTransforms([
    nt.Transform(u'LT_corner_lip_pLoc'),
    nt.Transform(u'LT_lower_pinch_lip_pLoc'),
    nt.Transform(u'LT_lower_sneer_lip_pLoc'),
    nt.Transform(u'LT_lower_side_lip_pLoc'),
    nt.Transform(u'CT_lower_lip_pLoc')
], (-1, 0, 0))

# Align for sliding
slidingBnds = data.slidingBnds
for eachBnd in slidingBnds:
    rt.alignTransformToMesh(eachBnd, mesh, method='sliding')

# manual orienting and tweaking
# notes:
# cheek locs should have Y-up, so they can translate up and make a bulge, etc
# align jaw locs along jawline
# brow neg-Y should point outwards to maintain brow volume

#------------------------------------------------------------------------------
# Mirror
placementGrp.snapPlacementsToMesh(pGrp)
placementGrp.mirrorAllPlacements(pGrp)
pDict = data.placeLocXforms
placementGrp.setPlacementGrpFromDict(pGrp, pDict)
#===============================================================================
# BUILD BNDS