Hitboxes: Difference between revisions

From Dustloop Wiki
 
(65 intermediate revisions by 5 users not shown)
Line 17: Line 17:


;Collisionbox
;Collisionbox
:Where the character currently takes up space. Unlike attackboxes and hurtboxes, collisionboxes can not overlap, and will instead push each other from side to side, such as when characters walk into each other. These do not have a color commonly used.
:Where the character currently takes up space. Unlike attackboxes and hurtboxes, collisionboxes can not overlap, and will instead push each other from side to side, such as when characters walk into each other. These are often used in games to check distances for throws and similar moves. These do not have a color commonly used.


These are just some of the common types of hiboxes. Depending on the game there may be specific boxes for throws, projectiles, assists, etc.
These are just some of the common types of hiboxes. Depending on the game there may be specific boxes for throws, projectiles, assists, etc.
Line 41: Line 41:
ReducedHurtbox2.png|
ReducedHurtbox2.png|
ReducedHurtbox3.png|
ReducedHurtbox3.png|
ReducedHurtbox4.png|
</gallery>
</gallery>
Some moves shrink your hurtbox significantly. This is especially prevalent in Guilty Gear's 6P anti air attacks.
Some moves shrink your hurtbox significantly. This is especially prevalent in Guilty Gear's 6P anti air attacks.
 
Some attacks only have shrunk hurtboxes before the active frames of the attack. One example of this is I-No's Stroke the Big Tree (4th image). She can go under attacks before her attack becomes active, but that same attack with proper timing can trade with her.


<br clear=all/>
<br clear=all/>
Line 49: Line 52:
<gallery heights=300px widths=300px caption="">
<gallery heights=300px widths=300px caption="">
DisjointedHitbox1.png|
DisjointedHitbox1.png|
DisjointedHitbox2.png|
ReducedHurtbox2.png|
ReducedHurtbox2.png|
DisjointedHitbox2.png|
ReducedHurtbox3.png|
</gallery>
</gallery>
While most moves have attackboxes and hurtboxes fairly close to each other, some don't; these moves are typically strong for beating out other moves in that direction. For example, Ky's 6P is strong against air attacks since he's not hittable above his knees, and Slayer's 2H can't be hit below his knees, making it useful for beating opponents using low attacks.
While most moves have attackboxes and hurtboxes fairly close to each other, some don't; these moves are typically strong for beating out other moves in that direction. For example, Ky's 6P (3rd image) is strong against air attacks since he's not hittable above his knees, and Slayer's 2H (4th image) can't be hit below his knees, making it useful for beating opponents using low attacks.


Attacks with shrunk hurtboxes usually have disjointed hitboxes.
Attacks with shrunk hurtboxes usually have disjointed hitboxes.
Line 62: Line 66:
MisleadingHitbox3.png|
MisleadingHitbox3.png|
</gallery>
</gallery>
Hitboxes don't have to make real-world sense. Hurtboxes can even extend to things that don't normally make sense like weapons, capes, or even the empty space around them. Sometimes attackboxes strike more (or less) area than they visually appear.
Hitboxes don't have to make real-world sense. Hurtboxes can even extend to things that don't normally make sense like weapons, capes, or even the empty space around them. This is also true for attackboxes - they can strike more (or less) area than they visually appear.
<br clear=all/>
<br clear=all/>
===Attacks that Hit Behind You===
<gallery heights=300px widths=300px caption="">
HitboxHitBehind1.png|
HitboxHitBehind2.png|
HitboxHitBehind3.png|
</gallery>
Some attacks hit both in front of and behind the character. Others just hit behind the character. This is primarily how [[Crossup]] attacks work.


