Search Unity

Yet another video showing a cool project that was worked on during last week’s Ninja Camp, Spline based mesh extrusion!


37 replies on “NinjaCamp III: Spline Roads”

Nice job.
A common problem with curves in general is controling the upvector. From the demo, I understand that you can’t control the banking of the curve.
Let’s say you want to build a stockcar oval track with curves banking a specific degree.

A very useful addition would be to add an upvector for each node in the curve. This would allow to control the banking.

Is that native editor code or is it in c# and thus could be done in realtime during gameplay? I could really really use this in game! bad ass

Cool! Would be cool to select a group of meshes and being able to apply (mix) them randomly on the spline! BTW do the splines snap to surfaces?

I wondered: Could this tool handle situations like this?
So the idea is that one would pass in a number of points making up the base track outline and then one could also pass in intersections lines points and see the railing setup at the intersection part.
And if this is to be used for racetracks it would be nice top be able to set where the startline and finish line are so then it would place a texture/ mesh at those positions =)
Please do a beta cycle with this soon, that would be very nice =)

I haven´t looked at the vertex painting thing on the asset store but regarding easy roads that´s quite different because its focussed on unity terrain based painting. Besides that i think anything that is generally useful as editor functionality is best done by UT because they can do it in better performing more integrated way than a script driven clamped on top solution.
So while i love it that the community tries to fill up the gaps in between (and i get such things often as the case with EasyRoads) i still way more prefer to get the actual UT version then once available.
Of course it would be a nice symbiosis when things made by the community which seem useful to many users would get picked up by UT to get integrated into unity.

yeah, Easy Roads is still way in front for …being actually available
I am just voicing a general concern. I’m worried that who is going to want to develop for the Asset Store if 2 weeks later Unity releases something similar 2 weeks later. the Vertex painting extension in the Asset Store is so similar to the Ninja camp vertex painting example I actually thought it was the same thing

I´d like this, too if it could also be used with the terrain system and yeah, easyroads is a nice solution for roads with the terrain system, too, i think it would also be very cool to use it outside of the terrain system though (since well, that one isn´t supported on many weaker platforms anyway).

“Poor easy roads”
Easy roads is different to this from what I can see. The general concept is the same of course, but it seems easyroads is still way in front for… roads :)

Nice job! Poor easy roads :( I noticed someone posted a vertex painting system on the asset store around the same time as the announcement – seems like sad for those people who made those extensions. I am concerned this will potentially limit participation in the asset store, while 3rd party extensions shouldn’t influence your business and your release schedules etc I humbly suggest you please be mindful of the 3rd party devs for the sake of the larger success of the asset store. I really want the asset store to succed, for me it’s like having a great team of developers on staff!
This is just like the app store, sometimes a third party comes out with a similar feature as Apple plans to offer natively.
Oh well, good luck and keep up the good work.

I could really use this for our current project. You can’t release it soon enough. We’ve been using Unity for the last 3 months and love it, but we could really use a better road creation tool. Six-Times-Nothing’s script works well, but we really need something a little more robust. I tried easy roads and it’s okay, but I actually prefer the road and path tool. Love Unity program, thanks guys. Any chance you could let me know

Very nice, love it! That’s what I paid you guys for! :D

I just got a suggestion – maybe work on the terrain system some more?? so this road system can automatically cut into the terrain and grad the terrain according to attributes set out previously.

Oh and Unity iPhone/Android seriously needs some terrain loving!!! WE NEED TERRAIN for iPhone/Android!

We don’t introduce any vertices, simply “tile” the model and bend it. If you want fewer verts, use fewer verts in the model.

I also wondered whether this would be controllable via script, too so that one could feed it a list of points and then it would generate the road.

How many tris are used per segment, and can you define the limits?

Just curious how many where in this example also?


First, awesome work! This tool will spare a lot of development time ;)

Now i’d like to point out a few things that I missed from it:
– Seems like making the splines duplicate and modify the mesh the way it’s happening now won’t allow us to cross over the streets like this (jpg). Would we be able to cross them by specifying a “cross model”?
– I think this tool is not suited for mobile platforms because resulting mesh is way to dense, unless it calculate the intermediate points and optimize them based on an user defined minimum angle; straight parts doesn’t need to be duplicated, they should be streched and have the uv repeat and offset adjusted. If you need to add other models that duplicate along the road (like guardrails, light posts) would be nice to have a vector of gameobjects that does the job.

– How does the road behaves in a vertical loop (like a rollercoaster)? Will it try to make the road face up or follow the spline the way we expect it would be?
– Will we be able to switch the interpolation methods between Linear, Bezier, B-Spline, Akima and others?


Very nice looking tool, now i´m wondering when this might make it into unity though because i was just working on something similar myself for a game, not sure now if i should continue work on that now or wait for this and work on other parts of the game meanwhile.
Do you have any rough idea on when if at all this might make it into unity? Like would that be more likely a matter of weeks or months?

@Cascho: I´d disagree there because in case of something like this it could be used for procedural generation at runtime for things like level editor/ level data based road generation for example or also for creating randomized maps. So yeah, for things like this where it could be useful to have the meshes shapes be affected or driven by code i think its a great thing when unity includes tools for that. Dedicated 3D tools are nice for static meshes or animated characters and could still be used in combination with something like this for example when this is taken to the next logical step of also automatically placing sideline objects like tress, curbs, rails etc or as shown in the video the tunnel segments are objects coming from a 3D package, so basically the building blocks; unity is used for putting them together.

Nice but:
In my eyes this is definately a modelling-tool.
Generally Unity-guys should think about if it´s the right way to make Unity also a modelling software or let this field to the specific expert-tools like 3dsmax, maya,….
I would prefer to focus on referencing/instancing, Ninjas LOD-system, Node-based-ShaderEditor…

Just my personal opinion ;-)

@Vectrex and all

Although I like the idea of making unfinished work public to the world, most of these NinjaCamp projects touch native code which can’t be pushed to the world via the asset store. At the moment they can only be pushed to the world via an update.

Loving the spline deforms. So many emergent uses already springing to mind for it outside of making roads.

@Screenhog: You can already do this with the animation editor. There’s no in-world view of splines, but you can make curves for each x/y/z position using the animation window and animate any game object with them.

Great work!
I agree with Vectrex, it would be nice to see this projects on the asset store, so people can play with them before next release of unity.
Also please please release as much of demo pojects as you can (android tegra demo, Image Effects, Room of Shadows, Butterfly Demo, etc…), as are the best education tool for unity :)

If you do add this – and it’s certainly neat – I’d also recommend allowing those splines to also be available for animation purposes.

For instance, let’s say I’m making a platformer game. I create a track that I want a moving platform to connect to, and then I let the platform animate along that track back and forth (bad explanation, but hopefully you get the idea). That would be incredibly helpful.

Fantastic work. Would be really useful to have. I have a question about memory usage though. If you made a scene with 100 roads each with a different spline, when the project is exported does it just export each spline as a separate mesh in which case it would use as much memory as doing the work in a 3d modelling package or is it smart enough to only export one mesh and generate the splines on the fly a bit like unity does with prefabs ! Also can you use the spline objects as collision meshes for the physics engine. If so please release this as it would be ideal for my next project.

Very cool. My questions would be: What orientation controls would be available? and, Is there a way to “stick” the spline to a terrain so that you could extrude a road along a terrain?

I know that SixTimesNothing released a road tool, but it’s a bear to use and I’m hoping that some kind of road functionality makes it into Unity sometime soon.

Still, Ninja Camp is an awesome and productive idea, and Kudos to Unity for making it happen!

Nice. You guys should have a package on the asset store which is a Unity experimental area, where unfinished stuff can go and people can play about with them. Easy to update too from the store.

Comments are closed.