← Learn Blueprints

Material Instance et paramètres dans Unreal Engine 5

Tu as besoin du même matériau en plusieurs couleurs, ou d’un objet qui change d’aspect pendant la partie ? Ce guide t’explique ce qu’est un paramètre de matériau, comment créer une Material Instance, et comment modifier une valeur en jeu avec une Material Instance Dynamic.

Pourquoi des paramètres ?

Imagine des objets en or, en argent et en cuivre. Tu pourrais faire trois matériaux complets. Mais à chaque retouche, il faudrait refaire les trois, et un gros matériau met parfois plusieurs minutes à compiler. Il y a mieux : un seul matériau avec des réglages ouverts.

Un paramètre est une valeur qu’on peut changer de l’extérieur, sans rouvrir le graphe du matériau. Un nœud Constant, lui, reste figé. Chaque paramètre a un nom (Parameter Name) et une valeur de départ (Default Value).

Scalar Parameter et Vector Parameter

Donne-leur tout de suite un nom clair : c’est par ce nom qu’on les retrouve ensuite. Tu as déjà un Constant3Vector branché ? Un clic droit puis Convert to Parameter le transforme en Vector Parameter.

Exemple : un Vector Parameter pour la couleur d’une lueur et un Scalar Parameter pour sa force. Tu peux alors régler les deux de l’extérieur.

Créer une Material Instance

Une Material Instance est une copie réglable d’un matériau, appelé son parent. Elle reprend tout son graphe et ne change que ses paramètres, sans rien recompiler. Tu la crées depuis le parent, dans le Content Browser (préfixe MI_). Ses paramètres apparaissent avec leurs noms, et il faut cocher la case d’un paramètre pour changer sa valeur : décoché, il garde la valeur du parent.

Le pas à pas complet, avec les captures de l’éditeur, des quiz et un mini-projet, est dans le chapitre « Matériaux » du cours.

Quand tu changes une valeur, l’aperçu bouge tout de suite, et le niveau aussi si l’instance y est posée. Le parent et les autres instances ne bougent pas : chacune garde ses valeurs. Si un réglage n’apparaît pas dans l’instance, c’est qu’il vient d’un Constant dans le parent : une instance ne montre que les paramètres.

Pourquoi c’est plus léger

Toutes les instances partagent le shader de leur parent : un seul graphe à compiler et à entretenir. Pour une variante (une autre couleur, une autre rugosité), crée une instance plutôt qu’un nouveau matériau.

Changer un paramètre pendant la partie

Les instances créées dans le Content Browser sont des Material Instance Constant : leurs valeurs sont fixées avant le jeu. Pour qu’un objet change pendant la partie (touché, allumé, abîmé), il faut une Material Instance Dynamic, souvent appelée MID, fabriquée par un Blueprint.

En gros, un Blueprint crée la MID une seule fois, au BeginPlay, avec Create Dynamic Material Instance sur le composant mesh, et la garde dans une variable. Ensuite, Set Scalar Parameter Value (un nombre) ou Set Vector Parameter Value (une couleur) change le paramètre, désigné par son Parameter Name.

Le nom doit être écrit exactement comme dans le matériau. Si aucun paramètre ne porte ce nom, le nœud ne fait rien, sans message d’erreur.

Appelle ces nœuds sur un événement (le joueur entre dans une zone, prend un coup, appuie sur une touche), pas sur Event Tick : l’événement ne coûte rien le reste du temps.

Questions fréquentes

Je peux voir le paramètre, mais je ne peux pas le modifier. Pourquoi ?

Il faut cocher la case à côté du paramètre dans Details. Décoché, il garde la valeur du parent.

Mon Set Scalar Parameter Value ne change rien. Pourquoi ?

Vérifie d’abord l’orthographe de Parameter Name, espaces compris : Glow n’est pas Glow Amount. Si aucun paramètre ne porte ce nom, rien ne change et aucune erreur n’est affichée.

Si je modifie le parent, mes instances changent-elles ?

Oui, pour tout ce qui n’est pas coché dans l’instance. Ce qui est coché garde la valeur propre à l’instance.

Sources officielles

À lire aussi : créer ton premier matériau, la transparence d’un matériau et les variables Blueprint.

Tu veux voir les paramètres en action ? Suis des leçons courtes, des quiz et des mini-projets pour piloter tes matériaux depuis un Blueprint, à ton rythme.

Apprendre Unreal Engine 5 gratuitement

Retour à l’accueil de Learn Blueprints