Radial Expansion of Linked Objects


I’m working on a project where I’d like to have many linked objects respond to the transformation of one object, but not globally.

Here’s a look at my model:

This is the turbine section of an engine and, as you can see, there are many little fan blades oriented in a circular pattern around the hubs which connect them to the shaft.

I want to animate the fan blades coming together from an exploded view. Imagine a fan spinning and all of the blades separate from the hub at the same time, sending each respective blade shooting outward away from the axis of rotation. That’s what I want to do, just in reverse.

The blades of each turbine fan are linked and grouped, but I can’t figure out how to animate one of the blades and have the other 80 blades do the same thing. If I transform the mesh in edit mode then the other blades respond exactly as they should, but I can’t seem to animate with keyframes in edit mode.

Any guidance and suggestions are greatly appreciated. I’d really like to avoid making, parenting and animating 300+ individual armatures. Thanks so much!

hi and welcome, there are many setups to do that, here a couple of them… http://db.tt/us8fDyKF

  • with a copy location constraint -enable ‘Copy Atributes Menu’ addon to easily transfer constraints-
  • parenting your objects to the vertices of a circle, then just scaling the circle would do it… see ‘parent to mesh’ script in blend to do this
  • an easier one: just keyframing the location of your objects, there is a ‘manipulate center points’ icon next to pivots, with that active you can scale all your objects in the group and only the ‘distance’ between them will scale, try it!

but again, this can be done in many other ways… scripting, using drivers, an array modifier, etc.

Hi Liero,

Thank you very much, manipulate center points is what worked for me!

For anyone else who runs into this situation, keep in mind that for Liero’s manipulate center points method to work you must first make each of the blade objects (or whatever your objects are) single user (if they are linked) and assign the object center to the center of each blade. You can do this quickly by group selecting all the blades and pressing center new or center to object geometry (depending on which Blender version you’re using).

The blades can’t all share the same object center, otherwise scaling from object center is impossible (trying to move two objects whose center points are 0 units apart twice as far away from each other results in them still being 0 units apart, 2x0=0).

By setting the center of each blade object to it’s own center of geometry, each blade now has different center coordinates and thus, measurable distance from one another and that can be scaled!