Maxscript - Random material to selection

Pour vous simplifier la vie
Avatar de l’utilisateur
Rodman
SL17
Messages : 1055

Re: Maxscript - Random material to selection

Message 29 avr. 2013, 12:28

Tu es bien sur Windows ? Il se peut qu'en fonction de ton chemin celui-ci fasse des choses bizarres comme avec un "/t" par exemple.
Essaye avec "\\" pour voir.

Code : Tout sélectionner

"c:\\temp\\test.txt"
Sinon quand tu appliques le script sur un objet (une sphère par exemple). Quand tu va regarder le mat (pipette sur l'objet par exemple) le chemin affiché est-il le bon ?

Avatar de l’utilisateur
zules
SL11
Messages : 702

Re: Maxscript - Random material to selection

Message 29 avr. 2013, 14:13

Non, c'est bien le \t qui pose pb...

J'ai changé avec des doubles \\ partout, mais ça continu...
Architecturalement parlant...

jgaillard.tumblr.com

Avatar de l’utilisateur
Rodman
SL17
Messages : 1055

Re: Maxscript - Random material to selection

Message 29 avr. 2013, 15:10

Utilise le code ci-dessous :

Code : Tout sélectionner

-- Copyright 2013 Rodman

/* This Maxscript is a base to create identical Maxwell Materials on a selection of objects */

f = getOpenFileName types:"jpg(*.jpg)"

for o in selection do
(
   m = Maxwell_Material () --create a new maxwell material

   -- Bottom Layer   
   m.Layers[2] = MaxwellLayer() --create a new layer
   m.Layers[2].enabled = on
   m.Layers[2].opacity = 100
   m.Layers[2].BlendMode = 0 --normal mode
   m.Layers[2].Mask = Maxwell_Bitmap()
   m.Layers[2].Mask.filename = f -- path
   
   m.Layers[2].Bsdfs[1] = MaxwellBsdf() --create a new bsdf
   m.Layers[2].Bsdfs[1].ReflectedColor = color 211 211 211 --ref0
   m.Layers[2].Bsdfs[1].FresnelColor = color 151 151 151 --ref90
   m.Layers[2].Bsdfs[1].TransparencyColor = color 0 0 0 --transmittance
   m.Layers[2].Bsdfs[1].nd = 3 --nd
   m.Layers[2].Bsdfs[1].roughness = 90 --roughness
   
   -- Top Layer   
   m.Layers[1] = MaxwellLayer() --create a new layer
   m.Layers[1].enabled = on
   m.Layers[1].opacity = 100
   m.Layers[1].BlendMode = 1 --additive mode
   m.Layers[1].Mask = Maxwell_Bitmap()
   m.Layers[1].Mask.filename = f -- path
   
   m.Layers[1].Bsdfs[1] = MaxwellBsdf() --create a new bsdf
   m.Layers[1].Bsdfs[1].ReflectedColor = color 211 211 211 --ref0
   m.Layers[1].Bsdfs[1].FresnelColor = color 151 151 151 --ref90
   m.Layers[1].Bsdfs[1].TransparencyColor = color 0 0 0 --transmittance
   m.Layers[1].Bsdfs[1].nd = 3 --nd
   m.Layers[1].Bsdfs[1].roughness = 15 --roughness

   o.material = m
)
Tu iras choisir toi-même l'emplacement de l'image. J'espère que cela marchera pour toi.

Avatar de l’utilisateur
Rodman
SL17
Messages : 1055

Re: Maxscript - Random material to selection

Message 22 mai 2013, 14:56

Des nouvelles zules ?

Avatar de l’utilisateur
Rodman
SL17
Messages : 1055

Re: Maxscript - Random material to selection

Message 29 mai 2013, 02:46

Je suis entrain d'écrire un code qui généralise le code du dessus. Je pense avoir écrit le plus dur, enfin je l'espère. 8)
C'est un code qui crée un matériau maxwell par objet sélectionné, et ensuite chaque matériau récupère les données d'un matériau de référence (pour le moment il va prendre le premier matériau dans le Compact Material Editor).

Le plus long c'est d'écrire la liste exhaustive des paramètres d'un matériau... :twisted:

Sinon zules ça va? :mrgreen:

Edit2: un bug est réapparu par magie, super...

Avatar de l’utilisateur
Rodman
SL17
Messages : 1055

Re: Maxscript - Random material to selection

Message 29 mai 2013, 18:41

@Roch

J'ai découvert un bug avec du maxscript.

Je vais prendre un exemple:
Je me trouve dans le Compact Material Editor et je n'utilise que le premier slot (meditMaterials[1]).
Si je créé un matériau "à la main" avec 2 layers et 1 bsdf par layer et que je rentre le code

Code : Tout sélectionner

print meditMaterials[1].Layers[2].Bsdfs.count
qui me donne le nombre de Bsdf du calque du bas alors j'ai bien en retour la valeur 1. Tout va bien jusque là.

Par contre si je créé un matériau Plastic avec le wizard. Celui-ci est identique avec 2 layers et 1 bsdf par layer, mais quand je rentre le code

Code : Tout sélectionner

print meditMaterials[1].Layers[2].Bsdfs.count
j'ai la valeur 0 (au lieu de 1).

Le problème existe avec d'autres matériaux du wizard, par exemple le Metal qui a 1 layer et 2 bsdf, le code

Code : Tout sélectionner

print meditMaterials[1].Layers[1].Bsdfs.count
donne 1 (au lieu de 2).

Je te laisse tester et faire remonter l'info. :mrgreen:

Avatar de l’utilisateur
Roch
Messages : 7634
Localisation : Marseille - France
Contact :

Re: Maxscript - Random material to selection

Message 30 mai 2013, 15:00

OK merci je regarde si c'est pareil de mon côté...

Avatar de l’utilisateur
Rodman
SL17
Messages : 1055

Re: Maxscript - Random material to selection

Message 31 mai 2013, 16:44

Le script est en version 5.1 :
http://www.kongdee.biz/shop/random-mate ... selection/

On peut dorénavant utiliser un matériau de base à appliquer sur une sélection d'objets.
Il faut placer le matériau dans le premier slot du Compact Material Editor, sélectionner ses objets et cliquer sur le bouton "Copy material".

Je vous laisse tester et me dire si ça marche bien chez vous.

Enjoy ! 8)

Je pourrais rajouter une fonction pour copier un UV d'un objet sur un autre et le placer automatiquement. Cela vous intéresse ?

Le bug que j'ai cité à Roch se répercute sur la fonction. Donc il vous faudra recréer le matériau du wizard sous 3ds max par vous-même. (la bonne technique consiste sur un matériau du wizard à dupliquer le layer ou bsdf en double et de supprimer le double. Cela va corriger le bug en réinitialisant les variables, ça prend 2 secondes à faire ;) )

Si vous avez l'erreur suivante :
--Runtime error: array index must be positive number
c'est que vous avez utilisé un matériau du wizard. Vous êtes prévenu. :lol:

Avatar de l’utilisateur
Rodman
SL17
Messages : 1055

Re: Maxscript - Random material to selection

Message 25 juin 2013, 16:51

Roch a écrit :OK merci je regarde si c'est pareil de mon côté...
Coucou Roch, as-tu du nouveau concernant ce problème ?

Avatar de l’utilisateur
Roch
Messages : 7634
Localisation : Marseille - France
Contact :

Re: Maxscript - Random material to selection

Message 26 juin 2013, 07:16

non je relance.

Avatar de l’utilisateur
Rodman
SL17
Messages : 1055

Re: Maxscript - Random material to selection

Message 23 sept. 2013, 20:22

non je relance.
Du nouveau ? J'imagine que non puisqu'ils sont occupés à finir la V3. :mrgreen:
maximilien a écrit :WAhoo
je me sers régulièrement de la version 1.1, carrelage et parquet!!!!!
Là le script est carrément plus complet, et demande un peu plus d'attention et de test, mais les possibilités de ramdom sur un peu tout , me laisse imaginer de sacrés rendus...
un petit pdf serait pas mal, car il y beaucoup de choses.
encore bravo Rodman
maximilien
Je vais faire une mise à jour prochainement. J'en profiterai en même temps pour écrire la documentation et peut-être refaire une vidéo commentée si j'ai de l'inspiration. 8)

Répondre