Themabewertung:
  • 1 Bewertung(en) - 5 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Animationen extrahieren
#41
Daniel,

Das wird Dich nicht weiterbringen. Wir haben keinen LZW verwandt. Der war damals weder beliebt noch "in" weil er zu langsam war und zuviel Speicher in Anspruch nahm. Das war eventuell eine Art Deltakomprimierung die wir da angewandt hatten, aber ich weiss das nicht mehr.
Zitieren
#42
Danke Guido;

als ich gesucht habe, welche verlustfreien Kompressionsalgorithmen zu jener Zeit für statische Bilddaten verwendet wurden, kam hauptsächlich LZW und RLE heraus. Daneben gibt es noch einige andere, komplexere (ev schnellere?) Verfahren; aber die hoffte ich mit meinem Ansatz alle Formate durchzutesten gleich mit-zu-erschlagen.
Danke für's Zeit sparen - LZW Kompression kann ich jetzt mal streichen.
Ich werd mal sehen ob ich mit einem DeltaVerfahren hinkomme.

cu, Daniel
Ich bin schizophren. Ich auch. Können Sie unser Gehalt verdoppeln?
Zitieren
#43
Das mag schon stimmen für normale Applikationen und Fileformate an sich, aber nicht für Games. Für Games mussten damals ganz andere Massstäbe angesetzt werden wegen Speicherbegrenzungen und CPU Usage etc.
Zitieren
#44
Anfrage wg Windows/Dos Makro zur Automatisation beim Reengineering, bitte kurz reinschauen falls sich da wer auskennt:

http://www.crystals-dsa-foren.de/showthr...4#pid23434

danke, Daniel
Ich bin schizophren. Ich auch. Können Sie unser Gehalt verdoppeln?
Zitieren
#45
Seit heute ist im freeDSA-Repostiory ein Entpacker für die Animationen.
ANIS sind die Bilder (Tempel, Händler, ...)/ 36 Objekte
WFIGS und MFIGS ??? Kampffiguren ??? Weiblich Männlich/ je 43 Objekte
MONSTER ??? Monsterfiguren / 36 Objekte

P.S. Der Letzte Eintrag in den TAB-Dateien ist die Dateilänge.
Somit ist die
Code:
Objektanzahl=(TAB-Dateilänge/4)-1
Zitieren
#46
Also...
die Kampfanimationen benutzen den PowerPack2.0 Algorithmus, welcher sich schon (dank Hendrik) im SVN befindet. Bis jetzt hab ich noch nicht versucht etwas davon zu entpacken.
Wer ppunpack (Linux oder BSD) hat der kann diese Dateien entpacken.
Einfach mit nem Hexeditor die ersten 4 Bytes (die Längenangabe) mit PP20 ersetzen
Im Falle des Beispiels von Daniel
müssen 3C 00 00 00 mit 50 50 32 30 ersetzt werden, dann klapts auch mit dem Entpacker.
Es fehlen dann allerdings immer noch die Maße und wahrscheinlich auch die Farbpalette des Bildes.
Zitieren
#47
Seit gerade jetzt befindet sich im "FreeDSA"-SVN der Code um die Animationen zu betrachten.

Die Kampfanimationen für MännlicheFIGuren, WeiblicheFIGuren und MONSTERfiguren sind alle in sog Crunchmode2-Archiven verpackt. Das ist das DSA1-eigene Archivformat für PowerPack gepackte Bilder gleicher Größe.

Die Kampfanimationen sind in Einzelbildern abgespeichert und funktionieren wie ein Daumenkino.
Zitieren
#48
Super! :) Werd ich mir doch mal gleich angucken. ;) Wenn du mir sagst, was ich eingeben muss um die Animation zu extrahieren. Einfach die altbekannte extract.lua ausführen?
--------
Warnung! Geschichte kann zu Einsichten führen und verursacht Bewusstsein!
Avatar by: Keven Law (CC BY-SA 2.0)
Zitieren
#49
Ohoh, die extract.lua gibt es seit einiger Zeit nicht mehr.
Mach erstmal ein checkout mit
Code:
svn up
.

