2
$\begingroup$

I have a scene of numerous objects ("triggers") arranged on a path that are animated to ride on a twisting conveyor belt. Suspended over the belt, there is a rigid body physics lever that is supposed to rotate on it's hinge whenever a passing trigger object makes contact, which then causes a mallet to swing that is connected to the lever via a rigid body spring constraint.

The problem is that the lever rarely reacts when a trigger makes contact. I have tried changing the sensitivity margin settings of both the lever and each trigger, but this has yielded hard to reproduce results. I have checked my normals, scale, etc. I have increased the Rigid Body World steps per second. I was able to fiddle with settings on the object physics properties, but could only get one of the triggers to move the lever; but after saving and then re-opening the blend file, the previously working trigger failed to work again!

In the screen shot, you can see the triggers distributed along the spiral conveyor, with an example trigger labled "X" (that will make contact with the lever when the animation starts). The curving arrow illustrates the direction of travel of the triggers (which travel at a steady velocity). The lever/mallet contraption is suspended over the triggers.

I would very much appreciate any suggestions as to what might be the issue.

Here is my blend file: https://drive.google.com/file/d/0B8euJ49ta_XTUFRnT2xTdTlZOEk/view?usp=sharing

Screenshot with X "trigger" that is supposed to impact the Lever

----- Updated ------

I created a simplified setup to figure this out, and I think that I am zeroing in, but not there yet.

I placed a simple spinning paddle wheel object under the lever. Eight paddles, with seven that are 0.05 blender units thick, and one paddle that is about 0.15 units thick. The tips of the paddles are about 9 blender units apart. I set the sensitivity margins of all physics objects to default 0.04.

The speed of the paddles, and the thickness of the paddles seem to make a difference. If I set the rate of spin down to a 2 second interval per paddle, the lever responds consistently to each paddle. If I speed up the paddle wheel, to about one second paddle spacing, then the lever hits success become variable: completely missing one third, slightly twitching for a third, and the final third are hit solidly.

At a midway speed setting of 1.5 seconds per paddle, I see an improvement over the 1 second spacing results. What I also notice at this speed is that the thicker paddle has the best chance (but not 100%) of moving the lever. When it does move the lever, the thicker paddle also forces the lever to deflect further than the thinner paddles deflect the lever.

I hope these further clues help to find a solution.

$\endgroup$
1
$\begingroup$

In the 6 weeks since I posted this question, I have found solutions and/or work-arounds for the problem.

Here are the relevant points that contributed to the fix:

1) The objects that sit on the conveyor belt were actually imported from an OBJ file that I built outside of Blender. Independent of my physics issues, I found that these objects were not rendering correctly. The issues seem to be related to normals being strangely wrong. Other users have also noted that OBJ imported objects have normals issues in Blender. I did a bulk swap-out of these imported objects using Ctrl-L Object Data, with a Blender-modeled object. This fixed my render issues. Was this OBJ issue impacting physics also? Perhaps.

2) The objects on the conveyor belt each have a Curve Modifier, and animation is done by key-framing the location of one of the objects that is the parent of the other objects on the conveyor belt. The fix involved creating a set of non-rendered objects that move on a plane in concert with the objects on the belt. These super-simplified "ghost" objects are setup with rigid body physics, and their only purpose is to trigger the mallets. I was fortunate that all of the mallets are on the same plane. I removed physics from the belt-mounted objects. This did the trick!! My observation is that the critical difference is that not using a curve modifier on objects that need to be part of the physics was the break-through that I needed.

3) Other lessons learned (painfully):

a) I accidentally changed the scene physics speed from 1.0 to 0.1. This caused everything to react very slowly which took me a while to find the root cause, as I was in the midst of tweaking various rigid body parameters and constraints.

b) Baking - Once I did a full bake on all frames (it took two hours), the scene simulations were much smoother.

$\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.