Jump to content

jens198

Member
  • Content Count

    331
  • Joined

  • Last visited

  • Medals

Posts posted by jens198


  1. Hi guys,

    the Ft. Benning is entering it's final stage. All firing ranges are completed. The only major thing left, is a small Mout training area in the south.

    I tried to make my own buildings ( i suck woth O2) and tried to retexure the sample BIS buidlings (sucked too). So my simple questions is: does anyone know if there are some kind of MOUT buildings out there (made by some other mod)?

    I have something in mind that is a) enterable and b)looking like MOUT, but I will take anything that is suitablefor a decent MOUT area.

    Any hints and help welcome.

    Jens


  2. jens198:

    • Ft. Benning - US Army Infantry School
      Represents the Malone Rifle Ranges. Forest, Roads, Buildings completed.
      Recently I started a custom building set for the local MOUT area.
    • Ft. Irwin - US Army National Training Center (NTC)
      Basics of map complete. Awaits road network, several MOUT sites.
    • Ft. Knox - US Army Armor School
      Basics of map complete. Currently not in work.


  3. Hi guys,

    I#m trying to follow Mondkalbs' steps through this (nicley done tutorial). I'm currently stuck with the UV-map chapter.

    According to MK tutorial (Step 4), I should "hit the „Simple Unwrap“-Button (simpleunwrap.jpg) and it'll look like this:"

    Unwrapped.jpg

    But instead I get something like this:

    o2_1.jpg

    I'm pretty sure I mixed something up while selecting the correct faces in the preceding step.

    Switch back to O2, again... select using the „Vertice-Selection tool“ in your „Top“-view the upper side of the whole Doorframe (Excluding the door!). Now switch to the „Touch Faces modus“ (touchfaces.jpg). Select the other side of your wallsegment (You've already selected the back of it, now the front has to be selected) while holding the "Ctrl"-key in the "3D"-View. If everything went well, it shoud look in the "Top"-view like this:
    @Mondkalb: Can you describe it a little bit more in detail which faces/vertices must be selected to get the same results as in you tutorial pictures. A little bit of background information what we are exactly doing here would also be very much appriciated.

    Thanks a lot in advance,

    Jens


  4. Hi folks,

    I have two types of road networks on my map. One with asf1*.p3d and the other one with asf3*.p3d.

    Every now and then I have this really annoying problem:

    I place a single terminator on the map and finish the four step wizard till I can see the terminator on the map. Under normal circumstances I can click on the terminator again to add new pieces or import a road network. But there's my problem. No matter what I try to do, I can't get the terminator selected again. Every time I click on this piece the wizard that starts new roadnetworks comes up instead of the "addnewpieceswizard".

    Anyone seen this?

    Jens


  5. Well, this time it wasn't the configs but my personal stupidity.

    Somehow the destination path in binPBO pointed to g:\arma2\addons and not to g:\arma2\@test\addons. That way I alway packed my new map in the regular arma2 addons directory while an old version of the map (with only one clutter) sit still in the @test-folder.

    And when I noticed that the island won't binarize correctly if I use OA-clutter (just like IceBreakr did).

    Oh well sometimes map-making for ArmA can be a painful experience...

    Jens


  6. Hi guys,

    once more, a problem with my clutter *sigh*.

    Currently I only got one clutter working: "j198_ntc_lgreenClutter"

    The lgreenClutter covers the whole map and it makes no difference what I define in the CfgSurfaceCharacters class, every time, the map is completly covered with the lgreenClutter.

    I already double and tripple checked the RGB values of the mask_lco.png with the values in the layers.cfg. Everything is fine.

    I'm so desperate ... :confused:

    Any help appreciated.

    Jens

    P.S. I updated my first post with the actual cfg.files.


  7. Hi folks,

    I'm updating one of my long time projects with textures from OA. Recently all the island's clutter worked without any problems. After I reworked my config files I don't get any clutter ingame. Maybe someone can take a look at my files. The simplification I only configured a single clutter "SAND" with two p3d-files on it "deadGrassBunch, GrassAutumnBrown".

    BTW, the new OA textures show up fine ingame.

    Jens

    layers.cfg

    class Layers
    {
     class j198_ntc_dgreen
     {
       texture="j198\j198_ntc\Data\j198_ntc_dgreen_tk_trava_mco.paa";
       material="j198\j198_ntc\Data\j198_ntc_dgreen_tk_trava.rvmat";
     };
     class j198_ntc_lgreen
     {
       texture="j198\j198_ntc\Data\j198_ntc_lgreen_tk_hlina_mco.paa";
       material="j198\j198_ntc\Data\j198_ntc_lgreen_tk_hlina.rvmat";
     };
     class j198_ntc_lbrown
     {
       texture="j198\j198_ntc\Data\j198_ntc_lbrown_tk_valouny_mco.paa";
       material="j198\j198_ntc\Data\j198_ntc_lbrown_tk_valouny.rvmat";
     };
     class j198_ntc_white
     {
       texture="j198\j198_ntc\Data\j198_ntc_white_tk_polopoust_mco.paa";
       material="j198\j198_ntc\Data\j198_ntc_white_tk_polopoust.rvmat";
     };
    };
    
    class Legend
    {
     picture="j198\j198_ntc\source\mapLegend.png";
    
       class Colors
     {
    
      		j198_ntc_dgreen[]={{88,107,103}};
     			j198_ntc_lgreen[]={{153,174,154}};
      		j198_ntc_white[]={{232,237,231}};
        		j198_ntc_lbrown[]={{208,204,167}};
     };
    };
    
    satelliteMap="sat_lco.png";
    layerMask="mask_lco.png";
    rvmatBinary=true;
    

    cfgSurfaces.hpp

    class CfgSurfaces 
    {
    class Default {};
    class j198_ntc_whiteSurface : Default
    {	
    	 files = "j198_ntc_white_*";
    	 rough = 0.1;
    	 dust = 0.1;
    	 soundEnviron = "sand";
    	 character = "j198_ntc_whiteClutter";
    };
    	class j198_ntc_lgreenSurface : Default
    {	
    	 files = "j198_ntc_lgreen_*";
    	 rough = 0.1;
    	 dust = 0.8;
    	 soundEnviron = "sand";
    	 character = "j198_ntc_lgreenClutter";
    };
    
    	class j198_ntc_dgreenSurface : Default
    {	
    	 files = "j198_ntc_dgreen_*";
    	 rough = 0.2;
    	 dust = 0.3;
    	 soundEnviron = "sand";
    	 character = "j198_ntc_dgreenClutter";
    };
    
    class j198_ntc_lbrownSurface : Default
    {	
    	 files = "j198_ntc_lbrown_*";
    	 rough = 0.1;
    	 dust = 0.1;
    	 soundEnviron = "sand";
    	 character = "j198_ntc_lbrownClutter";
    };
    };
    
    
    class CfgSurfaceCharacters
    {
    class j198_ntc_whiteClutter
     	{
    		probability[]={};
    		names[]={};
     	};
    
     	class j198_ntc_lgreenClutter
     	{
    		probability[]={0.5};
    		names[]={"j198_ntc_PlantsViolet"};
     	};
    
     class j198_ntc_dgreenClutter
     	{
    		probability[]={};
    		names[]={};
    
     	};
    
     	  	class j198_ntc_lbrownClutter
     	{
    		probability[]={};
    		names[]={};
     	};
    };
    
    
    
    //			probability[]={0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.02, 0.002};
    //			names[]={"j198_ntc_GrassDry", "j198_ntc_GrassDryLong", "j198_ntc_GrassGreen", "j198_ntc_GrassGreenLong", "j198_ntc_BrushHard", "j198_ntc_BrushSoft", "j198_ntc_Weed1", "j198_ntc_WeedThistle", "j198_ntc_prunus"};
    

    cfgClutter.hpp

    class j198_ntc_GrassDry: DefaultClutter
    {
    	model = "ca\plants_E\Clutter\c_GrassDesert_GroupSoft_EP1.p3d";
    	affectedByWind = 0.1;
    	swLighting = true;
    	scaleMin = 0.6;
    	scaleMax = 1.5;
    };
    
    class j198_ntc_GrassDryLong: DefaultClutter
    {
    	model = "ca\plants_E\Clutter\c_GrassDryLong_EP1.p3d";
    	affectedByWind = 0.1;
    	swLighting = true;
    	scaleMin = 0.6;
    	scaleMax = 1.5;
    };
    
    class j198_ntc_GrassGreen: DefaultClutter
    {
    	model = "ca\plants_E\Clutter\c_GrassGreen_EP1.p3d";
    	affectedByWind = 0.1;
    	swLighting = true;
    	scaleMin = 0.6;
    	scaleMax = 1.5;
    };
    
    class j198_ntc_GrassGreenLong: DefaultClutter
    {
    	model = "ca\plants_E\Clutter\c_GrassGreenLong_EP1.p3d";
    	affectedByWind = 0.1;
    	swLighting = true;
    	scaleMin = 0.6;
    	scaleMax = 1.5;
    };
    
    class j198_ntc_BrushHard: DefaultClutter
    {
    	model = "ca\plants_E\Clutter\c_Brush_Hard_EP1.p3d";
    	affectedByWind = 0.1;
    	swLighting = true;
    	scaleMin = 0.6;
    	scaleMax = 1.5;
    };
    
    class j198_ntc_BrushSoft: DefaultClutter
    {
    	model = "ca\plants_E\Clutter\c_Brush_Soft_EP1.p3d";
    	affectedByWind = 0.1;
    	swLighting = true;
    	scaleMin = 0.6;
    	scaleMax = 1.5;
    };
    
    class j198_ntc_PlantsViolet: DefaultClutter
    {
    	model = "ca\plants_E\Clutter\c_Plants_Violet_EP1.p3d";
    	affectedByWind = 0.1;
    	swLighting = true;
    	scaleMin = 0.6;
    	scaleMax = 1.5;
    };
    
    class j198_ntc_PlantsWhite: DefaultClutter
    {
    	model = "ca\plants_E\Clutter\c_Plants_White_EP1.p3d";
    	affectedByWind = 0.1;
    	swLighting = true;
    	scaleMin = 0.6;
    	scaleMax = 1.5;
    };
    
    class j198_ntc_Weed1: DefaultClutter
    {
    	model = "ca\plants_E\Clutter\c_Weed_1_EP1.p3d";
    	affectedByWind = 0.1;
    	swLighting = true;
    	scaleMin = 0.6;
    	scaleMax = 1.5;
    };
    
    class j198_ntc_WeedThistle: DefaultClutter
    {
    	model = "ca\plants_E\Clutter\c_Weed_Thistle_EP1.p3d";
    	affectedByWind = 0.1;
    	swLighting = true;
    	scaleMin = 0.6;
    	scaleMax = 1.5;
    };
    
    class j198_ntc_prunus: DefaultClutter
    {
    	model=ca\plants2\bush\b_prunus.p3d;
    	affectedByWind = 0.1;
    	swLighting = true;
    	scaleMin = 0.8;
    	scaleMax = 1.6;
    };
    
    class j198_ntc_canina2s: DefaultClutter
    {
    	model=ca\plants2\bush\b_canina2s.p3d;
    	affectedByWind = 0.1;
    	swLighting = true;
    	scaleMin = 0.3;
    	scaleMax = 0.7;
    };
    
    class j198_ntc_craet1: DefaultClutter
    {
    	model=ca\plants2\bush\b_craet1.p3d;
    	affectedByWind = 0.1;
    	swLighting = true;
    	scaleMin = 0.2;
    	scaleMax = 0.5;
    };
    
    class j198_ntc_betulaHumilis: DefaultClutter
    {
    	model=ca\plants2\bush\b_betulaHumilis.p3d;
    	affectedByWind = 0.1;
    	swLighting = true;
    	scaleMin = 0.2;
    	scaleMax = 0.8;	
    };
    
    class j198_ntc_salix2s: DefaultClutter
    {
    	model=ca\plants2\bush\b_salix2s.p3d;
    	affectedByWind = 0.1;
    	swLighting = true;
    	scaleMin = 0.2;
    	scaleMax = 0.9;	
    };
    
    
    //	
    //	

    config.cpp

    class CfgPatches
    {
    
    	class j198_ntc
    		{
    			units[] = {j198_ntc};
    			weapons[] = {};
    			requiredVersion = 1.03;
    			requiredAddons[] = {"Utes"};
    			version = "2010-05-28";
    			fileName = "j198_ntc.pbo";
    			author = "j198";
    			mail = "j198@googlemail.com";
    };
    };
    
    class CfgWorlds
    {
    		class CAWorld;
    		class Utes: CAWorld
    		{
    				class Grid;
    
    					 //clutterDist = 400;
    					 //clutterGrid = 1.25;
    					 noDetailDist = 40;
     					 fullDetailDist = 15;
    
    				class DefaultClutter
    				{
    //								    scaleMin = 0.9;
    //								    scaleMax = 1.4;
    				};
    		};
    
    
    class j198_ntc: Utes
    {
    			description = "Ft. Irwin - US Army National Training Center (NTC)";
    			worldName= "\j198\j198_ntc\j198_ntc.wrp";
    			pictureShot = "\j198\j198_ntc\data\j198_ntc_Picture_ca.paa";
    			centerPosition[] = {2720,2462,500};
    			seagullPos[] = {2720,2462,500};
    			longitude = 30; // positive is east, in degrees?
    			latitude = -45; // positive is south, in degrees?
    
    			drawTaxiway=false;
    			//			startTime = 10:30;
    			//		startDate = 01/05/1985;
    			//		startWeather = 0.1;
    			//		startFog = 0.0;
    			//		forecastWeather = 0.3;
    			//		forecastFog = 0.0;
    
    
    			class Clutter
    						{
    				#include "cfgClutter.hpp"
    						};
    			class Names
    						{
    							//#include "j198_ntc.hpp"
    						};
    			};
    };
    
    class CfgWorldList
    {
    			class j198_ntc {};
    };
    
    class CfgMissions
    {
    class Cutscenes
    {
    			class j198_ntcIntro
    			{
    			directory = "j198\j198_ntc\data\scenes\Intro.j198_ntc";
    			};
    };
    };
    
    
    #include "cfgSurfaces.hpp"
    


  8. Crap, I got the newest patch (1.52), the newest version of CBA, ACE, ACEX, ACE_SM, Combined Ops and I can't play it, because when I launch the game .exe, it loads up and then shows "Include file"x\cba\addons\main\script_macros_common.hpp not found" What the hell?

    I used the Combined Ops pack from the SIX updater. No other mods.

    I got the same message when I forgot to include the CBA folder in my shortcut.

    Jens


  9. everything shows in buldozer,i save it , bin it ,thats all fine, but when i put the pbo in addons . then i load game ,the map shows up ,when i go in to game arma crashes ...........help lol

    Please comment out these lines and try it again

    clutterDist=200;
    noDetailDist=40;
    fullDetailDist=15;
    

    If I set a clutterDist > 60 all my maps crash while loading ingame.

    Jens


  10. thanks for that, but is there one with middle textures in the cofigs ?:)

    every time i load my game with my map, i get this error saying .........ca\plants\clutter_grass_grass_general.p3d; needed ,any idea, ive looked in plants 2 and there is no sign of this p3d.

    OK, sorry.

    I took my actual config.cpp and renamed my project folder and map name inside the file accordingly. You might give them a try. For me, they work fine. I excluded the configuration of the clutter into two extra files.

    CONFIG.CPP

    class CfgPatches
    {
    
    	class YOUR_ISLAND
    		{
    			units[] = {YOUR_ISLAND};
    			weapons[] = {};
    			requiredVersion = 1.03;
    			requiredAddons[] = {"Utes"};
    			version = "2010-05-28";
    			fileName = "YOUR_ISLAND.pbo";
    			author = "YOUR_PROJECT_FOLDER";
    			mail = "YOUR_PROJECT_FOLDER@googlemail.com";
    };
    };
    
    class CfgWorlds
    {
    		class CAWorld;
    		class Utes: CAWorld
    		{
    				class Grid;
    
    					 //clutterDist = 100;
    
    				class DefaultClutter
    				{
    //								    scaleMin = 0.9;
    //								    scaleMax = 1.4;
    				};
    		};
    
    
    class YOUR_ISLAND: Utes
    {
    			description = "YOUR ISLAND";
    			worldName= "\YOUR_PROJECT_FOLDER\YOUR_ISLAND\YOUR_ISLAND.wrp";
    			pictureShot = "\YOUR_PROJECT_FOLDER\YOUR_ISLAND\data\SM_Picture_ca.paa";
    			centerPosition[] = {2720,2462,500};
    			seagullPos[] = {2720,2462,500};
    			longitude = 30; // positive is east, in degrees?
    			latitude = -45; // positive is south, in degrees?
    
    			drawTaxiway=false;
    			//			startTime = 10:30;
    			//		startDate = 01/05/1985;
    			//		startWeather = 0.1;
    			//		startFog = 0.0;
    			//		forecastWeather = 0.3;
    			//		forecastFog = 0.0;
    
    
    			class Clutter
    						{
    							#include "cfgClutter.hpp"
    						};
    			class Names
    						{
    							#include "YOUR_ISLAND.hpp"
    						};
    			};
    };
    
    class CfgWorldList
    {
    			class YOUR_ISLAND {};
    };
    
    class CfgMissions
    {
    class Cutscenes
    {
    			class YOUR_ISLANDIntro
    			{
    			directory = "YOUR_PROJECT_FOLDER\YOUR_ISLAND\data\scenes\Intro.YOUR_ISLAND";
    			};
    };
    };
    
    
    #include "cfgSurfaces.hpp"
    

    CFGSURFACES.HPP

    class CfgSurfaces 
    {
    class Default {};
    class SMgrassSurface : Default
    {	
    	 files = "sm_grass_*";
    	 rough = 0.1;
    	 dust = 0.1;
    	 soundEnviron = "grass";
    	 character = "sm_grassClutter";
    };
    	class SMsandSurface : Default
    {	
    	 files = "sm_sand_*";
    	 rough = 0.5;
    	 dust = 0.8;
    	 soundEnviron = "gravel";
    	 character = "sm_sandClutter";
    };
    
    	class SMforestSurface : Default
    {	
    	 files = "sm_forest_*";
    	 rough = 0.1;
    	 dust = 0.1;
    	 soundEnviron = "grass";
    	 character = "sm_forestClutter";
    };
    
    class SMgravelSurface : Default
    {	
    	 files = "sm_gravel_*";
    	 rough = 0.1;
    	 dust = 0.1;
    	 soundEnviron = "grass";
    	 character = "sm_gravelClutter";
    };
    };
    
    
    class CfgSurfaceCharacters
    {
    class sm_grassClutter
     	{
    		probability[]={0.9,0.8};
    		names[]={sm_GrassCrookedForest,sm_grasscrookedgreen};
     	};
    
     	class sm_sandClutter
     	{
    		probability[]={};
    		names[]={};
     	};
    
     	  	class sm_forestClutter
     	{
    		probability[]={0.2};
    		names[]={ForestFern};
     	};
    
     	  	class sm_gravelClutter
     	{
    		probability[]={};
    		names[]={};
     	};
    };

    CFGCLUTTER.HPP

    class sm_AutumnFlowers: DefaultClutter
    {
    	model=ca\plants2\clutter\c_autumn_flowers.p3d;
    	affectedByWind = 0.4;
    	swLighting = true;
    	scaleMin = 0.7;
    	scaleMax = 1.0;
    };
    
    class sm_GrassCrooked: DefaultClutter
    {
    	model=ca\plants2\clutter\c_GrassCrooked.p3d;
    	affectedByWind = 0.3;
    	swLighting = true;
    	scaleMin = 0.3;
    	scaleMax = 0.7;
    };
    
    class sm_GrassCrookedGreen: DefaultClutter
    {
    	model=ca\plants2\clutter\c_GrassCrookedGreen.p3d;
    	affectedByWind = 0.3;
    	swLighting = true;
    	scaleMin = 0.3;
    	scaleMax = 0.6;
    };
    
    class sm_WeedDead: DefaultClutter
    {
    	model=ca\plants2\clutter\c_WeedDead.p3d;
    	affectedByWind = 0.3;
    	swLighting = true;
    	scaleMin = 0.75;
    	scaleMax = 1.1;
    };
    
    class ForestFern: DefaultClutter
    {
    	model=ca\plants2\clutter\c_fern.p3d;
    	affectedByWind = 0.1;
    	swLighting = true;
    	scaleMin = 0.6;
    	scaleMax = 1.1;
    };
    
    class GrassDryLong: DefaultClutter
    {
    	model=ca\plants2\clutter\c_GrassDryLong.p3d;
    	affectedByWind = 0.1;
    	swLighting = true;
    	scaleMin = 0.6;
    	scaleMax = 1.1;
    };
    
    	class Picea: DefaultClutter
    {
    	model=ca\plants2\clutter\c_picea.p3d;
    	affectedByWind = 0.1;
    	swLighting = true;
    	scaleMin = 0.6;
    	scaleMax = 1.1;
    };
    
    class GrassTall: DefaultClutter
    {
    	model=ca\plants2\clutter\c_GrassTall.p3d;
    	affectedByWind = 0.1;
    	swLighting = true;
    	scaleMin = 0.6;
    	scaleMax = 1.1;
    };


  11. config.cpp of the BIS sample map.

    #define TEast 0
    #define TWest 1
    #define TGuerrila 2
    #define TCivilian 3
    #define TSideUnknown 4
    
    #define true 1
    #define false 0
    
    // type scope
    #define private 0
    #define protected 1
    #define public 2
    
    #define ReadAndWrite 0 //! any modifications enabled
    #define ReadAndCreate 1 //! only adding new class members is allowed
    #define ReadOnly 2 //! no modifications enabled
    #define ReadOnlyVerified 3 //! no modifications enabled, CRC test applied
    
    class CfgPatches
    {
    class SampleMap
    {
    	units[] = {SampleMap};
    	weapons[] = {};
    	requiredVersion = 0.10;
    	requiredAddons[] = {CAData,CABuildings,CAMisc,CAPlants,CARoads,CARocks};
    };
    };
    
    
    class DefaultLighting;
    class DefaultLighting_CA : DefaultLighting {};
    
    class CfgWorlds
    {
    
     class DefaultClutter
     {
       scaleMin = 0.9;
       scaleMax = 1.4;
     };
     class DefaultWorld;
     class CAWorld : DefaultWorld
     {
       class Grid {};
     };
    
     class SampleMap: CAWorld
    {
    	access = ReadOnlyVerified;
    	worldId=3;
    
    	cutscenes[] = {SampleMapIntro1};
    
    	description = "Sample Rahmadi Map";
    	icon="";
    	worldName=\ca\SampleMap\SampleMap.wrp;
    	pictureMap = "";
    	pictureShot = "";
    
    	plateFormat="ML$ - #####";
    	plateLetters="ABCDEGHIKLMNOPRSTVXZ";
    
    	longitude = -40; // positive is east
    	latitude = -40; // positive is south
    
    	// landRange is stored directly in WRP file
    
    	class Grid : Grid
    	{
    		offsetX = 0;
    		offsetY = -15360;
    
    		class Zoom1
    		{
    			zoomMax = 0.5;
    			format = "XY";
    			formatX = "Aa";
    			formatY = "00";
    			stepX = 200;
    			stepY = 200;
    		};
    		class Zoom2
    		{
    			zoomMax = 1e30;
    			format = "XY";
    			formatX = "A";
    			formatY = "0";
    			stepX = 2000;
    			stepY = 2000;
    		};
    	};
    
    	startTime = 8:30;
    	startDate = 01/05/1985;
    	startWeather = 0.1;
    	startFog = 0.0;
    	forecastWeather = 0.3;
    	forecastFog = 0.0;
    
    	seagullPos[] = {1272.842,150.000,14034.962};
    
    	//default center position
    	centerPosition[] = {2500,2500,300};
    
    	// landing place - airport
    	ilsPosition[] ={2545,3000};
    	ilsDirection[] ={0,0.08,1};
    	ilsTaxiIn[]= {2495,2725, 2495,2850,  2508,2860, 2508,3000, 2520,3010, 2545,3000};
    	ilsTaxiOff[]= {2545,2445,2520,2425,2495,2445,2495,2725};
    	drawTaxiway=false;
    
       class ReplaceObjects {};
    
       // sound sources
       class Sounds
       {
       	sounds[]={};
       };
       class Animation
       {
         vehicles[]={};
       }; // default - no film
    
    
       class Lighting : DefaultLighting {};
    
    
       clutterGrid = 1.11;//pred demem to bylo 1.5
       /// how far clutters are visible
       clutterDist = 55;
    
       noDetailDist = 40;
       /// where ground detail texture is fully visible (begin fading out)
       fullDetailDist = 5;
    
       minTreesInForestSquare = 3;
       minRocksInRockSquare = 4;
    
       class clutter
       {
    
         class GrassGeneral: DefaultClutter
         {
           model=ca\plants\clutter_grass_general.p3d;
           affectedByWind = 0.3;
           swLighting = true;        //relativeColor[]={0.8,0.8,0.8,0};
           //colorByGround=0.9;
           scaleMin = 0.75;
           scaleMax = 1.0;
         };
    
         class GrassFlowers: GrassGeneral
         {
           model=ca\plants\clutter_grass_flowers.p3d;
         };
    
         class GrassLong: GrassGeneral
         {
           model=ca\plants\clutter_grass_long.p3d;
           affectedByWind = 0.6;
           scaleMin = 0.60;
           scaleMax = 1.10;
         };
    
         class GrassSevenbeauty: GrassGeneral
         {
           model=ca\plants\clutter_grass_sevenbaeuty.p3d;
           affectedByWind = 0.2;
           scaleMin = 0.70;
           scaleMax = 1.10;
         };
    
         class GrassYellow: GrassGeneral
         {
           model=ca\plants\clutter_grass_yellow.p3d;
           affectedByWind = 0.2;
           scaleMin = 0.70;
           scaleMax = 1.10;
         };
    
         class GrassDesert: GrassGeneral
         {
           model=ca\plants\clutter_grass_desert.p3d;
         };
    
         class ForestFern: GrassGeneral
         {
           model=ca\plants\clutter_forest_fern.p3d;
           affectedByWind = 0.1;
           scaleMin = 0.90;
           scaleMax = 1.10;
         };
    
         class SmallRocks: GrassGeneral
         {
           model=ca\rocks\clutter_stone_small.p3d;
           affectedByWind = 0;
           scaleMin = 0.90;
           scaleMax = 1.10;
         };
    
         class FlowersColor: GrassGeneral
         {
           model=ca\plants\clutter_smetanka.p3d;
         };
    
         class FlowersWhite: GrassGeneral
         {
           model=ca\plants\clutter_white_flower.p3d;
         };
    
         class MushroomsHorcak: GrassGeneral
         {
           model=ca\plants\clutter_horcak.p3d;
           affectedByWind = 0;
           scaleMin = 0.85;
           scaleMax = 1.25;
         };
    
         class MushroomsPrasivka: MushroomsHorcak
         {
           model=ca\plants\clutter_prasivky.p3d;
         };
    
         class MushroomsBabka: MushroomsHorcak
         {
           model=ca\plants\clutter_babka.p3d;
         };
    
         class MushroomsMuchomurka: MushroomsHorcak
         {
           model=ca\plants\clutter_muchomurka.p3d;
         };
    
    
       };
    	class Subdivision
    	{
    		// fractal component of subdivision
    		// changes are smaller for smaller rectangles
    		class Fractal
    		{
    			// texture roughness factor
    			rougness = 5;
    			// max. value for squares containing road
    			maxRoad = 0.02;
    			// max. value for squares containing track
    			maxTrack = 0.50;
    			// max. coeficient depending on slope
    			maxSlopeFactor = 0.05;
    		};
    		// white noise component of subdivision
    		// change size is independent on rectangle size
    		class WhiteNoise
    		{
    			rougness = 2;
    			// max. value for squares containing road
    			maxRoad = 0.01;
    			// max. value for squares containing track
    			maxTrack = 0.05;
    			// max. coeficient depending on slope
    			maxSlopeFactor = 0.0025;
    		};
    
    		// do not divide surfaces that are under given limit
    		minY = -0.0;
    		// do not divide flat surfaces
    		minSlope = 0.02;
    	};
    
    	class Ambient
       {
         /*
    	  Layer cost and species probability use expressions.
    	  Variables which can be used inside of expressions:
           rain: rain intensity.
           night: 1 during night, 0 during day.
    
           hills: 0 at 150 ASL, 1 at 400 ASL.
           windy: 0 at 0 m/s, 1 at 20 m/s.
    
           trees: tree density.
           sea: distance to sea.
           houses: house density.
           meadow: meadow character.
           forest: 1 in the forest.
    
         Any values are continuous/interpolated in the range of 0 to 1.
         Values they are independent unless notes otherwise
         (meaning meadow and forest can be 1 at the same time).
    
         You can observe these values in real-time using:
         	diag_toggle "ambient"
         */
    
    	  class BigBirds
    	  {
    	    //Container radius:
    	    	//Species are normally spawned at the edges of the circle defined by this radius.
    	    	//One exception to this is the initial start of the simulation, where the whole
    	    	//circle will be filled.
    	    radius = 300;
    	    //Points allowed for this container:
    	    //Xbox: 1 * (1 - night) * (1 - sea)
    	    cost = "((1 + forest + trees) - ((2 * rain)) - houses) * (1 - night) * (1 - sea)";
     		  //Classname in Species corresponds to type name:
    	    class Species
    	    {
    	      class Hawk
    	      {
    	        probability = 0.2;
    	        cost = 1;
    	      };
    	    };
    	  };
    
    	  class Birds
    	  {
    	    radius = 170;
    	    //Xbox: (1 - night) * (2 + 8 * sea)
    	    cost = "(1 - night) * ((1 + (3 * sea)) - (2 * rain))";
    	    class Species
    	    {
    	      class Seagull
    	      {
    	        probability = 0.2;
    	        cost = 1;
    	      };
    	    };
    	  };
    
    	  class BigInsects
    	  {
    	    radius = 20;
    	    //Xbox: 1 * (1 - night) * (1 - rain) * (1 - sea)
    	    cost = "(5 - (2 * houses)) * (1 - night) * (1 - rain) * (1 - sea) * (1 - windy)";
    	    class Species
    	    {
    	      class DragonFly
    	      {
    	        probability = 0.6 - (meadow * 0.5) + (forest * 0.4);
    	        cost = 1;
    	      };
    	      class ButterFly
    	      {
    	        probability = 0.4 + (meadow * 0.5) - (forest * 0.4);
    	        cost = 1;
    	      };
    	    };
    	  };
    
    	  class BigInsectsAquatic
    	  {
    	  	radius = 20;
    	  	cost = "(3 * sea) * (1 - night) * (1 - rain) * (1 - windy)";
    	  	class Species
    	  	{
    	  		class DragonFly
    	  		{
    	  			probability = 1;
    	  			cost = 1;
    	  		};
    	  	};
    	  };
    
    	  //The wind is blowing various particles around:
    	  class WindClutter
    	  {
    	    radius = 10;
    	    //Xbox: (10 - 5 * rain) * (1 - sea) * (windy factor [0.2, 0.5])
    	    cost = "((20 - 5 * rain) * (3 * (windy factor [0.2, 0.5]))) * (1 - sea)";
    	    class Species
    	    {
    	      class FxWindGrass1 //Dark green grass.
    	      {
    	        probability = "0.4 - 0.2 * hills - 0.2 * trees";
    	        cost = 1;
    	      };
    	      class FxWindGrass2 //Dry grass.
    	      {
    	        probability = "0.4 - 0.2 * hills - 0.2 * trees";
    	        cost = 1;
    	      };
    	      class FxWindRock1 //Dust.
    	      {
    	        probability="0.4 * hills";
    	        cost = 1;
    	      };
    	      class FxWindLeaf1 //Green leaf.
    	      {
    	        probability = "0.2 * trees";
    	        cost = 1;
    	      };
    	      class FxWindLeaf2 //Dry leaf.
    	      {
    	        probability = "0.1 * trees + 0.2";
    	        cost = 1;
    	      };
    	      class FxWindLeaf3 //Green leaf with a dry spot.
    	      {
    	        probability = "0.1 * trees";
    	        cost = 1;
    	      };
    	    };
    	  };
    
    	  class NoWindClutter
    	  {
    	  	//Xbox: 10
    	    radius = 15;
    	    //Xbox: 1 * (1 - rain) * (1 - sea) * (1 - forest) * (1 - houses) * (1 - (windy factor [0.1, 0.2]))
    	    cost = "(20 * (windy factor [0.1, 0.2])) * meadow * (1 - rain) * (1 - sea) * (1 - forest) * (1 - houses)";
    	    class Species
    	    {
    	      class FxWindPollen1
    	      {
    	        probability = 1;
    	        cost = 1;
    	      };
    	    };
    	  };
    
    	  class SmallInsects
    	  {
    	    radius = 3;
    	    //Xbox: (9 - 5 * hills) * (1 - night) * (1 - rain) * (1 - sea) * (1 - windy)
    	    cost = "(12 - 8 * hills) * (1 - night) * (1 - rain) * (1 - sea) * (1 - windy)";
    	    class Species
    	    {
    	      class HouseFly
    	      {
    	        probability = "deadBody + (1 - deadBody) * (0.5 - forest * 0.1 - meadow * 0.2)";
    	        cost = 1;
    	      };
    	      class HoneyBee
    	      {
    	        probability = "(1 - deadBody) * (0.5 - forest * 0.1 + meadow * 0.2)";
    	        cost = 1;
    	      };
    	      class Mosquito
    	      {
    	        probability = "(1 - deadBody) * (0.2 * forest)";
    	        cost = 1;
    	      };
    	    };
    	  };
    
    	  class NightInsects
    	  {
    	    radius = 3;
    	    cost = "(9 - 8 * hills) * night * (1 - rain) * (1 - sea) * (1 - windy)";
    	    class Species
    	    {
    	      class Mosquito
    	      {
    	        probability = 1;
    	        cost = 1;
    	      };
    	    };
    	  };
    	};
    
       class Names
       {
    #include "SampleMap.hpp"
       };
     };
    };
    
    class CfgWorldList
    {
    class SampleMap {};
    };
    
    class CfgMissions
    {
     class Cutscenes
     {
       class SampleMapIntro1
       {
         directory = "ca\SampleMap\data\scenes\intro.SampleMap";
       };
     };
    };
    

    Another good place to start is the map tutorial here http://community.bistudio.com/wiki/ArmA_2_Terrain_Tutorial

    It has a Tutorial map as well: Config.cpp here:

    class CfgPatches
    {
    class TUT_SampleMap
    {
    	units[] = {TUT_SampleMap};
    	weapons[] = {};
    	requiredVersion = 1.03;
    	requiredAddons[] = {"Utes"};
    	version = "2009-9-1";
    	fileName = "TUT_SampleMap.pbo";
    	author = "SgtAce";
    	mail = "Sgt.Ace@web.de";
    };
    };
    class CfgWorlds
    {
    class CAWorld;
    class Utes: CAWorld
    {
    	class Grid;
    	class DefaultClutter;
    };
    class TUT_SampleMap: Utes
    {
    	description = "Tutorial Sample Map";
    	worldName= "\TUT\TUT_SampleMap\TUT_SampleMap.wrp";
    	pictureShot = "\TUT\TUT_SampleMap\data\SM_Picture_ca.paa";
    	centerPosition[] = {2720,2462,500};
    	seagullPos[] = {2720,2462,500};
    	longitude = 30; // positive is east, in degrees?
    	latitude = -45; // positive is south, in degrees?
    
    	class Clutter
    	{
    		#include "cfgClutter.hpp"
    	};
    	class Names
    	{
    		#include "TUT_SampleMap.hpp"
    	};
    };
    };
    
    class CfgWorldList
    {
    class TUT_SampleMap {};
    };
    
    class CfgMissions
    {
    class Cutscenes
    {
    	class TUT_SampleMapIntro
    	{
    	directory = "TUT\TUT_SampleMap\data\scenes\Intro.TUT_SampleMap";
    	};
    };
    };
    
    //SURFACES
    #include "cfgSurfaces.hpp"
    

    Let me know if you have any problems

    Jens


  12. Great :)

    I wonder how performance goes with 1.6 millions trees on a single map.

    In case you have placed too much trees you can reduce them by acting on maximum objects per pixel and placement probability on single colors.

    did you have an ingame screenshot of your results? will be very interesting!

    Well, performance is not a problem. I run ArmA2 on a QuadCore, GeForce 8800GT , Win7 and 4GB RAM. Viewdistance is 3700m. No stutter or anything.

    trees.jpg

    tree2.jpg

    Jens


  13. Ok, here I used the forest generator on a larger map (10km x 10km). I used a sat image from Google earth (reduced the number of colors down to 4) as mask-image for the generator. The area I choose has a lot of trees, so in the end Worldtool generated 1.6 mio single trees (wow).

    I had some problems importing the exp file in a single process. Importing files with more than 200.000 objects in a single row always crashed V3.

    So I split the file up into single files with about 200.000 trees each. That worked pretty good.

    Well, it took me about two hours for the whole process. The result is simply stunning.

    Bild1.jpg

    It would've taken me weeks to place this amount of objects by hand (basically impossible).

    Thanks for this great tool!!

    Jens

×