5
$\begingroup$

Scenario: a stationary bar-shaped (rigid body) mesh floating in space (i.e., neither gravity nor friction/drag), that gets a short-lived force vector applied to one of its corner vertices, where the objective is to do a physics simulation/animation of the bar's movement in response to that force.

Problem: Force Fields seem to only work on the center of the object. Obviously, the somewhat complex rotational motion that would be expected in reality is not simulated at all. I guess the solution might be to use Particle Physics instead, but I haven't been able to find out yet how exactly. Can you help me?

$\endgroup$
  • $\begingroup$ I'm not sure if blender has any way to do this besides whacking the vertex in question with another rigidbody.. $\endgroup$ – gandalf3 Sep 27 '15 at 3:24
10
$\begingroup$

Simulations which include moments of inertia (https://en.wikipedia.org/wiki/Moment_of_inertia) and off-center forces can be created by combining objects though rigid-constraints, and applying forces through empties near each object. This animation shows the results that can be obtained. This simulates an object in space, without gravity, affected by forces applied at the corners.

Object acted on in space

In blender, objects behaves like point masses (https://en.wikipedia.org/wiki/Point_particle#Point_mass) located at the object origin. To simulate moments of inertia, several object must be combined using rigid constraints. This screencast illustrates two cubes affected by forces and moving based on moment of inertia.

Screencast of moment of interia

Note: There may be simpler ways to do this...


Procedure to replicate this animation (Blender 2.76)

  1. Turn off gravity.

zero gravity setting

  1. Create a slab for the object which moves.
  2. Create 4 spheres. Place one at each corner of the slab.
  3. Enable rigid-body physics for each sphere.

add rigid body

  1. Enable rigid-body, fixed constraints to connect the spheres together.

rigid body connections

  1. Parent the slab to one of the spheres. At this point, all of these parts will move together.
  2. To apply forces to a corner, do the following. Add an empty. Place it just below the origin of the sphere where the force will be applied. Parent the empty to the sphere. Enable forces for the empty. Set the forces to behave like a plane. Set the forces to a tube shape. Set the maximum distance and maximum radius for the forces to keep the effect local to the sphere. This can be done at each sphere. If forces are wanted in other axes, then rotate and empty and adjust its placement.

empty placement

  1. Use keyframes to animate the forces and drive the movement of the sphere.
  2. It may be necessary to adjust the physics solver settings to ensure the rigid-body constraints behave properly.

physics settings


The blend file for the animation is at:

$\endgroup$
  • $\begingroup$ Thank you for this great explanation! I am working with soft bodies (you may take a look at my question here) and I wonder if it is possible to apply forces to soft body shapes in a similar manner? $\endgroup$ – Amir Oct 15 '18 at 15:45

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.