Posted by Duncan Brinsmead, 31 October 2012 10:21 pm
One can use nParticles to create a jiggling Jello substance that can be sliced using an nConstraint with breakable bonds. The workflow is relatively quick and easy.
Step 1: Model a "mold" in the shape you want the Jello to be in and select it.
Step 2: Fill the mold. Use the create nParticle fill method with close packing OFF and resolution high enough to be able to represent your shape well... somewhere around 60. Use the balls preset option on the create nParticle menu. Hide the mold when done.
Step 3: Select the particle system and create a Component to Component nConstraint.
Step 4: Edit the constraint. Set the connectionMethod to "Within Max Distance" and make the max distance as low as possible while still producing connections. Be carefull because if it is high you will get an enormous number of connections and it will be slow. If it is set right you should see a cube lattice with no diagonal connections. Set the constraint strength to around 2.0 (lower if you want it to be more floppy). Note that this simulation relies in part on self collisions between particles. The links by themselves can make the jello pretty stiff without self collisions if the strength is high, however the collisions allow the jello to be incompressible(as fluids are). In the example file the self collisions are turned off and instead liquid simulation(enableLiquidSimulation) is used for this incompressibility. This can be faster than self collisions and also can behave more naturally. One needs to carefully set the liquidRadiusScale when doing this.
Step 5: Enable "Use Plane" on the nucleus node and adjust the attribute "Space Scale" to match the proportions of your object. If you modelled in meters then leave it at 1.0 but if you modelled in cm. then the space scale needs to be set to 0.01 to match real world gravity. Note that for real world gravity at the scale of small objects the motion is very fast and thus one needs a high setting for substeps. The constraint strength may also need to be higher than 2 for a real world gravity setting. In the example scene file and video the space scale was left at 1.0 and the resulting gravity was weaker than in real life (for the scale of my mold) resulting in a slow motion simulation that only require substeps around 10. You can now play the simulation and see how it behaves. Note that rewind will be slow as the simulation recreates the constraint connections at the start frame, and this can be slow for max distance constraints when the number of particles is high.
Step 6: Set Glue Strength on the nConstraint to allow the constraint bonds to break under stress. The exact setting is a bit finicky and depends on things like constraint strength, gravity and substeps. At any rate you want the glue strength to be just barely high enough that the jello does not fall apart under gravity.
Step 7: Create a knife and cut the jello. The knife object could be a simple wedge shape. Select it and do nMesh: Create Passive Collide so that it will collide with the particles. You can then keyframe its position so it cuts the "jello". If the bonds don't break when cut then lower the glueStrength to the point that they do.
Step 8: Cache the simulation. Once you have a simulation you like then select the particle system and do nCache:create new cache.
Step 9: Create the jello mesh. Select the particle system and do "Modify: Convert: nParticle to Polygons". (note this enables intermediateObject on the particle shape, which hides the particles) A crude mesh will initially appear. This is because the triangle size default may be too large. Adjust the triangle size to get a good but not too detailed mesh. The quad mesh method with the meshSmoothing set to 3 can create nice clean meshes. Then adjust the blobby radius scale and the threshold to get a smooth mesh. It is easier to get a smooth mesh if the triangle size is as large as possible. For smaller triangle sizes one can still get a smooth mesh but the blobby radius scale and threshold values both need to be larger: one might need a threshold significantly greater than 1.0.
Step 10: Assign your favorite jello shader and render. In this example scene I used caustics, final gather and full deformation motion blur. The raytrace refraction limits need to be fairly high. I used a red blinn shader with red transparency, raytrace refractions and a refractive index of 1.3. An miRefractionBlur setting of 0.8 helps make the internal refractions slighly blurry.
Please only report comments that are spam or abusive.