So for example i started with changing the PIO female uniforms, simple enough since all PIO characters use the same two meshes (xac),
I have created copies of the original diffusion maps, changed the colour, exported them back as dds, removed the extension, packed as gz.
Files are located like this
extensions\MYMOD\assets\characters\terran\textures\char_pio_f_pilot_suit_01_diff (of course packed as .gz)
Now added a new materials to the material_library.xml, basically a copy of the originals, only changed the number of the material ID and the path of the diffuse map
Code: Select all
<add sel="/materiallibrary/collection[@name='terrancharacters']">
<material name="ter_p1_char_pio_f_pilot_suit_06" shader="P1_character.fx" blendmode="NONE" preview="none">
<properties>
<property type="Float" name="AnisoX" value="0.5" />
<property type="Float" name="AnisoY" value="0.5" />
<property type="BitMap" name="smooth_map" value="extensions\ego_dlc_terran\assets\characters\terran\textures\char_pio_f_pilot_suit_01_smooth" />
<property type="BitMap" name="metal_map" value="extensions\ego_dlc_terran\assets\characters\terran\textures\char_pio_f_pilot_suit_01_metal" />
<property type="BitMap" name="diffuse_map" value="extensions\MYMOD\assets\characters\terran\textures\char_pio_f_pilot_suit_01_diff" />
<property type="BitMap" name="normal_map" value="extensions\ego_dlc_terran\assets\characters\terran\textures\char_ter_f_pilot_suit_01_normal" />
<property type="Float" name="diffuseStr" value="1.0" />
<property type="Float" name="normalStr" value="1.0" />
<property type="Float" name="specularStr" value="1.0" />
<property type="Float" name="Smoothness" value="1.0" />
<property type="Float" name="Metallness" value="1.0" />
<property type="Float" name="environmentStr" value="1.0" />
</properties>
</material>
Files are located in the same way as in the dlc.
Now i made a diff patch to the character_macro.xml changing the path of the torso model like this:
Code: Select all
<replace sel="//macro[@name='character_pioneers_female_cau_civilian_01_macro']/properties/models/model[@type='torso']">
<model type="torso" selection="random">
<select index="1" weight="25" ref="extensions/MYMOD/assets/characters/terran/bodies/char_pio_f_pilot_suit_01" />
<select index="2" weight="25" ref="extensions/MYMOD/assets/characters/terran/bodies/char_pio_f_crew_uniform_01" />
</model>
</replace>
I start the game, i am located in a neighbor sector, a ship docked at a PIO ED, so i can get fresh instantiated characters. But most of them are simply invisible, some have heads but no bodies.
I have the assumption it has something to do with the path, and that for example the terran character_macro.xml is a merge, but the material_library.xml a diff patch. But i don't understand really how that might affect the way i need to patch over these files while my material diff patch nothing replaces. Usually, a merge can be patched by a diff in the root of the mod folder, but patching another patch might require following the same folder structure again inside of the mod folder. But i am not sure, it has worked this way in another case where i patched some dlc files, but here it doesn't. The character_macro is a merge, so it should be fine being in the root of the mod, where i already made some other changes to terran characters that do work.
I have also set the dlc as dependency.
What am i missing here?

Do i need to set this up as another mod since i already made some changes to the character_macro.xml? Or is there a specific order necessary inside of a diff patch that changes multiple different child elements?
And what exactly is this "Ptr" (pointer)?