Super Smash Bros. Brawl may have been released 4 years ago,
but that doesn’t mean there isn’t something that can be learned from it. Knowledge
from classes from the previous year have made me realize just how some of the
systems in Super Smash Bros. Brawl now work. I won’t have code or anything but
I do have tons of experience with this game so some of this is speculation but
I do have some proof too!
Physics &
Gameplay
For this entry in the series, they were able to get the Havok engine into their game. But Super Smash Bros has always dealt with physics in it's own way and having Havok only helps. With Havok the game deals with physics in ways that don’t deter
from the core gameplay the series is known for and adds several things that make the game more dynamic then it used to be.
A brief overview of how
the gameplay works is that characters are knocked off stage, flying further the
more damage they receive until they are KO’d offstage. The distance someone
flies away is based on several factors...
1) The character’s weight – The lighter the character the
farther they fly when hit. Heavier doesn’t fly as far. In general heavier character are slower and lighter are faster.
Mario is considered average weight while Bowser is the heaviest character (Weight values found here)
2) The floatiness of the character – Some characters are
inheritly floatier, meaning they will fly up higher when hit then someone who is the
same weight but has a lower floatiness. In general all characters are floatier
in this game then they were in Melee. You also cannot fall as fast as when you're floaty.
These two have the same weight but despite that Samus falls much slower and is easier to knock farther vertically (Fall rank found here)
3) The amount of force in the attack – Some attacks will
send players flying farther compared to other attacks. Some attacks from items
like the “homerun bat” have enough force to usually knock an opponent off to
the side regardless of weight or their damage.
Smash attacks have some of the most force in a character's movelist usually
4) Damage Percentage – Determines how far a character will
fly from an attack. This is NOT a direct ratio of distance however. A character
at 100% damage will not fly 100 times farther than a character at 1% damage.
Nor is it true that You will fly twice as far at 200% damage compared to 100%. Rather
than linear ratio of distance, the game uses an exponential formula to
calculate how far an opponent will fly. 100% compared to 50% sends an opponent
flying much farther away and that distance also depends on the force exerted. The exact formula for this is not known (By me).
Link flies farther when hit since his damage is higher
5) Stale Moves – This is a more minor addition to how the
game handles force of attacks. Basically the game keeps a counter of how many
times you have used a particular move. For example, Mario’s forward Smash
attack, which is very good for KO’ing. If you have only used that move, it
would check the counter based on how times you used that move in a row and hit
with it, compared to other moves you have used to it with recently. The amount
of damage and force that the move would apply would be reduced based on this
counter. Therefore the game endorses using a variety of moves rather than just
spamming one single move. Basically if one person uses the same move too much,
the force they can apply to knock an opponent away is reduced.
6) Directional Influence – Not known to many but this is a
way to influence the direction you’re flying when hit. By mashing the control
stick in the direction you want when hit, you can reduce or increase flight
distance.
Havok Additions
Besides these basics, Havok applies some additions to the
series as well, these are…
A. Collision of characters – When an opponent is knocked
away, if they pass through another character on screen, they will collide into
them. The person who was flying will have their flight distance reduced based
on weight of the character you collided with. Usually this results in a
significantly reduced flight distance upon hitting another person. For the
person that is hit, they will fly a distance based on weight and force the other
character is experiencing from flight. A set modifier seems to be added in
order to reduce the distance the person hit is, since in all cases this person
seems to only get knocked back a short distance. The only way you can be KO’d
like this is if you’re already near the edge of the stage.
B. Weight to items – Some items are put on wheels such as
crates. These items typically are given a large weight from the start and they
can begin to move if they are on an inclined surface. If they happen to hit
anyone on the way, the speed the crate is at will determine the force the
opponent is sent flying. For these items the weight seems to be rather significant
as it’s been shown to KO many characters or set them a large distance if at a
high percentage. Items can be influenced by the wind as well to send them into
characters as well.
Crates in Smash Bros now have weights
There are other additions that Havok or the base Smash Bros
system uses for other things involving gravity that aren’t easy to tell apart.
But they are in the game one way or another.
Animation &
Skeletons
The game uses a skeletal animation system, this can be
observed from watching Brawl moveset hacks. In these videos provide cool
insight into how the skeleton is assigned to the mesh of a character. The mesh is attached to the skeleton and assigned the correct weight values to coincidence with the joints of the skeleton. Each model for a character would
normally be assigned appropriate weights that fit with their particular skeleton.
Once you start assigning different movesets to different characters, its
basically trying to use a different set of animations which belong to the character who's moveset you're trying to mimic.
A video of Brawl Hackers switching movesets of characters Part 1
For example if we have Mario and we try to give him Luigi’s
moveset, they may look similar but Luigi’s skeleton is not the same, with
different proportions and with his mesh assigned to weigh correctly with the
skeleton. Mario will therefore appear distorted since now he is automatically
taking Luigi’s skeleton, but still using his own mesh. He appears to be
stretched and is also using Luigi’s animations now. Also, certain moves that
Mario does applies automatic particle effects which will still appear despite
having Luigi’s skeleton. This is because those particle are still assigned to
the character of Mario and since we are identifying him as still being Mario,
he will get to have those fire effects in his Smash Attacks.
Part 2 of the moveset swaps. Notice how no one's meshes are breaking. It appears they all have a similar skeleton structure.
There are issues with missing animations however. If Mario
was to use his down+B, which brings out his FLUDD water tank, Mario simply
spawns the tool on his back, there is no animation (0:50 of the video). Luigi’s moveset however
requires an animation to do the down+B attack (Luigi spins around). Since there
is no animation, Mario will simply go into a T-Pose since it’s trying to
reference an animation that does not exist in Mario’s data and will become unable to move due. If Mario had a
normal down+B move, he would be able to reference an animation since it would
likely fill that slot in Mario’s data. Sometimes the animation can break
anyways even if they do have an animation in that slot, so its hard to say for
certain why that is since moveset hacking is, finicky.
Final Part of moveset swaps
For the most part having a character and giving them someone
else’s skeleton seems to work. Since everyone seems to be able to use each other skeletons, we can come to the conclusion that their skeletons all in fact have the same hierarchy and number of nodes. The only difference is the position of those nodes which causes the weird distortions we see in characters (such as Mario's face being weird in the first video). The only problem is a few missing or broken
animations due to characters having different properties for their attacks which cause the T-Pose to activate. It's cool that they were able to make the right number of nodes that would fit all their variety of characters, from Bowser to a more humanoid character like Mario. It
becomes scary when one gives a little character like Pikachu, someone big like
Ganondorf’s moveset…
Pikachu becomes a creature of pure terror
Other systems
I won’t go too far into how the particle system works
because I don’t really have too much information on the rendering system of the
game. So I won’t spend time just purely speculating without any actual stuff to
go on. All you need to know is that the game looks very nice for a Wii game, character models and particle effects.
Conclusion
That pretty much raps up this post. Thanks to moveset
swapping I was able to look in detail about how the animations in the game
worked as well as the meshes and skeletal animation system. Physics on the
other hand were found with just years of experience with the game as well testing
and observation. Thanks to Game Dev now I can see this game in a different
light!
No comments:
Post a Comment