1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

Featured TUTORIAL Build your FIRST track - BASIC GUIDE

Discussion in 'Tracks' started by luchian, Jun 14, 2014.

  1. luchian

    luchian Administrator ACM Racing Team ACM Club Driver

    Joined:
    Jun 3, 2014
    Likes Received:
    560

    LAST UPDATE : July 2017
    ***

    I’ll try and explain in few steps what is needed in order to export your first track in AC. However, this is not intended to be an extensive tutorial; it’s only a listing of minimum requirements for your first drivable track. And should be simpler than it looks ;)

    General advices:
    - According to the size of your project, building a track might take from an hour to a few months :). It's up to you to set the limits. I will not say that it might be taking years, cause if it would.. you probably don't need this guide :D
    - It would be a good idea to read this full guide at least once, before starting the actual work.

    How to read this guide:
    Normal text : basic information in order to succeed :D
    this is usually a more detailed information about a certain topic. It is however "hidden" because you could skip it if you're not interested in finding out the whys right now
    SOURCE original source for a specific info

    TOOLS:
    · Any 3D software package able to export in FBX 2012 format (e.g. 3ds max, Blender, ..)
    · The AC Editor : http://steamdb.info/app/302530/
    · *Optionally, an image editor if you’re planning to create your own textures (e.g. Photoshop, Gimp, …)

    START YOUR PROJECT:
    Before starting to model or do anything, I would recommend creating your folder structure.

    While it's true you can also do this later, it's easier and cleaner to do it now. It only takes a few minutes and it could spare you of some problems later. See default tracks as example, which you can find in under assettocorsa\content\tracks.

    A typical track (home made) will have the following structure:
    \yourtrackname\
    \ai\
    this contains the information needed for the AI to be able to use your track. You should create it, and can be left empty. Track will work, AI will NOT work, obviously.
    If however, you wish the AI at this point, see THIS thread on how to do it.​
    \data\
    here you'll be able to define specific surfaces to be used in your track (should you wish so), edit the cameras, to define specific lightning, to define specific audio sources and more. Two possible scenarios:​
    1- If you are building a basic track (and usually it's the case for the first one), you can just create this folder and leave it empty (or you could copy a data folder from an existing track, and only modify the files you might wish to look into).
    2- If you plan on customizing your track further, here is an explanation of (some of) the files contained in DATA folder:
    audio_sources.ini - used to link audio events to audio dummy emitters placed in your scene
    cameras.ini - used to define camera sets (TV type); you can define it manually or in SDK Editor. It needs the AI line to automatically switch from one camera to another; otherwise it will remain blocked on the first camera in the set. You can define as many sets as you like, just name them cameras.ini, cameras_1.ini, cameras_2.ini, etc.
    crew.ini - used to define the position of the PIT guy to the left (1) or right(-1) side of your car.
    groove.ini - used to define the behavior of the groove overlay. How fast it gets darker and by how much.
    lightning.ini - used to define the pitch and angle of the sun
    surfaces.ini - probably the most important, because you can use it to define new types of surfaces.​
    \ui\
    defines the basic data to be displayed in the track selection menu, in game.
    preview.png - image that will be shown on the track selection menu
    outline.png - track layout that will be overlayed the preview image
    ui_track.json - basic info about the track (it will be self explanatory once you work on an existing one).​
    \map.png
    the image used for the track map, in-game.​
    \yourtrackname.kn5
    the main track file, containing track's geometry, materials and textures​
    \texture
    IMPORTANT, as this will be used by the exporter when setting up materials/shaders.
    Use it to store all the textures you plan using for your track.
    This does not exist in a typical track folder (it is not needed when playing the game), because it will be included into the kn5 file, after the final export.​

    BUILD TRACK in 3D SOFTWARE:
    Build your basic track geometry as you see fit, in your preferred 3d software package. Assign your materials. I’ll assume you have the basic skills to do that. If not, you can find lots and lots of tutorials on YT.

    PREPARE TRACK FOR EXPORTING:
    Once you are happy with your project, you have to to make it usable by the AC physics and graphics engine. In order to do that, you’ll need :

    1. In your 3D SOFTWARE
    a. to respect the object naming convention (for the objects with physical properties)
    b. to create the spawn & timing objects
    c. to export to FBX2012 format​

    2. In AC EDITOR
    a. Import the fbx file you just created
    b. Define the shaders/materials
    c. Export to KN5​

    3. Fire up AC and enjoy your first track.

    1A: Naming convention:
    The AC physics engine takes into account the naming of your tracks objects/meshes in order to give them physical properties. Syntax is as follows:

    <ID><name><optional_suffix>, where :
    ID – is a number greater than 0, if you'd like it to have some physical properties
    name – is the name of your object/mesh
    optional_suffix – as the name says, you can use it if it helps, but has no impact on the properties​

    The <ID> parameter has to be greater than 0, if you'd like your object/mesh to have physical properties. Otherwise it can be 0, or missing, and your mesh will be only a graphical asset.

    The <name> parameter is very important and deserves some more explanation, as it will be used to define both the collision mesh and the rolling surfaces. In that purpose, there are a few pre-defined keywords that you can use. These are:

    WALL, mandatory to be used for the collision mesh

    Define collisions mesh:
    - While it is possible to quickly define an object as an obstacle (fence, building, pole, barrier, …) just by naming that object using <ID>+WALL+<optional_suffix>, where ID is any number greater than 0 (e.g 1WALL_fence, 1WALL_building, 2WALL_pole, etc) here's the right way:
    - model and name your objects as you see fit, and then add an invisible and as-simple-as-possible mesh around them. Call this mesh 1WALL, or 2WALL, or any number greater than 0. This will assure the best behavior.

    ROAD, GRASS, KERB, SAND basic surface types, already defined in assettocorsa\system\data\surfaces.ini

    The file "surfaces.ini" is a file normally contained by every track folder. You can use it to define the properties of custom surfaces. Each section of the file represent a surface identified by a name, and parameters like friction, FFB behavior, etc

    Define surfaces:
    - in order to set a specific mesh to act as a physical surface (anything you can drive on) you have to use one surface type keyword in it's name. You can chose from the basic ones, or you can define your own.​

    Examples, with basic surfaces:
    1ROAD – will make my chosen mesh drivable
    1SAND – will make my chosen mesh act like the sanded areas

    Examples with custom surfaces, IF defined in \mytrackfolder\data\surfaces.ini
    1CONCRETE
    5GRAVEL

    1PIT, 2PIT, etc - name of the pit area mesh (instead of 1ROAD, ...) to make it act like pitlane with limited speed.
    Don't forget to define the PIT surface, in surfaces.ini (see this post)
    *****end of section 1A
    1B: Spawn & timing objects:
    Depending on the type of location you are planning to make, the minimal* objects needed in order to make your track work in all modes (race, hotlap, practice) are:
    For circuit-type tracks:
    AC_START_0
    AC_START_1
    AC_PIT_0
    AC_PIT_1
    AC_HOTLAP_START_0
    AC_TIME_0_L
    AC_TIME_0_R
    AC_TIME_1_L
    AC_TIME_1_R
    For A-to-B type stages:
    AC_AB_START_L, AC_AB_START_R
    AC_AB_FINISH_L, AC_AB_FINISH_R
    Keep the same naming for pit spawn points
    Keep the same naming for hotlap start spawn point
    No starting grid.​

    (*) might work with single start and pit objects, but haven't tested it.​

    These objects can be simple CUBES, with a random (preferably from the scene) material assigned to them. You can also use dummies (3dsmax) or empties (blender) and in that case you no longer need to worry about material.
    Place them 1 or 2 meters above track surface. Three conditions to make sure everything will work as expected:
    1. respect the naming scheme
    2. make then invisible
    3. make sure to respect the axis orientation (pivot point Y up, Z forward)

    Pits position must be named:
    AC_PIT_n (n must be 0, 1, 2, 3, 4 etc) DON'T name it AC_PIT_01 (01 is different from 1)

    Start positions must be named:
    AC_START_n

    Hotlap start position must be named:
    AC_HOTLAP_START_0

    In general anything related to a position must follow this rule: the Y axis of the pivot point must point UP and the Z axis must point forward and will determinate the orientation of the car. This is VERY important for 3dStudioMax users, where usually Z axis is UP and Y axis is Forward, beware.

    Timing:
    These objects don't need the axis orientation like the spawn objects
    AC_TIME_0_L
    This must be placed on the LEFT side of the start/finish
    AC_TIME_0_R
    This must be placed on the RIGHT side of the start/finish

    AC_TIME_1_L
    AC_TIME_1_R
    Same rule about left and right but it will became the first intermediate.
    AC_TIME_2_L
    AC_TIME_2_R
    The second intermediate.
    You can place only 2 intermediates.

    The trigger will be an imaginary line from the center of the object to the other side (not visible obviously)

    More goodies (other dummy objects):
    AC_POBJECT_suffix - use this format as name if you'd like to have colidable/movable objects in your scene (cones, for example). In order to avoid unexpected issues, they work best when used on objects with simple geometry, and devs recommend not having too many (not more than 15 iirc). Even though you could get away with more.
    AC_AUDIO_suffix - use it to place external audio sources at various positions on track. Example: sound of water near a river, sound of crowds near grand stands, sound of birds near a forest, .. Do note, this is only the "trigger" position, you will need to link it to a sound and some characteristics - and for this, you must use the file audio_sources.ini, located in DATA folder (see above).​

    *****end of section 1B​

    1C: export to FBX2012
    Recommended settings when exporting
    3DSMAX :
    [​IMG]

    BLENDER (2.78+) (courtesy of @LilSKi )
    Notes:
    1/ the circled scale button; set to 1 and uncheck the little button.
    2/ the "selected objects" check (your choice if you export entire scene or selection)
    3/ you might need to also select "Empty" in case you have used them for spawn points
    [​IMG]

    *****end of section 1C

    2A: import in AC EDITOR

    You can find a basic tutorial by Simone here:

    *****end of section 2A​

    2B: Define shaders/materials

    Also described in the same tutorial as above.

    Also, a very useful resource is the Track Materials / Shaders thread.
    While at the beginning we were only discussing the json file setting to be used with Hagn exporter plugin, the discussion switched towards the AC EDITOR settings, after its release. About from THIS POST
    However, DON'T miss the first post where @Sneer is doing a great job collecting useful settings. Thank you sir Sneer ;)
    *****end of section 2B​

    2C: Export to kn5.

    Attention:
    - the name of the exported file must be identical to the name of track folder.
    - use only lowercase, otherwise track might create problems when used in multiplayer

    *****end of section 2C
    3 HALLELUIAH ! This is the moment you've been waiting ! If everything went well above, you should be able to drive on your very first track.

    *****END OF GUIDE *****

    And, that you've understood the whys.. "la cerise sur le gateau": AC member Keyrocker created a video explaining the hows:


    I'd like to take a moment and thank Kunos, Simone and the community for this "collective learning stage", this guide would not exist otherwise.

    I hope this will be enough to help you get started, and hope to see new track artists rise soon enough ;). If you get stuck, or have something to add, or have some questions, or see something not accurate, please don't hesitate to post a reply.

    [TO DO]
    FAQ
    Resources
     

    Attached Files:

    Last edited: Jul 21, 2017
  2. luchian

    luchian Administrator ACM Racing Team ACM Club Driver

    Joined:
    Jun 3, 2014
    Likes Received:
    560
    TROUBLESHOOTING

    As a general rule, the first thing to do when something is not working => read the guide AGAIN. More often than not, you skipped/forgot one step or one setting :).

    #1: my car has broken wheels when I load my track ingame
    => make sure the pivot point of spawn objects is pointing Y up and Z forward. If working in Blender, to be able to see the axis orientation you can:
    - select your object
    - in object tab, under Display, check the display axis (you should now see in the viewport what is what)
    - if Y is not pointing up (and probably not), make it (typically by a 90 rotation on X axis).
    - default is usually:
    Zup.png

    -after applying 90 rotation should be:
    Yup.png
    - after rotating your object, DO NOT use object>apply, otherwise rotation is lost.

    => next thing to check is scale (see #2)
    => next thing to check is the distance from the ground (1 or 2 m should be enough; closer might create problems).

    #2: car/objects/track are not proportional
    => check the scale of objects in your 3D program. Also make sure to uniform all at 1:1 scale before exporting (example for Blender, select object while in object mode, then go to Object > Apply > Scale.

    #3: "I cannot see the track from above"
    => probably normals are facing the opposite direction. If using Blender:
    - Select object
    - Edit mode (Tab)
    - Select all faces (Ctrl+Tab -> Faces, A)
    - W -> Flip normals

    #4: I have respected name convention, but still I get weird/unexpected behaviour
    => AVOID naming physical meshes, using 2 key surfaces in the same name.
    Example:
    1GRASS_road_blah
    1ROAD_sand_blah
    1PIT_road_blah..

    Keep it simple (here is another solution, if you lack ideas).

    *****TBC
     
    Last edited: Jan 2, 2017
  3. luchian

    luchian Administrator ACM Racing Team ACM Club Driver

    Joined:
    Jun 3, 2014
    Likes Received:
    560
    FAQ

    Q: How do I define the pitlane (with pitlane speed limitation) ?
    A: You need to define a specific keyword for the pit surface (inside surfaces.ini), and then use it to name the road mesh accordingly.

    Example:

    [SURFACE_1]
    KEY=PITS-ZONE
    FRICTION=1
    DAMPING=0
    WAV=
    WAV_PITCH=0
    FF_EFFECT=NULL
    DIRT_ADDITIVE=0
    IS_VALID_TRACK=1
    BLACK_FLAG_TIME=0
    SIN_HEIGHT=0
    SIN_LENGTH=0
    IS_PITLANE=1
    VIBRATION_GAIN=0
    VIBRATION_LENGTH=0

    And then name the meshes composing the pitlane accordingly: 1PITS-ZONE, 2PITS-ZONE, and so on.
     
    Last edited: Nov 9, 2014
  4. MisterWink

    MisterWink Member

    Joined:
    Jul 14, 2014
    Likes Received:
    8
    Hello im very New in 3D Track Bulid ^^ , . . . .
    5weeks ago i have begin with BTB
    than with Blender ....
    have made Pit and start ,to loard the map
    But my car falls through the map
    and the Track is Very big .....................
    but i have scale 1.1
    Sorry for my bad english . . . Thx for Help
     
  5. luchian

    luchian Administrator ACM Racing Team ACM Club Driver

    Joined:
    Jun 3, 2014
    Likes Received:
    560
    Hi,
    If your car falls through the map you most certainly made a mistaking in naming the surface. Try using a default name, example: 1ROAD.
     
    MisterWink likes this.
  6. MisterWink

    MisterWink Member

    Joined:
    Jul 14, 2014
    Likes Received:
    8
    i dont have any surface.ini -.- in my Assetoo cors Track . ..................

    i have the track made with BTB thand to 3DSimEd - save my texture in the same folder , export as 3DS ..... Iport in Blender . . . . but wat must i do for the Surface.ini -.- i have no from this file - . . thx for any Help
     
  7. luchian

    luchian Administrator ACM Racing Team ACM Club Driver

    Joined:
    Jun 3, 2014
    Likes Received:
    560
    You don't need a specific surface.ini if you use the default surfaces names.
    Example : just name your road mesh as 1ROAD and it will be ok. Have a look at the guide above, it is already explained why and how ;).
     
    MisterWink likes this.
  8. MisterWink

    MisterWink Member

    Joined:
    Jul 14, 2014
    Likes Received:
    8
    ahh okay . . .
    but must i write the same name in Blender
    exampel : give the roard, the name 1 ROAD In Blender as name ?
    than i Writhe in the surface.ini the same like 1ROAD . . . ?

    than i have a problem the car is a littel to big to the Track and The car falls through the map
    my problem how big do I have to scale the distance . i know scale in scene but ...default ist 1.000
    and i have give The Name 1ROAD 1GRASS AC PIT AC START ........

    AAhhhh ^^ xD I'm going crazy. I get the point not I'm too stupid. . . I think my english is too bad to understand some things

    thx for ur help . . . ;)
    Neue Bitmap (2).jpg
     
  9. luchian

    luchian Administrator ACM Racing Team ACM Club Driver

    Joined:
    Jun 3, 2014
    Likes Received:
    560
    Yes, in Blender your road mesh must be named 1ROAD. If you use ROAD, you don't necessarily need to define it in a surface.ini, the AC engine already knows it. IF, however, you wish to define a new surface like.. PINKTARMAC, for example, (or any other name), at this point you need to define the properties of this surface in the suface.ini.

    For the scale be sure all your objects are at scale 1. While in Object Mode, and then press Object >> Apply >> Scale.
     
  10. MisterWink

    MisterWink Member

    Joined:
    Jul 14, 2014
    Likes Received:
    8
    Can i send You My Track ?......Than u can see my Problems with blender ,
     
  11. luchian

    luchian Administrator ACM Racing Team ACM Club Driver

    Joined:
    Jun 3, 2014
    Likes Received:
    560
    Well, you could, but I'm currently in vacation and won't be able to have a look until Monday.
    Meanwhile, why not start with a simple basic model and understand how everything works ? Something like a plane, a simple mesh for road, spawn points.. the basics (explained in the guide). ;)
     
  12. MisterWink

    MisterWink Member

    Joined:
    Jul 14, 2014
    Likes Received:
    8
    hey ^^
    i have the map scale Car andf Map is scale . . .
    But ever the car falls trout the map -.-
    have give the name 1ROAD . . . . i dont know wat i must do -.-
     
  13. luchian

    luchian Administrator ACM Racing Team ACM Club Driver

    Joined:
    Jun 3, 2014
    Likes Received:
    560
    Have you checked your spawn points position ? They must be 1 or 2 m above your road mesh.
     
    MisterWink likes this.
  14. MisterWink

    MisterWink Member

    Joined:
    Jul 14, 2014
    Likes Received:
    8
    2014-07-20_00001.jpg
    I made the spawn points 1-2 mm from the back ground..... or must i made the spawn points on the roard ? no in the Pit ..............aaahhhh ^^ 2014-07-20_00002.jpg
    in the Pit and on the roard The Car fall trout the map -.- ......
     
  15. luchian

    luchian Administrator ACM Racing Team ACM Club Driver

    Joined:
    Jun 3, 2014
    Likes Received:
    560
    Can you post a screenshot of your scene in Blender ? (select the road area where you have the spawn points). Show the name tree also.
     
    MisterWink likes this.
  16. MisterWink

    MisterWink Member

    Joined:
    Jul 14, 2014
    Likes Received:
    8
    ^^ i have my first round drive on my Track ^^ ,,, but on at several places I fall through the grass. I need to rename all still in 1GRASS.001 -002-003. and I still have to work a lot to make fine at the track. . . now I have it again with a new track tries, but now I have no textures, although I [texture] the folder have. I think I'm starting to know how it goes. . . .thx for help ;)
     
    luchian likes this.
  17. luchian

    luchian Administrator ACM Racing Team ACM Club Driver

    Joined:
    Jun 3, 2014
    Likes Received:
    560
    Great to hear, don't hesitate to post your progress if you can, I'd love to see how it works out. ;)
     
    MisterWink likes this.
  18. MisterWink

    MisterWink Member

    Joined:
    Jul 14, 2014
    Likes Received:
    8
    hello .. .. . wat must i do to made my one track to play online, wenn i start the server , is ok , but cant not join in the server . . . is red ^^ thx for help
     
  19. luchian

    luchian Administrator ACM Racing Team ACM Club Driver

    Joined:
    Jun 3, 2014
    Likes Received:
    560
    You must create a folder on the server, name it as your track, and inside upload only the \data\surfaces.ini
     
  20. MisterWink

    MisterWink Member

    Joined:
    Jul 14, 2014
    Likes Received:
    8
    hello i need help . i have a export problem . i have mad a pit AC_PIT_0 than i will export the map ......
    tahn is coming this .... i dont know . . .thx for help ;)

    Unbenannt.png