===Attribute Invincibility===
===Attribute Invincibility===
[[File:BBAttributeInvincible.png|thumb|There's usually a distinct visual effect when you are attribute invincible to an attack ]]
[[File:BBCF_AttributeInvincible.png|thumb|There's usually a distinct visual effect when you are attribute invincible to an attack ]]
While not directly hitbox related, Attribute Invincibility is worth mentioning here since a lot of ASW games use it. In BlazBlue and Dragon Ball FigherZ each attack is tagged with an attribute, such as Head, Body, Foot, or Projectile. Certain attacks have invincibility to certain attributes for a set amount of time.
While only tangentially related, Attribute Invincibility is worth mentioning here since a lot of ASW games use it (such as BlazBlue and Dragon Ball FighterZ). Each attack is tagged with an attribute, such as Head, Body, Foot, or Projectile. Certain attacks have invincibility to certain attributes for a set amount of time.


A common example of this is 2H attacks in Dragon Ball - they have invincibility to Head attribute attacks and almost all airborne attacks are Head attribute. Thus you could say that you effectively have no hurtbox versus airborne attacks.
A common example of this is 2H attacks in Dragon Ball - they have invincibility to Head attribute attacks and almost all non-projectile airborne attacks are Head attribute. Thus you could say that you effectively have no hurtbox versus airborne attacks.


Games that use Attribute Invincibility typically only have a few moves that shrink hurtboxes significantly since they use the Attributes for the same purpose most of the time.
Games that use Attribute Invincibility typically only have a few moves that shrink hurtboxes significantly since they use the Attributes for the same purpose most of the time.
Line 81: Line 93:
HitboxHitOpponent.png|A common scenario
HitboxHitOpponent.png|A common scenario
HitboxHitBarely.png|Barely hitting Hazama's foot
HitboxHitBarely.png|Barely hitting Hazama's foot
HitboxTrade.png|Two attacks trading
</gallery>
</gallery>
An opponent gets hit when your attackbox intersects with the opponent's hurtbox, as shown in the first example. While this sounds easy, certain interactions will appear "strange" without slowing things down or applying the concept of extended/reduced hurtboxes.
An opponent gets hit when your attackbox intersects with the opponent's hurtbox, as shown in the first example. While this sounds easy, certain interactions will appear "strange" without slowing things down or applying the concept of extended/reduced hurtboxes.


In the second example, Hazama's foot barely gets hit by Hakumen's sword as he tried to air dash over him. Players may get surprised when this happens, but this can all be explained if we slowed down the game and inspect it a bit closer.
In the second example, Hazama's foot barely gets hit by Hakumen's sword as he tried to air dash over him. Players may get surprised when this happens, but this can all be explained if we slowed down the game and inspect it a bit closer.
In the third example, Akihiko and Yu hit each other at the same time, and both characters get hit. This is commonly known as "trading hits" or a "trade" for short.
<br clear=all/>
<br clear=all/>


===Hitting an Extended Hurtbox===
===Hitting an Extended Hurtbox===
<gallery heights=300px widths=300px caption="">
<gallery heights=300px widths=300px caption="">
HitboxHitExtendedHitbox2.png|Tager chopping Izayoi's sword
HitboxHitExtendedHitbox2.png|Tager hits Izayoi by chopping her sword
HitboxHitExtendedHitbox1.png|Ragna punching Jin's sleeves
HitboxHitExtendedHitbox1.png|Ragna hits Jin by punching his sleeves
HitboxHitExtendedHitbox3.png|Waiting and punishing the recovery of an attack
HitboxHitExtendedHitbox3.png|Waiting and punishing the recovery of an attack
</gallery>
</gallery>
In the first example, Tager's fists are able to hit Izayoi's sword, which has a hurtbox. Remember, Once again, positioning is important, too close and the two attacks would trade, too far and they'd both miss.
In the first example, Tager's fists are able to hit Izayoi's sword, which has a hurtbox. Remember, positioning is important! Too close and the two attacks would trade, too far and they'd both miss.


In the second example, we see Jin do an attack with an extended hurtbox, and Ragna positioned to hit him. Once again, positioning is important - if Jin were horizontally closer then his sleeves would hit Ragna's head, too far and Ragna'a fist would miss.
In the second example, we see Jin do an attack with an extended hurtbox, and Ragna positioned to hit him. Once again, positioning is important - if Jin were horizontally closer then his sleeves would hit Ragna's head, too far and Ragna's fist would miss.


In the third example, Noel waits for Hazama's kick to finish, then attacks the extended hurtbox during his recovery.
In the third example, Noel positions herself outside the range of Hazama's knee, then attacks the extended hurtbox during his recovery.


===Attacks that Hit Behind You===
===Extended Hurtbox Part 2===
<gallery heights=300px widths=300px caption="">
<gallery heights=300px widths=300px caption="">
HitboxHitBehind1.png|
HitboxHitBehindExtendedHurtbox1.png|Relius' swiss army knife and Mai's multi-stab
HitboxHitBehind2.png|
HitboxHitBehindExtendedHurtbox2.png|Both Mai and Relius will get hit in this situation
HitboxHitBehindExtendedHurtbox3.png|Only Mai will get hit if Relius takes a step back before attacking
</gallery>
</gallery>
Some attacks hit both in front of and behind the character. This is primarily how [[Crossup]] attacks work.
A more curious case is when an attack "hits behind" them due to the opponent doing a move with an extended hurtbox. This merits a bit more explanation: Relius' attack extends his hurtbox far forward into Mai's attack, even though he's behind her. Relius is basically sticking his hand into a blender, if he stepped back or used a move that did not extend his hurtbox so far forward, then he could hit Mai without problem.


<gallery heights=300px widths=300px caption="">
HitboxHitBehindExtendedHurtbox1.png|
HitboxHitBehindExtendedHurtbox2.png|
</gallery>
A more curious case is when an attack "hits behind" them due to the opponent doing a move with an extended hurtbox. This requires a bit more to visually explain.
<br clear=all/>
<br clear=all/>


===Using Disjointed Hurtboxes===
===Using Disjointed Hurtboxes===
<gallery heights=300px widths=300px caption="">
<gallery heights=300px widths=300px caption="">
HitboxHitReducedHurtbox.png|Ky anti-airing with is elbow
HitboxHitReducedHurtbox.png|Ky 6P anti-airing Eddie's j.K
HitboxHitReducedHurtbox2.png|Slayer beating Ky's f.S with 6P
HitboxHitReducedHurtbox2.png|Slayer 6P beating Ky's f.S
GGXRD_lowProfile1.png|Sol 2D can low profile under Ky's 2P
</gallery>
</gallery>
Disjointed hitboxes are a great way to avoid the enemy's attacks since the opponent needs to be closer than normal to hit you.


===Clash===
===Clash===
<gallery heights=300px widths=300px>
<gallery heights=300px widths=300px>
HitboxClash.png|When only red squares touch each other
HitboxClash.png|When only red squares touch each other
HitboxClash2.png|
HitboxClash2.png|Top: Clash. Bottom: Trade. Adachi moved forward a few pixels.
</gallery>
</gallery>
Clashes in most ASW games occur when an attackbox intersects with the opponent's attackbox. During a clash, both players can cancel into most other actions, but this varies by game. There is usually a distinct visual and audio effect for clashes.
Clashes in most ASW games occur when an attackbox intersects with the opponent's attackbox. During a clash, both players can cancel into most other actions, but this varies by game. There is usually a distinct visual and audio effect for clashes. Clashes only occur when two strikes intersect, but there are a few exceptions, for example, strikes like Tager's Atomic Collider or Potemkin's Heat Knuckle can not clash, even though they technically are strikes.


In game with attribute systems, clashes can happen when you are invincible to their attack, effectively giving you no hurtbox. For example, it is easier for an anti air attack to clash with air attacks than ground attacks.


====Other Clash Systems====
Dragon Ball FighterZ and Granblue Fantasy Versus uses a slightly different system for clashing. Each attack is given a clash level and only clash with other attacks of the same level. Clashes occur even when they would trade in other games as long as they are the same level. Attacks with higher priority levels will win against lower level attacks.


Guilty Gear Strive uses a combination of both hitboxes and clash levels, where clash levels only come into play for specific attacks (primarily 5P, 2P, j.P).
<br clear=all/>
<br clear=all/>
==Priority is a Function of Timing and Spacing==
Whether an attack beats another often depends on timing and position - change either of those and you get a different outcome.
Players often experiment in training mode to find the right timings/spacings to beat other moves in a given situation. They now know that once unbeatable attack actually loses if they wait and punish the recovery or get an attackbox out early enough or position themselves a certain way.
==Other Checks==
Hitboxes are not the whole story. Many moves, particularly throws (but not exclusively), also layer in up to three further checks:
=== State Check ===
Moves can be designed to hit opponents or not based on whether they're standing, crouching, airborne, downed, in hitstun etc... These tend to be found on moves that are unblockable in some way to allow the opponent to defend against them. Most common by far is that grounded throw moves cannot hit someone airborne (or even while starting to jump) and likewise airthrows can only hit players in the air:
<gallery heights=300px widths=600px caption="">
HitboxFailstoHitCrouching.png|Hitboxes clearly overlap, but this attack isn't allowed to hit crouching targets!
</gallery>
=== Range check ===
When it comes to moves that also check distance, ArcSys games use the collision boxes to check the distance between players when doing throws and similar moves, to avoid strange looking situations where a player gets thrown from half a screen away. So even if the hitbox for a throw looks enormous in some cases, they're often much more limited by this range check:
<gallery heights=300px widths=400px caption="">
ThrowRange1.png|Hitboxes clearly overlap...
ThrowRange2.png|But their collision boxes are no-where near, so the throw misses
</gallery>
This doesn't mean that hitboxes don't matter, they are still checked, usually they're large enough to be ignored in a lot of cases however. Be aware that while some moves might allow you to pass through the opponent by disabling collision, the collision box still exists, you still might be able to get thrown!
=== Vector Check ===
A final check added to some moves is a check on the actual direction and vector between both player's origin points, which checks if the target is in front or behind and above or below the attacker, and by how much. Most of the time this check will not be noticed by a player; It is mostly used to make sure moves like throws don't sometimes hit an opponent ''behind'' the attacker:
<gallery heights=300px widths=600px caption="">
WrongSideHitDetection.png|They're close enough and the hitboxes overlap, but Tager's facing the wrong way! The throw misses and Tager just gets hit
</gallery>


==Estimating Hitboxes Without Datamining==
==Estimating Hitboxes Without Datamining==
Not all games will have hitboxes available - this is especially true with new games on new engines. But that doesn't mean you don't have any hitbox information at all, you can test things yourself and make estimates on the location of hitboxes/hurtboxes.
Not all games will have hitboxes available - this is especially true with new games on new engines. But that doesn't mean you don't have any hitbox information at all, you can test things yourself and make estimates on the location of hitboxes/hurtboxes.


===Observe In-Game===
# First assume that the hitboxes are exactly where the animation shows it to attack, and the hurtboxes are located in the same space the character occupies.
# First assume that the hitboxes are exactly where the animation shows it to attack. And the hurtboxes are located in the same space the character occupies.
# Notice when unexpected hits/misses happen
# Notice when unexpected hits/misses happen
## Did your move have more/less range than you thought?
## Did your move have more/less range than you thought?
## How easy/difficult is it for the opponent to hit you out of a specific move?
## How easy/difficult is it for the opponent to hit you out of a specific move?
## Did you dodge an attack unexpectedly?
## Did you dodge an attack unexpectedly?
# Make a note of it in your mind and experiment in training mode.
# Make a note of it in your mind and experiment in training mode to further test the size of attackboxes and hurtboxes.


===Experiment in Training Mode===
==Combining with Frame Data==
# In training mode, try to hit the opponent from different angles that you don't usually use to get an idea how big the hitbox/hurtbox for any attack are in a specific direction.
Judging moves based solely on its hitboxes is not enough, speed is an equally important factor, and many of the situations described above can only happen with specific timing and positioning. This all needs to be taken into account when evaluating attacks.
## For example,


==Combining with Frame Data==
When people show a hitbox and say that move is too weak or too strong, they may not be telling the whole story - what good is a strong disjointed hitbox if is easily reacted to and punishable? A fast move that hits far can still be strong even if the hurtbox extends along with it since the opponent can not easily react to it.
Judging moves based solely on its hitboxes is not enough, speed is an equally important factor, and many of the situations described above can only happen with specific timing and positioning. When people show a hitbox and say that move is too weak or too strong, they may not be telling the whole story - what good is a strong disjointed hitbox if is easily reacted to and punished? A fast move that hits far can still be strong even if the hurtbox extends along with it since the opponent can not react to it and will be forced to anticipate it if they want to counter it.


==See Also==
==See Also==
*[[Using Frame Data]]
*[[Using Frame Data]]
*[http://boxdox-bb.dantarion.com/#/ http://boxdox-bb.dantarion.com]
*[http://boxdox-bb.dantarion.com/#/ http://boxdox-bb.dantarion.com]
==Navigation==
{{Navbar-GeneralStrategy}}
{{Navbar-GeneralStrategy}}

Latest revision as of 06:42, 5 November 2023

Behind the scenes of a fighting game, the properties of attacks and characters are defined by hitboxes. These show where exactly an attack can hit and where a character can be hit.

Definitions

Hitbox
Refers to all types of boxes discussed in this section such as attackboxes and hurtboxes
Attackbox
Where the attack can hit the opponent. These are typically colored red.
Hurtbox
Where the character can be hurt if struck. These are typically colored blue or green.
Collisionbox
Where the character currently takes up space. Unlike attackboxes and hurtboxes, collisionboxes can not overlap, and will instead push each other from side to side, such as when characters walk into each other. These are often used in games to check distances for throws and similar moves. These do not have a color commonly used.

These are just some of the common types of hiboxes. Depending on the game there may be specific boxes for throws, projectiles, assists, etc.


Hitboxes shown are approximations and are not meant to be exact in-game hitboxes

Common Hitbox Trends

Let's look how some common moves behave and see what we can learn.

Extended Hurtboxes

A typical attack extends the character's hurtbox. This means that blindly doing attacks from neutral has some risk as you are briefly making yourself a bigger target. You can be hit out of the startup of your attack or be punished for whiffing. Not all attacks have extended hurboxes during attacks, but it is true more often than not.


Shrunk Hurtboxes

Some moves shrink your hurtbox significantly. This is especially prevalent in Guilty Gear's 6P anti air attacks.

Some attacks only have shrunk hurtboxes before the active frames of the attack. One example of this is I-No's Stroke the Big Tree (4th image). She can go under attacks before her attack becomes active, but that same attack with proper timing can trade with her.


Disjointed Hitbox

While most moves have attackboxes and hurtboxes fairly close to each other, some don't; these moves are typically strong for beating out other moves in that direction. For example, Ky's 6P (3rd image) is strong against air attacks since he's not hittable above his knees, and Slayer's 2H (4th image) can't be hit below his knees, making it useful for beating opponents using low attacks.

Attacks with shrunk hurtboxes usually have disjointed hitboxes.

Misleading Hitboxes

Hitboxes don't have to make real-world sense. Hurtboxes can even extend to things that don't normally make sense like weapons, capes, or even the empty space around them. This is also true for attackboxes - they can strike more (or less) area than they visually appear.

Attacks that Hit Behind You

Some attacks hit both in front of and behind the character. Others just hit behind the character. This is primarily how Crossup attacks work.

Attribute Invincibility

There's usually a distinct visual effect when you are attribute invincible to an attack

While only tangentially related, Attribute Invincibility is worth mentioning here since a lot of ASW games use it (such as BlazBlue and Dragon Ball FighterZ). Each attack is tagged with an attribute, such as Head, Body, Foot, or Projectile. Certain attacks have invincibility to certain attributes for a set amount of time.

A common example of this is 2H attacks in Dragon Ball - they have invincibility to Head attribute attacks and almost all non-projectile airborne attacks are Head attribute. Thus you could say that you effectively have no hurtbox versus airborne attacks.

Games that use Attribute Invincibility typically only have a few moves that shrink hurtboxes significantly since they use the Attributes for the same purpose most of the time.


Common Situations

Some hitbox interactions are easy to explain, while others are more confusing at first glance. Let's review some to gain a better understanding of them.

Hitting an Opponent

An opponent gets hit when your attackbox intersects with the opponent's hurtbox, as shown in the first example. While this sounds easy, certain interactions will appear "strange" without slowing things down or applying the concept of extended/reduced hurtboxes.

In the second example, Hazama's foot barely gets hit by Hakumen's sword as he tried to air dash over him. Players may get surprised when this happens, but this can all be explained if we slowed down the game and inspect it a bit closer.

In the third example, Akihiko and Yu hit each other at the same time, and both characters get hit. This is commonly known as "trading hits" or a "trade" for short.

Hitting an Extended Hurtbox

In the first example, Tager's fists are able to hit Izayoi's sword, which has a hurtbox. Remember, positioning is important! Too close and the two attacks would trade, too far and they'd both miss.

In the second example, we see Jin do an attack with an extended hurtbox, and Ragna positioned to hit him. Once again, positioning is important - if Jin were horizontally closer then his sleeves would hit Ragna's head, too far and Ragna's fist would miss.

In the third example, Noel positions herself outside the range of Hazama's knee, then attacks the extended hurtbox during his recovery.

Extended Hurtbox Part 2

A more curious case is when an attack "hits behind" them due to the opponent doing a move with an extended hurtbox. This merits a bit more explanation: Relius' attack extends his hurtbox far forward into Mai's attack, even though he's behind her. Relius is basically sticking his hand into a blender, if he stepped back or used a move that did not extend his hurtbox so far forward, then he could hit Mai without problem.


Using Disjointed Hurtboxes

Disjointed hitboxes are a great way to avoid the enemy's attacks since the opponent needs to be closer than normal to hit you.

Clash

Clashes in most ASW games occur when an attackbox intersects with the opponent's attackbox. During a clash, both players can cancel into most other actions, but this varies by game. There is usually a distinct visual and audio effect for clashes. Clashes only occur when two strikes intersect, but there are a few exceptions, for example, strikes like Tager's Atomic Collider or Potemkin's Heat Knuckle can not clash, even though they technically are strikes.

In game with attribute systems, clashes can happen when you are invincible to their attack, effectively giving you no hurtbox. For example, it is easier for an anti air attack to clash with air attacks than ground attacks.

Other Clash Systems

Dragon Ball FighterZ and Granblue Fantasy Versus uses a slightly different system for clashing. Each attack is given a clash level and only clash with other attacks of the same level. Clashes occur even when they would trade in other games as long as they are the same level. Attacks with higher priority levels will win against lower level attacks.

Guilty Gear Strive uses a combination of both hitboxes and clash levels, where clash levels only come into play for specific attacks (primarily 5P, 2P, j.P).

Priority is a Function of Timing and Spacing

Whether an attack beats another often depends on timing and position - change either of those and you get a different outcome.

Players often experiment in training mode to find the right timings/spacings to beat other moves in a given situation. They now know that once unbeatable attack actually loses if they wait and punish the recovery or get an attackbox out early enough or position themselves a certain way.

Other Checks

Hitboxes are not the whole story. Many moves, particularly throws (but not exclusively), also layer in up to three further checks:

State Check

Moves can be designed to hit opponents or not based on whether they're standing, crouching, airborne, downed, in hitstun etc... These tend to be found on moves that are unblockable in some way to allow the opponent to defend against them. Most common by far is that grounded throw moves cannot hit someone airborne (or even while starting to jump) and likewise airthrows can only hit players in the air:

Range check

When it comes to moves that also check distance, ArcSys games use the collision boxes to check the distance between players when doing throws and similar moves, to avoid strange looking situations where a player gets thrown from half a screen away. So even if the hitbox for a throw looks enormous in some cases, they're often much more limited by this range check:

This doesn't mean that hitboxes don't matter, they are still checked, usually they're large enough to be ignored in a lot of cases however. Be aware that while some moves might allow you to pass through the opponent by disabling collision, the collision box still exists, you still might be able to get thrown!

Vector Check

A final check added to some moves is a check on the actual direction and vector between both player's origin points, which checks if the target is in front or behind and above or below the attacker, and by how much. Most of the time this check will not be noticed by a player; It is mostly used to make sure moves like throws don't sometimes hit an opponent behind the attacker:

Estimating Hitboxes Without Datamining

Not all games will have hitboxes available - this is especially true with new games on new engines. But that doesn't mean you don't have any hitbox information at all, you can test things yourself and make estimates on the location of hitboxes/hurtboxes.

  1. First assume that the hitboxes are exactly where the animation shows it to attack, and the hurtboxes are located in the same space the character occupies.
  2. Notice when unexpected hits/misses happen
    1. Did your move have more/less range than you thought?
    2. How easy/difficult is it for the opponent to hit you out of a specific move?
    3. Did you dodge an attack unexpectedly?
  3. Make a note of it in your mind and experiment in training mode to further test the size of attackboxes and hurtboxes.

Combining with Frame Data

Judging moves based solely on its hitboxes is not enough, speed is an equally important factor, and many of the situations described above can only happen with specific timing and positioning. This all needs to be taken into account when evaluating attacks.

When people show a hitbox and say that move is too weak or too strong, they may not be telling the whole story - what good is a strong disjointed hitbox if is easily reacted to and punishable? A fast move that hits far can still be strong even if the hurtbox extends along with it since the opponent can not easily react to it.

See Also

Navigation