Jump to content
Rodigol

Can't figure out clutter

Recommended Posts

Hello everyone,
 

I've been watching tutorials on youtube, reading the Atlas and trying to apply the solutions to similar problems posted in this forum, but I still can't get clutter to appear on my map. The truth is, I don't think I quite understand the logic that makes cfgclutter, layers and cfgSurface interact. I suspect that the names in my code aren't correct, and hence cfgSurface.hpp doesn't "call" the layers in layers.cfg

 

Here's are the code:

 

layers.cfg

Spoiler

class Layers
{
	class gdt_dry_grass
	{
		texture = #(rgb,1,1,1)color(0.5,0.5,0.5,1,cdt);
		material = "Ranco3\data\gdt_dry_grass.rvmat";
	};
	class gdt_grass_green
	{
		texture = #(rgb,1,1,1)color(0.5,0.5,0.5,1,cdt);
		material = "Ranco3\data\gdt_grass_green.rvmat";
	};
	class gdt_beach
	{
		texture = #(rgb,1,1,1)color(0.5,0.5,0.5,1,cdt);
		material = "Ranco3\data\gdt_beach.rvmat";
	};
	class gdt_forest_pine
	{
		texture = #(rgb,1,1,1)color(0.5,0.5,0.5,1,cdt);
		material = "Ranco3\data\gdt_forest_pine.rvmat";
	};
	class gdt_marsh
	{
		texture = #(rgb,1,1,1)color(0.5,0.5,0.5,1,cdt);
		material = "Ranco3\data\gdt_marsh.rvmat";
	};
	class gdt_dirt
	{
		texture = #(rgb,1,1,1)color(0.5,0.5,0.5,1,cdt);
		material = "Ranco3\data\gdt_dirt.rvmat";
	};
	class gdt_mud
	{
		texture = #(rgb,1,1,1)color(0.5,0.5,0.5,1,cdt);
		material = "Ranco3\data\gdt_mud.rvmat";
	};
	class gdt_stony
	{
		texture = #(rgb,1,1,1)color(0.5,0.5,0.5,1,cdt);
		material = "Ranco3\data\gdt_stony.rvmat";
	};
};

class Legend
{
picture = "Ranco3\source\SurfaceMapLegend.png";
	class Colors
	{
		gdt_green_grass[] = {{255,0,0}};
		gdt_stony[] = {{0,0,127}};
		gdt_forest_pine[] = {{255,0,255}};
		gdt_dry_grass[] = {{0,255,0}};
		gdt_dirt[] = {{0,127,0}};
		gdt_mud[] = {{0,255,255}};
		gdt_marsh[] = {{127,0,0}};
		gdt_beach[] = {{255,255,0}};
	};
};

 

 

cfgClutter.hpp:

 

Spoiler

class Clutter	
{
   class Ranco3_BigFallenBranches_pine: DefaultClutter
	{
		model = "A3\Plants_F\Clutter\c_bigFallenBranches_pine.p3d";
		affectedByWind = 0.0;
		swLighting = "false";
		scaleMin = 0.3;
		scaleMax = 0.7;
	};
   class Ranco3_BigFallenBranches_pine02: DefaultClutter
	{
		model = "A3\Plants_F\Clutter\c_bigFallenBranches_pine02.p3d";
		affectedByWind = 0.0;
		swLighting = "false";
		scaleMin = 0.3;
		scaleMax = 0.7;
	};
   class Ranco3_BigFallenBranches_pine03: DefaultClutter
	{
		model = "A3\Plants_F\Clutter\c_bigFallenBranches_pine03.p3d";
		affectedByWind = 0.0;
		swLighting = "false";
		scaleMin = 0.3;
		scaleMax = 0.7;
	};
   class Ranco3_GrassGreenGroup: DefaultClutter
	{
		model = "A3\plants_f\Clutter\c_StrGrassGreen_group.p3d";
		affectedByWind = 0.6;
		swLighting = "true";
		scaleMin = 0.7;
		scaleMax = 1.0;
	};
   class Ranco3_GrassDry: DefaultClutter
	{
		model = "A3\plants_f\Clutter\c_StrGrassDry.p3d";
		affectedByWind = 0.5;
		swLighting = "true";
		scaleMin = 0.8;
		scaleMax = 1.2;
	};
   class Ranco3_GrassDryGroup: DefaultClutter
	{
		model = "A3\plants_f\Clutter\c_StrGrassDry_group.p3d";
		affectedByWind = 0.65;
		swLighting = "true";
		scaleMin = 0.65;
		scaleMax = 1.0;
	};
   class Ranco3_GrassDryMediumGroup: DefaultClutter
	{
		model = "A3\plants_f\Clutter\c_StrGrassDryMedium_group.p3d";
		affectedByWind = 0.7;
		swLighting = "true";
		scaleMin = 0.8;
		scaleMax = 1.0;
	};
   class Ranco3_WeedBrownTallGroup: DefaultClutter
	{
		model = "A3\plants_f\Clutter\c_StrWeedBrownTall_group.p3d";
		affectedByWind = 0.3;
		swLighting = "true";
		scaleMin = 0.9;
		scaleMax = 1.25;
	};
   class Ranco3_WeedGreenTall: DefaultClutter
	{
		model = "A3\plants_f\Clutter\c_StrWeedGreenTall.p3d";
		affectedByWind = 0.3;
		swLighting = "true";
		scaleMin = 0.8;
		scaleMax = 1.2;
	};
   class Ranco3_PlantMullein: DefaultClutter
	{
		model = "A3\plants_f\Clutter\c_StrPlantMullein.p3d";
		affectedByWind = 0.35;
		swLighting = "true";
		scaleMin = 0.7;
		scaleMax = 1.15;
	};
   class Ranco3_ThistleYellowShrub: DefaultClutter
	{
		model = "A3\plants_f\Clutter\c_StrThistleYellowShrub.p3d";
		affectedByWind = 0.2;
		swLighting = "true";
		scaleMin = 0.7;
		scaleMax = 1.1;
	};
   class Ranco3_ThistleThornGreen: DefaultClutter
	{
		model = "A3\plants_f\Clutter\c_Thistle_Thorn_Green.p3d";
		affectedByWind = 0.3;
		swLighting = "false";
		scaleMin = 0.3;
		scaleMax = 1.0;
	};
   class Ranco3_ThistleThornGreenSmall: DefaultClutter
	{
		model = "A3\plants_f\Clutter\c_Thistle_Thorn_Green.p3d";
		affectedByWind = 0.25;
		swLighting = "false";
		scaleMin = 0.4;
		scaleMax = 0.7;
	};
   class Ranco3_FlowerLowYellow2: DefaultClutter
	{
		model = "A3\plants_f\Clutter\c_Flower_Low_Yellow2.p3d";
		affectedByWind = 0.4;
		swLighting = "true";
		scaleMin = 0.6;
		scaleMax = 1.0;
	};

 };

 

 

