Washington Commanders Stats
- nathansheppar8
- Jan 9, 2025
- 2 min read
In August 2022, I worked on an exciting project for NBC Sports Washington’s social media team. The goal was to create a template for all of their social channels to rapidly produce stats-based videos. This required designing templates in three aspect ratios: 16x9, 9x16, and 1x1. Unfortunately, due to the sale of NBC Sports Washington to Monumental Sports & Entertainment, the project was shelved in its final draft stages.
Here’s a preview with sample stats:
To ensure the template was easy to use and allowed for rapid editing, I decided to create a MoGrt (Motion Graphics Template) in After Effects, heavily leveraging expressions to automate text and number inputs.
Since the MoGrt needed to be efficient for editors and manageable in terms of file size, I tackled the challenge of alpha channel-heavy footage. Alpha channels typically create massive file sizes, so I pre-keyed the green screen footage and exported two separate HEVC files per player: one with the key and another with the solid. I then composited these layers in After Effects using Luma Matte, reducing each player’s file size by approximately 92%. This approach greatly improved the project’s distribution and in-editor performance.
Here’s a walkthrough video showcasing the MoGrt’s features:
Technical Breakdown
This project involved hundreds of expressions, most of which were iterative, given the requirements. One of my favorite features was the dynamic text parade seen at the bottom of the intro video. The text changes dynamically based on inputs in the main portion.
To achieve this, I referenced the source text of the main elements, such as “TOUCHDOWNS” or the players name with simple expressions like: thisComp.layer("Touchdowns").text.sourceText;
and
thisComp.layer("Player Name").text.sourceText;
For dynamically positioning the text, I used the following expression to parent the text layer’s position to the one above it: var above = thisComp.layer(index-1);
var x = above.transform.position[0];
var y = above.transform.position[1];
var s = above.sourceRectAtTime();
var w = s.width *1.4;
var h = s.height;
var t = s.top;
var l = s.left;
var z = transform.position[1];
[x+l+w, z];
This ensured the spacing and alignment of the text were automated, saving time and reducing manual adjustments.

Comments