Hallo zusammen,
heute würde ich euch gerne einen kleinen Trick zeigen, wie ihr euren Maps noch etwas mehr Leben einhauchen könnt! Dafür machen wir uns die Funktion der "Schleife" zu Nutze.
Aber was genau ist eine Schleife?
Nun - im Grunde genommen handelt es sich hierbei um eine Abfolge von Aktionen, welche am Ende ihres Ablaufes von vorne unbegrenzt häufig wiederholt werden.
Unser Ziel:
Man erkennt, dass der Wettereffekt unabhängig davon angezeigt wird, ob man sich gerade in einem Gespräch befindet oder nicht. Das Gameplay wird also nicht davon beeinträchtigt, lediglich allgemein pausierende Funktionen (wie das Spielmenü) nehmen Einfluss auf unseren Effekt.
Da es sich um ein "kurzes" Tutorial handelt, wurde der Sound nicht in mehreren Abstufungen in der Lautstärke angepasst, was aber neben anderen, später beschriebenen Ergänzungen nachträglich erprobt werden kann.
Vorbereitung:
Als Erstes erstellen wir ein neues Event! Ihr könnt jetzt entscheiden, ob dies übergreifend (für weniger spezifische Wetterlagen gut wieder verwertbar) oder auf einer bestimmten Karte mit stärkerer individuellen Note (beispielsweise für einzigartige Umgebungen) erstellt werden soll.
- Für individuelle Maps:
Das Event wird direkt auf der Map platziert, wo ihr den Effekt haben möchtet. - Übergreifend:
Hierfür greifen wir auf ein "Common Event"/"Gewöhnliches Event" (je nach eingestellter Sprache eures Makers) zurück. Diese findet ihr in der Datenbank in einem eigenem Register.
(Für individuelle Maps)
Schritt 1:
Öffnet euer Event und sucht auf der ersten Seite an Event-Befehlen nach dem Eintrag "Schleife" unten links im Befehls-Block.
Nachdem ihr dies getan habt dürftet Ihr folgende Struktur in eurem Event-Code vorfinden.:
Schritt 2:
Nun haben wir bereits eine Grundlage und können nach Belieben verschiedene Funktionen einfügen! Für unser Beispiel greifen wir erst einmal auf die Funktion des "Screentone/Bildschirm tönen" zurück. Diesen finden wir auf der 2. Event-Befehle-Seite, rechts.
Nachdem wir diesen Befehl ausgewählt haben, können wir nun aus einer kleinen Auswahl vor eingestellter Effekte zurückgreifen oder uns nach Herzenslust selbst mit den Farben austoben!
Für unser Beispiel stellen wir folgende Werte ein:
Dies bewirkt folgendes Verhalten:
- Über eine Dauer von 180 Frames (~3 Sekunden) verdunkelt sich der Bildschirm etwas. Dies kann das Aufziehen von Wolken darstellen. Da das Häkchen bei "Warten auf Schluss" steht, wird der darauf folgende Event-Code erst gestartet, wenn das Überblenden des Bildschirmtones abgeschlossen wurde.
Schritt 3:
Um nun noch etwas mehr Abwechslung zu erzeugen, erstellen wir einen kleinen Regeneffekt, welcher aus den aufgezogenen Wolken resultieren soll. Dafür wählen wir aus der Event-Befehl-Übersicht folgenden Punkt der 2. Seite aus:
Und werden nun von diesem Fenster begrüßt, welches wir wie folgt einstellen:
Bild_7_Regen-Einstellungen.png
Dies führt dazu, dass der ohnehin eher weniger stark einblendbare Regen ungefähr innerhalb von ~ 5 Sekunde auf das Einblenden der dunklen Wolken folgt und mit maximaler Stärke (welche bei den Standard-Effekten immer noch eher leicht ausfällt) startet.
Hier verzichten wir auf die Option des Abwartens, bevor weiterer Event-Code ausgeführt werden soll. Dies hat den Grund, dass wir einen direkten Übergang hin zum darauf folgenden Effekt erzielen möchten.
Schritt 4:
Nachdem wir nun einen abgedunkelten Bildschirm und einen Regeneffekt haben, fehlt noch etwas sehr Wichtiges - der passende Sound! Also erstellen wir wieder einen neuen Event-Code, indem wir aus der bereits bekannten Auflistung auf Seite 2 folgenden Button betätigen:
Dies führt uns zu folgendem Fenster, wo wir aus den mitgelieferten Sounds des RTPs (Run-Time-Package - das mitgelieferte Set an Grafiken, Sounds und Musik) den Sound "Rain2" mit folgenden Optionen auswählen.
Diese Einstellungen sorgen dafür, dass der Sound nur bei 30% Lautstärke hörbar ist (was immer noch laut genug sein dürfte, da die vor eingestellten Lautstärkewerte im Maker eher zu laut, als zu leise sind).
Zusätzlich könnte man jetzt noch die Tonhöhe und den Schwerpunkt der Richtung einstellen (links oder rechts), von wo der Sound zu hören ist. Für unsere Zwecke reicht es jedoch, wenn wir diese zusätzlichen Optionen unangetastet lassen.
Schritt 5:
Nun setzen wir einen simplen "Wait/Warten-Befehl von 960 Frames (~16 Sekunden), welcher die Dauer unserer bisherigen Einstellungen markiert.
Bild_11_Warten_Befehl_Einstellungen.png
Zwischenstand:
Unser Event-Code sollte nun folgender maßen ausschauen:
Wir haben nun bereits definiert, wie sich die Wolken zuziehen sollen, der Regen eingeblendet wird und ein (halbwegs) passender Sound startet. Dasselbe müssen wir jetzt noch für einen etwas klareren Himmel einstellen, um wirklich Gebrauch von den Funktionen der Schleife machen zu können!
Schritt 6:
Wir starten wieder mit dem Screentone/Bildschirmton - neben Sound & Musik dem (meiner Meinung nach) mächtigsten Werkzeug zur Erzeugung von Stimmung im Maker! Da wir nun bereits über eine Grundstruktur verfügen, können wir den Befehl aus unserer Struktur heraus kopieren und ganz unten, unterhalb des Warten/Wait-Befehles einfügen.
Dieses Mal nutzen wir folgende Optionen, da ich persönlich die Standard-Einstellungen von 0 sehr "blank" und weniger stimmungsvoll finde.
Schritt 7:
Wir nähern uns dem Ende! Parallel zur bisherigen Struktur ist nun der Wettereffekt dran. Diesen Befehl können wir ebenfalls kopieren und unterhalb des letzten Event-Befehles einfügen. Hier ändern wir die Optionen nun wie folgt:
Bild_14_Ende_des_Regens.png
Schritt 8:
Nun haben wir die Wahl, ob wir nach dem Regen einen subtilen, alternativen Sound abspielen möchten - beispielsweise leises Vogelzwischern, herabfallende Regentropfen von Blättern oder etwas ganz anderes. Da wir es in diesem Tutorial jedoch simpel halten möchten und die mitgelieferten Sounds verwenden, stellen wir in einem erneut kopierten Event-Code (erneut unten eingefügt) nun folgendes ein:
Sind wir nun am Ziel angekommen? Nicht ganz! Wer es sich (mit dem richtigen Auslöser des Events) nicht nehmen lassen konnte, schon mal das Ganze in Aktion zu testen wird bemerken, dass der Übergang noch nicht so ganz hin haut. Das liegt daran, dass wir am Ende als letzten Befehl noch einmal ein "Wait/Warten" setzen müssen, da es sonst sofort wieder zu regnen beginnt.
Endspurt:
Unser Code sollte nun folgendermaßen ausschauen:
Nun dürfen wir jedoch ein kleines Detail nicht vergessen, welches davon abhängt, welche Wahl wir zu Anfang getroffen haben. Wir kommen nochmal auf den Auslöser zu sprechen. Im obigen Bild kann man sehen, wie dieser bei normalen Events standardisiert auf "Aktionstaste" steht.
Für Effekte, welche jedoch parallel zur Tasteneingabe des Spielers geschehen sollen, benötigen wir hier die Option: "Parallel".
Nun sollte bei euch alles wie gewünscht funktionieren - ihr habt es geschafft!
---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ----
Bonus: Alternatives Szenario - Common Event/Gewöhnliches Event:
Solltet ihr den Code zu Anfang in einem übergreifenden Event gestartet haben, müsst ihr hier noch ein paar kleine Details beachten.
- Der Übersicht halber sollten Events gerade hier einen prägnanten Namen erhalten.
- Auch hier gilt es, den Auslöser auf "Parallel" einzustellen.
- Zusätzlich muss ein Schalter definiert werden (am besten ebenfalls klar benennen), welchen ihr dann auf den verschiedensten Maps mit einem normalen Event aktivieren könnt. Der "ausgelagerte" Event-Code des "Common Event/Gewöhnlichen Event" wird dann auf den Maps ausgelöst, ohne dass man diesen kopieren müsste.Dies ist besonders ratsam bei komplexen Code, um diesen an einem Ort stets aktuell zu halten. Es gibt kaum etwas nervenaufreibenderes, als sich leichte Variationen desselben Codes an verschiedene Stellen seines Spieles zu kopieren und dann nach einer Weile nach den Unterschieden suchen zu müssen, damit alles miteinander harmoniert.
Macht ausgiebig Gebrauch von der Stärke dieser Event-Klasse!
Damit dieser Code nun auf den jeweiligen Maps auch aktiviert wird, sprechen wir den definierten Schalter (in diesem Falle Schalter #20 mit dem Namen "Schleife_Regenschauer" <- Event-Charakter + Beschreibung des Effektes) in einem sehr simplen Standard-Event direkt auf der Map an:
Bild_20_Schalter_Einstellungen.png
Außerdem fügen wir noch den Event-Befehl "Ereignisbearbeitung beenden/Erase Event" hinzu, da der Schalter nur ein einziges Mal aktiviert werden muss und das Event danach nicht mehr benötigt wird.
Wir dürfen nun wieder nicht vergessen, den Auslöser auf "Parallel" zu setzen, dann sollte das Event auf der Map folgendermaßen ausschauen:
Achtung! Der Schalter (in diesem Fall #20) bleibt nun solange aktiv, bis ihr ihn wieder deaktiviert!
Wenn ihr also ein Gebäude, eine Höhle oder Ähnliches betretet, bzw. für eine Zwischensequenz gerade volle Kontrolle über Bildschirmton, Hintergrundsound und Wettereffekte benötigt, vergesst nicht auf die nun erlernte Art und Weise den Schalter bei einem Teleport-Event oder im Rahmen eures Zwischensequenz-Events wieder auf "AUS" zu stellen!
Sobald dies geschieht, wird das Common Event/Gewöhnliche Event wieder inaktiv, bis ihr die Map erneut betretet oder auf einer anderen Map mit dem kopierten Trigger-Event Gebrauch davon machen möchtet.
Ich hoffe euch konnte dieses "kleine" Beispiel dabei behilflich sein, euch an das Thema "Schleifen" heranzutasten. Das Ganze lässt sich auch für wesentlich komplexere Abläufe, wie verknüpfte Dialoge, Rätsel, Minispiele etc. anwenden, wozu dann auch "Labels" ein praktisches Werkzeug wären. Aber das wäre Futter für ein eigenes Tutorial.
Viel Spaß beim Ausprobieren und variiert die Werte ruhig! Jeder wird da andere Vorlieben haben und vielleicht möchtet ihr das Ganze ja auch noch um folgende Beispiele erweitern:
- Nebeleffekte
- verschiedene Abstufungen der Intensität des Regens
- zwischenzeitliche Schwankungen im Screentone bei "klarem Himmel", welche kleine Wolken vor der Sonne symbolisieren, welche schnell wieder verschwinden
- zusätzliche SE (Sound-Effekte), welche in bestimmten Abständen abgespielt werden sollen - beispielsweise für einzelne Blitze
- etc.
Bei Fragen oder Anregungen könnt ihr hier gerne einen Kommentar hinterlassen!