Willkommen ~Gast!
Registrieren || Einloggen || Hilfe/FAQ || Staff
Probleme mit der Registrierung im Forum? Melde dich unter registerEin Bild.
Autor Beitrag
000
21.02.2003, 08:50
Der Recken



Moin,moin
Um eine plastische(volumenöse) Dampfwolke zuerstellen, habe ich drei Sprites hintereinander gelegt.
Genauer habe ich drei animierte Sprites (Sprite der bei einem Einschuss in der Wand entsteht) zeitlich verzögert gestartet, so dass sie ihre "Höhepunkte" (Zeitpunkt, in der sie am grössten dargestellt werden) nach einander erreichen. Dadurch entsteht ein sehr realischtische Wolke.(halt ein Partikel_System_für_Arme)

Dies funktioniert aber nur von einer Seite!

Betrachtet man die Wolke von der gegenüberliegende, so werden Darstellungsfehler sichtbar:

1. Die Ränder vom vorderen Sprite zum hinteren Sprite werden sichtbar,
2. Dahinter liegende Func´s werden ausgeblendet(unsichtbar).

Ich vermute, dass es an den Sprites selber liegt, weil sie animiert sind, und dies eine alte Macke von der HalfLife Engine ist, so dass ich nicht dagegen tun kann.
Sollte ich falsch liegen sagt mir Bescheid, unterdessen probiere ich noch aus, ob diese Fehler auch bei anderen Sprites auftauchen, muss aber andere brauchbare Sprites noch suchen....

Ist also vielleicht kein Enitiy-Problem, sondern ein Grafik-Problem, vielleicht habe ich dem ein oder anderen aber eine Idee gegeben, auch eine solche Wolke/Dampfwolke zu erstellen.

--

zum Seitenanfang zum Seitenende Profil || Suche
001
21.02.2003, 09:02




du hast also wenn ich richtig verstehe z.B. 3 Sprites hintereinander, von denen das letzte das ist, was als erstes ausgelöst wird, damit es nachher größer ist als die anderen ?

ich gehe jetzt einfach mal davon aus dass ich damit richtig liege.
warum du deine Darstellungsfehler hast, weiß ich nicht. Könnte das evtl. an den Compilern liegen ? falls du nicht ZHLT benutzt: schnell saugen...

evtl eine Lösung wäre, dass du die sprites fixierst. d.h. du baust statt 3 sprites 6 sprites hintereinander, von denen jeweils 3 in dieselbe Richtung zeigen.

__
____
______
______
____
__

so wie hier obe (Draufsicht !)

die oberen drei linien haben jeweils dieselben Einstellungen wie die Unteren, sie sind nur gespiegelt. die ersten drei linien sieht man jetzt (sofern sie an allen achsen fixiert sind) nur von vorne, von hinten nicht. die letzten drei linien nur von hinten, von vorne aber nicht. vielleicht lässt sich damit irgendwas lösen...

-LeJean-

--

zum Seitenanfang zum Seitenende Profil || Suche
002
21.02.2003, 10:27
Der Recken



1. Richtig, die drei Sprites sind hintereinander angeordnet und werden durch einen Trigger_Auto und Multi_Manager direkt am Anfang getriggert.

Zitat:
Trigger_Auto:
target: spritestart
delay: 1 (erst einmal eine Sekunde warten!)

Multi_Manager: (Auszug!)
name: spritestart
sprite1: 0
sprite2: 1
sprite3: 2

jeder Env_Sprite:
Name: Sprite1, 2 oder 3 (letzte Zahl! Vorbei!)
Scale Faktor(oso): unterschiedlich von 1 bis 5, um den Rauch grösser werdn zu lassen
Flag:Start off (oder "Start on" nicht, jedenfalls müssen die Sprites getriggert werden)

Der Sprite ist wie gesagt animiert, und optisch ist er zuerst völlig leer, dann baut sich eine "Wolke" auf (halt wie beim Einschussloch) und dann verschwindet die Wolke wieder, dann beginnt die Animation von vorn.
Die Sprites hab ich jetzt so getriggert, dass zuerst der Sprite mit dem kleinsten Scale Faktor getriggert wird und dann zeitlich verzögert der zweite und darauf der dritte Sprite. Der Zeitpunkt, an denen diese Wolke voll dargestellt wird ist dadurch unterschiedlich und die gesamte Dampfwolke wirkt sehr gut.
Das jetzt nur zu meiner Vorgehensweise!

2. Die Sprites richten sich mit ihrer "vollen Seite" immer zum Betrachter aus. Stehe ich jetzt auf diesem Bahnsteig(Position1), sind noch keine Darstellungsfehler zu erkennen (oder nicht vorhanden). Möchte ich jetzt von der anderen Seite auf die Sprites schauen(Position2), drehen sich diese ja mit und die Reihenfolge der Sprites ändet sich!

Zitat:
Betrachter von
Position1: X

Sprite3 ----3----

Sprite2 ----2----

Sprite1 ----1----

Betrachter von
Position2: X

