Course Maker Toolbox

  • Thread starter eran0004
  • 104 comments
  • 34,530 views
11,171
Sweden
Sweden
eran0004
tools3.jpg

This thread is for collecting links to the available GT6 course maker tools and resources scattered around GTPlanet, to make them easier to find. If you know about a resource that is not listed here, please post the link and I'll add it to the OP. If you don't want your resources listed here, let me know and I'll remove them.


A. Course Creation Tools (for creating new tracks)

i. Track Path Editor
The official app released by PD for iOS and Android.

On iTunes
On Google Play


ii. Alternative APK's (for Android)

Alternative versions of the official app. Earlier versions and modded versions.

Earlier versions:
1.0.0 @A.D.I.O.S
1.0.1: No link

@J24681357 's mod (flat tracks).

@PR1VATEJ0KER 's mods (wild elevations / disabled checks & homestraight anywhere / disabled checks).


iii. Android Emulators
For running the Android app on a PC

List of Android emulators


iv. Third Party Course Makers

For creating tracks from scratch

@eran0004 's Track Layout Creator (Python 3.6 or higher required)


B. Course Editing Tools (for editing and modding tracks)


i. TED Extraction and Uploading

For extracting the TED files from GT6 replays and for uploading TED files to GT6.

@Razerman 's GT6Web_WFA extractor and uploader


ii. Hex Editors and resources
For viewing and manual editing of TED files.

010 Editor (Free 30-Day Trial)

@Razerman 's 010 Editor TED template

@Mr Grumpy 's road and decoration codes

@NingDynasty 's 010 Editor TED templates (including road and decoration codes)


iii. TED Editors
For editing of TED files.

@tarnheld 's TED Editor (Python 3 required)

@eran0004 's Elevation Editor v.1.1.5 (Python 3 required)


C. Other resources


i. Manuals

Polyphony Digital's Track Path Editor Manual


ii. APK Height Maps

For viewing the elevation of the course maker sceneries.

@Outspacer 's .raw height maps.

@Outspacer 's contour maps (Andalusia, Death Valley, Eifel, Eifel flat)

@eran0004 's contour maps: Andalusia, Eifel


iii. Track Reference Data

@Silvio 's Satellite Track Maps

@Sploshington 's Classic GT Track Layouts

Geocontext Profiler (for generating real world elevation profiles)

Maps to GPX

iv. Course Sharing

GTPlanet's GT6 Track Database
 
Last edited:
Track Layout Creator

Latest version: 3.4 (2017-11-18)

Requirements
Python 3.6 or above
Windows (Linux/UNIX and Mac OS may work, but is untested)

About
The Track Layout Creator is a community-developed course maker. It's intended to be a quick and easy way to create advanced and precise track layouts and to achieve that it is using a polygon modelling method where straights are drawn between the polygon points while turns are generated by rounding the corners of the polygon. The tool samples the heightmap of the scene to generate the elevation data.

screen (10).png


Basic commands
At the top left of the window there is a toolbar, with the following tools:

pan.png selection.png pen.png rotate.pngcamber.png scale.png mirror_x.png mirror_y.pngreverse.pngrandom.png zoom_in.png zoom_out.png screenshot.png

pan.png
Pan tool: Click and drag to pan the view. Panning can also be done with any tool by right-clicking on the canvas (not on a polygon point) and dragging.

selection.png
Selection tool: Click on a polygon point to select it. Shift-click to add/remove from selection. Click elsewhere to clear selection. Click on a selected point and drag to move all the selected points. Press <a> to quickly select all points. Press <delete> to delete any selected points. Right-click on a polygon point and drag up / down to change the turn radius of that corner.

pen.png
Pen tool: Click on the canvas to place a polygon point at the location. Click on a polygon line to insert a point between the two endpoints of the line. Shift-click on a polygon point to delete it.

rotate.png
Rotate tool: Click and drag to rotate the selected points.

scale.png
Scale tool: Click and drag to scale the selected points (also scales the turn radius).

camber.png

Camber tool: Click and drag to adjust the camber of the selected points. Setting camber to "Global" makes the application calculate the camber angle based on the global camber settings in the left window.

