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