Unvolontary Rocket Launching (Rigid Body, 2.66+)

Simple scene: A cube falls and breaks into pieces when it hits the ground.

For that, I used the Bullet physics integrated into Blender 2.66. I set a cube high above a floor and it falls. I added keyframes on its Animated status checkbox so that I stop it just before it hits the floor. At this point, I animated its position to move it under the floor and, at the same time, I animated all the shards from its fractured copy to replace it.

All the shards also have keyframes on their Animated status checkbox so that physics kicks in only after they are in position above the floor, ready to fall. (BTW, if somebody knows a way to keyframe this checkbox for several objects at the same time instead of having to do them one by one, or a way around, I’m interested.)

That’s the theory… In reality, the shards jump high in the sky and fall back onto the floor where the fractured cube finally explodes. Yes, as weird as it seems, the fractured cube keeps its shape during all its ballistic trip, even without constraints.

Maybe my whole approach is… sub-optimal? Maybe the shards turn into rockets because I animate their position from under the ground and Blender interprets it as an impulsion toward the sky? Or what-not?

Here is the file: RigidBody Test.blend (179 KB)

Thanks for your time…

I have experienced similar rockets and am still watching the forum for possible solutions. It may be due to object size - current rule of thumb seems to be don’t use objects smaller than about 20cm (which I guess is 0.2 blender units).

Another possibility is the collision margin. It seems that if a static active object like a cube is sitting very close to another static passive object ( or worse: touching or even slightly inside the object) , Blender sometimes seems to treat this as a serious collision in the first frame of the animation.

Finally, another rule of thumb seems to be to always enable the Split Impluse checkbox in the Rigid Body World.

I must say, I have tried all of this, and the only thing that has really worked for me so far is to make the objects much larger, which doesn’t seem a great solution when looking for realistic physical results. I’m not complaining mind you. This new version is fantastic, as are the developers. I’m sure they’ll continue to make the physics integration even more impressive.

If you switch from aminated to dynamic state, objects will have the velocity they had on the frame the switch happened.
Preferably your shards should move together with the unfractured object, then you can animate their visibility on impact.

About keyframing multiple checkboxes at a time, I think you could do that with keying sets, can’t be sure though.

Also you should only use split impulse if really needed as it will make the simulation less stable.

Split impulse does nothing. I wished it was something as simple as setting the cache step to 1 for the particles.

I tried to play with the collision margin. No improvement either. I just managed to make the shards separate in the air… which is worse than before.

And I can’t animate the cube and the shards to follow the same trajectory because they all use physics. They can’t occupy the same space-time. (I can’t believe I wrote this and it means something…) :smiley: So, playing with visibility and renderability isn’t an option.

The only thing that would work is to make things jump from layer to layer so that I don’t need to animate the shards at all… but we can’t do that any more. Somebody decided that this “feature” needed to be “fixed”.

Yes you can, put the shartds and the cube in different collision groups (in the physics tab).

I discovered the collision in the meantime… And a limited way to make objects jump from layer to layer. Actually, you can keyframe the layers to exclude from the renderer scene. So I put the floor on a layer, the falling cube on another one and the shards on a third.

While the cube is falling, I set the scene to acknowledge only the cube and the floor. And when the time comes to exchange the cube with the shards, I remove the layer of the cube from the scene to “replace” it with the one with the shards.

It works because of the collision groups too. Now, the last problem is to give some momentum to the shards because, right now, they fall like sh… shards. :wink: I guess I will have to animate them again. If it works to send them on orbit, it should work to make them explode on the floor.

You could try to increase the bounciness of the shards to 1 and animate the bounciness of the floor. As the shards hit the floor key frame the floor bounce to 1 and after the shards are in the air keyframe the bounce to a lower value.