Modified Track Path Editor + Tracks/Discussion

@tarnheld
I do realize that UI is hard to make, but i never implied that we needed it right now.

That's why in my previous comment i wrote "one day".

If you want to you can test run this interface and let me know what you think :)

Just unzip the folder and run the script (Python 3 needed).

The controls:
  • Append a point: Left-click on an empty location (if a point is selected the first click will deselect it, click again to add the point). This point is added at the end of the polygon.
  • Insert a point: Left-click on the line of the polygon where you want the point to be inserted (if a point is selected the first click will deselect it, click again to insert the point)
  • Select a point: Left-click on the point. Selected points are marked in yellow.
  • Select multiple points: Hold shift and left-click on the points you want to add to the selection.
  • Deselect points: Left click on a location not occupied by a point.
  • Move one or multiple point: Select the point(s) and drag
  • Change corner radius: Right-click on the point and drag up/down. Currently he corner radius is limited by the distance between the neighboring points of the polygons - the corner is not allowed to use more than half the distance between them.
  • Delete a point: Select a point and press <Delete> on the keyboard.
  • Pan the view: Right-click on an empty location and drag.
  • Zoom in: Press <Up> arrow on the keyboard.
  • Zoom out: Press <Down> arrow on the keyboard.

The zoom function is a bit dodgy at the moment, as it doesn't zoom towards the center of the screen. The view tends to jump towards the edges when you zoom, so you might have to pan the view to get back to the place where you were.

Also, you can't currently save the layouts you create, so don't get carried away too much and create amazing tracks that you can't keep!
 

Attachments

  • course_layout.zip
    4.4 KB · Views: 29
I'm hoping that we can add functionality to the ted-editor that will automatically convert from one scenery area's ROADs and DECORATIONs to anothers and vice verse. I would think a simple conversion table, and simple replacements would be able to handle most (perhaps all) of that?

Look at the raildef files in the rd folder in the ted-editor, they come from the TPE and they contain a lot of info about the road and deco items, you find a railUnit xml element for each uuid, and a railDictionary where each uuid has an index and there are 63 items per track -- i haven't tested it yet but i suspect the railDictionary for each track can be used to map uuids for different tracks -- just use the uuid at the same index in the dictionary.

Do these entries need to be listed in the proper order? For example, could you switch the first and last entries and still make it work? Also, what are the limits on start and end positions? Are there size limits? Can you start start and end at a position that is different than position 0? What happens if you leave a gap between road meshes, or if you cause some overlap? What happens if the start and finish positions are equal, or if the finish position is less than the start position? What effect does stretching or shrinking the distance between the start and end positions look like out on the track?

The raildef files contain also an intrinisc length for each item/uuid -- that gives you the proper length, the length can be stretched a bit but should not be too far from the intrinsic length. Also the whole track should be covered with road items with no overlap, otherwise uploading and rendering in GT6 might not work.

Thanks for the investigation, good job! :)👍
 
If you want to you can test run this interface and let me know what you think :)

Good job, it's a nice and intuitive way to sketch tracks! Two suggestions: it would be great if the circular handles at the start/end of the arc could be dragged to change radius: calc the distance from the mouse point to the corresponding arc point of the polygon and use that for the new radius, clamping at minimum of half the lengths from the arc point to the two neighboring points. And when inserting a new point it would be great if you would insert just after mouse button release and start an insertion mode on button press where you see a preview of the new point under the mouse and added polygon parts while moving the mouse around. And while you are in the insertion mode, you could find the nearest line segment to the mouse point and insert the new point between the endpoints of the nearest segment. That way it's possible to insert between all existing segments and with preview it would be more intuitive. :cheers:
 
So what would you guys suggest with android emulators? I'm not sure if I should trust Blustacks, as I think it might have played a major role in my last HDD going corrupt.
Leapdroid vm1 seems to be pretty stable for me running on pc
 
Amazing @eran0004, it works great.

Suggestions:
1. Dark grey background please, eyes are hurting!
2. Fine Point positioning: Middle mouse click on a point, then use the arrow keys to move the points bit by bit.

Is this too dark?

Some other changes:
Labels: corner length is now drawn by the track while radius and angle is drawn next to the polygon point.
Zooming is now done with the mouse wheel (still doesn't zoom to where the mouse is, but it's on the to-do list)
You can now use the keyboard arrows to move any selected polygon points.

Skärmbild (20).png
 

Attachments

  • course_layout.zip
    5 KB · Views: 22
If you want to you can test run this interface and let me know what you think
Wow! This really works well! I was thrilled to see a cool little Pocono track pop up after only three mouse clicks!

I'd like to try using this to trace over real-world roads and see how it works. I at first suspected (like you) that it wouldn't work very well for that... but laying down straight stretches is so quick and easy that I am beginning to think that having to spend a little more time tweaking the corners may not be so bad!

I think using the right mouse button to increase/decrease the radius of the corners works great and is very intuitive! Excellent choice!

You wrote:
Also, note that you can easily create increasing/decreasing radius corners (see bottom left corner) by adjusting the angle between the vectors.
I actually found this difficult to do because you need to move the vertices around in order to change the angle, and moving one vertex causes the other section of the track controlled by that vertex to move too, which is usually not desirable to me. There is a way around this, by adding more vertices, but it gets complicated quickly and I didn't find it very easy to do. I think there might be a better way...

Any chance that you could add the ability to slide the centers of corner arcs side to side to allow for asymmetrical corners? Earlier I though a manipulator handle would be useful... but maybe you could use the right mouse button click and drag for that too, perhaps using side-to-side instead of forward/backward? If you did implement that, it may be difficult to increase/decrease the radius without accidentally moving side-to-side as well, so perhaps holding SHIFT while dragging with right mouse button could be used to create asymmetrical corners? Then again, maybe being able to adjust both the radius and the shape at the same time would make it a snap to create any shape corner?

Anyways, I'm really looking forward to future updates!
 
Question: Does your new tool use straight stretches between corners? For example, when creating the track below, is the 475 m straight stretch at the bottom and the 45 m one in the top left considered as actual straight stretches, or are they corners with infinite radii?

Richmond.png


Are corners with infinite radii even possible?
 
Last edited:
Question: Does your new tool use straight stretches between corners? For example, when creating the track below, is the 475 m straight stretch at the bottom and the 45 m one in the top left considered as actual straight stretches, or are they corners with infinite radii?

View attachment 623832

They are straight lines.

Edit: And the TED format doesn't allow infinite radius corners, as you need the coordinates of the center of the arc.

Edit 2: S-bend, anyone? :D

Skärmbild (21).png
 
Last edited:
Look at the raildef files in the rd folder in the ted-editor, they come from the TPE and they contain a lot of info about the road and deco items, you find a railUnit xml element for each uuid, and a railDictionary where each uuid has an index and there are 63 items per track -- i haven't tested it yet but i suspect the railDictionary for each track can be used to map uuids for different tracks -- just use the uuid at the same index in the dictionary.
Okay, let me take a crack at understanding the raildef file. I'm especially curious if this file is used by the TPE to help it display things, or if it uses this file to create data to send to GT6. Any thoughts?

First let me examine the 'railDictionary" (stranely placed in the middle of the file) that lists all the uuid codes for a scenery area and seems to pair each code to a "slot." This pairing is a reasonable assumption based on a couple of facts: first, they are the only two things found within the railDictionary, and second, there are the same number of uuids as there are slots. Still, I find this to be very strange because there is no need to store the slot values if the values read out of the file can be assigned based on the order they are listed. Also, the uuids and slots are not structured together the same way everything else in the file is, but are simply two separate lists. Still, I see no other option than to assume they are supposed to be paired together. But honestly, what is the point of the slot? If it is paired to the uuid like we think it is, it does nothing but give us a shorter handle to the uuid. Maybe, like you said, the slots organize the uuids in some way, but my gut tells me otherwise. I do not think that we will be able to use the slots to convert from scenery area to another because, although there are 64 slots in total (ranging from 0-63) in Andalusia, there are only 55 (0-54) in Death Valley, Eifel, and Eifel Flat. When I get time I will try to extract all of this data in a way that will help me look for patterns that may help us.

Next let me examime the "RailUnit" structures. I counted them (roughly) and there appears to be one RailUnit for each uuid. I haven't checked to make sure that there is one and only one RailUnit for each uuid, though I suspect it is so. Assuming this to be true, the RailUnit pairs each uuid with a bunch of data, though we apparently only know what one of them is for. The "unitLength" appears to be the "recommended" length of the object represented by the uuid. I'm wondering if the TPE could use this value to graphically show how far the object extends when we are designing a track. This may make sense for DECORATIONS, but the TPE doesn't graphically show ROAD items (does it?), so this seems unlikely to me. Therefore I think that this file is used strictly to create data to sent to GT6 to help with track creation. Which leads me to wonder what all of the other values are for. In each RailUnit there are four "width" values, two "modelWidth" values, a "type," a "flag," a "checkpoint," a "floorheight," a "dispositionA", a "dispositionB," a "decoratedRailType," two "dispositionType" values, two "decoratedRailRot" values, and a "crowdCount" value. Anyone know what these might be for? Those are a lot of values! What would be the point of them if they didn't do anything interesting? Lots of experimenting to do!

Next, let me examine the "RailGroup" structures. These appear to group certain uuids together. I haven't looked at this much yet, but I suspect we will find the multi-component start and finish line ROAD segments here, among other things. Each RailGroup has a "name" and an "attr," and then each uuid in the group is listed under a structure heading that appears (to me) to determine its "behavior" in the group. Every possibly behavior seems to be listed for each RailGroup, but if the behavior is not used a special format for the structure heading is used to indicate this. There appear to be six different behaviors. They are: Transition, Loop, Random, Right, Left, and TransitionDeco. A "RailGroupItem" is listed for each uuid under the behavior heading it "belongs" to. The RailGroupItem contains a "name," the uuid, an "appearance" value, and a "flag." I find it very strange that each uuid is paired with a name so deeply inside a structure like this. Why aren't they named in the railDictionary? This means, however, that a single uuid can have different names depending upon which RailGroup it is in. I haven't checked to see if any uuids actually do have more than one name, but it wouldn't be terribly difficult to determine this - not that the names do us much good. In fact, the RailGroup names are pretty obscure, for example: "GT_CRSMK_normal." This particular RailGroup consists of the following:

