DEVLOG
Aither Null: Building a Dynamic Boss Attack System
How IK, animation-driven hit windows, and positional attack selection let a giant boss attack anywhere on the battlefield.
The Problem: A Boss That Had to Reach Everywhere
One of the challenges we ran into on one of Lynked: Banner of the Spark's final boss fights was a simple question: how do you make a giant boss feel physically imposing when the player can run almost anywhere on a large arena?
Aither Null is essentially controlling a massive mainframe with giant arms brought to life. The encounter takes place on a large playable platform, and we wanted the boss to feel like it physically occupied that space rather than simply attacking the player through a collection of abstract gameplay effects.
Projectile attacks gave us good coverage, and we also had a beam attack. But the attacks that really sold the fantasy were the physical ones: massive arms swiping across the arena and slamming into the ground.
The challenge was making those attacks work at any location on the platform while still looking like authored animation.

The Core Idea: Authored Animation + Dynamic IK
The solution was to combine a relatively small set of bespoke attack animations with an IK system that could dynamically place the boss's hands at the player's location.
The system was built in Unreal Engine 4. At its core was a straightforward IK setup for the arms, with one important addition: the arms were allowed to stretch.
That stretch gave us the reach we needed to cover the entire playable area. Instead of authoring an individual animation for every possible player position, we could author a strong attack motion and let the IK system adapt the final hand position.
Authoring the Attacks
We created bespoke animations for the different attack families: left-arm attacks, right-arm attacks, and attacks that used both hands.
The animations contained float tracks that gave the gameplay system control over the IK state. We had separate IK tracks for the left and right hands, allowing each arm to independently enable or disable IK at specific points in the animation.
We also tagged the active portions of each attack. Those tags defined when the attack's hitbox was active, keeping the gameplay timing tied directly to the authored animation.
Design principle: Keep the animation responsible for the motion and timing, while the dynamic system is responsible for adapting the animation to the player's position.
Making the Boss Track the Player
The next piece was a Look At constraint. This allowed the mainframe to track the player's movement with its head and upper body.
That may sound like a small detail, but it helped sell the idea that Aither Null was actually responding to the player rather than playing a predetermined animation sequence.
Choosing the Correct Attack
Once the boss could reach the player dynamically, we still had to decide which attack animation to play.
We used the player's position relative to the boss to select the appropriate attack. If the player was positioned to the left, we favored left-arm attacks. If they were on the right, we favored right-arm attacks.
This served two purposes. First, it made the attacks read more naturally. Second, it reduced the amount of stretching required by the IK system.
Rather than asking one arm to reach across the entire arena every time, we selected the attack that naturally brought the closest arm into the player's space.

Escalating to Two-Arm Attacks
As the fight progressed, we introduced attacks that used both arms. These created a much larger area of effect and increased the pressure on the player.
This introduced a more interesting technical problem. We couldn't simply place both hands at the player's exact location. That would cause the hands to overlap and wouldn't create a convincing attack.
Instead, we wanted the two hands to straddle the player's position, creating a large and readable area of effect.
Keeping the Hands on the Playable Platform
We built a system that calculated two hand targets around the player's position. The targets were spaced evenly relative to the player, then clamped so that both hands remained inside the playable hexagonal arena.
That last part was important. Without the clamp, a player near the edge of the arena could cause one of the hands to be positioned outside the playable space, which could produce awkward poses or undermine the physicality of the attack.
The result was a simple but effective rule: the attack could adapt to the player, but it still had to obey the physical boundaries of the encounter.

Preserving the Animation Quality
One of the biggest benefits of this approach was that we didn't have to sacrifice the quality of the original animations to get dynamic gameplay coverage.
The animation team could focus on creating strong, readable attacks with convincing weight and timing. The IK system then adapted those animations to the current gameplay situation.
By tuning the IK reach and stretch values, we could find a balance between flexibility and visual quality. Too little reach and the boss couldn't cover the arena. Too much and the arms began to look unnaturally elongated.
Reusing the System for Stun Reactions
The same IK setup also became useful for one of the boss's stun mechanics.
The player could use the grapple hook to disable one of Aither Null's arms. When that happened, we placed the IK target at the stunned hand and held that arm in place while allowing the other arm to continue attacking.
This created an interesting gameplay interaction. Disabling one arm didn't simply turn off the boss's attacks. Instead, it changed the shape of the encounter and left the remaining arm creating an area of effect that forced the player to keep moving.
The Result
With a relatively small set of bespoke animations, a simple IK setup, positional attack selection, and a few gameplay rules, we were able to create a boss that could dynamically attack almost anywhere on the map.
More importantly, the system preserved the quality and intent of the animation team's work. The boss still had authored motion, strong poses, readable timing, and a sense of weight, but the final position of the attack could adapt dynamically to what the player was doing.
For a character as large as Aither Null, that combination was critical. The boss needed to feel like a physical presence occupying the arena, not a collection of attacks that happened to spawn around the player.
The takeaway: Dynamic systems don't always have to replace authored animation. In this case, the best result came from using IK and gameplay logic to extend a small library of strong animations into a much larger, more reactive encounter.
Closing
That's a quick look at the dynamic attack system we built for Aither Null in Lynked: Banner of the Spark. It was a good example of how animation, technical animation, and gameplay systems can work together to solve a very practical design problem: how do you make a giant boss feel like it can physically reach the player anywhere in the arena?