Ask a question about League or Riot, and we’ll try to answer it. Answers go live every other Thursday at 1:30 pm (PT)
Hi guys! We’re technical artists Moonyoung “ANDMoonY” Oh and Jeremy “JesterCapp” Putnam. As tech artists at Riot, our main job is preparing character models for animation. To better explain this process, we’re here to share how we helped create the most diabolical creature to ever prowl the Rift: Little Devil Teemo.
Early in a champion’s development, his or her (or its) character model is like a doll, still and lifeless. Tech artists turn that doll into a puppet with bones, joints, and controls that animators can then use to create movement. This process is called rigging.
Rigs are made of components, which themselves are blueprints containing code for the joints and controls of common character features. Components are basically body parts; there are components for arms, legs, spines, swords, capes, and so on. Tech artists use these existing components to build new rigs for champions and skins. Basically, we tell the program to put two arms there, a head here, a spine there… and then the program uses the scripts attached to each component to create a unique rig. When necessary, we can also create new components, such as Little Devil Teemo’s tail.
Because many rigs are built from the same components, they share the same base code. This means that if we make a change to the blueprint for the “bendy arm component,” then EVERY character with a “bendy arm component” will also change. We can still alter individual champion’s rigs, but the major benefit of this blueprint system is that it takes minimal manual effort to change a bunch of rigs at once—we alter the code in one place, and then the change occurs wherever that component is used. If we obtain or create new technology, such as a “bendy tail,” we can easily update all of the champion’s rigs that would benefit from that tech (such as Nidalee or Rek’sai).
Recently-created rigs are built differently than ones made in League’s earlier years, because our knowledge, processes, and standards have evolved. For example, we changed the way we name components, and this is sometimes problematic when using animation tools. If a tool designed to move a champion’s arms is coded to find the elbow joint named “L_Elbow,” but that elbow joint is actually named “L_Arm,” it won’t work.
Furthermore, some outdated rigs just aren’t compatible with new technology, such as a recently-added feature that allows animators to open and close champs’ fists by moving a slider. Some really old rigs have poorly designed elements, like multiple controls sharing one name. And, once in awhile, old rigs break when adding new animation.
For these reasons, one of the first questions we ask when preparing to rig a new skin is, “Is the old rig functional, or should we make a new one from scratch?” If we decide to rework the rig, it’s as much work as rigging a brand-new champion. But if the base rig stands the test of time, we can modify existing elements or add new components.
Teemo’s existing rig was armed and ready, but Little Devil Teemo had some fiendish new features that required new components.
Tale of the Tail
Creating a tail for this tiny fiend was no small task. The component for a tail this length (similar to Gnar, Wukong, or jungle wolves) has six bones and joints. In order for the tail’s movement to look natural, each of these joints would need to be individually animated so they match every move Teemo makes. Creating an animation set of this size takes a lot of animator time—too much time for what would be a relatively minor element of a skin.
Instead, we utilized a specialized control system called a jiggle rig. This system establishes a parent/child relationship between each joint, or control, along Teemo’s tail, which then causes the controls to adjust their movement based on the point above’s motion. So if Teemo’s model jumps, then the top tailbone jumps shortly afterwards, and then so does the second one, and then the third…
It’s basically follow the leader.
Animators can also control exactly how each joint reacts to the movement above it. They adjust the delay between joints and can “dampen” some movements so they only react to drastic motion. Using these levers, animators fine-tuned how stiff (and bendy) Teemo’s tail should look. The resulting tail moved naturally and automatically with Teemo’s body, saving animators a ton of time.
Animating Teemo’s Tail: WIP and Final
Facing the Devil
With the tail sorted, we were still short one final feature, an element to fuel nightmares everywhere: Little Devil Teemo’s other face. Like most champ’s, Teemo’s “regular” face is pretty static—League’s camera is too far away to noticeably depict subtle animations like facial expressions. The exception to this rule is if a champion has a particularly large head (i.e., most Yordles) or if there’s a reason to show extra expression; Teemo fit both of those bills.
To transform Teemo’s friendly face into one of malevolent lunacy, we created a second face for the Little Devil, complete with a complex facial rig. This rig allowed animators to freely contort the Yordle’s face, specifically during his recall and death animations.
Little Devil Teemo’s Facial Rig
We now had two faces for only one body, and we needed a way to tell the model when to show the amicable face and when to turn up the terror. To do this, we used a system of submeshes and submesh events.
Submeshes are parts of a character model that can be hidden or displayed as needed. They’re often props in champions’ emotes and recall animations, such as Bewitching Morgana’s cauldron or Santa Braum’s sleigh. Submesh events tell these items when to appear and disappear. For example, an animator sets a submesh event at the start of Bewitching Morgana’s recall that tells the cauldron submesh to appear for seven seconds. After those seconds pass, the cauldron once again vanishes.
Little Devil Teemo’s Death Animation
Teemo’s devilish face, and its animations, were coded as a submesh, so it’s hidden for most of the game. Animators then designated Teemo’s recall and death animations as submesh events, which tells the model to put that friendly face away and bring out the maniacal one. Once Teemo’s recall/death animations concludes, the submesh disappears, and Teemo’s deceivingly adorable expression returns.
Being a technical artist on League often means looking for small improvements—we’ve made a lot of skins over the years, and we’re still learning how to make them better. When the team is passionate about an idea, it inspires us to push the tech envelope. Designing smarter components and new tools is important to us because it helps us deliver cooler skins more frequently.
Plus, now we sleep easily at night knowing our work finally transformed Teemo’s outside to match his insides. No more tricking us with that lovable, fluffy demeanor, Teemo. We’re onto you.