2
$\begingroup$

I have a scene with (what will be) a treasure map and am trying to animate some coins falling onto it. I started based on this tutorial https://www.youtube.com/watch?v=iYL9w6xsZ6g made a coin, animated its rotation for the first frame and then animated turning off animation. Everything works perfectly if the coin drops from 2 blender units or less, but if I move the start position higher then the coin passes straight through the map mesh.

On the map mesh I have rigid body passive, shape: Mesh, Source: final On the coin mesh I have rigid body active, shape: convex hull, source: deform

I also encounter the problem if I start duplicating the coins at around 2 Blender units high, some will pass through and others will collide.

My coin is 0.237x0.237x0.047 and my map mesh is 0.02 units thick (though I've tried making it thicker and it didn't seem to help much) I'm using the Blender 2.78 release candidate

$\endgroup$
  • $\begingroup$ Make sure you've applied rotation and scale (Alt-A) to all objects. Also, rigid body physics becomes unstable for objects smaller than about 1 cm, so make sure you take that into account. $\endgroup$ – Anthony Forwood Sep 12 '16 at 3:56
  • $\begingroup$ Thanks, by 1cm do you mean 1 Blender unit or 1/100th of a Blender unit or some other value? $\endgroup$ – Steve Sep 12 '16 at 9:59
  • $\begingroup$ Well, it will be the equivalent of 1 cm when using metric units, so whatever the equivalent of that in Blender units is will be the case. $\endgroup$ – Anthony Forwood Sep 12 '16 at 19:09
  • $\begingroup$ Applying rotation seems to have made it worse, though I think applying scale is probably a good idea $\endgroup$ – Steve Sep 12 '16 at 21:24
3
$\begingroup$

Try scaling up your entire simulation.

You could also try changing the hitbox type of your coins from mesh to cylinder or cube.

The manual page about soft body collisions may help you.

It explains how the collision system works, and why your objects do not collide with the ground material.

$\endgroup$
  • $\begingroup$ Might want to change your link to blender.org/manual/physics/rigid_body/…, since you aren't talking about soft bodies here. $\endgroup$ – Sazerac Sep 12 '16 at 1:24
  • $\begingroup$ @Sazerac I looked at that link, but it did not explain the actual collision detection system. I don't know why. It would have made a lot more sense to put the collision detection system in with the simple stuff. $\endgroup$ – 10 Replies Sep 12 '16 at 1:26
  • $\begingroup$ Soft body is an entirely different solver than the rigid body one as far as I know. Rigid bodies use bullet, which implements its own collision handling (also its own soft body solver, which is not currently in blender). I guess the general principles are likely to be the same, but you would probably be better off finding something bullet specific. $\endgroup$ – Sazerac Sep 12 '16 at 1:30
  • $\begingroup$ The coins have shape:convex hull, it's the map that has shape:mesh. I'll try your suggestions tonight $\endgroup$ – Steve Sep 12 '16 at 10:03
  • $\begingroup$ I just tried scaling it up by a factor of 10 and it's generally better, but I have the same issue at around 30 Blender units now, instead of 3. Using cylinder definitely helps, but I still get one or two coins which fall through $\endgroup$ – Steve Sep 12 '16 at 19:58
2
$\begingroup$

As well as ensuring you 'Apply Scale' to each of your objects you need to ensure that the Rigid Body simulation is using a 'step size' that is small enough to allow for the motion of your bodies.

The Rigid Body simulation works by breaking the motion into discrete steps. This is controlled by the Rigid Body World settings in the Scene properties.

rigid body world

The default is to use 60 steps per second - so objects will be 'measured' every 1/60th of a second (just more than twice per frame if you're using 25 frames per second).

For two objects to collide blender needs to detect the collision. If an object is travelling at a speed that is such that it moves completely through a collision zone within the time of one step (eg, 1/60th of a second) then Blender will fail to detect the collision and it will simply pass through.

The solution is to tell the Rigid Body simulation to use a much smaller step size for fast moving objects. For example, try increasing the steps to 600 steps per second - this will tell Blender to sample the motion 10 times more frequently so the object will have moved only 1/10th of the previous distance and is much more likely to detect the collision.

Increasing the number of steps will increase the amount of processing time to run the simulation but will generally produce a much more accurate result, resulting in better collision and less 'jittering' - as can increasing the number of solver Iterations on the same properties panel - see also Why my active rigid bodies are vibrating Continuously?.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.