[justify] LAST UPDATE : Dec 2019 *** 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 - 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 Spoiler: MORE 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: Spoiler: naming restrictions these are restrictions for names of track- and car-folders, from x4fab and/or shared memory definitions: max length for track (folder-)name: 32 max length for additional layout (folder-)name: 15 max length for car (folder-)name: 32 all lowercase, latin-digits-underscore, NO utf8- or fancy characters like é or something \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 NOTE: if SDK Editor looks low-res/B&W, see this post. 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 Spoiler: 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) Spoiler: DETAILS by Simone 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 : 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 Blender >= 2.8 (maybe use Forward: +z) View attachment upload_2020-1-12_22-5-34.png *****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 [/justify]
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: View attachment Zup.png -after applying 90 rotation should be: View attachment 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.. #5: SDK Editor is low-res / B&W => see this post. Keep it simple (here is another solution, if you lack ideas). #6: CANNOT HAVE 0 CARS IN RACE.INI => Check spawn point objects (naming, axis) => Edit the ui_track.json file (set number of pits) => Do you happen to have an AI line ? (delete it) #7: AC Editor opens in Black & White / Low Resolution => see HERE. *****TBC
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.
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
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.
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
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 .
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 . . . View attachment Neue Bitmap (2).jpg
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.
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).
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 -.-
View attachment 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 ^^ View attachment 2014-07-20_00002.jpg in the Pit and on the roard The Car fall trout the map -.- ......
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.
^^ 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
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
You must create a folder on the server, name it as your track, and inside upload only the \data\surfaces.ini
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 View attachment Unbenannt.png