Chris Folea shares some very clever modeling automation tricks here. Me like.
Chris says:
In this video, I go over the basics of procedural modeling in blender! This technique is useful if you need a lot of variations of one model. It's also just neat.
Here are some professional projects I used similar techniques in!
8 Comments
Cool. Just a few thoughts:
* Instead of remembering subscript numbers for dimension coordinates, why not use attribute names: dimensions.x instead of dimensions[0], dimensions.y instead of dimensions[1], dimensions.z instead of dimensions[2].
* Why have the separate dummy object? Why not hang the custom properties directly off the parametric house mesh itself?
* You can simplify expressions by using the Python Console as a calculator.
* The singular of “vertices” is “vertex”.
* Finally, why not take advantage of multiple screen layout presets, intead of doing all the tasks in a single layout, or (as seems all too common), continually adjusting windows manually within the “Default” layout.
Hey! Thanks for the thoughts!
1. For me, dimensions[0], etc were all I've ever been able to get to work in the drivers variables. Not sure how to reference it as dimensions.z, etc - if you know how, please let me know! :D
2. The dummy object is there for a few reasons. For me personally, it feels cleaner to have an overlying "rig" object. I usually parent everything to the empty(after centering it of course), and it ends up acting like a container object in Houdini. It's also useful if you end up making something in which you want your user to be able to swap out main portions of the object such as the base.
3. Great idea! I didn't think about that...
4. Hahahaha good catch! What did I call them?
5. When I learned blender, I always used the default layout. Now it's just a matter of preference/familiarity for me personally.
It's very odd that Blender allows you to right click a value box and choose 'Add Single Driver' but doesn't let you do the next logical step - right click another value box and choose 'Copy Single Data Path'. That way, when you pasted it into the drivers panel you would get dimensions[0] or dimensions.x inserted immediately, without having to guess what (or how) to add the mystery parameter.
Very interesting, thank you for sharing it!
Would the Hook modifier be useful? (roof)
I was waiting for this one!
I find this driver thing a bit hard to understand.. it hurts my brain!!
Thanks Chris!
This is great! Thanks a lot for this well explained insight in drivers.
awesome tutorial. i doubt i'd have thought to try it if i hadn't have seen this but now i've got some ideas i want to try out in the future.
Thanks for the tutorial, very interesting and useful topic.
The texturing via projected orthographic cameras is a bit clunky however and so I looked at ways to animate the texture which is also clunky (ha!). I've uploaded a WIP which consists of a cube with two material slots, one for the front, back, top and bottom sides and the other for the left and right sides. The materials use different UV maps so that when the cube is widened along the x-axis, the texture adjusts to avoid stretching. This is achieved by adding a driver to the x-scale of a mapping node which is fed the UV map. To update the Viewport when in Material mode I found I had to toggle the y-scale value on the mapping node but it does update in real-time in Rendered mode in the 3D-view. The reason for two materials is so the sides don't get scaled along with the front and back.
I've not shared publicly via GoogleDrive before so please let me know if the link to the blend file works:
https://drive.google.com/file/d/0B-i1Rwo3llFqYjRoRV80dVFHWmM/edit?usp=sharing