Maxscript - Target caméra avec un matériau

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

Maxscript - Target caméra avec un matériau

Message 28 janv. 2013, 14:19

Bonjour,

Je viens de m'apercevoir que la Target de la caméra pouvait recevoir un matériau maxwell.
Du coup, on peut être surpris quand on importe les matériaux de la scène dans l'éditeur de matériaux et qu'on voit un matériau sortir de nul part.

Pour supprimer les matériaux de toutes les Targets des caméras il faut lancer ce code :

Code : Tout sélectionner

for o in objects where classof o == TargetObject do o.material = undefined

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

Re: Maxscript - Target caméra avec un matériau

Message 28 janv. 2013, 16:37

ah oui c'est bizarre ça de pouvoir mettre un mat sur une cam.. une fonction cachée ????

Avatar de l’utilisateur
Rodman
SL17
Messages : 1055

Re: Maxscript - Target caméra avec un matériau

Message 28 janv. 2013, 16:49

Je ne sais pas d'où cela vient.
Quelqu’un peut-il tester de mettre un matériau sur la Target d'une camera et me dire s'il a le même "problème" ?

Avatar de l’utilisateur
Rodman
SL17
Messages : 1055

Re: Maxscript - Target caméra avec un matériau

Message 30 janv. 2013, 23:55

Tiens Roch, il y a une explication ici : http://docs.autodesk.com/3DSMAX/15/ENU/ ... d30e276318
For historical reasons, the TargetObject's superclass is GeometryClass, but it does not generate any actual geometry!
Comme on dit en anglais : "F... Logic"

Avatar de l’utilisateur
Rodman
SL17
Messages : 1055

Re: Maxscript - Target caméra avec un matériau

Message 27 févr. 2013, 16:25

Je viens d'avoir le même problème. Le script maxscript fonctionne mais il y a le matériau (un VrayMtl) qui reste enregistré dans la bibliothèque des matériaux de la scène (c'est un tableau qui se nomme sceneMaterials).
Du coup pour vider la bibliothèque il faut utiliser le code suivant :

Code : Tout sélectionner

toRemove =#()
for i in currentMaterialLibrary do (append toRemove i.name)
for i in toRemove do (deleteItem currentMaterialLibrary(i))
					
toRemove =#()
for i in sceneMaterials do (append toRemove i.name)
for i in toRemove do (deleteItem sceneMaterials(i))
C'est juste un nettoyage car la bibliothèque ira rechercher les matériaux de la scène lui-même par la suite. Donc n'ayez pas d'inquiétude à lancer le script. :wink:

PS: J'avais déjà utilisé ce code dans ce sujet pour ceux qui ne l'ont pas encore lu : viewtopic.php?f=29&t=3635

Répondre