zork-tdmog
Rare-Mob
- Registriert
- 08.06.2009
- Beiträge
- 152
- Reaktionspunkte
- 0
- Kommentare
- 2
Am Anfang war das Rad und nun wollen wir das Rad mal ans laufen kriegen.
Dies ist ein Re-Post von:
http://ui.phcnet.de/index.php?topic=51.0
Beziehen tue ich mich hier auf meine Erfahrungen aus meinem Diablo 3 UI.
http://www.wowinterface.com/downloads/fileinfo.php?id=9175
Ich versuche in dem Thread die mir bisher bekannten Möglichkeiten aufzuzeigen, wie man Animationen im WoW UI anzeigen kann.
Methode 1
Man erstellt einen Frame mit einer Textur und tauscht per OnUpdate die Textur aus.
Methode 2
Man erstellt einen Frame mit einer Textur und ändert per OnUpdate den jeweils sichtbaren Bereich der Textur (Stichwort: SetTexCoord)
Methode 3
Man bedient sich der *.m2 - Dateien welche gut versteckt im WoW Code schlummern. Dazu erstellt man einen Frame als PlayerModel und kann auf diesen dann eine m2-Datei legen.
Methode 4
Man erstellt einen Frame mit einer Textur und ändert per OnUpdate den Rotationswinkel der Textur mit SetTexCoord().
Methode 5
Man erstellt in XML sogenannte AnimationGroups und kann dann Elementen ähnlich wie in Flash zeitgesteuert bestimmte Bewegungsmuster zuweisen.
Vorteile der 1. Methode
- Man kann pro Textur eine hohe Auflösung verwenden
- Es sind runde Texturen möglich, da man mit TGA Dateien arbeitet welche über einen Alpha-Kanal verfügen
- Man kann Texturen im Graufarb-Modus erstellen und sie dann durch das UI beliebig mit SetVertexColor einfärben
Nachteile der 1. Methode
- Durch den OnUpdate ist die Rechenbelastung relativ stark und bei langsamen Rechner beginnt es merklich zu ruckeln
Vorteile der 2. Methode
- Man benötigt nur eine Textur, was das ruckeln enorm minimiert, da per OnUpdate nur die Coordinaten für den sichtbaren Bereich angepasst werden
- Es sind runde Texturen möglich, da man mit einer TGA Datei arbeitet welche über einen Alpha-Kanal verfügt
- Man kann Texturen im Graufarb-Modus erstellen und sie dann durch das UI beliebig mit SetVertexColor einfärben
Nachteile der 2. Methode
- Texturen können maximal 512x512 Pixel groß werden, daher ist der Platz stark begrenzt. Wie man wissen sollte benötigt man für eine flüssige Animation 25 Bilder pro Sekunde, das bedeutet alle 0.04 Sekunde muss ein neues Bild geladen werden. 5x5 entspricht genau 25, also hat man bei dieser Methode maximal 102px x 102px pro Einzelbild, was für die Qualität nicht besonders gut ist. Ok es sind "immerhin" 102px ...
- Die maximale Anzahl der Texturen ist klein, dadurch wiederholen sich die Bilder relativ häufig und die Kugel (in diesem Beispiel) dreht sich sehr schnell.
Vorteile der 3. Methode
- Da die ganze Animation in der m2-Datei steckt braucht man nicht mit OnUpdate arbeiten, das spart Rechenleistung und ist zudem absolut flüssig
- Durch den mathematischen Aufbau der Animation welche sich intern immer neu berechnet hat man nie das Gefühl, dass sich die Animation wiederholt
Nachteile der 3. Methode
- Die Animationen sind abhängig von der Zauberdetailstufe. Je höher sie ist umso deutlicher die Animation.
- Das PlayerFrame ist recheckig, demzufolge muss man die Ecken irgendwie überdecken, man hat kaum eine Möglichkeit die Animation diesbezüglich zu beeinflussen.
- Aus mir unerfindlichen Gründen wirkt sich das betreten von Instanzen auf den Paramter "SetPosition" von Animationen aus. Das hat zur Folge, dass man meist mit SetPosition(-10,0,0) o.ä. arbeiten muss. Die WoW Api ist diesbezüglich zumindest was Animationen betrifft falsch. Es muss lauten SetPosition(z,x,y).
- Man kann die Animationen nachträglich nicht einfärben
Vorteile der 4. Methode
- Man braucht nur eine Textur
- Die Textur kann sehr groß und Detailreich sein (512x512px möglich)
- Man kann durch die Gradzahl definieren wieviel mögliche Bilder es geben wird, Endbild wird eigenständig errechnet
- Dank TGA Format sind runde Texturen möglich
Nachteile der 4. Methode
- Die Textur dreht sich immer in eine Richtung und kann sich dabei nicht selbst verändern.
- Macht nur bei meist nur bei runden Texturen Sinn, da eine quadratische Textur in der Rotation wahrscheinlich nicht den gewünschten Effekt erzeugt.
Nachteile der 5. Methode
- Derzeit nur gut in XML dokumentiert, die LUA API ist noch recht unausgegoren.
Hinweis: Methode 3 lässt sich mit Methode 1, 2 und 4 koppeln. Da die m2. Files selber halbtransparent sind.
Quellen:
http://www.wowwiki.com/World_of_Warcraft_API
http://www.mpqnav.com/2008/06/11/m2s-have-...glorious-trees/
http://wowdev.org/wiki/index.php/M2
http://www.gameguidesonline.com/guides/art...ctober05_02.asp
http://www.wowprogramming.com/docs/widgets
Dies ist ein Re-Post von:
http://ui.phcnet.de/index.php?topic=51.0
Beziehen tue ich mich hier auf meine Erfahrungen aus meinem Diablo 3 UI.
http://www.wowinterface.com/downloads/fileinfo.php?id=9175
Ich versuche in dem Thread die mir bisher bekannten Möglichkeiten aufzuzeigen, wie man Animationen im WoW UI anzeigen kann.
Methode 1
Man erstellt einen Frame mit einer Textur und tauscht per OnUpdate die Textur aus.
Methode 2
Man erstellt einen Frame mit einer Textur und ändert per OnUpdate den jeweils sichtbaren Bereich der Textur (Stichwort: SetTexCoord)
Methode 3
Man bedient sich der *.m2 - Dateien welche gut versteckt im WoW Code schlummern. Dazu erstellt man einen Frame als PlayerModel und kann auf diesen dann eine m2-Datei legen.
Methode 4
Man erstellt einen Frame mit einer Textur und ändert per OnUpdate den Rotationswinkel der Textur mit SetTexCoord().
Methode 5
Man erstellt in XML sogenannte AnimationGroups und kann dann Elementen ähnlich wie in Flash zeitgesteuert bestimmte Bewegungsmuster zuweisen.
Vorteile der 1. Methode
- Man kann pro Textur eine hohe Auflösung verwenden
- Es sind runde Texturen möglich, da man mit TGA Dateien arbeitet welche über einen Alpha-Kanal verfügen
- Man kann Texturen im Graufarb-Modus erstellen und sie dann durch das UI beliebig mit SetVertexColor einfärben
Nachteile der 1. Methode
- Durch den OnUpdate ist die Rechenbelastung relativ stark und bei langsamen Rechner beginnt es merklich zu ruckeln
Vorteile der 2. Methode
- Man benötigt nur eine Textur, was das ruckeln enorm minimiert, da per OnUpdate nur die Coordinaten für den sichtbaren Bereich angepasst werden
- Es sind runde Texturen möglich, da man mit einer TGA Datei arbeitet welche über einen Alpha-Kanal verfügt
- Man kann Texturen im Graufarb-Modus erstellen und sie dann durch das UI beliebig mit SetVertexColor einfärben
Nachteile der 2. Methode
- Texturen können maximal 512x512 Pixel groß werden, daher ist der Platz stark begrenzt. Wie man wissen sollte benötigt man für eine flüssige Animation 25 Bilder pro Sekunde, das bedeutet alle 0.04 Sekunde muss ein neues Bild geladen werden. 5x5 entspricht genau 25, also hat man bei dieser Methode maximal 102px x 102px pro Einzelbild, was für die Qualität nicht besonders gut ist. Ok es sind "immerhin" 102px ...
- Die maximale Anzahl der Texturen ist klein, dadurch wiederholen sich die Bilder relativ häufig und die Kugel (in diesem Beispiel) dreht sich sehr schnell.
Vorteile der 3. Methode
- Da die ganze Animation in der m2-Datei steckt braucht man nicht mit OnUpdate arbeiten, das spart Rechenleistung und ist zudem absolut flüssig
- Durch den mathematischen Aufbau der Animation welche sich intern immer neu berechnet hat man nie das Gefühl, dass sich die Animation wiederholt
Nachteile der 3. Methode
- Die Animationen sind abhängig von der Zauberdetailstufe. Je höher sie ist umso deutlicher die Animation.
- Das PlayerFrame ist recheckig, demzufolge muss man die Ecken irgendwie überdecken, man hat kaum eine Möglichkeit die Animation diesbezüglich zu beeinflussen.
- Aus mir unerfindlichen Gründen wirkt sich das betreten von Instanzen auf den Paramter "SetPosition" von Animationen aus. Das hat zur Folge, dass man meist mit SetPosition(-10,0,0) o.ä. arbeiten muss. Die WoW Api ist diesbezüglich zumindest was Animationen betrifft falsch. Es muss lauten SetPosition(z,x,y).
- Man kann die Animationen nachträglich nicht einfärben
Vorteile der 4. Methode
- Man braucht nur eine Textur
- Die Textur kann sehr groß und Detailreich sein (512x512px möglich)
- Man kann durch die Gradzahl definieren wieviel mögliche Bilder es geben wird, Endbild wird eigenständig errechnet
- Dank TGA Format sind runde Texturen möglich
Nachteile der 4. Methode
- Die Textur dreht sich immer in eine Richtung und kann sich dabei nicht selbst verändern.
- Macht nur bei meist nur bei runden Texturen Sinn, da eine quadratische Textur in der Rotation wahrscheinlich nicht den gewünschten Effekt erzeugt.
Nachteile der 5. Methode
- Derzeit nur gut in XML dokumentiert, die LUA API ist noch recht unausgegoren.
Hinweis: Methode 3 lässt sich mit Methode 1, 2 und 4 koppeln. Da die m2. Files selber halbtransparent sind.
Quellen:
http://www.wowwiki.com/World_of_Warcraft_API
http://www.mpqnav.com/2008/06/11/m2s-have-...glorious-trees/
http://wowdev.org/wiki/index.php/M2
http://www.gameguidesonline.com/guides/art...ctober05_02.asp
http://www.wowprogramming.com/docs/widgets
Zuletzt bearbeitet von einem Moderator:
rb.jpg]