SCGT CentralTrack Editing

The text below is an edited version of JPS's postings giving an introduction to Track Editing.
It appears with JPS's permission.

Firstly, you'll need to be using 3D Studio MAX because Zmodeler and Modeller's Garage won't cut it in this case. Unfortunately 3D Studio is commercial software and is not available to download legally on the net so you'll need to find another, hopefully, inexpensive source.

It really is a tragedy that the Speedsims Track Editing forum was lost because all of this was covered quite well back then. Why that forum wasn't restored from a backup baffles me. You won't find a many decent tutorials or info for lofting on the Internet. In fact, with every passing month there is less and less free info available about lofting. You'll find a lot of broken links now, even though the links to other tutorials still work. One guy even pulled his lofting pages off the web on purpose and moved them into a tutorial set that you now have to buy (jeezzzz! real community spirit there, eh?)

I know these two pages are still available:
http://www.bergen.org/AAST/Projects/3DSMaxTutorial/lofts.html
http://www.maxhelp.com/content/tutorials/lofts/lofts.htm
(Better read them before they get deleted, too.)

To start your track get a good map of the track that is to correct scale and set it as the viewport background (top view, obviously). Get your units set to 1 unit = 1 metre and the grid turned on, zoom the viewport out until the measure of the grid is correct against the real-world dimensions of the track. This is pretty much a lot of guesswork unless you know for a fact that, say, the front straight is exactly 1200m long.

Start creating a standard line (spline) and set the vertex type to "smooth". It doesn't matter where on the track you start from, it doesn't make any difference if it's the start/finish line or not. Draw the line down the centre of the pavement. Click to create a vertex only when necessary, create the minimum number of vertices you can get away with. Since all the vertices will be of type "smooth" you'll notice the line will sometimes bulge out as if it wants to go in another direction--ignore this for now and just keep plotting along down the center of tarmac. Just to give you some idea, a typical horseshoe shaped hairpin will typically require only 2 vertices to make (one placed just before the start of the turn and one just after the exit of the turn). Again, at this point don't be concerned if the line is bulging out in places, just make sure your vertices are in the center of the tarmac.

When you end the line click the last vertex on top of the first vertex to complete the circuit. I believe it then asks you if you want to close the spline (or words to that effect), answer yes.

At this point you'll have a pretty roughed-in line following the center of the pavement. For corners that need to be touched-up you can change the vertex type from "smooth" to "bezier" or when you're in a really tough situation choose "bezier-corner". DO NOT USE "corner" type vertices.

Move the vertices around and tug-and-pull on the bezier handles until your line follows the center of the pavement all the way around the track as perfectly as you can. In some cases you might have to go back and actually add some additional vertices in order to achieve the perfect curvature to follow the center of the tarmac; you do this by clicking the "refine" button then click where you want the new vertex to be created (make sure you created the right type of vertex for the situation at hand--either smooth, bezier or bezier-corner). Be careful to not go overboard and add too many vertices. Most turns can be achieved with only 2 vertices, and I have never run across a turn so complicated as to require more than 4 vertices. Use the minimum amount you can get away with--you'll see why in the lofting step.

Now go back and raise/lower individual vertices on the line to add the elevation changes. Again, to achieve the correct and smooth elevation changes feel free to use "refine" to add an additional vertex if you have to. You don't want any knife-edge elevation changes. Pay close attention to your measurements here, it's easy to over do it and end up with huge heights or really steep hills.

Don't worry about getting this line too perfect first-try, you will be able to go back and adjust this line as much as you need to later. NOTE: do NOT attach this line to any dummy or to the "hierarchy". It should remain a free-floating object in the "schematics view". Also, never delete this line (the "path), it can come in very handy even much later in the track development process. To keep it from being exported into your .WRL all you have to do is hide it.

I've been asked if the grass and such are also lofted. Well, you can loft the polygons for the rumblestrips and berms pretty well and also at least have the loft generate the spare polys that you can then pull on and stretch to form the grass and gravel traps. There are a few tutorials out there on how to loft terrain, but it always turns out to be pretty high-poly stuff; I don't bother doing it that way myself.

An alternative is to just "extrude" the polys for the rumblestrips/berms/grass from the edges of the lofted tarmac when it's finished. You can push/pull on these new polys to form whatever you need. The good thing about doing it this way is that it is incredibly easy and fast, the drawback is that you will have to manually map those polys (if you loft them they can be automatically mapped to follow the curves and hills--cool stuff when it works!).

With your "path" line selected, over on the command panel in the "modify" tab you will see a "General" section. In there are settings for "Interpolation" and a check-box for "Adaptive". I turn on "Adaptive"; it seems to result in smoother lofts and better polygon arrangement in some situations. You can turn this setting on/off at will at any time later if you want to compare how your resulting loft is effected.

Sometimes if you try to insert another vertex, 3D Studio Max won't allow you to move any other vertex without thinking you have that one selected. To fix this you need to select the line, go into sub-object-vertex mode, Edit menu - select none. In the modify panel it should now indicate "0 Vertices Selected" just above where the "Geometry" sub-section starts.

OK then, on to the next step, which unfortunately takes a lot of words to explain but is remarkably easy and quick. Everything I say here is based on 3D Studio MAX 3.0, the locations and perhaps even the names of some of these functions may be different in other versions of MAX and I really can't help you there.

If you've gone through any lofting tutorials then you understand that lofting is the process of pulling one or more "shapes" along a "path" to form a 3D object. For example:

Examples of lofting

Hmmmm... that squiggly line looks kind of like a part of a race track. What if, instead of that stupid star "shape" we substituted a simple straight line? Pulling that along the squiggly "path" would probably yield something like a road, eh?

So, somewhere out of harms way create a line (spline) that is perfectly straight and flat with only two vertices (the start point and the end point) and make them both "corner" type vertices. What I do is just splash down a rough line then go into vertex edit mode and use the transform type-in (F12) to move each of the vertices so they are exactly straight. Let's say vertex 1 is at (200,200,0) and vertex 2 goes at (212,200,0) which would be 12m to the right. The width of this line will be the width of the lofted pavement. I find widths between 8m-16m to be good for racing in SCGT.

OK, now you've got your nice straight line. The next step is critical, but easy to forget: You want to make damn sure the "pivot point" of that line is exactly in the center because it will be pulled along the "path" based on where the pivot point is and how it is aligned. Select the "hierarchy" tab, click "Affect Pivot Only", then "Center to Object" and "Align to World", then click "Affect Pivot Only" again to exit that mode.

Now then. You've got your "shape" and your "path" so you're ready to loft your track. Select your "path" line (the line that looks like your track).

