Ergebnis 1 bis 3 von 3

Thema: Screenton verändern mit Hilfe von Variablen?

  1. #1

    Screenton verändern mit Hilfe von Variablen?

    Wie oben gesagt wollte ich wissen, ob so etwas geht...
    Ich sollte vielleicht noch erwähnen das ich den rm2k benutze
    z.B. wenn man bei einem Tag-Nacht-Wechsel bei einer bestimmten Zeit sich der Screenton verändert und da dann halt überprüft wird ob es regnet, und sich der Gamma-Wert sich dann z.B. verringert damit es ein bisschen trüber aussieht...
    Also so sollte es in etwa aussehen:

    Code:
    <>Bedingung:Varbl[abcd:Tag-Nacht-Timer]-354
     <>Scrn-Ton setzen:(R050,G050,B080,S100),6.0Sek(W)
     <>
    :Ansonsten
     <>Bedingung:Varbl[abcd:Tag-Nacht-Timer]-474
      <>Scrn-Ton setzen:(R080,G080,B100,S100),6.0Sek(W)
      <>
    und so geht es dann weiter
    Geht das dann das man in einem Parallelevent überprüft ob es regnet (und das kann ja jederzeit sein) und wenn es regnet die Gamma-Variable auf 50 verringert wird?

    EDIT:
    omg mir is grad eingefallen wie es gehen könnte o.O
    thread bitte löschen oder schließen... danke!

    Geändert von LotW89 (26.01.2006 um 18:23 Uhr)

  2. #2
    Dann teile bitte deine Weisheit, das würde mich auch interessieren.

    Ich hatte vor kurze nämlich ein ähnliches Problem, während ich meinen Tag ~ Nacht-Zyklus geplant habe. Ich wollte das Ganze mit Uhrzeiten machen, aber ich wollte es umgehen, dass der Wechsel zu plötzlich erfolgt oder ich eine MM-artige Einblendung "Tag" und "Nacht" machen muss. Daher wollte ich, dass sich der Tone den ganzen Tag über durchgehend verändert.
    Da hat man aber dann das Problem: was, wenn man irgendwo Tone-Veränderungen will? Und schließlich habe ich entschieden, dass man den nötigen Tone einfach mit Hilfe von Bildern erzeugt, die zusätzlich eingeblendet werden... Tonemaps, sozusagen.
    Dunkle Bilder für den Aufenthalt in Höhlen, rote Bilder für die Reise über den Lavasee, gelbe Bilder beim Durchqueren der Wüste... und so weiter.

    Nun stellt sich aber das Problem: was, wenn ich an Orten bin, wo das Tag ~ Nacht-System keine Auswirkungen haben soll? In Zwischensequenzen, oder an geschlossenen Orten wo man Tag und Nacht nicht wahrnimmt?

    Daher habe ich mir überlegt, etwa für alle zehn Sekunden des Tages (mit Variablen abprüfbar) von vornherein einen gewünschten Tone festzusetzen. Ist zwar ein wenig Arbeit, wenn ein Tag im Spiel bspw. 24 Minuten dauert (das wären also 144 Voreinstellungen), aber dafür geht nachher alles leichter:
    die Zeit läuft immer normal weiter, egal, was los ist. Aber die Tone-Veränderung kann man per Switch aktivieren und deaktivieren.
    Nun muss es so laufen, dass das Event für die Tone-Anpassung beim Aktivieren immer als allererstes abfragt, welche Uhrzeit grade ist. Ist es zB grade 12:00 Uhr mittags, weiß das Script den Tone, der zu der Zeit grade herrschen muss (also hell, bunt, etc.). Das Script gleicht nun den Tone sofort (binnen 0.1 Sekunden oder so) an diese Voreinstellung an. Danach macht es zunächst gar nichts außer Abwarten, dass der nächste voreingestellte Tone aktiviert wird, der wäre also 12:10 Uhr (10 Minuten Spielzeit, 10 Sekunden in Echtzeit). Und wenn das passiert, springt das Script (mit Hilfe von Labels) zu dem Punkt 12:10 Uhr und setzt dort in den gewöhnlichen Rhytmus ein, den Tone innerhalb von 10 Sekunden an die nächste Voreinstellung anzupassen.

    Hier zur Veranschaulichung, Warum und Wie ich das mache:

    1. Voreinstellung: 12.00 Uhr mittags, 100 % Helligkeit
    2. Voreinstellung: 12:10 Uhr mittags, 95 % Helligkeit
    3. Voreinstellung: 12:20 Uhr mittags, 90 % Helligkeit

    Zwischen allen drei Punkten liegen 10 Sekunden Echtzeit, in denen der Tone sich immer anpassen sollte. Was passiert aber nun, wenn ich in einem Haus oder so bin, in dem ich, um das Lichtverhältnis zu wahren, die Tone-Veränderung deaktiviere?
    Wenn ich es dumm anstelle, ist das Script nicht darauf vorbereitet, und wenn ich um 11:55 Uhr das Haus betrete und es um 12:05 Uhr wieder verlasse, dann setzt der Tone-Rhytmus wieder ein, aber nur bei der 11:55 Uhr-Stelle. Das heißt, um 12:05 ist es erst so hell wie um 11:55 Uhr - das bringt ja Zeit und Helligkeit völlig durcheinander!

    Daher unser Anpassungsscript. Was nun passiert, ist Folgendes:
    Ich betrete um 11:55 Uhr das Haus und das Tone-Script wird deaktiviert. Als ich das Haus um 12:05 Uhr wieder verlasse, reaktiviere ich das Script. Das Script sucht nun zunächst die aktuelle Voreinstellung, also eine Art Zeitanker, um zu erfahren, wie viel Zeit vergangen ist. Die letzte Voreinstellung, die vom Zeitablauf-Script aktiviert wurde, ist die Voreinstellung 12:00 Uhr. Also verändert das Script den Tone beim Verlassen des Hauses sofort auf die Voreinstellung von 12:00 Uhr.
    Damit er aber dann nicht weitermacht, den Tone im 10 Sekunden-Takt zu verändern, muss das Script erst auf den nächsten Zeitanker warten, der um 12:10 Uhr eintritt. Dann erst weiß das Script: "Jetzt sind es noch genau 10 Sekunden bis zum nächsten Anker!" Und da darf das Script dann einsetzen, den Tone innerhalb von 10 Sekunden auf die Voreinstellung von 12:20 Uhr anzupassen.
    Da wir allerdings 12:10 quasi übersprungen haben (da wir ja von der Voreinstellung 12:00 Uhr gleich auf 12:20 Uhr übergehen), wird daher die Toneänderung, die normalerweise in 20 Sekunden stattfindet, nun in 10 Sekunden gepresst. Aber da bei 10 Sekunden-Takten die Tone-Unterschiede nicht allzu gravierend sein sollten, wird das nicht besonders stark auffallen und wohl gar niemanden stören.
    Das Schlimmste, was dem Spieler also passieren kann, ist, dass der Tone sich für fast 10 Sekunden gar nicht ändert (wenn das Script so lange auf den nächsten Zeitanker warten muss). Aber das sollte wohl zu verkraften sein - ist auf jeden Fall immer noch besser, als wenn Zeit und Tone desynchronisiert werden und man um 23:00 Uhr plötzlich einen Sonnenuntergang getont kriegt!

  3. #3
    Also ich habe es so geregelt, das nur auf der Weltkarte der Tag-Nacht-Zyklus und das Wettersystem aktiviert wird...
    Dazu mache ich am Anfang des Scriptes eine Überprüfung ob die beide Scripts erlaubt sind... Sind sie erlaubt laufen sie ganz normal^^
    Falls es regnet lasse ich den Screenton so ändern:
    Code:
    <>Bedingung:Varbl[abcd:Tag-Nacht-Timer]-354
     <>Var. ändern:[wxyz:Tageszeit]Wert,1
     <>Scrn-Ton setzen:(R050,G050,B080,S100),6.0Sek(W)
     <>
    :Ansonsten
     <>Bedingung:Varbl[abcd:Tag-Nacht-Timer]-474
      <>Var. ändern:[wxyz:Tageszeit]Wert,2
      <>Scrn-Ton setzen:(R080,G080,B100,S100),6.0Sek(W)
      <>
    Also je nach der Zeit lasse ich eine Variable festlegen welche Tageszeit gerade ist. In einem weiterem Script wird abgefragt ob es regnet, wenn ja wird die Tageszeit überprüft und je nach Tageszeit wird dann halt der Screenton verändert (in meinem fall wird der Gammawert auf 50 verringert).
    Das würde dann so aussehen:
    Code:
    <>Bedingung:Schalter[abcd:Es regnet]-An
     <>Bedingung:Schalter[efgh:In Gebäude/Höhle]-Aus
      <>Bedingung:Varbl[wxyz:Tageszeit]-1
       <>Scrn-Ton setzen:(R050,G050,B080,S050),1.0Sek(W)
       <>
      :Ansonsten
       <>Bedingung:Varbl[wxyz:Tageszeit]-2
        <>Scrn-Ton setzen:(R080,G080,B100,S050),1.0Sek(W)
        <>
       :Ansonsten
        <>[...]
     :Ansonsten
      <>
    :Ansonsten
     <>
    Wie du siehst könntest du es auch mit einem Schalter überprüfen lassen, ob man in einem Gebäude oder einer Höhle ist... oder man lässt einfach überprüfen ob es gerade erlaubt ist das sich der Screenton verändern darf oder nicht

Berechtigungen

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