Ergebnis 1 bis 16 von 16

Thema: Mimosen-Effekt einbauen

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Zitat Zitat von Eddy131 Beitrag anzeigen
    Wie bitte? ^^'
    (Es soll auch bei anderen Personen funktionieren, das Gras ist ja nicht nur Fremdenfeindlich sondern auch bei Anwohnern versteckt es sich )
    Was ich aufgezählt habe sind die 4 Teilprobleme die du lösen musst.
    Zitat Zitat
    1) Eine Möglichkeit heraus zu finden, dass sich ein Event bewegt hat.
    Das hier könnte tatsächlich schon der schwierigste Punkt werden. Soetwas ist im RPG-Maker garnicht so einfach, vor allem nicht wenn du es nur für ganz bestimmte "Arten" von Events haben willst, nämlich den Helden und NPC's. Ich glaube die einfachste Möglichkeit wäre es die Game_Charakter (oder wie auch immer sie im neuesten Maker heist) Klasse umzuschreiben um eine Bewegung zu erkennen.

    Zitat Zitat
    2) Eine Möglichkeit alles Tiles zu kennen, welche Zeit basiert verändert werden müssen
    Du musst irgendwo speichern, wo das Gras zu wachsen hat. Das könnte relativ trivial werden. Ich würde wohl einfach eine Hashtable nehmen und Punkte (X- und Y-Koordinaten Tupel) auf Zeiten (Integer) abbilden.
    Du musst auch daran denken diese Daten zurück zu setzen wenn du die Map wechselst.

    Zitat Zitat
    3) Eine Möglichkeit die Zeit kontinuierlich hoch zu zählen falls nötig
    Das könnte man entweder über ein parallel-process Event machen, welches wiederum ein Ruby-Script aufruft, oder möglicherweise auch eleganter durch überschreiben einer geeigneten Klasse aus der Standard Bibliothek.
    Jedes Frame müsstest du über alle Gras-Tiles gehen, welche ein Update brauchen (genau die aus unserer Hashtable von Punkt 2) und die Zeit herunter zählen. Sobald die Zeit auf 0 gesunken ist kannst du die Tile-ID verändern.

    Zitat Zitat
    4) Eine Möglichkeit Tile-IDs beliebig zu setzen
    Das ist, zumindest im RPG-Maker XP, schwieriger als es sein muss. Ich kann mich errinern, dass es ein wenig Trial-And-Error gekostet hat bis es einigermaßen funktionierte Tiles dynamisch zu verändern.


    Alles in allem ist so ein Script durchaus möglich zu schreiben. Aber ich würde es schon sagen, dass es ein wenig Erfahrung braucht.

    Geändert von Cornix (22.10.2015 um 12:38 Uhr)

  2. #2
    Wie kamst du denn zu der Idee mit den verschiedenen Radien? Ich bin zwar noch nie durch ein ganzes Mimosen"feld" gelaufen, aber der von dir beabsichtigte Effekt tritt ja mW nur bei Berührung auf. Daher sollte es doch ausreichen, ein entsprechendes Event bei betretenen Tiles sowie den unmttelbaren Nachbarfeldern zu aktivieren (das der Effekt bei den Nachbarn nicht so ausgeprägt ist, würde ich aber auch erwarten).
    Zumindest würde es komisch wirken, wenn in ein Meter Entfernung vom (N)PC noch das Gras den Kopf einzieht.

  3. #3
    @Cornix: Oh, danke für die ausführlichere Antwort. Erstaunlicherweise sagt mir da einiges von was. Aber vor allem sagt es mir, dass ich nicht drum herum komme mich ein wenig in die Programmierung einzuarbeiten, wenn ich das so machen will. Ächz ^^'

    Zitat Zitat von Ark_X Beitrag anzeigen
    Wie kamst du denn zu der Idee mit den verschiedenen Radien? Ich bin zwar noch nie durch ein ganzes Mimosen"feld" gelaufen, aber der von dir beabsichtigte Effekt tritt ja mW nur bei Berührung auf. Daher sollte es doch ausreichen, ein entsprechendes Event bei betretenen Tiles sowie den unmttelbaren Nachbarfeldern zu aktivieren (das der Effekt bei den Nachbarn nicht so ausgeprägt ist, würde ich aber auch erwarten).
    Zumindest würde es komisch wirken, wenn in ein Meter Entfernung vom (N)PC noch das Gras den Kopf einzieht.
    Kennt jemand die (Hör-)Buch-Reihe Sturmlicht-Chroniken? Da hab ich mich ein wenig von inspirieren lassen, da ist es normal, dass das Gras und auch Bäume und andere Pflanzen ihre Blätter einziehen, da regelmäßig starke Stürme über die Welt toben und sie sonst abreißen würden. Das fand ich ganz cool beschrieben und dachte mir auch einen Ort zu machen, wo solche Pflanzen wachsen. Und je nachdem wie "schreckhaft" das Gras ist, kann es durchaus sein, dass sich die gesamte Wiese zurückzieht, wenn an einem Punkt eine Erschütterung auftritt. Eine Pflanze zieht sich zusammen, reibt und zupft dabei an Nachbarpflanzen die sich auch zusammenziehen und so weiter. Deshalb soll sich das ja kreisförmig um den Spieler herum ausbreiten. nach außen hin wird die Bewegung immer schwächer und die äußeren Gräser kommen daher auch zuerst wieder raus.
    Das Problem, dass ich bei Event pro Feld sehe, ist, dass ich dann ein Tropfenmuster habe: Ein Kreis, nach etwas abstand noch ein Kreis. Es soll eine gleichmäßige Linie erkennbar sein.
    Dann sehe ich noch ein anderes Problem: Wenn der Held von Feld F auf Feld G geht überlagern sich ja alle Effekte, die durch die Events der beiden Felder entstanden sind:

    A B C D
    E F G H
    K N O P

    Auf den 8 Feldern um F entsteht ein Kreis, genau so dann bei G. Und 6 der Felder sind teil von beiden Kreisen. Jetzt werden die Events von Feld F ausgelöscht/überlagert und die von Feld G starten. Das wird wohl nicht schön aussehen. Versteht ihr, was ich meine? Ich könnte auch Events für jede Art von Bewegung machen (von oben kommen, nach oben gehen, von links kommend, nach links gehend, von rechts kommend, ...) und da dann jeweils eine eigene Animation für machen, aber würde denk ich mal den Rahmen sprengen. Ganz zu schweigen von der Performance.

  4. #4
    Zitat Zitat von Eddy131 Beitrag anzeigen
    Das Problem, dass ich bei Event pro Feld sehe, ist, dass ich dann ein Tropfenmuster habe: Ein Kreis, nach etwas abstand noch ein Kreis. Es soll eine gleichmäßige Linie erkennbar sein.
    Ich hab' jetzt ganz spontan das Wiesenäquivalent eines Mach-Kegels vor Augen.

  5. #5
    Bei einer einzelnen Figur ist das ganze easy-peasy.

    Du machst ein Event, das das Gras repräsentiert. Du stellst es zwar auf die gleiche Höhe wie der Held, legst aber in seiner Route mit einem Schritt (der sich nicht wiederholt, also no repeat) auf Through schaltet. Du stellst die Animations- und Bewegungsfrequenz auf die niedrigste Stufe.
    Die Animation des Grases sollte also im Idealfall in 4 (oder wenns noch besser sein soll mehreren) Animationsteps über die 4 Blickrichtungen des Events passieren. Dann legst du fest, dass sich das Event bei Heldenberührung (Player Touch) Ohne Wartezeiten dazwischen ein mal dreht, und dann - nach einer kurzen Weile - wieder zurück.

    Bei mehreren Figuren wird es wirklich kompliziert. Die Abfrage mit x und y sollte aber auch funktionieren, wenn es nicht zu viele Events sind. Du müsstest dann auch ins Event programmieren, dass sich das Gras nur bei der ersten Berührung beugt und dann per Bedingung abfragen, ob man sich gerade darauf befindet.


    Naja lange Rede kurzer Sinn, ich hab hier mal hochgeladen was ich mir vorstelle:
    Klick klick

    Ich entschuldige mich für das Pseudo-Gras. Es ist wirklich kein grafisches Kunstwerk, aber es geht ja hauptsächlich um's Prinzip. xD
    Je länger die Spur umso länger die Wartezeit. Sollte der Verlauf nach hinten eher Kegelförmig sein, bräuchte man in der Eventgrafik vom Gras die Form von einem Quadrat das auf der Spitze steht.

    Geändert von Stray (23.10.2015 um 22:00 Uhr)

  6. #6
    @Stray: Danke für die Mühe.
    Aber das ist leider nicht ganz, dass ich mir vorgestellt hatte. Es soll schon so aussehen, als ob das Gras sich in einem großen Umkreis um der Figur herum versteckt (also mehrere Felder im Umkreis, aber besten auch einstellbar (manche Grasarten sind schreckhafter oder in Gegenden wo selten ein Mensch ist, ist es träger oder schreckhafter, je nachdem)). Und sobald sie weg ist oder stehenbleibt, soll das Gras ganz langsam wieder zurück kommen.
    Daher auch das mit den verschiedenen Gras-Ebenen, wo jede Ebene das gleich Gras nur etwas kürzer zeigt. Das sollte dann in etwa den Effekt haben, als ob das Gras sich einzieht.

  7. #7
    Das mit dem größeren Umfeld wäre dann mit verschiedenen Character-Größen für das Gras möglich. Die Geschwindigkeit und die Grafiken müsstest du dann nur individuell an deine Ansprüche anpassen.

  8. #8
    Zitat Zitat von Stray Beitrag anzeigen
    Das mit dem größeren Umfeld wäre dann mit verschiedenen Character-Größen für das Gras möglich. Die Geschwindigkeit und die Grafiken müsstest du dann nur individuell an deine Ansprüche anpassen.
    Das wäre tatsächlich ne Lösung
    Mir ist gerade (als ich deine Antwort las) eine geniale Idee gekommen! Ich hab das Problem immer von der falschen Seite betrachtet, wortwörtlich. Anstatt die einzelnen Schichten Transparent zu machen müsste ich nur die Grafik mit dem kürzeren Gras oben drauf legen und es als Grafik per Event auslösen lassen. Selbst bei größeren Kreisen über mehrere Flächen und Überlagerungen gäbe es keine Probleme, da es ja egal wäre, wenn 2 mal oder öfter die gleiche Grafik übereinander liegt.
    Ich müsste dann im Prinzip nur 4 Animationen erstellen (in jede der 4 Himmelsrichtungen gehen) und dann noch welche für auf die Grasfläche/von der Grasfläche runter gehen (muss dann schauen, welche Varianten ich da brauche).

    Jetzt fehlt mir nur noch eine Möglichkeit, dass die Reihenfolge er einzelnen Elemente festzulegen (also welches Bild über welchem gezeigt wird), damit dass kürzeste Gras immer das mittlere überlager und das immer das etwas längere (das längste wäre dann der Boden). Oder auch mehr, je nachdem wie viele ich brauche, damit es realistisch aussieht.

Berechtigungen

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