mirror_x.png mirror_y.png
Mirror x / mirror y: Click to mirror the selected points around the x or y axis.

reverse.png
Reverse tool: Click to reverse the direction of the track.

random.png
Random tool: Click to apply a random translation of the selected points.

zoom_in.png zoom_out.png
Zoom in / out: Click to zoom in / out. Zooming can also be done by scrolling the mouse wheel, or by pressing <+> or <->.

screenshot.png
Camera tool: Click to export a postscript image file of the current view. PostScript files are vector graphics files and can be converted to other formats such as .jpg or .png here: http://psviewer.org/ConvertPsToJpg.aspx

Menu options
File menu
  • Load track (ctrl-o): Loads a saved track in the *.trk format. A *.trk file contains all the track settings, in addition to the polygon data.
  • Save track(ctrl-s): Saves the track as a *.trk file.
  • Import polygon: Imports a polygon file (.pgn). This contains only polygon data.
  • Export polygon: Exports the polygon as a .pgn file.
  • New in 3.4: Import reference path (.gpx): Imports a .gpx file and uses it as a reference path.
  • Import Reference path (.csv): Imports a .csv file containing Latitude and Longitude data, for use as reference path.
  • New in 3.1: Import reference path (.ted): Imports a .ted file and uses it as a reference path.
  • Export to TED: Exports the track as a .ted file, which can be uploaded to the GT6 game server.
  • Export to PostScript: Exports the current view as a PostScript file. See description of Camera tool above.
  • New in 3.3: Draw isometric view: Creates a new window where a snapshot of the current view is drawn in an isometric projection.
  • New in 3.2: Preferences: Various track and display options (most of them used to be in a panel to the left of the canvas).
  • Quit: Quit the application.
Edit menu
  • Undo (ctrl-z)
  • Redo (ctrl-y)
Display menu
  • Check items to display them, uncheck to hide.
Scenery menu
  • Select the location of your track (Eifel, Eifel Flat, Andalusia, Death Valley)

Euler curves and hairpins
Version 3.0 introduces Euler curves and procedural hairpins.
  • Euler curves adds spiral curves at the start and the end of a turn. This provides a linear increase in curvature until the main curvature of the turn (determined by the radius value of the polygon point) has been reached and makes turn entry and exit much smoother and creates a more natural flow of the road.
  • Procedural hairpins are automatically generated for all turns with an angle greater than 140 degrees and a radius less than 30 meters and greater than 10 meters.
  • New in 3.1: Selecting a polygon point now displays handles that will let you adjust the number of Euler segments / the length of the procedural hairpin for that corner. Just click on a handle and drag to adjust. Set it to 1 to turn an Euler curve into a normal curve.

Navigation panel

Version 3.2 introduces the navigation panel.
  • The navigation panel is the dark blue strip below the canvas.
  • The navigation panel displays a preview of the track's elevation. The preview is colour-coded to indicate how steep the slope is.
    • Black: 20% or greater
    • Red: 15-20%
    • Yellow: 10-15%
    • Light blue: 0-10%
  • Left-clicking on the navigation panel centers the canvas on the corresponding track location and places a cursor on that location.
  • Pressing <c> on the keyboard centers the canvas on the cursor.
    • If no cursor is placed, the canvas is centered on the average coordinate of the entire track.
  • Right-clicking on the navigation panel removes the cursor.

Limitations
  • Make sure that no segments (straights or curves) of the track have a length shorter than 15 meters. The game sometimes struggles with lengths shorter than 15 meters and can lead to AI failing to navigate a corner properly or an invalidated lap time. Keep in mind that all turns consist of at least two segments, so the length of a turn should not be less than 30 meters.
  • Placing a curve on a main straight with a pit wall can lead to unexpected behaviour, especially when the curve is placed at the pit entry or pit exit. This can lead to the pit collision mesh extending onto the road or to AI navigation issues in the pit. Eifel seems to be more sensitive to this than Andalusia and Death Valley, but issues can occur at all scenes. Update: When placing an Andalusia pit on a curve, make sure that: (1) The first 200 meters are straight; (2) That the pit exit is on a straight or in a right turn.