Vom Betrachter1 aus gesehen, wird der hinterste Sprite zuerst, dann der mittlere und dann der vorderste Sprite getriggert/dargestellt/animiert

Vom Betrachter2 aus gesehen, wird der vorderste Sprite zuerst, dann der mittlere und dann der hinterste Sprite getriggert/dargestellt/animiert

Dadurch werden in Position1 die hinteren Sprites durch die zeitlich später dargestellen vorderen Sprites überblendet/verdeckt.
Aus Position2 gesehen, können sie nicht mehr überblendet/verdeckt werden, da sie sich jetzt im Vordergrund befinden.

Ich vermute das animierten Sprites in Quadrate unterteilt werden und nur die Quatrate neu gezeichnet werden, die sich von Bild(Frame) zu Bild(Frame) ändern. (Ähnlich dem Videokomprimierung MPEG, oder???) --> Daher diese Treppenbildung, besonders gut auf dem dritten Bild zu erkennen.

Also ist dieses Phänomen auf der HL-Engine basierend und kann wahrscheinlich nicht geändert werden!?!?

--


Dieser Beitrag wurde am 21.02.2003 um 10:47 von Der Recken bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
003
21.02.2003, 10:49
Term



Sieht für mich erstmal wie ein Problem der Grafikkarte aus. Hab ich jedenfalls noch nie gesehen und es kann auch nichts mit animierten Sprites zu tun haben, die lassen sich ohne weiteres über/hintereinander legen. Da sich die Sprites sowieso immer zum Betrachter ausrichten ist es auch völlig unlogisch, daß sie plötzlich ihre Eigenschaften ändern nur weil der Betrachter woanders steht.

Du könntest von dem Sprite mit SprView mal das .qc-File ausspielen und gucken, ob es richtig kompiliert wurde (sollte "vp_parallel" und "indexalpha" haben), weiterhin musst Du es natürlich auch richtig in die Map einsetzen (am besten "Render Mode: Additive"), mehr Möglichkeiten fallen mir aber auch nicht ein. Wie gesagt, wahrscheinlich eher Graka.

--

[ - Mindmotor.Studios - ]|[ - Poke646 - ]|[ - Spaceman - ]

zum Seitenanfang zum Seitenende Profil || Suche
004
21.02.2003, 11:51
Red Storm



jo könnte mit der open-gl / directX einstellung zu tun haben

--

töte tausende und du bist ein held -
töte einen und du bist ein mörder
chinesisches sprichwort
(da ist was faul)

zum Seitenanfang zum Seitenende Profil || Suche
005
22.02.2003, 17:56
Der Recken



Also an der Grafikkarte müsste es nicht liegen, und die OpenGl und DirectX Einstellungen sind eigentlich "normal" (halt wie bei jedem anderen, der Half-Life spielt)

Zitat:
Term postete
...Du könntest von dem Sprite mit SprView mal das .qc-File ausspielen und gucken, ob es richtig kompiliert wurde (sollte "vp_parallel" und "indexalpha" haben), ....
Den Sprite ausspielen habe ich noch nie und werde ich wahrscheinlich auch nie, denn notfalls finde ich bestimmt auch einen anderen Sprite. Jedenfalls is der Sprite bei DoD enthalten, und sollte somit nicht defekt oder anderweitig beschädigt sein, da er ja bei DoD benutzt wird.

Wer mir nicht glaubt, oder mein Problem "live" sehen will, kann meine Testmap runterladen:
http://mitglied.lycos.de/a82r/Mapping/Download.htm

--


Dieser Beitrag wurde am 22.02.2003 um 18:02 von Der Recken bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
006
22.02.2003, 19:26
the-middleman



welchen rendermode hast du denn für die sprites benutzt?

--

Spielen: Prison, Ispatel 4: Classic, Heart of evil
Anschauen: Spirit of Half-Life: Legion

The Trap ist mit abstand die fantastischste Mod die ich seit langem gespielt habe!

zum Seitenanfang zum Seitenende Profil || Suche
007
22.02.2003, 20:21
Term



Zitat:
Der Recken postete
Den Sprite ausspielen habe ich noch nie und werde ich wahrscheinlich auch nie
Wirst Du aber wohl müssen :) Ich hab mich nämlich gestern vertan, um ein Sprite so zu benutzen wie Du es vorhast, muß es nicht den Texturemode "indexalpha" (wie Deins und andere Einschuß-Sprites) sondern "additive" haben. Musst also entweder das Sprite neu kompilieren oder ein anderes mit entsprechendem Texturemode wählen (z.B. xsmoke4.spr aus dem valve Ordner).

Dann musst Du im Editor noch den Render Mode des Sprites auf "additive" stellen und einen FX Amount setzen (zur Zeit hast Du da gar nix angestellt), dann klappt das - so wie Du es jetzt gebaut hast, muß es fehlschlagen.

--

[ - Mindmotor.Studios - ]|[ - Poke646 - ]|[ - Spaceman - ]

zum Seitenanfang zum Seitenende Profil || Suche