007 Übung Texture overlay:
»Minetest« bietet zahlreiche Möglichkeiten in der Verwendung und Kombination von Texturen (»texture overlaying«). Ein paar davon wollen wir uns im Folgenden ansehen indem wir einen neu zu programmierenden Glas-Block mit verschiedenen Effekten versehen.
Vorbereitung: Texture Overlay
Gehe zum Ordner »007 Material Übung« auf dem Cloudspeicher und lade Dir von dort per Rechtsklick auf den Ordnernamen oder über die drei Punkte auf der Downloadseite rechts das benötigte Material herunter.
Lege eine neue .lua-Datei an und benenne sie sinnvoll. Um das Grundgerüst des Glas-Blocks zu erhalten, kannst Du einen Großteil der Programmierung des Stein-Blocks aus der vorherigen Übung verwenden. Nur bei der Textur und der Transparenz musst Du etwas anders vorgehen.
Lege eine neue .lua-Datei an und benenne sie sinnvoll. Um das Grundgerüst des Glas-Blocks zu erhalten, kannst Du einen Großteil der Programmierung des Stein-Blocks aus der vorherigen Übung verwenden. Nur bei der Textur und der Transparenz musst Du etwas anders vorgehen.
Passende Befehle suchen:
Gehe zur lokalen Datei »lua_api.txt« in Deinem Minetest-Ordner. Du findest die Datei im Unterordner »doc«:
Öffne die Datei möglichst nicht mit einem Doppelklick. Denn der Standardeditor auf Windows kommt mit der Formatierung der Datei nicht zurecht. Wähle stattdessen per Rechtsklick »Öffnen mit« und nimm das Programm »WordPad« oder gerne auch Deinen Programmiereditor. Falls kein passendes Programm angezeigt wird, wähle »Andere App auswählen« und suche händisch nach einer geeigneten Software.
Das Öffnen der Datei hat geklappt und der Text wird lesbar angezeigt? Dann suche mit der Tastenkombination STRG+F nach dem Begriff »texture overlaying« und lies, wie man mit ^ (= Zirkumflex-Akzent) Texturen kombinieren kann. Probiere es mit den Glastexturen aus dem heruntergeladenen Ordner aus.
Denke daran, in der init.lua-Datei mit »dofile« einen Verweis auf die neue .lua-Datei einzufügen.
Das Öffnen der Datei hat geklappt und der Text wird lesbar angezeigt? Dann suche mit der Tastenkombination STRG+F nach dem Begriff »texture overlaying« und lies, wie man mit ^ (= Zirkumflex-Akzent) Texturen kombinieren kann. Probiere es mit den Glastexturen aus dem heruntergeladenen Ordner aus.
Denke daran, in der init.lua-Datei mit »dofile« einen Verweis auf die neue .lua-Datei einzufügen.
BEIM STARTEN GIBT ES EINE FEHLERMELDUNG?
Du erhältst beim Starten Deiner Minetest-Welt eine Fehlermeldung? Lies die Fehlermeldung aufmerksam. Suche in der Meldung nach Formulierungen wie »datei_namen.lua:<eine Zahl>« oder »at line <eine Zahl>«:
In diesen Zeilen verstecken sich vermutlich die Fehler, die Du korrigieren musst. Meistens geht es um ein fehlendes Komma am Ende einer Zeile, fehlende oder falsch gesetzte Anführungszeichen, falsche Dateinamen oder fehlende oder falsch gesetzte runde oder geschweifte Klammern. Hast Du mit »dofile« Deine neue .lua-Datei korrekt eingebunden?
Hinweis: Manchmal musst Du auch eine Zeile unter oder über den Fehlerangaben schauen.
Hinweis: Manchmal musst Du auch eine Zeile unter oder über den Fehlerangaben schauen.
KEINE TRANSPARENZ ERKENNBAR?
Damit die Transparenz der Textur im Spiel angezeigt wird, musst Du zusätzlich folgende Codezeile in Deine Glas-Block einfügen:
drawtype = "glasslike"
In späteren Sitzungen werden wir sehen, wofür man »drawtype« noch alles verwenden kann.
Informiere Dich:
Suche in der lokalen Datei »lua_api.txt« mit STRG+F die nachgenannten Befehle und finde heraus, wozu sie (unter anderem) dienen:
paramtype = "light" sunlight_propagates
Glasrahmen umfärben:
Lege in Deiner Glas.lua-Datei einen weiteren Glas-Block mit einer umgefärbten Textur an. Dazu gehst Du wie folgt vor:
Öffne die Original-Glasrahmen-Datei »MODNAME_glass_white.png« im Bildbearbeitungsprogramm »Gimp«. Sobald das Bild geöffnet ist, gehe auf BILD | MODUS und wechsle in den RGB-Modus, sonst kannst Du keine Farben verwenden (1). Suche in der linken oberen WERKZEUGPALETTE das kleine Farbfeld für die VORDERGRUNDFARBE (2) – standardmäßig sollte es weiß sein. Klicke darauf und ändere die Farbe nach eigenem Geschmack:
Öffne die Original-Glasrahmen-Datei »MODNAME_glass_white.png« im Bildbearbeitungsprogramm »Gimp«. Sobald das Bild geöffnet ist, gehe auf BILD | MODUS und wechsle in den RGB-Modus, sonst kannst Du keine Farben verwenden (1). Suche in der linken oberen WERKZEUGPALETTE das kleine Farbfeld für die VORDERGRUNDFARBE (2) – standardmäßig sollte es weiß sein. Klicke darauf und ändere die Farbe nach eigenem Geschmack:
Drücke N auf der Tastatur, um das STIFTWERKZEUG zu aktivieren (1). Ändere den Modus auf LINEARE NACHBELICHTUNG (2) und stelle die STIFTSTÄRKE in den WERKZEUGEINSTELLUNGEN auf einen Pixel ein (3). Mit STRG + MAUSRAD zoomst Du in das Bild. Übermale jetzt den weißen Rand mit Deiner Farbe. Wenn Du willst, kannst Du anschließend das Bild wieder mit BILD | MODUS in den indizierten Modus versetzen; nötig ist es aber nicht:
Speichere die geänderte Datei mit DATEI | EXPORTIEREN NACH als .png-Datei in Deinen Texturen-Ordner ab. Wähle in allen Fenster-Dialogen den Button EXPORTIEREN, ohne die Standardeinstellungen zu verändern. Denke an einen sinnvollen Dateinamen. (Hinweis: Wenn Du irgendwann »Gimp« schließen möchtest, meldet das Programm, dass es ungesicherte Änderungen gäbe. Klicke auf ÄNDERUNGEN VERWERFEN.)
Ergänze die Programmierung in Deiner Glas.lua-Datei, um einen weiteren Glas-Block mit der umgefärbten Textur zu erhalten.
Für das Overlay dieses Blocks verwende eine alternative Programmiermöglichkeit. Suche in »minetest.gitlab.io« nach dem Begriff »soft texture overlay« und dort nach »overlay_tiles«.
Ergänze die Programmierung in Deiner Glas.lua-Datei, um einen weiteren Glas-Block mit der umgefärbten Textur zu erhalten.
Für das Overlay dieses Blocks verwende eine alternative Programmiermöglichkeit. Suche in »minetest.gitlab.io« nach dem Begriff »soft texture overlay« und dort nach »overlay_tiles«.
Rezepte für die neuen Blöcke:
Entwerfe für die neuen Glas-Blöcke passende Rezepte. Überprüfe anschließend im FERTIGUNGSFÜHRER, ob sie funktionieren.
QUELLCODE GEÄNDERT, ABER ES SIEHT ALLES AUS WIE VORHER?
Du hast Deinen Quellcode bearbeitet, aber Dein Block sieht noch immer so aus wie vorher, Deine Welt verhält sich nicht anders?
Hast Du Deine Quellcode-Datei gespeichert? Außerdem musst Du nach jeder Änderung das Spiel einmal schließen und neustarten, damit die Änderungen wirksam werden. Drücke hierfür auf der Tastatur die ESC-Taste, klicke auf »Hauptmenü« und öffne anschließend die Welt erneut mit »Spiel starten«.
Hast Du Deine Quellcode-Datei gespeichert? Außerdem musst Du nach jeder Änderung das Spiel einmal schließen und neustarten, damit die Änderungen wirksam werden. Drücke hierfür auf der Tastatur die ESC-Taste, klicke auf »Hauptmenü« und öffne anschließend die Welt erneut mit »Spiel starten«.
SCHON FERTIG?
Dann schaue, was passiert, wenn Du Deinen weißen Rahmen mit Deinem roten Rahmen auf diese Weise kombinierst:
Deine_Textur_glass_white.png^[lowpart:50:Deine_Textur_glas_red.png
Was bewirkt dieser Verkettung:
Deine_Textur_glas_white.png^Deine_Textur_glass_overlay.png^[multiply:#00ff00
Die oben verwendete Zeichenfolge »#00ff00« beschreibt eine Farbe im Hexadezimal-Format. Schaue hier, wie Hexadezimal-Farbwerte aufgebaut sind: de.wikipedia.org. Diese Tabelle ist sehr hilfreich, falls man eine bestimmte Farbe in Hexadezimal-Schreibweise sucht: www.farb-tabelle.de
Welche anderen Kombinationsmöglichkeiten bei der Verwendung von Texturen gibt es noch: minetest.gitlab.io
Welche anderen Kombinationsmöglichkeiten bei der Verwendung von Texturen gibt es noch: minetest.gitlab.io
SCHON FERTIG?
Kombiniere Deinen gefärbten Glasrand mit der Würfel-Textur aus der vorherigen Übung unter Verwendung von »texture modifiers«.
Screenshots erstellen:
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.
Öffne das Inventar in »Minetest« und gib rechts unten im Suchfeld den Namen Deines »Mods« ein (meistens reichen die ersten zwei bis drei Buchstaben). Wähle Deine selbst programmierten Blöcke aus und platziere sie in der Welt mit einem Rechtsklick. Bewege Dich mit WASD und Maus, bis Du einen guten Bildausschnitt gefunden hast. Drücke die Funktionstaste F12, um einen Screenshot der Szene anzufertigen. »Minetest« legt die gemachten Bildschirmfotos im eigenen Programmorder in einem neuen Ordner namens »screenshots« ab:
Öffne das Inventar in »Minetest« und gib rechts unten im Suchfeld den Namen Deines »Mods« ein (meistens reichen die ersten zwei bis drei Buchstaben). Wähle Deine selbst programmierten Blöcke aus und platziere sie in der Welt mit einem Rechtsklick. Bewege Dich mit WASD und Maus, bis Du einen guten Bildausschnitt gefunden hast. Drücke die Funktionstaste F12, um einen Screenshot der Szene anzufertigen. »Minetest« legt die gemachten Bildschirmfotos im eigenen Programmorder in einem neuen Ordner namens »screenshots« ab:
Screenshots für einen Mod-Ordner sollen nicht breiter als 800px sein. Öffne das Bild in »Gimp« und überprüfe die Werte:
Und so gehst Du vor: Suche in der Menüleiste von »Gimp« auf BILD (1) und BILD SKALIEREN ... (2). Ändere bei BILDGRÖSSE den Wert für BREITE (3) auf 800. Achte darauf, dass die VERKNÜPFUNGSKETTE (4) geschlossen ist. Dann wird – sobald Du nach dem Eintragen der Breiten-Angabe die ENTER-Taste drückst – der Wert für HÖHE automatisch berechnet. Schließe das Fenster mit dem Button SKALIEREN.
Speichere Deine Arbeit mit DATEI (5) und »screenshot_Datum_Uhrzeit.png überschreiben« (6). Schließe »Gimp«. Falls ein Warnhinweis auf ungesicherte Bilder kommt, klicke auf ÄNDERUNGEN VERWERFEN. Wahlweise kannst Du das Ausgangsdokument auch über DATEI | SPEICHERN ... im gimpeigenen Format .xcf speichern, falls Du es später noch einmal bearbeiten möchtest.
Gehe anschließend erneut in den screenshots-Ordner von »Minetest« und kürze den vorhandenen Namen »screenshot_Datum_Uhrzeit.png« auf ein einfaches »screenshot.png«. Kopiere die umbenannte Datei in Deinen Mod-Ordner.
Hinweis: Falls Du Dich schon ein wenig mit »Gimp« auskennst, kannst Du natürlich auch statt BILD SKALIEREN mit dem Werkzeug ZUSCHNEIDEN die Bildgröße bearbeiten und noch weitere Bildmanipulationen vornehmen.
Speichere Deine Arbeit mit DATEI (5) und »screenshot_Datum_Uhrzeit.png überschreiben« (6). Schließe »Gimp«. Falls ein Warnhinweis auf ungesicherte Bilder kommt, klicke auf ÄNDERUNGEN VERWERFEN. Wahlweise kannst Du das Ausgangsdokument auch über DATEI | SPEICHERN ... im gimpeigenen Format .xcf speichern, falls Du es später noch einmal bearbeiten möchtest.
Gehe anschließend erneut in den screenshots-Ordner von »Minetest« und kürze den vorhandenen Namen »screenshot_Datum_Uhrzeit.png« auf ein einfaches »screenshot.png«. Kopiere die umbenannte Datei in Deinen Mod-Ordner.
Hinweis: Falls Du Dich schon ein wenig mit »Gimp« auskennst, kannst Du natürlich auch statt BILD SKALIEREN mit dem Werkzeug ZUSCHNEIDEN die Bildgröße bearbeiten und noch weitere Bildmanipulationen vornehmen.
Schon fertig?
Wie sieht es mit den Dateien »mod.conf« und »README.md« aus? Sind hier vielleicht Ergänzungen nötig?
BITTE IMMER BEACHTEN:
Wenn hier in der Aufgabenbeschreibung oder im vorgegebenen Übungsmaterial Ordner- und Dateinamen auftauchen, musst Du sie (fast immer) an Deine verwendeten Order- und Dateinamen anpassen.
Denke immer an die Namenskonventionen (keine Umlaute oder sonstige Sonderzeichen, keine Leerzeichen, alles kleinschreiben, keine Bindestriche, sondern Unterstriche, das erste Zeichen darf keine Ziffer sein ...).
Beim Programmieren machst Du Dir das Leben sehr viel einfacher, wenn Du zusammengehörige Elemente, die in geschweiften oder runden Klammern stehen, mit der TAB-Taste immer etwas nach folgendem Muster einrückst. So behältst Du leichter den Überblick:
Denke immer an die Namenskonventionen (keine Umlaute oder sonstige Sonderzeichen, keine Leerzeichen, alles kleinschreiben, keine Bindestriche, sondern Unterstriche, das erste Zeichen darf keine Ziffer sein ...).
Beim Programmieren machst Du Dir das Leben sehr viel einfacher, wenn Du zusammengehörige Elemente, die in geschweiften oder runden Klammern stehen, mit der TAB-Taste immer etwas nach folgendem Muster einrückst. So behältst Du leichter den Überblick:
groups = { cracky = 3, stone = 1 }
Für Ordner- und Dateinamen solltest Du Dir eine eigene Namens-Systematik ausdenken und streng befolgen. Dann kannst Du schnell mal den Quellcode aus einem »Mod« in einem anderen »Mod« verwenden und musst nur kleine Änderungen vornehmen.
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.