Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Erweiterte Animationen
#1
Durch ein Posting von Pumuckl999 bin ich auf ein altes Problem aufmerksam geworden.
Wenn man einen Portalkran als Haltestelle auslegt, kann der Kran nicht voll animiert werden.
Grund dafür sind die variablen Längen der Haltestellen, und die fixen Dimensionen für Animationen.
Eine Animation braucht einen klar definierten Weg, der aber bei Haltestellen variabel sein kann. Beim angehängten Screenshot ist der Weg 1 variabel, eine Animation des Wegs nicht machbar. Wege 2+3 sind fix, sie wären animierbar. Der Kran könnte dann die Last heben und senken (3), auf dem Portal hin und her fahren (2), aber nicht auf seinen Schienen verfahren (1).
Schön wäre es wenn man auch den Weg 1 animieren könnte.
Entweder müßte man der Haltestelle eine feste Länge zuordnen können, oder eine Möglichkeit zum erkennen der Länge 1 einbauen, damit die Animation über die Kacheln weitergeführt wird.


Angehängte Dateien Thumbnail(s)
   
Zitieren
#2
Zu beachten wäre dabei noch, dass bei Animationen derzeit jede Kachel individuell animiert ist. Die hinteren Pfeiler des Krans müssten sich aber im Backimage des hinteren Bahnsteigs befinden, damit die Züge am hinteren Bahnsteig davor sind, während der Rest des Krans im Frontimage des vorderen Bahnsteiges verbleiben würde. Damit wäre die Animation auf zwei verschiedene Kacheln aufgeteilt und wird zerrissen. Für beide Lösungen müsste also auch eine Synchronisation der Animation in mehrkacheligen Strukturen erfolgen. (Außer, das geht inzwischen schon so, habe letzthin immer drumrumgepixelt)


Ich glaube, erkennen der Länge und darauf basierend eine Änderung der Animation ist eine sehr, sehr spezifischer Nischenfall. Oder fallen jemanden noch Anwendungsgebiete außerhalb eines Krans ein? Huh

Sinnvoller (und womöglich auch leichter umzusetzen) erscheint die Methode, eine fixe Größe zu bestimmen. Also ähnlich zu mehrkacheligen Gebäuden ein "Containerobjekt" zu erstellen, welches andere Objekte enthält und als Ganzes gebaut und gelöscht wird.
Könnte man die Animationen synchronisieren, so wäre es ja bereits möglich, die benötigten Bahnsteige zur Verfügung zu stellen, damit man sich das gewünschte Ergebnis zusammenklicken kann. (100 Animationsschritte - die ersten 10 wird der Kran als Frontimage der ersten Kachel animiert, dann 80 "leere" Frontimages, dann 10, bei denen der Kran zurückkommt. Auf der zweiten Kachel ebenfalls 100 Animationsschritte, aber der Kran ist von 10-19 und von 80-89 definiert etc.) - das Container-Objekt würde diese einzelnen Bahnsteige, welche selber kein Icon hätten, referenzieren. Ebenso würde es natürlich die Schienen selbst referenzieren - wäre ja doch blöd, wenn man erst alle Schienen richtig bauen müsste und dann erst den Bahnhof draufsetzen dürfte. Die Schienen allerdings nicht direkt mit Objektnamen, sondern lediglich als Wegtyp - denn man sollte natürlich die Schienen ändern dürfen, im Gegensatz zu den einzelnen Bahnsteigelementen.

Derartige Containerobjekte könnten dann auch anderweitig Anwendung finden. Man könnte etwa einen zweigleisigen Standard-Bahnhof mit Nebengebäude und Signalen vordefinieren und mit einem Klick bauen - insbesondere für neue Spieler sinnvoll, die damit auch gleich eine Vorlage hätten, nach der sie sich selber was zusammenklicken können.


Also ein Containerobjekt wäre sicher in vielerlei Hinsicht brauchbar, welche über die Möglichkeit eines Krans weit hinausgehen, und eine sinnvolle kleinere Lösung sehe ich eigentlich nicht.
Zitieren
#3
Die synchronisierung müßte eigentlich schon gegeben sein, da es ja 1 Objekt ist. Die Animation wird von einer dat gesteuert.
Zitieren
#4
Ich kann mich erinnern, dass es bei meinem ersten Versuch nicht geklappt hat, und spätere Versuche hatten die Animation stets so eingeplant, dass alles mit Offset über Kachelgrenzen ragte, bzw. größer als 192 gepackt wurde. Forensuche fand auch nichts für mich, außer einen Beitrag von Vilvoh, der 2008 auch sagte, sie wären nicht synchron.

Aber das zu testen wäre ja kaum Aufwand, daran solls nicht scheitern.
Zitieren
#5
Anstatt die Animation durch viele Standbilder aufzublähen, könnte man eine "Animation_Stop_Time=" einführen. Die könnte dann in der dat anstatt einer Zahl für den Frame, durch ein x gekennzeichnet sein (Beispiel: FrontImage[0][0][0][0][x][0]=). Jedesmal wenn ein x bei einer Grafik steht, wird die Animation mit dieser Grafik für die genannte Zeit "angehalten".
Zitieren
#6
Du könntest auch einfach schreiben "FrontImage[0][0][0][0][0-9][0]=" - dann wäre der zugehörige Eintrag für diese 10 Frames sichtbar. Das ganze kann auch für Animationen genutzt werden, bei denen nur etwas verschoben wird, zB. einen Fensterputzlift mit 200 Frames, der linear runter und hoch geht. (Ich habe noch nicht versucht, die Rechenoperationen ans Limit zu treiben, aber theoretisch könnte man wohl auch eine Bewegung errechnen lassen, die langsam startet und bremst - wäre mir für Simutrans aber zu übertrieben)

BackImage[0][0][0][0-1][0][0-1]=./images/com/192sachsenlb.<1-$0>.<$1>
FrontImage[0][0][0][0][0-74][0-1]=./images/com/192sachsenlb.1.2,0,<-$0>
FrontImage[0][0][0][0][75-99][0-1]=./images/com/192sachsenlb.1.2,0,-74
FrontImage[0][0][0][0][100-174][0-1]=./images/com/192sachsenlb.1.2,0,<$0-174>
FrontImage[0][0][0][0][175-199][0-1]=./images/com/192sachsenlb.1.2,0,0

   

Angeblich hat die Frameanzahl keine Auswirkung auf die Auslastung, also dürfte diese Kurzschreibweise schon abdecken, was eine Animationspause erreichen könnte.
Zitieren


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 2 Gast/Gäste