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. |
|
|
|
![]() |
· 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 |
![]() |
· 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. |
|
|
|