Community Forum

Change materialId but not color

Forum Overview >> Farming Simulator 19

CategoryFarming Simulator 19
Created14.12.2021 17:59


Scott Corio (DumpsterDave) 14.12.2021 17:59
I am wanting to be able to change the material on a vehicle without changing the color. Currently, I can do both at the same time such as <designMaterialConfiguration name="Red Chrome" color="1 0 0" material="2"/>. If I omit the material attribute, it will set the color, but not the material. If I omit the color attribute, it does not update the material. I'm looking for a way to set the color and material seperately. Is this possible?

Rubens De Moraes (Rhubens) 15.12.2021 00:55
open the .i3d object with notepad++ and change the name of material in question. U will have a "new material"

Scott Corio (DumpsterDave) 15.12.2021 02:23
I'm looking to change the material that is applied via base or designMaterialConfiguration, not the material applied to the model.

Right now, I have something like follows:
<baseMaterialConfigurations useDefaultColors="false" title="body">
<material name="tractor_mat" shaderParameter="colorMat0"/>
<baseMaterialConfiguration name="White" color="1 1 1" material="16"/> <!--Painted Metal-->
<baseMaterialConfiguration name="Chrome" color="1 1 1" material="2"/>
<baseMaterialConfiguration name="Satin White" color="1 1 1" material="27"/>
<baseMaterialConfiguration name="Flat White" color="1 1 1" material="1"/>
</baseMaterialConfigurations>

The problem is, that once I combine all of the colors and materialID's, I have 128 "options" which exceeds the games limit of 64. What I want to do is set the material attribute seperately so that instead of say, 4 White, Blue, or Purple entries, I can have one of each, and then a separate selection for the paint finish. I tried the following:

<designConfigurations title="Paint Finish">
<designConfiguration name="Flat">
<material name="tractor_mat" shaderParameter="colorMat0" materialId="1"/>
<material name="tractor_mat" shaderParameter="colorMat1" materialId="1"/>
</designConfiguration>
<designConfiguration name="Satin">
<material name="tractor_mat" shaderParameter="colorMat0" materialId="27"/>
<material name="tractor_mat" shaderParameter="colorMat1" materialId="27"/>
</designConfiguration>
<designConfiguration name="Gloss">
<material name="tractor_mat" shaderParameter="colorMat0" materialId="16"/>
<material name="tractor_mat" shaderParameter="colorMat1" materialId="16"/>
</designConfiguration>
</designConfigurations>

But unless I add the 'color' attribute, it does not change the MaterialID of the associated "material".

Rubens De Moraes (Rhubens) 15.12.2021 03:38
in this case I dont know, sorry but I will put here my text to you campare

FIRST, U NEED TO DEFINE THE MATERIAL HERE
<baseMaterial>
<material name="Body_Paint" baseNode="0>6|20">
<shaderParameter name="colorMat1" value="1 0.558 0" material="0"/>
</material>
<material name="Material.003" baseNode="0>0|0|0|2">
<shaderParameter name="colorMat0" value="SHARED_WHITE1"/>
</material>
</baseMaterial>

HERE U CHANGE THE COLORS
<baseMaterialConfigurations price="0" useDefaultColors="true" defaultColorIndex="0">
<baseMaterialConfiguration name="Aço Escovado" color="SHARED_WHITE1" material="8" price="5000"/>
<material name="Body_Paint" shaderParameter="colorMat1" />
</baseMaterialConfigurations>

AND HERE U CAN PAINT A SECONDARY PART
<designMaterialConfigurations name="Rodas" price="2000" useDefaultColors="true" defaultColorIndex="0">
<designMaterialConfiguration name="Aço Escovado" color="SHARED_WHITE1" material="8" price="5000"/>
<designMaterialConfiguration name="Prata" color="SHARED_WHITE1" material="18" price="500"/>
<designMaterialConfiguration name="Cromado" color="SHARED_WHITE1" material="2" price="500"/>
<material name="Material.003" shaderParameter="colorMat0"/>
</designMaterialConfigurations>

Scott Corio (DumpsterDave) 15.12.2021 03:43
I don't think you understand what I'm asking. The material/model is already paintable. I can change the colors and material at the same time via the vehicle XML file. What I want to do in the XML file is change just the MaterialID (IE chrome, painted metal, perforated fabric, leather, etc) without altering the current color. I want to set the color and materialId, but via separate configuration options in the vehicle store.

Scott Lambert (Scooter) 16.12.2021 19:25
I've done this before by adding a "cube" that is color masked as your main material with a new material name. However in the color mask settings in the shader I have the material defined as I want, example 1 or 27...etc as you described. Then in the configuration option, I use <material node="0>2" refNode="0>18|1|3" />. The first node is your base material and the refNode is the new material.

Hope it helps.

Scott Corio (DumpsterDave) 17.12.2021 06:35
Thanks. That works. Only things that suck is A, I need an object for each material/sheen finish. B, I have to edit the i3d's which means the size of the mod will increase exponentially. I had been editing a bunch of the vehicles so that their colors could be adjusted and just linking to the original game i3d files since I wasn't editing the models. This kept the size of the mod small. Something I'll have to chew on, but at least this is one solution. Thanks for this.

Bd Bdbssb (bdbssb) 16.06.2023 14:24
I have done this for FS22. I have a tutorial video. I basically use base material config to select material, config sets to scroll the selection and then use design material config to change material, So basically you are able to have material selection and then a color. This allows much more combinations.

https://youtu.be/OXvBki6V9xA


Note: Log in to post. Create a new account here.