Hallo Modding-Interessierte
Ich möchte in diesem Tutorial aufzeigen, wie man in Medieval Total War 2 eine neue Fraktion erschaffen kann. Als Grundlagen für dieses Tutorial dienen mir die englischsprachigen Tutorials von @DukeofSerbia (TWC) und von Gigantus. Ich habe deren hervorragende Anleitungen zusätzlich mit meinen eigenen Erfahrungen beim Erschaffen einer neuen Fraktion ergänzt.
1. Grundlagen
Um eine neue Fraktion erschaffen zu können ist die Erstellung eines Mod-Folders sehr empfehlenswert. Zudem muss in der preference.cfg-Datei der Befehl [io] file_first = 1 (oder true) eingefügt sein, damit die Originaldateien überschrieben werden können. Eine Anleitung wie das geht findet sich hier im Tutorial-Bereich unter Tutorial: Technische Grundlagen 3, Mod-Folder ("Modswitch-Technik") und io.file_first
Es macht zudem Sinn, den Unpacker über die M2TW-Datei laufen zu lassen und sämtliche verpackten Dateien zu entpacken (das ist eigentlich ohnehin Pflicht, wenn man sich tiefergehend mit dem Modden auseinandersetzen will). Auch dazu gibts hier im Tutorial-Bereich eine Anleitung Tutorial: Technische Grundlagen 1, Dateien entpacken
Bei der Erstellung einer neuen Fraktion kann man im Wesentlichen zwei Arbeitsbereiche unterscheiden: Das grundlegende "Gerüst", basierend auf den .xml und .txt-Dateien – und die darauf aufbauende Verfeinerung und Perfektionierung, welche dann vor allem den grafischen Bereich betrifft (Skins, Modelle, Wappen, Texturen, etc.). Ich werde das Tutorial deshalb in diese zwei Arbeitsbereiche unterteilen. Ihr werdet sehen, dass man das Gerüst relativ schnell und ohne grösseren Aufwand zusammen bekommt – die Verfeinerung hingegen ist um einiges arbeitsaufwändiger!
2. Das "Gerüst"
Folgende .xml und .txt Dateien werden zur Erstellung einer neuen Fraktion (grundlegend) benötigt:
descr_banners_new.xml
descr_character.txt
descr_lbc_db.txt
descr_model_strat.txt
descr_names.txt
descr_offmap_models.txt
descr_sm_factions.txt
export_descr_buildings.txt
export_descr_unit.txt
campaign_descriptions.txt
expanded.txt
names.txt
descr_win_conditions.txt
descr_strat.txt
In unserem Beispiel wollen wir die Fraktion Anjou (eine mächtige Herrscherdynastie, die im Mittelalter in Frankreich über beträchtliche territoriale Besitzungen verfügte) erschaffen. Wir "klonen" diese neue Fraktion aus der bestehenden Fraktion Frankreich.
Gehen wir die Arbeitsprozesse nun Schritt für Schritt durch:
2.1
Öffnet die Datei descr_banners_new.xml mit Notepad (entweder durch Änderung des Suffixes in .txt oder durch Rechtsklick und "öffnen mit"). In dieser Datei sind die jeweiligen Banner der Einheiten auf dem Schlachtfeld definiert. Wir fügen hier (noch) keine neuen Banner hinzu, sondern weisen unserer neuen Fraktion ganz im Sinne der "Gerüst"-Logik die Banner der Franzosen zu.
Sucht nach den Einträgen der Franzosen (auch die simpelsten Text-Editor-Programme sollten über eine Suchfunktion verfügen). Kopiert jeweils die Einträge für Frankreich und ersetzt in den kopierten Absätzen jeweils den Eintrag "France" durch "Anjou".
</Banner>
<Banner Name="main_spear" MainMesh="data\banners\main_spear.mesh" MiniMesh="data\banners\mini_spear.mesh" GeneralMesh="data\banners\main_general.mesh" BuildingMesh="data\banners\main_spear.mesh" EffectOffsetX="0.0" EffectOffsetY="8.1" EffectOffsetZ="-0.1">
<Textures>
<Texture Faction="Anjou" DiffuseMap="banners\textures\Faction_banner_france.texture" TranslucencyMap="banners\textures\Faction_banner_france_trans.texture"/>
</Banner>
<Banner Name="main_infantry" MainMesh="data\banners\main_infantry.mesh" MiniMesh="data\banners\mini_infantry.mesh" GeneralMesh="data\banners\main_general.mesh" BuildingMesh="data\banners\main_spear.mesh" EffectOffsetX="0.0" EffectOffsetY="8.9" EffectOffsetZ="-0.1">
<Textures>
<Texture Faction="Anjou" DiffuseMap="banners\textures\Faction_banner_france.texture" TranslucencyMap="banners\textures\Faction_banner_france_trans.texture"/>
</Banner>
<Banner Name="main_cavalry" MainMesh="data\banners\main_cavalry.mesh" MiniMesh="data\banners\mini_cavalry.mesh" GeneralMesh="data\banners\main_general.mesh" BuildingMesh="data\banners\main_spear.mesh" EffectOffsetX="0.0" EffectOffsetY="8.1" EffectOffsetZ="0.0">
<Textures>
<Texture Faction="Anjou" DiffuseMap="banners\textures\Faction_banner_france.texture" TranslucencyMap="banners\textures\Faction_banner_france_trans.texture"/>
</Banner>
<Banner Name="main_missile" MainMesh="data\banners\main_missile.mesh" MiniMesh="data\banners\mini_missile.mesh" GeneralMesh="data\banners\main_general.mesh" BuildingMesh="data\banners\main_spear.mesh" EffectOffsetX="0.0" EffectOffsetY="8.1" EffectOffsetZ="0.0">
<Textures>
<Texture Faction="Anjou" DiffuseMap="banners\textures\Faction_banner_france.texture" TranslucencyMap="banners\textures\Faction_banner_france_trans.texture"/>
Wir haben unserer neuen Fraktion nun Banner für Speerträger, Infanterie, Kavallerie und Schützen-Infanterie zugewiesen.
Nun weisen wir unserer Fraktion noch die Royal-Banners zu. Diese werden in der Schlacht dann vom Anführer der Fraktion getragen:
<RoyalBanner Name="royal">
<!--Only single royal banner is supported-->
<MeshesAndTextures>
<MeshAndTexture Faction="Anjou" Mesh="data\banners\main_royal.mesh" DiffuseMap="banners\textures\royal_banner_france.texture" TranslucencyMap="banners\textures\royal_banner_trans.texture"/>
Zusätzlich kann man der neuen Fraktion auch noch die in der descr_banners_new.xml ebenfalls enthaltenen Banner für Kreuzfahrer-Einheiten verpassen. Das Prozedere ist genau gleich, wie oben gesehen. Einfach den Crusader-Bereich der Franzosen suchen, kopieren und analog in Anjou umwandeln.
2.2
Öffnet die Datei descr_character.txt mit Notepad. Hier drin sind die Basis-Modelle für die strategischen Einheiten auf der Map definiert. Hier klonen wir erneut die Frankreich-Einträge durch kopieren und umwandeln in Anjou:
Named character (Anführer, Erben und Generäle):
faction anjou
dictionary 2
strat_model northern_general
battle_model Northern_General
battle_equip gladius, chainmail shirt helmet and rectangular shield
General (Hauptmann):
faction anjou
dictionary 2
strat_model northern_captain
battle_model Northern_Captain
battle_equip gladius, chainmail shirt helmet and rectangular shield
Spy (Spion):
Assassin (Attentäter):
Diplomat:
Admiral:
Princess (Prinzessin):
Merchant (Händler):
Priest (Priester, Bischöfe, Kardinäle):
faction anjou
dictionary 2
strat_model catholic_priest
strat_model catholic_bishop
strat_model catholic_cardinal
2.3
Öffnet descr_lbc_db.txt mit Notepad. Hier muss nur ein kleiner Eintrag geändert werden (wieder durch Frankreich-kopieren und umwandeln):
2.4
Öffnet descr_model_strat.txt mit Notepad. In dieser Datei werden die Texturen der Modelle auf der Strategiekarte definiert. Auch hier kopieren wir wieder die Frankreich-Einträge und wandeln sie in Anjou um.
Ambassador:
Spy:
Assassin:
Princess:
Merchant:
Priests (Priester, Bischof und Kardinal, jeweils catholic_):
General (General, Anführer, Erbe):
Captain (Hauptmann)
Danach folgen ähnliche Einträge, die Überbleibsel auf der Rome-Engine sind. Man muss auch diese kopieren und umwandeln, sonst funktioniert die Sache nicht:
princess:
merchant:
priest:
bishop:
cardinal:
diplomat:
spy:
assassin:
sm_barb_general:
sm_barb_lesser_general:
Admirals (Anmerkung: Diese Zeile ist meines Erachtens nicht bei allen Fraktionen nötig. Als ich beispielsweise die Fraktion Burgund aus Frankreich geklont habe, bekam ich einen Crash mit Verweis auf diese Zeile. Erst als ich sie – resp. den Vorher angefügten Burgund-Zusatz – entfernt hatte, funktionierte die Sache. Ihr müsst hier je nach geklonter Fraktion wohl selber experimentieren):
type gaul_admiral
skeleton strat_navy
indiv_range 40
texture france, models_strat/textures/navy_cog.tga
texture anjou, models_strat/textures/navy_cog.tga
model_flexi models_strat/navy_cog.cas, max
shadow_model_flexi models_strat/navy_roman_shadow.cas, max
Wir werden auf diesen Bereich im zweiten Teil des Tutorials (Verfeinerung) nochmals ausführlich zu sprechen kommen!
2.5
Öffnet descr_names.txt mit Notepad. In dieser Datei sind sämtliche Namen enthalten, welche die Modelle auf der Strategiekarte haben. Es gibt hier zwei mögliche Vorgehensweisen:
1. Man lässt alles so, wie es ist. In unserem Fall würde das bedeuten, dass die Charaktere auf der Strategiekarte die Namen der französischen Fraktion bekommen. Das macht in unserem Fall insofern Sinn, weil Anjou ja ebenfalls eine französische Fraktion ist. Deshalb ist es unnötig, extra eine neue Namensliste zu erstellen.
2. Man definiert eine neue Namensliste. Dazu muss in der descr_names.txt eine neue Fraktion definiert werden. Beispiel:
faction: anjou
characters
Jerome
Claude
Guillaume
surnames
Montfort
Plantagenet
women
Marie
Julie
Alles anzeigen
Diese Liste kann man nun nach belieben mit neuen Namen erweitern. Aber Achtung: Man muss sämtliche Namen, die man in der descr_names.txt hinzufügt, auch in der Datei names.txt nachtragen. Beide Dateien müssen sämtliche der neuen Namen enthalten. Sonst gibts einen Crash!
In der names.txt würde das dann so aussehen (die Bezeichnungen in den Klammern müssen mit den Bezeichnungen in der descr_names.txt übereinstimmen):
{Jerome}Jerome
{Claude}Claude
{Guillaume}Guillaume
{Montfort}Montfort
{Plantagenet}Plantagenet
{Marie}Marie
{Julie}Julie
2.6
Öffnet descr_offmap_models.txt mit Notepad. In dieser Datei werden die .cas-Models der Fraktionen definiert, die später auf der Strategiekarte erscheinen. Auch hier muss man erneut den Frankreich-Eintrag kopieren und in Anjou umwandeln.
faction anjou
{
large data/models_off_map/bireme_OFF_MAP.CAS 100 0
medium data/models_off_map/bireme_OFF_MAP.CAS 100 0
small data/models_off_map/bireme_OFF_MAP.CAS 100 0
}
2.7
Öffnet descr_sm_factions.txt mit Notepad. Diese Datei ist sehr wichtig. Hier richten wir unsere Fraktion sozusagen ein. Kopiert auch hier den Eintrag für Frankreich.
Weil wir uns nach wie vor im "Gerüst"-Teil des Tutorials befinden, ändern wie hier vorderhand nur die für das Funktionieren notwendigen Zeilen. Im Verfeinerungs-Teil wird sich das noch stärker ändern. Wir verändern die Einträge unter faction, primary color (hier kann man der Fraktion die Hauptfarbe verpassen, welche später auf der Minimap und der Stratmap erscheinen wird) sowie secondary color (das ist die Farbe, die auf der Minimap die von der Fraktion besetzten Gebiete umrahmt). Ebenfalls verändert wird der Eintrag hinter custom_battle_availability, und zwar von yes zu no. Dies deshalb, weil auf diese Weise neu erschaffene Fraktionen nicht für Einzelschlachten benutzt werden können, sondern nur auf der Kampagnenkarte.
Unter culture und religion könnte man der Fraktion einem anderen Kulturtyp und einer anderen Religion zuordnen. Weil Anjou aber kulturell nicht von Frankreich abweicht, machen wir das nicht.
faction anjou
culture northern_european
religion catholic
symbol models_strat/symbol_france.CAS
rebel_symbol models_strat/symbol_rebels.CAS
primary_colour red 0, green 255, blue 255
secondary_colour red 103, green 59, blue 21
loading_logo loading_screen/symbols/symbol128_france.tga
standard_index 10
logo_index FACTION_LOGO_FRANCE
small_logo_index SMALL_FACTION_LOGO_FRANCE
triumph_value 5
intro_movie faction/major_intro.bik
victory_movie faction/france_win.bik
defeat_movie faction/france_lose.bik
death_movie faction/france_lose.bik
custom_battle_availability no
can_sap no
prefers_naval_invasions no
can_have_princess yes
has_family_tree yes
Alles anzeigen
Auch auf diese Datei und weitere Veränderungen darin werden wir im Verfeinerungs-Teil des Tutorials noch ausführlicher zu sprechen kommen.
Fortsetzung im 2. Teil