PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Die beste Methode, eine animierte Picture-Wolke auf der Map anzuzeigen...



Davy Jones
17.11.2012, 18:52
...ohne dass diese auch nur im Ansatz mitscrollt.

Hat da jemand ein gutes Patentrezept?

Bex
17.11.2012, 22:43
Wie wärs mit einem Charset das auf above Player eingestellt ist?
3Animationsstufen hättest du damit. Oder wieviele Animationsstufen hat deine Wolke?
Gruß Bex

TwoFace
17.11.2012, 23:03
Reichts da nicht schon "Picture scrolls with Map" zu deaktivieren ?

Davy Jones
18.11.2012, 01:28
Wie wärs mit einem Charset das auf above Player eingestellt ist?
3Animationsstufen hättest du damit. Oder wieviele Animationsstufen hat deine Wolke?
Gruß Bex
2. Reihe:
http://spriters-resource.com/snes/secretevermore/sheet/51917

Aus diversen Gründen muss ich das mit Pictures hinkriegen, die Alternative mit Charset ist nicht drin.


Reichts da nicht schon "Picture scrolls with Map" zu deaktivieren ?
Die Methode hilft leider nicht.

Zu meinem Event-Aufbau (alles parallele Prozesse):
1) Ich hab die X und Y Koordinaten eines Events in jeweils einer Variablen gespeichert.
2) Mit diesen Koordinaten füttere ich meinen Show Picture-Befehl. Das heißt, das Bild wird dort angezeigt wo der Event liegt.

Das Problem:
Show Picture "Wolke 1"
wait 0.1
Show Picture "Wolke 2"
wait 0.1

Diese beiden Show Picture-Befehle fragen dauernd die X und Y Koordinaten aus den beiden Variablen ab und weil das aus irgendeinem Grund nicht schnell genug ist, scrollen die Bilder mit.

noom
18.11.2012, 09:38
1) Ich hab die X und Y Koordinaten eines Events in jeweils einer Variablen gespeichert.


Da müsstest du glaube ich nicht die Koordinaten wählen sondern "Screen-Relative".
Wenn ich dein Problem richtig verstanden habe :)

Nisa
18.11.2012, 11:25
Inwiefern soll ich das genau verstehen...
Die Wolke erscheint, man läuft in einem anderen Abschnitt, wo die Wolke noch nicht zusehen ist und 5 Sek später kommt sie vom anderen Bild auf deine Seite und verschwindet dann irgendwann?

MagicMaker
18.11.2012, 13:55
Du musst immer wissen, wo die Wolke gestartet ist und wie weit der Screen von der Position aus sich schon
wegbewegt hat, um die relative Stelle wieder errechnen zu können, wenn du das Bild auswechselst.

Auf RPG2000 wäre das mit Destiny einfach, weil man die geladene Bilddatei damit auswechseln kann, ohne was
anderes zu verändern.

Bex
18.11.2012, 14:09
1. Der eine hat doch gesagt bei dem Alten Maker kann man das mitscrollen deaktivieren. Dann bewegt die sich nicht mit, position lässt sich doch dennoch neu machen.
2.Beim Ace hatte sich das Bild auch etwas mitbewegt, konnt das beheben das ich in das paralelle Event einen Loop mit 1Frame Wait eingebaut hatte.
Beim Ace ist ein Loop schneller als ein Event das durchrattert und von vorne beginnt. Vieleicht beim alten Maker auch ? http://www.rpgmaker-vxace.de/index.php?topic=46.msg233#new
3.Warum kann man nicht einfach die Wolke in meherere Charsets machen und dem Abspielenden Event mehrere Eventseiten geben?
Gibt es bei den alten Makern nicht mehrere Event Seiten für ein Event? Da würde ich aber schleunigst umsteigen^^.
4.Erkläre bitte warum das unbedingt Pictures und kein charset auf Above Player sein darf ?Verstehe ich nicht.
5.erklär nächstes mal bitte den ablauf von dem was du vorhast genauer. Mit halbwissen was überhaupt passiert, kann man schlecht helfen.
Zumal deine Frage oben im Post beantwortet wurde, sich nun aber die Wolke anscheinend doch wieder bewegen soll, was du vorher nicht erwähnt hattest.
Das ist nicht hilfreich.
6.Sobald wir verstehen was du eigentlich bewerkstelligen willst, so gibts dann vieleicht auch massig Patentrezepte^^ so aber wohl eher nicht.
Gruß Bex

