Search Unity

  1. Good news ✨ We have more Unite Now videos available for you to watch on-demand! Come check them out and ask our experts any questions!
    Dismiss Notice
  2. Ever participated in one our Game Jams? Want pointers on your project? Our Evangelists will be available on Friday to give feedback. Come share your games with us!
    Dismiss Notice

EasyRoads3D v3 - the upcoming new road system

Discussion in 'Works In Progress' started by raoul, Feb 19, 2014.

  1. raoul

    raoul

    Joined:
    Jul 14, 2007
    Posts:
    5,011
    Hi virgiliu,

    EREditor.GetRoads() is indeed not alphabatically ordered, it returns the array from MonoBehaviour.FindObjectsOfType().

    Alternatively you can use ERRoadNetwork.GetRoadByName() if you need a specific road.

    Thanks,
    Raoul
     
    virgiliu likes this.
  2. virgiliu

    virgiliu

    Joined:
    Apr 4, 2015
    Posts:
    42
    Perfect, thank you!
     
  3. Stone-Legion

    Stone-Legion

    Joined:
    Aug 16, 2013
    Posts:
    112
    Just got TerrainComposer the other day. I hope nothing goes too crazy. I found out having large maps were bad for performance, for finer point brushes and float point issues. So I went ahead made 20,000 x 20,0000 world with 81 terrains in total.
     
  4. Stone-Legion

    Stone-Legion

    Joined:
    Aug 16, 2013
    Posts:
    112
    Well already hitting errors time to figure out how to repeat this. Only been frigan 10 minutes lol..




    Started Fresh removed the entire roads from the scene etc. I get 2 types of errors more of a debug warning and the big red one above doing the following:
     
    Last edited: Jan 21, 2016
  5. raoul

    raoul

    Joined:
    Jul 14, 2007
    Posts:
    5,011
    Hi Stone Legion,

    All should work well with assets like Terrain Composer since multiple terrains are supported.

    Thank you for posting the video as it made some issues clear!

    The first error (which is more an alert since this should be fixed automatically) seems to be related to not selecting a road type when you create a new road object. I just tried that and indeed no side objects are added, I will fix that. That said, it is recommended to work with road types which you can define in General Settings > Road Types. It makes both generating new road objects easier and creating new crossings (both dynamic as custom crossings).

    What are the issues you have with “Closed Track”? I just double checked this and all seems fine, I can move markers, insert markers, activate side objects etc.

    Indeed I think the terrain deformation issues are related to using “Follow terrain Contours”. Although this works fine in general you may want to double check the road shape along the track, especially near markers and make sure the road looks smooth. For long roads you can use the CaM Fly Over Position slider further below in the Inspector.

    The Troubleshooting page in the docs covers situations where the terrain may pop through the road. Especially making sure that the road is always above the terrains game object Y position is an important one.

    We hardly use play mode as we do all this in our development project which is terrain and scene creation only. The missingReferenceException related to ERModularBase is known when removing the road network. I now see it also happens when switching to play mode. Deselecting the road network before switching to play mode seems to "fix" that, but I will look into this as well.

    Thanks,
    Raoul
     
    Last edited: Jan 21, 2016
    hopeful likes this.
  6. Stone-Legion

    Stone-Legion

    Joined:
    Aug 16, 2013
    Posts:
    112
    Thanks for the information I will do what you said. What I mean by Closed Track is I prefer not to use closed track but rather join the 2 tracks up. because once I start branching the road out so it's not a closed loop then things become a bit broken having the 1 closed track enabled. I find that I have to disable the closed track to work on anything but at times when I re-enable it I had a strange issue before. Though that was before also.

    I assume you can't just merge 2 roads in a loop and attach them like you can when dealing with intersections etc?

    Thanks :)


    EDIT: Perfect the 2 issues seem to be solved by the steps you said :) I guess now I will just run around raising the road slightly to fix the clipping.
     
    Last edited: Jan 21, 2016
  7. raoul

    raoul

    Joined:
    Jul 14, 2007
    Posts:
    5,011
    "Closed Track" is really what it says, you can use this for a single closed track, like a race track that does not include "connection" prefabs.

    I am not sure what you mean with "I have to disable the closed track...when I re-enable it"?

    You can join two tracks of the same type which is useful when pulling out roads from connections. Sometime you end up with two roads created this way which actually should merge into one road. Shift + Click the two markers on both roads should show a button "Join Selected Roads" in the Inspector.

    Thanks,
    Raoul
     
    Stone-Legion likes this.
  8. Stone-Legion

    Stone-Legion

    Joined:
    Aug 16, 2013
    Posts:
    112
    Another couple bugs.
    Example I did this 3 times. The 2nd time in this video was the work around to solve it.



    Another bug I had was Resource Load on my Prefabs. I ended up at least I think I fixed it by moving them to the root of assets vs the dynamic prefabs folder. Now from my understanding you need to put Resources.Load into root of assets? But not sure if this is my doing or not. I guess I need to read the manual again.




    I sadly feel like this Asset is great but it's aging. You can't sit there for 10 hours and build yourself a massive network without things constantly breaking left and right from my experience.

    I sometimes can't even join 2 roads and then sometimes when I do they go all haywire to the similar video above.

    I have to say so far the projects been spend mostly trying to deal with your asset. It's not been enjoyable at all.
     
  9. Atzig

    Atzig

    Joined:
    Jul 17, 2014
    Posts:
    151
    Hey Raoul, I updated Unity to 5.3.1 and this error pops up occasionally when joining roads, causing one of the joined roads meshes to disappear (the markers are still there).

    StackOverflowException
    EasyRoads3Dv3.ERModularRoadFunctions.ConnectionData (EasyRoads3Dv3.ERModularRoad roadScr, System.Collections.Generic.List`1& tmpNodes, System.Collections.Generic.List`1 splineStrength, EasyRoads3Dv3.ERCrossingPrefabs prefabInstance, Int32 connectionSegment, UnityEngine.Vector3& connectionDir, Int32 startEnd)
    EasyRoads3Dv3.ERModularRoad.GetSplinePoints (System.Collections.Generic.List`1 markers, Single faceDist, Boolean ignorePrefabAlignment, System.Collections.Generic.List`1& tValues, System.Collections.Generic.List`1& markerDistances, Boolean forceAutoRotate)
    EasyRoads3Dv3.ERModularRoad.UpdateMesh (Boolean ignorePrefabAlignment, Boolean forceAutoRotate)
    EasyRoads3Dv3.ERCrossingPrefabs.DeformTCossingConnection (Int32 elInt, Single distance, Single defaultDistance, System.Collections.Generic.List`1 controlPoints, Single multiplyFactor, Single angle, Vector3 cpCenterPoint, Single curveStrength)
    EasyRoads3Dv3.ERModularRoadFunctions.ConnectionData (EasyRoads3Dv3.ERModularRoad roadScr, System.Collections.Generic.List`1& tmpNodes, System.Collections.Generic.List`1 splineStrength, EasyRoads3Dv3.ERCrossingPrefabs prefabInstance, Int32 connectionSegment, UnityEngine.Vector3& connectionDir, Int32 startEnd)
    EasyRoads3Dv3.ERModularRoad.GetSplinePoints (System.Collections.Generic.List`1 markers, Single faceDist, Boolean ignorePrefabAlignment, System.Collections.Generic.List`1& tValues, System.Collections.Generic.List`1& markerDistances, Boolean forceAutoRotate)
    EasyRoads3Dv3.ERModularRoad.UpdateMesh (Boolean ignorePrefabAlignment, Boolean forceAutoRotate)
    EasyRoads3Dv3.ERCrossingPrefabs.DeformTCossingConnection (Int32 elInt, Single distance, Single defaultDistance, System.Collections.Generic.List`1 controlPoints, Single multiplyFactor, Single angle, Vector3 cpCenterPoint, Single curveStrength)
    EasyRoads3Dv3.ERModularRoadFunctions.ConnectionData (EasyRoads3Dv3.ERModularRoad roadScr, System.Collections.Generic.List`1& tmpNodes, System.Collections.Generic.List`1 splineStrength, EasyRoads3Dv3.ERCrossingPrefabs prefabInstance, Int32 connectionSegment, UnityEngine.Vector3& connectionDir, Int32 startEnd)
    EasyRoads3Dv3.ERModularRoad.GetSplinePoints (System.Collections.Generic.List`1 markers, Single faceDist, Boolean ignorePrefabAlignment, System.Collections.Generic.List`1& tValues, System.Collections.Generic.List`1& markerDistances, Boolean forceAutoRotate)
    EasyRoads3Dv3.ERModularRoad.UpdateMesh (Boolean ignorePrefabAlignment, Boolean forceAutoRotate)
    EasyRoads3Dv3.ERCrossingPrefabs.DeformTCossingConnection (Int32 elInt, Single distance, Single defaultDistance, System.Collections.Generic.List`1 controlPoints, Single multiplyFactor, Single angle, Vector3 cpCenterPoint, Single curveStrength)
    EasyRoads3Dv3.ERModularRoadFunctions.ConnectionData (EasyRoads3Dv3.ERModularRoad roadScr, System.Collections.Generic.List`1& tmpNodes, System.Collections.Generic.List`1 splineStrength, EasyRoads3Dv3.ERCrossingPrefabs prefabInstance, Int32 connectionSegment, UnityEngine.Vector3& connectionDir, Int32 startEnd)
    EasyRoads3Dv3.ERModularRoad.GetSplinePoints (System.Collections.Generic.List`1 markers, Single faceDist, Boolean ignorePrefabAlignment, System.Collections.Generic.List`1& tValues, System.Collections.Generic.List`1& markerDistances, Boolean forceAutoRotate)
    EasyRoads3Dv3.ERModularRoad.UpdateMesh (Boolean ignorePrefabAlignment, Boolean forceAutoRotate)
    EasyRoads3Dv3.ERCrossingPrefabs.DeformTCossingConnection (Int32 elInt, Single distance, Single defaultDistance, System.Collections.Generic.List`1 controlPoints, Single multiplyFactor, Single angle, Vector3 cpCenterPoint, Single curveStrength)
    EasyRoads3Dv3.ERModularRoadFunctions.ConnectionData (EasyRoads3Dv3.ERModularRoad roadScr, System.Collections.Generic.List`1& tmpNodes, System.Collections.Generic.List`1 splineStrength, EasyRoads3Dv3.ERCrossingPrefabs prefabInstance, Int32 connectionSegment, UnityEngine.Vector3& connectionDir, Int32 startEnd)
    EasyRoads3Dv3.ERModularRoad.GetSplinePoints (System.Collections.Generic.List`1 markers, Single faceDist, Boolean ignorePrefabAlignment, System.Collections.Generic.List`1& tValues, System.Collections.Generic.List`1& markerDistances, Boolean forceAutoRotate)
    EasyRoads3Dv3.ERModularRoad.UpdateMesh (Boolean ignorePrefabAlignment, Boolean forceAutoRotate)
    EasyRoads3Dv3.ERCrossingPrefabs.DeformTCossingConnection (Int32 elInt, Single distance, Single defaultDistance, System.Collections.Generic.List`1 controlPoints, Single multiplyFactor, Single angle, Vector3 cpCenterPoint, Single curveStrength)
    EasyRoads3Dv3.ERModularRoadFunctions.ConnectionData (EasyRoads3Dv3.ERModularRoad roadScr, System.Collections.Generic.List`1& tmpNodes, System.Collections.Generic.List`1 splineStrength, EasyRoads3Dv3.ERCrossingPrefabs prefabInstance, Int32 connectionSegment, UnityEngine.Vector3& connectionDir, Int32 startEnd)
    EasyRoads3Dv3.ERModularRoad.GetSplinePoints (System.Collections.Generic.List`1 markers, Single faceDist, Boolean ignorePrefabAlignment, System.Collections.Generic.List`1& tValues, System.Collections.Generic.List`1& markerDistances, Boolean forceAutoRotate)
    EasyRoads3Dv3.ERModularRoad.UpdateMesh (Boolean ignorePrefabAlignment, Boolean forceAutoRotate)
    EasyRoads3Dv3.ERCrossingPrefabs.DeformTCossingConnection (Int32 elInt, Single distance, Single defaultDistance, System.Collections.Generic.List`1 controlPoints, Single multiplyFactor, Single angle, Vector3 cpCenterPoint, Single curveStrength)
    EasyRoads3Dv3.ERModularRoadFunctions.ConnectionData (EasyRoads3Dv3.ERModularRoad roadScr, System.Collections.Generic.List`1& tmpNodes, System.Collections.Generic.List`1 splineStrength, EasyRoads3Dv3.ERCrossingPrefabs prefabInstance, Int32 connectionSegment, UnityEngine.Vector3& connectionDir, Int32 startEnd)
    EasyRoads3Dv3.ERModularRoad.GetSplinePoints (System.Collections.Generic.List`1 markers, Single faceDist, Boolean ignorePrefabAlignment, System.Collections.Generic.List`1& tValues, System.Collections.Generic.List`1& markerDistances, Boolean forceAutoRotate)
    EasyRoads3Dv3.ERModularRoad.UpdateMesh (Boolean ignorePrefabAlignment, Boolean forceAutoRotate)
    EasyRoads3Dv3.ERCrossingPrefabs.DeformTCossingConnection (Int32 elInt, Single distance, Single defaultDistance, System.Collections.Generic.List`1 controlPoints, Single multiplyFactor, Single angle, Vector3 cpCenterPoint, Single curveStrength)
    EasyRoads3Dv3.ERModularRoadFunctions.ConnectionData (EasyRoads3Dv3.ERModularRoad roadScr, System.Collections.Generic.List`1& tmpNodes, System.Collections.Generic.List`1 splineStrength, EasyRoads3Dv3.ERCrossingPrefabs prefabInstance, Int32 connectionSegment, UnityEngine.Vector3& connectionDir, Int32 startEnd)
    EasyRoads3Dv3.ERModularRoad.GetSplinePoints (System.Collections.Generic.List`1 markers, Single faceDist, Boolean ignorePrefabAlignment, System.Collections.Generic.List`1& tValues, System.Collections.Generic.List`1& markerDistances, Boolean forceAutoRotate)
    EasyRoads3Dv3.ERModularRoad.UpdateMesh (Boolean ignorePrefabAlignment, Boolean forceAutoRotate)
    EasyRoads3Dv3.ERCrossingPrefabs.DeformTCossingConnection (Int32 elInt, Single distance, Single defaultDistance, System.Collections.Generic.List`1 controlPoints, Single multiplyFactor, Single angle, Vector3 cpCenterPoint, Single curveStrength)
    EasyRoads3Dv3.ERModularRoadFunctions.ConnectionData (EasyRoads3Dv3.ERModularRoad roadScr, System.Collections.Generic.List`1& tmpNodes, System.Collections.Generic.List`1 splineStrength, EasyRoads3Dv3.ERCrossingPrefabs prefabInstance, Int32 connectionSegment, UnityEngine.Vector3& connectionDir, Int32 startEnd)
    EasyRoads3Dv3.ERModularRoad.GetSplinePoints (System.Collections.Generic.List`1 markers, Single faceDist, Boolean ignorePrefabAlignment, System.Collections.Generic.List`1& tValues, System.Collections.Generic.List`1& markerDistances, Boolean forceAutoRotate)
    EasyRoads3Dv3.ERModularRoad.UpdateMesh (Boolean ignorePrefabAlignment, Boolean forceAutoRotate)
    EasyRoads3Dv3.ERCrossingPrefabs.DeformTCossingConnection (Int32 elInt, Single distance, Single defaultDistance, System.Collections.Generic.List`1 controlPoints, Single multiplyFactor, Single angle, Vector3 cpCenterPoint, Single curveStrength)
    EasyRoads3Dv3.ERModularRoadFunctions.ConnectionData (EasyRoads3Dv3.ERModularRoad roadScr, System.Collections.Generic.List`1& tmpNodes, System.Collections.Generic.List`1 splineStrength, EasyRoads3Dv3.ERCrossingPrefabs prefabInstance, Int32 connectionSegment, UnityEngine.Vector3& connectionDir, Int32 startEnd)
    EasyRoads3Dv3.ERModularRoad.GetSplinePoints (System.Collections.Generic.List`1 markers, Single faceDist, Boolean ignorePrefabAlignment, System.Collections.Generic.List`1& tValues, System.Collections.Generic.List`1& markerDistances, Boolean forceAutoRotate)
    EasyRoads3Dv3.ERModularRoad.UpdateMesh (Boolean ignorePrefabAlignment, Boolean forceAutoRotate)
    EasyRoads3Dv3.ERCrossingPrefabs.DeformTCossingConnection (Int32 elInt, Single distance, Single defaultDistance, System.Collections.Generic.List`1 controlPoints, Single multiplyFactor, Single angle, Vector3 cpCenterPoint, Single curveStrength)
    EasyRoads3Dv3.ERModularRoadFunctions.ConnectionData (EasyRoads3Dv3.ERModularRoad roadScr, System.Collections.Generic.List`1& tmpNodes, System.Collections.Generic.List`1 splineStrength, EasyRoads3Dv3.ERCrossingPrefabs prefabInstance, Int32 connectionSegment, UnityEngine.Vector3& connectionDir, Int32 startEnd)
    EasyRoads3Dv3.ERModularRoad.GetSplinePoints (System.Collections.Generic.List`1 markers, Single faceDist, Boolean ignorePrefabAlignment, System.Collections.Generic.List`1& tValues, System.Collections.Generic.List`1& markerDistances, Boolean forceAutoRotate)
    EasyRoads3Dv3.ERModularRoad.UpdateMesh (Boolean ignorePrefabAlignment, Boolean forceAutoRotate)
    EasyRoads3Dv3.ERCrossingPrefabs.DeformTCossingConnection (Int32 elInt, Single distance, Single defaultDistance, System.Collections.Generic.List`1 controlPoints, Single multiplyFactor, Single angle, Vector3 cpCenterPoint, Single curveStrength)
    EasyRoads3Dv3.ERModularRoadFunctions.ConnectionData (EasyRoads3Dv3.ERModularRoad roadScr, System.Collections.Generic.List`1& tmpNodes, System.Collections.Generic.List`1 splineStrength, EasyRoads3Dv3.ERCrossingPrefabs prefabInstance, Int32 connectionSegment, UnityEngine.Vector3& connectionDir, Int32 startEnd)
    EasyRoads3Dv3.ERModularRoad.GetSplinePoints (System.Collections.Generic.List`1 markers, Single faceDist, Boolean ignorePrefabAlignment, System.Collections.Generic.List`1& tValues, System.Collections.Generic.List`1& markerDistances, Boolean forceAutoRotate)
    EasyRoads3Dv3.ERModularRoad.UpdateMesh (Boolean ignorePrefabAlignment, Boolean forceAutoRotate)
    EasyRoads3Dv3.ERCrossingPrefabs.DeformTCossingConnection (Int32 elInt, Single distance, Single defaultDistance, System.Collections.Generic.List`1 controlPoints, Single multiplyFactor, Single angle, Vector3 cpCenterPoint, Single curveStrength)
    EasyRoads3Dv3.ERModularRoadFunctions.ConnectionData (EasyRoads3Dv3.ERModularRoad roadScr, System.Collections.Generic.List`1& tmpNodes, System.Collections.Generic.List`1 splineStrength, EasyRoads3Dv3.ERCrossingPrefabs prefabInstance, Int32 connectionSegment, UnityEngine.Vector3& connectionDir, Int32 startEnd)
    EasyRoads3Dv3.ERModularRoad.GetSplinePoints (System.Collections.Generic.List`1 markers, Single faceDist, Boolean ignorePrefabAlignment, System.Collections.Generic.List`1& tValues, System.Collections.Generic.List`1& markerDistances, Boolean forceAutoRotate)
    EasyRoads3Dv3.ERModularRoad.UpdateMesh (Boolean ignorePrefabAlignment, Boolean forceAutoRotate)
    EasyRoads3Dv3.ERCrossingPrefabs.DeformTCossingConnection (Int32 elInt, Single distance, Single defaultDistance, System.Collections.Generic.List`1 controlPoints, Single multiplyFactor, Single angle, Vector3 cpCenterPoint, Single curveStrength)
    EasyRoads3Dv3.ERModularRoadFunctions.ConnectionData (EasyRoads3Dv3.ERModularRoad roadScr, System.Collections.Generic.List`1& tmpNodes, System.Collections.Generic.List`1 splineStrength, EasyRoads3Dv3.ERCrossingPrefabs prefabInstance, Int32 connectionSegment, UnityEngine.Vector3& connectionDir, Int32 startEnd)
    EasyRoads3Dv3.ERModularRoad.GetSplinePoints (System.Collections.Generic.List`1 markers, Single faceDist, Boolean ignorePrefabAlignment, System.Collections.Generic.List`1& tValues, System.Collections.Generic.List`1& markerDistances, Boolean forceAutoRotate)
    EasyRoads3Dv3.ERModularRoad.UpdateMesh (Boolean ignorePrefabAlignment, Boolean forceAutoRotate)
    EasyRoads3Dv3.ERCrossingPrefabs.DeformTCossingConnection (Int32 elInt, Single distance, Single defaultDistance, System.Collections.Generic.List`1 controlPoints, Single multiplyFactor, Single angle, Vector3 cpCenterPoint, Single curveStrength)
    EasyRoads3Dv3.ERModularRoadFunctions.ConnectionData (EasyRoads3Dv3.ERModularRoad roadScr, System.Collections.Generic.List`1& tmpNodes, System.Collections.Generic.List`1 splineStrength, EasyRoads3Dv3.ERCrossingPrefabs prefabInstance, Int32 connectionSegment, UnityEngine.Vector3& connectionDir, Int32 startEnd)
    EasyRoads3Dv3.ERModularRoad.GetSplinePoints (System.Collections.Generic.List`1 markers, Single faceDist, Boolean ignorePrefabAlignment, System.Collections.Generic.List`1& tValues, System.Collections.Generic.List`1& markerDistances, Boolean forceAutoRotate)
    EasyRoads3Dv3.ERModularRoad.UpdateMesh (Boolean ignorePrefabAlignment, Boolean forceAutoRotate)
    EasyRoads3Dv3.ERCrossingPrefabs.DeformTCossingConnection (Int32 elInt, Single distance, Single defaultDistance, System.Collections.Generic.List`1 controlPoints, Single multiplyFactor, Single angle, Vector3 cpCenterPoint, Single curveStrength)
    EasyRoads3Dv3.ERModularRoadFunctions.ConnectionData (EasyRoads3Dv3.ERModularRoad roadScr, System.Collections.Generic.List`1& tmpNodes, System.Collections.Generic.List`1 splineStrength, EasyRoads3Dv3.ERCrossingPrefabs prefabInstance, Int32 connectionSegment, UnityEngine.Vector3& connectionDir, Int32 startEnd)
    EasyRoads3Dv3.ERModularRoad.GetSplinePoints (System.Collections.Generic.List`1 markers, Single faceDist, Boolean ignorePrefabAlignment, System.Collections.Generic.List`1& tValues, System.Collections.Generic.List`1& markerDistances, Boolean forceAutoRotate)
    EasyRoads3Dv3.ERModularRoad.UpdateMesh (Boolean ignorePrefabAlignment, Boolean forceAutoRotate)
    EasyRoads3Dv3.ERCrossingPrefabs.DeformTCossingConnection (Int32 elInt, Single distance, Single defaultDistance, System.Collections.Generic.List`1 controlPoints, Single multiplyFactor, Single angle, Vector3 cpCenterPoint, Single curveStrength)
    EasyRoads3Dv3.ERModularRoadFunctions.ConnectionData (EasyRoads3Dv3.ERModularRoad roadScr, System.Collections.Generic.List`1& tmpNodes, System.Collections.Generic.List`1 splineStrength, EasyRoads3Dv3.ERCrossingPrefabs prefabInstance, Int32 connectionSegment, UnityEngine.Vector3& connectionDir, Int32 startEnd)
    EasyRoads3Dv3.ERModularRoad.GetSplinePoints (System.Collections.Generic.List`1 markers, Single faceDist, Boolean ignorePrefabAlignment, System.Collections.Generic.List`1& tValues, System.Collections.Generic.List`1& markerDistances, Boolean forceAutoRotate)
    EasyRoads3Dv3.ERModularRoad.UpdateMesh (Boolean ignorePrefabAlignment, Boolean forceAutoRotate)
    EasyRoads3Dv3.ERCrossingPrefabs.DeformTCossingConnection (Int32 elInt, Single distance, Single defaultDistance, System.Collections.Generic.List`1 controlPoints, Single multiplyFactor, Single angle, Vector3 cpCenterPoint, Single curveStrength)
    EasyRoads3Dv3.ERModularRoadFunctions.ConnectionData (EasyRoads3Dv3.ERModularRoad roadScr, System.Collections.Generic.List`1& tmpNodes, System.Collections.Generic.List`1 splineStrength, EasyRoads3Dv3.ERCrossingPrefabs prefabInstance, Int32 connectionSegment, UnityEngine.Vector3& connectionDir, Int32 startEnd)
    EasyRoads3Dv3.ERModularRoad.GetSplinePoints (System.Collections.Generic.List`1 markers, Single faceDist, Boolean ignorePrefabAlignment, System.Collections.Generic.List`1& tValues, System.Collections.Generic.List`1& markerDistances, Boolean forceAutoRotate)
    EasyRoads3Dv3.ERModularRoad.UpdateMesh (Boolean ignorePrefabAlignment, Boolean forceAutoRotate)
    EasyRoads3Dv3.ERCrossingPrefabs.DeformTCossingConnection (Int32 elInt, Single distance, Single defaultDistance, System.Collections.Generic.List`1 controlPoints, Single multiplyFactor, Single angle, Vector3 cpCent<message truncated>


    I'm using beta 7.1. Also if someone could tell me how to hide that wall of text, it'd be greatly appreciated.
     
  10. raoul

    raoul

    Joined:
    Jul 14, 2007
    Posts:
    5,011
    Hi Atzig,

    Is this indeed related toT-crossings with Activate Bending on and the same road connected on both ends to the same T-crossing.

    In that case, this fixed in beta 7.3, can you try that?

    Thanks,
    Raoul
     
  11. raoul

    raoul

    Joined:
    Jul 14, 2007
    Posts:
    5,011

    Hi Stone Legion,

    The video demonstrates what I mentioned in my previous post. First you try to join a road with sidewalks with a road without sidewalks. The geomtery structure of both roads do not match that is why this fails. That said, the Join Roads button should not appear when the geometry structure does not match, I will see if I can replicate this. Afterwards you join two matching roads and it works as expected.

    Could you please explain what it is exactly that you are doing here? What do you mean with "My Prefabs"? Are these newly created dynamic prefabs through the system? That same error "Broke Text PPtr..." appears which you also posted on the previous page. I have literally created hundreds of dynamic crossings and never saw that error so I wonder how I can recreate it. Perhaps it is related to the specific Asset Serialization setting in your project not being set to Mixed. Is that still the case? I will see if I can recreate this with that setting.

    What other issues do you have?

    Thanks,
    Raoul
     
  12. Stone-Legion

    Stone-Legion

    Joined:
    Aug 16, 2013
    Posts:
    112
    Please see this video:


    Particularly towards the second half you will see some issues I'm having with EasyRoads just flat out breaking roads. :(

    Edit:
    Odd thing is I did join roads before same size with and without sidewalks and it did not break but that was pre 3.7 maybe that was a glitch that made it work. I remember I was shocked because when I joined it the entire system added a sidewalk.
     
    Last edited: Jan 22, 2016
  13. raoul

    raoul

    Joined:
    Jul 14, 2007
    Posts:
    5,011
    Hi Stone Legion,

    Apologies for the long post but I want to address everything I see in the video you posted.

    First Of all, and for sure it is related to some of the issues in the video, there are two Road Network objects in the scene from the very start of the video. A single scene should only have one Road Network object. I have not seen issues with this before but I just tested this and indeed the only way for me to achieve this is a Road Network gameobject duplicate in the hierarchy. I will look into that and make sure this is not possible.

    But for sure keep the above in mind for at least what is happening at 11.19 also pointed out below.

    1.55, you mention that you want to change terrain, increase it a little bit, then you say that EasyRoads changes that afterwards. First of all you have the white surfaces surrounding the roads are disabled. These white surfaces show how the terrain will be deformed and can be helpful i situation like this.

    The Unity terrain object is grid based, it is impossible to add detail points. This means that EasyRoads3D has to work with the available terrain points. The density of terrain points depends the terrains heightmapscale (size vs heightmap resolution). This is how the white surfaces are generated. These surfaces are based on Indent and Surrounding values. In General Settings > Scene Settings you will see the Min Indent and Min Surrounding values based on your terrains heightmapscale. These values are used for the marker Indent & surrounding values which you can make bigger per marker as an additional terrain deformation option.

    So if you want to preserve detail near the road you have to make your terrains heightmapscale smaller, increase the heightmap resolution.

    Also, if that is the actual problem, after you make terrain changes near a road, you may want to update the road so it follows the new terrain heights better.

    3.07 Terrain Deformation. You really do not have to lift the roads high above the ground, certainly not on a rather flat terrain as in the video. As mentioned there are situations where you have to be careful. Roads should not go below the terrains gameobject Y position, big height differences in the road when the terrain has a high heightmapscale (all this is mentoned in the troubleshooting page). Look at the number of posts in this thread, you will hardly find any posts related to issues with this. So I wonder what is causing this in your project? Can I have a look at it? Just to be sure, is Terrain Deformation switched on for all the roads in your scene? You can see that when the white surfaces area actiave. Roads without white surfaces will not flatten the terrain. Is this related to the issue with two road networks in the scene? Is this a result of two road networks existing the scene?

    3.32 Shift + R removes the selected markers

    It seems that not being able to select the marker afterwards is related to the previous Shift + R commands. I will see if I can replicate that. In this sort of situations, deselect (click somewhere on the terrain) and reselect should work.

    It looks like you want to connect the end of the road to the selected marker? In that case, you cannot connect markers to other markers like that. To do that, first cut the road at that point in two roads "Split Road At Selected Marker" button in the Inspector (or SHIFT + ALT + C). Aftewards you can insert a connection object and attach the roads.[edit] I see you did that later, With regard to “sometimes it works, sometimes it doesn’t”. This is indeed related to matching roads types or have you found a situation where this didn’t work for matching roads?

    4.20 “We see the plane fighting here”. The road is in Edit Mode and will disappear below the terrain if the terrain is higher. The terrain is flattened according the road network in Build Mode, through the middle mountain tab section.

    5.14 "Its not magical", Indeed it is not magical. All this takes time to implement. Indeed auto inserting a connection this way is on the list. Meanwhile plase use the approach above.

    5.19 Yes, moving marker with Move Handle works relative to the view angle, it is default Unity’s built-in Handles.FreeMoveHandle behaviour. Otherwise (5.30) press W for the position handle or reselect the position handle from the scene view toolbar. Also, to improve the workflow you can hold the Ctrl key while moving markers, this will snap the marker to the terrain at that position (also mentioned in the Shortcuts and Scene Operations section of the manual which shows several other useful shortcuts and commands). But still, the Move handle is more for views downwards, it is less suitable for horizontal scene cam views.

    6.15 Creating your own dynamic Intersections. How exactly did you create them? I am asking because you do not have to move anything in the assets folder. New Dynamic Prefabs are created through General Settings > Crossing Connection Prefabs (
    )

    7.30 At this moment getting all the features working has priority especially the Inspector, after that Undo will be added although this already works in several parts especially the Inspector. Undo is not something that works out of the box in Unity, it has to be implemented.

    8.15 This is you own dynamic intersection. Above I asked how you created it? Does the same problem happen with the crossings part of the package or is this another issue caused by two Road Networks existing the scene? The reason I am asking this is because what happens it that you are attaching a road without sidewalks to a crossing with sidewalks. This will not work. The strange thing is that when you select that specific last road marker, only crossing connections that match should have a green handle showing that it is ok to attach the road. Other connections should be displayed with a red handle and the road cannot be connected. In your case it displays with a green handle so I just tested this in the Main example scene, added two X crossings, disabled the sidewalks of a connection, pulled out a road. All free connections on both crossings in the scene display with red handles. When switching off the sidewalks of one of these connections it shows with a green handle so this does not seem to be broken.

    The issue that happened afterwards, right after joining the two roads you can already see from the road geometry something is wrong. Is this something that happens a lot? Can you reproduce it? Does it also happen between roads pulled out of one of provided dynamic crossings?

    10.19 This is obviously the result of what happened before.

    11.19 Previously you had Road Network (1) selected up to 10.19. The roads and connections are in the original road network. The two road networks are definitely conflicting with each other. It looks like the road network got duplicated when this specif road already existed. So after deleting the road from road network[1] the actual visible road was the one in the original Road Network and there for no markers were visible because that road network was not selected..

    Finally, regardless the fact that you have two road networks in the scene clearly causing issues, I would like to ask you to consider the fact that it is still in beta. In the beginning of your video it seems you are talking to the public rather then pointing out a bug for the sake of improving the tool. Are your youtube videos public? In that case I will have to comment on that on the youtube website itself. You make it appear as if the asset is done and finished, the final version, which is certainly not the case. After v3.0 is released the tool will continue to improve with more features and optimizations

    All this is fairly complicated, literally over hundreds of hours of work. There are bound to be bugs, they will be taken care of when reported, preferably in a way I can reproduce them.

    Thanks for your time reading this.

    Raoul
     
    Last edited: Jan 22, 2016
    hopeful and Stone-Legion like this.
  14. Meceka

    Meceka

    Joined:
    Dec 23, 2013
    Posts:
    367
    Hello Stone Legion, I am a user of easyroads;

    You are complaining about the tool very often. What easyroads does is not as simple as you believe. You have to give it some time to learn using it. You are complaining like you are playing a city building game.

    Developer is always seeking for bug reports and fixes them in no time.

    Here is what you can achieve with this tool if you use it smart;
    https://www.dropbox.com/s/tqrmdk80q26gjvf/Screenshot 2016-01-22 13.02.51.png?dl=0
    https://www.dropbox.com/s/iqwhondtqb4x1ln/Screenshot 2016-01-22 13.13.01.png?dl=0
    (Above screenshot's city roads arent made with easyroads)
    https://www.dropbox.com/s/tect0415a58foxo/Screenshot 2016-01-22 13.14.07.png?dl=0
    https://www.dropbox.com/s/66919e5r9y3jg6u/Screenshot 2016-01-22 13.19.35.png?dl=0
     
  15. raoul

    raoul

    Joined:
    Jul 14, 2007
    Posts:
    5,011

    Hi Meceka,

    Great work!

    I belief most of the issues Stone Legion is having are due to that second Road Network in the scene. I already updated the code to alert the user when the road network gameobject gets duplicated accidently. At this point it is hard though to completely avoid it because so far I have not been able to intercept hierarchy events and I don't think automatically removing a road object is a good implementation. I will have to look deeper into this, but at least a warning will appear in a dialog window so you can take care of it.

    I understand that the results of this, all sorts of weird things going on, can probably be annoying/frustrating when getting familiar with a tool as you have no frame of reference yet how things are supposed to work, what issue is really a bug or what else may have caused it.

    Thanks,
    Raoul
     
    Last edited: Jan 22, 2016
    Stone-Legion likes this.
  16. Stone-Legion

    Stone-Legion

    Joined:
    Aug 16, 2013
    Posts:
    112
    Just wanted to add I'm pretty sure I added a 2nd Road Network. Though I thought I had deleted the first but I think I did a rollback etc. That video I sent was pretty much my mess around and blow up version and then I just reverted the entire project back to only having one.

    1.55: Yeah I disabled those mainly for the video or when I work close tot he roads just so their not so distracting :)
    Good point about the Height Map. Sadly I'm not quite sure if I want to do this myself or not yet. Clearly it means more pain for me but at the same time our game is suppose to be low poly and I assume lower the res on heightmap the better. Not only that I had generated 80 other terrains (Current'y hidden). So if I adjust it overall I would have to redo things because the details it would end up providing hehe.

    But it's good to know if I want more detailed and less larger invasion from the roads effecting the terrain use a higher res.

    3.07: So when I first tested this out my Heightmap res was really high and now it's very low. I assume the reason I'm getting some clipping around is because of having it so low like above in 1:55? That really sucks I mean I can live with raising it up but such a low res might be a lot more problematic then I was hoping.

    My Height Map Resolution is 129 on a 2222x2222 Map.


    This is sadly starting explain why I'm having issues so much with the roads. Here I'm trying keep the terrain simple for a simple game but clearly when doing something more complex like a road network it needs a lot more to work with then 129.

    3:32: great to know the shortcut. Tbh my road types tend to match but I guess we also has a diff definition on that. For example if I connect a intersection to a main road and their the same size but have a sidewalk I always a assume that was fine. I swore a while ago when testing that it worked fine it just made the entire network show up with sidewalks.

    If it does not match and it breaks is there no way to counter this btw? Say no you can't do this because?

    Either way for now on I will make sure I disable my sidewalks on connect.

    5.19: Thanks I clearly need to read the manual not before bed because I missed some these shortcuts.

    6.15: So I created it that way even more basic I really touched very little options. I think my issue is I imported the entire asset as mixed mode to fix the text issues ( a known unity bug ) but after I went back to Force Text mode and everything was fine. But when I create the pre-fabs even simple of Name it, change size from 6 to 10 and then save it. I notice maybe not right away not quite sure but overtime I get the random errors.

    You had said before this might because it was done via text only mode? But if I set mixed mode reimport it no luck. I tried creating new pre-fabs in mixed mode and went back to text mode but I'm pretty sure overtime I got the errors again.

    I will make a video how I did it if you like.

    7.30: I could imagine how hard Undo would be. I know it's not a simple 1,2,3 but when you make a mistake it's really painful at times. I just miss such a function when working with the roads.



    In all the summery after 730+ and even before it seems like I have 3 major issues.

    1) Extra road network though that only showed up recently due to something I did derpy. Remember this scene was just used to destroy and screw around once I got annoyed. (I had since then reverted) and only have 1 road network.
    2) It seems that low hightmap causes less accuracy and causes some issues like z-plane fighting and causes a lot more terrain to be modified when working with the roads.
    3) The last and maybe one the biggest issues that causes full out bugs seems to be in the way I create pre-fabs. It seems like Asset Serialization Forced Text might cause issues. Not sure if I will have to set it all to Mixed Mode and then go back to Text Only mode. Then again I never tried using yours so maybe yours would error as well. Maybe converting back to text only has caused issues. I guess I will need to play around more with this.
     
  17. raoul

    raoul

    Joined:
    Jul 14, 2007
    Posts:
    5,011
    Hi Stone Legion,

    Top Menu > GameObject > 3D Object > EasyRoads3D > New Road Network, this checks whether a road network already exists and will only add one if it returns null, I double checked that. Also, the road network will be named “Road Network”. When you duplicate the road object in the hierarchy or with Ctrl + D the object will be named Road Network (1) like in your scene. It also explains where the duplicated roads come from at the end.

    1,55. Didn’t you use TerrainComposer, we use our own terrain system so I am not too familiar with it but I belief it is possible to quickly resample the terrain to an higher Heightmap resolution.

    3.07 Heightmap Resolution 129 on a terrain size of 2222 is indeed low, about 17 units per terrain tile. Unless the road is almost flat it is indeed almost impossible to accurately flatten the terrain according the road shape. Alternatively you can use a side object snapping to the terrain to create a mesh surface although this will require some work near crossings.

    3.32 Roads with sidewalks have a different geometry structure then a road without sidewalks so at the moment you cannot auto join the two without using a “connection prefab” in between. The dynamic crossing system will be expanded with more options. For now if you need a lot of this type of roads changing from sidewalks to no sidewalk, your could, export a short road without a sidewalk and a short road with sidewalks merge them in a modeling app, create a custom Prefab from that. This way you can achieve the same. By using exports from Unity you know the roads will have the same width.

    6.15 More info on that Resources.Load issue would be useful. I did notice that instantiating your own dynamic prefab in the last movie went well, I don’t think that error appeared.

    1) Yes, there is all sorts of things going on in that movie that can be annoying if you are new to a tool but as mentioned that duplicated Road Network was already in the scene when you started the video. It makes it very hard to judge what could potentially be a real bug.

    2) Definitely, just experiment a bit with different terrain resolution and how that affects the Min allowed Indent values by dragging the respective sliders in General Settings > Scene Settings to the left after updating the heightmap resolution. And also experiment with curvy roads, height differences on big heightmapscales and small heigthmapscales.

    3) The Asset Serialization issue when using Text mode instead of the default Mixed has been brought up now and then. After the first time I Iooked into that and came up with that workaround explained in the Troubleshooting section. No other issues have been reported with this so far so at this moment there is nothing else I can recommend. I will check this whole workflow of importing the package in a project using Text Mode for asset serialization and also creating new dynamic prefabs. Meanwhile, if you notice something like a pattern that consistently results in issue I would appreciate it a lot if you could let me know.

    Thanks,
    Raoul
     
  18. Stone-Legion

    Stone-Legion

    Joined:
    Aug 16, 2013
    Posts:
    112
    Thanks for all the info. I guess I was just getting a lot of bad luck. I think my biggest issue is issues are quite normal for Unity. I'm quite new with Unity and not use to workarounds and issues. Not saying your Asset is at wrong at all but I think just because of the quirks of the engine little things here and there I need to get use to having a bit more patience working with it.

    I have see the prefab video before in fact how I originally made my prefabs from it.

    I went ahead and made a new one via Mixed. My hope was to create prefabs in mixed and just convert the project back to text only since it seem to work well with the prefabs you included.

    Well sadly things went a little bad I think this is actually an entire new error for me. I went ahead and recorded it and now I could of made a mistake but I mean all I did was change side walk to 3 and road to 10 and save then close prefab editor. I even went ahead and created new road system with the old one remove 100% and a full editor shutdown also.




    I'm going ask TC guys about re-sampling and increasing height map.
     
  19. Stone-Legion

    Stone-Legion

    Joined:
    Aug 16, 2013
    Posts:
    112
    So you remember when the balls broke and stop working. I think I found out how to repeat that error 100% for myself. For some reason we are unable to move anything up or down via the Yellow, Green, Red Arrows ever. I thought it might just be a bug in unity 5 etc. I never really bothered thinking about it.

     
  20. raoul

    raoul

    Joined:
    Jul 14, 2007
    Posts:
    5,011
    Hello Stone Legion.

    You wrote "Well sadly things went a little bad" so I was expecting a mess again. All I see is that you create a new dynamic crossing, changed some settings, all seems to be ok. The only thing I see is the error message at the end. Is that what you meant? These are little things that need to be addressed similar as the warning that happens why you play the scene but am I right this is not affecting the actual scene workflow. Is the prefab indeed created correctly, is it visible in the crossings tab (third of the right) and can you create instances of this new prefab?

    Thank you,
    Raoul
     
    Last edited: Jan 22, 2016
  21. raoul

    raoul

    Joined:
    Jul 14, 2007
    Posts:
    5,011
    After you open the crossing tab I see dynamic crossings that you created. So I assume this is not a brand new project?

    The crossing you add to the scene does not respond at position changes so at that point you already know something is wrong, continuing doing things with this crossing is bound to be unreliable as well... Perhaps something is wrong with the prefabs in your project.

    I cannot see anything in this video that relates to previous posts you made. In what way are you able to repeat this 100%? Is this in this project only?

    Can you try the following. Create a new project, make sure asset serialization is set to to the default Mixed mode, this just for the sake of it if that is indeed causing issues.

    Import the package, (a fresh new asset import) try the demo scene, add an X crossing, etc. like in this video. Does all that work well? If so, create a new scene and repeat this, does it work well?

    You are posting some weird stuff over the past couple of days :) I have not seen anything like this in months. I know that isn't very helpful, but how to recreate this? Can you otherwise send me a project I can look at?

    Thanks,
    Raoul
     
    Last edited: Jan 23, 2016
  22. raoul

    raoul

    Joined:
    Jul 14, 2007
    Posts:
    5,011

    IMPORTANT: THE FIRST ASSET STORE BETA RELEASE IS NOW AVAILABE


    ------------------------------------------------------------------------------------------------------------

    Hi guys,

    I just received a confirmation from the asset store team that the first public v3 beta (7.3) has been accepted on the asset store.

    So I did a quick test, I am not sure if this is related to the package contents or just a temporary glitch but the download progress bar hang at 3% throughout the complete download, but it did complete. So if you experience the same please be patient…

    Since v3 is an entirely new road system, the import includes two packages, a v2 package update for the Unity 5.4 beta and the v3 beta.

    Please note that the location for both packages is /Assets/EasyRoads3D/ conform the final release and the previous closed beta package, so be careful importing both packages in the same project if you do want to import both packages. If you want to use both packages in the same project and avoid package contents being mixed (recommended) you could first import v2, afterwards change the folder name to “EasyRoads3D v2” and then import v3. V2 however is NOT required for the v3 beta.

    After doing a quick test with the Main demo scene it looks like everything works as expected.

    One glitch I noticed is that in Build Mode, contrary to the closed beta packages, you can select the other tabs. Please avoid this! Creating new roads etc. will not work until you click the “Back to Edit Mode” button in the middle mountain tab (Build Mode tab).

    Fingers crossed this is the only issue with this first asset store build :)

    Thanks,
    Raoul
     
    Last edited: Jan 22, 2016
    Meceka, hopeful and llJIMBOBll like this.
  23. llJIMBOBll

    llJIMBOBll

    Joined:
    Aug 23, 2014
    Posts:
    576
    Worked perfectly here :D Both versions in package. Thank you!
     
    raoul likes this.
  24. raoul

    raoul

    Joined:
    Jul 14, 2007
    Posts:
    5,011
    Hi llJIMBOBll, Good to hear that :), please let me know if you notice anything acting different compared to the previous beta.

    I am receiving some questions about the assets, textures and side objects. Indeed, compared to v2, the package will include more assets in the package itself. The current assets are still provisional and are mainly to show what is possible (side objects, custom crossing prefabs). This is one of the things that will be completed for the final v3.0 release.

    Thanks,
    Raoul
     
  25. virgiliu

    virgiliu

    Joined:
    Apr 4, 2015
    Posts:
    42
    Hi Raoul,

    After building a road and having it deform the terrain I manually made some changes to the terrain near the road. After that I realised that in one place the road was positioned wrong and have to go back to edit mode. The problem is that if I go back to edit mode my changes will be undone.
    Is it possible to go back to edit mode without reverting the terrain to its original shape and keep whatever changes were done by EasyRoads and myself?
     
  26. raoul

    raoul

    Joined:
    Jul 14, 2007
    Posts:
    5,011
    Hi Virgiliu,

    Indeed by default changes to the terrain in Build mode in areas that were affected by the road network will be undone when switching back to Edit mode. Otherwise the previous road shape will remain visible in the terrain when you make changes to the shape of a road afterwards. Changes to the terrain outside the affected area should be preserved when switching back to Edit Mode.

    It is possible to go back to Edit mode without reverting the terrain to its original shape. It was implemented upon request but it is hidden by default as I would not recommend to use it. General Settings > Scene Settings > Enable Back to Edit Mode without Terrain Restore. After activating this you will see an additional button in Build Mode that will switch the road network back to Edit mode without restoring the terrain.

    Thanks,
    Raoul
     
    Meceka and virgiliu like this.
  27. virgiliu

    virgiliu

    Joined:
    Apr 4, 2015
    Posts:
    42
    Thank you. Why do you not recommend using that feature?
     
  28. raoul

    raoul

    Joined:
    Jul 14, 2007
    Posts:
    5,011
    Because you will end up with the old road shape in the terrain after you decide to change a road.

    On reasonably flat terrains this will generally be fine but Imagine you spend hours creating an hilly terrain exactly the way you had in mind. You add some roads, the terrain will adjust to the road shapes then you decide to change the roads a little bit so you move markers and then it turns out the old road shape is still visible in the terrain. You could use the terrain backup options but in that case you also must make sure the backup is up to date.

    So I wouldn't use it for the main purpose of EasyRoads3D, creating road networks. But with the new v3 feature to have side objects deform the terrain (the riverbed side object for example) you could use the tool also as a terrain shape tool. Not restoring the terrain can be useful in this case. After you are happy with how the side objects affects the terrain you make it permanent so you can remove that side object instance or change the shape a little bit.

    Thanks,
    Raoul
     
    virgiliu likes this.
  29. LaverZZY

    LaverZZY

    Joined:
    Aug 11, 2014
    Posts:
    12
    hi, raoul
    can i scale the markers to scale the road section width? I need different widths in one road. ZYAPVZ9_BYH_YMILZC3LB8E.png
     
  30. Stone-Legion

    Stone-Legion

    Joined:
    Aug 16, 2013
    Posts:
    112
    What would your suggest be for max height map res / terrain size. I notice overdoing the height map or having small maps and large height map res the process time can be quite a long time :p
     
  31. raoul

    raoul

    Joined:
    Jul 14, 2007
    Posts:
    5,011
    Hi LaverZZY,

    You cannot scale markers but the N Key toggles On/Off handles at each vertex position of a row for the selected marker. You can use this to change the road shape. Hold Shift will move all vertices outside the selected vertex. When a vertex is selected you will see reset options further below in the Inspector.

    roadWidthChanges.jpg

    Thanks,
    Raoul
     
  32. raoul

    raoul

    Joined:
    Jul 14, 2007
    Posts:
    5,011
    Hi StoneLegion,

    How large is your heightmap resolution? Big road networks on 2049 and to a less extend 1025 do indeed take longer then the default 513 heightmap resolution.

    But I would never compromise the end result by using a lower heightmapscale only to speed up the processing time during development if you ideally would prefer that specific heightmapscale for your scenes.

    Instead, if you have a big road network and many terrain objects, you could work on the road network segment by segment and only flatten the associated terrain during testing. You can select that terrain from the dropdown or do Ctrl + Alt + Click on the specific terrain in Scene View to automatically select it.

    Once all the work is done you do a Build for all the terrain.

    Thanks,
    Raoul
     
    Stone-Legion likes this.
  33. Stone-Legion

    Stone-Legion

    Joined:
    Aug 16, 2013
    Posts:
    112
    I think right now it's 1024x1024 and 2048 height map. I'm doing nothing too detailed mostly rolling hills.

    That ctrl + alt trick I have to so try that tomorrow. It was annoying going down the list when you have like 25 terrains and trying to change something small back and forth.
     
  34. raoul

    raoul

    Joined:
    Jul 14, 2007
    Posts:
    5,011
    Yes, When you have many smoothly connecting terrains in the scene it is not easy to know which terrain tile you are exactly on, that is why Ctrl + Alt + Click was added, it is listed in the Shortcuts section of the manual.

    What is the terrain size? With a default terrain size of 2000x2000, an heightmap resolution of 2049 results in an heightmapscale of around 1, one unit between terrain points, that would be very detailed.

    Thanks,
    Raoul
     
  35. Stone-Legion

    Stone-Legion

    Joined:
    Aug 16, 2013
    Posts:
    112
    Is there a easy way for an idiot like me :p to close sidewalks to make them a little nice:



    Looks like some the bigger ones are sealed I'm going screw around and will update if I'm successful lol.
     
    Last edited: Jan 28, 2016
  36. raoul

    raoul

    Joined:
    Jul 14, 2007
    Posts:
    5,011
    Hi Stone Legion,

    It is a little bit hard to see but I think you mean the outer part of the sidewalk, is that right?

    In that case, select the connection (Yellow center handle) > Select Connection in Hierarchy (Inspector)

    Corner / Sidewalk Settings > Outer Curb checkbox

    That will close the sidewalk on the outside. It is this sort of things you preferably want to do when starting your road network, create new dynamic crossings so you can instantly reuse them. Right now you already have roads attached. This is fine if the road is not attached to a crossing at the other end but if it is you will probably get an error. The road will not update until you change the sidewalk on the crossing at the other side of the road in a similar way.

    Please let me know if you meant something else.

    Thanks,
    Raoul
     
    Stone-Legion likes this.
  37. Stone-Legion

    Stone-Legion

    Joined:
    Aug 16, 2013
    Posts:
    112
    Exactly what it was. I must of in the past of clicked it thinking damn I swore they were fine then derped up hehe.

    Thanks :)
     
    raoul likes this.
  38. Stone-Legion

    Stone-Legion

    Joined:
    Aug 16, 2013
    Posts:
    112
    Would anyone happen to have a corner prefab for the default road type?

    I'm puttering around still trying to learn the prefab creator. Pretty much I just wanted 4 way, 3 way and then a 2 way but corner wise like you see in the 3 way.




    If you ever make a video on how to make a custom prefab from scratch that be a good tutorial for people to grasp. I went through the videos unless I missed one but they were modify pre-made ones unless maybe that is exactly how it works you make it out of the editor and import them in maybe?
     
    Last edited: Jan 29, 2016
  39. raoul

    raoul

    Joined:
    Jul 14, 2007
    Posts:
    5,011
    Hi Stone Legion,

    Yes, Custom crossings are based on your own meshes. When it comes to roads and crossings there are so many different situations, it is impossible to cover everything, let alone in v3.0. That is what the custom prefab system is for, you can create specific crossings in a modeling app and import them in the system.

    So indeed, the provided videos (see the first post of this thread and the Quick Start section of the manual) only cover the part related to importing the mesh in the Custom prefab editor and creating crossing connections so you can attach roads and pull out new roads. It doesn't show how the models were made, this is more modelling related for which, depending on your modelling app, probably tutorials are available.

    But I am not entirely sure what you want to achieve, “4 way, 3 way then a 2 way but corner wise like you see in the 3 way.” It sounds like you can do this with the dynamic crossing system, or not?

    Thanks,
    Raoul
     
    Last edited: Jan 29, 2016
  40. NickRenkel

    NickRenkel

    Joined:
    Jan 29, 2016
    Posts:
    4
    Hi,

    I'm having a problem with creating a smooth track that goes downhill and takes relatively sharp corners.

    We're creating a downhill racing game, so obviously having a track that isn't bumpy and doesn't interfere with the racing experience is a huge priority.

    We decided to try out your tool as we wanted to use a spline creating approach to making the track, rather than using a string of prefabs and stitching them together.

    However, as I say, there seems to be a huge problem with creating sharp corners with inclines and declines.

    For example, here is a typical series of corners we want to achieve:

    Example1.png

    After building the track and looking a bit closer you can see there are lots of bumps in the road:

    Example2.png

    I thought this was due to the resolution not being high enough so I tried cranking that up to max. Now we can see a weird case where the polys are folding inside of themselves creating an overlap:

    Example3.png
    Is this simply a case that the tool cannot cope with a corner this sharp? Or are we missing something?

    I've tried playing around with a bunch of settings and I can't seem to get a flawless track, fixing a problem in 1 place seems to create another problem somewhere else.

    A couple more instances of corners being too "bumpy":

    Example4.png

    Example5.png

    I have the track deformation option ticked, but it still seems like the track is being influenced far too much by the terrain, when Ideally we want it to be the other way around.

    Many Thanks,

    Nick.
     
  41. Stone-Legion

    Stone-Legion

    Joined:
    Aug 16, 2013
    Posts:
    112
    I will have to play with it more. I guess rather then calling 2 way shap turn I should say I'm try to make an L connection. That would be like a lot of city grid roads that might not have say a left or right turn only one turn but still a turn. They are not super common though.

    For me like the picture I linked I'm trying make a small grid and was hoping instead of rounding the corners it end up being more like the 3 way just 2 ways like an L shape.

    The tools are quite powerful.

    So it makes sense I will have to learn how to use Blender another time and figure it out hehe. I have to many things on my plate right now but If I do figure it out I will throw the prefab here for others to use.
     
  42. raoul

    raoul

    Joined:
    Jul 14, 2007
    Posts:
    5,011
    Hi Nick,

    I see you are using Angle Treshold to force a higher resolution in bends rather then a low geometry resolution in general, the values I see in the Inspector are 1 resp. 15.

    As you can see a value of 1 for Angle Treshold results in an extremely high resolution also resulting in those bumps because indeed the height differences over a short distance is considerable in some of those screenshots.

    I have a feeling that a slightly higher value for Angle Treshold will reduce those bumps. Did you try that?

    Also, could you try reducing the geometry resolution to a lower value then 15? This should have better results in areas such as in image 3 where the road has a very high resolution with a much lower resolution near the marker. This lower resolution is a result of the high geometry resolution value of 15 which is probably what will never be triggered anyway given the nature of your track. Try reducing that value step by step towards 0. I belief you will not notice any big changes on straighter parts of the road until you reach perhaps a value of 4 or 5. But meanwhile the area in image 3 should improve. Is that indeed the case?

    Furthermore, this is one of the trickiest situations when it comes to terrain deformation. It looks like your terrain does have a relatively small heightmapscale which is good. Still, it will be difficult to get perfect terrain deformation due to the grid based nature of the unity terrain object. The road shape in those bends is so irregular that there are too little terrain points availbale to flatte the terrain accurately and it is impossible to add detail points to the terrain.

    To deal with that you could look into one of the more advanced features of v3 and use terrain mesh overlays in critical areas using the shape type of side object aligned perfactly with the road at the road sides and have the outer part snap to the terrain.

    But indeed the first step is to get the road shape smooth.

    Thanks,
    Raoul
     
  43. raoul

    raoul

    Joined:
    Jul 14, 2007
    Posts:
    5,011
    Hi Stone Legions,

    Yes, indeed L turns is one of those things that will be added as a built-in option.

    To create an L turn custom connection object you could follow the below steps:

    1. Create a new road of that type and position the markers exactly according the grid (same z value for both markers) matching more or less the size of the final L crossing.
    2. Make sure the road width, sidewalk geometry (road type) is indeed what you will be using.
    3. Export to .obj
    4. Import in your modelling tool and move it so it is centred at (0,0,0) if that is not already the case. You now have an exact reference regarding sizing etc.
    5. Depending on the options you have in your modelling tool for this, you can duplicate the object, rotate it 90 degrees and merge the two objects in a single object

    Thanks,
    Raoul
     
    Stone-Legion likes this.
  44. NickRenkel

    NickRenkel

    Joined:
    Jan 29, 2016
    Posts:
    4

    Hi Raoul,

    So we've been playing around with the resolution and angle threshold a lot and come to some understanding of how the system works and why it's doing what it's doing. I've been testing different combinations of resolutions and angle thresholds to try and get better corners but nothing was working for all situations. Some combinations fixed some corners, but only created or failed to fix other corners; it was changing from one kind of problem (image 3 - which has a resolution of 0.1) to another (image 2 which has the resolution of 10)

    Just coming back to what you said here:

    "Also, could you try reducing the geometry resolution to a lower value then 15? This should have better results in areas such as in image 3 where the road has a very high resolution with a much lower resolution near the marker."

    I should have mentioned in image 3 I actually set the resolution to a value of 0.1, changing the angle threshold while on this value doesn't seem to do anything. With a resolution of 0.1 the track was quite smooth (and expensive I would assume), but as you say, around the markers it seems to be much more jagged, I'm not sure why there are less polys there?

    After some playing around with different resolutions and angle thresholds we noticed that the overlapping was caused by the tight angles of the corners combined with the width of the track, when we reduced the width of the track we saw all the problems started to go away and we had a near perfect track at ~0.5 resolution, however the track is way to slim.

    Slim track with no bumps:

    SlimTracks.png

    Fat track with bumps and small overlapping:

    FatTrack.png

    Unfortunately, we ideally need a track width of about 8 for our game.

    From this I then noticed that with track deformation ticked there was a huge amount of width being taken up by the left and right indents, which is why the polys are overlapping as the intersect towards the edges. I've gone into Scene Settings and found out how to reduce this to a minimum of 3 but what we need would be more around 1 or even 0.5. Is there a way to lower this number further than what the scene settings allows me to?

    I should also point out that I am still very much a beginner in Unity (I only started a week or so ago) so I may have overlooked a few things, especially to do with how the terrain object is set up. I've had a quick tweak around with some of the settings and have now left it at:

    TerrainSettings.png

    I don't know if any of this will be contributing to what i'm seeing?

    Also, I'm not entirely sure how to use a terrain mesh overlay in these critical points, and what doing so will achieve. Do you have a video guide on this feature?

    Thanks,

    Nick.

    **
    EDIT:
    Alright so i've just made a new track to play around a bit with downhill corners and i've figured out the problem (or at least I think I have!)

    FiguredIt.png

    So as you can see on this image, I've gone with highest number of triangles I can (resolution of 0.1) and parts of the corner are great, but where the handles are placed (which I need so that I can control the corner more accurately) are where the problems come in. There are much less triangles around the handles and it's causing the overlaps and bumps..

    Is there a way I can have the same number of triangles around the handles are per the rest of the track?
    **
     
    Last edited: Jan 29, 2016
  45. raoul

    raoul

    Joined:
    Jul 14, 2007
    Posts:
    5,011
    Hi Nick,

    Yes, meanwhile I did some tests and indeed a Angle Treshold of 1 results in less resolution than in the screenshot so I assumed in that image you are using an even lower Angle Treshold.

    My comment of reducing the resolution to less than 15 actually does not seem to have an effect on the area near a marker. What happens near markers is that a new spline point is always added exactly at the marker position. To avoid that another spline point is positioned very close the next marker position will be forced as the next spline point if within “range”. I thought this range was based on a percentage of the used geometry resolution. Apparently that is not the case. In general it is not very noticeable but with these high resolution settings it is. I will look into this, it should take both the Angle Treshold and the Geometry Resolution values into account.

    Yes, the wider the roads the more chance of overlap. This can be further optimized by checking for overlap and use the previous inner vertex as a reference.

    Also, you may want to check the circular controller type (road width 8).

    hairpin.jpg

    I noticed some strange behavior when there is a significant height difference between the associated markers. I also noticed that Angle Treshold is currently not taken into account for the circular controller type. I will have a look at both things and optimized all this better for this particular situation. Next week a new beta will be available, I will see if I can add that.

    That said the height difference in your last screenshot at the bottom is kinda extreme :)

    The Minimum Indent value in General Settings > Scene Settings refers to the already mentioned heightmapscale of your terrain. If this is 3 in your scene, it means that 3 is the minimum required value to guarantee the best possible terrain deformation results based on your terrains heightmapscale. Your terrains heightmapscale is quite low so the terrain deformation results look decent but there areas (the inside of the road in the lower half of the last screenshot) are very critical.

    Heightmap resolution 2049 will give you lower minimum indent values but I generally wouldn’t recommend although this depends on your target platform.

    On the first page of this thread you see a mountain road (I copied them in this post to make this a little bit easier).





    The terrain is a default terrain 2000x2000, heightmap resolution 513 resulting in a minimum indent value of about 6 units. Yet on the inside you see that the terrain is quite close to the road. This is a terrain mesh overlay automatically generated using the Shape type of side object. This side object type is based on nodes you draw in a 2D editor. You can set nodes to snap to the terrain, the top node in this case, additional nodes have been added to control the rock and rock/grass textures by defining vertex colours. All this may sound complicated but it is fairly simple. It is a matter of experimenting with the settings. The terrain mesh gameobject material uses a simple shader that takes vertex colours into account. If you look a little bit higher on the hill in the middle of the image you will see the seam between the actual terrain and the terrain mesh overlay. You could completely blend the mesh overlay by using one of the terrain mesh blend tools on the asset store, for example, the RTP shader package has options for this.

    On the outside you see a wall, this too is a shape type of side object.

    Furthermore you see Indent Alignment dropdowns in the Inspector for the selected road marker. These control the alignment of the white surfaces surrounding the roads. By default they follow the road. By changing to one of the other options you can create space for, for example, the wall. Again this is a matter of checking these other alignment options and see what effect they have.

    I am currently building a new demo project, it will include examples of all the features, what you can do with v3, not only roads related. Examples of all this will be included as well.

    Thanks,

    Raoul

    [Edit] I just saw your Edit :). I think I already covered this in my reply in the bit explaining how this works regarding calculating spline points. It turns out that the geometry resolution, neither the Angle Treshold are taken into account at the moment which becomes clear when using these high resoluion settings. I will add that.
     
    Last edited: Jan 29, 2016
  46. Stone-Legion

    Stone-Legion

    Joined:
    Aug 16, 2013
    Posts:
    112
    Thanks for that. I don't think I will hand built it quite yet but depending how long and my experience down the road I will look into making it myself. I might just wait down the road anyways because I'm never in a rush I will just make my city corners a bit more unique :)

    Thanks again.

    Things are going better this time. The true Key is to just keep saving and make constant backups. I had some crazy stuff even where spits out GC Popup windows LOL. Unity is a pain at times but things are going better now I just accepted that saving every 5 minutes is a must. But that seems to be pretty much anything Unity even when mass dealing with Terrains etc.
     
  47. raoul

    raoul

    Joined:
    Jul 14, 2007
    Posts:
    5,011
    Glad to hear things are working better know. Do you still have the old project? It would be very much appreciated if you could email me a download link in that case so I can have a look at it.

    Ctrl S is a habit for me regardless the software I use but I wouldn't be surprised if it is every minute :) Indeed backing up full projects on an external disk regularly is also part of it. It is a small effort and you will not lose all your work in case something fatal happens.

    Thanks,
    Raoul
     
    Last edited: Jan 29, 2016
  48. Stone-Legion

    Stone-Legion

    Joined:
    Aug 16, 2013
    Posts:
    112
    I sadly nuked the entire scene tbh. I don't know what happen I think something must of broken from the import or maybe we broke it through Git even. Things are a lot better now who knows maybe something else was conflicting it.
     
  49. raoul

    raoul

    Joined:
    Jul 14, 2007
    Posts:
    5,011
    Yes, that is what I wanted to check. Anyway let me know if you have further questions or if you are running into issues.

    Meanwhile extreme hairpins have been optimized a little bit more:

    hairpinds2.jpg

    Thanks,
    Raoul
     
    NickRenkel and Stone-Legion like this.
  50. a436t4ataf

    a436t4ataf

    Joined:
    May 19, 2013
    Posts:
    830
    Which of the features currently work when invoked at runtime, in script? (and how well - are they 100% working, or only partial?)

    On your asset store page you say "v3 ... will include ... an API" - but from this thread it seems you don't count v3 as v3 yet (tip: instead of launching and saying its v3 beta, simply call it v3 and say that the missing features will arrive in v3.1, v3.2, whatever - it would be a lot less confusing).

    EasyRoads looks great, but the large number of small bugs in the core has put me off simply buying it and taking a gamble. I spend about 50% of my time in Unity writing custom editor plugins, and most of these bugs are MAJOR if you're doing procedural gen. In procgen, you cannot have all these edge-cases: they will destroy your game, and cost weeks in debugging only to discover it was an edge-case in a 3rd party plugin.

    With API access, I would create a wrapper plugin that detects and corrects the errors, but with no API it feels like I'd be stuck doing debugging for you, so that I could report the bugs (because they'll all be non-obivous - easyroads ahs been around so long tha tI'm sure you've fixed all the obvious bugs already!), then waiting for fixes.
     
unityunity