Mais expliquons un peu le souci. :gne2:

Faites une petite scène « sphère et plan » puis faite un override d’assignation de shader mais videz le nom du shader :

Puis connectez l’override à la branche principale. Comme vous pouvez le constater, l’assignation reste faite en bout de graph :

Bon sang, quand j’override par « rien du tout » Guerilla garde la valeur de l’override original. :gne:

Et Guerilla semble sciemment considérer que vous avez fais une erreur :

On va résoudre ça.  :enerve: Supprimez l’assignation puis créez un nœud de Script (Ctrl+Espace, « scri », Entrée):

Connectez le dans le graph à la place de votre assignation précédente :

Regardez ses attributs. Le script arrive avec un petit exemple pour illustrer son comportement. Mais nous n’allons pas en avoir besoin. Supprimez les deux propriétés (en cliquant sur les croix en haut à droite), puis cliques sur le bouton « Edit »:

Sans vous soucier des commentaires regardez ce que vous avez :

if Input then
	Output = duplicate (Input)
	Output["variable."..ColorName] = CustomShaderColor
end

Je vous explique rapidement : Ce script duplique la table (c’est la structure de données en lua) Input en Output, modifie l’entrée « variable.DiffuseColor » (car il récupère la valeur de l’attribut « ColorName » que nous avons supprimé précédemment) pour lui mettre la valeur de l’attribut « CustomShaderColor » que nous avons, lui aussi, supprimé (c’était la couleur rouge). :tuComprendRien:

On va utiliser ce mécanisme pour venir supprimer l’assignation du shader. Mais reste la question : Quel est le nom de l’attribut à modifier ? :reflexionIntense:

Pour cela rien de plus simple : Ouvrez la console (menu « View|Show/Hide console (Alt+2) »), sélectionnez votre sphère puis faites Shift+D. Ceci va afficher, dans la console, la liste de tous les attributs ainsi que leur valeur telles qu’elles seraient envoyées au rendu. Cherchez « shader »:

shade.shadebothsides: 0
shade.textureapproximation: "glossy"
shade.texturemaxsize: 0
shader.displacement: ""
shader.surface: "Surface"
shader.volume: ""
shape.cached: 1
shape.combineprocedural: 0
shape.compression: 0

Vous l’avez ! « shader.surface » (ou « shader.volume » ou même « shader.displacement » si vous souhaitez supprimer le shader de displacement).

Modifiez le script pour supprimer l’assignation :

if Input then
	Output = duplicate (Input)
	Output["shader.surface"] = ""
end

Sauvez Ctrl+S puis vérifiez par vous même :

Comme vous pouvez le voir, le shader est désassigné. :laClasse:

En espérant que ça en débloque certains.

À bientôt !

Dorian

:marioCours: