5
$\begingroup$

I'm working on a scene with two balls that attract each other, they collide, bounce around, etc. I'm trying to do this by turning off gravity, setting each ball as an active rigid body and attaching a force field to it to attract the other ball.

This isn't working. If I put a force field on one ball, the other ball moves towards it, but as a soon as I put force fields on both balls, they both stop moving.

I've dug into the code and found the source of the problem. In blender/blenkernel/intern/rigidbody.c, there's a function rigidbody_update_sim_ob that includes the following code:

    /* update influence of effectors - but don't do it on an effector */
    /* only dynamic bodies need effector update */
    else if (rbo->type == RBO_TYPE_ACTIVE && ((ob->pd == NULL) || (ob->pd->forcefield == PFIELD_NULL))) {

...but this is exactly what I want! I want an effector to effect an effector!

So, why is the code written like this? Why can't an effector effect an effector? Should this be an option?

$\endgroup$
  • $\begingroup$ Are the effectors effecting or affecting the effectors? $\endgroup$ – catlover2 May 6 '14 at 7:35
6
$\begingroup$

You can work around this by parenting force-field empties to the rigid bodies instead of making the rigid-bodies effectors themselves:

  1. Add the force field: ShiftA>Force field > Force.

  2. Parent it to your rigid-body sphere. Select the force-field, then the sphere and press CtrlP> Object.

    enter image description here

    It is important that the force-field has the same rotation and location as the sphere.

The force-fields will not have any affect on the sphere they are parented to, as the center of mass of the sphere is in the same place as the center of the force-field. They will affect the other spheres though.

Example animation (click for html5 version):

Example .blend

$\endgroup$
  • 2
    $\begingroup$ @Brent Baccala: Also note, that this site is community driven. Though there are some developers around here, it might be better to contact them on more official channels. To get in contact with the developers look here. $\endgroup$ – user2859 May 6 '14 at 6:51

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.