AnimationMixer Klasse

Optionaler Animations-Mixer für ein GameObject: steuert die Animations-Layer des Objekts, blendet weich zwischen Animationen über und meldet Ereignisse (z.B. Schritte).

Definition

Namensraum: KWEngine3.Animation
Assembly: KWEngine3 (in KWEngine3.dll) Version: 3.0.9.5+57af0b8dc8253ca4e9d9803fd04a0124940de651
C#
public class AnimationMixer
Inheritance
Object    AnimationMixer

Anmerkungen

Ablauf: 1. Clips einmal pro Modell registrieren: AnimationMixer.AddClipToModel(...) (optional: AddEventToClip(...)) 2. Pro GameObject einen Mixer erzeugen (optional: AddChannel(...) für Körperregionen mit Knochen-Presets) 3. In jedem Act(): Play(...) für jeden Kanal aufrufen, danach Update() Solange ein Objekt einen Mixer besitzt, werden direkte Aufrufe von SetAnimationID(), SetAnimationPercentage() usw. ignoriert.

Konstruktoren

AnimationMixer Erzeugt einen Animations-Mixer für das angegebene GameObject. Ab jetzt steuert der Mixer alle Animations-Layer des Objekts.

Methoden

AddChannel Fügt einen Kanal (Körperregion) hinzu. Jeder Kanal belegt zwei der vier Animations-Layer, um überblenden zu können. Kanäle müssen vor dem ersten Aufruf von Play() oder Update() angelegt werden.
AddClipToModel(String, String, Int32, Single) Registriert einen Clip für ein Modell (einmalig, z.B. beim Laden des Modells)
AddClipToModel(String, String, String, Single) Registriert einen Clip für ein Modell anhand des Animationsnamens (einmalig, z.B. beim Laden des Modells)
AddEventToClip Setzt ein Ereignis an einer Stelle eines Clips (löst AnimationEvent aus, sobald die Animation diese Stelle überschreitet)
IsFinished Gibt an, ob die aktuelle Animation des Kanals (ohne Schleife) ihr Ende erreicht hat
IsPlaying Gibt an, ob auf dem Kanal gerade der angegebene Clip läuft (auch während er noch eingeblendet wird)
Play Spielt einen Clip auf einem Kanal ab. Darf in jedem Act() aufgerufen werden: Läuft der Clip bereits, wird nur die Geschwindigkeit übernommen; sonst wird überblendet.
Update Führt alle Kanäle um ein Update fort, überträgt sie an das GameObject und löst Ereignisse aus. Muss einmal pro Act() aufgerufen werden (nach den Play()-Aufrufen).

Ereignisse

AnimationEvent Wird ausgelöst, wenn die laufende Animation eines Kanals eine mit AddEventToClip() gesetzte Stelle überschreitet

Felder

DEFAULT_CHANNEL Name des Ganzkörper-Kanals, der automatisch angelegt wird, wenn vor dem ersten Play() bzw. Update() kein Kanal hinzugefügt wurde (Layer 0 und 1, alle Knochen)

Siehe auch