[TUTORIAL] X3 Schiffe nach XRebirth/X4 portieren

Hier ist der ideale Ort um über Scripts und Mods für X Rebirth zu diskutieren.

Moderators: Moderators for English X Forum, Scripting / Modding Moderators

Post Reply
User avatar
SirFrancisDrake
Posts: 178
Joined: Mon, 23. Dec 13, 12:24
x4

[TUTORIAL] X3 Schiffe nach XRebirth/X4 portieren

Post by SirFrancisDrake » Sat, 11. Apr 20, 21:59

Hallo zusammen,

ich wurde gefragt, ob ich eine Anleitung erstellen könnte, die das Portieren von X3 Schiffen nach XRebirth/X4 beschreibt.

Nach langen Überlegen, habe ich mich nun dazu entschlossen eine Anleitung zu machen. Ich habe lange davor gescheut, so etwas zu erstellen, da es doch recht aufwändig ist.
Nun habe ich aber einge Erfahrung mit dem Portieren von Schiffen gesammelt, das ich mir das nun zutraue.

Ich selber nutze 3dsmax zum Erstellen der Schiffe für XR. Blender Nutzer müssen den Weg zum erfolgreichen Port also etwas anpassen. Der Vorgang sollte sich aber wohl nicht so stark vom 3dsmax unterscheiden. Eine Aussage darüber kann ich aber nicht machen, da ich kein Blender nutze.

Ich werde versuchen, die Anleitung sowohl in deutsch, als auch in englisch zu schreiben. Für den englischen Teil werde ich Googles Translator nutzen. Man möge also bitte bedenken, dass es wohl nicht grammatikalisch korrekt sein dürfte.

Wie der Konverter von arc_ richtig benutzt wird, setze ich hier vorraus.

Legen wir los.

Was wir zuallerst brauchen ist die Entscheidung welches Schiff wir portieren wollen. Ich habe für diese Anleitung das Terraner Schiff Maccana ausgewählt. Es wird ein L Schiff werden. Die Grösse werde ich an die der Balor aus XR anpassen. Sollte dann Richtung Fregattenklasse gehen.

Sobald wir uns nun das Schiff ausgesucht haben, werden für den Port drei Dinge benötigt.
Der X3 Editor 2
DBOX2
3dsmax

Wie der X3 Editor 2 und DBOX2 eingesetzt werden, werde ich hier nicht erläutern. Es gibt hier im Forum Anleitungen dafür.
Wir steigen nun mit dem eigentlichen Portieren bei 3dsmax ein:

Importiert erstmal die Balor nach 3dsmax:
Image


Benutzt dazu den Autodesk Collada import.
Image

Bei den Einstellungen stellt ihr bei Units auf Centimeter ein.
Image
Es gibt auch den Opencollada import. Der importiert das Mesh allerdings in Zoll und ihr müsst die Größe anpassen. Bedeutet, nach dem Import müsst ihr die Scale funktion nutzen: Scalefaktor 254. Damit habt ihr dann wieder die korrekte Größe.
Der Vorteil bei dem Opencollada import ist, dass er nicht die Vertexcolor zerstört, der Autodesk Collada importer tut das. Ihr müsst danach die Vertexfarben neu machen. Das ist aber bei unserem Port des Schiffes nicht von Relevanz. Somit könnt ihr den Autodesk Collada importer nutzen.

Nach dem Import von Balor Schiff sollten wir folgendes Bild sehen:
Image

Als nächstes importieren wir nun das X3 Schiff mittels des MaxScripts DBOX2.
Image

Nach dem Import sollten wir folgendes Bild haben.
Image
Jetzt blenden wir alle nicht benötigen Meshes aus und lassen nur den part_mainXcollision mesh anzeigen und unser X3 Schiff Mesh anzeigen. Das machen wir, damit wir später die ungefähre Größe unseres Schiffes festlegen können.

Das X3 Schiff versetzen wir in den part_mainXlod0 Node.
Image

Nun drehen wir das X3 Schiff in Z um 180 Grad.
Image

Und passen die Größe an die der Balor an.
Image

Ich habe die Größe um 80% reduziert. Damit passt es ungefähr auf die Balor. hier kann jeder selbst entscheiden, wie groß sein Schiff werden soll.
Sobald wir mit der Größe zufrieden sind benutzen wir Reset XForm. Das X3 Schiff ist nun angepasst an die Größe und Ausrichtung der Balor.
Image

Jetzt wählen wir alle Gruppen (Nodes) und meshes, die wir nicht mehr brauchen und löschen sie.
Image

Danach sollte unsere Struktur so aussehen.
Image

Jetzt fangen wir mit der Arbeit an und zerlegen das Schiff in ihre einzelnen Materialien.
Der arc_ Konverter kann mit Multimaterial nichts anfangen. Deswegen müssen wir unser Schiff in die einzelnen Material IDs zerlegen.

Wir wählen das Schiff an und klicken auf Editable Poly/Polygon. Hier suchen wir uns im Menu die Material IDs aus. Wenn wir uns durchklicken sehen wir, dass dieses Schiff aus ingesam 9 Texturen besteht.
Jede einzelne werden wir "detachen". Mir ist kein Wort dafür eingefallen :)
Image

Wir öffnen den Material Slate Editor und klicken auf das Multimaterial unten. Es erscheinen nun alle Materialien im Editor.
Image