The "loft" function is rather hard to find in 3D Studio MAX 3.0:
- in the command panel go to the "create" tab (the one with the little white arrow pointer on it).
- directly under that select the "geometry" button (looks like a gray sphere).
- in the pull-down list select "Compound Objects".
- in the arrangement of buttons below will appear a button that says "Loft". (Somewhere in the fancy modelling icons list there is a "loft" icon that does the same thing, but that's just as hard to find.)

In the lower part of the command panel will now appear a whole set of loft settings and functions.
In the "Path Parameters" section you will see selections for Percentage, Distance or Path Steps -- choose "Path Steps".
In the "Creation Method" section make sure "Instance" is selected, then click the "Get Shape" button.
Click on your straight little "shape" line. As soon as you click the loft will be generated. Now go back and click the "Get Shape" button again to exit that mode.

"Well, ummmm.... Jeeezzz, JPS, it created something but it doesn't look too much like a road...what gives???"

It will look a lot better as soon as we apply the right settings.
Go all the way down to the bottom of the command panel to the "Skin Parameters" section (you might have to click it to make it roll-out). Use the following settings:
-Cap Start = on
-Cap End = on
-Morph (not Grid)
-Shape Steps = 0 (more on this later)
-Path Steps = 8 (more on this later)
-Optimize Shapes = off
-Optimize Path = off
-Adaptive Path Steps = on (if this is greyed-out don't worry about it)
-Contour = on
-Banking = off
-Linear Interpolation = on
-Flip Normals = on
-Quad Sides = on
-Transform Degrade = on
-Skin = on
-Skin in Shaded = on

At this point your loft should start looking more like a drivable road. If you were to apply a tarmac bitmap to it you could instantly make it look like tarmac. Let's go ahead and do that....

Create your material and link it to a road surface bitmap that you like. Apply your road surface material to the loft object. If you render the scene you'll notice that the material is probably heavily stretched along the length of the track (blechhhiieee!!). Let's fix it up nice and pretty....

In the loft settings go to the "Surface Parameters" section and start with these settings:
-Smooth Length = on
-Smooth Width = on
-Apply Mapping = on
-Length Repeat = 40.0 (more on this in a minute)
-Width Repeat = 1.0 (more on this in a minute)
-Normalize = on
-Generate Material IDs = on
-Use Shape IDs = off
-Output type = Mesh

The Length Repeat setting is critical to get right in order to make the tarmac look believable in-game. Length Repeat is exactly what it sounds like: how many times your road surface bitmap is repeated along the entire length of the loft. The correct setting depends entirely upon the length of your track and, frankly, comes down to a sort of guessing game to find the number that looks best for you. We've started with 40 and will increase/decrease that number until the road surface looks good.

Set the viewport to "Smooth + Highlights" so you can see the materials in real-time; if your display system is incapable of this you will just have to resort to rendering it each time. Zoom in to a piece of the track close enough so you can see what the surface is going to look like. Change the Length Repeat to a larger number like 80 and see if the surface mapping looks better/worse. Keep increasing or decreasing this number in increments of 40 until it starts looking good then start adjusting it by 10 to fine-tune. I have had tracks that look great with a setting as low at 40 and others as large as 200, it all comes down to the length of your track and at what density your particular bitmap starts to look its best. If you want to get scientific about it, what you could do is use a 256x256 bitmap that had a perfect square shape drawn on it, and then keep adjusting Length Repeat until the repeating pattern formed perfect squares all the way down the road. At that point you would be certain that the bitmap is being repeated perfectly for the dimensions of the track, but, ehhh, who wants perfection anyway?

Similarly, Width Repeat is how many times the bitmap is repeated across the width of the loft. Almost always you want this set to 1, but there are some rare situations where you would want it repeated multiple times; this setting allows you to achieve that. Notice also that you are allowed to specify fractional numbers like 1.5 or 3.25 to get just the effect you might need for those unusual situations.

At this point you should definitely save your work.

Let's switch back to wireframe viewing mode for this next part. Remember above in the "Skin Parameters" section I mentioned there would be more about the "Shape Steps" and "Path Steps"? Well, here you go:

Shape Steps is essentially how many times across the width of your road polygons will be generated. A setting of 0 = 1 quad across, 1 = 2 quads across, 2 = 3 quads across, etc. Go ahead and play with that number and you will be see what I mean. You can see how playing with this number can instantly cause you to have a high-poly track that could be very FPS- unfriendly for everyone. A setting of 0 works best in almost all cases. There are some cases where increasing the polycount across the width of the road is desirable in order to make the road smoother in areas where the pavement twists or banks to a significant degree and makes the road too bumpy in-game, but you would really only want to increase the number of polygons in those specific areas that need it, not the entire track--that would be a wasteful excess of polys. You could always loft those troublesome sections with a seperate loft using the same "path" and "shape" as your original track loft, and increase the Shape Steps for that second loft. Then just use the higher-poly track parts in the areas that need it and stick with the original loft for the rest of the track.
Note that "Shape Steps" has no effect on the "Width Repeat" for the bitmap mapping across the width of the track, that is something totally independent regardless of how many polys you have across the width of the track. Also note that it does not change the width of the track, it only increases the polygon density across the width.

Path Steps controls how many polygons are generated down the length of your road. Finding the best number for this setting comes down to "best feel" and "what looks best" and it is also greatly effected by how many vertices you have on your "path" line. You will notice that around curves and where hills start/end you need to increase the polycount in order to make it smooth.
Each time you change the Path Steps setting it will warn you that doing so will change the locations of "shapes". This is actually a pretty important thing to be concerned about and you will see why when we get into adding additional "shapes" to change the road width, add camber, banking, etc. Try not to get into the habit of mindlessly just clicking YES to this warning. For right now, however, we have a very basic loft with only one shape on it, so go ahead and adjust this number up/down and look closely at how it effects your track. Notice that if you increase it too much the track will actually start to fold over itself in tight turns and this becomes a royal mess to try and fix later. You want your final settings to yield a track that is smooth around corners and hills/dips but also very low-poly along straights. It will quickly become clear to you that this setting alone is not going to give us what we need for SCGT.

The other thing that greatly effects the poly density is the placement of the vertices on your "path" line. Remember plotting out all those "smooth", "bezier" and "bezier-corner" vertices? Notice how the loft increases the poly density based on those vertices. Notice also that how much you pushed/pulled on the bezier handles of those vertices also effects the ultimate density and arrangement of your track's polys. Let's see this in-action....

Un-select your loft and select your "path" line -- since it is underneath your loft it might be easiest to use the select-by-name feature (Edit - Select By - Name).
Go into vertex .edit mode and move a vertex. Notice how the loft is effected in real-time and adjusts the poly arrangement accordingly. Notice also how pushing/pulling on the bezier handles of a bezier vertex has a profound effect on the smoothness of your loft. Now go ahead and use refine to add a vertex somewhere. Pretty powerful stuff, eh?

Since the whole goal is to end up with a track that is smooth where it needs to be smooth, and low-poly along straights it is important to find the right balance between the "Path Steps" setting and the amount and placement of vertices. Yet you might not be able to make major changes to the vertices without changing the shape of your track too much. You also do not want to end up with sections where the polygons overlap each other. You can also experiment with changing some vertices from "smooth" to "bezier" or visa-versa, it shouldn't take too long to strike a good balance. If you have examined the construction of many of the original ISI tracks from SCGT and F1-2000 you will already have some idea of what to shoot for in your track surface.

Let's get this thing into the game and drive on it. What we'll do is cut the track into a couple of giant chunks and make up some really rough track files just for the sake of testing what it's like to actually drive on it. After driving on it you will have a better sense of what changes you should make to your loft to improve the track. Just a quick-and-dirty test here.

DISCLAIMER: It is assumed you know and understand what the track files are, how they must be named, how to work on them, and how and where to save them so the game will use them. I won't cover here all aspects of what it takes to make a track from scratch and make it work in SCGT; such detailed information is best described in GT40-Steven's Track Editing Manual (TEM) which is available in the tutorials section of Mika Hirvonen's SCGT Site You should already have learned a lot by dissecting several of the original ISI tracks and modifying scene files to familiarise yourself with how it all goes together and how things are controlled by the scene files.

Before we go further, make sure the .BMP you are using for your road surface is named so it matches up to a valid road entry in the TERRAIND.AIW file. Road surfaces typically start with the letters ROAD* or RD1*. If the name of your bitmap does not match a valid road terrain type in the TERRAIND.AIW file then rename it now so it does match, and update your MAX material so it points to the new bitmap name.

Small but important divergence from the topic:
It is important that you understand that the names of .BMP files are critical when it comes to tracks. You cannot just name your track bitmaps whatever you want, willy-nilly. Any surface that you intend to drive on, crash into, or scrape against, must use a bitmap that is named to correspond with a terrain entry defined in the TERRAIND.AIW file (or TERRAINW.AIW file for wet tracks). If the bitmap name does not match any type of defined terrain the game will give it a really horrible default response, which just so happens to be a surface you cannot drive on. The other thing you need to be careful of is to use bitmap names that are unlikely to conflict with the names of bitmaps people have used in their cars. You have probably seen people post bizarre pictures of their car covered in grass, billboard, or other strange textures and they don't understand what's wrong; it's because there is a conflict between a bitmap in the car and a bitmap in the track, and the track files seem to take precedence every time.
Notice in the TERRAIND.AIW file there are different types of terrain for pavement, guardrails, tire barriers, concrete walls, rumblestrips, gravel traps, etc. Make your bitmap names match the appropriate entries and your surfaces will give the correct responses, sounds, sparks, dust, damage levels, etc., in the game. Bitmaps you use on objects that will not constitute terrain (such as the outfield and outfield buildings and decorations) do not need to match the terrain file. But you should still try to use names that are unlikely to conflict with car bitmaps. Crack open some of the original ISI tracks and you will notice they tend to try and follow some common naming conventions.

A bit further off-topic:
If you are converting your track from SCGT to F1CS you will have to change the names of many of your bitmaps because F1CS uses a different terrain naming scheme. Arrgggh!! Pain in the ass, but necessary. Just look in the F1CS TerraDry.AIW file for details.

Right, back to getting the track into the game:
Select your loft and make a clone of it; you will do the rest of your editing from this clone, leaving the original loft untouched and safe so you will be able to call it up again later when you need to make alterations to it.

Hide the original loft, path line and shape line so they are out of the way and you don't accidentally mess them up.
Let's take a minute to find the co-ordinates of the point on the track where you will want the car to start in the game. Anywhere on the track pavement will do; near the start/finish line is great. Find the (x,y,z) co-ordinates of a point in the middle of the road, and at the same height as the pavement (z would be the height). Pay careful attention to whether each number is positive or negative and write them down in (x,y,z) format. You'll be using these co-ordinates in your waypoint file very soon.
Select the cloned loft then right-click and do "Convert to Editable Mesh". It is now a regular polygon mesh just like any other mesh you have ever worked on. Go into polygon edit mode and select about half the track and detach those polygons. Why did we just cut the track in half? Because VRL2VRML usually locks up when you ask it to convert an entire track as one continuous circuit. We won't bother to cut it up further into even smaller VRL's right now, this should be sufficient for testing purposes.
Attach these two track meshes to the hierarchy with VRL_* and MESH_* dummies and you will be able to export it to VRML97 format. Again, GT40-Steven's Track Editing Manual covers these topics in-depth.

Export the track just like you always export stuff. I always get the least problems when I export as triangles instead of quads, but some people say quads works fine for them. I have never heard anyone come up with a knowledegable explanation of why it works differently for different people. If you find you cannot drive on certain polygons on your track (as if they are phantom polygons or something) export it again as either quads or triangles until you find the setting that works in your case.

Run your .WRL file through VRL2VRML. Be extremely patient! As your track grows in complexity it will start taking longer and longer to convert. It is not unusual for VRL2VRML to chug along for an hour, looking as if it has locked up, and then finally spit out the finished VRL's. It's not like a car that takes a mere 7 seconds to convert.

When you've got your VRL's, it's time to start packing the MAS files for your track. You will also want a "skybox" (this is a background panorama and a clouds plane for the sky). What I do is just pull one out of an original ISI track and use it in my track; this is good enough for testing purposes. In the original ISI SCGT tracks the VRL's you need are usually named BKA.VRL and CLOUDSA.VRL. You will also need to get the BMP's that those VRL's use. Examine those two VRL's with a HEX editor and you'll see down at the bottom it lists the bitmap(s) that they use.

Create the two MAS files for your track: one for the VRL's and one for the BMP's. Make sure you remember to include all the VRL's and BMP's for the skybox as well as your track VRL. Put those two MAS files into your MAS folder.

Now it's time to create a simple Waypoint File (.AIW file) for your track:
It only needs the [SLOT00] defined for this test and the entire file could look like this:

[SLOT00]
AVPos=(150,-2.5,-220)
AVOrient=(0,90,0)
AVPitPos=(150,-2.5,-220)
AVPitOri=(0,90,0)

The AVPos line is where you put those starting co-ordinates you wrote down a moment ago, but there's a little conversion you have to do to those numbers because the co-ordinate system inside SCGT is different than MAX. See the Track Editing Manual for details on the SCGT co-ordinate system.
If the MAX co-ordinates you wrote down were (-150,220,2) then the numbers for the AVPos line would be (150,-2,-220). Notice that Y and Z are swapped around and negative and positive are reversed for all three numbers. You also want to increase the second number in AVPos by perhaps 0.5 (make the Y value more negative to go up higher in elevation). This will make the car start out about 0.5m above the surface of the pavement, so when SCGT drops the car onto the track it will probably land on the tarmac rather than fall through it because of differences in car heights and centrepoints. You can fine-tune this value later when you make your full-blown waypoint file. The second value of the AVOrient determines which direction the car will be facing when it appears on the track. You can play around with number on your own. I remember +90 = facing West (left) as viewed in MAX.
That's all you need for the waypoint file for this test drive.

Next comes the Scene File (.SCN file):
The scene file is also going to be very simple. What I do is start out with a copy of a scene file from an original ISI track (a day track). Delete all the cameras, and delete all the "Group" sections and all the "Instance" definitions within those group all the way to the end of the file. Also delete any "AnimRuleName" definitions if there are any since the bitmaps they are referencing probably aren't in the MAS file of your track.

At the top of the file change the "DescFile=" entry to something that does not already exist on your machine.
Edit the DataBaseDir=, TexMapDir=, DBMASFile=*.mas and DBMASFile=*map.mas to put in your 3-letter track code.
Further down the file find the SkyBox definition and make sure the names of the two VRL's referenced there match the names of your SkyBox VRL's. It typically looks like this:

Instance=skyboxi
{
InsStart=(0.0, 0.0, 0.0) InsOrient=(0.0, 0.0, 0.0) InsUseLTM=TRUE
InsPlanes=(4) InsChange=False
ObjFile=bka.vrl ObjStart=(0.0, 0.0, 0.0) LODIn=(0.0) LODMid=(3000.0)
LODOut=(3000.0) ZOffset=(0.0) CollTarget=False HatTarget=False
Zbuffer=False
Child=clouds
{
InsStart=(0.0, 0.0, 0.0) InsOrient=(0.0, 0.0, 0.0) InsUseLTM=TRUE
InsPlanes=(4)
ObjFile=cloudsa.vrl ObjStart=(0.0, 0.0, 0.0) LODIn=(0.0)
LODMid=(3000.0) LODOut=(3000.0) ZOffset=(0.0) CollTarget=False
HatTarget=False Zbuffer=False
}
}

*Note that CollTarget & HatTarget both must be set to False for these two objects.

At the bottom of the file create a "group" and add in the instance definitions for your two track VRL's. It typically looks like this:

Group=~fiaddba.scn
{
Instance=Trak001
{
InsStart=(0.0, 0.0, 0.0) InsOrient=(0.0, 0.0, 0.0)
ObjFile=Trak001.vrl LODIn=(0.00) LODMid=(160.00) LODOut=(2000.00)
Response=Vehicle,Terrain
}
Instance=Trak002
{
InsStart=(0.0, 0.0, 0.0) InsOrient=(0.0, 0.0, 0.0)
ObjFile=Trak002.vrl LODIn=(0.00) LODMid=(160.00) LODOut=(2000.00)
Response=Vehicle,Terrain
}
}

Substitute the names of your VRL's for where I named mine "Trak001" and "Trak002". The name of the group is essentially irrelevant, it doesn't have to match the letters of your track.
Make the LODOut values really large, like 2000. This is actually insanely large, but it will serve us well for testing purposes. LODOut is the distance (measured in metres from the calculated center of the VRL) at which the VRL will stop being rendered in the game. So if you had LODOut=(400) the game will stop displaying that object as soon as you got 400m away from it. Our test VRL's for the track are probably quite big, so we increase this value to try and make sure the track will be rendered no matter where we drive or how far from the center we get. If you find the track tends to vanish on you, go back and increase these LODOut values even more.

Make sure you have the "Response=Vehicle,Terrain" entries because that's what tells SCGT "OK, you are allowed to drive on the surface of this VRL." If it's not defined as terrain it's not going to allow you to drive on it. Also make sure you close off the "{}" braces sets correctly, otherwise wacky stuff can start to happen.

Put your .AIW & .SCN files into your DAT folder, assuming you are a Ban-Scene enabled person, otherwise you're gonna have to go repacking them into your scene.mas file every time you make a change.

Let's see....
You've got your track converted into VRL's,
The VRL's and BMP's are packed into the appropriately named MAS files,
Those MAS files are in-place,
The AIW file exists and is in-place,
The SCN file exists and is in-place.

Sounds like it's time to drive:
-go into SCGT,
-select your track,
-set the opponents to zero (remember there's only one starting grid position),
-set the game to "Laps" instead of "Time",
-set the game to "Race" mode (not practice or qualify),
-and start the race.

If your car does not start out on the pavement then fix your AVPos co-ordinates in the AIW file. If you car is facing the wrong way then play with the second value of the AVOrient line.
Ignore any "Wrong Way" or Black Flag warnings that might pop up; since you don't have a valid waypoint file or any checkpoint barriers the game has no way of telling if you're going the right direction or not. Also note that the lap time and lap counter cannot work yet.

What you want to look for first is whether the track is smooth enough to drive on at high speed, with no lethal bumps or sudden angles in the surface. Also check out the elevation changes, do they seem realistic? Are the turns relatively round and not choppy and angular? Is the pavement wide enough or too wide?
The other thing you want to watch out for is the "phantom polygons" I mentioned earlier. Try to drive the entire track surface. Do you run into any polygons where the game will not allow you to drive? Do you see any strange triangular holes in the track? If so, export the track again and try changing "quads" to "triangles" or visa-versa.
If you need to smooth out the loft or make other changes to it remember to make those changes to the original loft that you have hidden. Un-hide it, make your changes, then clone it. Hide the original again for safe keeping and convert only the clone into an editable mesh. Remember to link the newly created meshes to the hierarchy before you export.
The idea is to keep one "master loft" under development -- as opposed to generating a new loft in each edit session. When it's time to export you make a clone of it and convert that to editable mesh (which can be exported). The "master loft" remains as a loft with all the changes to-date as you continue to refine and tweak it. This only goes on for short time as you will soon reach a point where you are happy with the loft and declare the road surface is now "good enough". You will then clone it one last time, convert that clone to an editable mesh and start doing the next phase of track development directly to those polygons, such as extruding grass, walls, curbing, etc.

Always keep that finalised loft (and the lines you used to generate it) tucked away somewhere because you may find yourself in a situation later down the road where you say to yourself "Damn! I wish I still had that finished version of the loft because it would come in handy for what I'm trying to do right now."

If the track seems to be too wide, use the "Tape Measure" tool in 3D Studio Max to measure the width. If the "shape" line measures 12 then the road width should also have turned out to be 12.
If it is not the same then you may have scaled the path line up to make it the right size for the track. This creates some serious problems because the resulting loft is further effected by any scaling you did to the original path line, thus the pavement will be the wrong size, and even the mapping values will be thrown off.
In fact, all units of measure are now thrown off when you later try to work with those polygons; for example, try to extrude one 1 metre and it may end up only 0.273 metres in reality, so you have to figure a "conversion factor" to adjust for the scaling. It can quickly become very aggravating. This is why it is important to zoom your viewport so that the grid matches up to the scale of the background image correctly before you even start.

I have not found a way to tell 3D Studio MAX that I want the path line to be considered to be un-scaled without it shrinking back to its original smaller size.

Unfortunately, the easiest and safest thing to do is to make a new path line, considering the fact that you probably now have your viewport zoomed out to the proper size to trace the track map.
Stay away from scaling anything used in your lofts, it causes some tricky issues.