Jump to content
Sign in to follow this  
Tarlox

Problem with Surface and Clutter Cfg

Recommended Posts

 

Hey guys,

 

I am currently making a map and I run into trouble.

Whatever I am trying to do in my cfgSurface.hpp and my cfgClutter.hpp doesnt work. I could really use some help here!

 

Layers.cfg:

class Layers
{
  class texture_grass
  {
    texture="Map1_Saves\data\middle_mco.paa";
    material="Map1_Saves\data\texture_grass.rvmat";
  };

  class texture_gravel
  {
    texture = "Map1_Saves\data\middle_mco.paa";
    material="Map1_Saves\data\texture_gravel.rvmat";
  };

  class texture_rock
  {
    texture = "Map1_Saves\data\middle_mco.paa";
    material="Map1_Saves\data\texture_rock.rvmat";
  };
  class texture_forest
  {
    texture = "Map1_Saves\data\middle_mco.paa";
    material="Map1_Saves\data\texture_forest.rvmat";
  };
  class texture_sand
  {
    texture = "Map1_Saves\data\middle_mco.paa";
    material="Map1_Saves\data\texture_desert.rvmat";
  };
  class texture_field
  {
    texture = "Map1_Saves\data\middle_mco.paa";
    material="Map1_Saves\data\texture_field.rvmat";
  };
};

class Legend
{
  picture="Map1_Saves\source\mapLegend.png";
  class Colors
  {
    texture_grass[]={{0,255,0}};
    texture_gravel[]={{0,0,0}};
    texture_rock[]={{255,255,0}};
	texture_forest[]={{255,0,255}};
	texture_sand[]={{0,0,255}};
	texture_field[]={{255,0,0}};
  }
};

cfgSurface.hpp:

class CfgSurfaces 
{
	class Default{};
	class Water{};
	class texture_grass_Surface : Default
	{	
		 access = 2;
		 files = "texture_grass*";
		 rough = 0.1;
		 dust = 0.35;
		 soundEnviron = "grass";
		 character = "texture_grass_Character";
		 soundHit = "soft_ground";
		 maxSpeedCoef = 0.9;
	};
	class texture_gravel_Surface : Default
	{	
		 access = 2;
		 files = "texture_gravel*";
		 rough = 0.05;
		 dust = 0.45;
		 soundEnviron = "gravel";
		 character = "Empty";	
		 soundHit = "soft_ground";
		 maxSpeedCoef = 1;
	};
	class texture_rock_Surface : Default
	{	
		 access = 2;
		 files = "texture_rock*";
		 rough = 0.1;
		 dust = 0.05;
		 soundEnviron = "rock";
		 character = "Empty";	
		 soundHit = "hard_ground";
		 maxSpeedCoef = 1;
	};
	class texture_forest_Surface : Default
	{	
		 access = 2;
		 files = "texture_forest*";
		 rough = 0.1;
		 dust = 0.25;
		 soundEnviron = "grass";
		 character = "Empty";	
		 soundHit = "soft_ground";
		 maxSpeedCoef = 0.8
	};
	class texture_desert_Surface : Default
	{	
		 access = 2;
		 files = "texture_desert*";
		 rough = 0.15;
		 dust = 0.75;
		 soundEnviron = "sand";
		 character = "Empty";	
		 soundHit = "soft_ground";
		 maxSpeedCoef = 0.5
	};
	class texture_field_Surface : Default
	{	
		 access = 2;
		 files = "texture_field*";
		 rough = 0.15;
		 dust = 0.45;
		 soundEnviron = "dirt";
		 character = "Empty";	
		 soundHit = "soft_ground";
		 maxSpeedCoef = 0.8
	};
};

class CfgSurfaceCharacters
{
	class texture_grass_Character
  	{
			probability[]={0.99};
			names[]={"texture_grass_clutter"};
  	};
};

cfgClutter.hpp

class Clutter	
{
	class texture_grass_clutter: DefaultClutter
	{
		model = "A3\plants_f\Clutter\c_StrGrassGreen_group.p3d";
		affectedByWind = 0.6;
		swLighting = "true";
		scaleMin = 0.7;
		scaleMax = 1.0;
	};
 };

config.cpp:

#define _ARMA_