"loop" behavior (maybe these repeat?)
GT_RAIL_OBJS_NORMAL
"right" behavior (probably meaning they appear on the right side of the track?)
GT_RAIL_OBJS_DECO_FLOWER01_R
GT_RAIL_OBJS_DECO_FOREST01_R
GT_RAIL_OBJS_DECO_TENT
GT_RAIL_OBJS_DECO_STAND01_L
GT_RAIL_OBJS_DECO_CURVESTONE_R
GT_RAIL_OBJS_DECO_BB
GT_RAIL_OBJS_DECO_BIGTREE
GT_RAIL_OBJS_DECO_GATE01
GT_RAIL_OBJS_DECO_GATE02
GT_RAIL_OBJS_DECO_FOREST02
"left" behavior
GT_RAIL_OBJS_DECO_FOREST01_L
GT_RAIL_OBJS_DECO_FLOWER01_L
GT_RAIL_OBJS_DECO_TENT
GT_RAIL_OBJS_DECO_STAND01_L
GT_RAIL_OBJS_DECO_CURVESTONE_L
GT_RAIL_OBJS_DECO_BB
GT_RAIL_OBJS_DECO_BIGTREE
GT_RAIL_OBJS_DECO_FOREST02

Are these RailGroups what the TPE uses when it places decorations? This seems like an awfully large grouping of objects, and it doesn't look like a grouping I'm familiar with from within the TPE or within GT6. Anyone have any ideas?

Finally, at the end of the raildef file is a set of min/max/limit/default values under "railDetail," a list of incoherent (to me as least) "railTypeNames" (maybe these are in Japanese?), and a list of apparently random small-magnitude numbers listed in increasing order under a structure titled "usage." No clue what these are.

You know, there are people out there who know exactly what this all means. Someone wrote this stuff! I don't suppose anyone has written to Kazunori Yamauchi to ask for his help?
 
You know, there are people out there who know exactly what this all means. Someone wrote this stuff! I don't suppose anyone has written to Kazunori Yamauchi to ask for his help?

If they have, can you ask him for the hidden menu (if any) as I'd like to customise my arcade races (1 make events, tyre/fuel wear on, custom grid lineups, things like that).

Why the hell did they remove these things from GT6 ? Arcade was so much better in GT5 :banghead:
 
I'm especially curious if this file is used by the TPE to help it display things, or if it uses this file to create data to send to GT6. Any thoughts?

I've checked that for each uuid there is a railUnit. The road "paving" process -- the placement of the road elements -- is completey automatic in the TPE with no user intervention and i guess they are using the info in the RailGroups for this. For example here is a RailGroup for andalusia rocks:
Code:
<RailGroup>
      <name>GT_CRSMK_Grp_Rock</name>
      <attr>5</attr>
      <itemTransition />
      <itemLoop />
      <itemRandom>
        <RailGroupItem>
          <name>R09_PARKING_AREA</name>
          <uuid>13027506505615099153</uuid>
          <appearance>0.050000</appearance>
          <flag>0</flag>
        </RailGroupItem>
        <RailGroupItem>
          <name>R01_NORMAL</name>
          <uuid>12389965683365463313</uuid>
          <appearance>0.950000</appearance>
          <flag>0</flag>
        </RailGroupItem>
      </itemRandom>
      <itemRight>
        <RailGroupItem>
          <name>SR04_L_PineTrees</name>
          <uuid>12313685964676875537</uuid>
          <appearance>0.038462</appearance>
          <flag>1</flag>
        </RailGroupItem>
        <RailGroupItem>
          <name>SR17_Rocks_1</name>
          <uuid>10769232767465506065</uuid>
          <appearance>0.730769</appearance>
          <flag>1</flag>
        </RailGroupItem>
        <RailGroupItem>
          <name>SR18_Rocks_2</name>
          <uuid>9605896688720364817</uuid>
          <appearance>0.038462</appearance>
          <flag>1</flag>
        </RailGroupItem>
        <RailGroupItem>
          <name>SR19_Rocks_3</name>
          <uuid>9987576757140014353</uuid>
          <appearance>0.192308</appearance>
          <flag>1</flag>
        </RailGroupItem>
      </itemRight>
      <itemLeft>
        <RailGroupItem>
          <name>SR04_L_PineTrees</name>
          <uuid>12313685964676875537</uuid>
          <appearance>0.038462</appearance>
          <flag>0</flag>
        </RailGroupItem>
        <RailGroupItem>
          <name>SR17_Rocks_1</name>
          <uuid>10769232767465506065</uuid>
          <appearance>0.730769</appearance>
          <flag>0</flag>
        </RailGroupItem>
        <RailGroupItem>
          <name>SR18_Rocks_2</name>
          <uuid>9605896688720364817</uuid>
          <appearance>0.038462</appearance>
          <flag>0</flag>
        </RailGroupItem>
        <RailGroupItem>
          <name>SR19_Rocks_3</name>
          <uuid>9987576757140014353</uuid>
          <appearance>0.192308</appearance>
          <flag>0</flag>
        </RailGroupItem>
      </itemLeft>
      <itemTransitionDeco />
    </RailGroup>

If you look at the appearance number it looks like a probability to place the corresponding item -- it sums to 1 for the items in an itemRandom/itemLeft/itemRight. So i guess they use these Groups to choose a road element from the itemRandom group of items and left and right deco from the itemLeft/itemRight groups.

Here is the "thin" group that is used for the tight corners:

Code:
    <RailGroup>
      <name>GT_CRSMK_Grp_thin</name>
      <attr>19</attr>
      <itemTransition>
        <RailGroupItem>
          <name>R13_TIGHT_START</name>
          <uuid>9433898354799217496</uuid>
          <appearance>0.000000</appearance>
          <flag>0</flag>
        </RailGroupItem>
        <RailGroupItem>
          <name>R13_TIGHT_END</name>
          <uuid>12293684118179482456</uuid>
          <appearance>0.000000</appearance>
          <flag>0</flag>
        </RailGroupItem>
      </itemTransition>
      <itemLoop>
        <RailGroupItem>
          <name>R13_TIGHT_REPEAT</name>
          <uuid>10429475347424807768</uuid>
          <appearance>0.000000</appearance>
          <flag>0</flag>
        </RailGroupItem>
      </itemLoop>
      <itemRandom />
      <itemRight />
      <itemLeft />
      <itemTransitionDeco />
    </RailGroup>

You see that there are two transition items that have to be placed at the start and end of a group and a loop item that can be repeated 0 or more times.

So all in all the RailGroup contain info of how to place and combine the different rail items. I guess that the automatic road placement process used in the TPE goes like this:

  • divide the total track length into slots of length of 50m, the smallest road item length (all item lengths are found in the railUnit under unitLength)
  • the road items have lengths that are a multiple of 50, so they fit into one or more slots
  • now each unit can be placed in one or several consecutive slots, and each the slots make sure that the placed units are not too stretched
  • place the start/finish sections at the first , these are in special RailGroups
  • choose a RailGroup based on road curvature (the sand pit RailGroups for curved roads) or desired width (tight RailGroup) and choose one or more units based on the probability and place them one by one until all the track is covered
Finally, at the end of the raildef file is a set of min/max/limit/default values under "railDetail," a list of incoherent (to me as least) "railTypeNames" (maybe these are in Japanese?), and a list of apparently random small-magnitude numbers listed in increasing order under a structure titled "usage." No clue what these are.

You know, there are people out there who know exactly what this all means. Someone wrote this stuff! I don't suppose anyone has written to Kazunori Yamauchi to ask for his help?

