Alles was durch eine Materialfunktion geht in der Instanz nicht mehr vorhanden?

  • Hallo zusammen.


    Ich bin gerade dabei mein Grundmaterial etwas zu verbessern und eben halt auch aufzuräumen.


    Normalerweise gehe ich ja wie folgt vor.


    Material erstellen, als Texturnodes nehme ich dann Textureparameter 2D. Dann arbeite ich mich halt mit allem was mit der Textur passieren soll durch bis zum Ausgang, zum Beispiel Basecolor. Dann erstelle ich eine Instans und kann dann da eben halt die Textur ändern, die Parameter usw., halt alles was ich da so dynamisch verstellen kann.


    Nun wollte ich das Material etwas optimieren. Dazu gehörte auch das ich an Stelle der ganzen Nodes zwischen Textur und Ausgang einfach alles in eine Fuction gepackt habe. Funktionsinput ist dann halt die Textur, Output das Ergebnis.


    Dann habe ich die Funktion ins Material eingebaut und an den Input wieder Texturparameter 2D angepappt. Aber jetzt kann ich in der Instanz weder die Textur noch die Parameter ändern. Die Parameter wäre vielleicht ja noch zu erklären, weil die sind halt nun in der Funktion. Allerdings ist Textureparameter 2D ja immer noch im Material und auch das bekomme ich in der Instanz nicht mehr zu sehen.


    Wie kriege ich das hin das ich alles was ich in und an der Funktion habe wieder als Zugriff in der Instanz bekomme?

    • Offizieller Beitrag

    Ich weiß ja nicht ob die die Materials selber erstellt hast, Ich weiß nicht was du alles geändert hast. Du hast auch kein Screenshot angehängt und meine Kristallkugel ist zurzeit in Reparatur aber ich versuchs trotzdem mal (Ich rate einfach mal:)


    Material haben häufig Abhängigkeiten sog. Parent Materials.


    1.Ein Parent Material kann beispielsweise schwarzes Plastic sein.

    2. Die Instanz vom Parent ist das Child Material das die Farbe Rot hat.

    3. Eine weitere Child Instanz hat die Farbe Grün.


    Schwarz = Parent

    Rot, Grün = Child


    Ohne das Parent Material funktionieren die Childs nicht mehr.

    Das heißt wenn du das Parent Mat gelöscht oder verschoben hast, funktioniert nichts mehr.


    https://docs.unrealengine.com/…wTo/Instancing/index.html


    Dort einfach mal nach Parent suchen.

  • Ja, war gestern etwas spät wegen Screenshots. Hatte halt lange herumgefummelt. Geändert habe ich eigentlich nichts, ich wollte ja nur ein wenig aufräumen und eben halt Funktionen erstellen damit ich diese eventuell auch flexibler benutzen kann.


    Und jetzt wird es ganz bescheuert. Für die Screenshots habe ich jetzt das Original Material wieder zurückmodelliert und dann wieder mit Funktion und es funktioniert. Langsam Zweifel ich so an meinem Verstand. Ich schreibe nochmal, wenn das Problem erneut auftaucht. Oder ich sollte nicht zu lange an dem Projekt arbeiten, vielleicht liegt es auch nur daran.

    • Offizieller Beitrag

    Und jetzt wird es ganz bescheuert. Für die Screenshots habe ich jetzt das Original Material wieder zurückmodelliert und dann wieder mit Funktion und es funktioniert. Langsam Zweifel ich so an meinem Verstand.

    Früher sind sie wegen fallenden Aktienkursen aus dem Fenster gesprungen heute wegen der Unreal, das ist ganz normal :) Willkommen in der Wundersamen Welt von Unreal

  • Ja ne danke. Gut das ich im Erdgeschoss mein "Büro" habe. Aber keine Sorge ganz so verzweifelt bin ich dann auch nicht. Also weder bei meinen Aktien, obwohl die echt scheiße aussehen, noch wegen der Unrealengine.


    Aber ich möchte mal wirklich wissen was ich da jetzt anders gemacht habe und warum es jetzt funktioniert. Es ist nur eine einzige Pin die ich da anschließen muss. Das kriege ich eigentlich auch übermüdet hin. Material habe ich auch gespeichert und auf Apply geklickt, also eigentlich....



    OK, bloß nicht drüber nachdenken.

  • Aber eine Frage hätte ich da vielleicht doch noch.


    Und zwar geht es um die Materialfunktion Inputs. Ich habe zwar schon einige Funktionen geschrieben, aber jetzt habe ich da doch eine etwas komplexere Funktion.


    Kann man irgendwie prüfen, ob ein Inputpin belegt ist und dementsprechend im Materialcode verzweigen? Ich habe jetzt erstmal einfach alle Inputs gesetzt und verbunden usw., jedoch sind nicht notwendigerweise alle belegt oder leer. Dann gibt es allerdings immer einen Error.


    Ich habe schon nach Boolschen Variablen geschaut und auch Branch usw. Aber bei Materialien scheint das alles irgendwie anders zu laufen. Dynamic Branch scheint irgendwie gar nicht zu funktionieren, mal abgesehen das es nicht wie gewohnt mit Boolean funktioniert, sondern mit Alpha, dann kann ich eigentlich ja auch Lerp nehmen. Und irgendwie finde ich auch in Google nichts im Zusammenhang mit Boolschen Werten im Material.


    Also eine boolsche Auswertung wäre schon sehr schön. Und, wenn es nur ist das ich in der Materialinstanz ein Häkchen nach Bedarf setzen kann und dieses halt entsprechenden Materialverlauf beeinflusst. Mal als Beispiel, wenn ich ein Material habe Metall oder so. Nun mache ich vom Metall halt einige Instancen, Gold, Kupfer, Eisen, und Eisen kann halt Korrodieren, das ich dann ein Häkchen setze, das Korrosion möglich ist.