def bind_card( source_mesh, target_mesh, combine=True ) : hasskin = True try : source_skin_cluster = pm.PyNode( pm.mel.eval( 'findRelatedSkinCluster %s' % ( source_mesh ) ) ) joints = source_skin_cluster.getWeightedInfluence() except : hasskin = False if( combine ) : p = target_mesh.getParent() dup_source_mesh = source_mesh.duplicate()[0] dup_target_mesh = target_mesh.duplicate()[0] bind_mesh = pm.polyUnite( dup_source_mesh, dup_target_mesh )[0] bind_mesh.rename( target_mesh.name() ) pm.delete( bind_mesh, ch=True ) try : pm.delete( dup_source_mesh ) except : pass else : bind_mesh = target_mesh if hasskin : target_skin_cluster = pm.skinCluster( bind_mesh, joints ) pm.copySkinWeights( source_mesh, bind_mesh, ia='oneToOne', sa='closestPoint' ) pm.select( bind_mesh ) th_skinClusterMerge.reduce_influences() pm.select(None)
def merge_cards( start, end, suit ) : cards = [] # suits = [ 'Hearts', 'Diamonds', 'Clubs', 'Spades' ] ranks = range( start, end ) total_cards = len( ranks ) i = 0 # for suit in suits : try : suit_group = pm.PyNode( '%s_cards_GRP' % ( suit ) ) except : suit_group = pm.group( name='%s_cards_GRP' % ( suit ), empty=True, world=True ) for rank in ranks : print 'Processing card %s of %s' % ( i, total_cards ) # print rank, suit # print get_card_sprites( rank, suit ) # return card_sprites = pm.duplicate( get_card_sprites( rank, suit ) ) for card_sprite in card_sprites : card_sprite.setParent(None) card = pm.polyUnite( card_sprites, mergeUVSets=1, ch=True )[0] pm.delete( card, ch=True ) for cs in card_sprites : try : pm.delete( cs ) except : pass card.rename( '%s_%s_G' % ( suit, rank ) ) card.setParent( suit_group ) cards.append( card ) # pm.flushUndo() i += 1 return cards
def bind_card(source_mesh, target_mesh, combine=True): hasskin = True try: source_skin_cluster = pm.PyNode( pm.mel.eval('findRelatedSkinCluster %s' % (source_mesh))) joints = source_skin_cluster.getWeightedInfluence() except: hasskin = False if (combine): p = target_mesh.getParent() dup_source_mesh = source_mesh.duplicate()[0] dup_target_mesh = target_mesh.duplicate()[0] bind_mesh = pm.polyUnite(dup_source_mesh, dup_target_mesh)[0] bind_mesh.rename(target_mesh.name()) pm.delete(bind_mesh, ch=True) try: pm.delete(dup_source_mesh) except: pass else: bind_mesh = target_mesh if hasskin: target_skin_cluster = pm.skinCluster(bind_mesh, joints) pm.copySkinWeights(source_mesh, bind_mesh, ia='oneToOne', sa='closestPoint') pm.select(bind_mesh) th_skinClusterMerge.reduce_influences() pm.select(None)
def merge_cards(start, end, suit): cards = [] # suits = [ 'Hearts', 'Diamonds', 'Clubs', 'Spades' ] ranks = range(start, end) total_cards = len(ranks) i = 0 # for suit in suits : try: suit_group = pm.PyNode('%s_cards_GRP' % (suit)) except: suit_group = pm.group(name='%s_cards_GRP' % (suit), empty=True, world=True) for rank in ranks: print 'Processing card %s of %s' % (i, total_cards) # print rank, suit # print get_card_sprites( rank, suit ) # return card_sprites = pm.duplicate(get_card_sprites(rank, suit)) for card_sprite in card_sprites: card_sprite.setParent(None) card = pm.polyUnite(card_sprites, mergeUVSets=1, ch=True)[0] pm.delete(card, ch=True) for cs in card_sprites: try: pm.delete(cs) except: pass card.rename('%s_%s_G' % (suit, rank)) card.setParent(suit_group) cards.append(card) # pm.flushUndo() i += 1 return cards
def mergeGroup( group ) : p = group.getParent() n = group.name().replace( '_split', '_G' ) if( len( group.getChildren() ) < 2 ) : combinedmesh = group.getChildren()[0] else : combinedmesh = pm.polyUnite(group, ch=False)[0] combinedmesh.setParent(p) combinedmesh.rename( n ) pm.delete(group)