Jetzt gehen wir wieder in die Material IDs übersicht, wählen hier die 1 an und gehen auf "detach".
Image

Wir werden gefragt wie unser Objekt heißen soll und und ob es als Element oder Clone abgekoppelt werden soll. Hier ändern wir den Namen in "1" um und lassen Element und Clone leer.
Die Mesh wird nun gelöst vom Schiff und befindet sich oberhalb unserer Gruppen.
Image

Wir velegen jetzt die 1 wieder in unsere Gruppe part_mainXlod0
Image

Nun schauen wir in den Matrial Slate Editor und klicken auf die SM1 und hier auf die Diffuse Textur Platte. Hier können wir sehen wir unsere Textur heißt. Diesen Namen kopieren wir und bennen unsere "1" in folgenden Namen um:

terran_platesheet_white
Image

Nun klicken wir wieder die SM1 und weisen unseren part_mainXlod0XterranXterran_platesheet_white die Textur zu.
Image

So verfahren wir mit den übrigen 8 Material IDs, bis unser komplettes X3 Schiff in 9 verschiedene Texturen zerteilt wurde. Benennt am besten beim Lösen "Detach" die Objekte gleich mit der Nummer um. Also 2-9. Damit ist die Zuordnung der Texturen leichter.
Am Ende muß unsere Struktur so aussehen:
Image

Nach dem Lösen ist nun unser altes X3 Objekt leer und kann gelöscht werden.

Wir können sehen, dass mehrere Texturen gleich sind. Das ist das Schöne an Terraner Schiffen. Sie haben oft gleiche Texturen und diese können miteinander kombiniert werden. Wenn man z.b. ein Argonenschiff portieren möchte, können es schon mal 20 verschiedene Texturen sein.
Und wir haben noch einen Vorteil bei dem Terraner Schiff. In XRebirth sind diese Texturen bereits als .dds Dateien enthalten. Wir müssen nur die material_library.xml erstellen. Die hat es leider nicht in die XRebirth material_library geschafft.

So, da wir mehrere gleiche Texturen haben, werden wir diese Objekte zusammen setzen. "collapse"
Image

Das machen wir mit allen Objekten, die die gleiche Textur haben. Danach sollte unser Schiff auf 5 Objekte zusammenschrumpfen.
Image

Nun werden wir unsere 5 Meshes in die richtige Benennung bringen.
Aus:
terran_platesheet_white

machen wir:
part_mainXlod0XterranXterran_platesheet_white

Das ist sehr wichtig, denn erst mit dieser Namensgebung kann unser Objekt später im Spiel erscheinen.

Wir ändern alle Namen mit dem Schema ab und sollten nun folgende Struktur haben:
Image

Da wir einige Objekte zusammen geführt haben, entstanden wieder multimat Objekte. Damit kann das Spiel und der Konverter nicht umgehen. Diese müssen wir wieder mittels des Slate Editors zu Einzelobjekten ändern. Siehe dazu den Punkt mit dem Material Slate Editor.
Wir weisen dem Objekt wieder eine Textur zu.


Jetzt clonen wir unsere 5 Objekte als copy und versetzen die Kopien in den part_mainXlod1
Image

Die Kopien müssen umbenannt werden. Im Node part_mainXlod1 sollte auch der Name part_mainXlod1XterranXterran_platesheet_white sein. Die Zahlen, die beim Kopieren ans Ende vom Namen von 3dsmax erstellt werden werden entfernt.

Nach erfolgtem Kopieren in alle Lods sollten wir folgende Struktur haben:
Image

Die LODs "Level of Detail" legen fest ab welcher Entfernung die Objekte angezeigt werden. Während LOD3 sehr weit weg vom Spieler erscheint und somit nur wenig Details aufweisen muss, ist LOD0 die Detailreichste, da sie sehr nah am Spieler ist.
Deswegen werden wir die jeweiligen Objekte in den verschiedenen Lods zusammenfügen und später auch an Detailreichtum ändern.

Lod3 erscheint sehr weit weg. Somit brauchen wir hier eigentlich nur die Grundstuktur des Schiffs. Deswegen nehmen wir hier nur die part_mainXlod3XterranXterran_platesheet_white als das Hauptobjekt und setzen es mit dem anderen Objekten zusammen. "collapse"
Es ist aber sehr wichtig hier beim Auswählen die Reihenfolge zu beachten. Also zuerst part_mainXlod3XterranXterran_platesheet_white auswählen. Danach die anderen Objekte auswählen. Dann "collapse" anklicken. Die Objekte werden zusammengeführt, wobei das Objekt platesheet_white als Hauptobjekt fungiert und diese Textur übernommen wird.
Nachdem die Objekte zusammengesetzt wurden, sollte alles in der platesheet_white Textur erscheinen. Sollte dies nicht der Fall sein, dann müssen wir wieder die Textur über den Material Slate Editor zuweisen. Es darf kein Multimat Objekt entstehen.

Image

Da wir das komplette Schiff nun als Objekt in einer Mesh zusammengeführt haben, können wir das auch für die collision mesh nutzen.
Wir kopieren einfach die mesh, versetzen sie unter den part_main Node und benennen sie um in:

part_mainXcollision

Nachdem wir das gemacht haben, sollte wir folgende Struktur erhalten:

Image

Jetzt widmen wir uns noch der Lod2 und führen hier folgende meshes zusammen:

part_mainXlod2XterranXterran_techsheet
part_mainXlod2XterranXterran_windowsheet
part_mainXlod2XterranXterran_platesheet_dark

Wobei die techsheet Mesh die Obermesh wird und wir diese als erstes auswählen, danach die Anderen dazunehmen und auf "collapse" klicken. Nun sollten die anderen beiden Meshes die Textur von part_mainXlod2XterranXterran_techsheet übernehmen.

Nachdem das erledigt ist, sollten wir folgende Struktur haben:
Image

Soweit so gut. Nun könnten wir das Schiff durch den Konverter jagen und in XRebirth würde es sogar schon auftauchen. Allerdings fehlen noch zwei Schritte.

Es fehlt die Mesh für das Wrack und für eine bessere Performence im Spiel werden wir einige Meshes in ihrer Komplexität reduzieren. Damit die Gameengine später nicht für weitentfernte Objekte unnötig rechnen muss und somit die Performance sinkt.

Das Wrack erstellen wir aus unserer part_mainXcollision Mesh.

Diese part_mainXcollision kopieren wir 2 mal und benennen die Kopien wie folgt:

part_main_wreckXcollision
part_main_wreckXlod0XgenericXgeneric_wreck

Bevor wir nun die Gruppen für das Wrack erstellen, werden wir erst die Meshes in Lod3,Lod2 und Lod1 optimieren. Lod0 lassen wir unangetastet. Wir reduzieren die Anzahl an Polygonen, Vertexen etc...
Ich nutze dazu den ProOptimizer Modifier. Es gibt bestimmt aber auch andere Wege die Polyanzahl zu reduzieren.

Fangen wir mit Lod3 an.
Da diese Lod am weitesten vom Spieler entfernt ist und man keine großen Details erkennnen kann, reduziere ich hier auf 60%. Lod2 auf 70% und Lod1 auf 80%.

Wir wählen also unser Lod3 Mesh und den Modifier ProOptimizer aus:
Image

Hier selektieren wir noch folgende Punkte dazu.
Keep Textures
Keep UV Boundaries

Wenn möglich auch noch:
Keep Vertex Colors
Keep VC Boundaries

und klicken auf Calculate.
Nun wird die die Zahl berechnet und oben bei Vertex % tragen wir die 60%
ProOptimizer wird nun die Anzahl auf 60% senken.
Image

Das wiederholen wir mit allen Meshes wie oben beschrieben.
Bei Lod2 alle Meshes mit 70% und Lod1 alle mit 80%.
Man sollte die % Zahl nicht zu niedrig ansetzen. Es könnten dann zu große Löcher im Mesh enstehen. Dieser Vorgang kann nicht einfach wieder Rückgängig gemacht werden. Hier also etwas vorsichtiger vorgehen. Lieber eine höhere Zahl eintragen.

Nachdem wir alle Meshes so reduziert haben, machen wir das auch noch mit den beiden part_main_wreckXcollision und
part_main_wreckXlod0XgenericXgeneric_wreck Meshes.
Da es sich hier um Wracks handelt, ist es egal, wenn da einige Löcher sind.

Diese Meshes versetzen wir nun in den Hauptnode.
Unter units_size_l_terran_maccana

So sollte die Struktur jetzt aussehen:
Image

Jetzt müssen wir noch das Wrack gruppieren.
Das machen wir wie folgt:

part_main_wreckXlod0XgenericXgeneric_wreck auswählen und auf Group klicken.
Image
Der Name der Gruppe muss heißen:

part_main_wreckXlod0


Jetzt erstellen wir noch eine Gruppe. Dazu wählen wir die part_main_wreckXlod0 Gruppe und die Mesh part_main_wreckXcollision aus und erstellen daraus die Gruppe:

part_main_wreck

Jetzt sollte unsere Struktur so aussehen:
Image

Damit haben wir ein für XRebirth und auch X4 funktionierenden Port eines X3 Schiffes erstellt.

Jetzt exportieren wir das das Schiff noch als .dae aus 3dsmax mit dem Namen:

units_size_l_terran_maccana


Beim exportieren darauf achten, dass der Autodesk collada exporter ausgewählt ist
Image

und die Units als Centimeter eingestellt sind.
Image



Im 2ten Teil wollen wir uns dann der Erstellung einer funktionierenden Mod widmen und das erstellte Schiff ins Spiel bringen.

Grüsse,
SirFrancisDrake
Last edited by SirFrancisDrake on Sun, 12. Apr 20, 15:36, edited 2 times in total.

User avatar
SirFrancisDrake
Posts: 178
Joined: Mon, 23. Dec 13, 12:24
x4

Re: [TUTORIAL] X3 Schiffe nach XRebirth/X4 portieren

Post by SirFrancisDrake » Sat, 11. Apr 20, 22:04

Einen wunderschönen guten Morgen an alle,

im zweiten Teil der Anleitung wollen wir nun die harte Arbeit fortführen und unser Terraner Schiff endlich auch ins Spiel bringen.
Hierbei handelt es sich meist nur noch um xml Zeugs. Also benötigen wir 3dsmax nicht mehr.

Als erstes wandeln wir unsere .dae Datei mit dem Konverter von arc_ in das Spieleigene Format um.

Als tüchtige Modder haben wir natürlich unseren XRebirth Ordner irgendwo auf der Festplatte als entpackte Version vorliegen. In dieser entpackten Version haben wir sicherlich auch alle Modelle irgendwann mit dem Konverter entpackt. :-)
Falls nicht, dann würde ich das auf jeden Fall empfehlen.
Mein entpackter Ordner liegt bei mir auf der Festplatte E: und heißt XR

Um unser Schiff nun in das Spieleigene Format zu bekommen, gehen wir wie folgt vor. (Eure Ordner liegen wahrscheinlich irgendwo anders, als bei mir. Das müsst ihr dann natürlich individuell anpassen.)

Da ich weiß, dass viele Leute Probleme haben, den Konverter zu nutzen, folgt ersmal hier eine kleine Anleitung, wie ich das immer mache. Damit sollte es keine Probleme geben, wenn ihr eure erstelle .dae Datei in das Spielformat konvertieren wollt.

Kopiert erst mal alle Konverter Dateien in euren entpackten XRebirth/X4 Ordner.
Wie schon erwähnt, ist mein Ordner auf Festplatte E:/XR

Also kopiere ich erstmal folgende Dateien in mein Ordner "XR":
XRConverters.dll
XRConverters.h
XRConvertersMain

Jetzt kopieren wir unsere "units_size_l_terran_maccana.dae", die wir im ersten Teil erstellt haben in den "size_l" Ordner, der sich unter assets/units/size_l befindet.

Nun kommt der magische Moment.
Wir starten die Eingabeaufforderung. Leute wie ich, die schon etwas älter sind, kennen das noch sehr gut aus ihren MSDOS Tagen. Als wir für StarWars Rebel Assault jedes Kb freischaufeln mussten und Stunden damit verbrachten im MSDOS Modus danach zu suchen.

So zurück in die reale Welt.

Im Eingabemodus wechseln wir nun auf Laufwerk E: in der Ordner XR (Ihr wechselt natürlich auf euer Laufwerk und in euren Ordner)

Nun geben wir folgendes in der Eingabeaufforderung ein:

XRConvertersMain.exe exportxmf "e:\xr" e:\xr\assets\units\size_l\units_size_l_terran_maccana.dae

Der Konverter arbeitet kurz.

Wenn wir alles im ersten Teil richtig gemacht haben, dann wird unser Modell nun in das Spielformat umgewandelt.
Im size_l Ordner hat der Konverter folgendes erstellt:

units_size_l_terran_maccana_data Ordner (in diesem Ordner befinden sich die Meshdateine im xmf Format)

und

units_size_l_terran_maccana.xml Datei(Das ist die component Datei. Wir brauchen diese Später zur Erstellung der Mod)


Jetzt wechseln wir in unseren Spielordner von XRebirth. (Ich beschreibe hier die Erstellung anhand von XR. Es sollte aber auch genauso für X4 funktionieren. Nur habe ich mit X4 noch nicht so stark beschäftigt. Modder, die Schiffe gleich nach X4 portieren wollen, müssen wahrscheinlich Kleinigkeiten anpassen.)

In unserem Spieleordner von XRebirth wechseln wir in den Ordner extensions. Hier wird unsere Mod entstehen.

Im extensions Ordner erstellen wir folgenden Ordner:

terranmaccana

Ab jetzt bewegen wir uns in diesem Ordner. Das ist unsere Erweiterung. Unsere Mod.
Jede Mod braucht eine content.xml. Für unser Schiff erstellen wir folgende xml Datei:

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<content id="terranmaccana" name="Terran Maccana" description="This mod adds a new capital ship to the shipyards in Home Of Light." author="SirFrancisDrake" version="100" date="2020-04-12" save="true" >
  <dependency id="ego_dlc_2" version="100" name="Home of Light"/>
  <dependency id="ego_dlc_teladi_outpost" version="100" name="The Teladi Outpost"/>
  <text language="49" name="Terran Maccana" description="Diese Erweiterung fügt ein neues Schiff zu der Schiffswerften in Heimat des Lichts hinzu."/>
</content>
Jetzt erstellen wir folgende Ordner in unserem terranmaccana Ordner
assets/units/size_l/macros
assets/props/surfaceelements
extensions/ego_dlc_2/assets/props/surfaceelements/macros (das brauchen wir, damit unser Schiff auch in Heimat des Lichts gekauft werden kann)
index
libraries
t

Ich werde nicht auf jede xml Datei hier eingehen. Das würde den Rahmen der Anleitung sprengen.
Wir werden uns aber mit den wichtigen Dateien für das Schiff beschäftigen.

Am Ende der Anleitung werde ich alle Dateien zur Verfügung stellen. Damit jeder, der Interesse hat, sich mit der Materie befassen kann.

Ich möchte hier auf folgende Dateien näher eingehen:

material_library.xml
units_size_l_terran_maccana.xml
units_size_l_terran_maccana_macro.xml

Fangen wir mit der material_library an:

In dieser Datei werden die Texturen definiert. Wie ich schon im ersten Teil erläutert habe, stellt Xrebirth die Texturen bereits in seinem Hauptspiel zu Verfügung. Zu finden sind diese unter assets/textures/terran
Somit müssen wir selber diese nicht aus X3 übernehmen. Leider haben es die Texturen nicht in die XR Material_library.xml geschafft. Ego hat die wohl nicht gebraucht. Die Terranerschiffe wie Succellus,Styrvok, Katana etc.. nutzen Argonentexturen.
Aber wir können diese Texturen nutzen. Dazu müssen wir dem Spiel nur mitteilen, wo diese sich befinden. Das machen wir mit unserer material_library.xml

Die sollte so aussehen:

Code: Select all

<?xml version="1.0" encoding="utf-8"?>
<diff>
	<add sel="/materiallibrary">
		<collection name="terran"> 
			<material name="terran_platesheet_white" shader="shaderfx\high\XU_surface_test.fx" blendmode="NONE" preview="none">
				<properties>
					<property type="BitMap" name="diffuse_map" 		value="assets\textures\terran\terran_platesheet_white_diff"/>
					<property type="BitMap" name="specular_map" 		value="assets\textures\terran\terran_platesheet_spec"/>
					<property type="BitMap" name="normal_map" 		value="assets\textures\terran\terran_platesheet_bump"/>
				</properties>
			</material>
			<material name="terran_platesheet_red" shader="shaderfx\high\XU_surface_test.fx" blendmode="NONE" preview="none">
				<properties>
					<property type="BitMap" name="diffuse_map" 		value="assets\textures\terran\terran_platesheet_red_diff"/>
					<property type="BitMap" name="specular_map" 		value="assets\textures\terran\terran_platesheet_spec"/>
					<property type="BitMap" name="normal_map" 		value="assets\textures\terran\terran_platesheet_bump"/>
				</properties>
			</material>
			<material name="terran_platesheet_dark" shader="shaderfx\high\XU_surface_test.fx" blendmode="NONE" preview="none">
				<properties>
					<property type="BitMap" name="diffuse_map" 		value="assets\textures\terran\terran_platesheet_dark_diff"/>
					<property type="BitMap" name="specular_map" 		value="assets\textures\terran\terran_platesheet_spec"/>
					<property type="BitMap" name="normal_map" 		value="assets\textures\terran\terran_platesheet_bump"/>
				</properties>
			</material>
			<material name="terran_techsheet" shader="shaderfx\high\XU_surface_test.fx" blendmode="NONE" preview="none">
				<properties>
					<property type="BitMap" name="diffuse_map" 		value="assets\textures\terran\terran_techsheet_diff"/>
					<property type="BitMap" name="specular_map" 		value="assets\textures\terran\terran_techsheet_spec"/>
					<property type="BitMap" name="normal_map" 		value="assets\textures\terran\terran_techsheet_bump"/>
				</properties>
			</material>
			<material name="terran_windowsheet" shader="shaderfx\high\XU_surface_test.fx" blendmode="NONE" preview="none">
				<properties>
					<property type="BitMap" name="diffuse_map" 		value="assets\textures\terran\terran_windowsheet_diff"/>
					<property type="BitMap" name="specular_map" 		value="assets\textures\terran\terran_windowsheet_spec"/>
					<property type="BitMap" name="normal_map" 		value="assets\textures\terran\terran_windowsheet_bump"/>
					<property type="BitMap" name="color_glow_map" 	value="assets\textures\terran\terran_windowsheet_light"/>
				</properties>
			</material>
		</collection>	
	</add>
</diff>
Wer sich noch erinnern kann, wir haben im ersten Teil unsere Meshes nach einem bestimmten Schema benannt:

part_mainXlod0XterranXterran_platesheet_white

In der material_library findet nun die Zuweisung statt:

Im Code finden wir die Collection:
<collection name="terran">

und das Material selber:
<material name="terran_platesheet_white" shader="shaderfx\high\XU_surface_test.fx" blendmode="NONE" preview="none">
<properties>
<property type="BitMap" name="diffuse_map" value="assets\textures\terran\terran_platesheet_white_diff"/>
<property type="BitMap" name="specular_map" value="assets\textures\terran\terran_platesheet_spec"/>
<property type="BitMap" name="normal_map" value="assets\textures\terran\terran_platesheet_bump"/>
</properties>
</material>

Das Spiel weiß nun, wo sich die Texturen für unser Modell befinden.

Jetzt widmen wir uns der component Datei units_size_l_terran_maccana.xml und der units_size_l_terran_maccana_macro.xml

Wir haben für unser Terranerschiff die Balor als Vergleichsschiff hergeholt. Das werden wir auch weiterhin tun, indem wir die Balor component und macro Datei heranziehen.

Tut also folgendes. Kopiert diese Dateien aus eurer entpackten XRebirth Spielversion, die ihr fürs Modden nutzt in unser extensions Ordner "terranmaccana"

Das heisst, folgende Dateien wandern in unseren Ordner terranmaccana:

units_size_l_single_attack_ship.xml kopiert ihr in den Ordner "extensions/terranmaccana/assets/units/size_l" und sie wird in "units_size_l_terran_maccana.xml" umbenannt.
units_size_l_single_attack_ship_macro kopiert ihr in Ordner "extensions/terranmaccana/assets/units/size_l/macros" und wird in "units_size_l_terran_maccana_macro.xml" umbenannt.

Die Änderung der Macro Datei ist die schnellere. Deswegen die zuerst. Ändert in der Datei folgendes ab:

Original:
<macro name="units_size_l_single_attack_ship_macro" class="ship_l">
<component ref="units_size_l_single_attack_ship" />
<properties>
<identification name="{20101,3901}" description="{20101,3902}" mapicon="shipicon_frigate_l" />

Unser Schiff:
<macro name="units_size_l_terran_maccana_macro" class="ship_l">
<component ref="units_size_l_terran_maccana" />
<properties>
<identification name="{1839452,100}" description="{1839452,101}" mapicon="shipicon_frigate_l" />

