Making a model stick to a curved plane (with video example of what I'm looking for)

So at :22 in the linked video (http://pandapanther.com/2011/05/25/yahoo-mail/), there’s a neighborhood that slides over the top of a curved landscape, along with houses, and roads. I’ve tried a number of solutions to acheive this effect to no avail. The grass is easy using the shrinkwrap modifier. If however I try to constrain an object like a house (which has height), everything is scrunched down by the shrinkwrap. I’ve also tried to shrinkwrap a “path” curve to the landscape and have the house slide over that using the curve modifier, but it causes crazy distortions in the object.

Is there any way I could use the landscape as a lattice? I messed around with it for a bit, but couldn’t get it to work.

Ideally, if I were to recreate the effect, I’d want a landscape plane for the hill, and I’d design the neighborhood (houses, roads, etc) on a flat surface that I could contrain to the contour of the hill (much like the shrinkwrap, but without flattening anything).

Thanks for reading. Let me know if you think you have a solution.

-FK4

so, I rendered out a little test with a “hill” that I made from two beziers and a plane. The curve modifier worked alright, and I’m close to what I’m looking for. Any ideas on how I might achieve this with generated terrain, rather than manually created hills.

The only other problem I can see would be in animating the hill like in the yahoo mail spot. If the hill were animated using a displacement map, the curve modifier wouldn’t be possible, correct?

I guess I can’t upload an .mov, so I attached the blend file if you guys want to take a look.

Attachments

curvetest.blend (439 KB)

I just found this (http://www.youtube.com/watch?v=_BxEGITtEfg) which is pretty much what I want. It looks like they cloned the spheres to the vertices of a plane. It’s certainly close to what I need, but how would I attach a house to a specific vertex, so that I actually have control over the layout of the neighborhood.