class CfgPatches
{
	class Map1_Saves
	{
		  units[] = {"Map1_Saves"};
		  weapons[] = {};
		  requiredVersion = 1.0;
		  version = "21/04/2017";
		  fileName = "Map1_Saves.pbo";
		  author = "Jannis";
	};
};
class CfgWorlds
{
	class CAWorld;
	class Altis: CAWorld
	{
		class Grid;
		class DefaultClutter;
	};
	class Map1_Saves: Altis
	{
		cutscenes[] = {};
		description = "Map1_Saves";
		worldName = "Map1_Saves\Map1_Saves.wrp";
		startTime = "11:00";
		startDate = "05/03/2001";
		startWeather = 0.2;
		startFog = 0.0;
		forecastWeather = 0.6;
		forecastFog = 0.0;
		centerPosition[] = {2560,2560,500};
		seagullPos[] = {2560,2560,500};
		longitude = 65;
		latitude = -34;
		elevationOffset = 2000;
		envTexture = "A3\Data_f\env_land_ca.tga";
		minTreesInForestSquare = 2;
		minRocksInRockSquare = 2;
		newRoadsShape = "\Map1_Saves\data\roads\roads.shp";
		ilsPosition[] = {1024,1024};
		ilsDirection[] = {0.5075,0.08,-0.8616};
		ilsTaxiIn[] = {};
		ilsTaxiOff[] = {};
		drawTaxiway = 0;
		class SecondaryAirports {};
		class Sea
		{
			seaTexture = "a3\data_f\seatexture_co.paa";
			seaMaterial = "#water";
			shoreMaterial = "#shore";
			shoreFoamMaterial = "#shorefoam";
			shoreWetMaterial = "#shorewet";
			WaterMapScale = 20;
			WaterGrid = 50;
			MaxTide = 0;
			MaxWave = 0;
			SeaWaveXScale = "2.0/50";
			SeaWaveZScale = "1.0/50";
			SeaWaveHScale = 2.0;
			SeaWaveXDuration = 5000;
			SeaWaveZDuration = 10000;
		};
		class Grid: Grid
		{
			offsetX = 0;
			offsetY = 5120;
			class Zoom1
			{
				zoomMax = 0.15;
				format = "XY";
				formatX = "000";
				formatY = "000";
				stepX = 100;
				stepY = -100;
			};
			class Zoom2
			{
				zoomMax = 0.85;
				format = "XY";
				formatX = "00";
				formatY = "00";
				stepX = 1000;
				stepY = -1000;
			};
			class Zoom3
			{
				zoomMax = 1e+030.0;
				format = "XY";
				formatX = "0";
				formatY = "0";
				stepX = 10000;
				stepY = -10000;
			};
		};
		#include "cfgClutter.hpp"
		class Names
		{
			#include "Map1_Saves.hpp"
		};
	};
};

class CfgWorldList
{
	class Map1_Saves{};
};
class CfgMissions
{
	class Cutscenes
	{
 
	};
};

#include "cfgSurfaces.hpp"

Thanks for your help

 

Share this post


Link to post
Share on other sites
35 minutes ago, Tarlox said:

Whatever I am trying to do in my cfgSurface.hpp and my cfgClutter.hpp doesnt work. I could really use some help here!

 

Perhaps it might help if you tell us, what the error messages are or in which part it does not work (i.e. terrain builder, buldozer, packing to pbo, A3 etc)

Because checking everything of your configs is quite a lot to do, as the error could basicaly be anywhere.

 

From a short overview, here are some things i recognize (but i dont know if they have to do with whatever undefined error):

 texture="Map1_Saves\data\middle_mco.paa";

This is not necessary, usually it could (should?) look like this: texture = "";

 

surfaces and clutter look okay to me, so far.

probability[]={0.99};

I think this should add up to a total of "1", but i am not sure about it anymore.

 

The rest looks fine so far, from a first overview. As mentioned: Without telling what exactly is not working or some error-messages its quite hard to tell where the error might be.

 

 

Share this post


Link to post
Share on other sites

I would like to give you an error message but I dont get one. Nothing I wrote in the CfgSurface.hpp is working.

For example:

soundHit = "soft_ground";
maxSpeedCoef = 0.5

There is no effect on the map. It seems like the whole file isnt really implemented. Its not only the grass.

I did the usual include stuff so I dont know whether thats the problem.

 

Share this post


Link to post
Share on other sites

By not working you mean after creating a pbo and testing in A3? Or by loading it into terrainbuilder? Or in Buldozer?

You have to giver some more details about it, that would make it easier to find the error.

 

If you relate to a packed pbo and the problems are appearing ingame in A3, then i suppose you are packing your pbos with the vanilla Arma Tools?

Try using pboproject from mikero, as this tool finds nearly every error in your configs and points them out in the logfiles (unfortunaltelly Arma Tools does nothing of this and lets you make pbos out of crap)

There is a free version (not the newest version, but in this case it will do) here: https://dev.withsix.com/projects/mikero-pbodll/files

 

I suggest you try packing your pbo with this tool and come back with the errors from the logfiles (if you are not able to solve them yourself)

 

 

  • Like 1

Share this post


Link to post
Share on other sites

So I installed Pboproject and I got some errors.

Missed some ";" and I needed to put requiredAddons[] = {}; in the config.cpp.

Now the cfgSurfaces.hpp works fine but the cfgClutters.hpp doesnt.

There is no grass on my textures ingame and there are no errors anymore so I dont know what to do.

Only in the binlogs are some strange things I cant figure out.

https://pastebin.com/FKDLJKEh

Share this post


Link to post
Share on other sites

