Procedural props for mappers
Andos
Join Date: 2003-10-17 Member: 21742Members
<div class="IPBDescription">Make trivial stuff easier</div>When I want to add some detail (read:models) to my map like railings, I have to stitch together my corridors to fit the "grid-size" of the model so I can snap together multiple parts. For example railing start, middle,middle,middle,end sections. This doesn't work for corridors with slopes unless I rotate the model or modify it in some way. This isn't very flexible if I change the slope or really need stuff to be a specific size without it looking awkward.
I propose a procedural object system generated with Lua scripting in the editor ("baked" into static VBO's at load-time for performance).
With dynamic props I could insert a railing and stretch it to any length and it automatically inserts evenly spaced support beams and so on. If it skew the object then the start and end could stay horizontal and then bend into the desired slope after a given length. Each dynamic prop then has a list over parameters that can be changed (as well as some world-space editing controls like points and blocks).
For example the railings could have two world-points the railing will span between and then a set of properties that modify the apperance and shape of the object. Like in this mockup:
<img src="http://www.andersriggelsen.dk/uploads/procedural_railing.png" border="0" class="linked-image" />
The Spore creature editor and model editor does this to some extend with the arrows and rotation tools you can use to modify the "prefab" properties.
This could be used for anything that is often used but should still vary enough so it doesn't look like you use the same model over and over again:
corridors, vents, pipes, train tracks, spiral stairs, domes of varying subdivisions, lab equipment of different sizes, pressure tanks, anything that can be procedurally generated at edit/load time.
You could hook this up with the 'Sign system' you proposed a very long time ago where you could modify the text on signs in the map-editor instead of making custom textures for every sign.
That way a sign would just be a procedurally generated prop with a text "control" on it. As you resize the sign it will wrap words correctly and all that. Flexibility ftw! :)
What do you think?
*edit* Cleared up some sentences.. (I was tired at the time of writing)
I propose a procedural object system generated with Lua scripting in the editor ("baked" into static VBO's at load-time for performance).
With dynamic props I could insert a railing and stretch it to any length and it automatically inserts evenly spaced support beams and so on. If it skew the object then the start and end could stay horizontal and then bend into the desired slope after a given length. Each dynamic prop then has a list over parameters that can be changed (as well as some world-space editing controls like points and blocks).
For example the railings could have two world-points the railing will span between and then a set of properties that modify the apperance and shape of the object. Like in this mockup:
<img src="http://www.andersriggelsen.dk/uploads/procedural_railing.png" border="0" class="linked-image" />
The Spore creature editor and model editor does this to some extend with the arrows and rotation tools you can use to modify the "prefab" properties.
This could be used for anything that is often used but should still vary enough so it doesn't look like you use the same model over and over again:
corridors, vents, pipes, train tracks, spiral stairs, domes of varying subdivisions, lab equipment of different sizes, pressure tanks, anything that can be procedurally generated at edit/load time.
You could hook this up with the 'Sign system' you proposed a very long time ago where you could modify the text on signs in the map-editor instead of making custom textures for every sign.
That way a sign would just be a procedurally generated prop with a text "control" on it. As you resize the sign it will wrap words correctly and all that. Flexibility ftw! :)
What do you think?
*edit* Cleared up some sentences.. (I was tired at the time of writing)
Comments
Only thing is that each procedural script needs to document how the texture layout should be for it to look correctly.
Btw, especially train tracks would benefit from this system. With a slider you could change the curvature of a section to make smooth turns, something you would only be able to if you made a custom model.
Track junctions could also easily be made.
its about a city-engine thats generating a complete city in a procedural way, but you still hve full control about the whole result if you wish so. Its a really nice tool, at least looks so :)
EDIT:
<!--quoteo(post=1726893:date=Sep 11 2009, 01:25 AM:name=Schimmel)--><div class='quotetop'>QUOTE (Schimmel @ Sep 11 2009, 01:25 AM) <a href="index.php?act=findpost&pid=1726893"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->some useful link to this topic: <a href="http://www.procedural.com/" target="_blank">http://www.procedural.com/</a><!--QuoteEnd--></div><!--QuoteEEnd-->
the video that showed up on the front page was pretty awesome.