Jump to content

Terrain Height, Paint Terrain and Spline Placement scripts (Tutorials)


Recommended Posts

  • Wrinkley

I have updated and added some extra functions to the Terrain Height, Spline Placement and Paint Terrain scripts.

All these scripts together with installation instructions are available here

See Updated Spline, CSV, Height, Paint, Place, Scripts – Installation

Link to installation post





The spline can now be given  any name as long as it includes the name ' spline ' in any part of it i.e. road1_Spline or roadspline01 etc.

Problems will occur if the spline transform or the spline itself does not have the correct rotation, whether in the transform group of the spline or the spline itself . The rotation has to be set at 0,0,0 for any of the scripts to work correctly.

There are a couple of  ways of ensuring this, one is to set up your spline in the position you want and freeze transform only the rotation, the other is to select the S cv of the spline and delete it,  this brings S to the centre (rotating point) of the spline, then just use the E cv to create the rest of the spline so lessening the chance of inadvertently rotating the start of the spline.


Terrain Paint

This consists of two scripts

Terrain Paint Set Up

Terrain Paint

To use, create a spline in Giants Editor and align the spline along the terrain to whatever you are intending to paint., the spline does not have to be accurately aligned painting will only occur at the terrain height.

Then with the spline selected,  

 Select –Scripts-- Terrain Paint Set Up

This will create the User Attributes the necessary for the Terrain Paint script and will also print out the terrain layer textures in the Console log in the following format,

Texture No :93:Texture Name : shingle01

Texture No :94:Texture Name : shingle02

Texture No :95:Texture Name : shingle03

Texture No :96:Texture Name : ANIMALMUD

Texture No :97:Texture Name : AS

Texture No :98:Texture Name : ASPHALT

Texture No :99:Texture Name : CONCRETE

Texture No :100:Texture Name : DIRT

User Attributes panel for Terrain Paint



Set Centre Texture Width                           ---Width of the Centre Texture in metres

Set Edge Texture Width                                               ---Width of the Edge Textures in metres (Value set is applied to both left and right edges)

Set Edge Texture Left                                    ---Enter required left edge texture number from Consol log.

Set Centre Texture                                         ---Enter required Centre texture number from Console log

Set Edge Texture Right                                  ---Enter required Right edge texture number from Consol log.

Set Distance Between Textures                                ---How far apart the textures are painted along the spline (default 0.5)

 To Allow painting of just one edge and not the centre or the other edge set the Set Centre Texture to -1 and the non painting edge to -1 also

Once the User Attributes have been set then,

With the spline selected   Select ---Scripts--- Terrain Paint the textures will then be painted according to the User Attribute settings

A  print out in the GE console log will  detail these settings for reference

Spline name:

Texture Left:  no, name

Texture Centre:  no, name

Texture Right:   no, name

Centre Width :(m), Edge Width: (m), Texture Distance: (m)

If the Set Edge Width Texture is set to zero (0) only the following will be shown in the log

Spline Name,

Texture Centre no,

Centre Width

 Texture Distance

Should you require only the Centre Texture then Set Edge Width Texture to zero (0) and adjust your Centre Width settings accordingly

The image below shows the result with various texture settings using the above values, with a print out of the Texture No and Name showing in the console log on the right of the picture.


In the image above all the examples are based on a 16m Overall  width

of 8m (Road bed) + Left and Right edges of 4m


The following image shows how the Set Distance Between Textures setting can be used to create a pothole effect

The first settings were

Set Centre Width –16

Set Center Texture---83 (waterPuddle01)

which painted the water puddle texture over the whole 16m width.

Second settings were

Set Centre Texture Width            -- 16

Set Edge Texture Width                                -- 4

Set Edge Texture Left                    -- 91

Set Centre  Texture                        -- 97

Set Edge Texture Right                  --100

Set Distanced Between Textures -- 1.5

which then painted the DIRT/GRAVEL/GRAVELGRASS texture over the water puddle texture but because the texture distance was set to 1.1 it left holes in the textures so allowing the water puddle texture to show through.






Terrain Height

This script is an enhancement of the normal terrain height script which uses a spline to guide the terrain deformation it also allows  the setting of a distance value for Edge Width  (value applies to both sides) and Height / Smoothness  values  to be entered in the TERRAIN HEIGHT  attributes allowing independent control of the height and smoothing on either edges.

Any Edge Width/Height/Smoothness (L/R)  adjustment will have no effect on the  Centre Width setting whose height setting is dependent on the actual spline height or Set Spline Height settings

This also consists of two scripts

Terrain Height Set Up

Terrain Height

To use

Create the spline in Giants Editor and create/align the spline to whatever area you are intending to terraform.

Then with the spline selected,  

 Select –Scripts-- Terrain Height Set Up

In the User Attributes panel of Giants Editor the necessary User Attributes for the Terrain Height script will be created,as shown below.


Set Centre Width            --- Width of centre deformation in metres.

Set Spline Height             -- Height of the start deformation from the spline, can be a negative figure,

                                                      default is 0, ( actual spline position )

Edge Transformation         -- When selected allows independent setting of edge height/ depth, deselected only

                                                      Centre Width deformation

Set Edge  Width                   -- Width of edge deformation on both sides

Set Edge Height  Left          ---Height/Depth of Left Hand deformation

Set Edge Height Right         –-Height/Depth of Right Hand deformation

Set Edge Smooth Right         -- Number is used to factor the amount of smoothing -- lower number less smoothing,

                                                      Higher number greater smoothing (optimal 10)

Set Edge Smooth Left          -- As smoothing Left

Set the relevant User Attributes to your proposed settings and then.

With the Spline selected in GE,  Select---Scripts---Terrain Height

Once the script has been executed a print out will appear in the GE console log detailing these settings for reference

Spline name

Edge Transformation setting

Spline Height

Centre Width :     Edge Width:

Height Left :          Height Right :

 Smoothing Left:    Smoothing Right:

If the Edge Transformation is deselected only the following will be printed

Spline name

Spline Height

Centre Width

Smoothing is carried out much the same way as using the terrain sculpt tool in that it smooths the area down in height so further adjustment of the edge height to match terrain may be required .

Below is an image showing the terrain profiles with various settings (Spline Height set to 4m for clarity).



Once executed this terrain deformation cannot normally be undone, but provided you haven’t saved the map after executing the script the terrain can be reset back to previous levels by selecting the Reload i3d  icon in the toolbar( under the Create tab) then re adjusting script values as required.

If the map has been saved then the only way of redoing the terrain is to Copy/Paste your backup map_dem.png into the map data folder.


Further Example;


The above settings were used as a base for the road in the image below.

To get the desired effect required 4 executions of the script as smoothing was carried out by simply reducing the edge width and heights by one each time the script was executed and finally on the last execution (where Edge Widths and Heights equalled 1, -1 for the right hand edge) by increasing the smoothing factor to 5 for both left and right edges.





Spline Placement

With this script objects can be placed at various fixed, preset distances,  random distances  and locations away  from or along the spline depending on settings in the script.

The objects will be placed at terrain height along the spline (using their individual point of origin location) from the 'S' cv to the ‘E’ cv and aligned to the to the spline along their "Z" axis (unless random location selected).

e.g.  if you have a hedge that is 4m long and 1m wide ensure the longest section (4m)is  aligned to the 'Z' axis otherwise  rotate it in GE until is aligned along the 'Z' axis and freeze transform rotation also ensure that the point of origin (where the gizmo shows when object is selected) is at the correct point

For best results, open any objects  you intend to place in GE and adjust axis and  origin accordingly, when done , freeze transform all scale/rotation settings  (DO NOT freeze transform translations unless point of origin is relocated) on all the relevant objects.

This also applies to any transform groups containing objects that required to be placed using the transform group itself, select the transform group and Edit—Freeze Transformation—Transformation, Rotation and scale

This script first requires the execution of the Spline Placement Transform script which will create the correct Transform Group (splineObjects) and the relevant sub groups (objectsTo Place and placedObjects),and also create the relevant User Attributes in the User Attributes panel in Giants Editor as shown below


All that is then required is to add a spline (Create-Spline)  CUT/pasted into the splinePlacement transform group and add required objects to the objectsToPlace transform group and insert the relevant Attribute values.

Note. The splinePlacement transform group has to be selected when entering the User Attributes and also when the  Spline Placement script is run.

Script Parameters Explanation

Refer to image above

Set Object Distance                        -- - Sets a fixed  distance between objects along the spline in metres.

Use Distance Table                         ---When selected use the values in the Set Distance Table to set the object distance

      deselected uses distance value in Set Object Distance

Set Distance Table         

Sets a fixed distance between the objects in the objectsToPlace   transform  when  Use Distance Table  selected, number of settings must match number of items in the objectsToPlace transform and be separated by a comma.

