PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Gehanimation: Mehr als drei Bilder?



T-Free
30.04.2008, 16:15
Hallo Freunde!
Habe jetzt wieder eine Frage an euch:
Wie macht man, dass ein Charset mehr als nur drei verschiedene Animationsbilder beim gehen hat, wie ich es z.B. bei "Earthcraft" gesehen habe?
Normalerweise sind es ja immer nur drei: Stehen, Rechtsschritt, Linksschritt.
Ich würde es aber gerne so haben: Stehen, 1. Ani des Rechtsschrittes, 2. Ani des Rechtsschrittes, dann wieder die erste, dann nochmal die Stehanimation und dann dasselbe mit dem Linksschritt.
Das läuft dann viel flüssiger und sieht auch viel besser aus. Kann man das mit einem bestimmten Patch oder muss man einfach nur einen Skript aufbauen, mit dem das geht?
Vielleicht kann mir ja jemand helfen.

Danke im Vorraus!:)

MfG, T-Free

treeghost
30.04.2008, 16:30
Ich muss sagen,ja sowas geht.
www.rpg-atelier.de / Skripte / Deejee's Walk GFX

V-King
30.04.2008, 16:59
Ich muss sagen,ja sowas geht.
www.rpg-atelier.de / Skripte / Deejee's Walk GFX

Das ist allerdings kein Skript, um den Helden mit mehr Frames für die Bewegung auszustatten, sondern nur, um dem Helden ne unabhängige Standpose und Laufanimation zu geben.

'n richtiges Skript für mehrere Frames in der Laufanimation hab ich mal gemacht, ich such mal eben und lads hoch, wenn ichs finde. ;)

EDIT:

Mehr Animationsphasen für CharSets

Eine Sache vorweg: Dies eignet sich eigentlich nur für Heldencharsets, die man selbst kontrollieren kann. Zumindest ist meine Erklärung (was ja mehr ein Skript ist) nur für die kontrollierbaren Heldencharaktere gedacht.

Sooo, eigentlich ist es recht einfach. Es ist nur ein bisschen Arbeitsaufwand (wieso, sag ich nachher) und es ist umso mehr Aufwand, je mehr Animationsphasen man verwendet.

In diesem Tutorial gehe ich von insgesamt 5 Animationsstufen aus, wobei die Standpose die Animationsstufe 3 (also quasi die Mitte) ist.
Weiterhin gehe ich davon aus, dass jede neue Animationsstufe nach 3 Frames (3x 0.0s-Wait) angezeigt wird.

Okay, nun, was ihr dafür braucht, ist folgendes:

Ein leeres Common Event
Einen unverbrauchten Switch
Eine Variable zum Abfragen der Tasten-ID (habt ihr schon eine, verwendet die, spart Variablen)

Nennt das Event, wie ihr wollt. Ich bezeichne es jetzt mal als "Laufevent".
Den Switch nennt ihr "Laufen", die Variable nennt ihr "Tasten-ID". Oder naja...zumindest ich nenn sie so :D

Stellt das Event auf Parallel Process und lasst es aufrufen, wenn der Switch "Laufen" aktiv ist.
Den Switch braucht ihr, damit der Charakter in Zwischensequenzen nicht ebenfalls animiert wird. Soll er ja auch nicht, ne? :D

Gut, in das Event fügt ihr zuerst ein Label ein (Label Nr.1).
Als nächstes macht ihr ein Move-Event, in dem ihr dem Charakter die normale Stand-Pose zuweist (Also kein Move-Event an sich, sondern eher eine Änderung des Charsets. Wieso ihr das mit dem Move-Event machen sollt, erkläre ich später).

Danach macht ihr eine Key Input-Abfrage, in der ihr nur die Richtungstasten abfragen lasst. Weiterhin solltet ihr den Haken bei "Wait for Key press" aktivieren. Speichert die Abfrage in der Variable "Tasten-ID".
Dann noch eine Fork-Condition, in der abgefragt wird, ob die Variable "Tasten-ID" kleiner-gleich 4 ist.

Erstellt dann das Label Nr. 2.

Ab hier wirds ein wenig kompliziert, da ab hier der Arbeitsaufwand anfängt. Ich werde mich ab hier auch kurz fassen. Erklärungen gibts später.

Ändert das Aussehen des Charakters per Move-Event auf Animationsstufe 1.

Erstellt ein 0.0s-Wait.

Lasst die Richtungstasten abfragen und den Wert in der Variable "Tasten-ID" speichern. Entfernt den Haken bei "Wait for Key press".

Erstellt eine Fork-Condition, in der abgefragt wird, ob die Variable "Tasten-ID" gleich 0 ist. Erstellt in der Fork-Condition den Befehlt "Go to Label Nr. 1".

Wiederholt die 3 Schritte ab dem 0.0s-Wait noch zwei mal (so dass insgesamt 3 0.0s-Waits da stehen, dreimal die Richtungstasten abgefragt werden und dreimal die Variable "Tasten-ID" abgefragt wird).

Immer nach drei Schritten wird eine neue Animationsphase angezeigt.
Der Grund, wieso immer nach 0.0s (also 1/60 Sekunde bzw. einem Frame) die Tasten abgefragt werden, ist, dass bei nicht gedrückter Taste das CharSet wieder auf die Standpose zurückgeschalten werden muss. Man könnte es natürlich auch einfach alle 0.1 Sekunden oder so machen, aber es würde nunmal einfach eigenartig aussehen, wenn der Char nicht sofort stehen zu bleiben scheint.

Alles weitere entnehmt ihr bitte folgendem Skript, das ich schon fertig gestellt habe (alle Ressourcen sind frei verfügbar, omg :D )