Den Rest lassen wir so, wie er ist. Wir wollen ja erstmal unser Schiff ins Spiel bringen. Feintunig kommt später.

Jetzt ändern wir die componentdatei units_size_l_terran_maccana.xml (die umbenannte units_size_l_single_attack_ship.xml) :

Ändert folgendes ab:
Original:
<component name="units_size_l_single_attack_ship" class="ship_l">
<source geometry="assets\units\size_l\units_size_l_single_attack_ship_data"/>

Unser Schiff:
<component name="units_size_l_terran_maccana" class="ship_l">
<source geometry="extensions\terranmaccana\assets\units\size_l\units_size_l_terran_maccana_data"/>

Nun öffnen wir die vom Konverter erzeugte units_size_l_terran_maccana.xml im XML Editor unseres Vertrauens und kopieren folgenden Abschnitt in unsere units_size_l_terran_maccana.xml.

!!!Wir benutzen NICHT die vom Konverter erzeugte xml für unsere Mod. Die funktioniert nicht. Wir entnehmen ihr nur die connections. WICHTIG.!!!

Code: Select all

<connection name="Connection01" tags="part">
				<parts>
					<part name="part_main">
						<size>
							<max x="204.217" y="71.0942" z="529.799" />
							<center x="0" y="1.52588e-005" z="35.3832" />
						</size>
						<lods>
							<lod index="0">
								<materials>
									<material id="1" ref="terran.terran_platesheet_white" />
									<material id="2" ref="terran.terran_platesheet_red" />
									<material id="3" ref="terran.terran_platesheet_dark" />
									<material id="4" ref="terran.terran_techsheet" />
									<material id="5" ref="terran.terran_windowsheet" />
								</materials>
							</lod>
							<lod index="1">
								<materials>
									<material id="1" ref="terran.terran_platesheet_dark" />
									<material id="2" ref="terran.terran_platesheet_red" />
									<material id="3" ref="terran.terran_platesheet_white" />
									<material id="4" ref="terran.terran_techsheet" />
									<material id="5" ref="terran.terran_windowsheet" />
								</materials>
							</lod>
							<lod index="2">
								<materials>
									<material id="1" ref="terran.terran_platesheet_red" />
									<material id="2" ref="terran.terran_platesheet_white" />
									<material id="3" ref="terran.terran_techsheet" />
								</materials>
							</lod>
							<lod index="3">
								<materials>
									<material id="1" ref="terran.terran_platesheet_white" />
								</materials>
							</lod>
						</lods>
					</part>
				</parts>
			<offset>
				<position x="-0.000000" y="0.108604" z="9.228390" />
			</offset>
</connection>
Die kopierte connection01 fügen wir anstelle der connection01 in unserer xml Datei ein.
Danach löschen wir noch die connection02 und connection04 in unserer units_size_l_terran_maccana.xml

Die sind in unserem Modell nicht vorhanden und wir brauchen sie nicht.

Aufmerksame Leser fragen sich nun was mit dem part_main_wreck ist.

Gute Frage. Das Wrack fügen wir wie folgt ein:

Die connection01 hat folgende Zeile:
<part name="part_main">

Die ändern wir in:
<part name="part_main" wreck="part_main_wreck">
Fertig.

Jetzt kopieren wir noch den Ordner "units_size_l_terran_maccana_data" den der Konverter erstellt hat, in unseren Mod Ordner.

Nachdem wir das getan haben, müssen wir noch folgende Dateien erstellen:

im "t" Ordner:
0001.xml (Die Text Datei in englisch. Bedenkt, dass eure Schiffe auch von fremdsprachigen Spielern benutzt werden.)
0001-l049.xml (Die Deutsche Textdatei)

im "libraries" Ordner:
material_library.xml (die haben wir bereit erstellt)
targetpoints.xml (Hier werden die Komponenten fürs Scannen, Hacken und für die Drohnenstartrampe festgelegt)
wares.xml (Hier wird unser Schiff als Kaufprodukt definiert. Mit den nötigen Waren, Preisen etc...)

im "index" Ordner:
component.xml (Hier werden die Pfade der Komponenten festgelegt)
macros.xml (Hier die Pfade der Makros)

im "macros" Ordner (extensions/terranmaccana/extensions/ego_dlc_2/assets/props/surfaceelements/macros)
buildmodule_ships_hol_l_macro.xml (hier sagen wir dem Spiel, dass das Schiff in Heimat des Lichts gekauft werden kann)

im "surfaceelements" Ordner:
props_surf_ship_tradeoffer_terran_maccana.xml (hier legen wir den Flugpfad für die Lastendrohen fest)
Diesen Teil habe ich ausgelassen. Er ist nicht relevant für die Erstellung der Mod. Wird aber später dafür benötigt, wenn man im Spiel zb. unser Schiff mit Verteidigungsdrohnen nachrüsten möchte.
Es ist für uns derzeit ein Dummy.

So das war es schon. Wenn ihr alles korrekt gemacht habt, sollte euer Schiff in Heimat des Lichts zum Verkauf angeboten werden.

Unser Schiff kann im Spiel auftauchen. Es wartet allerdings noch viel Arbeit auf uns. Waffen, Schilde, Triebwerke etc müssen nun an die richtige Position gebracht werden.
Feintunig ist angesagt. Das wird aber nicht mehr hier behandelt.