The first object in the objectsToPlace transform will always be put at the start of the spline (distance  ‘0’), the entries in the Set Distance Table refer to the distance to the next object from the preceding one.

So in the following example;

A total of 3 objects in the objectsToPlace transform  1,2 and 3

Set Distance Table = 4,8,20   -- value in metres 

object    ‘1’  placed at ‘0’ by default so no reference in distanceTable

object    ‘2 ‘  placed 4m from object ‘1’

                object   ‘3’  placed 8m from object ‘2’

object    ‘1’   placed 20m from object ‘3’

and so on until the end of the spline.

A distance of ‘0’ will mean that two objects will be placed at the same location on the spline (e.g lamp post ,hedge )

Any incorrect entries in the Set Distance Table will result in a DISTANCE TABLE ERROR in the Console log.

Stay Upright                          ---- When selected all item remains upright, specifically for trees, poles, lights etc

                   deselected reverts to spline 'X'rotation and original object rotation at the placement


Random Scale                      -- -When selected allows random object scale between the parameters set by Scale Low,

                 Scale High values.If an item is already scaled then it has to be freeze transformed

                (Scale) for this to work correctly, deselected'  retains original size.

Set ScaleLow                                     --- value of the minimum random scale parameter, the value set applies to all

                              scale axis (x, y, z) at the same time

Set Scale High                                   --- value of the maximum random scale parameter, the value set applies to all

                              scale axis (x, y, z) at the same time

Random Y Rotation                         -- -When selected' objects randomly rotated on the 'Y'axis

                            deselected' Y’ axis rotation as original object

Random Order                                  -- -When selected allows a random order of objects along the spline

                              deselected retains the order set in the objectsToBePlaced transform group.

Random Object Distance              —When selected sets a random distance between objects along the spline

                                                            deselected distance set by Object Distance or Distance Table


Set Random Object Distance Seed     -- percentage factor used to calculate randomObjectDistance, higher number  greater variation in distance between objects

Random Object Placement                      -- When selected places the object away from the spline by the Random Placement Distance

                      deselected   objects placed along the spline.

Set Random Placement Distance      -- maximum displacement distance from the spline, displacement varies between 0 and number chosen

Set Fixed Distance                          -- When selected allows a set distance for objects to be placed either to the left or

             right of  the spline depending on value set in Distance Fixed.

             If selected and Distance Fixed value set this is also the distance around which

             Random Placement will start.

Set DistanceFixed                           -- Distance objects to be placed to the left or right of the spline in metres,

           positive number to the left negative to the right viewed from 'S' cv.

Note:  The spline is not moved so the set distance between the objects will increase depending on value set (like the spokes on a bicycle wheel from the hub to the rim). Objects will be placed at 90 degrees to the spline on the ‘Z’ axis at the relevant spline point.


Whilst this next section is not strictly necessary it can help in creating splines and accurate placement when using the Spline Placement script

Creating splines for use with this script.

Whilst this step is optional (depending on your spline layout) if used will help in creating a spline aligned to the terrain with a large number of cv’s ensuring accurate placement of any object.

As the script works by placing object(s) at their point of origin at set distances along or around the spline, aligned to the terrain height and spline rotation at that particular point, for accurate placement it means the spline must have a large number of cv’s (in this case suggest one every metre) to ensure correct alignment to the terrain.

Obviously this would be very time consuming, a quick way is to roughly create the spline path as required without paying much attention to height settings (in fact it can go underground without affecting the final created spline).

When satisfied with the spline layout  in GE, Select ---Scripts-  Spline CSV Creator Set Up,  set User Attributes as follows,

(b).Map Name – Insert  your Full map (root folder) name  (Note: Case sensitive)

(c.).CSV Distance to  ‘1’

With the spline selected Select -- Spline CSV Creator in the Scripts dropdown, the new spline will be created in the CSVdata  folder (one will be created if not already there) in your map root folder. A  Your Name spline_CSVdata.txt file will also be created in the same folder should you wish to use the spline data for creating a road/rail mesh.

Import it into your map by File—Import and navigate to where the CSvdata folder is located (map root folder)and select the spline, the spline will have its original name with the suffix _CSV.

It will then appear at the location of your original spline, aligned to the terrain at 1 metre intervals

In the following image the Attributes have been set with the Farm Name, in this case Manor Farm and CSV Distance to 1 and the new spline01_CSV  imported into GE. Console log also shows the relevant information regarding creation of the new items.

It also shows the original spline01 (as just a straight line) and the new spline01_CSV with the  cv’s aligned to the terrain at 1 metre intervals.

Note: the new spline translations will have been reset to zero.



Another method of setting objects away from the spline

The following method will only work satisfactorily if the spline hasn’t been Freeze Transformed – Translate.

Because the objects are placed on the ‘Z’ axis away from the spline, another way of placing objects at a set distance from the first spline and retaining the distance between the objects is to make a copy of the first spline and adjust the ‘Z’ transformation to the required -/+ distance, replacing the first spline in the splineTransform group with the new spline and executing the script, ideal for fences /hedges alongside roads etc.

Occasionally alterations to the ‘X’ axis may be required as well on the new spline to get the perfect alignment.

This trick can also be used for traffic/AI splines BUT the spline must be ‘freeze transformed Translate’ before use as a traffic /AI spline.




The images below shows examples of the various settings used in the Spline Placement attributes to achieve different results

Should you need to delete the objects in the placedObjects transform (eg. Resetting settings or just adding objects) then with the splinePlacement transform selected execute the Spline Placement Delete script.

NOTE: The Spline Placement Delete script will delete ALL objects in the placedObjects transform so if doing multiple runs of the Spline Placement script copy paste the placedObjects transform directly into the Scenegraph.

Note. The splinePlacement transform group has to be selected when entering the User Attributes and also when the  Spline Placement script is run otherwise warnings will appear in the Console log.

Using  a fence from the in game Farm Fence placeable.


In the following image the script has been run twice, the first time to place the pole upright and the second to align the rotation of the panel to the terrain, setting used are highlighted in red.



There is no need to delete the poles from the placedObjects transform before running the script for a second time the panels will be placed in the same transform. Note; object Distance is used to set the distance in this case

Some of the fence panels will need a slight adjustment to align correctly, which can easily be done by selecting the relevant panel and adjusting as necessary.

NOTE: When placing a Transform Group with objects inside it, first select the Transform Group and Freeze Transform --Translate/Scale/Rotation settings before adding it to the objectsToPlace transform.

Examples of other settings using the road mesh and splines image from the Blender CSV Road/Rail tutorial

Example Image




To create this particular placement I have first moved the m4m hedge point of origin to the centre of the hedge to allow for better placement on bends, an example of the difference after placement can be seen in inset 2 above.

To do this simply select the m4m hedge in the objectsToPlace transform group and set the ‘Z’ translation to -2 and Edit—Freeze Transform—Translation.


Creating a 4m fence section



Create new transform group

copy/paste a pole ( pole02) and duplicate twice so you have three poles

copy/paste a panel (panel01)and duplicate once

Transform Group should look like this







select second panel01 and translate 'Z' -2

select second pole02 and translate 'Z' -2

select thirdpole02 and translate 'Z' 2

with the first pole02 selected (pole02 Transform group)

Edit --Freeze Transformations --Translate

now all items in that transform group are aligned at zero with reference to the centre pole

to use copy/paste the pole02 transform group into the objectsToPlace transform

The 4mFence_Section now has the same point of origin as the hedge.

The poly count of this 4m fence section can also be reduced by deleting all the collisions for each item and replacing with a new collision made in the following way

 Create—Primitive –cube

Cut/paste cube into the 4mFence_Section transform and scale to fit when done Freeze Transform –Translate and Scale.

Set the Rigid body tab and in the shape tab select Cast Shadowmap,  Receive Shadowmap, Non Renderable and Distance Blending.

Whilst this only saves a poly count of 48 for each section it can make a large difference over a whole map for example a 400m fence will have a poly count of 80,800 with the new collision as opposed to the original poly count of 85,600


Now with the objectsToPlace transform set up as in the Example Image the Spline Placement script attributes can be set up as follows and executed by selecting Scripts—Spline Placement





To get the desired effect shown in the Example Image using the splinePlace_Left spline, the script was executed four times with various settings in the script and replacing the items in the objectsTo Place transform with new ones.  

The image below shows the various objectsToPlace transform entry’s and Spline Placement attributes settings.

The image below shows the various objectsToPlace transform entry’s and splinePlacement script settings for each execution/run of the script.



The lightPoleLarge01 object on the first run had to be rotated on the ‘Y’ axis by 90 degrees and Edit -Freeze Transform --Rotate to get the correct alignment for placing along the spline and matching the road layout.

On completion of the four runs of the script the placedObjects transform group will now have all the above items from the various executions in it, if you are happy with the result then this can then be cut pasted and renamed as another transform group.

The Distance Fixed value of -15m in the fourth run of the script means that objects will be placed that far away from the spline and random placement will be based on that figure so in order for the trees to not spawn on the road the  Random Placement Distance  was set to the lower figure of 10.  


If you execute the Spline Placement Delete script at any time with the splinePlacement  transform selected it will delete ALL items in your placedObjects transform group.

  • Thanks 1
Link to comment
Share on other sites

Just started playing about with the new paint by spline script. I'm trying to create the random puddle effect you did, but all I get is a band of my colour across the width every 5m (my distance is set to 5 meters. How did you get the more random effect you show?

Link to comment
Share on other sites

  • Wrinkley

It appears that the only way to do this at the moment is to ensure you are not following the terrrain sections i.e straight north/south and east/west. try creating a 'S'' bend splineand then paint the terrain.

In the meantime I will look at this problem further to see if it can be rectified

Link to comment
Share on other sites

Bit of a weird one again, used the spline placement to place several splines worth of power lines with zero issue. Doing a freshly placed spline again, the powerlines are all pointing off to one side. Spline is not rotated, and neither is the template object...?

Link to comment
Share on other sites

  • Wrinkley

By pointing off to one side do you mean they are at the correct point but at 90 degrees to the spline, if this is the case then the problem is likely to be incoorect rotation on your power pole, they must point along the 'Z'axis, rotate it in GE until is aligned along the 'Z' axis and freeze transform rotation

-----o------    power pole

        ^     direction of 'Z' axis

Link to comment
Share on other sites

they're not 90 no. The object is the same one that I used for other splines which worked perfectly.  I think I worked out that it's something to do with the direction of the spline in relation to the way the objects should go. Put the S and E at the opposite ends and it works fine. In the meantime, I've just manually rotated the gazillion that were planted wrong on the more complex splines I'd already done 🙂 haha. it's still saving me a considerable amount of time anyway.


Link to comment
Share on other sites

  • Wrinkley

 No problems here with the either Random Object Distance/Random Object Placement settings , though I've just noticed the descriptions in the tutorial above have not been updated to the new labels. Now corrected with some additional information.

For Random Object Distance to work it must first be selected then a Set Random Object Distance Seed value inserted , higher number greater variation in distance


Link to comment
Share on other sites

  • WrinkleysRule changed the title to Terrain Height, Paint Terrain and Spline Placement scripts (Tutorials)
  • 1 month later...
  • Wrinkley





sind bei mir nicht da zb. bei Geländehöhe

mein Fehler hatte nur das eine Script drin 

user attribute are not there with me e.g. at ground level my mistake had only one script in it



'my mistake had only one script in it'

Does this mean you no longer have a problem ?

  • Thanks 1
Link to comment
Share on other sites

17 hours ago, WrinkleysRule said:


Bedeutet das, dass Sie keine Probleme mehr haben?

Nein muss nur einiges probieren damit 

kann man die seiten streifen schmaler machen  als 1 m ?

Link to comment
Share on other sites

  • Wrinkley

Nein muss nur einiges probieren damit 

kann man die seiten streifen schmaler machen  als 1 m ?

Google Translate --No, you just have to try a few things so you can make the side strips narrower than 1 m?

The minimum edge width of 1m is set to to allow further blending ( if necessary) and to counteract the way GE paints a 2m terrain section, however if you wish to set a lower value then adjust the following line in the Terrain Paint R script

Line 108 ---   if edgeWidth >= 1 and i > offset then


Line 108 ---   if edgeWidth >= 0 and i > offset then

However because of the way GE paints the terrain the edges will not be smooth or as easily adjustable compared with the 1m distance.
For example set the Terrain Editing Brush to 0.25 (equivalent to a 0.5m distance) and try painting a curve and you will see that it misses sections.

  • Thanks 1
Link to comment
Share on other sites

6 hours ago, WrinkleysRule said:

Die minimale Kantenbreite von 1 m ist auf eingestellt, um eine weitere Überblendung (falls erforderlich) zu ermöglichen und der Art und Weise entgegenzuwirken, wie GE einen 2-m-Geländeabschnitt malt. Wenn Sie jedoch einen niedrigeren Wert festlegen möchten, passen Sie die folgende Zeile im Terrain Paint R-Skript an

Zeile 108 --- if edgeWidth >= 1 und i > offset then


Zeile 108 --- if edgeWidth >= 0 und i > offset then

Aufgrund der Art und Weise, wie GE das Gelände malt, sind die Kanten jedoch im Vergleich zum 1-Meter-Abstand nicht glatt oder so leicht einstellbar.
Stellen Sie beispielsweise den Geländebearbeitungspinsel auf 0,25 (entspricht einer Entfernung von 0,5 m) und versuchen Sie, eine Kurve zu malen, und Sie werden sehen, dass Abschnitte fehlen.


Danke Schön für die Info

Link to comment
Share on other sites

  • 3 weeks later...
  • 1 month later...
  • Wrinkley


With thanks to OldIronAddicts for raising a query which resulted in me finding this error.

The error is in the current Spline Placement script and it creates an extra rotation on objects placed along the spline.

I will update the main scripts in due course but in the meantime here is a quick fix that can be easily carried out

Open SplinePLacement lua in giants editor Script Editor        
insert the following lines at line 180

setTranslation(myId, x, y, z);
setRotation(myId, rx, ry, rz);

so the section looks like this

177    if placeId then -- place object
178        local myId = clone(getChildAt(objectsToPlace,iObject), false, true)
179        link(placedObjects,myId)
180       setTranslation(myId, x, y, z);
181       setRotation(myId, rx, ry, rz);

190         local mDirX, mDirY,   mDirZ = worldDirectionToLocal( mySpline, getSplineDirection (mySpline, splinePos) );
191         local mVecDx, mVecDy, mVecDz = crossProduct( mDirX, mDirY, mDirZ, 0, 1, 0);

scroll down to line 205
205      setRotation(myId, rx, ry, rz);    

comment it out by putting two minus signs in front of it

205     --setRotation(myId, rx, ry, rz);    
it will turn green when deactivated.

Save the script


Link to comment
Share on other sites

  • 3 months later...

Have you ever thought of writing scripts for writing Xml via GUI (placeables, map, store Items, fillTypes, fruitTypes and many others + integration with game folder/data, a list of custom scripts (Roltor.lua, more_grass.lua, etc)

But I've been thinking about it for a long time. Why didn't anyone do it?

This would greatly speed up the process of creating maps, there would be no need to spend a lot of time manually editing XML (test restarts of the game and bug fixes) directing efforts to objects and environment...

Link to comment
Share on other sites

Or maybe we won't invent "another bike", maybe someone did it for us. It seems to me that there is a special editor somewhere that can display xml exactly in this form. But finding for me is still a task... I was looking, I came across either paid projects or abandoned old software.


Link to comment
Share on other sites

  • Wrinkley

I have seen something similar to this way back in FS13 and it was pointed out then that it was quicker and easier to fill in the details directly into the xml given that you could easily copy/paste complete animation sections, plus notepad++ has a built in xml checker to check syntax etc

All you are doing is adding another input layer to do the same job, you will still need to edit and test any xml's created as any manual input is still prone to errors whether accidental or not.

Given the latest Blender i3d exporters are now creating xml's  and adding some data directly into them on export, maybe in the not to distant future they will be able to export xml's with all the details required.

As this is a topic for "Terrain Height, Paint Terrain and Spline Placement Scripts"  and not for general scripting matters I suggest you create a topic in the Scripting section should you wish further discussion/input on the subject


Link to comment
Share on other sites

  • 3 months later...
  • Wrinkley

The simplest way to get 5 sections with your particular request is (using the Paint Terrain By Spline Panel script) to first set the Centre WIdth to the overall width you want the outside Grass layer to cover for example 12m

Set the  Centre Texture to the required texture and select Paint

You then set the Centre width to the width of your Centre grass texture( i.e 4 m )and the Edge WIdth (i.e.2m) to the distance required for your gravel texture

with the required textures set select paint

This will give you

| -------------------------12m ---------------------------|

| 2m Grass | 2m Gravel | 4m Grass | 2m Gravel | 2m Grass|

When painting multiple textures you should always work from the outside in

Another variation with different Edge Textures

Starting with

 1. | 2m GrassGravel | 8m Grass | 2m Concrete |

working with only the centre 6m section

2. |2m Gravel | 4m Asphalt | 2m GrassMoss|

Giving you

| --------------------------------12m--------------------------------------|

| 2m GrassGravel | 2m Gravel | 4m Asphalt | 2m GrassMoss | 2m Concrete |

Edit: This method also works if you are using the Paint Foliage by Spline script.

  • Thanks 1
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now