AT&T NBA All-Star Playmaker Arcade
Scanned fans playing basketball against Paul George and Vince Carter - and the animation and retargeting systems that made very different bodies work.
AT&T brought the XR Avatar Scanner to NBA All-Star Weekend in Salt Lake City. Two games: Dunk Champion and Dribble Dash. Fans on site played as themselves against Paul George, Vince Carter, and a set of NBA mascots. People at home could play a web version.
The production also included athlete-specific AR dunk animation for Paul George and Vince Carter, plus personalized replay videos built from the scanned participant.
From the animation side, that created three related problems: gameplay actions had to combine cleanly at runtime, the same animation had to survive very different scanned bodies, and the Paul George and Vince Carter dunks had to look great as standalone AR performances.
What shipped
What I did
I had three connected responsibilities on this one: design the technical-animation system, direct the animation, and build the Blender-side avatar retargeting and personalized-content pipelines.
For Dunk Champion, the animation could not be treated as a collection of finished dunk clips. The run-up, takeoff, mid-air actions, flare moves, and final dunk had to connect at runtime and still read as one performance. I defined the animation-side rules that made those pieces reusable: shared transition requirements, predictable jump and hoop relationships, and a clear boundary between authored body mechanics and movement the game would control.
I worked directly with the gameplay team on that boundary. Development owned the Three.js runtime and game logic; my part was making sure the source animation and retargeted output gave the runtime predictable movement, timing, transitions, and landmarks to work with.
On animation, I led work across internal and external animators. I split assignments, established blocking-to-polish reviews, gathered basketball and athlete reference, and reviewed the work both as performance and as part of the larger system. A pose could look good by itself and still fail if the transition broke, the jump missed the hoop, or the ball and body stopped agreeing with each other.
When written notes were not enough, I recorded or edited reference to show the timing, trajectory, or body mechanics I was looking for. My reviews covered runs, crossovers, jumps, landings, silhouettes, weight, posing, ball handling, and how the action read against the camera.
I also worked hands-on. I retargeted blocking onto the production low-poly rigs and created two flare variations for the basic-dunk path.
The production also had dedicated Paul George and Vince Carter AR dunk animation. I directed and reviewed the keyframed performances, prepared reference, gave notes on timing, weight, posing, trajectory, hoop interaction, transitions, and endings, and supported the work through the production rigs and AR path.
On the systems side, I built the Dribble Dash and Dunk Champion retargeting paths for scanned users and the related player variants. I also built the single-player and multiplayer retarget, render, and movie-maker pipelines, plus an AR retarget path that handled the character, ball, hoop, delivery variants, and optional decimation.
Those tools had to support very different bodies and destinations: scanned adults and kids, NBA athletes, mascots, Superfan, game-ready GLBs, AR variants, and higher-resolution personalized replay. Grounding, scan correction, shadows, ball behavior, props, and body proportions could all fail differently depending on the character and output.
The result was a connected animation and retargeting system that could support gameplay, athlete AR, and personalized video across their different technical requirements.
Constraints that mattered
A modular dunk still had to feel like basketball. The game needed freedom to combine actions, but each piece had to arrive at the next one with enough consistency that the result did not feel like a stack of unrelated states.
Body proportions changed the problem immediately. An action that worked on an NBA player could break on a kid, a mascot, or a scanned participant if grounding, hoop position, and ball contacts were treated as fixed assumptions.
Gameplay, athlete AR, and personalized replay were different products. The game wanted compact assets and reusable animation. The AR work could focus more on the athlete-specific performance. The replay path could use higher-resolution characters, VFX, camera treatment, and final movie assembly.
Props were part of the animation problem. Basketballs, hoops, trails, and camera treatment had to survive the same production path as the character or the final result fell apart.
The action set also changed while scans were already moving through production, so updates had to stay compatible with previously processed avatars instead of creating a new manual exception every time something changed.
How we split it
Our internal animation team and a vendor team from Twisted Mountain authored assigned dunks, runs, and athlete animation under review. I designed the technical-animation rules, directed and reviewed the animation, created two flare alternatives, and owned the Blender-side avatar retargeting and personalized-content systems.
For the Paul George and Vince Carter AR dunks, other animators handled the documented keyframing and polish while I directed and reviewed the work and supported it through the production animation and retargeting path.
Gameplay development owned the Three.js/runtime implementation. Rig and weight changes were handled with the character team. The VFXs were authored by another artist under my direction, and lighting/rendering were team work.