Download: Klick mich (http://missar.rpg-atelier.net/dl/Laufanimationsphasen.rar)

T-Free
30.04.2008, 17:04
@LeonSahiti
Das habe ich schon, das ist aber nicht das, was ich will. Ich möchte den Helden mit mehr Frames ausstatten, wie V-King es schon beschrieben hat.
Das was du mir vorschlägst kann ich auch locker selbst skripten, brauche ich also sowieso nicht. Trotzdem Danke!

@V-King
Danke dir, du hast verstanden was ich meine. Ich hoffe, du findest was und kannst mir helfen.:)

V-King
30.04.2008, 17:16
@V-King
Danke dir, du hast verstanden was ich meine. Ich hoffe, du findest was und kannst mir helfen.:)

Hab meinen ersten Post schon entsprechend editiert ;)

(abgesehen davon ist deine Signatur zu hoch, aber das nur am Rande :°)


Und ähm...Credits müssen nich sein, das Skript hab ich innerhalb von 5-10 Minuten zusammengewurschtelt, das ist nicht Credits-würdig :p

T-Free
30.04.2008, 17:47
Habe es getestet, du hast es gut hinbekommen.
Allerdings gibt es einen Bug in diesem Skript. Der ist folgender:
Wenn ich auf zwei Chips hin und her laufe, dann wird Marios Animation eingefroren, das sieht wieder kacke aus.
Am besten, du testest es selbst mal. Vielleicht kannst du das ja noch verbessern.
Trotzdem Danke für die Mühe.:)
Ich schreibe zur Sicherheit mal eine PN an Evilshenlong, der hat es ja sicherlich perfekt hinbekommen.

Engel der Furcht
30.04.2008, 18:52
hmmm,ich mache es so:
Nehme zum Beispiel dieses Charset.http://www.rpga.info/plugins/p17_image_gallery/images/3292.png(Quelle:RPGA.info)
m,ache nun ein PP als CE,mache eine Abfrage der Pfeiltasten.kein Haken bei Wait Until Key hit.
dann ändere die Laufgrafik des Helden,hier das 2. CHarset,dann mache ein Wait von XYZ,je nachdem wie es dir gefällt,mache nach jedem Wait(ich empfehle mehrere 0.0 Waits) eine Abfrage,ob die Taste nicht mehr gedrückt ist,also 0 ist.Beim Ja fall wird die erste,also die Stehanimation genommen.
Wenn die Waits und die Bedingungen fertig sind,ändere die Laufgrafik nocheinmal,diesesmal das 3. und immerso weiter,bis zum Ende,mache immer wieder die Waits und Forks.

Allerdings gibt es ein Nachteil:Die Animation findet auch dann statt,wenn man gegen eine Wand läuft!

T-Free
30.04.2008, 19:06
Danke, Engel der Furcht!:)
Finde ich gut, dass du mir das nochmal beschreibst. Allerdings möchte ich wirklich nicht, dass selbst, wenn man gegen die Wang läuft, der Charakter animiert wird.
Mal sehen, ich habe Evilshenlong eine PN geschickt. Wenn ich Glück habe, dann antwortet er mir und sagt mir, wie er es gemacht hat. Kann auch sein, dass er sich nicht mit mir abgibt oder es einfach nicht sagen will.

Wenn jemand eine Idee gegen diesen Nachteil findet, (also eine Lösung) dann bin ich sehr dankbar.
Schafft ihr das noch bevor Evilshenlong, falls er mir überhaupt schreibt, dann kriegt derjenige, der das komplett und ohne Nachteile schafft, natürlich einen netten Creditseintrag von mir.:3

Engel der Furcht
30.04.2008, 19:14
du könntest noch ein zusätzliches Event machen,dass abfragt,ob die Alten X und Y Positionen mit den Neuen X und Y übereinstimmen,wenn ja,bleibt der Held stehen.
Natürlich als PP und dann am ende ein Wait von 0.0

V-King
30.04.2008, 20:20
Allerdings gibt es ein Nachteil:Die Animation findet auch dann statt,wenn man gegen eine Wand läuft!

Ich empfinde das eher nicht als Nachteil.
Wenn du dir die ganzen SNES-RPG anschaust, wirst du bei vielen feststellen, dass die auch weiterlaufen, wenn man gegen ne Wand rennt.
Hat was Old-Schooliges.

Man kann das zwar umgehen, aber dadurch würde der Skript-Code extrem viel länger werden, da man immer wieder abfragen müsste, ob sich der Held beim letzten Tastendruck ein Feld weiterbewegt hat oder nicht (sprich: Abfragen der Koordinaten, vergleichen mit alten Koordinaten, wenn gleich -> Standpose, ansonsten -> Laufgrafik ändern).
Das ist einfach zu...naja, meiner Meinung nach dann wieder zu aufwändig. Ich würds nicht einbauen, und das sage ich eigentlich als eine Art Perfektionist.

cilence
30.04.2008, 20:48
du könntest noch ein zusätzliches Event machen,dass abfragt,ob die Alten X und Y Positionen mit den Neuen X und Y übereinstimmen,wenn ja,bleibt der Held stehen.
Natürlich als PP und dann am ende ein Wait von 0.0

Kommt mir irgendwie bekannt vor... woher nochmal?... :D
*klick* (http://www.multimediaxis.de/showthread.php?t=105312)

mfG e.hoff

@T-Free: vielleicht hilft dir das ja noch ein bisschen beim Umsetzen, obwohl es mit den Laufanimationen die du willst an sich nichts zu tun hat.

Dhan
01.05.2008, 14:41
Das Weiterbewegen auf Feldern abzuprüfen, hat den Nachteil, dass man sein Feld sprungartig wechselt
Schöner wäre eine Scene-Abfrage. Für diese braucht man allerdings auf jeder Map ein Hilfsevent, dessen Scene-Abstand zum Helden benutzt wird