[Music] hello everyone my name is david wang and i was a senior animator on anthem i was responsible for creating the traversal animations for the player character and my name is daniel nordlander and i was a senior gameplay designer on anthem i was responsible for the player character controls and camera so during this talk we're going to discuss how we created anthem's flight mechanic as that was a unique starting point of the game we'll explore how creating video game characters that look and feel great to play requires close collaboration between design and animation uh even though our day-to-day work might seem totally different with the sign determining things like physics values movement tuning cameras and controls we tend to provide the bigger picture that animation works within our work relies heavily on one another as we're both responsible for the look and the feel of the traversal mechanics so to fully explain how we created flight in anthem we need to give the whole picture rather than just an animation by itself it's important to take into account the design
side and how it relates to the flight system to really understand how to create our animations we hope to give you insight into our process inspire other character designers and animators to use these techniques in their own work to give you an idea of what the kind of game anthem is let's kick things off with a quick trailer [Music] you are the chosen few protectors of our world this is your time fire [Music] out there you will fight the unimaginable [Music] [Music] feel the power of your javelin it's precision
rely on each other unleash your power [Music] [Applause] you are freelancers so in anthem players will fly swim fight together in a dense open world so what does that mean for the player character well our key goals were to support a full 360 degree movement experience that allows for seamless transitions between movement on the ground through the sky and underwater using four distinct super heroic characters these characters are embodied through armored exo suits called javelins which make you bigger and stronger and
give you superhuman abilities each one you get into makes you a different class of superhero the colossus is a super strong tank the ranger is a versatile warrior the interceptor is a fast and agile ninja and the storm is a magic user with special powers the key power that they all share is the ability to fly so to give you some background to how and why the flight system works the way it does let's back up a little bit and look at how it all started what you're about to see is from an early prototype of the game so anthem always had exotic traversal as a major part of its core gameplay but as you can see here it was not always in the form of flight technical and design problems made true flights seem impossible so we experimented with alternatives early on in the form of rocket powered jumps free from climbing and wingsuit style gliding so these mechanics worked really well together but in the end we decided to go
a different route so why is that well the mechanics gave us the verticality that we were after but they didn't feel fluid enough and failed to satisfy the superhero fantasy which is at anthem's core and what's more superheroic than flight right so we realized we needed to lean more into the power fantasy or wearing an exosuit with jetpacks why would you climb slowly up a cliff you can just boost past it using your thrusters we decided to implement freeform flight but we knew that in order to succeed we needed to solve some very specific issues the first issue is if you can fly above the level we have no control over what the play space is you can ignore the entire level layout skipping past mission objectives and you have free sight lines of the entire map which breaks our performance and streaming the second issue is if you can fly you don't really need to think about how you traverse you just kind of fly in a direction and wait until you get there there are no interesting skill checks
choices or risks which makes it boring when really it should feel exhilarating so to address these issues first of all we added a flight ceiling above the level to make it feel less limiting we didn't make it a hard collision but instead applied downwards force on players getting close to the flight ceiling and added presentation to make it feel like turbulence since the ceiling was hand placed we could tailor it to our needs depending on the layout in that specific part of the level this allowed us to get control of the play space again and prevent performance and streaming issues it also made the player have to fly through the world rather than above it preventing them from ignoring the level layout completely so we also added the overheat system when flying your engine builds heat until it overheats forcing you to crash land and keeping you grounded until the engine has cooled off again so what this achieved was it gave us control over the ground to air ratio of a player's experience and gave players a reason to engage in ground
gameplay again we then layered in ways to cool off your engines during flight for example by flying downwards skimming over water or flying through a waterfall this gave the player interesting choices while flying and added a layer of skill to how you choose your flight path so now we had a framework for how flying worked in the game the next step was to figure out how to control your javelin so our biggest challenge here was making the transition between ground flight and underwater movement feel completely seamless we started out with more traditional airplane controls where the left stick on the controller steers your character with up and down being inverted you could freely look around your character with the right stick as you flew through the world as you can see in this video so the main issue that we found with this was that the control scheme was simply too different from the ground controls the transition between the two modes was jarring and players often started their flight with a nose type into the ground
so we experimented a lot with different controls to try to solve this problem at one point we even had the trigger button work like a gas pedal which felt amazing but kind of makes it difficult when you're making a shooter since you need that button for the gun trigger so we ended up with left stick controlling your speed while steering was done with the right stick we wanted you to be able to look around and have the character go towards the direction you're looking when you press your movements to stick forward just like it works when you're on foot so this approach made the controls a lot more simplified and intuitive it allowed for seamless transitions between traversal modes and instead of struggling with the controls it made the players feel like superheroes the main thing that we lost from this was the ability to freely look around the character but on the other hand this also gave us more control over the framing and angle which became helpful when creating animations as we knew exactly how the characters movements would be presented to the player so we had a framework for flying where the controls finally figured out
the next issue was to make those controls translate to really nice movement feel we started out with a more realistic physics model with simulated drag and realistic velocity inheritance but as it's true for many games we quickly realized that it's better not to worry too much about realism and just make it feel as good as we can no matter how many laws of physics we needed to break and we kind of broke all of them in the end so while your speed is analog we did have a binary boost state that triggers a lot of the presentation on the character such as animation post changes effects camera shake field of view adjustments so this boost state was triggered when moving your stick forward so you'd immediately feel the kick from the boost even though your character's analog speed would take a second or two to reach its max so whether it was for controlling your speed your side to side movement or your steering we had a similar setup we had curves controlling desired speed based on your stick movement acceleration and deceleration towards this desired speed
modifiers making a light push on the stick give a slower acceleration than fully pushing it we also checked for how drastically you tried to change direction so we had more control over how it felt to make small adjustments versus larger movement changes so all of this allowed us to get smooth movement that worked well for different use cases we had limits in place to ensure we never went faster than the game could stream in the level the limited speed felt okay for flying forwards but when flying downwards it felt artificially slow luckily the streaming constraint did not apply to vertical movement so we implemented a curve which allows you to go faster as you're flying downwards you reach double speed going down versus going forward we actually tried to push it faster than that but it kind of made it feel like you're hitting a wall as you go from a super fast dive to flying forwards again so a problem with all of this is that it actually makes falling faster than flying straight down we tried adjusting the fall speed to be slower to compensate but it kind of made it feel like you're
falling through syrup so it's definitely weird physics behavior that falling is faster than flying down but as it didn't really cause any actual exploits or issues in the game we actually ended up shipping with this behavior so now we had a framework for flying intuitive controls and nice feeling movement so the next step was how to best present that movement with our camera first of all we've used camera dampening so what this does is have the camera lag behind the movement of the character it's tracking the goal was to get a less static feel to the character's position in the screen space get a better sense of direction as well as to help you anticipate obstacles the only issue is that dampening leaves the camera behind the direction you're going instead of anticipating it so we did some math to create a reverse dampening effect which gives you the result you can see in this video when turning the camera leads in front of the player panning slightly towards the direction you're steering and offsets the character to the opposite side of the screen
we also did a similar calculation where we tied a small amount of camera roll based on your character on your character's steering speed so the camera tilts in the direction you're steering this was done to give a better feel to the direction you're turning towards as well as to improve the feedback of how strongly you're returning we also tied camera framing pitch field of view and shake to the pitch of the character we use this to get more control over framing your character and the world as you fly through it so you could easily tell what was going on and where you're going we widened the field of view and increased the shake as you flew straight up and down to give a more visceral feel and convey the sense of speed even better we also frame things differently when going up versus going down to better fit the needs of the player when going down you end up right behind the character so you see the point you're diving towards and the world below you but when you fly straight up we show a lot more in front of the character so the player easily can judge if they
will collide with something when they decide to start flying forwards again so we had a framework for flying intuitive controls nice feeling movement and a camera that presented it all well the final piece of the puzzle was to look at how we can differentiate all of these things based on what javelin you're wearing so because anthem is a game which is designed for co-op it was very important that players are able to move at the same speed so they can stick together as a group so when it came to differentiating the javelins and their movement feel from each other we could only rely on things like custom jumps different steering rates and switchback times in general we used the ranger as a standard responsiveness tuning and went up and down roughly 15 pursuit but this only got us so far to truly push the movement field difference as far as we needed we relied on animation to save the day which brings us over to david's domain well once we get the time values and the framework from the design we can adjust
the feel further through animation to exaggerate the speed or sluggishness we can clamp the values in the blend spaces or spring flowing the values to dampen the motion even further we separate the suits on the visual side through many ways initially all the suits look very unique as you can see from the base models and colors but once the players start changing things with array of paints and bit packs the differences start to get pretty muddy so the first thing to figure out when working on a suit is the main base pose creating an easily identifiable and recognizable silhouette that separates it from the other suits at a glance the lancer is our stereotypical rocket man posing the medium speed pose has a spread out glide style and it goes into an aerodynamic fastener pose stretches it out with its arms back at its sides and legs closer together since our flight has an analog speed system so you're not just in one speed and transitioning to the next where you can be feathering the input for half speeds we're always constantly blending the different speed sets which means we need to be aware of how the poses look together in the mid-range
so they're not just uh they can't be too different from each other or they won't blend well one of the pitfalls to try to avoid when creating the poses is twinning it's easy to make the poses too symmetrical and look like a t-pose basically making sure to offset any limbs slightly they need to be similar we also break out the poses through additive layers being on top well but it's best to try to fix this in the bass pose also in the faster speed i make sure to not collapse the arms and legs too tightly to the body this gives the pose room to move and breathe and avoids clipping when the additive layers are running on top for all the suits the medium flight speed shows the most character of the poses and we need to make sure that those unique parts bleed through when in the faster pose since it's easy for them to fall into the straight body arms to the side posing for the classes i made it more upright with a bigger silhouette and less aerodynamic posing with its arms wider and flexed at its side treating the classes as though it was a big massive
rock can push forward from its end jet engine and not caring so much about aerodynamics the colossus has a face plate visor that doesn't animate and only points forward so we needed the suit to be more upright to at least somewhat look like the visor areas pointing in the right direction instead of looking down i also made the lace closer together so to bring more focus on the arms and the silhouette and i bent the need to offset the black the back leg plates to avoid some clipping and to vary up the posing from the lancer for the storm i really leaned into the superhero posing that emphasized the cape and the right arm i made the left arm flex outward which spread out the cape better along the shoulder to show to showcase the magic arm i pulled the right arm out from the body for that clear silhouette i also did a tuning pass on the cape physics to get the motion flowing just right which was a bunch of random tuning values so it was a lot of trial and error to get the gun streamlined against the body when in flight i added an offset atom to the weapon holster to keep the gun from clipping the cape for the interceptor i leaned away from the hummingbird flapping motions for the wings
instead use them like fins or rudders to keep the lines of the interceptor's model really clean i always aim for an arrow typographic in the posing so the arms are always straight out with flat hands and even in the faster pose i made sure the arms were separated from the body silhouette and not tight at its size to still create that graphic i also bent the left leg like the storm but kept them streamlined for more variation so the boost transitions one of the places we want to spend some animation bandwidth was to sell that awesome feeling of flight transition from the neutral speed to the faster boost speed we want you to feel that initial jolt as soon as you press the throttle forward instead of just speed blend all these boost transitions follow the same type of style they open up quickly to a big anticipation pose then reversing shape and tightly collapsing while moving forward in screen space eventually open up slightly to set them to that fast speed pose like an overshoot which is another reason i made sure to open up the fast speed pose more to give them room to collapse tighter in the transition for contrast between the transition and the normal fast flight we also
layered on top more animation camera shake as well to sell that boost feel for the bass pull setup to make the physics and blending into and out of flight easier we kept the y axis facing up the whole time and only rotating the capsule in the yaw which is how every other state works in our game it simplified the physics but put more work and content on animation so basically capsule and the physics model never rotated in other angles but just visually did it through animation that means for each javelin just the bass poses for the flight had nine animals for each slow medium and fast speed so 27 for each suit just to get the visual roll pitch working for the speed at blended speeds and this decision did not just affect poses but every one off motion like the boost transitions enters and barrel rolls had to have at least nine different variations as well for the pitch and banking even more if it needs to blend well back into the normal flight loop smoothly for the varied speeds an example would be the boost transitions that needed 18 pursuit 9 for fast and 9
for medium to blend out smoothly in case you have little or full input forward at the end of the transitions and while still being able to stare also keeping in mind that all the additive layers had to work with these bass poses and one offs so different variations are mainly for hip orientation but slight pose adjustments because any big rotation changes might give you unexpected results these are one set of speed poses in maya with the trajectory pointing forward so you can see the pitch and banks were all done just visually but this is what the banking poses look like in game the top row is a faster boost poses and the bottom row the medium speeds you can see how the poses are just slight adjustments of each other and how much the camera angle is varied from the mario trajectory so always make sure when posing to work with the in-game camera in mind and testing game constantly what you see in maya might not be the proper framing when you're playing this is a representation of our layer stateful structure while the main base date flow is running or transitioning we actually have all our additive poses nested in a layer above
them they're constantly running this allows us to blend the different additives on and off independently from the transitions for more control also it lets the additive loops continue to play out rather than restarting constantly every transition so you're not just seeing the first same part of the loops all the time we also have the turning additives split into two different layers so that we can offset and delay the turning additives on the upper body from the lower body or vice versa which breaks up the linear way the additive motion would be applied on the whole body we use breathing type additives to break up the static poses and linear blend spaces there are two main breathing animations which are being layered on and blending to create an organic feel there's a drifting type of motion that varies the position of the limbs in screen space and comes through more in the default speed the second is an air current shake type of motion that is more pronounced in the boost which gives the feeling that the suits are tensing the faster it goes from the air current and causing to shake more and drift less
the turning additives are offset animations created from the neutral bass pose while we have the bass poses to show the pitch and banking lean we use turning additives for reactionary motion to make it feel more responsive logistic input it's the same concept as look or lean additives for turns or runs where it might take the body and the root motion more time to rotate but the layered additives help lead the motion at first and remove some of that delayed feeling in the banking it creates a twist and a lean in the movement direction how big or small the additive pose change created in maya is is also another way to vary up the different feel of suits working in conjunction with the design tuning values where the intercept turning adders is a big motion to show responsiveness a suit like the storm's turning is more minimal and graceful and for the pitch up and down it breaks up the posing by curving the bend of the body backward and forward so it would just or it would just be a flat pose since the up neutral and down bass poses don't have any spine rotation when they blend by
themselves others all the students have different types of steering uh the interceptor uses arms and wings and a twist and banking motion where the cloth is used more of an arm swing for steering one trick to creating the additives is in maya you can have the turning out additive offset poses in a layer above to mimic the state flow then when creating the base poses and animations you can cycle through them on and off to check how it affects the baseballs also to make sure to use fk when rotating limbs rather than ik when creating offset energy which would result in getting random rotations instead of discrete deliberate rotations only in certain axises that you want to create the crash line state it's basically just an erratic additive layer that is layered on top of the current flight layers so you can still steer and the flight underneath and still work the same as before this technique can be used to layer on any type of motion to create different status effects as well for example either turning off all the attitudes to create a freeze effect a really hard shake for a shock effect
a great place to really sell and vary up the feel of the different flights was the one-off motions like the lancers enter initially we had the body really shooting forward of the trajectory and in screen space to show the speed but that caused a lot of gameplay bugs with the way it would need to slow down and blend back to the directory or flying off the screen when entering flight facing left or right before the camera could catch up but we want to show the frantic power of the enters atoms we accomplished that in the motion by first dropping the body as though the lancer was in free fall for a split second before the boosters kicked in and to convey the power of it i twisted the shoulders when boosters kicked in and had the arm shooting back and grabbing onto the air so to show it stabilizing from the initial power of the motion you can see the lancer pops into a crouch pose right away at the start and does a big post change that shoots forward into the horizontal flight pose within four or five frames but then spends the rest of the frame time settling in and stabilizing to sell the motion like in fighting games where it pops into the hip frame then spends the rest of the animation time with overlap and settle initially the shoulder and body twist
was animated and built into the enters but next time i'd had the twist on a layer instead so it can be more varied and randomized the cost in general has the same type of motion as a lancer but initially the body moves downwards more and backwards instead of forwards right away to sell that greater weight from the delay you can see the comparison here where they end up in the same place at the same timing so instead of spending the time to stabilize like the lancer takes the class as long as transition to that horizontal pose and their arms are also delayed more to show weight but the full motion is still the same amount of range which helps for design the storm's enter is a mix of the lancers and the colossus's it has a big pop at the start but then blends forward into the horizontal pose more slowly like the colossus to have that graceful storm feel for the interceptor since i started animating the double and triple jumps first i went a bit crazy and i knew i want to enter with more extreme and motion and i want to show that it had more speed and agility than the
lancer but the lancers enter was already as fast as it gets for that default motion i debated about entering using twist type of motion but that was too similar to the barrel rolls and then at first i tried using a front flip but that caused an initial confusion on the button press with a double and triple jumps not knowing what happened right away whether it was a flip jump or an enter glide so i went with the backflip i need to make the visual language very clear and the motion deliberate on the button press to avoid any confusion so saving the backlit motion for enter clyde shows a clear unique big motion that you're in flight which looks and feels fluid for the player camera also using a front flip for the exit atom blends well with the triple jump flow that was one of the many lessons for me in understanding that flight is only one state and a chain of motions and not just think of it as its separate state on its own realizing how it feels to transition in and out with the other states was really important a benefit of having one animator on the full traversal from jump to fall hover and flight and swim gave a consistent feel and fluidity
between all the states the consistency can come down to stylistic animation choices but can also depend on small differences of a few frames or blend times in transitions the barrel roll was another one-off motion and that we had for the lancer i made sure the barrel roll was very slow very nonchalant i've done it a billion times maneuver i thought of it as a very low effort veteran soldier type of move where it's sluggish and doesn't tighten up too much in the row which is characteristic of the lancer but also shows the contrast with the interceptor for the colossus initially was going to propose a slow type of bare roof that shoots out flares like a military carrier plane then we opted to lean into a shield mechanic and just added a shield armor override the storms of aid is just using the lancer's barrel roll since the storm is invisible most of the time with a lot of visual effects i didn't feel the need to create another set especially with the time we had left and using a longer blend out we could hide the end pose differences the interceptor was
basically a re-target of the lancer but i added two more spins in the row and tightened up the pose in in the spin for a sleeker silhouette and also shortened the recovery time to show it being lighter and more agile than the lancer to save animation costs the bare worlds are nine atoms that we ended in a blended pose between the medium and fast speed which we use the longer branch out fl back into flight instead of doing 18 or 27 atoms it's such a big motion that it didn't need to blend perfectly back so as you can see in the end when creating an animation system like flight it's very different than creating one-off animations there are a lot that goes into getting the field just right and only so much you can do through animation alone having to depend on things like physics values tuning cameras controls visual effects account with small things all add up to create a bigger picture it's really a marriage between design and animation with lots of back and forth and even good communication between the different departments yeah we truly feel that animation and gameplay design are two sides of the same coin especially so when creating exotic
traversal abilities for player characters which are so dependent on player input one side influences the other and we hope to have shown how our different parts aligned to create the final experience that we deliver to our players to close things off we just want to give a shout out to our amazing team over at bioware without whom we never could have realized the flying as well as we did while we focused this talk around animation and design adding the ability to fly to a game has huge ramifications across all disciplines and how they do their work it required tons of collaboration and communication and was truly a team effort uh these are just some of the key collaborators that helped us bring flying to life we're honored and proud to be here today to represent the entire team's hard work thank you very much okay so i don't know do we have time for questions one maybe one maybe two if anyone has
any questions just mike's over there so hi hi congratulations on your game i also played it flight system my question is there are games like gravity rush don't know if you played them they don't have a ceiling and they don't impact gameplay but without having a ceiling so what was actually the decision that you made to just you know cut out the uh open world feeling of flying everywhere like why why did you implement that in the beginning instead of just experimenting with it sure thing so we actually did experiment quite a lot and gravity rush was one of many reference games that we actually looked at and how they solved this problem it's a really good game by the way i really like it so the thing with that is this interesting is what they do is they tend to hide it with vfx or things like that that kind of blocks out the the world that when it's really far below
you um so we tried some approaches there but i think the main concern there was still that you didn't really have to fly through the world you could just fly above it and at that point you were just kind of taking off into the distance and you sat there for a long time without really needing to interact or do anything with it and it tended to become kind of boring so that was the thing as soon as we lowered the ceiling a little bit and made you actually have to fly through the world if we found that players were way more engaged by it so that's why we opted for that okay thank you very much thank you okay if we have any more questions we're going to be out by the exit over there and just approach us and we're going to find the breakout room together okay thank you thank you
Auto-generated captions from YouTube — names and numbers may be misheard.
Game Developers Conference · 2026
Game Developers Conference · 2026
Game Developers Conference · 2022
Comments