[Music] I'm here today to talk to you about a fairly unique position that we have at Bungie called the technical designer and animation it's my job so maybe you're here because you're looking for ways to grow your own animation team or you're looking for another perspective on a job you're already familiar with or maybe you're interested in becoming a tee dia or maybe you're just waiting for the parties to start but for whatever reason thank you for coming so before I get carried away let me talk about Who I am my name is Jamie Jeffcoat I've been working on destiny at Bungie for the past two-and-a-half years my background is in computer science I have a master's in art creation for video games figured that would help get into the industry and before all those years of college and master's degrees I was a real person with real interests like band and theater and of course most importantly video games I was interested in every aspect about them and I wanted to make them so that's why I'm here and so let's
get to the real beef of this conversation what is a technical designer in animation I would show you a real but it's kind of difficult to show you something that isn't obviously visual the things that I work on are things that you don't normally notice in their game like animations not popping or entering the vehicle from the correct side or seamless enemy encounters and proper ammo count and a video of me reading a bug and identifying the issue wouldn't really give you a good idea of what I do as a whole but I'll show you one anyway so this is me every day reading bugs fixing them I mean it's not always just bugs but this is a pretty good example of something that I would do on a daily basis investigating the problems finding the solution fixing it checking it in even if I didn't want to because it was really funny so today I'll start by explaining what our name is what our quest is and how do we get
across the bridge between animators designers and engineers so what is my name since I have to say the title of my job about a thousand times in the next 28 minutes I'm going to shorten it to TDI a so TDI a here it no it love it need it but to understand how the role of the TDI a came to be at Bungie it will help to give a history of how our team has grown and how we came into action so looking back at halo 3 we had about three to five animators in a lead with a third of an engineer at working on about three hours a day with animation so it was a small team and it lacked great support but we made do with what we had moving on a post halo 3 we were working on reach the animation team as you can see was growing we have cinematics now and we also began hiring dedicated engineers to animation and our rigging teams were growing as well to fit our growing animation needs so one of our
lead animators took a managerial role across the entire animation team and at this time the role of producer was introduced as well so right now animators are still using the old halo 3 system animations are blocked or bottlenecks from setup they're not able to see things in game immediately like jumps damages vaults combat activities vehicle animation so we even had a system that automatically imported animations based off their names so animators were in charge of things like spelling errors and other issues that we had were no animation blending to smooth out all of our transitions and there was no live debugging tools to help the animators figure out what's wrong with their animations in the engine so our animation manager with all of her awesome experience in wisdom says hey I worked on a fighting game once with a guy called a character scripter and whether you have experience on fighting games or not you can probably predict
that it involves a lot of coordination between designers engineers and animators alike so we need someone to facilitate the setup and introducing our first TDI a my boss Josefa taro to introduce his background he started in game design he moved on to animation and he was also having a growing love an affair with programming and so we hire him and throw him into the trench of Halo Reach and he notices some systems seem a little broken and there's a lot of work to be done if you actually would like to go into the GDC vault my boss jos potaro did a talk with the animation engineer Tim Armstrong and they talk about how they developed the systems for Halo Reach and I'll have more information on where to find that at the end of my show and so as the Destiny team began to grow and form more animators and engineers were brought on again and cinematix has become its own team now even a spec ops team was developed to help bring our animated environments to life and so as you can
see the team has grown quite a bit now but there's still only one TD ia and he's busy to say the least so until that fateful day in July of 2012 I began as the second TD IA at Bungie and uh I had heard of technical artists and technical animators and riggers of course but this position was pretty unique to me and though I wasn't sure exactly what I was getting myself into it felt just right so we even found some other teams to sprinkle TDI a magic on which brings me to the end of our introductory center section and to wrap it up I'll attempt to describe my job in a sentence so I think a TD ia is a cross-disciplinary bridge between designers and engineers who works to support and build the animated world of destiny and sustain our content requirements we're the glue that holds the whole thing together between everyone so that covers our name now moving along what is our quest so sorry animators
have their principles and tea designers have their pillars so I sat down with my team and we came up with our own pillars so we're here to liberate creative people which for us mainly means animators engineers and designers we're here to reduce costs at all costs bringing efficiency and harmony to the animation team and we're always looking forward a Latin motto that we say at Bungie a lot is per - eeeh at Astra hopefully I didn't butcher that and which basically translates to through boldness or through boldness to the Stars which is something our team is always preparing for so now let's elaborate on liberating creative people and in the case of the TDI a I'm mainly talking about animators designers and animation engineers so let's break down these people that I strive to liberate on a daily basis we'll talk about animators now and how I understand their priorities they want
readable silhouettes clear communication to the player and their stuffs not look broken in-game and with a decent framerate to show it all off there's 12 principles of animation written by Frank Thomas and Ollie Johnston that have proven themselves in capture or in capturing great performance but in the world of video games technical restraints and design limitations caused us to solve and find the best practices of forgetting these things in the game to name a few things that you can imagine would introduce interesting design challenges timing and spacing anticipation exaggeration squats and stretch but mainly I think animators want to bring characters to life so the player can kill them or wish they could kill them and if you don't know who that is you're probably better off but if you do play destiny you you will definitely hate this guy so moving right along we'll talk about designers designers have their own pillars you know and in fact when I googled pillars of design a
bungee article was the top of the list so we'll throw that up there and basically they want to focus on creating a fun and rewarding world that players want to be in the fields new and shared by people of all skill levels or time availability they want the world to feel solid and responsive and they never want to let anything get in the way of what the player wants to do but in the case of most animations designers are control freaks with just cause of course fine-tuning fun requires lots of iteration and we have to break these tuning controls into tangible and understandable bits of information and hopefully you have a decent system to bend your content to your designers wills I mean just think about when some of those design requirements get a little complicated so enough about designers let's talk about engineers in this case I'm mostly talking about animation engineers but I've been known to rub elbows with sandbox or tools engineers on occasion and working with
engineers to verify content set up across all the systems can really save a lot of headache and heartache as bugs are being fixed or new systems come online I believe engineers want to bring the best animation performance to the console with the least amount of cost they write code that actually gets the animations into the game and without them we wouldn't have any of this great animated biz so liberating them and allowing them to concentrate on what's most critical to the game is always something I'm looking to help with but really when animators designers and engineers get to focus on being creative the team the game and the players reap the benefits so whoo let's get ready for some examples people they're coming up soon to back up some of these claims that I'm going to make prove that I can talk the talk and implement what I was just talking about so how do we facilitate this creative liberation movement well we liberate animators by unblocking animation content our
animators don't consider anything actually complete until they can see it working in game as they want we also strive to lift restrictions on creating content we find ways to simplify and speed up the process of going from animation to actually getting things in game also we're capable of editing content I know my way I'm out around Maya well enough to make edits to an animators content so they don't have to sweat the small stuff like fine-tuning the characters root movement or fixing a character's neck position right before a ragdolls so it doesn't look broken we also connect the animators with other departments around the studio or sometimes we even act as a shield but uh if they need to trigger say like a certain behavior they want to test their berserk layers on a bad guy maybe they don't know how to make that berserk layer trigger but they can come to me and if I don't know the answer I would talk to the AI guys and figure out how to get that set up for them and so we also do just side support so animators can come to me at any time pull me over to their desk and I can help them set up whatever they're confused about so now a
delve into my first example and how unblocked animation content so a common occurrence is the need to get a vendor or an npc in the game because you want to test and make sure the state machine is properly lined up with the environment or he's playing the right idols whenever the players not close and then he pays attention when the player gets near so to set up this kind of thing we need to take the animation content and we put that animation content in a state machine of course and all of this stuff is living within the actual character and that's another thing that we have to add to interact with their actual engine is a little AI tag that specifies the state machine that you want this guy to play so after that I'll open up the level editor and we'll open up the level that we want to put this guy in which is the tower and so I put a little spawn point in and I open up the script and I make sure he plays the state machine that we have specified and then once that's all done after all that setup it leads to this
seeing the character perfectly aligned at the table because that happens the first time and looking good if I do say so myself I love starting with this example because it makes the whole process looks simple but I do have examples later down the line to show how some of these systems weren't always so easy so let's talk about designers how do we liberate them well we help them by having a deep understanding of the available systems they can come to us and know that we'll have an answer or at least know where to start they we also help prototype ideas to estimate workload and find missing elements for things that they want to create and we can identify unique bugs by looking at the symptoms and knowing how all the systems work together and since we are designers ourselves we do right tools to liberate ourselves as well we like to automate any process that we have to repeat more than once so now I'll talk about how I've prototypes an idea to help out a designer so there I was one
day designer comes up and says hey I have this really cool idea I've got this level and I want the player ship to be in it for the first time you're playing the game the first time you see your ship but I want falling these bad guys to be sitting on top of it and I'm like that sounds really cool and he says yeah and then the player runs in and the fallen jump down on top of him and he has to fight him so I say let's figure out how to do that so it brings us to the questions that we have to ask like where should the character be positioned in the animation should he be where the the ship is or should he be positioned at the root of the the file where does the spawn point go does it start at the ship or does it start where he lands how should the physics work whenever I set this up for the first time I noticed a few problems like the physics pill was colliding with the ship geometry and pushing the character out of the way or the Fallen would jump straight through the floor instead of landing properly and how to achieve a perfect alignment with the ship was very important to make sure the animators performance was sustained throughout so
this led to results so ended up with a new AI physics setting for special cases like this where we can allow the the character to sit on top of a ship and ignore the physics for the time being we even later developed easier tools to help set this kind of thing up as we saw in the previous example of putting the character in game and making him play something pretty simply and now these features can be used all over the game and they are used all over the game and it all came from sort of setting this up to begin with so if you play the game here it is you can see it as soon as you create your new character and there they are jumping off the ship it's a lot done so again what do we do here how do how were we useful we unblocked the designer by prototyping one of his ideas and we discovered the technical and design requirements needed to pull it off and so he helped create a better process for the whole for the whole game and
entering those kind of situations so let's talk about liberating engineers and how do we accomplish this well sometimes we program animation features in case an atom an engineer doesn't have time sorry how do we accomplish this sometimes we program animation features that the engineers don't have bandwidth for but they still may be time sensitive and quite important something that we can figure out within the existing architecture we also create analysis validation tools to make sure that our content is up to snuff and imports properly and works well sometimes we translate those import error strings that spew across this across the screen when you're importing a character to animator friendly language so that they can fix and identify their own bugs also we unblocked new animation features by assisting with setup and so as our
engineers create more robust and efficient systems that's where we would help them and so another example is how i've programs an animation feature so we had this vehicle enter and exit and idle animations but we had no way to actually call them or put them in the game and so we needed a way to attach these animations to the character organize them between Inter's exits left/right idle and we need to select the create or select the correct animation at runtime so I took this content and I wrote a schema that organizes and holds all the information enter idle front left back right and I wrote import code that reads from all of those schemas and and so once that import code was implemented I had to go into the runtime code and make sure that I'm selecting the correct animation once the character enters the vehicle so entering to figure out whether the character is on the left of the right uses vector math using the position of the vehicle and the character exiting uses the direction on
the joystick that the character is pressing at the time and general cases were set up because combatants use vehicles as well so that leads to things like the characters coming out of the drop ships or this awesome PvP scramble with multiple vehicles so now that we've talked about liberating the creative people and who they are let's move on to the next topic of reducing cost cost you mean a lot of things and it definitely has a broad definition for my team but to name a few examples runtime cost like memory performance or performance of animations in the game or even production costs like creator time my time or bug same time so there are several ways that we reduce costs and our skill set allows us to improve workflows of animators and designers if something needs to be repeated make a script for it and if an error is causing a big risk to data automate out the chance of mistakes since there are so many steps to cover
for an animator to create their animation and get it into the game optimizing pipelines feeds up animators and designers alike collecting animation data can mean many things sometimes we use it to find out how much memory our animations take or which animations are going to be in use either way we can save a lot of memory by keeping track of this data but keeping track of that data isn't really useful unless we're constantly finding ways to optimize it so in the world of destiny we want to be able to reuse content wherever possible while adding things on to make it unique quickly prototyping designers ideas as demonstrated earlier saves a lot of time when they can recognize a new idea may require technical support it's great when someone on my team can help discover the the things that are needed to make that happen and by facilitating good communication between departments we speed up interactions by knowing who to contact but we can also identify unnecessary meetings and though this is
certainly not a complete list it sets us up for some awesome examples for reducing cost um here's an example of how we've improved a workflow you know we don't always solve these problems before they happen sometimes only after fuddling through a process over and over do we find the golden path and how to improve it but that's okay because it's better late than never right and uh so one way TDI A's have worked with animators and tools engineers is to improve the workflow of creating state machines and so as I described earlier with the vendor on the table so we have our old way of setting up animation and it's not pretty guys but I'm gonna show it to you anyway I mean I thrived in it all those nested references pointing to indices it made sense to me but you know it's not fun to look at all day when you'd rather be animating this stuff whenever it came down to it we were mostly the people setting up these systems but we needed something to
improve and simplify this visually so animators could create their own state machines we needed something that would represent each state all the transitions it could have and all the rules between them so are you ready for the result here's the exact same state machine we were just looking at but in the new and improved view and now you can tell that it starts in an idle activity and then it can exit fast and then it goes into combat and this can even scale up to more complicated versions of state machines like this one which still maintains a visual clarity and at least it's a lot better than what we saw before you can tell that this one has a couple of idle variants and then can go into a couple different exit states depending on whether it was interrupted by the player coming up to it or not so the top one it'll exit if the player is not around you can just go back into patrolling and the bottom if the player interrupts interrupts him he'll go into combat so here's an example of how we've optimized data to
reduce cost so here's a script that I created actually recently to find unused data that we were finding in our system our our player and our civilians had all these animations that were created for prototype content but weren't actually being used anymore so we want a quick way to find them and delete them and figure out what to do with all that space so in my script I get a list of all the clips and then I and just all those clips that it says are used but they may not be and then I scan through each animation feature and if the animation is referenced I just take it off the list pretty simple and then that leaves me with a list of unused clips which is awesome because now we can decide which ones to remove and how to handle all that new space that we just made so that wraps up our reducing cost pillar which finally brings me to my last pillar I've always be looking forward destiny is a game that's meant to be worked on for many years to come with expansions coming out on a fairly
regular basis it's one of the fundamental aspects of my job to always be looking for but not just for long-term sometimes we're trying to figure out what needs need to be met next week so what should we be looking into preparing for sequels of course we need to anticipate the needs of the future and make sure content is robust and reusable throughout the entire course of production we also must strive to understand how all the systems work together in relation with animation and be familiar with even things beyond that and with every problem we must brainstorm a solution you may not have time or resources to fix it now but you will find time later and this is one of the most important parts about our job and always looking forward is to always make ourselves obsolete it may not sound very appealing to strive for this kind of thing but despite our attempts there's always more work to do sometimes this is done simply by making really well-documented guidance that an animator can reference in order for them
to unblock themselves on creating or setting something up we also find inconsistencies with our tools or engine finding where things can easily go wrong and removing them from the process also we want to find processes that aren't ideal or interfaces that aren't easy to use how can we approve these and how can we reinforce the first two goals and on occasion we get a chance to design better tools much like the example with the state machines earlier and how we reduced the overhead cost of creating them but all of these goals for looking ahead reinforce our first two pillars of liberating creative people and reducing cost and so unfortunately we're running short on time so I have time for one more example and here's a fun way I made myself obsolete by anticipating the needs of animators to debug their damaged animations so we start with this character and the animator notices he's not playing the correct head shot animation when he gets shot in the head and so normally in our engine we don't
have any way to see how the engine interpreted this damage and so you just had to dig into the old content spec like I showed you earlier with the state machines and you had to dig through that maybe a left or a right or a body was set to a head or something and just something might have been setup wrong and it was really difficult to dig in there and figure out the problem so I decide to look into the code available for debugging at runtime and I start poking around my experience earlier from the vehicle set up sort of kick-started my idea of using character positions and the vectors around them so why not apply it here to for more informational reasons so I find the position of the character and I figured out how to draw this sweet circle at the bottom and then I get a little carried away by adding lines that correspond to the data that the engine has been fed to give the the result of the damage animation and along with that I represent the line where the damage came from and I even got more carried away
and added a line in the 3d space to show exactly where the bullet was coming from in the path that it took to hit the character and here's a couple shots of the tool in action and this allowed animators to debug their animations with a full arsenal of knowledge on the screen and they can identify the problem themselves easily something they weren't able to do at all before so that wraps up the end of my always looking forward section which brings us to the final section of this presentation is getting across the bridge between animators designers and engineers so where do we fit in your team may already have one perhaps a combination of people are doing this our worst case scenario your team doesn't have time to deal with the type of issue so which department do we fit in well we're considered part of the animation team but we're labeled formally as a technical designer and our cross-disciplinary skill sets due varies some of us are stronger in animation and engineering or some are stronger and design and animation but whatever combination we're definitely well suited
for this kind of role and theoretically where do we go well we're a bridge between animators designers and engineers right so really where do they put us in the studio here's actually a cropped version of our studio floorplan and you can see in the bottom left that we're nestled right between the animators and the engineers and there's even a cinematic tee dia and the guy up there and effects help support the spec ops team and as you can see the open floor plan allows us really easy access to design across the rest of the studio so what makes a good TDI eh I think we should be spongy we should soak up bits of information everywhere across engine set up content miscellaneous elements of course basic systems we should have a breadth of knowledge it's key to finding the answers to any given problem a good TDI a should be proactive finding problems they should be outspoken and one of the best ways to reduce costs and improve communication between teams is to speak up and speak often it not only
helps get the job done quicker but it instills confidence in your team we're also leadership ninjas our cross-disciplinary aspect of our role really makes us a good point of communication between a bunch of different people and also having a flexible schedule knowing our priorities and being available to animators engineers and designers alike make us an available warrior for animation so in review what's our name we do code or we're technical designer animation we code tools runtime in engine setup we're a designer we prototype ideas set up a kit encounters and abilities we're in animation verifying requirements supporting animators and editing content whenever necessary and our goals on the daily are to support the game the team unblocked content and facilitate communication to kick butt and take names and our future goals are are to think about ways to improve existing systems while hoping to create a better animation system in tools and run time
while planning a smoother and simpler experience between working with all the departments and so thank you very much for coming to my talk today here's the information I had promised about the to talk so I mentioned and thanks for coming everyone I hope this was useful here's are there any questions and I believe we're out of time so we may have to take them in the in the question room yeah thank you so much for coming I've been firing [Applause]
Auto-generated captions from YouTube — names and numbers may be misheard.
Distilling the key insights…
Game Developers Conference · 2026
Jason Schreier · 2026
Comments