GPL To Rfactor Track Conversion Tutorial
GPL To Rfactor Track Conversion Tutorial
Note that you cannot convert any of the tracks Papyrus created for GPL, only third party tracks.
Please make sure you have permission to convert a track if you intend to release.
Required Tools:
Sim Garage:
Text Editor:
1.Preparation:
Within rFactor we need two folders: one for the geometry and textures
RFactor\GameData\Locations\MyTrack
RFactor\GameData\Locations\MyTrack\MyTrack
Open 3DSimEd, and from the Tools menu, select Expand–> Papyrus DAT. Navigate to
where your original GPL track is located and select your Mytrack.dat file.
Next, point 3dSimEd to your C:\Locations\MyTrack\MyTrack_dat folder and
extract the .dat file to that location. If your track was not packed into a .DAT file, then just copy
the files to your C:\Locations\MyTrack\MyTrack_dat workspace.
Now copy the .LP files from the GPL track to your
C:\Locations\MyTrack\MyTrack_dat folder.
2. Texture conversion.
If the GPL track was created with the tools GPLTRK and TRK23DOW, a lot of time can be saved
if the .TEX file used by TRK23DOW can be found. The .TEX file gives a listing of the texture
maps to be used for each track surface/wall. TrkMaker will automatically use such a file if it finds it
in the same folder as the .TRK file.
From the TrkMaker main window open MyTrack.XML with the Open XML command.
You should see a list box with the names of the tables that are in MyTrack.XML , you will need to
open the Material table so click on Material in the list box.
Expand the columns of the grid display by placing the mouse over the column dividers, grabbing
the dividers, so that you can resize the LLE and Comment fields.
column divider
The field we need to set is MapName. Even if you had a .TEX file you may have some entries set
to ‘error’. In the example above there was no .TEX file so all the MapNames are set to error.
In 3DSimED Imprt MyTrack.3DO from C:\Locations\MyTrack\MyTrack_dat and
switch the display of all objects off with Display->Object Filter ALL OFF. In
TrkMaker, select the text of the LLE field and use the mouse right button to give you a menu from
which you choose Copy.
Go back to 3DSimED and select View->Set View (keyboard shortcut V ) , within the Set View
dialog choose Paste Pos, hit OK. The view centre of 3DSimED has now been set to the first
occurrence of the material and by using either the mouse wheel or n ume rick ey‘ +’y ouc a nzoomin
on the geometry.
The Edit->Select Geometry at Centre command (s hortcut‘M’ ) will give you a
context menu allowing you
to select the faces at the view centre. In this
example the MapName required will be
wall1. When you open a GPL track the
material name is the texture map name.
Work through the material table until no more MapName entries are no longer s
ett
o‘e
rror
’(u
nle
ss,
of course, you do want to use a texture named error).
It’
spos sibl
et ha tTr k
Ma kerma ya skforawa lltop or wall end texture when none was used in the
Track.3DO. In this case you will need to remove the material in the WallTex table. In the grid
example above the Material table is showing the wall with material wall28 for the top and wall29
for the end. If this wall should not have a top or end then in the WallTex table the TexTop and
TexEnd fields set to wall28 and wall29 should be set to a blank (empty) string.
Make sure you save your work with the Write XML command.
Check your progress so far by Importing _trkmaker.scn with 3DSimED. Check that all faces
generated by TrkMaker have textures assigned.
The quick way to confirm this is to use Tools->Missing Textures & Objects. If there
are missing textures then you need to look at the Materials table within TrkMaker.
For the AI, and the correct timing of laps, rFactor needs a number of special response objects.
These objects can be created in TrkMaker using the VerticalObj table. Using the TrkMaker Open
XML command open the MyTrack.XML you created from the .TRK.
For each vertical object you need to define the longitude, latitude of the left and right of the object,
bottom elevation, height and the material name. You will also need to give the title of the object
which should be from the list below.
With the XML open go to the VerticalObj table (you may need to scroll down the list of tables
on the left)
1) Xfinish. An object which spans the track (including the pit lane) at the start/finish line.
Normally this object would have longitude of zero.
2) XSector1 & XSector2. As the names suggest these two objects span the track at the end of
sectors 1 and 2 and should have longitudes of approximately 1/3rd and 2/3rd around the track
3) XPitin & XPitout. These objects mark the start and end of the pitlane. You need them to
span the pitlane but not overlap any of the racing surface.
To get the correct longitudes and latitudes for these objects you can Import your original GPL .3DO
with 3DSimED and move the mouse over the track watching the bottom right of the status bar for
the three values labeled LLE which are the longitude, latitude and elevation of the cursor position.
Alternatively, by right clicking and selecting Memorize XYZ these values will be copied as text to
the clipboard and you can paste them into notepad to read or copy.
For each of the five objects make sure the Material is one already present in the Material table (e.g.
road01), set the bottom elevation to -2 and the height to 10 ( we are attempting to create objects that
cannot be missed so we are drawing it from 2m below the track surface to 8m above the surface).
You would normally set the LongEnd to the same as the LongStart ensuring the object is
perpendicular to the track. The LatStart is the left latitude and LatEnd the right latitude.
Once all five objects are added to the VerticalObj table, use Write to XML, and then use the
Write rFactor function to re-create the track surface objects in the
RFactor\GameData\Locations\MyTrack folder.
From within 3DSimEd and from the File Menu, select Import Model.
Import your MyTrack.3do file from C:\Locations\MyTrack\MyTrack_dat.
At this point we should delete the flaggers as these objects have no purpose in rFactor.
The quick way to do this is to go to Display->Object Filter and select All Off. Now
switch back on the display of flagger.3do and starter.3do objects, and exit with OK. With
Edit->Select All Displayed you should get a sub-menu with Objects, and from the
Objects menu select Erase. With Display->Object Filter All On switch on the
display of all your remaining objects.
At this point, use 3DSimED to Import the _ouput.scn that has just been created to check for
missing textures (Tools->Missing Textures & Objects) . The most likely missing
texture is _rgbmap which is supplied with 3DSimED and TrkMaker.
5.Setting up the track configuration files.
5.1.Info
First, let’
s take a look at these file extensions and what these files do. All of these files can be
viewed and edited with Notepad or other text editors. (You may need to right-click the file and
select Open With and select Notepad) With the exception of .tdf files, each of these files will
bel o ca t
edwi t
h i
na“ co nf i
gura ti
on ”folder within the main track folder. If your track has multiple
configurations, Long, Short, GP, etc, you will have a folder for each configuration, and new
copies of these files will be set up to reflect the needs of that layout.
.scn (scene) this file lists all of the objects the game will load when loading your track.
It also contains the file paths to search for them, and information about lighting and fog values.
Special properties for objects such as movable and vis groups (controls whether the object
is hidden at low graphic detail settings) are also controlled by this file.
You will also notice, that unlike Papy .3do, where you only have one object of each type, such as
cone.3do, and the .3DO file keeps track of multiple instances and their locations, you will have a
unique .gmt file for each instance: cone.gmt, cone001.gmt, cone002.gmt, etc. and the XYZ
coordinates are stored in the .gmt file itself.
TrkMaker writes a helper _NoName.scn file which includes a simple header.
.gdb contains the information about your event; Name, description, session details, pit speed,
etc. TrkMaker writes a helper _NoName.gdb file which can be modified quickly to work with a
converted track.
.cam This is the camera file, but editing it is beyond the current scope of this tutorial.
.aiw This is the AI file and includes the equivalent information as the GPL .lp files and portions
of the track.ini. It contains the pit, garage, pace/safety car and start grid locations.
.tdf This file is found in the Locations folder and is named terrain.tdf. It defines the
types of track surfaces, responses such as dust, grip settings, and bumpiness. If you need to define
custom track surfaces or customize existing surfaces, you can make a copy of it and place it in the
the root of your MyTrack folder, and rename it to MyTrack.tdf.
5.2.Borrowing files
Now that we know a little bit about the files we will be working with, we will need to borrow
some existing ones to get us started. We will also need to borrow a sky.gmt , a
skyboxi.gmt (horizon) and a texture file for the skyboxi.gmt. Toban will be the source for
these.
Later there are other files we will need from Toban so we are going to extract all of the geometry
and texture files. Create a folder C:\locations\toban and using the 3DSimED function
Tools->Expand->rFactor .mas open first Toban.mas and then Tobanmap.mas (in
rFactor\Gamedata\Locations\Toban ) giving C:\locations\toban as the
destination folder.
Copy sky.gmt, skyboxi.gmt, and bkb.dds from C:\Locations\Toban to
RFactor\GameData\Locations\MyTrack
5.2.1.MYTRACK.GDB
MyTrack
{
Filter Properties = RoadCourse 2005 SRGrandPrix OWChallenge
Attrition = 30
TrackName = MyTrack
EventName = MyTrack
GrandPrixName = MyTrack //this must be the same as event name
VenueName = MyTrack
Location = MyTrack, NoPlace
Length = 1.609 km / 1.0 miles
TrackType = Permanent Road Course
Scroll down the bottom and do the same with the folder to save car setups to.
SettingsFolder = MyTrack
Save, as rFactor\GameData\Locations\MyTrack\MyTrack\MyTrack.gdb.
Note the different folder from the one in which you opened the _NoName.gdb
5.2.2.MYTRACK.SCN
The first section of the .scn file determines the search paths for your track files:
Replace references to NoName with MyTrack. Note the reference to Common which is
essential for the sky objects referred to later on in the .TRK file.
CUBEASF
//-------------------------------------------------------
SearchPath=.
SearchPath=MyTrack
SearchPath=MyTrack\MyTrack
//-------------------------------------------------------
//MASFile= MyTrack.MAS
//MASFile= MyTrackMap.MAS
MASFile=COMMONMAPS.MAS
//----------------------------------------------------
The // are comment characters and anything to the right will be skipped. MyTrack.Mas and
MyTrackMap.Map can be created later.
Save the scn file to (note the different folder)
rFactor\GameData\Locations\MyTrack\MyTrack\MyTrack.scn.
6.Creating the AI
The file MyTrack.AIW needs AI information for MyTrack. TrkMaker can help make a very
basic, limited, AIW file which will get us started.
In TrkMaker open your MyTrack.XML. We need to complete the AIInfo table before creating
the AIW (you may need to scroll down the list of tables to get to AIInfo).
All the values must be present. MergePitIn and MergePitOut are the longitudes at which the AI cars
will merge to and from the pit line. StallsLongStart, and StallsLatStart give the longitude and
latitude of the pit stall at the start of the pit lane while StallsLongEnd and StallsLatEnd are for the
end of the pit lane. Do n’tf orge ty ouc anus e3DSi mEDt ohe l
pg e
tthesepo sitionsfory oumoving
the mouse over the track watching the bottom right of the status bar for the three values labeled
LLE which are the longitude, latitude and elevation of the cursor position. Alternatively, by right
clicking and selecting Memorize XYZ these values will be copied as text to the clipboard and you
can paste them into notepad to read or copy.
Once you have completed the AIInfo table hit the Write AIW button. You will be prompted
for .LP files so navigate to your C:\Locations\MyTrack\MyTrack_dat folder and
select one of the .LP files. Next you will be prompted for the AIW filename, browse to the your
RFactor\GameData\Locations\MyTrack\MyTrack folder and overwrite
MyTrack.AIW
7.Converting a Camera file
TrkMaker can convert N2K3 .CAM files to rFactor .CAM files. With MyTrack.XML opened in
TrkMaker select the Cam Converter button. You will be prompted for your N2K3 .CAM file and
then the name of the rFactor .CAM file to create which will be
rFactor\GameData\Locations\MyTrack\MyTrack.cam. The rFactor .CAM file is a
text file which you can edit yourself.
If all went well, have fun turning a few laps and you should be also able to sit back and with
CTRL-I let the AI take over the driving while you enjoy the scenery.
If your track does not show up in the track list then you have probably made a mistake in the top
line of MyTrack.GDB.
If rFactor failed to load the track because of a problem with missing textures, you will get a
message which should help you to find which texture is missing. If you are getting no error
message try running rFactor with the argument trace3 and then open trace.txt from the
UserData\LOG folder and read the trace particularly at the end of the file.
If the trace.txt does not help, and you are crashing about 75% through loading then it may well be
that there is a problem with the .AIW file.
Look for the rFactor track this seems closest in length (but longer). Copy this AIW over
MyTrack.AIW in the rFactor\GameData\Locations\MyTrack\MyTrack folder.
We now need to determine our garage location for where the car will appear when we first enter the
track.
Open MyTrack.AIW with notepad. Scroll down through the starting grid entries and look for
this section:
[PITS]
TeamIndex=0
PitPos=(53.345,-2.370,-385.856)
PitOri=(-0.001,-1.526,0.000)
GarPos=(0,52.901,-2.370,-382.767)
GarOri=(0,-0.002,0.003,0.001)
GarPos=(1,50.156,-2.370,-382.759)
GarOri=(1,-0.002,0.003,0.001)
GarPos=(2,46.933,-2.370,-382.749)
GarOri=(2,-0.002,0.003,-0.001)
GarPos (Garage Position) is the location where your car appears when you first enter the track.
Depending on the track, the garage and pit locations may or may not be the same, but for the
purpose of this tutorial, we will assume that they are.
There are 3 possible garage locations for each pit stall and each is indicated by the index numbers 0,
1, 2. Be careful not to remove these index numbers when entering your coordinates.
The PitOri and GarOri ( orientation ) entries control the Pitch, Yaw and Roll of the
position.
***IMPORTANT*** Turn OFF flag rules or you will get fined and DQ
for driving the wrong way. Until we create a new AIW file
specifically for our track, we will get Wrong Way warnings as we
drive.
IF you have no luck you could try an .AIW from another track, repeating the process above.
If you are having problems driving some of the surfaces or you think the surface should have
different grip levels then you will need to edit the material names (Not the texture names, they
can be named anything), but the materials must be named by surface types defined in
rfactor\gamedata\locations\terrain.tdf.
These rules apply to driving surfaces, and walls, there is no need to change the material names of
the track details used for the start line etc.
The material name has to match something in the terrain.tdf file. More correctly, the material
name has to start with a name defined in terrain.tdf.
So a valid name for a road material could be roada, road1, or roadzzzz and so on.
If a drivable surface is not named correctly, your car will get stuck and sink into it. Grass, paint
lines, asphalt, cement, dirt/gravel and rumble strips must be named correctly.
For the walls the material name does not have to match one defined in the terrain.tdf but you will
just get a solid wall if there is no match. For softer walls you will need a material prefixed with
twal.
In TrkMaker open your TractionTex table and look at the Tex field.
For each TractionTex surface check the prefix of the material name and make sure it matches one
of the prefixes defined in RFACTOR\gamedata\locations\terrain.tdf.
If you need to change a material name you are going to also have to reflect that change in the
Material table.
The materials for the walls are defined in the WallTex table and again you should check for
matches to walls in RFACTOR\gamedata\locations\terrain.tdf.
Again, if you change a material name the material table will also need editing.
Obviously, if you need to make changes you will have to write the rFactor objects again and
attempt to drive the track again.
Note a quick way of changing the material names is to do the renaming in 3DSimED. Import
_TrkMaker.scn and use the Edit->Material Editing to check/edit the material names. However,
changing the material names in TrkMaker ensures you can keep your changes for every time you
need to write the track.
If you are going to release your track then at some point you should pack the .GMT and .DDS files
to .MAS files.
Once you have done this you should delete the .GMT and .DDS files.
CUBEASF
//-------------------------------------------------------
SearchPath=.
SearchPath= MyTrack
SearchPath= MyTrack\MyTrack
//-------------------------------------------------------
MASFile= MyTrack.MAS
MASFile= MyTrackmap.MAS
MASFile=COMMONMAPS.MAS
//-----------------------------------------------------