Warning indicators
There are two types of warnings that will be indicated on the screen:
  1. Length of a road segments is less than 14 meters: Indicated with red lines next to the road + a red triangle on the road.
    This indicates that the distance between two CP points (which are used to construct the track) is too short, which can lead to AI navigation issues or lap invalidation in the game. Note that a turn is at least two segments, so the turn length should be at least around 30 meters.

  2. Turn radius is less than the road border width: Indicated with red lines next to the border + a red dot at the arc center.
    This indicates that the border around the road is intersecting with itself. There is no performance issue with this, but it may look ugly.
Examples: In the image below there are four warnings displayed. From left to right:
  1. This straight segment is too short.
  2. This curve is too short and the border is intersecting with itself.
  3. This curve is too short.
  4. The border of this curve is intersecting with itself.
screen (8).png

3D View
Skärmbild (275).png


Version 3.3 introduces a 3D view (File -> Draw isometric view). This creates a new window that allows you to look at the track in an isometric projection. In this view the elevation is scaled up by a factor of four, to give you a better idea of the shape of the terrain.
  • The 3D view only displays the part of the track and the landscape that is visible in the main window (it takes a snapshot of the landscape). You can pan and rotate the 3D view, but the piece of the landscape that is displayed is fixed. If you want to see another part of the landscape you have to go back to the main window, pan the view to that location and then open up another 3D view window.
  • Just like with the main canvas, you can export a screenshot of the 3D view to a postscript file by clicking on the camera icon in the the 3D view toolbar. The exported file can be found in the img folder and is named iso.png.
  • You can't make any edits to the track in the 3D view - it's for viewing only.
 

Attachments

  • Track Layout Creator 3.4.zip
    4.6 MB · Views: 422
Last edited:
Track Layout Creator

Latest version: 1.6.1 (2017-04-11)

Crashes on startup for me no error detail in the console window. Did the same with 1.5. Works on my windows 7 pc but not on my windows 10 for some reason. 1.3.8 still works fine.
 
Crashes on startup for me no error detail in the console window. Did the same with 1.5. Works on my windows 7 pc but not on my windows 10 for some reason. 1.3.8 still works fine.

What version of Python do you have?

Edit: Open the script with IDLE and try to run it there (right-click -> Edit with IDLE). You should see an error message there if it fails to run.
 
Last edited:
What version of Python do you have?

Edit: Open the script with IDLE and try to run it there (right-click -> Edit with IDLE). You should see an error message there if it fails to run.
3.6, TY for the IDLE tip will do when I get home.
 
I've got python 3.6.1. When I try to run your TLC 1.7 it flashes a quick command prompt window and then disappears. What am I doing wrong?
Edit: I'm having the same issues with the elevation editor as well.
 
I've got python 3.6.1. When I try to run your TLC 1.7 it flashes a quick command prompt window and then disappears. What am I doing wrong?
Edit: I'm having the same issues with the elevation editor as well.

Start IDLE and run the script there. The IDLE interpreter doesn't close when the script crashes so you'll be able to read the error message there.
 
Hey guys and gals, found a new tool that'll prove quite handy in retrieving elevation and tracing routes.
https://mapstogpx.com/
What you do is first, you plot your route using google maps directions tool. Then, take the page link at the top and paste it into this website to turn it into a .gpx file. Which can later be used to either trace and or retrieve elevation vales using Geocontext.
Now you should not have to take the time to plot a route dot by dot.
Just use Google maps -> mapstogpx -> Geocontext or GPS Visualizer -> Track editing tools.
 
Decoration Editor

This tool is currently a prototype. It does not have a user interface yet, so it will have to be operated through the interactive IDLE interpreter.

To start the tool: Right-click on Decoration Editor 0.1.py and select Edit with IDLE.
To use the tool: Use Python commands. Type help_me() to get a brief list of premade commands.

To add a decoration, call add_deco().
add_deco() takes the following arguments:

key: Can be a single key or a tuple containing several keys. If a tuple, the function will pick a random choice from the provided keys.

distance: A distance along the track where the decoration is to be added. Can be a single value or a tuple containing start distance and end distance. If a single value is used, the function will calculate start and end with the justify argument.

right: A boolean variable indicating which side of the track the item should be placed at. Use True (or 1) for placing it on the right side of the track and False (or 0) for the left side.

justify: If a single distance value is provided, justify determines where to place the decoration relative to that distance. If 0.0 the distance will be the start of the decoration, if 1.0 the distance will be the end of the decoration, if 0.5 the distance will be the center of the decoration. Any value between 0 and 1 can be used.

This is a list of all decoration keys for Andalusia. They are not case-sensitive, but you need to add quotation marks (single or double) when using them as key arguments, for example: 'marshall_post', or "MARSHALL_POST".

CURB
BUILDING_RIGHT_A
BUILDING_RIGHT_B
BUILDING_RIGHT_C
GATE_RIGHT_A
GATE_RIGHT_B
GATE_RIGHT_C
GATE_BRIDGE
GATE_RALLY
MARSHALL_POST
ROCK_INNER
ROCK_OUTER
ROCK
ROCKS_RIGHT_A_START
ROCKS_RIGHT_A
ROCKS_RIGHT_A_END
ROCKS_RIGHT_B_START
ROCKS_RIGHT_B
ROCKS_RIGHT_B_END
SIGN
SIGN_RIGHT
SPECTATORS
STAND
TENT_INNER
TENT_RIGHT
TREE
TREES_INNER_A
TREES_INNER_B
TREES_OUTER
TREES

Example:

Track = loadTed()
#comment: Call this to load a *.ted file. The loaded track is stored in the variable called Track.

add_deco('spectators', (2000, 2200), True)
#comment: This adds a spectators decoration starting at 2000m and ending at 2200m. It is added on the right side of the road.

add_deco('building_right_a', 1500, False, 0.0)
#comment: This adds a building decoration starting at 1500m. It is added on the left side of the road.

add_deco(('trees_inner_a', 'trees_inner_b'), 2300, True, 0.5)
#comment: This adds a random pick between trees_inner_a and trees_inner_b, centered at 2300 m. It is added on the right side of the road.

add_decos(('building_right_b', 'building_right_c'), 1000, 1500, False)
#comment: add_decos is a variation of the add_deco function, but it fills the space between the provided start distance and end distance with decorations. In this example it adds a random selection between building_right_b and building_right_c on the left side of the road starting at 1000m and ending at 1500m. Note that the distances are not a tuple here, but individual variables.

sort_decos()
#comment: This sorts the decorations by start distance, so that the decoration that starts first appears first in the list.

print_decos()
#comment: This prints an overview of all the decorations of the track.

exportTed(Track)
#comment: Call this to save the track.
 

Attachments

  • Decoration Editor 0.1.zip
    9.5 KB · Views: 80
When I put exportTed(Track) in the decoration editor, I get this error:

Traceback (most recent call last):
File "<pyshell#22>", line 1, in <module>
exportTed(Track)
NameError: name 'Track' is not defined
 
When I put exportTed(Track) in the decoration editor, I get this error:

Traceback (most recent call last):
File "<pyshell#22>", line 1, in <module>
exportTed(Track)
NameError: name 'Track' is not defined

You need to use the same name as when you loaded the track.

For instance:

my_track = loadTed()
exportTed(my_track)

Track = loadTed()
exportTed(Track)

silverstone = loadTed()
exportTed(silverstone)
 
You need to use the same name as when you loaded the track.

For instance:

my_track = loadTed()
exportTed(my_track)

Track = loadTed()
exportTed(Track)

silverstone = loadTed()
exportTed(silverstone)

Strange, when I did this again with the same name, it gives me the same error. :/
 

I see. You don't have to use the file name, you can call it whatever you want. However, you can't just call loadTed(), you need to store the track in a variable so that you can access the track from the memory.

So instead of:

>>>loadTed()

Use:

>>>my_track = loadTed()

That will store the track in the variable my_track, and then you can export it using:

>>>exportTed(my_track)
 
@eran0004 Ok, I'm trying to load the ted using the command, yet I'm getting a Syntax error. Thought it was logical at first so I changed the track file name. Still getting a syntax error. Should I be storing the .ted files in a particular place so that the editor can retrieve and load it?

Copy of the error message.
>>> Piuma Rd_Andalusia = loadTed()
SyntaxError: invalid syntax
>>> Piuma Rd Andalusia = loadTed()
SyntaxError: invalid syntax
>>>
 
@eran0004 Ok, I'm trying to load the ted using the command, yet I'm getting a Syntax error. Thought it was logical at first so I changed the track file name. Still getting a syntax error. Should I be storing the .ted files in a particular place so that the editor can retrieve and load it?

Copy of the error message.
>>> Piuma Rd_Andalusia = loadTed()
SyntaxError: invalid syntax
>>> Piuma Rd Andalusia = loadTed()
SyntaxError: invalid syntax
>>>

You can't have a space, delete it or use a _ instead. Also, it's much easier (and faster) to just use the name my_track. The more complicated the name, the bigger the risk of spelling it wrong.
 
You can't have a space, delete it or use a _ instead. Also, it's much easier (and faster) to just use the name my_track. The more complicated the name, the bigger the risk of spelling it wrong.
Ok, I tried that, and this was the error message I received:

>>> my_track = loadTed()
Traceback (most recent call last):
File "<pyshell#7>", line 1, in <module>
my_track = loadTed()
NameError: name 'loadTed' is not defined
>>>


I even tried placing the .ted file in different locations. Originally. I store my teds on my dropbox account to go between different PC's. I placed a copy to the PC with the editor. Same message. I placed the file in the editor folder. Same error message.
What am I doing wrong?
:confused:
 
Ok, I tried that, and this was the error message I received:

>>> my_track = loadTed()
Traceback (most recent call last):
File "<pyshell#7>", line 1, in <module>
my_track = loadTed()
NameError: name 'loadTed' is not defined
>>>


I even tried placing the .ted file in different locations. Originally. I store my teds on my dropbox account to go between different PC's. I placed a copy to the PC with the editor. Same message. I placed the file in the editor folder. Same error message.
What am I doing wrong?
:confused:

Are you sure you're running the script?

You should see this message in the IDLE window when the script is run:

RESTART: C:\[whatever the path is to the file]\Decoration Editor 0.1.2.py
>>>
 
Ok, I see where you're talking about. I have to run the program to get the correct script. From there, you're commands work perfectly. Thankyou. Also, what's the code for resturants and other decorations such as these listed by Patrick8308?
https://www.gtplanet.net/forum/thre...racks-discussion.337816/page-51#post-11751241

A restaurant is a road item and not a decoration, so it has to be placed with hex editing. I'll see if I have time to add some basic road editing functions this weekend.
 
@eran0004 Is it possible to add these items? Or would they be considered road items, not decorations?

I have a few questions regarding the Andalusia Track Codes composed by @Mr Grumpy. There are way more possibilities of decoration than in the TPE app. So before manually hex editing the whole scenery stuff I'd like to clear what code generates what.

Medic Road....................... 10656079826827822353 = 100m

View attachment 635795

--> I'm pretty sure this is supposed to be that because of those 2 ambulances next to the track.


Forest Road Start............. 1. 12262457518915536145 = 50m

View attachment 635794

--> This is pretty clear.

I guess that every Forest Road needs a Start and Finish Segment and in between there are several options as follows:

Trees.................. 2. 12609516165199774993 = 100m
Mix & Building Type 1........ 2. 9431585095388995157 = 100m
Match Building Type 2........ 2. 9691949448846351957 = 100m

Building Raised........ 2. 10719130221611009297 = 100m

View attachment 635791

Rock Bank Type 1.............. 1. 9383531457118946577 = 50m
3 Parts 2. 11495438207378998545 = 100m
TRACK_LEFT_AB (2) 3. 9793640498186372369 = 50m
RAILTYPE_START (1)

View attachment 635798

--> Is this supposed to be the Rock Bank? Is Type 1 the grey coloured one?

Rock Bank Type 2.............. 1. 11486993958077678865 = 50m
3Parts 2. 10205719864090772753 = 100m
TRACK_LEFT_AB (2) 3. 11222970429923083537 = 50m
RAILTYPE_START (1)

View attachment 635797
 
Back