User Tools

Site Tools


z:concept:animation

Animationen

Ich schlage vor Skelettanimationen für alles zu verwenden, außer für Räder und Ketten der Panzer. Dort wären per Shader animierte Texturen effektiver. Im Prinzip würde man dann alle Objekte aufspalten in die Teile die verschieden animiert sind.

Diagramm zu einem einzelnen Animationszustand: state

Genauere Spezifikationen wo es nötig ist:

  • Move-Animationen entspricht unskaliert einer Geschwindigkeit von 1 unit / 1 sec.
  • Unskaliert eine Abspielzeit von 1 sec haben: Shoot, Start Turn Left, Start Turn Right, Driver Start Lookout, Driver Stop Lookout, Start Move, End Move.
  • Unskaliert eine Abspielzeit von 0.5 sec haben: Start Shoot, End Shoot, Pause Shoot.
  • Der Rest ist unspezifiziert.

Gebäude und Dekoration

Dort sind einfache Idle-Animationen denkbar, die (eventuell zufällig) endlos abgespielt werden. Vielleicht macht es Sinn die beweglichen Teile in ein zweites Mesh zu stecken, damit der aufwändigere Vertex Shader nicht für alle Vertices verwendet werden muss. Andererseits erhöht das ja den Batch-Count. Ausprobieren was effizienter ist?

Diagramme:

Panzer

Bestehen aus Chassis, Geschützen, Ketten und Rädern, Fahrer und Luke. Die Drehgeschwindigkeit der Ketten ließe sich über einen Shader-Parameter ansteuern. Vermutlich kann man so sogar bei Drehung, beschleunigen und bremsen passend aussehende Bewegungen hinkriegen ohne sehr großen Aufwand.

  • Chassis: Animationen für Idle (vibrieren von beweglichen Teilen durch die Motoren), Bewegung und Schießen (Rückstoß)
  • Fahrer, Luke: Idle, Herausschauen
  • Geschütz: Schießen
  • Ketten und Räder: Bewegung (abhängig von Geschwindigkeit?)

Diagramme:

Fahrzeuge

Das selbe wie bei Panzern, mit Ausnahme der Räder. Hier würde ich die als einzelnes Objekt per Skelett animieren. Weiterhin wäre es auch hier denkbar für Drehung ein Einschlagen der Räder in beide Richtung als Animationen hinzuzufügen.

Diagramme:

Roboter

Komplett per Skelett animiert, folgende Animationszyklen sind denkbar: Idle, Bewegung (Abspielgeschwindigkeit abhängig von Bewegungsgeschwindigkeit), Idle wenn Feind sichtbar aber außer Feuerreichweite, Feuern

Diagramme:

Wracks und tote Roboter

Bei der Zerstörung eines Objekts wird sein Mesh ausgetauscht. Das für diesen Zweck verwendete Mesh enthält eine oder mehrere Animationen, von denen eine abgespielt wird. Auf diese Weise lässt sich beispielsweise realisieren dass ein Panzer in Stücke bricht, ohne dass das normalerweise verwendete Mesh diese “Sollbruchstellen” und dazugehörige Bones besitzen muss. Nachdem die Animation abgespielt wurde sollte das Mesh nicht mehr sichtbar sein; zumindest bei den Objekten die durch die Zerstörung endgültig vernichtet sind. Es wäre denkbar zusätzlich per Shader das Material möglichst sanft durchsichtig werden zu lassen.

z/concept/animation.txt · Last modified: 2015/08/23 13:59 (external edit)