Bonsoir,
Je me remets à faire de la 3d pour mes projets à l'école d'archi, et afin de gagner du temps je me crée des matériaux, persos, etc…
Ma question est la suivante, pour les matériaux en question je n'utilise souvent que 2 canaux, couleur et alpha, dans lesquels je charge la même image, travail qui devient vite répétitif, je voulais donc savoir si il existe un moyen pour "automatiser la tâche" en donnant a C4D par exemple le chemin d'accés a un dossier de texture et les canaux souhaités ?
Créé ton matériau et ajuste-le comme bon te semble (textures, canaux, etc...).
Puis sélectionne-le et vas dans le menu "file>Save material preset" dans le gestionnaire de matériaux.
Donne-lui un nom, et C4D te créera un preset du matériau avec un dossier qui contient les textures, dans ta médiathèque.
Pour y accéder, lance la médiatèque et clique sur l'icône "presets"(qui ressemble à un encrier). Il ne te reste plus qu'à glisser ce matériau de la médiathèque au gestionnaire de matériaux à chaque fois que tu en veux une copie.
Tu peux te créer autant de matériau que tu le souhaites.
Fluffy mais costaud...www.fluffy4d.com
Il me semble que la question était plutôt pour la création elle-même du matériau, mais de toute façon le truc de Fluffy est super utile.
Si tu as la R12 tu peux coller le code ci-dessous dans Python/Gestionnaire de script et cliquer sur le bouton Exécuter.
Une première boîte de dialogue va te demander où est ton dossier, la deuxième si tu veux utiliser les chemins absolus (pour pas avoir besoin de mettre tes textures dans le dossier tex) et la troisième pour savoir si tu veux utiliser le canal alpha. (Dès que j'ai le temps je ferai une seule boîte de dialogue).
Le script va créer un matériau par image qu'il trouvera dans le dossier.
Si tu veux que le script apparaissent à chaque fois dans le menu Python/Scripts personnalisés clique sur le bouton créer script et donne lui un nom. Il apparaîtra lors du prochain démarrage de C4D.
Je n'ai pas encore testé sur mac... EDIT : j'ai testé, ça a l'air de fonctionner
Code PHP:
import c4d
from c4d import gui
import os,glob
lst_ext = ['.jpg','.tif','.tga','.png','.psd','.b3d']
def creer_mat(fn,nom,alpha=True):
mat = c4d.BaseMaterial(c4d.Mmaterial)
mat.SetName(nom)
doc.InsertMaterial(mat)
shd = c4d.BaseList2D(c4d.Xbitmap)
shd[c4d.BITMAPSHADER_FILENAME] = fn
mat[c4d.MATERIAL_COLOR_SHADER] = shd
mat.InsertShader(shd)
mat[c4d.MATERIAL_USE_SPECULAR]=False
if alpha :
mat[c4d.MATERIAL_USE_ALPHA]=True
shda = c4d.BaseList2D(c4d.Xbitmap)
shda[c4d.BITMAPSHADER_FILENAME] = fn
mat[c4d.MATERIAL_ALPHA_SHADER]=shda
mat.InsertShader(shda)
mat.Message(c4d.MSG_UPDATE)
mat.Update(True, True)
def main():
dossier = c4d.storage.LoadDialog(flags=c4d.FILESELECT_DIRECTORY)
absolu = c4d.gui.QuestionDialog('Utiliser le chemin absolu ?')
alpha = c4d.gui.QuestionDialog('Utiliser le canal alpha ?')
if not dossier :return
for fn in os.listdir(dossier):
nom,ext = os.path.splitext(fn)
if absolu : fn = os.path.abspath(fn)
if ext in lst_ext:
creer_mat(fn,nom,alpha)
c4d.EventAdd()
if __name__=='__main__':
main()
Dernière modification par oli_d ; 15/04/2011 à 09h25.
Excellent oli_d !
Dit je pourrait pas faire un stage de 10 jours chez toi par hasard?
Visitez www.base80.com et www.youtube.com/base80
Mais avec plaisir Base, mais je te préviens je suis un hérétique, j'aime pas la bière ! (mais beaucoup le vin !)
C'est ou? ou veux tu passer au Pays Bas ! T'apporte ton vin dans ce cas
Visitez www.base80.com et www.youtube.com/base80
J'habite à Genève, en Suisse, les Pays Bas ça me tenterait ...
ben t'est le bienvenu, quand tu veux .
Visitez www.base80.com et www.youtube.com/base80
ah bah si ces deux la s'apprennent des choses ca va etre beau tiens
on a pas fini de voir des scripts et des xpresso qui dechirent tout sur le forum
i7 4790K/32GoDDR3/GTX1070 - Genghis Khan
Un script aussi pratique, faudrait le coller dans la section tut'minutes ou équivalent non ?
Merci pour vos réponses,
Fluffy effectivement cela va mettre utile également. Oli_d c'est exactement ce que je cherchais à faire, je te remercie, avec vos 2 techniques je vais pouvoir me faire rapidement une sacrée médiathèque, je n'ai pas eu de problème avec le script sous OSX.
Je ne connais pas le python, mais j'avais étudié un peu le MEL dans Maya en Autriche, et une des choses bien c'est que dans Maya, quand on faisait une commande via l'interface graphique, on avait l'équivalent en MEL en même temps, je ne sais pas si c'est possible en Python dans C4D mais ça serait un bon moyen d'apprendre… si quelqu'un sait je suis preneur.
Ce qui ressemble le plus à ce que tu décris dans Maya, passe encore par les scripts en COFFEE. Il y a un très bon tuto du côté de chez maître Fluffy : http://fluffy4d.com/?p=79 (en anglais, si jamais script log c'est historique de script en français)
C'est également possible en Python, mais il faut retoucher un petit peu le code, ce n'est pas juste du copier/coller.
Encore une fois oli_d, c'est ce que je cherchais, merci beaucoup. Il va vraiment falloir que je me commence à regarder le python de prêt.
J'ai entendu Genève?... Y commence quand ce stage?
J'ai pas une bonne cave mais j'amène les cigares
Dernière modification par phidek ; 30/04/2011 à 03h33.