cfgSurfaces.hpp:
 

Spoiler

class CfgSurfaces 
{
	class Default {};
	class Ranco3_dirt_Surface : Default
	{	
		 files = "Ranco3_dirt_*";
		 rough = 0.09;
		 maxSpeedCoef = 0.9;
		 dust = 0.5;
		 soundEnviron = "dirt";
		 character = "Empty";
		 soundHit = "soft_ground";
		 lucidity = 1;
		 grassCover = 0.03;
	};
	class Ranco3_dry_grass_Surface : Default
	{	
		 files = "Ranco3_dry_grass_*";
		 rough = 0.08;
		 maxSpeedCoef = 0.9;
		 dust = 0.75;
		 soundEnviron = "drygrass";
		 character = "Ranco3_dry_grass_Character";
		 soundHit = "soft_ground";
		 lucidity = 2;
		 grassCover = 0.1;
	};
	class Ranco3_forest_pine_Surface : Default
	{	
		 files = "gdt_forest_pine_*";
		 rough = 0.12;
		 maxSpeedCoef = 0.8;
		 dust = 0.4;
		 soundEnviron = "drygrass";
		 character = "Ranco3_forest_pine_Character";
		 soundHit = "soft_ground";
		 lucidity = 3.5;
		 grassCover = 0.04;
	};
	class gdt_green_grass_Surface : Default
	{	
		 files = "gdt_grass_green_*";
		 rough = 0.08;
		 maxSpeedCoef = 0.9;
		 dust = 0.15;
		 soundEnviron = "grass";
		 character = "gdt_green_grass_Character";
		 soundHit = "soft_ground";
		 lucidity = 4;
		 grassCover = 0.05;
	};
	class Ranco3_soil_Surface : Default
	{	
		 files = "Ranco3_soil_*";
		 rough = 0.09;
		 maxSpeedCoef = 0.9;
		 dust = 0.5;
		 soundEnviron = "dirt";
		 character = "Empty";
		 soundHit = "hard_ground";
		 lucidity = 1;
		 grassCover = 0.0;
	};
};

class CfgSurfaceCharacters
{
        class Ranco3_forest_pine_Character
	{
		probability[] = {0.05,0.012,0.01,0.1,0.05};
		names[] = {"Ranco3_BigFallenBranches_pine","Ranco3_BigFallenBranches_pine02","Ranco3_BigFallenBranches_pine03","Ranco3_GrassDryGroup","Ranco3_GrassGreenGroup"};
	};
	class gdt_green_grass_Character
  	{
		probability[] = {0.92,0.07};
		names[] = {"Ranco3_GrassGreenGroup","Ranco3_FlowerLowYellow2"};
  	};
	class Ranco3_dry_grass_Character
  	{
		probability[] = {0.21,0.35,0.21,0.09,0.06,0.02};
		names[] = {"Ranco3_GrassDryGroup","Ranco3_GrassDryMediumgroup","Ranco3_WeedBrownTallGroup","Ranco3_WeedGreenTall","Ranco3_ThistleYellowShrub","Ranco3_PlantMullein"};
  	};
	class gdt_forest_pine_Character
	{
		probability[] = {0.05,0.012,0.01,0.1,0.05};
		names[] = {"Ranco3_BigFallenBranches_pine","Ranco3_BigFallenBranches_pine02","Ranco3_BigFallenBranches_pine03","Ranco3_GrassDryGroup","Ranco3_GrassGreenGroup"};
	};
};

 


