New shaders supporting the new v3.3 road type Lane Count option
Projector decal support for road type transitions
New: Shape type of side objects supporting a triangulation routine for a Dual Sided setup, the left and right side will be connected. It makes it possible to use the Shape type of side object to create for example bridges and overpasses that continue on intersections higher above the terrain
Improved: Secondary road triangulation for wider road types, the connection radius now auto adapts to the main road section angle increasing the available space when stronger angles are involved on the main road
Improved: a value of 0 for Lane Count is now supported for road types, this can be used for road objects where no AI traffic should be generated, no lane connections will be generated on intersections, no need to manually remove lane connections.
Improved: Previously in a situation where both road objects A and B should connect to road object C it could happen that the road objects A and B were merged in one road when these two road objects were also within snapping range. Flex Connector snapping now has priority over merging two road objects in one. So road A will safely connect to road object C and afterwards road object B can connect to the newly inserted Flex Connector
Fixed: Possible duplicated Flex Connectors after attaching a new road object to the connector
Fixed: Main road section radius handles not visible in the Scene View window
Fixed: Miscellaneous small bugs
New: Random terrain height offsets relative to the road edge. "Max Height Offset" and "Level Distance" controls in: Road Types > Terrain Control. This is for road types with thickness, see how the terrain height randomly aligns with the road edge in the image.
New: AI Traffic support on I Connectors
Improved: Road Types > Road Type Profile Editor, Inspector / Scene View improvements
Improved: adjusted road widths at v3.2 intersections will auto adjust to the original road type width after conversion to the v3.3 Flex Connector
Improved: 'Static' option for v3.3 sidewalk objects
Fixed: AI Traffic related issues when Left-Hand Traffic is selected
Fixed: Secondary road triangulation issues on Flex Connectors
Fixed: Secondary road Left and Right Corner Curvature values on Flex Connectors not being editable at specific incoming road directions
Fixed: Miscellaneous small bugs
Starting from Unity 2018.3 Road types can be managed from the project folder through the new prefab system introduced in Unity 2018.3 (0.05 in video). The type of road can be set (0.17 in the video). This is used among others on the new Flex Connector to prioritize specific connection layouts. This can also be used for AI purposes.
Four new tabs have been added to the top: Road Shape, Lane Info, Material, Sidewalks.
v3.3 supports custom built-in road shapes on the new Flex Connector (0.25 in video). Roads with thickness are now also supported for built-in road types. The number of shape nodes can be set, the position of each node can be set both in the Inspector and on the prefab stage. Important at the moment is Left and Right Outer Line Marking checkboxes (0.36 in video). These define positions on the road txture where the UVs for the left / right side of the texture should remain at a fixed position from the edge. In the current crossing op[tions this is defined by "Inner Segment Distance" in the Corner / Sidewalk Settings. This way UVs will be generated correctly on crossings corners. So if this is relevant for a road type, make sure to add these two nodes to the total node count for the road.
In the Lane Info tab (0.52 in video) the number of lanes can be set, based on the number the lane position will be set automatically including whether they are left or right lanes. The positions can be changed manually.
UV data and material info can be set in the Materials tab. The reason for this new materials tab is that more advanced lane specific material options will be available in v3.3.
The Sidewalks tab can be used to set the default sidewalk state for this road type.
Further below in the road type settings the speed limit can be set per road type (1.10 in video), available at runtime through the scripting API.
Starting at 1.20, the above new options are shown for versions older then Unity 2018.3. The Road Shape Editor button (1.31 in video) will open the new toolbar tab similar to the one explained above. Also newis the Visualize Road Type button (1.36 in video). It will show the road type in Scene View.
By setting the lane info, the system can auto generate lane direction marking decals on road objects for each lane in v3.3.
Matching decals can be created in the Road Object Decal section in General Settings > Road Types. The new decal option Lane Direction Marking is used for this.
Options are "Straight", this is for the road object itself. At intersections the options are "Straight","Left", "Right", "Straight Left", "Straight Right", "Left Right" and "All Directions". The decal Material can be assigned, the Decal Length (size) of each instance, the Distance between Markings and the Height Offset of the decal relative to the road height. In the UV Editor window the respective decalk arrow can be selected.
Based on the turn directions of the available lane connectors, the corresponding direction marking decals will be selected.
In V3.3 new built-in connections types are introduced starting with the Flex Connector. Currently this is a new connector option for the current X and T Connectors after instantiating them in the scene (2.07 in video). At the moment it is important to first pull out new roads or attach existing roads. After that the Connector can be turned in a Flex Connector (2.21 in video). All connectors will support flexible angles, roads can be detached and attached. Different road type can be selected. As visible in the video at 2.47 this requires road type selection for both the connector segment as the road. The reason for this is that you may want a different surface in between the main road and the connected road. The main road triangulation can be changed (3.07 in video) to match the connected roads, outerline options are currentluy possible through decals (3.22 in video). These decals can be set in the decalk section of the specific road type. Examples will follow in next updates. as can be seen at 4:34 in the video, the number of connections is not limited to 3 or 4, more connections can be added.
Main Connection Decals are road type transition decals that will be generated on Flex Connectors on the main road at the edge where other road objects connect. They can be used to blend the two road materials and visually improve the transition between the two road types. Decal presets can be created per road type in Road Types > Road Type Decals.
These decal options will be available on Flex Connectors when another road type is attached. Multiple decals can be created per road type to match the different road types or to add variation.
The v3.3 beta scene includes two decal presets that can be reviewed.
To create a new decal preset press the "Add New Decal Object" button near the bottom in the Road Types Decals section. Select the "Main Connection Line Marking" decal type from the dropdown, give the new decal a descriptive name and assign the decal material.
Open the UV Editor. The road texture will be visible with an highlighted area. Move / resize this highlighted rectangle to cover the bounds for the new decal on the material / Texture. To make it easier to get accurate results, either enter the values manually by calculating them in your paint program, or temporarily add a thin coloured line at the decal boundaries so the rectangle bounds are clearly highlighted in the texture.
Optionally it is possible to add multiple break points, this will optimize the created decal by clamping the UV coordinates to the nearest break point. The final length of the decal will be calculated accordingly. When adding two or more break points there will be an additional option to set Start / End sections, the first and last break point. This can be used to blend the decal in at the start and out at the end, the middle section will be repeated. The decal examples in the v3.3 beta demo scene use this option. Close the UV Editor window.
The next decal settings in the Inspector are "Decal Width" and "Decal Length". These values can be entered manually, however it is easier and more accurate to press the "Match Main Road Material Tiling" button. Based on the bounds of the highlighted rectangle in the UV Editor and the UV Tiling for the road material the matching decal Width and Length will be calculated.
The decal can be moved sideways "X Offset", by default the center of the decal matches the road edge position. "Height Offset" places the decal higher above the road surface and "Start Offset" resp "End Offset" values can be set to control where the decal should start and end relative to the connected road. By default Start and End sections will be created exactly according the Start and End offset values. When "Interpolate Starte / End sections" is active, these sections will snap to the mid sections. This can be used for road textures with a clear pattern, like paved road textures.
The best way to fine tune these settings is by selecting or creating a Flex Connector where the involved road types are used. First press "Update Scene Instances" near the bottom in the Road Types section.
This decal type is generated relative to the right side of the road. So look in the Inspector at the main road Connection where the secondary road is connected to the right edge of this road object.
For this specific connection the "Main Road Connection Transition" option will be available in the Inspector, all available decal presets will be listed. After selecting the new decal preset that you created, open the foldout. The same decal controls will be visible. The decal will instantly update in the scene after making changes so this is a quick and easy way to fine tune each decal preset. Note that these settings are the main decal preset settings, these settings are not instance specific decal settings for this Flex Connector.
Custom Road shapes for the main connection road type are supported. When moving the X Offset, the decal shape will adjust accordingly.
V3.3 will have new sidewalks options. A new Sidewalks section is added to the General Settings tab. New sidewalk presets can be created here. Two provisional sidewalk presets are provided in the beta package. Currently only the standard shape is supported with optionally the "Outer Curb".
Sidewalk presets can be selected on road objects, road types and on Flex Connectors per connection. So contrary to v3.12 and v3.2, sidewalks can be activated directly on roads. The default sidewalks state can also be set for each road type.
Crosswalks are supported in a way that the pavement at crosswalk positions can be customized. The standard version, the "Concrete" sidewalk example in the beta package, will auto generate the UV coordinates based on the currently set UV coordinates for the sidewalk inner pavement. The second option is to set crosswalk specific UV coordinates. Two types of triangulation are supported, the provided provisional "Tiled Pavement" uses the more complex version with the "Include Outer Strip" option. The Crosswalk UV Editor will show the crosswalk pavement wireframe as a reference to quickly set set the UV Coordinates for the inner pavement section. The crosswalk itself on the road is more road type related so this can be set in General Settings > Road Types > Road Type Profile Editor > Sidewalks
The new system is in preview state. More sidewalk shape options will be added and the workflow will be improved. For example activating sidewalks on a road will also auto activate sidewalks on possible crossing connections and vice versa. There will also be more triangulation options to support different types of sidewalks.
Introduced in beta 10. MultipleTraffic Sign prefabs can be assigned for each road type. Each prefab can be associated with a specific Traffic sign type, for example traffic signals or stop signs. The presets assigned to road types will be auto generated on Flex Connector connections when that road type is involved. Traffic signs can be added, edited and removed per connection.
It is possible to set the position of the traffic sign relative to the left, right side of the road or the center of the road. Offset options are available both in sideways and forward direction. It is also possible to set the type of traffic sign post. This can be useful at runtime for traffic light control scripts. And it can be used for auto placement of posts based on general rules and traffic sign post rules set per road type. For example "One Way" and "One Way - No Entry" traffic signals will be auto generated on one-way road objects.
The full list of traffic sign presets for a specific road type can be copied to other road types that will use similar traffic signs. To do so, press the "Copy" button, select the other road type, open the Traffic Signs foldout and press the "Paste" button.
Optionally the default settings for each prefab can be set by assigning the script component ERTrafficPost component to each individual prefab in the project folder. That way the default values only have to be set once. As soon as a traffic sign preset is activated for a road type or on a Flex Connector connection, the default prefab values will be inherited for this instance from the ERTrafficPost component.
The beta package demo scene includes three prefab examples. More traffic sign presets and material options will follow.
V3.3 includes options to create lane data for both roads and intersection accessible through the scripting API.
A new section AI Traffic is added to General Settings (6.21 in video). AI Traffic can be activated here, left-right-hand traffic can be set and you can specific how lane data should be generated on crossings.
Based on the new lane info options for road types, mentioned above, lane data will be generated automatically for roads. The display of the Lane data can be controlled in General Settings > Scene View > Display Lane Data (6.34 in video) or through Ctrl + L.
For intersections it is possible to auto generate lane connectors for all possible combinations (6.42 in video). Lanes can be selected, This shows a number of options. Relevant at this moment are Speed Limit and Delete Lane Connector. The other options will be activated later and more options will follow. Lanes can also be created manually (6.55 in video).
The Lane Data is avaialable through the scripting API. The simple road network in the scene "AI Traffic Scene" in the beta package is based on both the standard X crossing and the new Flex Connector and includes a basic AI script using the lane data. It is the same script as used in this video starting at 7.26.
Because Custom Connections based on your own meshes can be more complex, lane data for this type of connection objects can be set in the Unity Prefab editor by selecting the generated prefab in the project folder: /Assets/EasyRoads3D/Resources/custom prefabs/, and press "Open Prefab" in the Inspector. Select the "AI Lane Data" tab. Connection start and end points will be displayed based on the assigned road type. New lane connectors can be created by dragging from the start point (the small rectangle) to an end point of another connector. After creating a new lane connector, the number of Control Points can be adjusted and each control point can be selected and moved to define the desired curve for this lane connector.
The below video shows and example how a custom road shape can be created and how they are supported by the v3.3 Flex Connector.
Notes:
Limitations:
Known Issues / To Do:
V3.3 Road Map: