One material type to another [SOLVED]



  • On 30/06/2018 at 06:09, xxxxxxxx wrote:

    Hi Sebastian and Eldiren,

    I found the comment on this post VERY interesting to me. I'm trying to replace a current material for a new created one (avoiding to do the replacement in all the Tags). As far as I understand, you suggest that we can replace the material connections using the TransferGoal function.

    this is how looks that portion of the code in my script... you think am I doing right? not working at the mo.

        #iterate over native C4D materials
        matLoop = doc.GetFirstMaterial()
        while matLoop:
            if matLoop.GetType() == c4d.Mmaterial:  
                
                print matLoop
                oldmat=matLoop
                newmat=ConvertMaterial(oldmat)
                oldmat.TransferGoal(newmat,False)
                            
            matLoop = matLoop.GetNext()
    

    I can't find any other example of this through the Internet :)))

    Eldiren, I would be so amazing if you can share the portion of code you finally managed to do the task!

    Thanks in advance!
    Julio.



  • On 30/06/2018 at 12:58, xxxxxxxx wrote:

    Ok, I found the mistake myself :)
    I needed to jump to the next object before doing the materials swap.

    This is the correcty way, and work like a charm ;)

    #iterate over native C4D material
    matLoop = doc.GetFirstMaterial()
    while matLoop:
    	if matLoop.GetType() == c4d.Mmaterial:
                
    		oldmat=matLoop
    		newmat=ConvertMaterial(oldmat)
    		matLoop = matLoop.GetNext()
    		oldmat.TransferGoal(newmat,False)
    

    Thanks guys anyway!


Log in to reply