Using Softbodies to simulate rigid bodies dynamics.

 The goal is to use the softbody calculation to generate the dynamic motion that we can apply on a scene object.


·        
First we are going to create the object that will be the Softbody. You will need to get a primitive polygon Sphere with the menu Primitive > Polygon Mesh > Sphere.


·         When the Property      page pops up, enter      Softbody as the      name.

·         We need to move it       away. With the       sphere selected,       press V to translate       and select Global       as the mode.

      Translate it to
      X:–11, Y: 30, Z: 0.


·        
Now we need to      duplicate the      Softbody sphere in      order to use it as a      rigid object.

·         Select the Softbody      sphere and press      Ctrl + D to      duplicate. Press      Enter with the new      sphere still      selected. Enter      Rigid body as the      name.

·         Press H to hide      temporarily the new      rigid sphere.

·         As an obstacle we       are going to get a       grid object.

·         Get a Primitive >       Polygon Mesh >       grid.

·         Name it ground.

·         Press X to scale the       grid to a value of 8       for all three axis.       Translate it to –35       in Y.

·         To make the       simulation more       interesting and       provide       unpredictable       motion, we need to       deform that grid.

·         Hide the display       grid in the viewport       B to make things       clear, press G.

·         With the ground object selected, press T to select points. Drag over the right extremity of the grid       in the right view.

·         In the transform toolbar, activate Prop option. Press the right mouse button on Prop and adjust       the distance to 35.

·         Move each extremity up to 12 units and towards the exterior to 10 units in the right view.

·         Deactivate Prop. In the selection panel, activate object mode. With the ground object selected       choose deform > randomize from the model toolbar.

·         That is a first step. To have finer collision during the calculation, we need to increase the       resolution to gain detail.

·         With the grid selected, press Y and drag over the whole object to select all polygons. Choose       modify > polymesh > subdivision local refinement. Accept the default values.

·         The ground is too smooth now. Select Object mode and once again choose, Deform > randomize.

·         Set the displacement X, Y, Z values to 0.18, 0.18, 0

·         We are going to       apply the softbody       dynamic onto the       sphere. Lets adjust       the timeline end       frame to 200 to       make it longer.

·         Select the Softbody       Sphere and go the       simulate module (4       key on the       keyboard). Click       on Softbody.

·         In the new       property page, go       in the preset tab       and choose       Bowling Ball. That       will give us start       values.

·         In the simulation       tab, set the End       frame to 200 and        the Iteration to 7

·         In the softbody tab,       since we want it       mostly rigid, set       the Sampling to 2       and the Mass to       600.

·         Now in order to make it fall, we need some Gravity force. With the Softbody sphere still selected       choose Get > Force > gravity. It is applied to the sphere.

·         Set the gravity value to 200.

·         The last step is to set the collision between the ground and the softbody. Select the Softbody       sphere and choose Modify > environment > set obstacle. Pick the ground grid and exit with the       right mouse button.

·         Set the obstacle values as this: Friction to 1, Elasticity to 0.23 and Obstacle type to Actual shape.

·         You can now press the playback arrow to see the motion. We could still increase the stiffness       parameter to make the sphere look harder, however using the Rigid body sphere will solve our       problems.

·         We now want to transfer the translation and rotation of the Softbody sphere to the rigid body one.       The softbody operator actually deforms the object geometry, that is the centre of the Softbody       sphere has not moved at all. To plot the movement of the geometry as a translation we need to       apply constrains on clusters. Select the top point and choose Cluster in the edit panel. Choose       explorer from one of the view menu. Expand the softbody object geometry until you see the       cluster folder. A new point cluster has been created. Do the same for the bottom point of the       softbody.

·         By having one cluster at each pole of the sphere, we can therefore have an orientation vector for       the softbody. The line passing by them gives the direction. To transfer the motion to the Rigid       body sphere, we need objects that will represent that vector.


·         Get primitive > Implicit > Cube. Set the length to 0.8. Duplicate it twice. You should now have 3       cubes in the explorer.

·         Since the two spheres have the same shape, size and starting transform values, we just need an       object that will stay at the centre of the Softbody sphere to capture the translation values. We will       use one of the cubes for that purpose, the others will define the orientation with the poles. Select       the first cube, choose Constrain > object to cluster and pick the point cluster of the Softbody       sphere in the explorer. The cube jumps to the position of the top point of the sphere. Repeat this       step with the second cube and the second cluster.

·         Now that you have the two cubes defining the vector, select the third cube and choose Constrain       > 2 points and pick the two first cubes. Cube 2 just jumps in between the two first cubes, in the       middle of the sphere. In the property page of the constrain, deactivate the Up Vector tab. The       tangent tab is active and will give have the third cube following the direction vector defined by the       two cubes constrain.

·         Drag the timeline and look at the cubes, the middle one should just behave properly, as we want       it to.

With tab mode, the working space isn't cluttered and parameters can be modified from the different Tabs.

 

·         We can unhide the       Rigid sphere by       selecting it in the       explorer and       pressing H. We can       hide the three       cubes in order to       make it more       clear. Finally hide       the Softbody       sphere. Before       constraining the       Rigid sphere to the       middle cube, have       a look at the       centers. Select the       middle cube and       choose translation       and local mode.       We can see that       the red arrow (X       axis) is pointing in       the vector       direction. That is       the effect of the       tangency option of       the 2 points       constraint.

Select the rigid sphere and activate translation in local. You can notice that Green arrow is pointing in the vector direction. We need to compensate this difference before applying the constraint.

·          Select the Rigid sphere and activate the COMP button in the constrain panel. Choose constrain >        pose and pick the cube 2 in the explorer. This is going to constrain the rigid sphere to follow the        orientation, position and scale changes of the middle cube.

 

·         By playing back, you will notice that now the Rigid sphere is just following the same translation       and rotation as the Softbody one. In order to fine-tune the motion we can create a specific        property page that contains all the controls of the dynamic simulation.

·         Select the rigid sphere. Choose Animation > Parameters > new custom parameter set from the       animation panel. Name it Dynamic controls. Expand the Softbody sphere` s softbody operator in       the explorer. Expand Rigid body sphere to see the Dynamic control property page. Drag and drop       all the animatable parameters from the softbody, obstacle and gravity node into the Dynamic       control property page.

·         You can now open this control property page and fine tune your rigid body sphere with the       dynamic parameters.

 

·         You might find the motion too slow. If you need to modify the speed of the current motion or       simply want to plot the motion as an Fcurve we can duplicate the Rigid body and name it plot       sphere.

·         Hide the rigid body sphere. Select the Plot Sphere and activate the translation tool. This marks the       position parameters. Open the marking list and with Control select Ori.Euler.X / Y / and Z to add       the orientation to the marking. Click outside the list to validate. Choose Plot > Marked parameters       from the animate toolbar (2). In the property page, give the name Transforms and set the kind of       curve to standard and the step to 5. Validate.

·         This has just created an action containing the translation and rotation of the Plot Sphere. At this       stage you could choose to keep the action as well as the current pose constrain to the cube2. This       would allow you to mix both the Dynamic parameters modification and the plotted action. We will       keep only the plotted action to see how to change the speed of the animation.

·         In the explorer expand the Kine. Constrains folder of the Plot sphere. Select the pose constraint       and delete it.  Now the plot sphere lost its animation

·         There are two main possibilities for modifying the speed of the animation. Placing the animation       clip in the mixer track and scale the clip or applying the animation clip to the plot sphere and      retiming the Fcurves.

·         We will choose the second one. Expand the Animsources mixer node in the explorer and select the       item named transforms. Press Control and click on the plot sphere to add it to the selection.       Choose Action > Apply action from the animate toolbar. The plot sphere has now Fcurve       animation.

·         To change the speed of this keyframed animation, select the plot sphere and choose Animation >       Sequence animation > all parameters on selection from the animation toolbar. Choose the Retime       option. Enter 110 frames for the Retime Range After End text box.

·         Playback the animation.