008 Übung Framed:
Ziel dieser Übung ist es, weitere Möglichkeiten des Textureinsatzes kennenzulernen. Dabei kommen unter anderem die Befehle »glasslike_framed« und »backface_culling« zum Einsatz:
VORBEREITUNG:
VORBEREITUNG:
Lade das benötigte Material »008 Material Übung« herunter.
Das nachfolgende Video zeigt Dir, wie sich Blöcke, die die Eigenschaft »glasslike_framed« besitzen, zusammenfügen:
Lade das benötigte Material »008 Material Übung« herunter.
Das nachfolgende Video zeigt Dir, wie sich Blöcke, die die Eigenschaft »glasslike_framed« besitzen, zusammenfügen:
glasslike_framed verwenden:
Lege eine neue .lua-Datei an und verwende als Texturen »MODNAME_framed_outside.png« und »MODNAME_framed_inside.png«. Passe die Namen für Deinen Mod an.
Du kannst für die neue .lua-Datei einen Großteil des Quellcodes aus den vorherigen Übungen verwenden. Der drawtype muss aber jetzt auf glasslike_framed gesetzt werden.
Starte anschließend Deine Minetest-Welt neu und teste, ob sich die Blöcke korrekt zusammenfügen.
Du kannst für die neue .lua-Datei einen Großteil des Quellcodes aus den vorherigen Übungen verwenden. Der drawtype muss aber jetzt auf glasslike_framed gesetzt werden.
Starte anschließend Deine Minetest-Welt neu und teste, ob sich die Blöcke korrekt zusammenfügen.
Was bedeutet eigentlich glasslike_framed?
Lies hier, was es mit »glasslike_framed« auf sich hat: Minetest Modding Book
Frage: Welcher Teil der Rahmentextur wird verwendet? Sieh in der lokalen lua_api.txt-Datei in Zeile 1115 nach. Was passiert, wenn Du die Rahmentextur in »Gimp« öffnest und mit BILD | BILD SKALIEREN ... Breite und Höhe vervierfachst (abgesehen davon, dass die Textur danach leicht unscharf wirkt)? Um den Effekt besser beurteilen zu können, male in Gimp mit dem STIFT (N) und einer STIFTSTÄRKE von 1px senkrechte Referenzpunkte verschiedener Längen vom oberen Rand in einer abweichenden Farbe. Was bewirkt die (Änderung der) Reihenfolge, in der die Texturen genannt werden? Probiere es aus.
Übrigens: Trotz des Befehlsnamens glasslike_framed muss keine der verwendeten Textur »glasartig« sein.
Frage: Welcher Teil der Rahmentextur wird verwendet? Sieh in der lokalen lua_api.txt-Datei in Zeile 1115 nach. Was passiert, wenn Du die Rahmentextur in »Gimp« öffnest und mit BILD | BILD SKALIEREN ... Breite und Höhe vervierfachst (abgesehen davon, dass die Textur danach leicht unscharf wirkt)? Um den Effekt besser beurteilen zu können, male in Gimp mit dem STIFT (N) und einer STIFTSTÄRKE von 1px senkrechte Referenzpunkte verschiedener Längen vom oberen Rand in einer abweichenden Farbe. Was bewirkt die (Änderung der) Reihenfolge, in der die Texturen genannt werden? Probiere es aus.
Übrigens: Trotz des Befehlsnamens glasslike_framed muss keine der verwendeten Textur »glasartig« sein.
DEINE NEUE NODE WIRD GAR NICHT ANGEZEIGT?
Denke daran, in der init.lua-Datei mit dofile einen Verweis auf die neue .lua-Datei einzufügen und nach jeder Änderung die Welt neu zu starten.
backface_culling verwenden:
Das Video unten zeigt Dir, wie sich der Befehl »backface_culling« auswirkt. Beim linken Objekt ist der Befehl aktiv, beim rechten nicht:
Erklärung: »Minetest« lässt aus Geschwindigkeitsgründen standardmäßig hintere (nicht direkt sichtbare) Seiten ungerendert. Das führt aber für unsere halbtransparenten Objekte zu seltsamen Effekten. Darum müssen wir »Minetest« zwingen, immer alle Flächen und Kanten unserer Nodes zu berechnen. Der Befehl hierfür lautet »backface_culling«.
Ergänze die oben angelegte .lua-Datei so, dass Du drei neue Nodes erhältst (linke offene Node, mittlere beidseitig offene Node, rechte offene Node). Durch den Mittelteil können wir später beliebig lange »Schläuche« bauen, die sich mit einer linken und rechten »Kappe« abschließen lassen.
Ergänze die oben angelegte .lua-Datei so, dass Du drei neue Nodes erhältst (linke offene Node, mittlere beidseitig offene Node, rechte offene Node). Durch den Mittelteil können wir später beliebig lange »Schläuche« bauen, die sich mit einer linken und rechten »Kappe« abschließen lassen.
Du kannst für die neuen Nodes einen Großteil des Quellcodes aus Übungen »glasslike_framed« verwenden. Anpassen musst Du für das »backface_culling« jedoch die Code-Zeilen unter tiles:
tiles = { { name = "MODNAMEN_gold_framed_... .png", backface_culling = false } }
Mit dem Quellcode in dieser Form würden jedoch alle Seiten identisch aussehen. Die Anweisung innerhalb der inneren geschweiften Klammer muss daher insgesamt 6x mit den jeweils passenden Texturen ausgeführt werden. Finde heraus, wie Du die Texturen mit dem Namensbestandteil »...gold_framed... .png« kombinieren musst, um das gewünschte Ergebnis zu erhalten. Passe dabei die Namen entsprechend Deinem Mod an.
Wichtig: Der drawtype muss auf nodebox stehen, sonst funktioniert backface_culling nicht. Und denke daran, die Kommas an die richtige Stelle am Ende der Zuweisung name = zu setzen.
Wichtig: Der drawtype muss auf nodebox stehen, sonst funktioniert backface_culling nicht. Und denke daran, die Kommas an die richtige Stelle am Ende der Zuweisung name = zu setzen.
Fehler in Der Textur?
Wenn Du nach getaner Programmierarbeit die drei Nodes in der Minetest-Welt mit Rechtsklick zu einem großen Block zusammenstellst und um das Objekt herumwanderst, merkst Du, dass die Texturen nicht überall nahtlos ineinander übergehen. Was kannst Du tun, um den Fehler zu beheben?
Tipp: Du musst die Texturen auf der »Rückseite« der linken und der rechten Node mit ^[transform<t> um die x-Achse spiegeln. Schaue in die API (lua_api.txt), um zu erfahren, welchen Wert <t> hierbei annehmen muss.
Tipp: Du musst die Texturen auf der »Rückseite« der linken und der rechten Node mit ^[transform<t> um die x-Achse spiegeln. Schaue in die API (lua_api.txt), um zu erfahren, welchen Wert <t> hierbei annehmen muss.
Schon fertig?
Entwerfe passende Rezepte für Deine neuen »Nodes«. Überprüfe anschließend im FERTIGUNGSFÜHRER, ob sie funktionieren.
SCHON FERTIG?
Welche Kombinationsmöglichkeiten mit den Texturen aus den vorherigen Übungen fallen Dir noch ein?
SCHON FERTIG?
Du hast weitere »Items« für Deinen »Mod« programmiert. Also solltest Du auch den Screenshot aktualisieren, damit man sofort erkennt, was Dein »Mod« jetzt alles an Neuigkeiten zu bieten hat.
SCHON FERTIG?
Wie sieht es mit den Dateien »mod.conf« und »README.md« aus? Sind hier vielleicht Ergänzungen nötig?
MUSTERLÖSUNG: SO KÖNNTE ES AUSSEHEN
Versuche zunächst, eine eigene Lösung für die gestellten Aufgaben zu finden. Falls Du aber alleine nicht weiterkommst, kannst Du Dir unsere Musterlösung herunterladen.
Beachte: Da es sich um eine Musterlösung handelt, kann Dein Quellcode am Ende ganz anders aussehen. Das fängt schon bei den Ordner- und Dateinamen an, die Du für Deinen »Mod« gewählt hast. Solange Dein »Mod« aber funktioniert, ist eine Lösung so gut wie die andere ...
Beachte: Da es sich um eine Musterlösung handelt, kann Dein Quellcode am Ende ganz anders aussehen. Das fängt schon bei den Ordner- und Dateinamen an, die Du für Deinen »Mod« gewählt hast. Solange Dein »Mod« aber funktioniert, ist eine Lösung so gut wie die andere ...
Verwendung dieser Inhalte - auch in Auszügen - im Schulunterricht, der Jugendarbeit und im Bildungsbereich mit dem Vermerk »© multimediamobil – Region Süd« erlaubt.