Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Weniger um was nützliches zu machen, sondern mehr aus reiner Neugier habe ich mich die Tage mal mit dem Meshformat aus Unreal 1 (NICHT Unreal Tournament) beschäftigt und nach einige Hürden einen fertigen Loader inklusive Betrachter (natürlich via OpenGL) geschrieben. Ich veröffentliche das ganz hier mal für alle die interessiert sind, aber vor der Nutzung bitte folgendes unbedingt beachten :
Der Loader steht (wie meine anderen Quellen) wieder unter der GPL. Wenn ihr den nutzen wollt (auch nur teilweise), dann muss euer Projekt also auch OpenSource sein. (Ich schätze mal man kann meinen Hintergedanken erkennen)
Er kann nur animierte Modelle vom Typ Mesh laden. Der neuste Patch für Unreal (v225) erweitert das Spiel um LODMeshes, deren Aufbau aber nirgendwo im Netz erklärt wird. Diesen Meshtyp kann der Loader nicht laden (ich habe übrigens etwas länger gebraucht um das herauszufinden)
Epic != John Carmack. Während JC im Bereich Hobbyentwickler (also alles was kostenlos ist) recht viel erlaubt, ist dies bei Epic (und damit Unreal) nicht der Fall. Quake3-Modelle sieht man ja sehr oft in irgendwelchen Freeware-Anwendungen, was JC wohl kaum stört. Allerdings dürfte das anders aussehen wenn ihr irgendwo in eurem Spiel nen Nali rumlaufen habt, das wird Epic garantiert nicht gerne sehen wollen, also wenn ihr original Unreal-Content benutzt, dann nur für private Zwecke. Das ist auch der Grund warum ich keine Meshes mit dem Loader mitliefere.
Die Meshes findet ihr im Package UnrealI.u im Systemordner der Unrealinstallation. Wenn ihr das Spiel allerdings nicht installieren wollt, die Datei liegt auch einfach so (also ungepackt) auf der Spiel-CD. Öffnen und die Meshes dann extrahieren könnt ihr mit dem UT Package Tool (das übrigens auch in Delphi geschrieben wurde). Neben dem Mesh (der nach der Extraktion aus drei Dateien besteht, nämlich einmal ****_a.3d und einmal ****_d.3d und dann dem UScript mit der Endung .uc) müsst ihr dann aber auch noch die passende Textur ins selbe Verzeichnis extrahieren (die findet sich auch in diesem Package, muss man halt nach Sachen) und in JPG wandeln. Allerdings steht die Textur aufm Kopf, also müsst ihr sie vor dem Laden mit nem Bildbearbeitungsprogramm vertikal Kippen (das ist mir lieber, denn die Textur wird ja sowieso in so nem Programm nach JPG gebracht). Alternativ könnt ihr natürlich auch die Texturkoordinaten im Loader ändern (also statt Vertex.s dann 1-Vertex.).
Wie im Header der Unit zu erkennen, ist der Loader noch Beta. Die Meshes die ich mir angesehen habe waren eigentlich alle einwandfrei, aber aufgrund der kaum vorhandenen Dokumentation des Unrealmesh-Formates kanns durchaus sein das etwas nicht funktioniert.
Der Speicherbedarf eines UnrealMeshes ist (so wie der Loader damit umgeht) sehr hoch (für den Skaarj am Ende ~30 MByte). Das liegt daran das ich für jeden Animationsframe per-Vertex-Normale erstelle (die anscheinend noch nicht 100% korrekt sind), was dann bei nem 500 Vertex-Mesh mit 600~700 Frames logischerweise jede Menge Speicher kostet.
Wenn ihr nen Mesh geladen habt wird immer die erste Animation mit dem Titel all abgespielt, diese läuft allerdings mit 30FpS ab sodass manche Animationen zu schnell wirken. Um eine Animation in der korrekten Geschwindigkeit zu sehen, müsst ihr auf den passenden Button in der Menüleiste klicken und dort dann per Popup die Animation auswählen. Die wird dann geloopt und mit der korrekten Geschwindigkeit gezeigt.
Wie immer auch ein paar Screenshots :
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Evil-Devil hat geschrieben:
die UnrealI.u ist ungepackt auf der CD? Was hast du für eine Version? Soviel ich weiss müssten die auch alle komprimiert im UZ Format vorliegen.
Ja, die Datei ist ungepackt auf meiner CD (~36MByte). Das ist die original Verkaufsversion von 1998.
Evil-Devil hat geschrieben:
Was sie Sache mit dem Copyrigth angeht, solange man Unreal COntent in einem Unreal Mod benutzt ist es erlaubt, aber nicht anders -.-
Aber, was jemand nicht weiss, macht ihn nicht heiss ;D
Ist mir auch klar , wollte aber halt nurmal drauf hinweisen. Nicht das nachher jemand Unrealmeshes nimmt, Ärger bekommt, und dann sagt "aber der da hat doch nen Loader dafür gemacht, also hab ich gedacht ich dürfte das...".
Evil-Devil hat geschrieben:
und meshes sind eh doof :p die sind viel zu perfolastig und können nur schlecht beleuchtet werden.
Naja, anders kann man animierte Modelle ja nicht darstellen, und ohne Spielfiguren wirds schnell langweilige
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Ich glaube du versteht das was falsch. Meshes sind animierte Modelle, also die ganzen Spielerfiguren. Und ausserdem lade ich ja nur fertig extrahierte Meshes aus dem ersten Unreal-Teil.
Ich glaube du versteht das was falsch. Meshes sind animierte Modelle, also die ganzen Spielerfiguren. Und ausserdem lade ich ja nur fertig extrahierte Meshes aus dem ersten Unreal-Teil.
Die MEshes müssen nicht unbedingt animiert sein. Die können ebenso statisch sein bei Unreal 1. Das sind dann DecoMeshes die man auch im AnimationBrowser anschaun kann
Das extrahieren geht glaube ich auch noch einfacher. Ich müsste mal schauen was der UCC batchexport bei Unreal 1 alles kann
Mitglieder in diesem Forum: 0 Mitglieder und 7 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.