Mmmh, that brings us some steps further... now its about some different try and error steps (as i myself have no idea where the error might be).

I compared your configs with mine and have some small things you might want to try out, perhaps it works...

 

In your clutter.hpp your are using: swLighting = "true";

Mine has in all clutter: swLighting = 0; or swLighting = 1;

 

Also my cfgSurfaces has some more definitions in it (but that should not make any problems). Here for comparisson one example from my config:

D41GrassGreenGroup -> d41grassgreenclutter -> GrassGreen

Spoiler



class Clutter	
{	
	class D41GrassGreenGroup: DefaultClutter
			{
				model = "a3\plants_f\clutter\c_StrGrassGreen_group.p3d";
				affectedByWind = 0.6;
				swLighting = 1;
				scaleMin = 0.8;
				scaleMax = 1.4;
			};
};

...

class CfgSurfaces 
{
	class Default {};
	class Water{};
	class SurfRoadDirt;
	class GdtStratisBeach;
	class GdtStratisDryGrass;
	class GdtStratisGreenGrass;
	class GdtStratisRocky;
	class GdtStratisThistles;
	class GdtSoil;
	class GdtStratisConcrete;
	class GrassGreen: GdtStratisGreenGrass
	{
		access = 2;
		files = "d41_grass_green_*";
		character = "d41grassgreenclutter";
		soundEnviron = "grass_exp";
		soundHit = "soft_ground";
		rough = 0.08;
		maxSpeedCoef = 0.85;
		dust = 0.05;
		lucidity = 4;
		grassCover = 0.05;
		impact = "hitGroundSoft";
		surfaceFriction = 1.7;
	};
};

....
class CfgSurfaceCharacters
{	
	class d41grassgreenclutter
	{
		probability[] = {0.9,0.5,0.19,0.06,0.05,0.4};
		names[] = {"D41GrassGreen","D41Flowermix","D41FlowerCakile","D41FlowerLowYellow1","D41FlowerLowYellow2","D41GrassGreenGroup"};
	};
};

	

 


 

 

 

It might also be worth a try: i have all this in directly in my config.cpp. I did not include anything, but put it directly there (as this part is completed, works and doesnt need to be changed). Perhaps this might be worth a try, too.

Share this post


Link to post
Share on other sites

When you fixed all the errors etc, did you re export layers and clear P:\temp ?

 

Also what is this in your surfaces? never seen that before

access = 2;

Share this post


Link to post
Share on other sites

Well i took them basically  from the original config files of A3 as my reference. You can look at them:
A3\map_data\config.cpp

class CfgSurfaces
{
	class Default{};
	class Water{};
	class GdtStratisConcrete: Default
	{
		access = 2;
		files = "gdt_strconcrete_*";
		character = "Empty";
		soundEnviron = "concrete";
		soundHit = "concrete";
		rough = 0.05;
		maxSpeedCoef = 1;
		dust = 0.15;
		lucidity = 0.3;
		grassCover = 0.0;
		impact = "hitConcrete";
		maxClutterColoringCoef = 1.35;
	};

Or from the Bohemia-Wiki (also this one is rarely updated...): https://community.bistudio.com/wiki/CfgSurfaces_Config_Reference

 

Share this post


Link to post
Share on other sites
1 hour ago, Cosmo_D41 said:

In your clutter.hpp your are using: swLighting = "true";

Mine has in all clutter: swLighting = 0; or swLighting = 1;

 

1 hour ago, Cosmo_D41 said:

i have all this in directly in my config.cpp

 

1 hour ago, RoF said:

When you fixed all the errors etc, did you re export layers and clear P:\temp ?

Tried everything but nothing changed.

 

After trying all this I put the map on a server and suddenly it worked. I can see the grass now. 

But after going back into the normal Arma 3 3D Editor there is still no grass.

It seems that the config files are alright after fixing the errors with pboproject but why dont they work in the editor?

So I looked at Tanoa with and without my mod and there is also no grass.

Could it be that Arma causes the trouble? The server I played the map on was 32bit and my Arma 64bit.

Share this post


Link to post
Share on other sites

32 or 64 should usually not matter anyhow.

 

Could it be, that your profiles are different? E.g. the one you use on your server, and the other you use when you go in the editor? Perhaps try out your graphic settings wether grass is deactivated on your side. Because there is no normal explanation why this should work on a server, but not in the editor. (At least none that i see)

  • Like 1

Share this post


Link to post
Share on other sites

Thank you very very much! The pboproject thing was very helpful. Its 100% better than the Addon Builder and found my mistakes.

20 minutes ago, Cosmo_D41 said:

try out your graphic settings wether grass is deactivated on your side

That was the reason why I didn't see it after I fixed all the errors. That's on me. I am just stupid :D

Thank you again very much! 

  • Like 1

Share this post


Link to post
Share on other sites

Better stupid and it works, then the other way round :f:

Good luck with your project!

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
Sign in to follow this  

×