Animated water is one of those things
that really needs to be animated by
a physics system, animating it by hand is
just not really practical with today's constraints
on time. We will achieve this animated water
effect by a combination of gravity, a creator
and some scripting.
First create a basic tap
from a few NURB's meshes, after all
the water has to come out of somewhere!
This tap was just a simple NURB's
profile rotated around an axis to
form the body of the tap and then
a circle was swept along another curve
to create the spout. Both objects
were then selected and a fillet was
created to weld them both together
into a single object. Quick and simple. |
|
|
Create a Metaball object
for the water. After I played about
a bit I personally decided on an ISO
value of 0.75, a mesh resolution of
40 all around, a test setting of 6,
and accuracy setting of 3 and finally
the Metaball method must be set to 'volume'
This does create a very dense mesh
as you can see from the image, but
it is necessary to have this level
of accuracy to create realistic water,
you can try playing with the settings
and find some that are suited to the
fluid you are trying to animate. |
Inside the Metaball you
need to create some gravity to pull
the tap water down. The strength of
the gravity obviously depends on the
speed that you want your water to fall
down. Although you do need to balance
it with the rate that the creator builds
the objects, because when the water
starts to fall quickly the spheres will
space out to an extent where they become
water drops instead of a water stream.
You will need to judge this for yourself
but I decided on a speed of 0.25m/s
for my example. You will also need
to turn on simulation for the Metaball
object so that the gravity can take
effect. |
|
|
Also inside the Metaball
object you will need a 'creator' object
as mentioned above, this will create
the water drops for you automatically.
You will almost certainly need to set
the creator to build an object every
frame to get a steady stream.
If you find your water is breaking
up prematurely you can set it up to
created several objects at slightly
different heights to create more than
one sphere every frame.
When you play this on its own the
water will flood out in a straight
line, nice but boring. So you need
to move the water about a bit. |
My first attempt was to
create NURB's line wrapped up into a
tight ball with about 100 randomly clicked
points in it.
I lattice mapped the Creator object
to the NURB's curve and when I played
this the ball was moved about so quickly
it created a random like effect (I
learnt this trick from the Real 3D
tutorial on boiling water).
However although it was created 'randomly'
afterwards it still fell down straight
and just looked 'synthetic'. So I
abandoned this method and decided
to give it some true random movement.
It was time to get
Building
blocks out! |
|
|
The best way I could think of was to
assign a random velocity to the creator
object (interestingly instead of affecting
the creator object it affected the created
balls, which was perfect for what I
wanted to achieve) I gave it a random
initial downward velocity and a small
sideways velocity, which gravity then
adds too.
For the non-scripters amongst us
the water level in the sample project
can be simply reused but if you need
to add new creator objects to the
water effect you need to modify the
script and add more lines like those
to the left. If you are not comfortable
doing this, ask someone for help on
the list.
|
The script that is supplied
with this example emphasises the effect
of the water by creating three further
smaller droplets. The effect of this
when played is to create smaller perturbations
in the water stream before these droplets
break away into tiny globules of water
to represent a spray of droplets. |
|
|
Finally a water material
needs to be added. I used a basic glass
with a blue Ray Termination effect,
thanks to David Coombes latest tutorial
found elsewhere on this site. I think
the final effect when animated looks
quite nice and fairly realistic. |