Davy Jones
18.11.2012, 15:26
Erst einmal: Vergesst die Wolke. Anscheinend wird hier assoziiert, dass die Dinger über den ganzen Screen fliegen.

Sagen wir: Es ist irgendeine beliebige Picture-Animation.

Ich fange am besten mit was verständlicherem an:
http://i.minus.com/jijmgw11GummD.png

1. Die Flammen sind Picture-Animiert.
2. Die Animation soll genau an diesem Platz angezeigt werden.

Wie ich das hier angestellt habe:

1) X-Koordinaten von "Drachenfeuer Event" in Variable "Golem Position X" gespeichert, diese Koordinaten werden immer wieder abgefragt:
http://i.minus.com/izO06nZj1MmY8.png

2) Y-Koordinaten von "Drachenfeuer Event" in Variable "Golem Position Y" gespeichert, diese Koordinaten werden immer wieder abgefragt:
http://i.minus.com/ilsWgF1g9LiaP.png

3) Eine Picture-Animation mit den Koordinaten von "Drachenfeuer Event" wird abgespielt. Diese Koordinaten werden aus den beiden obigen Variablen ausgelesen:
http://i.minus.com/i5lfofTAr8Sm7.png

Problem:
- Die Animation scrollt bei jeder Bewegung des Heros minimal mit und verzieht sich ganz schnell wieder auf ihren vorgesehenen Platz. Das passiert bei konstantem Rumgelaufe sehr schnell hintereinander und sieht nicht schön aus.

Bex
18.11.2012, 16:31
Welchen Maker benutzt du?
Bei dem Alten Maker kann man wie schon erwähnt bei Show Picture einen zusätzlichen Harken machen. Picture soll nicht Scrollen oder so ähnlich heisst der.
Beim XP und VX gibt es das nicht, da muss man das so machen wie du oder über Skript.

Frage:
Warum ist der Code auf 3Paralelle Events verteilt? Das ist mehr als unsauber und könnte sogar den Fehler verursachen.

Edit: Hast du den Link vom Ace angeschaut. Beim Ace gibt es die Picture auf Map befestigen Funktion nicht, da ich den Lite nutze kann ich da auch kein Skript für einfügen.
Hab es über Event gelöst, müsstest dieses einfach nur übertragen dann sollte es klappen.

Natürlich soll hier nicht die Position des Helden gespeichert werden, sondern die des sich nicht bewegenden Platzhalter Events auf der Karte.
http://www.imagesload.net/img/Picture Befestigen.png
Gruß Bex

Davy Jones
18.11.2012, 16:37
Ich benutze den 2k3. Und nein, die Methode von Penetranz hilft mir leider nicht, ich habe es mit und ohne Haken probiert.

Den Code habe ich auf 3 Events verteilt, damit die beiden Koordinatenabfragen so schnell wie möglich arbeiten und nicht von den Show Picture-Befehlen unterbrochen werden.

Bex
18.11.2012, 16:41
Wenn du es probiert hast wie Penetranz es gesagt hat, was funktioniert nicht daran?
Vieleicht hat der Maker ja einen Bug und es gibt ein Reparatur Skript? Beim Vx konnte man kein mal und geteilt rechnen und die animationen liefen mit einem mit.
Das kam durch die offizielle Englische fehlerhaft übersetzte Version zu stande. Gab aber ein Fix dafür. Bei deinem vieleicht auch.

Du sagst also das sich das Bild bewegt, egal ob der Haken an oder aus ist ? Das klingt für mich danach das du das falsche Event bearbeitet hast.


Edit: Ok das die Positionsabfrage nicht durch Show Picture verlangsamt werden soll ist korrekt von dir, dennoch reicht es hier 2 Events auf Paralell zu nutzen.
Nr1 Fragt die Koordinaten ab.
Nr2 Zeigt das Bild an.
Handhabe ich auch so wenn ich schnellstmögliche koordinatenabfragen benötige.
Probiere es aber trotzdem mal wie von mir oben im Bild gezeigt.

Edit2: Es wäre gut zu Wissen ob der2k wie der Vx oder der Ace die Events durchläuft.
Vx= Paralelles Event ist genauso schnell am wiederholen wie ein Loop mit 1 Frame Wait.
Ace= Ein Paralelles Event ist bis es erneut durchrattert circa gefühlte 4 oder mehr Frames langsamer als der Loop mit 1 Frame Wait.
Deshalb brauch ich beim Vx auch keinen Loop wie bei mir oben im Bild.
Beim Ace brauche ich dies.
Trotzdem ruckt es noch einmal ein Pixel beim richtungswechsel. Fällt aber im Gegensatz zum Zittern nicht auf.

Gruß Bex

Davy Jones
18.11.2012, 17:13
Es werden viele einzelne Pictures schnell hintereinander angezeigt, jedes einzelne von denen fragt die Koordinaten der beiden PPs ab. Weil der Player sich aber schneller bewegt als die Koordinaten arbeiten können, kommt die Pictureanzeige nicht hinterher und scrollt minimal bei jedem einzelnen Schritt zum Spieler hin und zum koordinaten-abgefragten Event zurück.

Deswegen bringt mir die Sache von Penetranz nichts. Wenn ich den Haken drinlasse hab ich das beschriebene Problem, wenn ich ihn rausmache scrollt die Animation komplett mit dem Player.

Dein reineditiertes Bild:
Du weißt aber schon, dass ich eine Animation habe und kein statisches Picture? Von daher würde dein Loop auch nicht funktionieren, weil die Koordinaten nur einmal bei jeder Schleife abgefragt werden.
http://i.minus.com/ioWus9LeuK09M.png

Bex
18.11.2012, 17:17
Jup hab Edit 2 überarbeitet^^ war etwas Brain AFK^^.

Hm...wenn der Harken draussen ist, dürfte es nicht mitlaufen da das Event es auf der Position halten müsste.
Mit Harken wäre eigentlich das Event das die Positionen bestimmt überflüssig.

Da ich den Maker nicht habe, kann ich es leider nicht für dich bei mir mal testen. Kann somit nicht mehr weiter helfen.
Vieleicht macht das einer der anderen, den scheinbar scheint das bei denen ja problemlos zu funktionieren. Da sollte es egal sein ob es nun ein Picture oder mehr sind.


Edit: Doch der Loop würde funktionieren und die Animation immer wieder von vorn beginnen. Hier machst du einen Denkfehler.
Der Eventcode zieht sich ja die Werte aus den Variablen, und die sind immer so aktuell wie sie bestimmt werden. Das hat mit dem Loop nichts zu tun.
Sofern dein Maker wie der Ace läuft und nicht wie der VX, so müssten bei beiden Events die Loops rein um schnellste ergebnisse zu erzielen.
Wenns wie der Vx ist dann kann man die Loops einfach weglassen und es ist genauso schnell.
Gruß Bex

Davy Jones
18.11.2012, 17:33
Edit2: Es wäre gut zu Wissen ob der2k wie der Vx oder der Ace die Events durchläuft.
Vx= Paralelles Event ist genauso schnell am wiederholen wie ein Loop mit 1 Frame Wait.
Ace= Ein Paralelles Event ist bis es erneut durchrattert circa gefühlte 4 oder mehr Frames langsamer als der Loop mit 1 Frame Wait.
Deshalb brauch ich beim Vx auch keinen Loop wie bei mir oben im Bild.
Beim Ace brauche ich dies.
Trotzdem ruckt es noch einmal ein Pixel beim richtungswechsel. Fällt aber im Gegensatz zum Zittern nicht auf.
Genau, "Zittern" wäre das richtige Wort für dieses Hin- und Hergescrolle gewesen.

Bei meinen 3 Events sage ich einfach mal, dass die 2 Koordinantenabfragen nicht schnell genug sind, um das Picture korrekt auf einem Event festzunageln. Das ist mein Problem.

Und egal ist es leider nicht obs ein oder zwei Pictures sind. Ein Picture zeigst du mithilfe der Event-Koordinaten an und das wars. Ab 2 Pictures wird auch zweimal der Standpunkt abgefragt und da ist der Player zu schnell unterwegs. Auch wenn ich mit der Hero-Geschwindigkeit runtergehe, zittert die Animation noch.

Mit den anderen Makern hab ich übrigens nichts am Hut, darum interessiert es mich nicht wirklich was bei denen funktioniert und was nicht (wir sind hier im 2k/2k3-Technikforum).

Bex
18.11.2012, 17:51
Hab hier mal im Forum geschaut und weiss nun warum der Fehler auftritt. (Nachvollziehen Nein ^^ aber genug um es vieleicht zu beheben)
http://www.multimediaxis.de/threads/136358-Picture-soll-sich-nicht-mit-dem-BIldausschnitt-bewegen-%28Rm2k%29

Das Picture darf nur einmal angezeigt werden. Dann hält es Automatisch die Position, auch wenn die Map Scrollt.
Das Problem ist wie Animieren wir das nun ?
Lässt sich bestimmt auch irgendwie machen. Hab aber keinen Plan müsste man stundenlang mal die Funktionen durchprobieren.

Oder:
Zurück zu den Charsets.
Beim Vx können Charsets Nack Links ,oben und rechts unendlich vergössert werden. Somit können die so gross sein wie Häuser oder halt wie dein Feuer.
Geht das beim 2k auch oder sind die auf ihr Kästchen beschränkt?Wir sollten die Animation über das Charset machen.
Ein Event auf Paralell ohne Grafik auf Above Player.
Nun immer Change Grafik
Wait paar Frames
nächste Grafik
und so weiter. Fertig ^^
Oder erkläre bitte noichmal warum das beim 2k nicht geht?

Edit: Die anderen Maker habe ich als beispiel genannt um oben erklärte Funktion zu verdeutlichen und um darauf hinzuweisen das sowas auch daran liegen kann^^ in diesem Fall wohl aber nicht tut,
da du es ja getestet hast? Da spielt es keine Rolle welcher Maker das ist.

Gruß Bex

Nisa
18.11.2012, 17:55
Meinst du es so? Hab es mal kurz aus meinem Projekt kopiert und für dich erstellt. Bitte benutzt das Wasserrad nicht, da dies in mein Projekt vorkommt .___.

download DavyJones.zip (http://share.cherrytree.at/showfile-8134/davyjones.zip)

Davy Jones
18.11.2012, 19:48
@Nisa:
Das ist absolut perfekt =D
Grade mal ausprobiert, da zittert rein gar nichts =)

Und bequem ist es mit einem einzigen Event sogar noch dazu, an die Sache mit der X-Variable +3 habe ich garnicht gedacht =)
Wieder eine Hürde aus dem Weg geräumt und was dazugelernt =)

Edit:
Dein Wasserrad kommt übrigens von hier:
http://spriters-resource.com/psx_ps2/lunarssc/sheet/26584
Ich schätze mal, dass du nicht der einzige Nutzer bist ;)

G-Brothers
18.11.2012, 20:38
Das +3 hat doch eigentlich gar nichts mit der Animation zu tun, oder? Ist doch nur für die Justierung der Position.
Wichtig ist nur, dass die Koordinaten genau über dem Show Picture gesetzt werden. :3

Nisa
18.11.2012, 20:38
Na Klasse, da wurde ich wohl beschissen. XD

Hab nämlich ein animiertes Wasserrad gesucht und ich bekam auch eines, was only 4me gedacht war. Okay, nun weiß ich bescheid woher es kommt x___x Danke v__v

Edit:

@G-Brothers

Jep, die +3 hat lediglich mit der justierung der Position zutun - mehr auch nicht. ; )

Bex
18.11.2012, 21:11
Könnt ihr bitte einen Screen machen wie ihr das nun gelöst habt. Würde mich interessieren und vieleicht andere die auch das Problem hatten.
Oder wurde es doch so gemacht wie schon zig mal im thread erwähnt?
Gruß Bex

Davy Jones
18.11.2012, 21:59
Das +3 hat doch eigentlich gar nichts mit der Animation zu tun, oder? Ist doch nur für die Justierung der Position.
Jetzt wo dus sagst, haste recht. Die könnte ich theoretisch auch aus dem Code rausnehmen.

@Bex:
Hier, die x+3 kannste dir wegdenken:
http://i.minus.com/jdNjrWyWPdOqi.png

Itaju
19.11.2012, 01:04
Ich glaub, n Problem ist halt, dass du dir für den Zyklus grad mal 10 FPS (bei 0,1 wait) gönnst.

Da kann es schonmal ruckelig aussehen. :) Wenn du statt 0,1 lieber ein paar Mal 0,0 (entspricht einem Frame), kommst du an die flockigen 24 FPS ran, die unser Auge brauch. (aber lass dir gesagt sein, dass es den Maker schnell in die Knie zwingt, wenn man in sehr kurzen Abständen sehr viele Bilder verändert.

Davy Jones
19.11.2012, 10:00
Naja, es läuft auf meinem neuen PC flüssig und lief schon auf dem alten Celeron gut. Mit 0.1 bin ich erfahrungsgemäß gut beraten. Performancetechnisch kommts zudem mehr drauf an, wie groß das Bild ist (und natürlich wie schnell es hintereinander abgespielt wird).

Es ging letzten Endes mehr um die korrekte Handhabung der Koordinatenabfrage als die Dauer der waits (weniger als keiner geht ja nicht), und die habe ich ja jetzt =)