Konverter erstellen von Blend in W3X Format und umgekehrt
-
Hallo an alle erstmal ^^ bin neu hier und bin dabei mir die Programmiersprache C++ beizubringen. Ich hatte mich schon früher damit beschäftigt aber nicht so intensiv wie jetzt, natürlich liegt vor mir noch eine menge arbeit was das erlernen von C++ angeht aber ich wollte schon mal im Vorfeld wissen ob es geht damit auch einen Konverter zu programmieren welches von dem Dateiformat Blend in das W3X Format und umgekehrt Konvertieren kann.
Ich würde auch gern wissen wie das überhaupt geht also was ich brauche um überhaupt einen Konverter zu erstellen, ihr werdet sicher sagen ein Anfänger sollte sich nicht gleich ans Konverterschreiben ranmachen, womit ihr mit Sicherheit auch recht habt, aber ich würde es trotzdem gerne wissen ^^
Und vielleicht würde sich jemand von euch breit erklären mir dabei behilflich was mir beim verstehen bzw. erlernen von C++ auch hilfreich wäre, denke ich.
Schon mal Danke im Voraus an alle
PS: Wer sich die Dateiformate mal anschauen möchte dem kann ich sie schicken.
MFG: M4
-
Tag auch!
Blend = Blender (das 3D Studio) Datei
W3X = Warcraft 3 Map File
Wenn das nicht zutrifft, dann überließ alles was jetzt kommtDu wirst du kaum einen Konverter dafür schreiben können da eine Map ja aus vielen verschiedenen Elementen zusammengesetzt wird, da ist erstmal das Terrain, worauf dann wieder andere Objekte wie Bäume, Feuer, Figuren, etc... draufsitzen. Ein Blender Objekt ist ja z.B. nur eine Kugel, oder selbst wenn du ein ganzes Terrain mit Blender bastelst, wie willst du das dann in Bestandteile zerlegen?
Gruss,
blub blub
-
blub² schrieb:
Tag auch!
Blend = Blender (das 3D Studio) Datei
W3X = Warcraft 3 Map File
Wenn das nicht zutrifft, dann überließ alles was jetzt kommtServus,
der Schwierigkeitsgrad für dein erstes Projekt ist , naja Bilder sagen tausend Worte
Wie wärs mit einer Python-Schnittstelle? Blender besitzt bereits ein paar Konverter. Diese kannst du dir ja mal ansehen und danach dein vorhaben neu überdenken.
Bevor du jetzt startest solltest du folgendes in Erfahrung bringen
- W3X - Spezifikation
- Blender - Environment
- Programmablauf festhalten und ein abstraktes Modell aufzeichnenGoogle lässt grüßen
-
natürlich hab ich nicht vor für wc3 ne ganze Karte in Blender zu basteln
Bin ja aber selber schuld, hätte ja schreiben sollen was für ein W3X Format ich meine ^^
Und zwar das W3X Format in dem die Models für C&C Tiberium Wars sind das ist so ne art XML Datei und man kann die auch mit dem Windows Editor öffnen kann nicht genau sagen was drinsteht bzw. erklären was das bedeutet aber ich glaube da sind zu größtenteils Positionen abgespeichert.
Das Thema habe auch schon auf Thundermods.net angeschnitten, ich setzt hier mal den Link falls ihr Interesse habt euch das mal anzusehen.
http://www.thundermods.net/forum/index.php/topic,591.0.html
Damals hoffte ich jemand würde ihn für mich schreiben da es zumindest so aussah, naja leider sah es nur so aus ^^
Und da ich ja jetzt h C++ lernen will dachte ic ob ich damit nicht auch einen Konvektor dafür schreiben könnte.
PS: Kann man hier einen Anhang reinhängen wo ich vielleicht die zwei Dateiformate in einem zip stecken???
-
Ist dieses C&C W3X nicht ein Voxel Format?! Kann Blender sowas? Oder willst du auch noch Voxel zu Poly konvertieren?
-
Was meinst du mit Voxel Format bzw. was ist das für ein Format???
Ich weis nur dass es eine art des XML Formates ist. Das sagen auf jedenfall die die ich auf Thundermods.net gefragt habe.
Wie könnte ich das herausfinden???
Ich weis leider auch nicht was ich wissen muss um überhaupt erst anfangen zu können einen Konverter zu schreiben.
Du fragst mich ob dieses W3X Format ein Voxel Format ist (Und ich muss sagen Voxel Format höre ich zum ersten mal SRY )Ich habe schon danach gegoogelt und gehofft eine Seite zu finden wo mir erklärt was ich (außer Programmieren zu können) sozusagen als Grundlage brauche um einen Konverter zu schreiben, ich weis zwar das er ein Format in ein anderes Extrahiert und das es drei verschiedene arten davon gibt (verlustfreie Konvertierung, verlustbehaftete Konvertierung, sinnhafte Konvertierung) das fand ich bei wikipedia, aber leider war das auch schon alles
Kennt jemand vielleicht eine Seite wo mehr erklärt wird oder kann mir es jemand von euch erklären wäre echt super.
Habe auch schon wo anders gefragt leider konnte bzw. wollte es mir niemand erklären was eigentlich schade ist da mich so was interessiert.
Natürlich erwarte ich auch kein Wunder weis heißen soll das ich dann sofort einen Konverter programmieren kann.Schon mal Danke im voraus.
MFG: M4
-
Servus,
irgendwie findet man im Netz nur Müll zu diesem Thema
Wenn du dich schon einmal mit XML befasst hast weißt du, dass im Header einen URL zur Spezifikation für diese XML-Datei findest. Ladt dir diese über den Browser runter und schojn weißt du die Struktur deiner Datei
Achtung: Die Verwendung dieser Datei muss vom Hersteller genemigt sein!
-
Hi danke für die hilfe, eine Datei zu Downoaden gibt es da nicht aber so wie es aussieht steht auf diesem Link alles zum W3X Format drin.
http://www.w3.org/TR/xmlschema-1/#no-xsi
Kannste das bestätigen oder hab ich was ganz anderes gefunden ?
-
Jein, du hast die Spezifikation für eine Schema-Datei gefunden. Diese beschreibt den "Syntax" der Schema-Defination.
In jeder XML-Datei ist entweder im Header oder in der Wurzel eine Information zur Struktur hinterlegt. Diese Datei nennt man XML - Schema - Defination. Um diese zu bekommen benötigst du eine Beispieldatei von deinem Format Laut deinem Link gibt es irgendwo diese Dateien.
Ein Beispielsauszug aus einer XML-Datei
<?xml version="1.0" encoding="UTF-8"?> <web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <servlet> ...
Hier findest du im Wurzelelement Informationen über die verwendete Schema-Datei
Version, auf welche Normung bezieht sich die Schemadefination, Ort der Schemadefinationsdatei, ...
-
Wenn ich dich richtig verstanden habe brauche ich eine Datei die das Format W3X hat um mit ihrer Hilfe dann die "XML - Schema - Definition" zu finden und wenn möglich herunter zu laden.
Für das Spiel habe ich die Mod SDK herunter geladen womit man für Command & Conquer Tiberium Wars Mods erstellen kann und in diesem modverzeichnis gibt es viele von Dateien die das W3x Format haben und in ihr finde ich am Anfang das:
<?xml version="1.0" encoding="UTF-8"?>
<AssetDeclaration xmlns="uri:ea.com:eala:asset" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Includes>
<Include type="all" source="ART:eulorwar_skl.w3x"/>
</Includes>
<W3DAnimation id="EULORWAR_ATKA" Hierarchy="EULORWAR_SKL" NumFrames="57" FrameRate="30">
<Channels>
<ChannelScalar Pivot="1" Type="XTranslation"danach kommen nur noch so Sachen wie:
**FirstFrame="0">
<Frame>0.689194</Frame>
<Frame>0.639112</Frame>
<Frame>0.629353</Frame>
<Frame>0.664729</Frame><Frame X="-0.013249" Y="-0.056775" Z="-0.323110" W="0.944564"/>
<Frame X="-0.009510" Y="-0.044456" Z="-0.315880" W="0.947709"/>**und in hier steht auch der Link wo du gesagt hast das das die Syntax der Schema-Definition beschreibt.
http://www.w3.org/2001/XMLSchema-instance
ist das gar nicht die Datei die mich zur Schema-Definitions Datei führt, oder habe ich was falsch verstanden?
Ist grad ein bissel verwirrend ^^
-
Du besitzt ein SDK? Hier solltest du alle Informationen finden.
Tipps:
- arbeite dich erst in XML ein
- durchsuche dein SDK nach den entsprechenden Informationen
- bei Blender würde ich mit Python und/oder C arbeiten
-
Ich habe in wiki was zu XML gefunden und da heist es das die Schemadateien meistens die Endung XSD (XML - Schema - Definition) haben.
Hab dann mal in meinen ModSDK Ordner geschaut und habe einen ganzen Ordner gefunden der voll ist mit diesen dateien, einziges problem: woran erkenne ich die Datei die ich brauche ?
Edit: Ich glaube sie gefunden zu haben.
Dateiname: AssetTypeW3D.xsd
In ihr sind z.b die achsen Y,X & Z genauso steht "FirstFrame" und dergleichen drin so wie bei der W3X Datei.
Das wird sie wohl sein oder ?
-
Also die AssetTypeW3D.xsd Datei ist mit absoluter sicherheit die Schema-Definition. Habe mich jetzt auch schon etwas in xml eingearbeitet wie z.b. Processing Instruction, Tags, Entitäten, Attributen, Namensräumen usw.
aber obwohl ich das alles scho weis, weis ich immer noch nicht wie ich anhand der XSD einen konverter schreiben soll.
Gibts da net so ne art Bauanleidung? Klingt bescheuert ^^ aber ich weiss halt net was ich mit den Infos anfangen muss/soll.
-
Hallo,
nun weißt du alles und siehst den Wald vor lauter Bäumen nicht mehr Als nächstes solltest du dich für eine Richtung entscheiden.
von Blender -> W3X oder W3X -> BlenderSucht dir eine Richtung aus. Ich persönlich würde W3X -> Blender bevorzugen Da Blender eine Python-Schnittstelle anbietet und diese sogar von Projekt selbst zum konvertieren benutzt wird, wäre es nicht gerade "elegant" hier einen anderen Weg einzuschlagen.
Python-Skript:
- W3X - Datei einlesen und überprüfen
- Informationen auslesen und daraus eine Welt in Blender erstellen
-
Ja so meinte ich das eigentlich nicht, ich versteh zwar wie das mit den Tags, Namensräumen usw. so is, aber die informationen in der XSD sagt mir nichts.
<!-- W3DHierarchy -->
<xs:complexType name="W3DHierarchy" xas:runtimeWrapper="HierarchyAsset::Factory">
xs:complexContent
<xs:extension base="BaseAssetType">
xs:annotation
xs:documentationCHUNK_HIERARCHY_*</xs:documentation>
</xs:annotation>
xs:sequence
<xs:element name="Pivot" maxOccurs="unbounded">
xs:complexType
xs:sequence
<xs:element name="Translation" type="Vector3" />
<xs:element name="Rotation" type="Quaternion" />
<xs:element name="FixupMatrix">
xs:complexType
xs:sequence</xs:sequence>
<xs:attribute name="M00" type="xs:float" />
<xs:attribute name="M10" type="xs:float" />
<xs:attribute name="M20" type="xs:float" />
<xs:attribute name="M30" type="xs:float" />
<xs:attribute name="M01" type="xs:float" />
<xs:attribute name="M11" type="xs:float" />
<xs:attribute name="M21" type="xs:float" />
<xs:attribute name="M31" type="xs:float" />
<xs:attribute name="M02" type="xs:float" />
<xs:attribute name="M12" type="xs:float" />
<xs:attribute name="M22" type="xs:float" />
<xs:attribute name="M32" type="xs:float" />
<xs:attribute name="M03" type="xs:float" />
<xs:attribute name="M13" type="xs:float" />
<xs:attribute name="M23" type="xs:float" />
<xs:attribute name="M33" type="xs:float" />
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="Name" type="xs:string" />
<xs:attribute name="Parent" type="xs:int" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>Das ist ein ausschnitt von der XSD habe auch eine W3X gefunden in der die attribute usw. drin sind (Da ein Model aus mehreren W3X Dateien besteht ist in der einen z.b. der hier aufgelistete abschnitt in den anderen eben die anderen.)
Aber das problem ist ja, das ich nicht versteh wofür dieser abschnitt ist und was der genau macht, und genau so ist es auch bei dem rest, es bringt mir ja nichts wenn ich XML versteh, aber nicht versteh was genau in dieser XSD vorsich geht.
Ist zum verzeifeln, da dachte ich wenn de XML kannst raffste was da drin passiert und nu ? nix
EDIT: was ist los ? versteht ihr mein problem net oder weis von euch auch keiner weiter? Bitte schreibt warum niemand von euch schreibt oder schreiben will, kann ja nicht hellsehen
-
Also da Ich jetzt in nächster Zeit nicht mehr so viel bis garkeine Zeit haben werde um mich darum zu kümmern, dachte ich das jemand von euch ihn mir programmieren könnte, natürlich würde derjenige auch bezahlt werden aber dazu mache ich einen neuen Trad auf, da es ja eine art Auftrag wird.