====== ArmA 1 Ground Clutter ======
[[https://www.pmctactical.org/forum/viewforum.php?f=42|ArmA 1 Forum]], [[:arma|ArmA 1 Home]], [[arma:config|ArmA 1 Config]], [[arma:tools|ArmA 1 Tools]], [[arma:file_formats|ArmA 1 File Formats]], [[arma:missions|ArmA 1 Missions]], [[arma:modeling|ArmA 1 3D Modeling]], [[arma:terrain|ArmA 1 Terrain]], [[arma:texturing|ArmA 1 Texturing]], [[arma:scripting|ArmA 1 Scripting]]
**ArmA 1** aka Armed Assault (ArmA)
Ground clutter is the small stones, grass, etc which is displayed on the ground around players position.
Ground clutter does not have geometry, bullets cannot stop on the clutter.
Clutter is defined in several files.
The layers.cfg is where you tell the engine what RGB value you wish to assign your clutter too it in the mask_lco.png file. Remember that each time you edit layers.cfg file, you need to import satellite texture/mask into Visitor 3 all over again.
Then the config.cpp is where what does most of the work, here you define the types of foliage as clutter class. It also tells the engine what class of clutter will lay on the texture you want. Then lastly it also allows you too specify how much clutter you want on a texture.
Example My layers.cfg:
class Layers
{
class Dirta
{
texture = "\data\Dirta_mco.paa";
material="\data\Dirta.rvmat";
};
class Dirtb
{
texture = "\data\Dirtb_mco.paa";
material="\data\Dirtb.rvmat";
};
class Dirtc
{
texture = "\data\Dirtc_mco.paa";
material="\data\Dirtc.rvmat";
};
class Dirtd
{
texture = "\data\Dirtd_mco.paa";
material="\data\Dirtd.rvmat";
};
class travajih
{
texture = "\data\travajih_mco.png";
material="\data\travajih.rvmat";
};
class mesto
{
texture = "\data\mesto_mco.paa";
material="\data\mesto.rvmat";
};
class lesjeh
{
texture = "\data\lesjeh_mco.png";
material="\data\lesjeh.rvmat";
};
class eastskalakam
{
texture = "\data\eastskalakam_mco.paa ";
material="\data\eastskalakam.rv mat";
};
class swamp
{
texture = "\data\oldjunglegrass_mco.p ng";
material="\data\oldjunglegrass. rvmat";
};
class desertrock
{
texture = "\data\desertrock_mco.paa";
material="\data\desertrock.rvma t";
};
class dgrass
{
texture = "\data\dgrass_mco.paa";
material="\data\dgrass.rvmat";
};
class sand
{
texture = "\data\sand_mco.paa";
material="\data\sand.rvmat";
};
};
class Legend
{
picture="\Source\mapLegend.png" ;
class Colors
{
/// color names should correspond to surface layer names
Dirta[] = {{ 220, 200, 120 }};
Dirtb[] = {{ 220, 180, 100 }};
Dirtc[] = {{ 210, 150, 80 }};
Dirtd[] = {{ 200, 130, 70 }};
travajih[] = {{ 14, 189, 26 }};
mesto[] = {{ 100, 100, 100 }};
lesjeh[] = {{ 100, 120, 0 }};
eastskalakam[] = {{ 150, 150, 150 }};
swamp[] = {{ 83, 83, 28 }};
desertrock[] = {{ 200, 150, 100 }};
dgrass[] = {{ 200, 200, 100 }};
sand[] = {{ 230, 230, 150 }};
};
};
You can see what classes I have defined and the their matching RGB value. Then below are several sections of my config.cpp.
Defining the objects I want as clutter
class clutter
{
class ForestFern : GrassGeneral
{
model = "ca\plants\clutter_forest_fern.p3d";
affectedByWind = 0.1;
scaleMin = 0.9;
scaleMax = 1.2;
};
Next I define the files in cfgsurfaces and assign it too a suface
class lesjeh : Default
{
access = ReadOnly;
files = "lesjeh_*";
rough = 0.1;
dust = 0.9;
soundEnviron = "grass";
character = "ausforestclutter";
};
Then lastly I define the cfgsurfacecharacters
class ausforestclutter
{
probability[] = { 0.2, 0.15, 0.1, 0.1, 0.019, 0.012, 0.011 };
names[] =
{
"ForestFern", "GrassLong", "GrassFlowers",
"SmallRoc ks", "MushroomsHorcak", "MushroomsPrasivka",
"Mushroo msMuchomurka"
};
};
In the last section you can see I have added quite a few objects to that ausforestclutter, and the probability tells the engine how much to lay. Once you understand how clutter works you can then have some fun experimenting with different textures colors etc.