Wenn du alle notwendigen Pakete installiert hast gib im Verzeichniss trunk/
Code:
sh update.sh
ein (Linux/Mac).

Als erstes muss die schick.dat auseinandergenommen werden (Win/Mac/Linux).
Diese platziert man ins Verzeichnis trunk/data.
Es ist darauf zu achten, dass der Dateiname nur aus Kleinbuchstaben besteht.

Edit:
Jetzt öffnest du die Datei trunk/lua/main.lua und suchst nach "SchickDat:Open(".
Ist sie gefunden hat entfernst du den Kommentarblock indem du in die Zeile davor von
Code:
--[[
in
Code:
----[[
änderst.

Dann sollten die Animationsarchive auseinandergenommen werden (Win/Lin/Mac).
Das erreicht man, indem man die Datei trunk/lua/main.lua öffnet und die Zeile mit Animation:LoadTAB(WORK_DIR.."ANIS.TAB") sucht.
Ist sie gefunden hat entfernst du den Kommentarblock indem du in die Zeile davor von
Code:
--[[
in
Code:
----[[
änderst.
Jetzt ins Verzeichnis trunk/bin wechseln und ./freedsa (Linux/Mac) oder example.exe (Win) ausführen.
Wenn du ein Fenster mit Pfeilen und dem Schriftzug "OGRE" seht hats geklappt.
Dann kannst du die Kommentar wieder aktivieren indem du die beiden -- in main.lua entfernst.

Im Verzeichniss trunk/bin erstellst du jetzt ein Verzeichnis FINGER
Code:
mkdir FINGER
.
Jetzt suchst du in main.lua die Zeile in der LoadNVF_new(WORK_DIR.."MFIGS_EXT/01") steht und entfernst den Kommentar in der Zeile vorher, wie oben, mit dem hinzufügen von -- .
Nun kannst du wieder die ./freedsa starten.
Wenn das Fenster wieder kommt hats geklappt.

Jetzt sind im Verzeichnis FINGER alle Bilder aus diesem Archiv.

Wenn du in anderen Archiven stöbern willst, dann ändere die 01 in eine andere Zahl zwischen 01 und 43.
Um die Frauen anzuschauen musst du nur aus dem MFIGS_EXT ein WFIGS_EXT machen.
Für die Gegner muss das MFIGS_EXT mit MONSTER_EXT ersetzt werden und die Zahlen müssen zwischen 01 und 36 sein.

Vergesst nicht vor jedem Entpacken das Verzeichnis FINGER wieder leer zu machen.
Linux/Mac:
Code:
rm FINGER/*.tga

Win:
Code:
del FINGER/*.tga

Viel Spass
Zitieren
#50
Es klappt! :)

Allerdings unter Linux (opensuse 10.3) nur mit dem Nouveau-Treiber und nicht mit dem aktuellen Nvidia-Treiber 169.09. Damit hat Ogre scheinbar Probleme.

Als Anhang, ein kleines, aber trotzdem vergrößertes Beispiel. Standardgröße ist 32x40. ;)


Angehängte Dateien Thumbnail(s)
   
--------
Warnung! Geschichte kann zu Einsichten führen und verursacht Bewusstsein!
Avatar by: Keven Law (CC BY-SA 2.0)
Zitieren
#51
Kann gut sein, dass ich nur zu doof bin, aber bei mir funktioniert das nicht.

Das erste, was mir auffällt, ist, dass in der main.lua nicht Animation:LoadTAB(WORK_DIR.."ANIS.TAB") steht, sondern nur Animation:LoadTAB(WORK_DIR.."ANIS")

Dann geht's plattformspezifisch weiter:
Nach dem Bearbeiten der main.lua und dem anschließenden Ausführen der example.exe krieg ich unter Windows XP folgende Konsolenausgabe (Meldung abgetippt, kann also Tippfehler enthalten):
Code:
..//lua/main.lua:1: unexpected symbol near '''
..\lugre\src\lugre_main.cpp:182:Lugre::Lugre_Run
..\lugre\src\lugre_game.cpp:19:Luge::cGame::Run
  ..\lugre\src\lugre_scripting.cpp:368:Lugre::cScripting::Init
PrintLuaStackTrace:
LuaStackTrace:

ERROR : error in main script-initialisation

Unter Linux gibt's die ersten Fehler bei der Ausführung von sh update.sh (siehe angehängten Text)

(An Crystal: in der Vorschau funktionierte das Einbinden von 600+ Zeilen in Spoiler- und Codetags noch, im fertigen Post dann nicht mehr. Da im Code-Tag sowieso ab ca. 10 Zeilen ein Scrollbalken erscheint, kann man die Zeichenbeschränkung dafür irgendwie umgehen?)


Angehängte Dateien
.txt   update.sh.txt (Größe: 61,13 KB / Downloads: 2)
Great people care.
Zitieren
#52
Da scheinen mehrere Fehler zu sein.
Das das ".TAB" bei ANIS fehlt ist in Ordnung. Lass das mal so. ;)
Installier aber erstmal das Paket ogre-dev. Das fehlt bei dir.
Führ dann nochmal make aus.
Zitieren
#53
Okay, jetzt sieht das schon anders aus. Neue Fehler:


Angehängte Dateien
.txt   update.sh2.txt (Größe: 15,34 KB / Downloads: 3)
Great people care.
Zitieren
#54
Dir fehlen wohl noch ein paar Dependencies für orge, ich sehe da auf den ersten Blick das die Devlopmentpakete von OpenAL und der Boost.org Thread Library fehlen.
Zitieren
#55
Jetzt brauchst du noch libvorbis-dev und libboost-thread-dev.
Zitieren
#56
Habt ihr irgendwo ne Liste in eurem Wiki, welche Pakete man alles braucht? Nicht, dass das jetzt noch ein paar Threadseiten so weitergeht. :D
Great people care.
Zitieren
#57
Im LugreWiki gibts so eine Paketliste.
Zitieren
#58
Ich hab die aufgeführten Pakete installiert. Geht aber immer noch nicht. :wall: Hab ich was übersehen? :confused:


Angehängte Dateien
.txt   update.sh3.txt (Größe: 2 KB / Downloads: 1)
Great people care.
Zitieren
#59
Nee, jetzt biste an dem Punkt an dem ich gestern auch verzweifelt bin.

Die einfache Lösung: OGRE1.6 Sourcen runterladen, compilieren, installieren und es dann nochmal versuchen.

Die komplizierte Erklärung:

FreeDSA benutzt Lugre. Lugre ist ein Programm, welches LUA (die Scriptsprache in der der aktuelle FreeDSA geschrieben ist) eingebaut hat und den Zugriff auf OGRE3D (eine 3D Engine) ermöglicht. Das klappte soweit ganz hervorragend. Nur leider :ironie: ist vor kurzem eine neue Version (1.6) herrausgekommen, welche seit dem 31.12. auch vom Lugre Team benutzt wird. Leider haben die meisten Distries (ich benutzte Debian Lenny (x86_32) und Ubuntustudio 8.10x86_64 ) ofiziell nur OGRE 1.4.9 als Pakete dabei, welches jetzt nicht mehr funktioniert.

Eben habe ich etwas tolles gefunden. Unter:

deb http://ppa.launchpad.net/andrewfenn/ubuntu hardy main
deb-src http://ppa.launchpad.net/andrewfenn/ubuntu hardy main

gibts für Ubuntu 8.04 Pakete mit OGRE 1.6. Für Suse wird man unter Packman.de fündig. Du brauchst ogre16 und ogre16-dev(el) und das nvidia-cg-toolkit.

Danach gibst du im freedsa Verzeichniss "make clean && sh update" ein und es _sollte_ funtionieren.

Bei mir macht es das unter Ubuntu, allerdings gibts Probleme beim "sh start.sh" :(

freedsa: OgreGLSupport.cpp:57: virtual void Ogre::GLSupport::initialiseExtensions(): Assertion `pcVer && "Problems getting GL version string using glGetString"' failed.
Aborted

Zumindest ist das erstmal ein Anfang, da FreeDSA erstmal wieder gebaut werden kann.
Mal sehen wanns wieder läuft.
Zitieren




Benutzer, die gerade dieses Thema anschauen: 13 Gast/Gäste