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
Esempio n. 3
0
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)
Esempio n. 4
0
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)