D2library

<< FAQtoids Übersicht

Can't Stand Still

Frames und Animationen

Definitionen

Ein Frame ist ein Standbild. Allgemein meint man mit frames per second oder kurz fps in Computerspielen die Geschwindigkeit, mit der die einzelnen Bilder hintereinander ablaufen. Ab 25fps nimmt das menschliche Auge eine Abfolge von Standbildern als kontinuierliche Bewegung wahr, augenschonend wird es erst ab 70fps aufwärts.

Im speziellen Diablo2 Kontext kommt aber auch noch eine andere Bedeutung dazu:
Das Spiel generiert den Bildschirminhalt mit 25fps, alle Animationseffekte wie Zuschlagen, Schießen, Zaubern, Abblocken, Ausweichen, Treffererholung et cetera werden in diesen Frames dargestellt. Zur besseren Unterscheidung sollte man hier den Begriff frames per animation / fpa benutzen.

Das Spiel baut also alle 0,4 Sekunden für jedes Frame die Monitordarstellung neu auf. Das kann nicht beschleunigt werden. Das Konsolenkommande /fps zeigt - hoffentlich - deutlich höhere Werte an, die beziehen sich aber nur auf die Darstellungsqualität der dreidimensionalen Schuß- und Zaubereffekte. Für die spielrelevanten Dinge hat dies keine Bedeutung. Ist der so angezeigte Wert allerdings deutlich schlechter als 25fps, so entgehen dem Spieler wichtige Updates wie beispielsweise die tatsächlichen Positionen sich bewegender Spieleinheiten.

Über Zeit wirkende Effekte wie Vergiftung und Erkältung (chill) sowie die kleinteilige Berechnung der verschiedenen Animationen werden mit 1/256 Sekunden durchgeführt. Das hat wiederum gar nichts mit der Darstellung am Bildschirm zu tun, sondern stellt die kleinste Zeiteinheit dar, mit der das Spiel intern umgehen kann (extra precision).

siehe auch:

Animationen

Alle Animationsabläufe sind leider hartcodiert und damit schwer durchschaubar. Hinterlegt sind die relevanten Abläufe fast alle in der AnimData.d2 beziehungsweise eAnimData.d2. Die zugehörigen Grafiken selbst liegen als *.cof und *.dcc Dateien vor. Am besten stellt man sie sich ähnlich einem animierten *.gif Bild vor. Allerdings besteht ein animiertes *.gif wie ein Daumenkino aus einer Aneinanderreihung von Komplettbildern, die nacheinander abgespielt werden, während die Grafik beispielsweise einer von vorne zu sehenden, stehenden Amazone mit Bogen aus mehreren Einzelteilen für Kopf, Arme, Beine und Torso besteht, die in Abhängigkeit von der Aurüstung für jedes Einzelbild einer Animation erst zusammengesetzt werden, bevor dann die Gesamtanimation abgespielt wird.
Dieser ganze Vorgang existiert dann jeweils noch für die verschiedenen Positionen (vorne, hinten, rechts, links usw). Dann existiert der gleiche Vorgang noch für Gehen, Rennen, Getroffenwerden et cetera.

Animationskürzel
KürzelAnimationBedeutung
Nicht alle aufgeführten Animationen finden auch tatsächlich Anwendung im Spiel.
A1Attack 1die Standardattacke, Basis auch für fast alle
Kampfangriffsanimationen
A2Attack 2eine Variante der A1, die bei Spielcharakteren selten angewandt wird,
bei Monstern aber recht häufig
BLBlockingdie Animation bei Anwendung des Schildblocks
GHGetHitdie Animation der Treffererholung
DDDeathder erste Teil der Todesanimation
DTDeath Throwder zweite Teil der Todesanimation
KKKickder Tritt gegen Kisten, Fässer usw
bei der Assassine auch für Kampftritte in Gebrauch
NUNeutral (outside town)Stehen in der Wildnis
(kampfbereit)
RNRunRennen
S1Skill 1jeder Spieleinheit können bis zu vier verschiedene Animationen zur
Anwendung bestimmter Fertigkeiten zugeordnet sein
S2Skill 2
S3Skill 3
S4Skill 4
SCSpell CastingZaubern
THGetHit (in town)in der Stadt getroffen werden
TNNeutral (in town)Stehen in der Stadt
(auch im Chatroom)
TWWalk (in town)Gehen in der Stadt
WLWalk (outside town)Gehen in der Wildnis
(kampfbereit)

Solange eine Charakteranimation läuft, kann eine Spieleinheit keine weitere Aktion durchführen. Ausnahmen sind lediglich Stehen, Gehen und Rennen. Diese können jederzeit von einer anderen Animation abgelöst werden, die anderen dagegen wie die GetHit Animation (Treffererholung) müssen zwingend zu Ende abgespielt werden.
Mit 1.10 wurden die Animationsroutinen des Spiels tiefgreifend überarbeitet. Die Priorität für die Grafikausgabe am eigenen Rechner ist jetzt anders, viele charakterbezogene Animationen werden zugunsten einer flüssigeren Ausgabe schlicht unterdrückt. Das hat auch Schattenseiten. Wird der Spielcharakter während einer Angriffsserie getroffen, so erscheint nicht immer die GetHit Animation, sondern er schlägt, schießt oder zaubert an der Grafikausgabe munter weiter. Intern wertet das Spiel den Treffer aber aus, so daß man in Konsequenz während der Folgeserie von Angriffen nicht mehr trifft, da diese ja gestartet wurden, als der Charakter laut Spielmechanik in der Treffererholung war.

Bei den Angriffsanimationen gibt es einen bestimmten Zeitpunkt, ab dem der Angriff nicht mehr unter- beziehungsweise abgebrochen werden kann, dies gilt umgekehrt auch für Monster.
In 1.09 konnte man in Blocklock geraten, wenn während eines erfolgreichen Schildblocks nochmals die Blockchance getriggert wurde. In 1.10 wird dies umgangen, indem nach erfolgreichem Block für eine bestimmte Zeit keine Blockanimation mehr dargestellt wird. Schnellere Blockrate verlängert neben dem eigentlichen Effekt auch diese Zeitspanne, so daß man nicht mehr durch die Animation behindert wird.

Jede Spieleinheit kann (aber muß nicht) bis zu vier verschiedene Animationen zur Darstellung der Anwendung verschiedener Fertigkeiten plus einer weiteren Animation zum Zaubern zugeordnet haben. Die Zurodnung der Fertigkeiten zu Animationen wird in der Skills.txt vorgenommen. Verwendet eine Spieleinheit eine Fertigkeit, für die die Einheit keine Animation hat, so wird die Einheit ganz oder teilweise unsichtbar. Manche Animationen sind auch nur bruchstückhaft hinterlegt. Dies fällt nicht auf, solange Spielcharaktere ihre nativen Fertigkeiten verwenden, die hier zugeordneten Animationen sind alle in Ordnung. Es macht sich aber unter Umständen dann bemerkbar, wenn eine Charakterklasse durch Gegenstände Fremdfertigkeiten einer anderen Klasse nutzt. Als Beispiel sei auf eine Bildserie von Arghm4n0 verwiesen, die die verschiedenen Charakterklassen bei Ausübung der Druidenfertigkeit Arctic Blast / Arktiswind zeigt.

Es gibt die Animationen klassenabhängig und waffenabhängig. Abseits der getragenen Waffe ist die sonstige am Spielcharakter gezeigte Ausrüstung nur kosmetischer Natur, die Kopfbedeckung hat keinerlei Auswirkungen auf den Animationsablauf, ebensowenig das Aussehen von Torso und Beinen. Dennoch existieren natürlich verschiedene Grafikteile für die verschiedenen Charakterköpfe mit Masken, Großhelmen, Knochenhelmen, ohne Kopfbedeckung und so weiter. Die letzten vier Einträge in der folgenden Tabelle sind nur für den Barbaren von Bedeutung, da nur er die genannten Waffen in Kombination führen kann. Siehe dazu auch den Auszug der Spielerklassen aus der AnimData.d2.