Euer Schiff sollte nun so aussehen:

Image Image Image

Ich werde, nachdem ich die ganzen Dateien bearbeitet habe, alle hier veröffentlichen.
Jetzt habe ich erst mal Hunger und esse etwas.:-)

Grüsse,
SirFrancisDrake
Last edited by SirFrancisDrake on Sun, 12. Apr 20, 15:20, edited 2 times in total.

User avatar
alexalsp
Posts: 1542
Joined: Fri, 18. Jul 14, 05:28
x4

Re: [TUTORIAL] X3 Schiffe nach XRebirth/X4 portieren

Post by alexalsp » Sat, 11. Apr 20, 23:21

Excellent. The only person who made a description of the import of ships.

If there is time I will do it in Russian in CHM format.

Thanks.

:thumb_up:

:wink:

User avatar
SirFrancisDrake
Posts: 178
Joined: Mon, 23. Dec 13, 12:24
x4

Re: [TUTORIAL] X3 Schiffe nach XRebirth/X4 portieren

Post by SirFrancisDrake » Sun, 12. Apr 20, 16:28

Hi alexalsp,

I will publish it in english too. So it could be easier for you, to translate it into russian.

BullySan
Posts: 66
Joined: Sat, 26. Aug 06, 17:20
x4

Re: [TUTORIAL] X3 Schiffe nach XRebirth/X4 portieren

Post by BullySan » Tue, 12. May 20, 18:34

ich hätte da mal eine wahrscheinlich blöde frage da ich vor habe dein tut zu probieren.... dein tut ist für den import von x3 schiffen zu x4. meine frage wäre jetzt, geht diese vorgehensweise auch mit einem schiff das in x3 von einem modder eingefügt wurde? kurz, ich würde so gerne versuchen die Daedalus BC304 - M1 - by Balogt einzufügen die bei dem link unten als xsp file zum download steht.

viewtopic.php?t=274276

geht das auch mit einer xsp file?
lg

User avatar
SirFrancisDrake
Posts: 178
Joined: Mon, 23. Dec 13, 12:24
x4

Re: [TUTORIAL] X3 Schiffe nach XRebirth/X4 portieren

Post by SirFrancisDrake » Tue, 12. May 20, 19:32

Hallo,

ich kenne dieses xsp Format nicht. Aber solange du dein Wunschschiff in 3ds oder Blender laden kannst sollte es gehen. Der Weg dürfte relativ ähnlich sein.

Die Daedalus gibt es aber bereits schon in XRebirth. Und zwar in dieser Mod:

viewtopic.php?f=134&t=394373

So kannst du dir den Port von X3 nach X4 sparen und mit einigen kleineren Anpassungen das Schiff von XRebirth an X4 anpassen.

Grüsse,
SirFrancisDrake

BullySan
Posts: 66
Joined: Sat, 26. Aug 06, 17:20
x4

Re: [TUTORIAL] X3 Schiffe nach XRebirth/X4 portieren

Post by BullySan » Tue, 12. May 20, 19:43

wut??? :o also kann ich die da mit deinem tut raus holen ?

User avatar
SirFrancisDrake
Posts: 178
Joined: Mon, 23. Dec 13, 12:24
x4

Re: [TUTORIAL] X3 Schiffe nach XRebirth/X4 portieren

Post by SirFrancisDrake » Tue, 12. May 20, 20:45

Wenn du das Schiff aus der Mod, die ich dir genannt habe, rausholen willst, brauchst du meine Anleitung dazu nicht.

Das Schiff liegt dort bereits in dem für X4 benötigten Format vor.
Du musst "nur" einige Anpassungen in den xml Dateien vornehmen, damit das Schiff auch in X4 spielbar ist.
Am besten, du schaust dir einige Schiffsmods im X4 Script&Moddingforum an.
Dort kannst du dir den Aufbau einer Schiffsmod anschauen und es auf die Daedalus übertragen.

Wenn du das Schiff als Mod veröffentlichen willst, solltest du aber erst mal den Modersteller um Erlaubnis fragen.
Er hat für X4 auch einige Schiffe veröffentlicht. Vielleicht kann er dir sogar ein paar weitere Tipps zu seiner Daedalus geben.

Grüsse,
SirFrancisDrake
Last edited by SirFrancisDrake on Sat, 16. May 20, 12:16, edited 1 time in total.

BullySan
Posts: 66
Joined: Sat, 26. Aug 06, 17:20
x4

Re: [TUTORIAL] X3 Schiffe nach XRebirth/X4 portieren

Post by BullySan » Tue, 12. May 20, 21:22

ich will es nur in meinem spiel haben. wie gesagt, ich habe null ahnung von dem zeug. hatte es nur bisher immer in den anderen x reihen

BullySan
Posts: 66
Joined: Sat, 26. Aug 06, 17:20
x4

Re: [TUTORIAL] X3 Schiffe nach XRebirth/X4 portieren

Post by BullySan » Thu, 14. May 20, 11:03

j.L antwortet mir leider nicht. hab mich jetzt die tage intensiv damit beschäftigt. ich bin tatsächlich neu auf dem gebiet und habe daher versucht mich an deiner anleitung zu orientieren. auch um es einfach mal zu lernen.

