|
-
[Tool] Pfx Renderer "DOPA-PARTER" 0.8
Bislang gibt es noch keinen PFX-Renderer. Nicht zuletzt deshalb aber auch aus Neugier habe ich einen solchen erstellt.
Mit dem "DON'T PANIC Partikel Effekt Renderer" (DOPA-PARTER) können (nach Angabe des entsprechenden Scripts) beliebige Instanzen gerendert werden (Einschränkungen: siehe Readme). Auch ist es möglich direkt im Programm eine PFX-Instanz anzugeben.
Der große Vorteil ist letztendlich, dass man sich das Scripte parsen und damit das Neustarten von Gothic bzw. dem Spacer spart. Ansonsten gibt es ein paar Kleinigkeiten wie:
- Zeit Verlangsamen bzw. Zeitstopp zur besseren Begutachtung des Effekts möglich
- Simulation einer Bewegung des Emitters möglich (ohne dass man diesem mit der Kamera hinterherfliegen muss)
- Mehr oder minder nützliche Hinweise auf logische Fehler oder unnütz angegebene Eigenschaften
Das vollständige Readme:
Code:
//###################################################################
// _____ ____ _ _ _______ _____ _ _ _____ _____ ##
// | __ \ / __ \| \ | |__ __| | __ \ /\ | \ | |_ _/ ____| ##
// | | | | | | | \| | | | | |__) / \ | \| | | || | ##
// | | | | | | | . ` | | | | ___/ /\ \ | . ` | | || | ##
// | |__| | |__| | |\ | | | | | / ____ \| |\ |_| || |____ ##
// |_____/ \____/|_| \_| |_| |_| /_/ \_\_| \_|_____\_____| ##
// ##
//###################################################################
//*****************************************
// Partikel Effekt Renderer 0.8
//*****************************************
Der DON'T PANIC Partikel Effekt Renderer (DOPA-PARTER) ist ein Tool zum schnellen Analysieren und Bearbeiten von Partikeleffekten. Dadurch, dass Änderungen sofort sichtbar werden und brauchbare Fehlermeldungen bei logischen (nicht syntaktischen) Fehlern ausgegeben werden, sollte er auch Anfängern beim Verständnis nützlich sein.
//#################################################################
//
// Was sind Partikeleffekte und wie benutze ich sie?
//
//#################################################################
Online gibt es dazu ausreichend Information z.B. hier:
Partikeleffekte für Einsteiger: http://www.worldofgothic.de/modifikation/index.php?go=particelfx
Tabelle, die alle Eigenschaften erklärt: http://wiki.worldofgothic.de/Partikel+Effekte
//#################################################################
//
// Bedienung
//
//#################################################################
//************************************
// 0.) Standardausgabe
//************************************
Die Anwendung besitzt eine Standardausgabe, in der zu allen Fehler, die während des Parsens und Interpretierens eines Partikeleffekts auftreten, Fehlermeldungen angezeigt werden. Zudem werden dort auch andere Hinweise, etwa auf irrelevante, aber trotzdem spezifizierte Werte angezeigt. Ein gelegentlicher Blick darauf hilft den Code zu "entschlacken". Einer der Flüche der Partikeleffekte ist nämlich auch, dass durch die gewöhnliche Erstellung über Copy und Paste viele sinnlose Angaben in den Instanzen herumstehen (auch und gerade in den Scripten von Piranha Byte).
Möglicherweise ist die Standardausgabe von einem der anderen Fenster verdeckt. Wer suchet der findet.
//*****************************************
// 1.) Partikel Effekt zum Rendern wählen
//*****************************************
Im Eingabefeld "PFX-Datei" kann ein Daedalus-Script spezifiziert werden, in dem nach Partikeleffekten und eventuellen Prototypen gesucht wird.
Es ist möglich im Eingabefeld "PFX in PFX-Datei" direkt eine Instanz aus dieser Datei anzugeben oder in das große "Script"-Eingabefeld einen PFX zu schreiben oder zu kopieren (der Prototypen aus dem angegebenen Script nutzen darf).
Mit den "Rendern!"-Buttons wird die entsprechende Eingabe interpretiert.
//************************************
// 2.) Kamerasteuerung
//************************************
Die Kamera wird exakt wie im Spacer gesteuert:
-Pfeiltasten: Bewegung in der Ebene und Drehung um die vertikale Achse
-Bild auf/Bild ab: Höhenblickwinkel der Kamera
-A/Y: Bewegung entlang der senkrechten Achse
Ein Freiflugmodus ist allerdings nicht verfügbar.
//************************************
// 3.) Zusätzliche Einstellungen
//************************************
/******** Hintergrundfarbe: *********/
Partikeleffekte werden in der Regel über die bestehende Szene geblendet, das heißt, sie sehen vor verschiedenen Hintergründen verschieden aus. Oft - aber nicht immer - ist ein schwarzer Hintergrund sinnvoll.
/******** Kamerageschwindigkeit:
Der Schieberegler bestimmt wie schnell sich die Kamera bewegt und dreht. Je nach Größe des Partikeleffekts und Geduld/Geschick des Anwenders kann eine Anpassung sinnvoll sein.
/******** Zeitskalierung:
Um einen Effekt besser untersuchen zu können, kann die Geschwindigkeit, mit der die Zeit vergeht heruntergesetzt werden. Auch eine Beschleunigung des Effekts ist möglich. Durch ein Klicken auf "1.0" wird der Faktor zurückgesetzt.
/******** Z-Bewegung simulieren:
In der Praxis steht der Emitter oft nicht still, zum Beispiel, wenn der PFX als Projektil für Zauber fungiert. Ein bewegter PFX sieht anders aus als ein still stehender (sofern "useEmittersFOR" nicht gesetzt ist). Der Schieberegler simuliert eine solche Bewegung in Z-Richtung.
//************************************
// 4.) Gitterdarstellung
//************************************
Das Koordinatensystem sowie zusätzliche Linien zur Orientierung werden standardmäßig eingeblendet, können aber auch abgeschaltet werden.
Auch die Farbe, die Opazität, die Liniendicke und der Abstand der Gitterlinien voneinander können verändert werden.
//#################################################################
//
// Warum 0.8?
//
//#################################################################
//************************************
// Diese Version kann nicht:
//************************************
Meshes (*.3DS) können nicht gerendert werden, das heißt die Eigenschaft "MESH" für "shpType_S" ist nicht unterstützt.
Die Eigenschaft "ppsCreateEm_S" (weitere Unter-Partikeleffekte erzeugen) wird nicht unterstützt.
-Trails, Marks und FlockMode wird nicht unterstützt.
//************************************
// Fehler
//************************************
-Das Programm ist regelmäßig abgestürzt, wenn der Spacer gerade läuft und benutzt wird (freeze). Was da genau schief läuft weiß ich nicht.
Download des DOPA-PARTERs (von Sumpfkrautjunkie überarbeitet).
Hier noch ein Screenshot (Die Windows Darstellung ist vermutlich abweichend von eurer lokalen).
Viel Spaß!
Wer den ersten Fehler findet (nicht abgefangene Exception, falsch gerenderter PFX oder ähnliches) bekommt einen Keks.
Allzu unwahrscheinlich ist das diesmal nicht, ich habe mir nur mittel viel Zeit beim testen gelassen.
Ich hoffe jedenfalls, dass ich manchem damit helfe die Partikeleffekte besser zu verstehen oder sie schneller zu erstellen. Wo ich gerade dabei war, habe ich noch einen neuen Artikel im Wiki über Partikeleffekte verfasst.
Edit: Überarbeitete Version verfügbar!
Sumpfkrautjunkie hat den DOPA-PARTER überarbeitet, kleinere Fehler verbessert und die Benutzbarkeit erhöht.
Geändert von Sektenspinner (26.02.2010 um 09:27 Uhr)
-
geil!!!
is der vista kompatibel?
-
Jep, habs eben testweise mal gestartet und den Teleportring gerendert mit Vista Home Premium 64Bit, hat gefunzt
Sieht ganz interessant aus, mal sehen ob mir das was bringt, muss mich dazu aber immer noch in die Partikeleffekte einarbeiten ^^
-
[Bild: kk.jpg]
was hab ich falsch gemacht?
-
Cool, das ist ja mal wirklich genial.
Vielen Dank.
Aber wäre es möglich, auf .TEX-Datein mit ein zu beziehen?
Oparilames nachdem er seinen Gesellenbrief erhalten hat:
»Das war's mit dir, du Mistvieh!«
-
Respekt!
Die PFXe sehen genau so aus, wie im Spiel!
Jetzt kann man direkt sehen, was eine Änderung einer Eigenschaft bewirkt.
Einfach nur toll!
Einzig verbesserungswürdig wäre die Scriptimplementierung (z.B. dass man sich die Texturen per Dropdown raussuchen kann, die Farben per Farbdialog etc).
-
Noch ein Nachtrag:
Einige PFX sind Meshgebunden. Hier soetwas
Code:
INSTANCE MFX_SKULL_CAST (C_PARTICLEFX)
{
ppsvalue = 100;
ppsscalekeys_s = "1.0";
ppsislooping = 1;
ppsfps = 1;
shptype_s = "MESH";
shpfor_s = "OBJECT";
shpoffsetvec_s = "0 0 0";
shpdistribtype_s = "RANDOM";
shpdim_s = "7";
shpmesh_s = "SKULL.3DS";
shpmeshrender_b = 1;
shpscalekeys_s = "1";
shpscaleislooping = 1;
shpscaleissmooth = 1;
shpscalefps = 2;
dirmode_s = "RAND";
diranglehead = -180;
velavg = 0.0199999996;
lsppartavg = 3000;
flygravity_s = "0 0.00005 0";
visname_s = "BELIARSRAGE_CLOUD.TGA";
visorientation_s = "VELO3D";
vistexisquadpoly = 1;
vistexanifps = 15;
vistexcolorstart_s = "0 0 0";
vistexcolorend_s = "0 0 0";
vissizestart_s = "10 10";
vissizeendscale = 6;
visalphafunc_s = "BLEND";
visalphastart = 150;
trltexture_s = "SIMPLEGLOW.TGA";
};
Wäre es möglich, das noch zu optimieren?
Und klar: Wenn sich daraus ein Editor anfertigen lässt, indem man schnell aus einer Liste ne Texur suchen kann, wäre das wirklich spitze!
Trotzdem: Good job!
Oparilames nachdem er seinen Gesellenbrief erhalten hat:
»Das war's mit dir, du Mistvieh!«
-
Ahhh, ich war auch gerade dabei nen Partikeleditor mit Renderfunktion zu schreiben (in Java+opengl).
Naja macht nix, ich war ja noch nicht weit. Aber super gemacht, toller Editor.
Hatte noch keine Zeit für einen ausgiebigen Test, mir ist aber aufgefallen, dass die Kamera nach dem Rendern teilweise ungünstig positioniert ist. Wäre toll wenn der Partikeleffekt gleich ganz und zentriert im Renderfenster angezeigt werden würde.
Legal, illegal, scheißegal!!!!
-
-
Sehr, sehr schönes Teil .
Zu den Abstürzen im Spacer: Es gibt öfters mal Probleme, wenn man mehrere 3D-Anwendungen parallel laufen lässt, und der Spacer ist da besonders anfällig für. Zum Beispiel funktioniert gmax (über OpenGL) auch nicht mehr richtig, wenn man den Partikeleditor an hat.
Ich hab bis jetzt immer nen bisschen davor zurückgeschreckt, PFXe zu machen, aber dank dir wird sich das jetzt ja ändern :P.
Hast du das ganze mit OpenGL oder mit Direct3D realisiert?
Edit: Wer mit gimp eigene .tgas testen will, sollte die RLE-Kompression beim Export abstellen, sonst kann das Programm das nicht öffnen.
PS: Speziell gmax-Nutzer dürfen sich bald auch auf ein nettes Tool freuen...
Geändert von DJonnyS (18.10.2008 um 22:56 Uhr)
-
heißes Teil
Kann man gut gebrauchen, wie DeadFrank schon sagte, um Wertänderungen in Echtzeit zu testen.
What do you think I am? Human?
- the Architect
-
Zitat von Watschnbaum
Das klingt als würde das Programm versuchen einen Ordner zum lesen zu öffnen. Gefordert ist an dieser Stelle die konkrete Datei, also pfxInst.d nicht der Ordner.
Zitat von Oparilames
Cool, das ist ja mal wirklich genial.
Vielen Dank.
Aber wäre es möglich, auf .TEX-Datein mit ein zu beziehen?
Bestimmt. Nur kenne ich das TEX Format nicht und je nachdem wie es aufgebaut ist, kann das ordentlich kompliziert werden. Wichtiger fände ich da die Unterstützung von *.3ds Dateien.
Zitat von Sumpfkrautjunkie
Respekt!
Die PFXe sehen genau so aus, wie im Spiel!
Jetzt kann man direkt sehen, was eine Änderung einer Eigenschaft bewirkt.
Einfach nur toll!
Einzig verbesserungswürdig wäre die Scriptimplementierung (z.B. dass man sich die Texturen per Dropdown raussuchen kann, die Farben per Farbdialog etc).
Das ist mir ehrlich gesagt zu fummlig, zudem bin ich selbst nicht so der Fan von solchen Menüs. Ich bin aber am Überlegen eine Programmierschnittstelle zu bauen, der man ein Script übergeben kann. Eventuell mit zusätzlichen Befehlen und Funktionen, sodass man zum Beispiel auf Knopfdruck einen Schwung Bilder aus einer Datei mit Partikeleffektinstanzen rendern kann. Da könnte man dann auch eine andere Dateneingabe vorschalten. Aber das ist erstmal bloß eine grobe Idee und eigentlich wollte ich das auch nur machen um mal zu testen wie sowas funktioniert.
Zitat von Oparilames
Noch ein Nachtrag:
Einige PFX sind Meshgebunden. Hier soetwas
Code:
INSTANCE MFX_SKULL_CAST (C_PARTICLEFX)
{
ppsvalue = 100;
ppsscalekeys_s = "1.0";
ppsislooping = 1;
ppsfps = 1;
shptype_s = "MESH";
shpfor_s = "OBJECT";
shpoffsetvec_s = "0 0 0";
shpdistribtype_s = "RANDOM";
shpdim_s = "7";
shpmesh_s = "SKULL.3DS";
shpmeshrender_b = 1;
shpscalekeys_s = "1";
shpscaleislooping = 1;
shpscaleissmooth = 1;
shpscalefps = 2;
dirmode_s = "RAND";
diranglehead = -180;
velavg = 0.0199999996;
lsppartavg = 3000;
flygravity_s = "0 0.00005 0";
visname_s = "BELIARSRAGE_CLOUD.TGA";
visorientation_s = "VELO3D";
vistexisquadpoly = 1;
vistexanifps = 15;
vistexcolorstart_s = "0 0 0";
vistexcolorend_s = "0 0 0";
vissizestart_s = "10 10";
vissizeendscale = 6;
visalphafunc_s = "BLEND";
visalphastart = 150;
trltexture_s = "SIMPLEGLOW.TGA";
};
Wäre es möglich, das noch zu optimieren?
Und klar: Wenn sich daraus ein Editor anfertigen lässt, indem man schnell aus einer Liste ne Texur suchen kann, wäre das wirklich spitze!
Trotzdem: Good job!
Eine 3ds Leseroutine habe ich noch nicht gemacht. Wäre aber eine der nächsten Erweiterungen, die ich angehen würde.
Zitat von BlackNapalm
Ahhh, ich war auch gerade dabei nen Partikeleditor mit Renderfunktion zu schreiben (in Java+opengl).
Naja macht nix, ich war ja noch nicht weit. Aber super gemacht, toller Editor.
Hatte noch keine Zeit für einen ausgiebigen Test, mir ist aber aufgefallen, dass die Kamera nach dem Rendern teilweise ungünstig positioniert ist. Wäre toll wenn der Partikeleffekt gleich ganz und zentriert im Renderfenster angezeigt werden würde.
Darüber habe ich mir noch keine Gedanken gemacht. Da sollte sich aber ein Algorithmus finden lassen. Wenn ich Lust habe und am Programm weiter baue, baue ich das vielleicht ein.
Zitat von DJonnyS
Sehr, sehr schönes Teil .
Zu den Abstürzen im Spacer: Es gibt öfters mal Probleme, wenn man mehrere 3D-Anwendungen parallel laufen lässt, und der Spacer ist da besonders anfällig für. Zum Beispiel funktioniert gmax (über OpenGL) auch nicht mehr richtig, wenn man den Partikeleditor an hat.
Ich hab bis jetzt immer nen bisschen davor zurückgeschreckt, PFXe zu machen, aber dank dir wird sich das jetzt ja ändern :P.
Hast du das ganze mit OpenGL oder mit Direct3D realisiert?
Das ist OpenGL. Mit Direct3D habe ich mich noch nie beschäftigt. Wenn das mit dem Absturz kein seltenes Problem ist, bin ich zumindest was meinen Code angeht ein wenig beruhigt. Schön ist es trotzdem nicht.
Edit: Wer mit gimp eigene .tgas testen will, sollte die RLE-Kompression beim Export abstellen, sonst kann das Programm das nicht öffnen.
Ähm... Jo.
Gothic unterstützt RLE aber ohnehin nicht oder doch?
Insgesamt freut es mich, dass das Tool so gut ankommt.
Das motiviert doch glatt daran weiter zu machen.
-
Zitat von Sektenspinner
Ähm... Jo.
Gothic unterstützt RLE aber ohnehin nicht oder doch?
Das war das erste Mal dass ich RLE abschalten musste, find ich jetzt aber auch nicht so dramatisch .
-
Alter Schwede! Das Tool ist absolut genial! Danke Sekti
Edit: Ich wusste gar ncht das man mit Delphi 3D-Umgebungen realisieren kann ...
-
Zitat von Kurzer
Edit: Ich wusste gar ncht das man mit Delphi 3D-Umgebungen realisieren kann ...
Man läd dazu OpenGL-Bibliotheken ein. Wenn's dich interessiert, kann dir diese Seite bestimmt weiterhelfen .
-
Sry für die Frage, aber was isn PFX-Rendering? Was is denn überhaupt Rendern allgemein?
-
PFXe sind sozusagen die Special-effects von Gothic.
Jeder Zauber den du zündest (feuerbälle, Teleport, etc. etc.) jede Fackel, jedes Lagerfeuer, Blut, und 100e von anderen Effekten im Spiel, das sind PFXe.
Die wissenschaftliche Definition von Rendern kann dir irgendjemand erklären, der davon mehr Ahnung hat, aber ich kann dir sagen was es in diesem Fall hier bedeutet:
Du hast ein Fenster mit einer 3d-Landschaft offen, wo die PFXe erscheinen, wenn du sie scriptest.
Das ist wirklich gottverdammt praktisch, denn stell dir vor wie die PFX-Erstellung bisher lief:
Du scriptest etwas, hast so gut wie null Ahnung was du tust und wie es am Ende aussehen wird (wenn du die Theorie davon nicht absolut gemeistert hast, und ich behaupte, das hat hier weniger als 1% der Userschaft) und das Ergebnis siehst du erst, wenn du den Spacer startest und es nach langer Ladezeit testest.
Und jetzt das ganze mit diesem Tool hier:
Du scriptest etwas und kannst in der selben Sekunde anschauen, wie dein Effekt aussieht.
Genial, oder?
@Sektenspinner: Ach ja, etwas dämliches ist mir aufgefallen: Die Kamerasteuerung soll ja wie im Spacer sein, stimmt grösstenteils auch:
Pfeiltasten, A, Y, ALT + Pfeiltasten.
Was mir aber fehlt: Wie kann man die Kamera frei nach oben oder unten drehen?
Hab da gleich mal wie im SPacer auf F3 gedrückt, kam aber wie erwartet kein grünes Kreuzchen und freie steuerung.
Das wäre noch nützlich, wenn man sich die PFXe von oben/unten ansehen will.
-
@Dead Frank: Die Kamera kannst du mit BildAuf/BildAb neigen.
-
Wo finde ich das Texturverzeichnis?
Wo kann man die PFX-Dateien finden?
Und was muss ich ins Feld "PFX in PFX-Datei" eingeben?
-
1) _work/data/Textures
2) _work/data/scripts/system/pfx
3) Eine Instanze aus einer PFX-Datei.
Oparilames nachdem er seinen Gesellenbrief erhalten hat:
»Das war's mit dir, du Mistvieh!«
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
|
|