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.


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