Do you need a fish tank for your game? No problem! This brochure contains three different fish tank solutions and at the end you’ll find two extra fish tricks!
Fish tanks are nice to look at because you can add a lot animated detail and if something doesn’t look perfect you can hide it by adding some water-distortion. For example these fishes are flat (seen from the side) because they’re just moving textures on a cylinder:
But as you see in the first video this disadvantage is covered by placing some algae. Really interesting: The abrupt bending of the fish when it hits a “corner” of the cylinder-polygons fits well to the “spontaneous” movement of real fish.
Looking closer you’ll notive that they aren’t flat! The manufacturer Rocksteady made them out of tasty polygons:
You might ask yourself how these particles disappear at the end of their lifetime. We guess it’s to avoid sorting-problems that developers don’t like to to use materials which can fade out smoothly:
They just shrink – but don’t worry! The aquarium setting works to our favor again. Do you know when big round aquariums distort the view a bit?
If you look at the first video again it almost looks like the bent surface acts like a magnifying glass and shows the growing & shrinking fishes in the middle bigger as the ones on the border. That’s why we think that the behavior of these fishes will not confuse observers too much.
Even if the fishes try to hide a secret by not showing their flank to the observer when turning around (as you can see above) we must confess that in reality these fishes are flat like their brothers in the very first example:
(We blame the distortion for that some fishes have a small offset to their particle and overhang a bit.)
But the frosted glass hides that perfectly and the only question left is: How do these guys look at the end of their lifetime? Well, see for yourself:
The particles get scaled in one axis which almost looks like that at a last action in his life the fish shows his flat secret to the observer. An very interesting alternative to “just” fade the particles out smoothly.
Source: Warcraft 3
You don’t need to get a fish with a complex rig doing crazy animations do show its back above the water:
It’s enough to get a simpler roll-fish with animated tail as long as nobody can look below the sea level and see what’s going on:
Source: Warcraft 3
Fishes with big eyes can be very interesting if they can dynamically look around:
At first this doesn’t sound like a complicated issue. Just put the fish and its pupils on different layers:
But when the fish can close his eyes you would expect that the eye lid would hide the pupil … which doesn’t work because they’re on the topmost layer!
It’s solved by removing the pupil layer for some animation states and render the pupils into the fish texture:
Here you see all possible animation states of the face texture and you’ll notice that some of them have pupils rendered into the texture and some don’t – the latter are the states where a extra pupil-layer is added to make the fish able to look around dynamically.
The code makes the fish look around but from where does the code know where the eyes “end” and avoids that the pupils move out of the eyeball? A very simple and clever trick: The pupils don’t move but only get rotated – with a slightly offset pivot point:
Thanks to our good friends at Claybox Games for supporting us with in-depth material!
I hope you found that stuff as interesting as I do and if you have questions or other feedback feel free to get in contact with me! :)
“Basically it was made out of dyed “cloth”, stacked up into piles, then random dead fish are simply dropped where it overlays the cloth stacks. […] Ultima allowed you to stack items, so by stacking these square shaped pieces of cloth and coloring them in various colors people could create all kinds of items. Like this piano from cloths and a chess board.”
Source: Jedi: Fallen Order
And I found the flipbook for these fishes as well. Yes, they don’t look extremely realistic, but to be honest, they are usually seen under blurry circumstances and in the background anyway, so that’s totally good enough: