How to: make a track for Assetto Corsa

Hi guys I just joined to find out if there are any details about track making for Assetto Corsa yet, I've had a browse around and it seems the format will be the same/ similar to Netkar.?
Info is very thin on the ground, as are examples / tutorials, all I've manged to find are a few videos in the Italian language, which is not my native tongue, so doesn't explain very much.
Are there any technical breakdown of formats and specifications for the game anywhere, animations, gfx, effects etc? Any detailed workflows from 3DS Max to Netkar ?
I've been modding GP4 for some time now but grown tired of it's graphical limitations, so I've just started researching AC and NKP.
Assetto Corsa looks the real deal with full modding capabilities, so for me wins hands down over PCars, which is a total lockout in all departments.

Any advice would be appreciated.

btw, I have some of Melbourne, and a 80% complete Abu Dhabi, built from scratch by my own fair fingers, so I have plenty of material to work with.
 
Its also possible to snag the road data from things like Open Street Maps and convert that to something you can use to create roads.
I had actually gotten to that stage with BTB, I had imported a road near me using google maps data but didn't see how to progress past that stage. I think I still have the file so from here I'd just need to download (and learn) blender and turn it into a more developed 3d model?
 
What you can do (with using Bobs track builder) use google earth data. (KML/KMZ). So if you have GE, find the road you want, use the create path tool and draw a path line over the road, then save that, import it into BTB and just add the terrain and any objects you want. I made a few fictional tracks (but in real locations) for Rfactor and that always how i did it. Plus if you use BTB you wont have to mess about with uv mapping the road or terrain, it will all be done for you.

Its also possible to snag the road data from things like Open Street Maps and convert that to something you can use to create roads.

You can even do a mix, use BTB to map out just the road as it does the UV mapping and its REALLY easy tools make it a breeze to manipulate the track. Then export that, load it into Blender add all of your fancy objects, terrain and pit box/ start grid info, using that program then export that out for assetto

Hi, How do you load BTB track into Blender? I'm missing that part...

Never mind. its Solved:)
 
Last edited:
I had actually gotten to that stage with BTB, I had imported a road near me using google maps data but didn't see how to progress past that stage. I think I still have the file so from here I'd just need to download (and learn) blender and turn it into a more developed 3d model?
Pretty much yeah..
What i would do personally (and i actually am doing it as im designing a track as well)
  1. Create a path in GE and export it.
  2. Import that path into BTB. manipulate the track as needed using the btb tools (adjust heights, track widths, smooth out corners, adjust materials for the track like plaint tarmac or painted lines etc)
  3. Add a pitlane, add some terrain. It doesnt have to be mountains or anything, just something like 20-40 meters of grass either side of the track just so you have room to place things (of course you COULD model the entire terrain in btb if that would work out faster for you than learning it in blender and doing it)
  4. Add barriers, walls, kerbs, trees (if you dont have any hires trees) and any other small objects that are easier to place in btb than blender
  5. *This one is totally optional* using btb Xpacks, place some of the crappy houses and barns down on the map as basic place holders, which you can later swap out in blender for the real hires buildings you want to use.
  6. Essentially you have made an entire track in BTB.. Now Export/Save the track out of BTB, after converting the track to something blender can load, import the track.
  7. Replace any lowres btb models for hires models you have either made or downloaded from 3d model sites
  8. Add dummy/null objects for your start grid spaces and pit box spaces.
  9. Make sure all your parts are named correctly for the road and grass and such (i believe that is important)
  10. Export out to Assetto, create the extra files needed to go with the track, like the preview picture, the json file etc , then you should be good to go.

The only reason i say to do as much as you can in BTB rather than blender is because its waaay easier to tell a barrier or kurb to follow the edge of the track in BTB than it is in blender (or any other 3d app, i will be working in Lightwave 3d then exporting to blender) and then just use the actual modelling abilities of blender (or another app) to make your nice hires stuff. but you might as well get all the basic layout done the easiest way possible.

Also note, i havent finished yet, im still in the layout process, so the exact details of things like the json file and the naming of parts ,i have only skimmed over it so im not really sure whats involved in doing that. but the general creating geometry and getting it to blender is easy enough to understand, ive been doing that kind of thing for ages.

Hope some of that helps you out..
 
I'm a noob in track moding, I never worked with 3dmax or blender, only had some time with BTB!
The last 2 days i researched and managed to load my BTB track on to Assetto corsa. (BTB exporting to .x file - converting with 3dmax to 3dmax file - exporting with blender kn5 file) not been easy i must say! the main issues i found were:
-wrong track scale when importing to 3dmax or blender. ( also track is mirrored when importing)
-adding more than track grass and barrier objects to json file.
Still working around so any helpull info is welcome:)
 
The only reason i say to do as much as you can in BTB rather than blender is because its waaay easier to tell a barrier or kurb to follow the edge of the track in BTB than it is in blender (or any other 3d app, i will be working in Lightwave 3d then exporting to blender) and then just use the actual modelling abilities of blender (or another app) to make your nice hires stuff. but you might as well get all the basic layout done the easiest way possible.
Once you get used to it Blender's not too bad, but it's not so specifically set up for that. To make a barrier follow the track, first you trace the path with a Bezier curve (or whatever type curve), then apply a 'shrinkwrap' modifier targetting the track to stick it to the exact same elevation. Then on the barrier model, add an 'array to curve length' and 'curve' modifier and it'll repeat itself along the length of the curve.

And this works nicely for stuff that's not just matched to the track, too - I can lay out tire walls like this in a matter of minutes once I have the base object modeled. (orange line is the curve it's following)
ejGSdGa.gif
 
Doing those 3 things is exactly the same as i would do it in lightwave. which is way more work than doing it in BTB. When you draw the curve or spline in btb, thats it, the object is already there. so its a lot more time efficient to lay those minor objects in BTB than blender/other 3d app.. hence why i said it.
Yes you could model everything in a 3d modeller like blender or max, or lightwave, but doing some of the stuff is just so much easier in BTB that you may as well take full advantage of it.

Woot im about 50% the way done with my track im working on. Not a conversion either, its a scratch build. The DEATHRACE track on Terminal island (from the movie). I have the track and landscape all laid out and i have SOME objects already placed, but hand making textures and models is taking a little time... and i have several buildings to make (thank god there are no trees as well lol )

Once we get the mod tools, i intend to make the full set of deathrace cars as well (minus weapons of course)
 
Last edited:
People i have problem with textures. When i import my FBX file in blender, track is black. Also textures don't work in game. Look here. If someone have some free time, please look at it.

Here is my blender file: https://mega.co.nz/#!Sd4SxDzD!8zDI78oXGjNKaHDP9SqHtOjDDqE0KTcGBMXJisp1RWc

c95ce74fdd48.jpg


5f04483d48bd.jpg


845393728ec2.jpg


84c78d7cf0fb.jpg


a9f36ff72f4d.jpg

My settings.json

Code:
{
    "materials" : {
        "AsphaltMat" : {
            "shaderName" : "ksPerPixel",
            "alphaBlendMode" : "Opaque",
            "alphaTested" : false,
            "depthMode" : "DepthNormal",
            "properties" : {
                "someProperty" : {
                    "valueA": 0.4,
                    "valueB": [0.4, 0.4],
                    "valueC": [0.4, 0.4, 0.4],
                    "valueD": [0.4, 0.4, 0.4, 0.4]
                }
            },
            "textures" : {
                "txDiffuse" : {
                    "slot" : 0,
                    "textureName" : "AsphaltTex"
                    }
            }
        },
        "GrassMat" : {
            "shaderName" : "ksGrass",
            "alphaBlendmode" : "Opaque",
            "alphaTested" : true,
            "depthMode" : "DepthNormal",
            "properties" : {
                "someProperty" : {
                    "valueA": 0.4,
                    "valueB": [0.4, 0.4],
                    "valueC": [0.4, 0.4, 0.4],
                    "valueD": [0.4, 0.4, 0.4, 0.4]
                }
            },
            "textures" : {
                "txDiffuse" : {
                    "slot" : 0,
                    "textureName" : "GrassTex"
                }
            }
        }
    },
    "nodes":{
        "MyNode":{
            "lodIn": 0,
            "lodOut": 0,
            "layer":0,
            "castShadows": true,
            "isVisible": true,
            "isTransparent": false,
            "isRenderable": true
        }
    }
}
 
Last edited:
People i have problem with textures. When i import my FBX file in blender, track is black. Also textures don't work in game. Look here. If someone have some free time, please look at it.

Here is my blender file: https://mega.co.nz/#!Sd4SxDzD!8zDI78oXGjNKaHDP9SqHtOjDDqE0KTcGBMXJisp1RWc

c95ce74fdd48.jpg


5f04483d48bd.jpg


845393728ec2.jpg


84c78d7cf0fb.jpg


a9f36ff72f4d.jpg

My settings.json

Code:
{
    "materials" : {
        "AsphaltMat" : {
            "shaderName" : "ksPerPixel",
            "alphaBlendMode" : "Opaque",
            "alphaTested" : false,
            "depthMode" : "DepthNormal",
            "properties" : {
                "someProperty" : {
                    "valueA": 0.4,
                    "valueB": [0.4, 0.4],
                    "valueC": [0.4, 0.4, 0.4],
                    "valueD": [0.4, 0.4, 0.4, 0.4]
                }
            },
            "textures" : {
                "txDiffuse" : {
                    "slot" : 0,
                    "textureName" : "AsphaltTex"
                    }
            }
        },
        "GrassMat" : {
            "shaderName" : "ksGrass",
            "alphaBlendmode" : "Opaque",
            "alphaTested" : true,
            "depthMode" : "DepthNormal",
            "properties" : {
                "someProperty" : {
                    "valueA": 0.4,
                    "valueB": [0.4, 0.4],
                    "valueC": [0.4, 0.4, 0.4],
                    "valueD": [0.4, 0.4, 0.4, 0.4]
                }
            },
            "textures" : {
                "txDiffuse" : {
                    "slot" : 0,
                    "textureName" : "GrassTex"
                }
            }
        }
    },
    "nodes":{
        "MyNode":{
            "lodIn": 0,
            "lodOut": 0,
            "layer":0,
            "castShadows": true,
            "isVisible": true,
            "isTransparent": false,
            "isRenderable": true
        }
    }
}


Are you using textures out of .png files?
because i can't see your textures on the track when rendering in blender...

I also have problems with exporting my track.
We need a video tutorial on how to export from blender. in particular how to write the JSON file.
 
Last edited:
Are you using textures out of .png files?
because i can't see your textures on the track when rendering in blender...

I also have problems with exporting my track.
We need a video tutorial on how to export from blender. in particular how to write the JSON file.
Yes. I use DDS file format in 3DS Max and in blender. My JSON file looks ok, but textures still don't work. We need video like this one.


About how to convert BTB tracks in AC.
 
Yes. I use DDS file format in 3DS Max and in blender. My JSON file looks ok, but textures still don't work. We need video like this one.


About how to convert BTB tracks in AC.

i think your problem is related mainly with texture source or set up inside blender.

I would be happy if someone would make a tutorial video on how to setup textures and how to export materials from blender and respective JSON file setup.
 
People i have problem with textures. When i import my FBX file in blender, track is black. Also textures don't work in game. Look here. If someone have some free time, please look at it.

Here is my blender file: https://mega.co.nz/#!Sd4SxDzD!8zDI78oXGjNKaHDP9SqHtOjDDqE0KTcGBMXJisp1RWc

c95ce74fdd48.jpg


5f04483d48bd.jpg


845393728ec2.jpg


84c78d7cf0fb.jpg


a9f36ff72f4d.jpg



My settings.json

Code:
{
    "materials" : {
        "AsphaltMat" : {
            "shaderName" : "ksPerPixel",
            "alphaBlendMode" : "Opaque",
            "alphaTested" : false,
            "depthMode" : "DepthNormal",
            "properties" : {
                "someProperty" : {
                    "valueA": 0.4,
                    "valueB": [0.4, 0.4],
                    "valueC": [0.4, 0.4, 0.4],
                    "valueD": [0.4, 0.4, 0.4, 0.4]
                }
            },
            "textures" : {
                "txDiffuse" : {
                    "slot" : 0,
                    "textureName" : "AsphaltTex"
                    }
            }
        },
        "GrassMat" : {
            "shaderName" : "ksGrass",
            "alphaBlendmode" : "Opaque",
            "alphaTested" : true,
            "depthMode" : "DepthNormal",
            "properties" : {
                "someProperty" : {
                    "valueA": 0.4,
                    "valueB": [0.4, 0.4],
                    "valueC": [0.4, 0.4, 0.4],
                    "valueD": [0.4, 0.4, 0.4, 0.4]
                }
            },
            "textures" : {
                "txDiffuse" : {
                    "slot" : 0,
                    "textureName" : "GrassTex"
                }
            }
        }
    },
    "nodes":{
        "MyNode":{
            "lodIn": 0,
            "lodOut": 0,
            "layer":0,
            "castShadows": true,
            "isVisible": true,
            "isTransparent": false,
            "isRenderable": true
        }
    }
}
Your settings.json has the wrong properties, asphalt should look like this.
Code:
        "Pavement" : {
            "shaderName" : "ksPerPixel",
            "alphaBlendmode" : "Opaque",
            "alphaTested" : false,
            "depthMode" : "DepthNormal",
            "properties" : {
                "ksDiffuse" : {
                    "valueA": 0.4
                },
                "ksAmbient" : {
                    "valueA": 0.4
                },
                "ksSpecular" : {
                    "valueA": 0.1
                },
                "ksSpecularEXP" : {
                    "valueA": 10
                },
                "ksEmissive" : {
                    "valueA": 0
                },
                "ksAlphaRef" : {
                    "valueA": 0
                }
            },
            "textures" : {
                "txDiffuse" : {
                    "slot" : 0,
                    "textureName" : "Asphalt"
                }
            }
        }
The middle ksDiffuse, etc. is the part you need to fix.

Blender setup:
hrycNYd.jpg

(> object name > material > textureName at the top is where you get the names for the settings.json)
 
Your settings.json has the wrong properties, asphalt should look like this.
Code:
        "Pavement" : {
            "shaderName" : "ksPerPixel",
            "alphaBlendmode" : "Opaque",
            "alphaTested" : false,
            "depthMode" : "DepthNormal",
            "properties" : {
                "ksDiffuse" : {
                    "valueA": 0.4
                },
                "ksAmbient" : {
                    "valueA": 0.4
                },
                "ksSpecular" : {
                    "valueA": 0.1
                },
                "ksSpecularEXP" : {
                    "valueA": 10
                },
                "ksEmissive" : {
                    "valueA": 0
                },
                "ksAlphaRef" : {
                    "valueA": 0
                }
            },
            "textures" : {
                "txDiffuse" : {
                    "slot" : 0,
                    "textureName" : "Asphalt"
                }
            }
        }
The middle ksDiffuse, etc. is the part you need to fix.

Blender setup:
hrycNYd.jpg

(> object name > material > textureName at the top is where you get the names for the settings.json)

Now i have export error.

Traceback (most recent call last):
File "C:\Users\sti228\AppData\Roaming\Blender Foundation\Blender\2.70\scripts\addons\kn5exporter\__init__.py", line 95, in execute
settings = kn5Helper.readSettings(self.filepath)
File "C:\Users\sti228\AppData\Roaming\Blender Foundation\Blender\2.70\scripts\addons\kn5exporter\kn5Helper.py", line 77, in readSettings
return json.loads(open(settingsPath, "r").read())
File "C:\Program Files\Blender Foundation\Blender\2.70\python\lib\json\__init__.py", line 309, in loads
return _default_decoder.decode(s)
File "C:\Program Files\Blender Foundation\Blender\2.70\python\lib\json\decoder.py", line 352, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "C:\Program Files\Blender Foundation\Blender\2.70\python\lib\json\decoder.py", line 368, in raw_decode
obj, end = self.scan_once(s, idx)
ValueError: Expecting ',' delimiter: line 35 column 9 (char 949)

Code:
{
    "materials" : {
       "AsphaltMat" : {
            "shaderName" : "ksPerPixel",
            "alphaBlendmode" : "Opaque",
            "alphaTested" : false,
            "depthMode" : "DepthNormal",
            "properties" : {
                "ksDiffuse" : {
                    "valueA": 0.4
                },
                "ksAmbient" : {
                    "valueA": 0.4
                },
                "ksSpecular" : {
                    "valueA": 0.1
                },
                "ksSpecularEXP" : {
                    "valueA": 10
                },
                "ksEmissive" : {
                    "valueA": 0
                },
                "ksAlphaRef" : {
                    "valueA": 0
                }
            },
            "textures" : {
                "txDiffuse" : {
                    "slot" : 0,
                    "textureName" : "AsphaltTex"
                }
            }
        }
        "GrassMat" : {
            "shaderName" : "ksGrass",
            "alphaBlendmode" : "Opaque",
            "alphaTested" : true,
            "depthMode" : "DepthNormal",
            "properties" : {
                "someProperty" : {
                    "valueA": 0.4,
                    "valueB": [0.4, 0.4],
                    "valueC": [0.4, 0.4, 0.4],
                    "valueD": [0.4, 0.4, 0.4, 0.4]
                }
            },
            "textures" : {
                "txDiffuse" : {
                    "slot" : 0,
                    "textureName" : "GrassTex"
                }
            }
        }
    },
    "nodes":{
        "MyNode":{
            "lodIn": 0,
            "lodOut": 0,
            "layer":0,
            "castShadows": true,
            "isVisible": true,
            "isTransparent": false,
            "isRenderable": true
        }
    }
}
 
Now i have export error.

Traceback (most recent call last):
File "C:\Users\sti228\AppData\Roaming\Blender Foundation\Blender\2.70\scripts\addons\kn5exporter\__init__.py", line 95, in execute
settings = kn5Helper.readSettings(self.filepath)
File "C:\Users\sti228\AppData\Roaming\Blender Foundation\Blender\2.70\scripts\addons\kn5exporter\kn5Helper.py", line 77, in readSettings
return json.loads(open(settingsPath, "r").read())
File "C:\Program Files\Blender Foundation\Blender\2.70\python\lib\json\__init__.py", line 309, in loads
return _default_decoder.decode(s)
File "C:\Program Files\Blender Foundation\Blender\2.70\python\lib\json\decoder.py", line 352, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "C:\Program Files\Blender Foundation\Blender\2.70\python\lib\json\decoder.py", line 368, in raw_decode
obj, end = self.scan_once(s, idx)
ValueError: Expecting ',' delimiter: line 35 column 9 (char 949)

Code:
{
    "materials" : {
       "AsphaltMat" : {
            "shaderName" : "ksPerPixel",
            "alphaBlendmode" : "Opaque",
            "alphaTested" : false,
            "depthMode" : "DepthNormal",
            "properties" : {
                "ksDiffuse" : {
                    "valueA": 0.4
                },
                "ksAmbient" : {
                    "valueA": 0.4
                },
                "ksSpecular" : {
                    "valueA": 0.1
                },
                "ksSpecularEXP" : {
                    "valueA": 10
                },
                "ksEmissive" : {
                    "valueA": 0
                },
                "ksAlphaRef" : {
                    "valueA": 0
                }
            },
            "textures" : {
                "txDiffuse" : {
                    "slot" : 0,
                    "textureName" : "AsphaltTex"
                }
            }
        }
        "GrassMat" : {
            "shaderName" : "ksGrass",
            "alphaBlendmode" : "Opaque",
            "alphaTested" : true,
            "depthMode" : "DepthNormal",
            "properties" : {
                "someProperty" : {
                    "valueA": 0.4,
                    "valueB": [0.4, 0.4],
                    "valueC": [0.4, 0.4, 0.4],
                    "valueD": [0.4, 0.4, 0.4, 0.4]
                }
            },
            "textures" : {
                "txDiffuse" : {
                    "slot" : 0,
                    "textureName" : "GrassTex"
                }
            }
        }
    },
    "nodes":{
        "MyNode":{
            "lodIn": 0,
            "lodOut": 0,
            "layer":0,
            "castShadows": true,
            "isVisible": true,
            "isTransparent": false,
            "isRenderable": true
        }
    }
}


Same error here:(
Can someone help?

Never mind. I solved it:) So happy i can now create anything i want:)
 
Last edited:
I was missing some capital letters in Json file setup.
so i use only dds texture files in blender and write the material and texture names (including capital letters) on Json file. it works so far:)
Can you post here your settings.json ?

I did it :) But can someone tell me how i can improve my textures ? :(

fc3987a5bf4b.jpg
 
Last edited:
Once you get used to it Blender's not too bad, but it's not so specifically set up for that. To make a barrier follow the track, first you trace the path with a Bezier curve (or whatever type curve), then apply a 'shrinkwrap' modifier targetting the track to stick it to the exact same elevation. Then on the barrier model, add an 'array to curve length' and 'curve' modifier and it'll repeat itself along the length of the curve.

And this works nicely for stuff that's not just matched to the track, too - I can lay out tire walls like this in a matter of minutes once I have the base object modeled. (orange line is the curve it's following)
ejGSdGa.gif
I got my perimeter fence object to follow the curve which I made to hug the ground with shrinkwrap. The fence is still level in the Z axiz and floating. Do you have to shrinkwrap the fence object as well?
 

Latest News

Are you buying car setups?

  • Yes

  • No


Results are only viewable after voting.
Back
Top