3dsmax is mir zu teuer und der weg mir eine demo zu holen für 30 tage zu kompliziert. am ende is se eh weg nach 30 tagen. Habe mich daher an blender gehalten. Der X3 Editor 2 sagt mir schon was von X3 her noch.
DBOX2 auch geladen.
Die deadalus liegt mir in mehreren daten vor. ein mal als xsp datei, so war das in X3. Dann auch als cat datei in meinem X3 AP ordner. Den mod von j.l für x2 habe ich auch geladen. Ich habe mich zuerst mit dem convertieren beschäftigt. Da hänge ich schon bei der convertierung....sobald ich das im cmd eingebe bekomme ich dauernd die fehlermeldung das er der datei pfad nicht findet obwohl alle in genau dem ordner liegt.
auch deine aussage das ich mir das convertieren ersparen kann beschäftigt mich :) was muss ich tun damit ich das ding aus j.l mod heraus bekomme? und was genau meintest du mit einigen kleinen anpassungen?
du siehst, mein wunsch dieses schiff in x4 zu fliegen ist sehr gross. ich bin mir sicher wenn ich mich noch 2 wochen damit beschäftige kann ich irgend wann alles zerlegen und wieder zusammen fügen. aber ich brauche da echt hilfe. bevorzugt deutsch sprachig da mein englicsh kaka is. also falls jemand sich erbarmt und mir bei dieser odysee helfen mag.....ich bin auch ts und dicord fähig

User avatar
X2-Illuminatus
Moderator (Deutsch)
Moderator (Deutsch)
Posts: 23092
Joined: Sun, 2. Apr 06, 16:38
x4

Re: [TUTORIAL] X3 Schiffe nach XRebirth/X4 portieren

Post by X2-Illuminatus » Sat, 16. May 20, 10:26

BullySan wrote:
Thu, 14. May 20, 11:03
auch deine aussage das ich mir das convertieren ersparen kann beschäftigt mich :) was muss ich tun damit ich das ding aus j.l mod heraus bekomme? und was genau meintest du mit einigen kleinen anpassungen?
Du musst einfach nur die Katalogdateien der Mod mit dem Egosoft Catalog Tool entpacken und schon hast du alle Dateien aus der Mod entpackt vorliegen. Da X Rebirth und X4: Foundations die gleichen Dateiformate nutzen, ist keine Konvertierung der Modelldateien mehr nötig. Das Catalog Tool ist Teil der X Tools, welche du in Steam findest oder auch auch hier herunterladen kannst.
Was die Anpassungen angeht, wird sich wohl der Aufbau der Dateien zwischen XR und X4 in einigen Punkten geändert haben. Was sich genau geändert hat, weiß ich allerdings nicht. Wie SirFrancisDrake schon geschrieben hat, wäre es aber eine Idee, sich einzelne Modschiffe aus X4 anzuschauen, und die Dateien zu vergleichen.

Alternativ könntest du dir auch mal das XReborn Ship Ports v1.03 Tool von teleportationwars anschauen, mit dem man Schiffe aus X Rebirth nach X4 portieren kann. Vielleicht funktioniert das auch schon für Modschiffe.
Nun verfügbar! X3: Farnham's Legacy - Ein neues Kapitel für einen alten Favoriten

Die komplette X-Roman-Reihe jetzt als Kindle E-Books! (Farnhams Legende, Nopileos, X3: Yoshiko, X3: Hüter der Tore, X3: Wächter der Erde)

Neuauflage der fünf X-Romane als Taschenbuch

The official X-novels Farnham's Legend, Nopileos, X3: Yoshiko as Kindle e-books!

User avatar
SirFrancisDrake
Posts: 178
Joined: Mon, 23. Dec 13, 12:24
x4

Re: [TUTORIAL] X3 Schiffe nach XRebirth/X4 portieren

Post by SirFrancisDrake » Sat, 16. May 20, 12:31

Hallo,

wie X2-Illuminatus schon gesagt hat, musst du die Mod von J.L. erst mal mit dem Catalog Tool entpacken. Dann kannst du dir die benötigten Dateien für den Port von XRebirth nach X4 harausnehmen.

Ich habe mir mal die Mod kurz angeschaut.
Wenn du die Mod enpackst, findest du die eigentlichen Mesh Dateien (Das 3D Modell der Daedalus) im Ordner:
assets/units/size_xl/units_size_tr_xl_capital_destroyer_2_vsm_data

Die dazugehörige component Datei ist die:
units_size_tr_xl_capital_destroyer_2_vsm.xml

Und die Macrodatei ist die:
units_size_tr_xl_capital_destroyer_2_vsm_macro.xml

Die Unterschiede zwischen XRebirth und X4 in den xml Dateien musst du dir wirklich mal selber in den diversen X4 Schiffsmods anschauen. Ich selber habe mich mit den X4 Schiffen "noch" nicht beschäftigt, da mir XRebirth einfach besser gefällt und ich noch einiges für XRebirth in der Mache habe.
Es wird noch lange dauern, bis ich zu X4 wechseln werde.

Grüsse,
SirFrancisDrake

P.S. Meine Anleitung funktioniert nur für den Port von X3 Schiffen nach XR/X4. Für das Portieren von XR nach X4 ist sie nicht geeignet. Um Schiffe von XR nach X4 zu bringen ist eher das Editieren von xml Dateien notwendig. Dafür wird kein 3dStudio oder Blender benötigt.

Post Reply

Return to “X Rebirth - Scripts und Modding”