C4DLounge.eu - Cinema 4D Gebruikers Forum  

Go Back   C4DLounge.eu - Cinema 4D Gebruikers Forum > RESOURCES > Vragen >>> > Plugins & Scripts/Python/Coffee/Xpresso

Reply
 
Thread Tools Display Modes
  #1  
Old 26th February 2019
eenendertig eenendertig is offline
Member
 
Join Date: May 2013
Location: Belgie
Posts: 240
Default Oude shader plugin missing

Hallo,

Ik ben aan een projectje aan het werken waar nogal wat verschillende bestanden inzitten van turbosquid, 3d warehouse, .... Probleem is dat ik een melding krijg:

"PluginShader "Dirt" (5707) cannot be found.

Ik heb op een forum van cgsociety gezien dat Douwe ergens in 2013 daar iets over gepost heeft maar dat heeft te maken met Python en daar ken ik niets van ....
Iemand enig idee hoe ik deze "plugin" of "shader" kan zoeken en verwijderen?
Reply With Quote
  #2  
Old 26th February 2019
roobol roobol is offline
Admin Team
 
Join Date: Mar 2009
Posts: 1,865
Default

De dirt shader is een relikwie uit R8.5 en is niet echt een plug-in, maar een shader. Hij zit altijd in de materialen, meestal in het diffusie kanaal waar je hem ook kunt verwijderen. Om het zelfde effect te krijgen kan je (ook in het diffusie kanaal) de effects > ambient occlusion shader gebruiken.

Als je alle materialen weggooit en nieuwe aanmaakt is het probleem ook opgelost.

Oh, en Python zit daar voor niets tussen (bestond nog niet in R8.5 ;-)))
__________________
http://www.roobol.be
Reply With Quote
  #3  
Old 26th February 2019
roobol roobol is offline
Admin Team
 
Join Date: Mar 2009
Posts: 1,865
Default

PS: nu ik mijn post hierboven nog eens doorlees krijg ik het gevoel dat ik een dinosaurus ben....
__________________
http://www.roobol.be
Reply With Quote
  #4  
Old 26th February 2019
eenendertig eenendertig is offline
Member
 
Join Date: May 2013
Location: Belgie
Posts: 240
Default

Het probleem is dat ik tientallen verschillende matetialen heb en ik ze dus niet allemaal kan weggooien maar dat ik ook niet weet in welk materiaal het probleem zit. Zoeken op dirt in de material manager brengt ook niets op.
De python oplossing van douwe kon de shader vinden en verwijderen. Maar daar ken ik dus niets van...
Reply With Quote
  #5  
Old 26th February 2019
roobol roobol is offline
Admin Team
 
Join Date: Mar 2009
Posts: 1,865
Default

Douweeuuhh!!!
__________________
http://www.roobol.be
Reply With Quote
  #6  
Old 27th February 2019
eenendertig eenendertig is offline
Member
 
Join Date: May 2013
Location: Belgie
Posts: 240
Default

zie hier Douwe's post:

https://forums.cgsociety.org/t/how-t...thon/1579765/2

Misschien kan jij het mij ook uitleggen Kees? Ik begrijp er niet veel van...
Reply With Quote
  #7  
Old 27th February 2019
eenendertig eenendertig is offline
Member
 
Join Date: May 2013
Location: Belgie
Posts: 240
Default

Ik heb de boosdoener gevonden door elk object afzonderlijk te deleten en te kijken of het de error er dan nog was. Monniken werk maar het is toch gelukt.
Reply With Quote
  #8  
Old 27th February 2019
roobol roobol is offline
Admin Team
 
Join Date: Mar 2009
Posts: 1,865
Default

Zegt mij ook niets, maar blij dat je eruit bent geraakt.

Tip: delete een volgende keer de helft van de objecten, dan de helft van de helft, etc.; gaat veel sneller om de schurk vast te pinnen.
__________________
http://www.roobol.be
Reply With Quote
  #9  
Old 27th February 2019
douwe's Avatar
douwe douwe is offline
Admin Team
 
Join Date: Feb 2010
Posts: 1,899
Default

Je bent er al doorheen, maar voor toekomstige wedervaren :

Plak de code in je Script / Script Manager en klik op Execute.
De rest gaat vanzelf.

In regel 13 ( if shader.GetName()=="Dirt": )
kan je het woordje Dirt vervangen door de naam van eender welke Shader.
Die wordt dan automatisch verwijderd uit de Texture Parameter van alle kanalen van al je materialen.

Code:
import c4d, os
 
############################################################
# recursive function where we do stuff to the shaders
############################################################
def shadertree(shader):
    # Loop through the BaseList
    while(shader):
         
        # This is where you do stuff
        print shader.GetName()
        if shader.GetName()=="Dirt":
            shader.Remove()
        # If it's a bitmap, we'll look at the filename
        if shader.GetType() == c4d.Xbitmap:
            filename = shader[c4d.BITMAPSHADER_FILENAME]
            print filename
            # for instance we can set the filename to just the file part
            filename = os.path.basename(filename)
            shader[c4d.BITMAPSHADER_FILENAME] = filename
         
        # Check for child shaders & recurse
        if shader.GetDown(): shadertree(shader.GetDown())
        # Get the Next Shader
        shader = shader.GetNext()
         
############################################################
# main function
############################################################
def main():
    # Get the first material
    mat = doc.GetFirstMaterial()
    # Loop through materials
    while(mat):
        # Get the first shader
        # Note - this is a 4D list - you've gotta GetDown
        shd = mat.GetFirstShader()
        # Use our recursive function to parse the shader tree
        shadertree(shd)
        # Get the Next material
        mat = mat.GetNext()
        
if __name__=='__main__':
    main()
Reply With Quote
  #10  
Old 27th February 2019
roobol roobol is offline
Admin Team
 
Join Date: Mar 2009
Posts: 1,865
Default

Bedankt douwe, ik heb nog een paar hele oude bestanden waar ik dit eens op ga loslaten :-))
__________________
http://www.roobol.be
Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is On

Forum Jump


All times are GMT +2. The time now is 20:41.


Powered by vBulletin® Version 3.8.1
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.
Met trots gehost door Webdesign bureau Graphic Violence.
(c) C4DLounge.eu . All documents on this forum are owned by their respective creators and may not be sold or republished in any way.