0
$\begingroup$

I'm trying to figure out Blender 2.90 failing to apply rigid body physics to ball and chain. Here's a middle of animation for the problematic case:

screenshot of the Blender 2.90 user interace displaying Rigid body settings

The screenshot shows that the ball has Rigid Body Type: Active, Dynamic Mass 8 kg, Collision shape is final Mesh and sensitivity margin is 0.002 m. The cube has Type: Passive and the chain and ball are initially connected in horizontal position to the right. When I start play, the ball drops directly towards ground and the chain goes through the connection point in the Ball without any friction. The rest of the chain has sensible physics and correctly collides with the cube when full animation is played. The only difference between the links and the ball is the shape of the mesh and the weight of the object (1 kg vs 8 kg). Adjusting the weight or applying the modifiers doesn't seem to make any difference.

Can anybody explain why this fails? Things I've already tried without a fix:

  • Adjusting the weight of the ball.
  • Applying the modifiers for the ball.
  • Avoid small objects (the example file already has huge objects, the diameter for ball is around 5.8 m).
  • Reduce the Collision sensitivity margin. The default 0.05 m (if I remember correctly) resulted in huge visible space between the chain objects but didn't prevent chain from detaching from the ball.
  • Adjust Scene Rigid Body World settings to do 200 steps per second with 5 iterations. The default settings caused chain links to partially fall inside each other and didn't prevent chain from detaching from the ball.
  • Verify that the vertex normals are pointing outside for each object.

Is there something simple that I'm missing to fix the physics of the ball at the end of chain?

Full example file in a zip package can be found at https://filebin.ca/5eFfDexGdyAD/blender-physics-test.blend.zip

$\endgroup$
1
$\begingroup$

Edit: so as you answered yourself, applying scale of the ball seems to fix the problem.

My original answer:

I'm not sure that this is the best way to fix your problem but if you move the origin close to the link it seems to work:

enter image description here

Or you can select the ball, shift select the last ring, and in the header menu > Object > Rigid Body > Connect:

enter image description here

| improve this answer | |
$\endgroup$
  • $\begingroup$ I didn't expect moving the origin to affect the rigid body physics that much! The workaround with Rigid Body - Connect - Fixed results in last link not working (obviously due fixed connection). If I instead do Rigid Body - Connect - Point the Ball will keep attached to the chain but the connection point of Ball will still intersect the chain. For some reason, if the origin is far enough from the chain, the ring of the Ball is considered visual effect only. $\endgroup$ – Mikko Rantalainen Oct 18 at 17:41
  • $\begingroup$ so these solutions don't work? I'm not sure about what you mean by "the ring of the Ball is considered visual effect only" $\endgroup$ – moonboots Oct 18 at 17:47
  • $\begingroup$ I guess this is caused by a bug in Blender. I reported bug developer.blender.org/T81814 but I also found a workaround: select all simulated objects and apply transforms (Ctrl+A) "Rotation & Scale". $\endgroup$ – Mikko Rantalainen Oct 18 at 19:01
  • $\begingroup$ With "visual effect only" I mean that it connection point (half ring in the Ball) does not seem to interact with any other object taking part of Rigid Body simulation. If I move origin or use "fixed connection" instead of "point connection", this problem does not appear. However, I'm not happy with the results of "Fixed connection" because it seems obvious to me that the connection should twist during the animation. $\endgroup$ – Mikko Rantalainen Oct 18 at 19:05
  • 1
    $\begingroup$ well, I'm not good enough to answer these points ;) $\endgroup$ – moonboots Oct 18 at 19:12

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.