I guess it started out as an exchange format between the TPE developers and the GT6 developers, probably created by the GT6 devs to communicate what the TPE devs can use for roads and decos. There is stuff mostly used by the TPE like the probabilites (aptly named appearance, a typical shift of meaning without changing the name, this happens a lot while programming so most programmers don't put too much meaning into a name :lol:) stuff for using in the ted file like the flag element (even more meaningless... :lol:) and stuff that was probably used but then abandoned but left in the xml file to distract later visitors. :mischievous:
 
I guess that the automatic road placement process used in the TPE goes like this:

  • divide the total track length into slots of length of 50m, the smallest road item length (all item lengths are found in the railUnit under unitLength)
  • the road items have lengths that are a multiple of 50, so they fit into one or more slots
  • now each unit can be placed in one or several consecutive slots, and each the slots make sure that the placed units are not too stretched
  • place the start/finish sections at the first , these are in special RailGroups
  • choose a RailGroup based on road curvature (the sand pit RailGroups for curved roads) or desired width (tight RailGroup) and choose one or more units based on the probability and place them one by one until all the track is covered
This makes good sense tarnheld. Now for a new list of questions that I'm sure you and the other guys can help answer for me.

  1. I would like clarification about the distinction between all the different types of "objects" that can be seen while driving on a track. Here is my impression of what is going on... let me know if I am on the right track.
    • Scenery Objects: First, the scenery itself seems to have objects on it (let's call these "scenery objects") which appear as houses, trees, churches, etc. in the distance. I'm assuming these are hard-coded to the scenery areas and would probably require modifying files on the PS3, which I don't think is going to happen. It would be great if I were wrong about this though. What are those other files for in the rd directory beside the raildef files?
    • ROAD Objects: If you create a track that gets too close to the scenery objects, the ROAD mesh overrides the scenery objects and they disappear. The ROAD meshes are assigned by the TPE using the method you outlined above, and these meshes apparently contain some objects as well (let's call these "ROAD objects"). In some of my first tracks using the ted-editor, I've ended up with trees sprouting up through the road... are these trees ROAD objects (part of the ROAD mesh) or scenery objects (part of the underlying scenery)? I suspect these are ROAD objects because the scenery objects always seem to disappear when the track gets close. Maybe these trees appear when there is a mismatch between the width of the track and the type of ROAD mesh being used (for example a "narrow" mesh used on a wide track)?
    • DECORATION Objects: The TPE does not automatically assign DECORATION objects on tracks. These must be manually placed by the designer of a track. From what I've heard here, these DECORATION objects could be placed anywhere, even on top of other objects. Is this why on certain segments of the track the TPE doesn't allow us to place DECORATIONS, because they could conflict with the ROAD objects and cause ugliness?
  2. ROAD objects and DECORATION objects seem to have a very similar, if not identical, format. How can you tell them apart? I picture a DECORATION object as simply a tent or tree or bridge, and it would have no effect on the underlying ROAD mesh. If this is the case, I assume you wouldn't want to use a DECORATION object in a RailGroup that is used for generating a ROAD in a ted file? Or do DECORATIONs also carry with them a track mesh just like ROAD entries? Maybe they are completely interchangeable? Maybe this is why the TPE doesn't allow DECORATIONS on certain segments of a track - because the track mesh of the DECORATION isn't a good fit with the shape of the track?
  3. It seems that certain RailGroups are better suited to certain shapes of track than others? This must mean that all of the uuids in the RailGroup are better suited to these certain shapes too? You mentioned the "thin" group is used on tight corners. How do you know which types of RailGroups correspond to specific track shapes? Is there an easy way to figure this out for each RailGroup, or is it simply by examination of the TPE-created files? It would be awesome if your ted-editor could automatically generate ROAD entries based on the method you've outlined. I assume you are working on this? Later, maybe you would work on a way for us to adjust the specific uuid for each ROAD entry? This would really make experimentation much faster and easier! I suspect we could use just about any RailGroup on any stretch of correct-length track, but might see graphical problems like trees growing out the road, etc.? I'm certainly be willing to conduct some experiments on your behalf to save you time if it would help you make the ted-editor better. Just let me know what you need!
 
If they have, can you ask him for the hidden menu (if any) as I'd like to customise my arcade races (1 make events, tyre/fuel wear on, custom grid lineups, things like that).

Why the hell did they remove these things from GT6 ? Arcade was so much better in GT5 :banghead:
Gran Turismo has always been a lot of fun, but I also wonder about some of the choices they make when making these games. My biggest gripe is why we can't switch between user-created tracks when hosting an on-line game. Having to quit the room and start a new one each time we want to race a different user-created track is such a pain, especially with the connection problems my dad has. Sometimes it takes him an hour to get connected long enough to run a race, and often he can't see us, or we can't see him, and he jumps all over the track - interesting sometimes, but very frustrating. I also don't like that you can't see when other people pop wheelies or go around corners on two wheels. It would have been such a simple matter to have included that in multiplayer, needing only two values, one for pitch and one for roll. I've gotta say I also hate those oil changes. Can't I hire a crew member to do that for me? I wonder how much of my life I've wasted on that?
 
1. Scenery objects are part of the landscape. They typically go away when the road gets near (the distance depends on the type of object), but there are some exceptions that I've noticed:
  • Objects that are outside the allowed track area does not go away (observed at Andalusia).
  • If the elevation of the road is lowered far below the ground level the objects are not despawned either (observed at Death Valley). Perhaps the despawn distance is measured in 3D space and not just based on the XY coordinates?
2. An important difference between road and decorations is that road objects are the actual road. They have a collision mesh, road texture and they set the width of the track sides (the area where you place decorations). Some road objects also carry decorations. Decorations are then used to add additional decorations to the road and in the TPE app it's the road objects that determine where you are allowed to place decorations. When you select decrease/increase corner radius in the app you actually switch the road object for that segment.

Edit: Latest news on the layout feature.

  • The main straight is now indicated and a warning is displayed if it's shorter than 500 meters.
  • An arrow next to the main straight indicates direction of travel.
  • Some track statistics are displayed in the upper left corner. Corners are not counted if the angle is too small relative to the radius (the exact formula is corner = (angle to the power of 1.5) is greater than radius. Example: for a 5 degree turn to be counted as a corner, the radius cannot be longer than 5**1.5 = 11.18 meters, while for a 180 degree turn the radius cannot be greater than 2415 meters). Corners who are not counted as such have their angle followed by an exclamation mark in the label.
  • The track is no longer a circuit by default. Join the last point with the first by pressing j. Press j again to unjoin.
  • Press h to hide the labels. Press h again to hide the polygon. Press h a third time to display them again.
  • Press a to select/deselect all polygon points.
  • Press t to behold one of my amazing internal test features. To make it stop hurting your eyes, simply pan the view (right-click, drag and release).



Skärmbild (23).png
 

Attachments

  • course_layout.zip
    6.1 KB · Views: 20
Last edited:
The layout creator is getting close to its first test launch!

I managed to create TED data from a polygon: cp, bank, heights (all 0 meters currently) and checkpoints. Only roads, decorations and header remaining. Decorations will probably be left blank and the roads will probably just be pits and then the default normal road. Hopefully we can create a roads and deco editor later on :)

Edit: If you're thinking about using the data below to build a track, keep in mind that some of the values were not calculated correctly.

Skärmbild (24).png


Code:
CP data
CP0
x    447.4042388393154
y    219.85394395972435
x2    0
y2    0

CP1
x    668.0040896083714
y    503.9598123744176
x2    0
y2    0

CP2
x    682.5089533450309
y    532.8073543281427
x2    601.9717627102369
y2    555.2319720835575

CP3
x    685.0
y    565.0
x2    601.9717627102369
y2    555.2319720835575

CP4
x    689.1181957785833
y    595.7235420734356
x2    747.131715228105
y2    572.3096135562477

CP5
x    707.4796364834896
y    620.6985910073039
x2    747.131715228105
y2    572.3096135562477

CP6
x    717.0
y    628.5
x2    0
y2    0

CP7
x    752.7353728491829
y    640.959420321706
x2    751.880862814144
y2    585.9335233454512

CP8
x    788.0666369639322
y    627.3963895587501
x2    751.880862814144
y2    585.9335233454512

CP9
x    820.6773905124322
y    598.9360955527864
x2    0
y2    0

CP10
x    847.6045383370837
y    557.3173659424159
x2    761.4993083206514
y2    531.1278763747041

CP11
x    848.4110805626646
y    507.75387702173856
x2    761.4993083206514
y2    531.1278763747041

CP12
x    800.1408137310623
y    328.2700679577526
x2    0
y2    0

CP13
x    787.6173603859759
y    300.984635694393
x2    713.2290414890491
y2    351.6440673107182

CP14
x    766.8163083070107
y    279.33635793626354
x2    713.2290414890491
y2    351.6440673107182

CP15
x    515.0369594923068
y    92.7426010476966
x2    0
y2    0

CP16
x    481.15269205401074
y    77.23350214808052
x2    461.4496926743452
y2    165.05031042215126

CP17
x    443.89051387283195
y    76.77984401454418
x2    461.4496926743452
y2    165.05031042215126

CP18
x    345.4197955618587
y    96.36810518393133
x2    0
y2    0

CP19
x    321.4139898523105
y    116.0872321372721
x2    351.84343094703655
y2    128.65989387698767

CP20
x    324.5
y    147.0
x2    351.84343094703655
y2    128.65989387698767

CP21
x    331.65105287257376
y    157.66156973729176
x2    0
y2    0

CP22
x    356.2686670855646
y    180.37810320893612
x2    391.4569369731406
y2    117.54786698691154

CP23
x    388.5
y    189.5
x2    391.4569369731406
y2    117.54786698691154

CP24
x    421.3041594011547
y    198.1720721905292
x2    385.2698859663869
y2    268.09944148458646

CP25
x    447.4042388393154
y    219.85394395972435
x2    385.2698859663869
y2    268.09944148458646


BANK data (Note: vlen is wrong for straights. Update: Fixed!)
BANK0
bank    0.0
shiftPrev    17.099884209168113
shiftNext    16.246507270326944
divNum    49
unk    0
vpos    0
vlen    359.6949243831455

BANK1
bank    -2.7077512117211575
shiftPrev    16.246507270326944
shiftNext    16.246507270326944
divNum    4
unk    49
vpos    359.6949243831455
vlen    32.49301454065389

BANK2
bank    -2.7077512117211575
shiftPrev    16.246507270326944
shiftNext    15.662257949899523
divNum    4
unk    53
vpos    392.1879389237994
vlen    32.49301454065389

BANK3
bank    2.6103763249832537
shiftPrev    15.662257949899523
shiftNext    15.662257949899523
divNum    4
unk    57
vpos    424.6809534644533
vlen    31.324515899799046

BANK4
bank    2.6103763249832537
shiftPrev    15.662257949899523
shiftNext    15.662257949899523
divNum    4
unk    61
vpos    456.00546936425235
vlen    31.324515899799046

BANK5
bank    0.0
shiftPrev    15.662257949899523
shiftNext    19.31678603208673
divNum    5
unk    65
vpos    487.3299852640514
vlen    43.031281654782894

BANK6
bank    3.2194643386811213
shiftPrev    19.31678603208673
shiftNext    19.31678603208673
divNum    5
unk    70
vpos    530.3612669188343
vlen    38.63357206417346

BANK7
bank    3.2194643386811213
shiftPrev    19.31678603208673
shiftNext    19.31678603208673
divNum    5
unk    75
vpos    568.9948389830078
vlen    38.63357206417346

BANK8
bank    0.0
shiftPrev    19.31678603208673
shiftNext    20
divNum    11
unk    80
vpos    607.6284110471812
vlen    79.88790639882473

BANK9
bank    3.3333333333333335
shiftPrev    20
shiftNext    20
divNum    6
unk    91
vpos    687.5163174460059
vlen    50.219010707714254

BANK10
bank    3.3333333333333335
shiftPrev    20
shiftNext    20
divNum    6
unk    97
vpos    737.7353281537202
vlen    50.219010707714254

BANK11
bank    0.0
shiftPrev    20
shiftNext    15.081577986334237
divNum    32
unk    103
vpos    787.9543388614344
vlen    233.9133811211992

BANK12
bank    2.513596331055706
shiftPrev    15.081577986334237
shiftNext    15.081577986334237
divNum    4
unk    135
vpos    1021.8677199826336
vlen    30.163155972668473

BANK13
bank    2.513596331055706
shiftPrev    15.081577986334237
shiftNext    15.081577986334237
divNum    4
unk    139
vpos    1052.030875955302
vlen    30.163155972668473

BANK14
bank    0.0
shiftPrev    15.081577986334237
shiftNext    18.768203469643563
divNum    47
unk    143
vpos    1082.1940319279704
vlen    343.023060369342

BANK15
bank    3.1280339116072606
shiftPrev    18.768203469643563
shiftNext    18.768203469643563
divNum    5
unk    190
vpos    1425.2170922973123
vlen    37.536406939287126

BANK16
bank    3.1280339116072606
shiftPrev    18.768203469643563
shiftNext    18.768203469643563
divNum    5
unk    195
vpos    1462.7534992365995
vlen    37.536406939287126

BANK17
bank    0.0
shiftPrev    18.768203469643563
shiftNext    16.176189475449874
divNum    19
unk    200
vpos    1500.2899061758867
vlen    137.07498759251763

BANK18
bank    2.696031579241646
shiftPrev    16.176189475449874
shiftNext    16.176189475449874
divNum    4
unk    219
vpos    1637.3648937684043
vlen    32.35237895089975

BANK19
bank    2.696031579241646
shiftPrev    16.176189475449874
shiftNext    16.176189475449874
divNum    4
unk    223
vpos    1669.717272719304
vlen    32.35237895089975

BANK20
bank    0.0
shiftPrev    16.176189475449874
shiftNext    16.903435433908168
divNum    5
unk    227
vpos    1702.0696516702037
vlen    42.81615356569585

BANK21
bank    2.8172392389846945
shiftPrev    16.903435433908168
shiftNext    16.903435433908168
divNum    4
unk    232
vpos    1744.8858052358996
vlen    33.806870867816336

BANK22
bank    2.8172392389846945
shiftPrev    16.903435433908168
shiftNext    16.903435433908168
divNum    4
unk    236
vpos    1778.692676103716
vlen    33.806870867816336

BANK23
bank    -2.8172392389846945
shiftPrev    16.903435433908168
shiftNext    17.099884209168113
divNum    4
unk    240
vpos    1812.4995469715323
vlen    34.19976841833623

BANK24
bank    -2.8499807015280187
shiftPrev    17.099884209168113
shiftNext    17.099884209168113
divNum    4
unk    244
vpos    1846.6993153898684
vlen    34.19976841833623


HEIGHTS data
heights    249


CHECKPOINTS data (note: the number of checkpoints is correct, but their positions are wrong. Update: Fixed.)
CHECKPOINT0
    1500

CHECKPOINT1
    2400

Edit: Roads done! Only decorations and header left :)

Code:
ROADS data
ROAD0
uuid    11356711283892013768
flag    2
vpos    0.0
vpos2    98.35683455505944

ROAD1
uuid    10513130778690177736
flag    2
vpos    98.35683455505944
vpos2    196.71366911011887

ROAD2
uuid    12786885640558856904
flag    2
vpos    196.71366911011887
vpos2    295.0705036651783

ROAD3
uuid    13035428044994366152
flag    2
vpos    295.0705036651783
vpos2    393.42733822023774

ROAD4
uuid    9267041056792103624
flag    2
vpos    393.42733822023774
vpos2    491.7841727752972

ROAD5
uuid    11445375901555870408
flag    2
vpos    491.7841727752972
vpos2    590.1410073303566

ROAD6
uuid    11774983099284048584
flag    0
vpos    590.1410073303566
vpos2    49.17841727752972

ROAD7
uuid    11774983099284048584
flag    0
vpos    639.3194246078863
vpos2    49.17841727752972

ROAD8
uuid    11774983099284048584
flag    0
vpos    688.497841885416
vpos2    49.17841727752972

ROAD9
uuid    11774983099284048584
flag    0
vpos    737.6762591629458
vpos2    49.17841727752972

ROAD10
uuid    11774983099284048584
flag    0
vpos    786.8546764404755
vpos2    49.17841727752972

ROAD11
uuid    11774983099284048584
flag    0
vpos    836.0330937180051
vpos2    49.17841727752972

ROAD12
uuid    11774983099284048584
flag    0
vpos    885.2115109955349
vpos2    49.17841727752972

ROAD13
uuid    11774983099284048584
flag    0
vpos    934.3899282730647
vpos2    49.17841727752972

ROAD14
uuid    11774983099284048584
flag    0
vpos    983.5683455505944
vpos2    49.17841727752972

ROAD15
uuid    11774983099284048584
flag    0
vpos    1032.746762828124
vpos2    49.17841727752972

ROAD16
uuid    11774983099284048584
flag    0
vpos    1081.925180105654
vpos2    49.17841727752972

ROAD17
uuid    11774983099284048584
flag    0
vpos    1131.1035973831836
vpos2    49.17841727752972

ROAD18
uuid    11774983099284048584
flag    0
vpos    1180.2820146607132
vpos2    49.17841727752972

ROAD19
uuid    11774983099284048584
flag    0
vpos    1229.460431938243
vpos2    49.17841727752972

ROAD20
uuid    11774983099284048584
flag    0
vpos    1278.6388492157726
vpos2    49.17841727752972

ROAD21
uuid    11774983099284048584
flag    0
vpos    1327.8172664933024
vpos2    49.17841727752972

ROAD22
uuid    11774983099284048584
flag    0
vpos    1376.995683770832
vpos2    49.17841727752972

ROAD23
uuid    11774983099284048584
flag    0
vpos    1426.1741010483618
vpos2    49.17841727752972

ROAD24
uuid    11774983099284048584
flag    0
vpos    1475.3525183258917
vpos2    49.17841727752972

ROAD25
uuid    11774983099284048584
flag    0
vpos    1524.5309356034213
vpos2    49.17841727752972

ROAD26
uuid    11774983099284048584
flag    0
vpos    1573.709352880951
vpos2    49.17841727752972

ROAD27
uuid    11774983099284048584
flag    0
vpos    1622.8877701584806
vpos2    49.17841727752972

ROAD28
uuid    11774983099284048584
flag    0
vpos    1672.0661874360103
vpos2    49.17841727752972

ROAD29
uuid    11774983099284048584
flag    0
vpos    1721.2446047135402
vpos2    49.17841727752972

ROAD30
uuid    11774983099284048584
flag    0
vpos    1770.4230219910698
vpos2    49.17841727752972

ROAD31
uuid    11774983099284048584
flag    0
vpos    1819.6014392685995
vpos2    49.17841727752972

ROAD32
uuid    11774983099284048584
flag    0
vpos    1868.7798565461294
vpos2    0
 
Last edited:
@eran0004 why are all vpos2 on 49 ? Shouldn't vpos1 be the start & vpos2 be the end of a segment :confused:

So road 30 should be vpos1 1770 to vpos2 at 1819 to join up with vpos1 on road 31.

Yep, forgot to multiply vpos2. Thanks for spotting it! :gtpflag:

Edit: Turns out I didn't forget to multiply it. I just accidentally multiplied it by 1 instead of the variable i. That's what happens when you type code while sitting on the bus :P

Edit 2: First track uploaded to the server! Will have to try it tomorrow though, because it's too late to start up the old PS3 at this hour.
 
Last edited:
@tarnheld Somehow I created a beautiful rendition of Sebring in your editor... that has no roads! Back to the drawing board :-p

Also, is it possible to edit the width of the polygons that represent the road. I assume it isn't meaningful since that's a single hard coded value in the ted file but it'd be easier for large scale image tracing. Never mind it is linked to that. I see the other value for new roads as well. TY
 
Last edited:
@tarnheld Somehow I created a beautiful rendition of Sebring in your editor... that has no roads! Back to the drawing board :-p

Well, i planned to add the road and deco editor in the last week, but the code cleanup took longer than i thought. Now i'm fully occupied in the new job and won't get to the ted-editor until the weekends. So you all have to wait a little longer. :indiff:
I've pushed my latest changes to the repository, download link here -- a thorough restructure and cleanup, all imported files are now in subfolders. Other than that i unified the undo/redo stuff and other things but it's mostly stuff under hood so no feature goodies for you guys. If somebody wants to get on board, PM me and i'll point you to the relevant code (class Railmanip) and share some thoughts on how to approach the editing.

The latest stuff could break things for some, so if it doesn't work you can get the pre-cleanup version here.
 
Well, i planned to add the road and deco editor in the last week, but the code cleanup took longer than i thought. Now i'm fully occupied in the new job and won't get to the ted-editor until the weekends. So you all have to wait a little longer. :indiff:
I've pushed my latest changes to the repository, download link here -- a thorough restructure and cleanup, all imported files are now in subfolders. Other than that i unified the undo/redo stuff and other things but it's mostly stuff under hood so no feature goodies for you guys. If somebody wants to get on board, PM me and i'll point you to the relevant code (class Railmanip) and share some thoughts on how to approach the editing.

The latest stuff could break things for some, so if it doesn't work you can get the pre-cleanup version here.

All is good! I started with a fresh copy from a replay and with my new road width mod and high res photos I think it's better than ever. I know plenty about projects being delayed. Handbrake mod is finally done though! Now to finish Sebring.
 
Ha! The first live fire test of the layout creator is a success!

Here is a track that you can try. I wanted to make a compact layout for my Abarth replica, so there are plenty of corners and very short straights. I really like the chicane near the end, and the double apex corner after the chicane. This layout was really fast to create, it probably took about 5 minutes to get everything where I wanted it to be. Creating this in the TPE would probably take half an hour at least (depending on how perfect you want the corners to be).

Skärmbild (26).png


https://www.gran-turismo.com/gb/gt6/user/#!/friend/eran0004/course/2674624/

And here is the current state of the editor for you to try yourself. When you want to save a layout as a ted file you simply press p. This will take a couple of seconds, because in addition to creating the file it will also print all the values.

I changed the appearance of the polygon points to small squares, similar to what they look like in programs like Blender or Adobe Illustrator. The small dots you can see on the track indicates the location of the cp points in the ted file.

Note, there are some limitations:
  • Currently only Eifel is supported.
  • All elevation is 0 meters by default. This is high up in the air at Eifel.
  • Only circuits are supported at this point, so make sure your track is joined at the ends (press j to join).
  • Currently all tracks are 8 meters wide by default. You can change that by finding the roadWidth variable in course_layout.py (it's on line 1032) and changing its value to whatever width you want. You can also edit the ted file manually afterwards.
  • All the roads except pit straight is the 'normal road' by default.
  • Try to avoid extreme corner values, such as an angle of 0 degrees or a length of 0 or close to 0 meters, or a radius of less than 15 meters.
  • Avoid pit straights that are shorter than approximately 450 meters, as parts of the pit wall will end up in a corner and that can cause some issues with the collision mesh. The layout creator will warn you when the length is shorter than 500 meters.
  • No curbs or decorations at this point.
 

Attachments

  • course_layout.zip
    13.8 KB · Views: 16
Last edited:
I'm surprised that we are able to custom make tracks in our own editor and publish it on official servers.
And i'm surprised that PD has not taken any action against this.

Maybe it was their plan all along...
 
I'm surprised that we are able to custom make tracks in our own editor and publish it on official servers.
And i'm surprised that PD has not taken any action against this.

Maybe it was their plan all along...

Shooooooosh :)

Also @eran0004 I think the grey is a little to dark, maybe brighten it up a tad ? Somewhere in between the original look & what you got now, but I do agree with not to bright :)
 
Shooooooosh :)

Also @eran0004 I think the grey is a little to dark, maybe brighten it up a tad ? Somewhere in between the original look & what you got now, but I do agree with not to bright :)

I could create an interface to let you pick the colours yourself. I think it would be good to have that freedom, if we're going to import images later on because then you can pick colours that contrast well against the background image.
 
I could create an interface to let you pick the colours yourself. I think it would be good to have that freedom, if we're going to import images later on because then you can pick colours that contrast well against the background image.
Don't make work for yourself mate, we get what we're given & appreciate it :)....... just a little brighter lol :cheers:
 
Don't make work for yourself mate, we get what we're given & appreciate it :)....... just a little brighter lol :cheers:

I've already set up the colour variables to be easily changed so it's not that much work! Besides, I've got a 16 hour train journey later today and I need something to keep me busy ;)

Besides colours, anything else you think should be changed?
 
I've already set up the colour variables to be easily changed so it's not that much work! Besides, I've got a 16 hour train journey later today and I need something to keep me busy ;)

Besides colours, anything else you think should be changed?
You could set the base elevation level at -185 that's ground level on Eifel Flat, other than that I can't think of much else :)
 

Latest Posts

Back