Hello...
Question à 2 balles sur un truc qui me fait souvent perdre du temps.
Comment fait-on pour retrouver le matériau qui utilise une map spécifique?
Exemple: je sais que le fichier bidule.psd est utilisé dans l'un de mes 400 shaders, mais je ne sais pas lequel et j'ai un peu la flemme (on me comprend) d'aller le chercher à la mano et au hasard dans tous les canaux. Le menu Edit > Project Info > Structure me hiérarchise bien toutes les maps présentes dans mon projet, mais de là il n'y a pas de raccourci pour remonter au shader qui utilise cette map.
Alors comment on fait?
Merci d'avance pour toute suggestion!
NiKo
--- www.aerografik.fr ---
Y aune astuce. J'ai vu ça sur internet.
Je vais chercher mes gosses et je te tiens au jus.
Tout ce que j'écris est à prendre au 15e degré. Car comme dit le proverbe chinois : Quand le dragon d'or, le ragondin ; voilà qui devrait faire taire les critiques et me mettre à l'abri d'attaques frontales.
Pas vraiment de solution finalement.
Tu peux verrouiller ta palette Attributs > Mode Infos projet > Textures, Matériau sélection sélectionné puis ensuite cliquer sur tes matériaux dans ton gestionnaire de matériaux pour voir quelle textures sont utilisées. Mais rien d'automatique.
Dernière modification par lenogre ; 30/04/2013 à 17h35.
Tout ce que j'écris est à prendre au 15e degré. Car comme dit le proverbe chinois : Quand le dragon d'or, le ragondin ; voilà qui devrait faire taire les critiques et me mettre à l'abri d'attaques frontales.
Salut !
Ben si tu n'as pas mieux tu vires l'image du fichier tex, tu fais enregistrer le projet et là il te donne l'image manquante et le matériau.
C'est pas vachement élégant mais tu le fais quand personne te voit.
Bon en fait en python c'était plus simple que je pensais, colle ce code dans le gestionnaire de script puis exécuter
Tu rentres le nom de l'image dans la boîte de dialogue (pas le chemin juste le nom) et normalement cela te sélectionne tous les matériaux qui utilisent cette image :
J'ai testé que sur mac, mais cela devrait marcher sur PCCode PHP:
import c4d
import os.path
def searchBitmap(shd, liste):
while shd:
if shd.CheckType(c4d.Xbitmap):
fn = shd[c4d.BITMAPSHADER_FILENAME]
name = os.path.basename(fn)
liste.append(name)
searchBitmap(shd.GetDown(), liste)
shd = shd.GetNext()
def main():
nom_img = c4d.gui.InputDialog("Rentrez le nom de l'image :")
mat = doc .GetFirstMaterial()
while mat:
lst = []
shd = mat.GetFirstShader()
searchBitmap(shd, lst)
if nom_img in lst :
mat.SetBit(c4d.BIT_ACTIVE)
else : mat.DelBit(c4d.BIT_ACTIVE)
mat = mat.GetNext()
c4d.EventAdd()
if __name__=='__main__':
main()
Dernière modification par oli_d ; 30/04/2013 à 18h28.
Super efficace ton script… un gros merci.
Cela évite un temps fou à chercher une aiguille dans une botte de foin
Je comprends vite, mais faut m'expliquer longtemps…
J'ai pas la solution, mais déjà comme tu l'as dit via menu Edit > Project Info > Textures de l'éditeur d'attributs tu peux choisir matériau sélectionné au lieu de projet, comme ça tu n'a pas besoin de cliquer dans chaque canal, mais bon ça fait toujours encore 400 clics...
En python cela doit être faisable, simple si on regarde dans chaque canal à la racine, par contre si on a des calques je n'ai jamais regardé comment ça marche, mais cela doit être possible... A voir si personne n'a d'autre solution toute faite