1
$\begingroup$

Using Blender 4.0.

In a project I'm doing, I'm trying to have several different physics objects move around the scene but end up on top of each other. For instance:

enter image description here

I want to have the bedframe slide in, then have the mattress and ragdoll person be launched simultaneously so that they all stack on top in a way you would expect.

I'm purely using rigidbody physics right now so I'm just getting results like this:

enter image description here

I'm wondering if there is a way to have a rigidbody already have a goal in mind that it is drawn to, so that I can create more of a satisfying animation? I suppose I could just keep iterating with forces and friction, but I feel like there must be a better way.

Thanks in advance!

$\endgroup$
2
  • 1
    $\begingroup$ Well, no real goal you could give them - because it's a simulation, you could only try to tweak the settings to get it to work like you want. But: it depends on how much the objects relate to each other and their simulation builds up on one another. For example, I once saw a tutorial how to create a logo by each character falling on the floor separately. You do the physics, then bake the animation to keyframes, parent the animated object to an empty and move the empty so that the character ends in the desired location. But this becomes more difficult if objects fall on top of each other. $\endgroup$ Feb 19 at 8:09
  • $\begingroup$ @GordonBrinkmann: i think we saw the same tutorial ;) But you just have to move the empty to the location you want, so i don't think it is "that more" difficult. $\endgroup$
    – Chris
    Feb 19 at 9:20

2 Answers 2

1
$\begingroup$

As Gordon wrote:

Just make your rigid body simulation as you like.

Then bake the animation to keyframes.

Parent each object to an empty (at the end of the simulation).

Move the empty where you want it to be.

Enjoy your animation.

The tutorial which i think Gordon talked about, is here: https://youtu.be/ySL4KG2dunQ?si=GngIGJcGyJ8mDC3p Which by the way is a great channel with very high quality videos, from which i learnt a lot.

$\endgroup$
4
  • 1
    $\begingroup$ But if you have interaction between rigid body objects, the problem is if you move the animation with an empty so that the end position fits your goal, then the way to reach this end position changes as well and can make interactions different or for example make objects move through other objects. It depends on the specific animation of course. That's what I meant in my comment above. But yep, it is the same tutorial ;) $\endgroup$ Feb 19 at 9:30
  • $\begingroup$ ah ok, yes, the problem of course always exists, if you move the empty - the collision will be wrong, so you have to avoid (visible) collision ;) but he spokes about that in the tutorial as well ;) $\endgroup$
    – Chris
    Feb 19 at 9:47
  • $\begingroup$ I know, I just mentioned it above to hint on the limitations of this method... because the question does not look like it would be easy to avoid collisions ;) Even in the example of the video - the characters are quite close together, there it can easily come to (apparently) incorrect behaviour. $\endgroup$ Feb 19 at 10:13
  • $\begingroup$ Thanks for the info! I think I might be able to make it work with what the video says… :-) $\endgroup$ Feb 19 at 14:45
0
$\begingroup$

There's more than one technique.

Sometimes, running your physics backwards is what makes sense:

enter image description here

On the bottom, I'm starting with the letter in my desired position; it has a unrealistic bounciness of 3.0, and no damping, so rather than losing energy, it gains energy. After baking to keyframes and then reversing those keyframes, I end up with the top text: the letter appears to fall into the exact place I want it to be.

This method gives perfect control over the "final" position of the object, and it reacts just fine with other rigid bodies (provided those rigid bodies are also running backwards through time.) It has some disadvantages: there's no such thing as negative damping, and out-of-range bounciness is hard to tune. And while you gain control over the final position, you lose all control over the initial position.

You can also use animated physics to give it a nudge. You can make animated non-rendering collision objects, that exist just so you can invisibly push rigid bodies into place; you can use rigid body constraints linking your body to animated, non-rendering rigid bodies; you can use animated force fields. These are not quite as natural looking as running it backwards, and they're not likely to get you exactly where you want to be, but these allow you to have control over any time period of your rigid body simulation.

Finally, you can just outright cheat: as your rigid body physics start to settle down, you can animate the influence of a copy transforms constraint targeting some other object. (Note that rigid bodies don't actually respect constraints, but you can bake to keyframes, or use a different rendering object.)

These techniques can even be combined.

$\endgroup$

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .