Ergebnis 1 bis 20 von 27

Thema: Dungeon Sounds

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #22
    Neues aus der Gruft!

    Wir sind nach wie vor dabei die Atmosphäre im Spiel zu verdichten, also gibt es ab sofort: Kerzen!



    Wer sich noch an den Post über unser Mappingsystem erinnert, dem fällt sicher auf: Einzelne Kerzen zu platzieren ist gar nicht mal so einfach! Da wir Objekte eigentlich nur auf einem Tile-Raster mittels Skriptbefehl aufstellen können war uns schnell klar, dass wir so nicht weiterkommen. Unsere Vorstellung war, ganze Räume mit Kerzen zu schmücken und so die Stimmung deutlich zu erhöhen.

    wie sind wir also vorgegangen? Ich präsentiere, Kerzentexturen:


    Ähnlich wie wir unseren Dungeon mittels einer Textur speichern, verfahren wir mit den Kerzen. Jeder graue Punkt erzeugt eine Kerze im Spiel, wobei die Helligkeit des Pixels bestimmt, wie hoch die entsprechende Kerze platziert wird.




    Die Kerzentextur ist quasi eine detailreichere Variante der Dungeonkarte und wird im Spiel einfach über diese drauf gelegt. Im Bild sieht man gut, wie die Textur ( die in diesem Fall eine Fläche von 3x3 Dungeontiles abdeckt) in das Spiel integriert wird. Durch die höhere Auflösung können so genauer die Kerzen plaziert werden. In einer Kerzentextur wird ein Feld mit 20x20 pixel beschrieben, theoretisch könnten also 400 Kerzen paziert werden.
    Die Größe der Kerzentextur ist übrigens variabel, muss nur jeweils durch 20 teilbar sein. eine Kerzentextur kann also ein einzelnes Feld, oder einen ganzen Raum abdecken!

    Ein Kerzenareal wird dynamisch mittels einer Skriptzeile eingebunden:

    Code:
    addCandleArea( String path, Int maxheight, int candleType, Vec2 position, Int id);
    Parametererklärung:
    path Pfad zur Kerzentextur
    maxheight Höhenmodifikator - er bestimmt, wie hoch eine Kerze maximal plaziert werden kann. Die tatsächliche Höhe wird interpoliert von Schwarz (0) bis Weiß (Höhenmodifikator).
    candleType Kerzentyp. Wir haben sowohl Weiße (0), als auch rote (1) Kerzen.
    position Position des Areals auf der Dungeonkarte
    id Id des Objektes, um es später anzusprechen und zu modifizieren.

    Großartig! damit ist alles erklärt!
    Nein halt, vielleicht ist dem ein oder anderen aufgefallen, dass die Kerzentextur noch eine weitere Information speichert. Die Farbe, die eine Kerze umgibt, legt fest, wie spät sie entzündet wird.

    Mittels des skriptbefehls

    Code:
    lightCandle(Int id, bool ignite);
    Ist es möglich die Kerzen per Skript zu aktivieren. Dies war uns wichtig für Cutscenes oder wenn Räume betreten werden! Die Kerzen werden zeitversetzt aktiviert, je nach Farbwert, der sie umgibt: Die roten Bereiche werden später aktiviert, als die grünen. Durch saubere Verläufe in der Textur können schöne Effekte erzeugt werden, hier ein letztes Beispiel:



    die dazugehörende Kerzentextur:

    Bis nächste Woche!

    Geändert von csg (14.05.2016 um 17:10 Uhr)

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •