The developers discuss the animation and cinematics pipeline behind the Miles Eckhart quest giver, including facial animation tools, OptiTrack capture and Look IK, with more quest givers planned for 3.0. They also cover AI subsumption, NavMesh, NPC counts and behavior-driven reactions such as depressurization.
I think it's mainly just the tools and getting the tools in. I want to say converting our pipeline, but we've been integrating more Maya stuff, because in Maya we can sync up the face animation and the facial heads and all that stuff. So this is the first time where we really tested it to run live in the Persistent Universe, so that would go out to the public or anything like that. So that was really cool. But those tools are still being iterated on, but the base is working now. So we can just start using it and checking it and seeing with the face guys.
I don't know. I know that they are planning for 3.0 to add more Quest Giver stuff and more dialogue through the PU. So I think the more that face pipeline and audio pipeline gets synced, the more that they will add into the PU.
I know I've seen you guys' lists and lists and lists, so I know it's thick. So I know the amount of facial animation that's attached to these things to help give more guidance to the player is fairly in-depth.
And like I was saying, the more the tools become streamlined, the easier it is to get the stuff in faster, so the more we can add. That was the first time we ever actually ran that system like that.
TL;DRMiles Eckhart probably won't be the only cinematic quest giver in 3.0, as more shoots are being scheduled, but how many more is unknown since it's still early pre-production.
I don't think he'll be. They're literally talking about scheduling a shoot to shoot more stuff specifically for 3.0, to add stuff. So how much they'll add, I don't know. It's still very pre-production. CR intends to add more.
But as production goes, we know from now, kind of the beginning, to the end of when we have it all there. But as we go through the process, sometimes there's a little more here, sometimes our attention has to go to a different area and so on. I know the list is thick. And I believe the assumption right now is you would definitely have more than just Miles in 3.0, but I know more details will come out of that in the next few weeks probably.
Absolutely. My main focus isn't really usually the PU, so that was the first time we ran that system. So now that we have learned it, we'll hand that more off to the PU guys and they'll do a lot more with that stuff.
The animators there? Yeah, a little bit. I think we'll definitely be helping them, training them up on the tools and stuff, and if they need assistance, we'll help out like we did with this last PU.
TL;DRThe team says the Frankfurt, UK and Austin teams are strong, and that more work exists beyond what was shown at the live event, held back until fully ready.
It's good. I think our team here in Frankfurt is really strong. UK has a pretty good team. And then Austin is really good as well. They actually had more stuff to go into the PU. There was actually some subsumption where people were walking around in that space in the market and stuff that we were seeing in earlier builds, and then for some reason on the last build they didn't go through. Because it was actually pretty awesome. There were guys walking up to the bar and then sitting at the bar, drinking and then walking away.
And that's a fair point to say that there's a good amount of stuff that we're doing. What we showed at the live event isn't everything we have, right? It's what came together and worked in a way that we thought was representative of where it should be. We have a good amount of stuff that's also from all the different studios that's got great progress, and things are just about there, but we want to make sure that they're fully there before we're presenting them outwards.
TL;DRThe quest giver shoot was put together in about three weeks including testing new tools, but with the pipeline now in place a similar clip might take about two weeks at most.
It didn't take very long. We shot the Quest Giver stuff at the end of the last PU shoot, or the last shoot, right? And then we literally had three weeks to put everything together for Eckhart and the Hawkers. And Mekin, too, actually. The other guy that waved flag soon or whatever. So that was within three weeks. And then on top of that, we were testing the system. We hadn't run that system. So we're using an OptiTrack system that was getting solved in-house. And then we were syncing all the faces, which we've done before, but we did it old school, manually. This time is the first time we actually used the tools. So we ran into a lot of issues, actually, within those three weeks. We're updating our facial real-time runtime logic, right, for the faces? So we're going to use more of a facial board so we can have more control over Look IK and turning that on and off and all that stuff. But for Eckhart, we actually had to revert to the older system, because all the NPC heads haven't been completely updated to the new one, only the three of them.
So it'd be hard to gauge the actual time then. If you had to do it today, with what you know and what you've learned, and now that the pipeline's in place?
I don't think it would take us long. It was pretty straightforward. He had maybe less than a minute of time. I would say maybe two weeks at the most, start to finish, if we had somebody specifically on solving, and then an animator right off it, and all the tools were working properly. And that's being very generous.
And usually in the estimates that we give out on the production end, and even when we ask other leads to, we also have to understand that we need to put a little bit more time into those estimates as well, to foresee if there are any issues that come up, right? So if we say two weeks, we may go, oh, well, we think it'll take us seven days. But you need to allow for that time just in case something comes up, or other tasks come in that may take some priority and so on.
It's weird too, because there are some things that you think will take two weeks and they only take two or three days, and then vice versa. You think something's going to be easy...
I don't know. That's something I have no idea about. I would think that they would stack the quests right on Eckhart, but within those stacks, you might get a random request, right? So say if they shoot 50 quests, I don't know if they're going to do it based on your level or if they're just going to be random within that. I have no idea.
And that might have been my fault for pulling that question. For Jason, in the animation, it's kind of, here's the stuff that needs to animate, here's the scenes that need to be put together. As far as the different types of missions, how random they are, which ones will be procedural versus scripted versus mixed between the two, that's more of a design-focused or design-driven question.
TL;DRThe evasive eye movement was intentional acting, though they wished they'd had time to polish it, and Look IK can currently only be switched on or off, not blended.
Yeah, exactly. I wish we had more time to make it look better. We just didn't have enough time. But the thing is that eventually the Look IK... right now we can only turn it on and off, but we can't blend it. So eventually he'll be able to look at you, and then when he doesn't want to look at you, he'll look away. So when you're sitting there, he's generally looking at you, but he's not actually making eye contact with the player. But when he flags you over, when he goes, 'Hey, come over here, have a seat,' that's Look IK on. He is looking and turning at you and talking to you.
TL;DRNavmesh looks basic, but the hard part is moving characters between different meshes and parts of the universe, which they got working quickly and hope to show in the next update.
I think basically the one really critical part is that NavMesh seems like very basic functionality in AI, right? It's just one guy moving from one place to another. It seems pretty trivial because at the end of the day, it's a very well-known problem and a very well-solved problem in AI, right? But what we do is different parts, like having systems that move in different ways, one in relation to the other. I think the critical part is also being able to navigate between different parts of the universe, and this is what I think is really unique, even just between different meshes. Because it's not so trivial to allow a character to move from one part that it knows to another part that it doesn't know, right?
I have probably wasted months and months of my career working on things just like that in the past. And it's something that we've been able to achieve in a fairly short amount of time.
I think we were very happy about how the progress was in a few weeks, and then we were like, you know what, let's try to put more stuff in. I wish we had more time to also put it in the Gamescom demo, but I think this is something people will see in the next update. We want to show as much as possible.
TL;DRSubsumption is the overall system linking AI to game and engine code, covering character behaviors made of activities and sub-activities, the mission system, and a scheduler, with a priority system on top.
Okay, so subsumption is, let's say, a collection of systems. We call subsumption both the behavior description of characters, the mission system, the definition of how we set up things in the world, in the universe. So subsumption is really the overall system that connects the AI to the game code and the actual engine code. So it's got everything. It's got the numbers, it's got all the AI careers, it's got the behaviors. So basically we start from the behaviors: each character can have what we call activities and sub-activities. It's something we can associate with a job, or the current job the guy is doing. If you are a cleaning guy in a spaceship, this is your activity: cleaning guy. And that is made of different sub-activities that are actually your actions. So it could be cleaning the floor, cleaning the kitchen, the mess hall, going around and making sure there are no boxes around and stuff like this. And then the character will iterate through different sub-activities. But then there is also the mission system, which is the one that actually will say, well, you, player, need to do this mission, and to do this mission you need to have these specific characters doing these specific things. And then we have the scheduler, which is what actually allows you to say, well, now it's morning, you should just work. But somebody else is actually leaving because he has a...
Yeah, it was for that reason. Basically, it's up to the designer if they want to have it external or all internal. But in general, this is what I set up with the other designers here as an example, because it's really important that the AI is able to move anywhere the player can. So the spaceships have some exits that allow you to go on top, so this is what the AI should also be able to do. But for repairing, or imagine there is a mission in which they need to... they should be able to still be attached to the spaceship and move around. So this is why it's there, to give this knowledge to the AI in the future.
TL;DRAI is meant to behave like players, requesting and being assigned landing pads, and being notified if a pad becomes unavailable, using the same communication system.
So I guess the question is if the AI can... So basically I think the idea is that the AI will be the same as players, right? So to access a landing pad you need to request a landing pad. Once it's assigned to you, you will use it. Then the spaceship will go into the hangar, and then it will be moved away from the guys that work there. So basically AI will be able to land on their assigned pads that are free for them. And if for some reason they cannot do it anymore, they will be notified, and then it's like, well, it's not available for you anymore. So it's the same knowledge.
Yeah. Basically, the key is always the behavior. We always have it behavior-centric, because if the brain of the AI is correct, it does exactly what a player would do.
TL;DRNo fixed number is given; the goal is as many NPCs as make sense, possibly hundreds in large areas, using a level-of-detail approach since AI itself is cheap, unlike animation or rendering.
Of course. But big squares, like some of the landing areas that are pretty big, you may want to have hundreds, right? So the idea is actually to use a kind of LOD system for the AI as well, so the ones you want to interact with are more complex and they cost more, but the ones that are further away are cheaper. The reality is that the AI itself is very cheap, because the way we are developing subsumption is almost based on templates and then what we call runtime data. So each AI is actually a subset in memory of stuff that they execute. And also the amount of tasks, the subtasks that they execute at a certain given time, is pretty minimal. So we can actually run a lot of AI, but then we have other dependencies like animations or rendering.
Yeah, a bit. I think we try to be smart. So what we are trying to do right now, for example in the Gamescom demo, we try to keep enabled only the AI that are around players. And this was around, I think, 30, 40 AIs, which was kind of the limit right now, based on the AI.
TL;DRZero-G won't use navmesh, which represents surfaces; the plan is a hierarchical pathfinder, and characters caught in zero-G would navigate with a kind of backpack.
Okay, 0G will use... so it's not NavMesh at that point, because NavMesh is a representation of a surface. So if you want to use mag boots, at that point you could still use a NavMesh style, where you generate on the different kinds of gravities and stuff, right? But in 0G, I think our plan is basically to have this kind of hierarchical pathfinder. So you can say, I need to fly to this other station, right? So my first step is navigating on a surface towards a spaceship, then entering into the spaceship, then flying to this other place, this other planet, then landing on this other planet, and then dropping off and walking. And if in the middle there is a zero-G environment, let's say a generator gets destroyed and then they're in zero G, at that point they will have to navigate the environment with kind of a backpack.
That is our big challenge in the future, because, as you said, the main critical part is really the orientation of the different areas. And we need to understand what a player would do. Of course, a spaceship usually has some entry section, so you can always use that, saying, well, I need to EVA to the entry section, and then I will be in this other environment. Because there are also all these transitions from one local grid to the global grid and zone, and then entering into another one. And this is what we will have to deal with in the future.
TL;DRYes, AI perceives all nearby players at once and its behavior picks which one to target, with queries like closest enemy or enemy with the most dangerous weapon.
That is just based on the behavior. Basically the AI perceives everything around; it perceives one, two, three, four players. What the behavior wants to do is what will drive it. So imagine I have two players, I want to speak a bit with you, a bit with the other guy. Well, my perception, my knowledge of you guys, is always active. Then I can say, oh, now I'm talking to Brian, and then I will use you as a target. And basically using you as a target just means, on the behavior side, storing you inside a specific variable that I reference. And then when I want to interact with the other character, I will just do the other one. So there are different query mechanics to interact with the player. So you can say, give me the enemy that is closest. Or we will have things like, give me the enemy with the most dangerous weapon. And then you can select these types of things. But in the meantime, your perception is always active. You get more targets, you get more friendly guys or enemy guys, and then you can decide what to do with those.
TL;DRAI characters will react to sudden environmental changes like depressurization, with reactions tied to behavior, priority and character type, so civilians, combatants and others respond differently, such as panicking while still trying to call for help.
So basically the idea is it's always based on the behavior. We base a lot on the behavior. So let's say I'm in a normal environment, I'm trying to do something. Then the environment gets depressurized. So at that point, I will receive information from the environment I'm in that the environment is getting depressurized. So in that case, we can create specific reactions to that specific event. But it's critical, it's not just a light that goes on.
And the thing is, each character could actually have different reactions. So civilian characters will not react in the same way as another guy. If you are in combat, you're not reacting in the same way. Similar to how we did with friendly characters that die next to you, right? If you are just a guy working normally and you see a friendly dead person, then you'll freak out because you're not expecting that. If I'm in a combat scenario with a player, well, I expect that my friends could die and I won't react in the same way. And the same with environmental changes, it will be very similar things. There will be critical changes and less critical changes, and it depends on how important my activity is and what I'm doing. If I'm requesting some reinforcements, well, I would still try to ask for reinforcements somehow. So I would panic a bit and then still try to EVA if I'm in 0G at that point, try to press a button to call reinforcements or try to reach a radio or something like that.