Programmierung von Animationseffekten

2) Definition von AnimFX-Objekten

 

Die Klasse der AnimFX-Objekte ist eine Subklasse der Objektklasse.

Das wichtigste beim AnimFX-Objekt ist sein Skript, das seine Eigenschaften steuert. Zusätzlich können noch weitere Variablen in einem AnimFX zur Verwendung kommen. Insgesamt läßt sich ein AnimFX daher wiefolgt unterteilen:

AnimFX-Objekt
Objektvariablen
Interne Variablen
Skript

 

a) AnimFX-Objekt

Ein solches Objekt ist gleichzusetzen mit den anderen Objekten von monzoom®, z.B. mit einem Dreiecksobjekt oder einem Shared-Points-Objekt. Ein AnimFX-Objekt kann auf die gleiche Weise angesprochen/bearbeitet werden. Zusätzlich bietet es Manipulationsmöglichkeiten, die speziell auf AnimFX-Objekte abgestimmt sind.

Die Klasse der AnimFX-Objekte ist eine Subklasse der Objektklasse.

 

b) Objektvariablen

Ein AnimFX-Objekt enthält, wie jedes andere Objekt auch, eine Anzahl von Objektvariablen. Bei einem Geo-Objekt z.B. enthalten die Variablen Position, Ausrichtung und Größe, bei einem Materialobjekt Farbe und Oberflächenparameter.

Für jedes AnimFX-Objekt ist die Variablenanzahl frei definierbar und wird über einen Skriptbefehl eingestellt. Beim Erzeugen des AnimFX-Objektes ruft monzoom® das Skript mit dem Parameter INIT auf. Hier kann das Skript dann einstellen, wieviele Variablen es benötigt und welcher Art diese sind.

 

Objektvariablen sind im Gegensatz zu den internen Variablen animierbar. D.h. in der Sequenz des AnimFX-Objektes werden in jedem Snap die Werte der Objektvariablen gespeichert und beim Interpolieren werden die Objektvariablen interpoliert.

 

Achtung!

Das Skript muß beim INIT-Aufruf mindestens eine Objektvariable definieren. Wenn nicht, gibt es es nichts zu animieren, keine Sequenz wird erzeugt und das AnimFX-Objekte wird wieder gelöscht.

 

Die Anzahl der Objektvariablen wird mit dem Skriptbefehl

AFX_SET_N_OBJ_VARS

eingestellt. Mit dem Befehl

AFX_DEFINE_OBJ_VAR

müssen dann Name und Art der Variable definiert werden.

 

Im Skript kann dann während der Animation der Wert einer Variable mit dem Befehl

OBJ_GET_VAR

gelesen werden.

 

c) Interne Variablen

Zusätzlich zu den Objektvariablen kann ein AnimFX-Objekt auch noch interne Variablen enthalten. Die sind im Gegensatz zu den Objektvariablen nicht animierbar bzw. werden von der Sequenz nicht beeinflußt.

Sie werden vielmehr benutzt, um Zustände bzw. Werte, die für das AnimFX-Objekt wichtig sind, für die Dauer des Effekts zu speichern. Sie dienen als globale Variablen für das Skript.

monzoom® ruft das AnimFX-Skript jeweils bei Beginn der Animation, vor und nach jedem Bild und bei Ende der Animation auf.

Um bestimmte Variablen auch zwischen den Aufrufen zu speichern, muß das Skript interne Variablen des AnimFX-Objektes verwenden.

Refskript-Variablen sind dafür nicht sinnvoll, denn sie werden jeweils bei Ende des Skripts wieder gelöscht.

 

Als interne Variablen können drei Typen benutzt werden, nämlich:

- Integer-Werte

- Real-Werte

- Pointer auf Objekte (OPointer bzw. Objekt-Pointer)

Integer-Variablen werden zum Speichern von Anzahlen, aber auch für Flags verwendet, Real-Variablen z.B. für Ausmaße, Faktoren etc.

Pointer auf Objekte werden benutzt, um andere Objekte zu speichern, von denen das AnimFX-Objekt abhängt oder die es erzeugt hat.

 

Beispiel: Ein AnimFX-Objekt, das einen "Rüttel-Effekt" auf ein Geo-Objekt (z.B. ein Raumschiff) ausüben soll.

Beim INIT-Aufruf des Skripts fordert es den Benutzer auf, anzugeben, welches Geo-Objekt gerüttelt werden soll. Das angegebene Objekt muß nun in einer Internen Pointer-Variable abgespeichert werden.

Vor jeder Bildberechung wird das Skript aufgerufen und kann aus der internen Variable lesen, welches Geo-Objekt gerüttelt werden soll, um das Objekt dann um einen Zufallsbetrag zu bewegen.

 

d) Skript

Das Skript weist an, was durch ein AnimFX geschehen soll. Hierfür stehen alle Skriptbefehle zur Verfügung, die Sinn zur (Objekt-)Manipulation machen: seien es einfache Befehle, um ein Objekt z.B. zu verschieben, oder spezielle Befehle, die das Partikelsystem ausnutzen oder ein Dreiecksobjekt explodieren lassen.

Das wichtigste beim AnimFX-Objekt ist sein Skript, das seine Eigenschaften steuert.

 

 

Zurück zur Übersicht


© 1997 Oberland Computer