top of page

Project Specifications

  • Work duration: 4 weeks

  • Engine: Unreal Engine 4. Version 4.27.

  • Unreal Marketplace Assets, used for showcase purposes.

    • Barnyard Megapack

    • Victorian House(Only Exterior)

Synopsis

In this project I focused on making a tool for designers. Often, when we designers make a world, it lacks life. So I made a tool that allows designers to place NPCs in that world with ease. While at the same time giving them a lot of options to allow every designer the opportunity to personalize their NPCs.

The idea

While we designers often make environments, cities, villages and so on, we might have a hard time imagining how these cities would look when they are populated. So I wanted to create a tool that allows designers to place and personalize NPCs. Or if they want to populate a whole city, they can use the spawning system to assign jobs and schedules to the NPCs.
 

Skärmbild 2022-02-22 213734.png

The Tool

The tool has two primary uses. The first are the NPCs that can be placed in the world. This allows the designer to personalize the NPCs' work and schedule. Then, after work, when do they sleep and where can they sleep? Secondly, there are interaction points that allow designers the ability to place interaction points. An interaction point is where the NPC will stop and perform a task. The designer can then assign a specific animation and tool to go with the point.

HighresScreenshot00019.png

Interaction Points

I could have sat for days developing a super advanced AI that interacts with the environment. Depending on what it does, it plays a different animation at different points and decides itself. But instead, I decided to make the interaction a separate system. Interaction Points are actors that the designer can place in the world. Then assign an animation that they can use as a preview of how it looks when an NPC is at that point. With this, the designer can also align that animation to the environment and decide if they also should have a tool while they are at that point.
 

Spawner

NPCs can be placed and be very personalized, but this can take a long time if, for example, we are trying to fill a whole city with NPCs. The designer can decide to use the Spawner. With it, they can spawn up to 1000 NPCs at once. If the designers wish, they can make some of these NPCs spawn with work assigned to them. If they want to do this before spawning, they place Interaction Points in the world and then set what type of worker should be able to use the Interaction Point.


NPC Spawning Blueprint Showcase with commentary

The AI Behavior

While making the AI, I wanted to have modularity and simple logic in mind, making it easy to add or remove behaviors. As it has been built now, it is easy to add more behaviours. Let's say we want NPCs to get hungry. All that has to be done is add a copy of the work task and make a variable, that is hunger. The AI behavior runs based on two variables currently. Depending on if the AI has to work or has to sleep, determines what action it should take. And if they have nothing to do, they will either use their free time to interact with the world or wander around.

Details Panel for Interact Point

NPC Details Panel

Skärmbild 2022-02-15 110121.png
024e9907b9bb0ce5803f1e8c037bf447.png

NPC Behaviour Tree During Run Time


Important Blueprints

NPC AI Controller Blueprint

The AI controller that drives the NPCs' time perception.

+46(0) 72 002 52-68

Maximilian Jernberg

Level Designer / Technical Level Designer

  • 573-5730421_linkedin-artstation-facebook-art-station-logo-png-transparent
  • LinkedIn

©2022 Maximilian Jernberg.

bottom of page