Aufschlüsselung nach Animationen
KürzelBedeutungbeinhaltet
* und nicht etwa two handed swing
hthhand to handFaustkampf
ht1eine Klauenwaffe
ht2zwei Klauenwaffen
1htone handed thrust1H Stichwaffe
2httwo handed thrust2H Stichwaffe
1hsone handed swing1H Schwungwaffe
2hstwo handed sword *2H Schwert *
stfstaves2H Hämmer
2H Äxte
2H Stäbe
Stangenwaffen
bowbowsBögen
xbwcrossbowsArmbrüste
1jsLeft Jab Right Swinglinks Stich-, rechts Schwungwaffe
1jtLeft Jab Right Thrustlinks und rechts Stichwaffe
1ssLeft Swing Right Swinglinks und rechts Schwungwaffe
1stLeft Swing Right Thrustlinks Schwung-, rechts Stichwaffe

Um das Ganze noch etwas komplizierter zu machen, gibt es auch noch Animationssequenzen. Hierbei werden Schnipsel verschiedener Animationen zu einer neuen Animation zusammengesetzt. Fertigkeiten, die Sequenzen benutzen, sind in der Skills.txt mit einem SQ in der Spalte anim gekennzeichnet. Die Sequenzanimation einer Zauberin bei Ausübung der Zauber Inferno, Lightning und Chain Lightning besteht beispielsweise aus der GH Animation, einem weiteren Schnipsel und nochmals der GH Animation.
Dennoch wird diese Animation allerdings von Schnellerer Zauberrate beschleunigt und nicht etwa von Schnellerer Treffererholung.


Wiederum anders sieht es bei den Wandelformen aus, im Speziellen bei der Erscheinungsform als Vampir (Nekromant mit komplett angelegtem Trang Oul Set) und als Untoter Fetisch (Triggerereignis beim Tragen des Helmrunenwortes Delirium / LemIstIo).
Da den Monstereinheiten in aller Regel weniger Animationen zur Verfügung stehen als den Spielcharakteren, mußten die Programmierer zu etwas kruden Tricks greifen, damit das Spiel nicht wegen des Aufrufs einer nicht vorhandenen Animation abstürzt. So hat der Vampir keine unterschiedlichen Modi für Gehen und Rennen, folglich wird seine Fortbewegungsanimation einfach für beide Modi genutzt. Als Begleiterscheinung besteht damit für den Nekromanten in Vampirform kein Geschwindigkeitsvorteil im Rennen Modus gegenüber dem Gehen Modus. Er sollte demzufolge im Gehen Modus bleiben, um die Mali auf Rüstungsschutz und Blockchance zu umgehen.
Weder Vampir noch Untoter Fetisch haben eine Animation für Schildblock. Um dennoch funktionierenden Schildblock zu gewährleisten, wird in diesen Wandelformen stattdessen die GH Animation, also die Treffererholung, benutzt. Aus der Besonderheit des Überstülpens einer anderen Erscheinungsform auf den Spielcharakter resultiert hier, daß auch die Blockgeschwindigkeit nicht etwa von Schnellerem Blocken, sondern von Schnellerer Treffererholung profitiert.
Dies bezieht sich ausdrücklich auf die beiden Wandelformen als Monster. Die Druidenwandelformen als Werwolf oder Werbär unterliegen nicht diesem Mechanismus, da beide Formen Animationen zum Blocken vorhalten. Verwandelt sich ein Angehöriger einer anderen Klasse via Fremdfertigkeit in eine Werform, so gelten die Angaben der Werform.

Formale Herleitungen der verschiedenen Animationen sind in den jeweiligen Einzelartikeln zu finden. Errechnete Framestufen, also die Dauer der jeweiligen Animationen, sind zusammengefaßt auf der Seite mit den klassenabhängigen Tabellen.

siehe auch:

Credits / Danke


Feedback und Korrekturen mit nachvollziehbarer Erläuterung nehme ich dankend via Mail über diese Adresse entgegen.


Valid HTML 4.01 Transitional
Valid CSS 2.0

zuletzt aktualisiert am 24V06
© by librarian

<< FAQtoids Übersicht

D2library