3. Positionieren der Animation

Es ist wichtig, dass Sie die Frames Ihrer Animation in jedem Zyklus richtig positionieren, sonst bekommen Sie seltsame Effekte (in etwa solche wie einen Player, der über der Oberfläche schwimmt oder sich in den Boden hinein duckt). Verschiedene Animationszustände (wie Ducken und Schwimmen) haben bezüglich ihrer Positionierung verschiedene Regeln. Ich werde hier alle Zustände behandeln und verwende dabei "cwarrior.mdl" aus der Low-Res-Modellsammlung als Beispiel.

Wichtig ist das erste Frame des Modells, denn es setzt dessen bounding box -Werte (min_x u nd max_x -Vektoren). Wenn Sie die Bounding nicht in Ihrem Skript verändern, ist dies die Box, die zum Umgang mit sämtlichen Kollisionen verwendet wird. Details darüber können Sie im Kapitel Kollision nachlesen. Für den Moment genügt es, daß Sie wissen, daß diese Box den Nullpunkt (origin) des Modells umschließt und normalerweise kleiner als das Modell ist. Der Nullpunkt ist das kleine Kreuz, das Sie in MED sehen und das sollte immer in der Nähe des Zentrums des Modells platziert sein.

Per Default bekommt jedes Modell eine Standard-Bounding-Box in der vom Map Compiler-Dialog gegebenen hull offsets Die Standard-Boundingbox hat eine Höhe von 64 Einheiten und ist 48 Einheiten breit. Daher sollte ein normales Actor-Modell ausreichend grössser als 64 Einheiten sein - ansonsten wird die Boundingbox auf dem Boden schleifen, das Modell würde in die Luft gehoben und in jedem Hindernis stecken bleiben. Falls Sie Modelle anderer Skalierung verwenden, können Sie entweder die Standard-Boundingbox durch Angeben anderer hull offsets anpassen oder, Sie setzen eine individuelle Boundingbox indem Sie in der Entity-Aktion die Vektoren min_x und max_x einstellen.

Für die Kollision mit dem Boden verwenden die Template-Skripte nicht die Boundingbox des Modells, sondern messen lediglich den Abstand seiner Füsse zum Boden. Darum muss ein Modell normalerweise in all seinen Amimationszyklen denselben Abstand zum Grund beibehalten. Dies geschieht durch eine imaginäre 'Boden-Ebene' (ground plane), auf der das Modellsteht. Diese 'Boden-Ebene' ist also eine gedachte Ebene parallel zur X-Y-Ebene, die neben den Ursprung des min_z-Wertes des Modells gesetzt wird - also des tiefsten Vertex' des ersten Frames.

Um Ihre Boden-Ebene zu ermitteln, schauen Sie sich das erste Animationsframe (korrekterweise 'stand0') an. Suchen Sie den tiefsten Punkt in einem der unteren beiden Ansichtsfenster (Seit- oder Front). Stellen Sie sich nun eine zum unteren Rand des Sichtfensters parallele Linie vor, die duch diesen Punkt führt und Sie haben Ihre Ausgangs-'Boden-Ebene'.


Die Grund-Ebene


Es ist wichtig, dass Sie auch für die restlichen Zustände in Erinnerung behalten, wo diese Ebene ist.

Die Höhe des Nullpunkts des Modells über dieser Grundebene legt fest, wie gut Ihr ModellStufen und Hänge erklimmen kann. Liegt der Nullpunkt zu hoch, wird Ihr Modell über Wände hinwegklettern können, ist er zu tief, dringt die Hülle in den Boden ein, und das Modell kann sich nicht einmal über festen Grund bewegen.

Weiter

► Aktuelle Version Online