config.cpp:

Spoiler

#define _ARMA_

//Class config.bin{
class CfgPatches
{
 class Ranco3
 {
  units[] = {"Ranco3"};
  weapons[] = {};
  requiredVersion = 1.0;
  requiredaddons[]={"A3_Map_Stratis"};
  version = "25/01/2015";
  fileName = "Ranco3.pbo";
  author = "Rodigol";
 };
};
class CfgWorlds
{
 class CAWorld;
 class Stratis: CAWorld
 {
  class Grid;
  class DefaultClutter;
 };
 class Ranco3: Stratis
 {
  cutscenes[] = {};
  author = "Rodigol";
  description = "Cuenca del Lago Ranco";
  pictureMap = "Ranco3\data\gfx\Ranco2Sat1024.paa"; 
  worldName = "Ranco3\Ranco3.wrp";
  startTime = "11:00";
  startDate = "05/03/2001";
  startWeather = 0.2;
  startFog = 0.0;
  forecastWeather = 0.6;
  forecastFog = 0.0;
  centerPosition[] = {1024,1024,500};
  seagullPos[] = {1024,1024,500};
  longitude = -72;
  latitude = 41.7;
  elevationOffset = 5;
  envTexture = "A3\Data_f\env_land_ca.tga";
  minTreesInForestSquare = 2;
  minRocksInRockSquare = 2;
  newRoadsShape = "\Ranco3\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 "Ranco3.hpp"
		};
 };
};
class CfgWorldList
{
 class Ranco3{};
};
class CfgMissions
{
 class Cutscenes
 {
 
 };
};


//SURFACES
#include "cfgSurfaces.hpp"

So far, I haven't created any roads or towns, so those parts are empty or don't exist yet. I've only populated the map with forests. It binarizes without errors, both in Addon Builder and in Mikero's pboProject and have no trouble using it in Arma 3.

So what I'm doing wrong? :eh:

 

PS: Is it appropiate to revive a dormant thread if you have found a solution to the problem described in the OP? I discovered what was wrong with the ".bmp files appear blue-ish in Terrain Builder" on my own, but a thread where that problem was described has been inactive for more than a year, IIRC.

 

Share this post


Link to post
Share on other sites

This is whats going wrong,

 

	class Ranco3_dry_grass_Surface : Default
	{	
		files = "Ranco3_dry_grass_*";
	};
	class Ranco3_forest_pine_Surface : Default
	{	
		 files = "gdt_forest_pine_*";

It's looking for these files, but the first one doesn't exist and the 2nd one is a default name. If you are wanting to use custom clutter, you have to copy the textures (fromp:\a3\map_data) + rvmt to your data folder and tag / rename the files as well as inside the .rvmt. The first one "Ranco3_dry_grass" is correct, unlike "gdt_forest_pine" which is using a default name.

 

But you have also messed up the layers, as you are using default names, these should also be tagged. That and "Ranco3_dry_grass" doesn't even exist as you have "gdt_dry_grass" in your layers and in your data folder!

	class gdt_dry_grass
	{
		texture = #(rgb,1,1,1)color(0.5,0.5,0.5,1,cdt);
		material = "Ranco3\data\gdt_dry_grass.rvmat";
	};

It should be

	class ranco3_gdt_dry_grass
	{
		texture = #(rgb,1,1,1)color(0.5,0.5,0.5,1,cdt);
		material = "ranco3\data\ranco3_gdt_dry_grass.rvmat";
	};


	class Colors
	{
		ranco3_gdt_forest_pine[] = {{255,0,255}};
		ranco3_gdt_dry_grass[] = {{0,255,0}};
      etc

Then inside the ranco3_gdt_dry_grass.rvmat

class Stage1

	texture="ranco3\data\ranco3_gdt_dry_grass_nopx.paa";

class Stage2

	texture="ranco3\data\ranco3_gdt_dry_grass_co.paa";

Now you need to do that for all the textures and .rvmt.

 

 

Also DON'T use Addon Builder! It makes broken maps and doesn't do error reporting, stay well away from it. If you are getting errors in pboproject ask on here or on the official Arma Discord in my sig.

 

 

  • Like 2

Share this post


Link to post
Share on other sites

Thank you!

I followed your instructions, and after figuring out that the program was case sensitive, it started working beautifully.

  • Like 1

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

×