Collision

From Arknights Terra Wiki
Jump to navigation Jump to search

This article explains the mechanics of unit collision and hitboxes in Arknights.

Basic

Operators have a collision radius of 0.25 tiles centered on where they are deployed. This is, and can be used interchangeably with the term "hitbox" which is a common term of video game technical lingo which determines the exact location when a hit connects to a character. When collision is relevant, i.e. when characters collide with one another or with world geometry, the term collision will be used. Otherwise, hitbox will be used. Despite this, the notion is almost always functionally identical in the game.

Every map comes with a basic geometry code which declares which areas of the floor are available for enemies to stand on, separate from the map's 3D mesh, which determines its visual appearance to the player. A lot of the collision code, however, is compiled from that 3D mesh. This is done to prevent enemies from being shifted through walls. Collision and shifting mechanics utilize the developers' implementation of the Unity Engine's boilerplate physics system.

Certain conditions in the game, such as the "Moonwalk" bug involving Jesselton Williams ignore terrain collision. This is because a stagger condition necessary to shifting has occurred at the same time as the enemy acquiring a stagger-immune status. Enforcing terrain collision should not be necessary as the enemy theoretically cannot be shifted and should be immobile during this phase, therefore the collision check is disabled entirely. This is presumably also why the push has no friction.

Blocking is separate from the actual collision system and just prevents enemies from moving forward when they reach an Operator's hitbox and the blocking conditions (i.e. the Operator has enough free block slots and the enemy is not unblockable) are met.

When multiple enemies are blocked by a single operator, their collision box will shift slightly vertically to their movement direction, except for the first enemy. This is presumably done to visually differentiate which enemy is the one being currently focused by that Operator. Furthermore, since Operators perform their targeting checks in order (above all; prioritize all blocked enemies), the distance to destination is the tie-breaker between several blocked enemies. This small offset presumably creates enough difference to maintain targeting consistent instead of Operators randomly switching targets because there is no tie-breaker.

Advanced

There are several advanced mechanics tied to collision.

Blockshifting

If an Operator is deployed right on top of an enemy/begins blocking them, the enemy will, regardless of weight, be shifted to the edge of the Operator's collision box, except if the enemy is right in the middle of the tile. Technically speaking, this actually occurs because of the blocking, and not the deployment. An operator that for any reason cannot block will shift the enemy to that position as soon as they can block that enemy and begin to do so. This will be termed "blockshifting" from here on out. This can be used to displace certain enemies that are normally hard or even impossible to be shifted, and is also critical to the "splitboxing" mechanic explained below.

Splitbox

Splitboxing is a semi-advanced tactic wherein blockshifting is used while an enemy is on a tile to block them between two tiles and split their collision/hit box between two tiles. This allows the enemy to be attacked by two Operators whose range contains either one tile. As mentioned above, it is also doable by beginning to block an enemy via block manipulation, but it is much more difficult to control the enemy's position in this case, so it is mostly done by blockshifting upon deployment.

Unit Detecting

Enemies' shadows' center is the enemy's detecting point. Enemies' ranged attack start from this point. If the distance between this point and the edge of the friendly unit's collision box (instead of the center of the tile), the friendly unit is considered in range. If the detecting point is in a friendly unit's attacking range, the enemy is considered in range, regardless of the graph.

Trivia

  • Prior to an update, there was an exception to the standard hitbox: Ifrit had a smaller hitbox radius of 0.1, which would prevent her from being attacked by Patriot in his Ruination Stance.