Same mesh, same animation, but different point in time


I have two objects using the same mesh. The mesh has two shape keys. The transition between the keys is animated. I want the second object to perform the same animation as the first one (frames 0-120) but at a different point in time (e.g. frames 150-270), and the objects shall still use the same mesh. Is it possible?

Test 241.blend (64.3 KB)

Since the shape key animation is on the object data level and the two cubes share the same geometry data block, they also share the same action which can’t be placed on the timeline individally.

I haven’t found a way to get the shape key animation separated and still keep the same geometry data block…

Apart from the approach above, I was trying different routes. What seemed to be promising was this setting (in red) here:

As vertex groups are stored per object, not per mesh, this setting should be an object related setting, too. Therefore, my thought was to keyframe this value object-related, too. I’ve added two vertex groups to both cubes, named the groups “all” and “none” (containing all resp. none vertices). If you set the setting to “none”, it’s like disabling the shape key.

However, this doesn’t work for two reasons: The setting seems to be stored within the mesh data block, which, IMO, doesn’t make sense as data gets inconsistent if an object making use of the mesh does not even have a vertex group with that name. (this is like storing the delivery address in the product table, not in the customer table, so it’s invalid if the “wrong” customer orders the product). The second reason is that the value simply can not be keyframed.

So I’m still struggling with a basic animation task again…

I don’t see any way of using the same object data and still be able to alter the shape key actions individually in time in the NLA.

But as a workaround, here a suggestion:
Make the objects SingleUser (Object & Data). Now the shape key actions are separate and individually movable.
Of course now if you change the geometry, only one object is adjusted instead of all. If geo change should be needed for all objects, select them all and the one you’ve changed as last, then ‘Make Link’ to the object data again (Ctrl-L --> Object Data).
Now all the NLA shape key actions are ‘melted’ together again. You would have to repeat the above steps (make SingleUser, place the actions in time) again. Of course a pain in the neck if you’ve put a lot of work into editing the action strips…

Yep, that’s what I suspected we have to do.

Another thing I tried was using the “Mesh deform” modifier: There is one animated cube which is not rendered, and there are two cubes to be rendered. The latter two get a mesh deform modifier pointing to the first animated cube. We can keyframe the enabled/disabled property of the modifyer for each cube inidividually at different points in time. The effect seems to be what I was looking for, however, this still requires two meshes (one shapekey animated, one not). In addition, I don’t know how it behaves with more complex objects as the “Bind” button takes several seconds even for this simple mesh to compute it. Well, not a real solution.

I made another different attempt: Using the particle system, I was emitting those animated cubes. I was testing whether the time line of each cube might start at the moment it’s being emitted. Nope, it doesn’t, and there’s also no setting to control this. Would have been nice.

Anyway, thanks for your interest :slight_smile: I consider this topic closed from my part and will try to find something else without shapekey animation.