Animationen: Aufbau

Willkommen in der Transport Fever Community

Wir begrüßen euch in der Fan-Community zu den Spielen Transport Fever und Train Fever, den Wirtschaftssimulatoren von Urban Games. Die Community steht euch kostenlos zur Verfügung damit ihr euch über das Spiel austauschen und informieren könnt. Wir pflegen hier einen freundlichen und sachlichen Umgang untereinander und unser Team steht euch in allen Fragen gerne beiseite.

 

Die Registrierung und Nutzung ist selbstverständlich kostenlos.

 

Wir wünschen euch viel Spaß und hoffen auf rege Beteiligung.

Das Team der Transport-Fever Community


Sie betrachten gerade eine ältere Version des Eintrags. Klicken Sie hier, um zur aktuellen Version zu gelangen.

  • Dieser Eintrag befasst sich mit der Definition von Animationen

    1 Wo werden Animationen definiert?

    Das Basisgerüst setzt bei der [tt]animations[/tt]-Tabelle von Modeldateien (*.mdl), Meshdateien (*.msh) und Groupdateien (*.grp) an. Ohne Animation sieht diese wie folgt aus (oder wurde der Einfachheit halber einfach weg gelassen): [code]animations = {},[/code] Es können darin beliebig viele Animationen definiert werden.

    2 Basisgerüst

    [code]name = { params = { . . . }, type = ..., },[/code]Die Definition einer Animation beginnt mit der ID der Animation (Zeile 1, [tt]name[/tt]), mit der später per [url='https://www.train-fever.net/lexikon/index.php/Entry/97-Animationen-Events/'][u]Event[/u][/url] die Animation referenziert wird. Die Tabelle [tt]params[/tt] beinhaltet die Parameter für die Animation (Keyframes, etc.), welche vom Animationstyp [tt]type[/tt] abhängen.

    3 Animationstypen

    Es sind (mir) drei verschiedene Animationstypen in Train Fever bekannt: [table] [tr] [td]Animationstyp:[/td] [td]KEYFRAME[/td] [td]KEYFRAME_MATRIX[/td] [td]FILE_REF[/td] [/tr] [tr] [td]Verwendung:[/td] [td]Von Hand erstellte Animationen[/td] [td]Von Scripts erstellte Animationen[/td] [td]große Animationen[/td] [/tr] [tr] [td]Beispiel:[/td] [td][url='https://www.train-fever.net/lexikon/index.php/Entry/71-T%C3%BCren-animieren/'][u]Fahrzeugtüre[/u][/url][/td] [td][url='https://www.train-fever.net/lexikon/index.php/Entry/31-Pleuelstangen-animieren/'][u]Pleulstangen[/u][/url][/td] [td]Personen[/td] [/tr] [tr] [td]Methode zur Definition der Keyframes[/td] [td]Eulerwinkel und lineare Transformation[/td] [td][url='https://www.train-fever.net/lexikon/index.php/Entry/83-Transformationsmatrix/'][u]Transformationsmatrix[/u][/url][/td] [td][url='https://www.train-fever.net/lexikon/index.php/Entry/83-Transformationsmatrix/'][u]Transformationsmatrix[/u][/url][/td] [/tr] [/table] Was jedoch man selber verwenden möchte ist dem eigenen Geschmack überlassen. Da der "KEYFRAME"-Typ der am leichtesten Verständliche ist - es gibt hierfür am Meisten Beispiele (quasi jede Fahrzeugtüre) - empfehle ich diesen zu benutzen.

    3.1 KEYFRAME

    3.2 KEYFRAME_MATRIX

    [code]animations = { matrix = { params = { keyframes = { { time = 0, transf = {1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, }, }, . . . }, }, type = "KEYFRAME_MATRIX", } },[/code] Folgende Unterschiede gibt es zwischen einer "normalen" [tt]KEYFRAME[/tt]-Animation und der [tt]KEYFRAME_MATRIX[/tt]-Animation: [list][*]Der Animationstyp lautet anderst (Zeile 14): [tt]type = "KEYFRAME_MATRIX",[/tt] [*]Es existiert keine Tabelle [tt]origin[/tt], denn diese wird nicht berücksichtigt. Die Trnaformationsmatrizen gelten immer vom Objektzentrum aus. [*]Der Aufbau eines Keyframes (Zeilen 5-8) ist anderst. Es wird in jedem nur der Zeitpunkt [tt]time[/tt] und die Transformationsmatrix [tt]transf[/tt] übergeben. Letztere entspricht vom Aufbau her den Matrizen zur Objektplatzierung in mdl & grp-Dateien. Die Matrix gilt jeweils relativ zur Objektausrichtung ohne Animation. [/list]Ein Hinweise noch: Jeder Punkt/Vertex bewegt sich auf einer geraden Bahn zwischen zwei Keyframes! Rotierende Objekte werden also - je nach Auflösung der Bewegung - gestaucht und gestreckt bei der Bewegung. Im Anhang ein Beispiel. In der Modliste taucht es als "Forumsbeispiel Animation Matrix" auf.

    3.3 FILE_REF

Teilen