This week in dynamics we looked at soft bodies. The homework task is to use soft bodies to deform a ground plane, leaving different types of footprints in different surfaces i.e – rock, sand and mud.
Here are the steps I used along the way –
– firstly, duplicate special on the figures geometry, keeping the input graph so that the animation is retained.
– I then isolated the faces for the feet, shift-dragged across all the faces to invert the selection, then delete so only the geo for the shoes remained.
– I ramped up the subdivisions on the ground plane to 50/150 (then I experimented with higher counts but I will talk about that later.)
– then select the ground plane and make it a soft body. I used the options to ‘make original soft‘ I prefer this option as it creates a less complicated name on the soft body you will be working with – the non-deformed plane is really just a spare and a potential goal target- I set it as weighted but kept the goal weight at 0 for now.
– now I make sure I am at frame 1 and add springs to the particle, selecting the wireframe creation method with wire length of 2.
– now I select the springs in the outliner and hide it as it can slow the display (the springs are still calculated),
– so that I don’t have to look at the particles (it is more the geo that is important in this kind of sim) I add a per object opacity and set it to 0.
– now I select the particle, then the feet geo and make a collision. The footprints are created as a result of this collision.
– I set the conserve to zero so that the forces are only applied as the geo collides with the particles – the energy then dissapates.
– This completes the draft version of the sim and there are many problems to fix.
Problems and resolutions –
The most obvious problem is that vertices from the ground plane are sticking to the feet in a pretty big way!
I start to experiment with settings to resolve this. It mostly comes down to the settings for the spring–
For me, it became a battle between having the stiffness and damping settings high enough to break the ‘stickyness’ but not so high that the simulation explodes geo into your face!
I found that settings of 50 for stiffness and .7 for damping to be about as far as I could push things.
I also tried to increase the ‘oversampling‘ from 1 to 4 but this did not help and really slowed the playback rate. Reducing back to 2 did not help much either – it just seemed to make the spring settings more sensitive.
Nothing I tried would seem to resolve the fact that single vertices were ‘popping’ to follow the feet geo, so I decided to go back to scratch and make the ground plane geo more dense.
I changed the subdivisions from 50/150 up to 150/450 – then it seemed to die while adding the springs – the wheel spun longer than it took to make a cup of tea so I escaped out and retried it with divisions of 100/300.
Now (eventually) the springs calculated and I pressed on with steps from before…….
only to discover that it made NO DIFFERENCE (feel my caps lock rage!)
I reverted back to an attribute that seemed to help in a similar project we did in class – setting the ‘offset’ on the geoConnector up to 1. This again seemed to help but the biggest problem with this fix is that I don’t really know why?
Anyway, with the sim working reasonably (still not quite happy), I moved on to trying to replicate the 3 different surface materials.
The idea is to introduce some goal behavior back to the un-deformed flat plane duplicate.
I know that goalPP is a multiplier for the actual ‘per object’ goal weight so the first step is to set the goal weight to 1 – otherwise the PP would do exactly nothing.
Then in the top ortho view, I select the particles in the rock area, go to the component editor and set the goal weights to 1. This means there should be no footprint effect as it is goaled 100% to the non deformed plane.
I shift-drag select the particles to invert the selection, give those a goal weight of .1 – this is my target for the sand area as sand footprints tend to last a very long time (depending on the moisture content and fineness of the sand).
Then I select just the mud region and give those a value of .4 as I want those to pop back to non-def shape relatively quickly.
Results – my weight values actually worked really well first go– the sand and mud act exactly as I had hoped (aside from a few popping verts which I still cant seem to find a fix for) with the sand hardly springing back at all and the mud springing back to shape at just the right speed.
The only real problem I have is the rock section. Even though I have goaled them at 1 and there should be no effect, I can still see a hint of a footprint being created.
After spending way too long trying to find a legitimate fix for this, I decide to use the teachers analogy of ‘what happens if it is 11pm and it needs to be rendered for the morning?’-
-my ‘dodgy’ fix is to animate the translate Y on the locator that controls the character so he lifts ever so slightly up for the duration of the rock section then eases down for the start of the sand. I know…..
Anyway, here is the end result –