BESTOWING LIFE TO 3D CHARACTERS
GAME DESIGN
I started learning unreal engine because I saw it as a means of virtual production and saw the increasing capabilities for film and visual effects. But soon enough I got hooked on more than just the virtual production features as I started coding my own systems and abilities and NPCs.
I now have a fully featured pipeline from start to finish for humanoid characters, including a free and open source rigging pipeline from Mixamo to Advanced Locomotion System that allows me to transform static characters to living breathing actors that move and interact with their environment, all powered by my custom Multi Brain character logic.
I now have a fully featured pipeline from start to finish for humanoid characters, including a free and open source rigging pipeline from Mixamo to Advanced Locomotion System that allows me to transform static characters to living breathing actors that move and interact with their environment, all powered by my custom Multi Brain character logic.
Please excuse the lack of visual examples in this section. I've got a lot of projects in the works and the multibrain is still a work in progress as I work out the kinks in the aiming system for the weapons components.
Instead, here are a list of planned features for the multi-brain plugin which will be licensed along side the delivered characters as an offering to my video game clients:
Teamsense: Multibrain Characters will have designated teams that can be allied, friendly, territorial, defensive or hostile to other teams.
Stealth and Awareness: Multibrain Characters will track which other characters they have line of sight to and will have perception stats that control how far they can see and how quickly they will notice hostiles.
Memory: Multibrain Characters will have a memory of characters that they have interacted with or been attacked by. Individual characters can have their teams hostility configuration overridden. This is most useful for characters who only react when provoked, who remember who provoked them and react aggressively, while their allies still remain friendly. They can also be configured with a short term memory to forget aggressors immediately.
Territories: Multibrain teams can own territories, sections of the map that they own and will react aggressively to invaders while allowing allies to pass through freely. An earlier version of this plugin involved a subclass of territory called Shrine which can be configured with conditions to take over the territory and send a ping to nearby defenders; this functionality will be re-added in a later version.
Stat System: Multibrain Characters will have the typical stats, health, stamina, and defense, as well as configurable elemental resistances. Effort was made to implement a system that allowed for custom element types on a game per game basis, but this proved difficult due to limitations with Unreal's own Gameplay Ability System (GAS). I'm still going to add common elemental types like fire, ice, and poison with their own unique status effect procs.
Inventory System: Multibrain Characters will have an inventory system and the ability to pickup items in their environment. There is a weight limit and an inventory limit as well as an item pickup class that can also bestow stats, abilities, and restore health, all at the same time if needed. They can have multiple inventories, and those inventories can be customized to only hold a specific type of item (i.e. weapons).
Weapons System: A weapons system is being developed on top of the item system with support and templates for common weapon types, such as one handed, two handed, throwable, pistol, machine gun, and shotgun. Currently the 3rd person aim offset for the gun system is proving the most difficult as it needs to support dynamic IK adjustment for a variety of skeletons while still aiming a variety of gun types exactly at the players head (with a stat for NPC accuracy). This is the main obstacle that currently keeps Multibrain from being production ready and I have consulted mathematicians and game programmers to no avail; everyone seems to be faking it or just eyeballing their animations rather than using a procedural truly accurate aim offset. You would think that this would be common enough that someone somewhere has figured it out, but i suppose i will have to be the first.
Projectiles: Ranged weapons can be configured with both projectile and hitscan types, allowing for greater flexibility, and can be configured with different impact, damage, and status effects.
Equipment: Multibrain Characters can be configured with equipment that changes or adds to their base stats. Effort is being made to make slots on the actual character skeleton that make this equipment visual (i.e. equippable shoulder armor, gauntlets, etc) but it is difficult to design this to be modular rather than designed for a specific character skeleton. Equip tags can be used to make it so certain characters can only equip certain types of weapon or armor.
Locomotion: The current iteration of this plugin is designed on top of a multiplayer replication ready fork of ALS or Advanced Locomotion System. Characters will already have smooth procedural animations for jumping, feet and hand position, run and walk cycles and grappling and climbing walls. Effort has also been made to implement different idle and aim animations for different weapon types, as well as slots for custom pickup and equip animations.
Identity System: An identity system has been built for the purposes of character selection and swapping as well as storing character data and stats. Teamsense is built into the identity, so its also useful for things like disguises.
Multiplayer Support: The Multibrain system is designed to replicate across multiplayer servers and identities can carry over across instances. The multiplayer system is designed around unreals own Online Subsystem which is designed to work with both steam and mobile. It is unknown yet if this can support cross platform play, further testing is required.
Behavior System: AI controlled Multibrain characters can be configured with custom default behaviors, such as wander, patrol a path, or defend a territory. They also have behaviors for chasing, attacking, searching for hostiles they have lost sight of, and following friendly characters, that can be overridden with custom behavior trees. In a future version I plan to add routines that allow for random variations to alter their default behaviors at a given probability or time period, at a certain point during the day / night cycle or if certain conditions in their environment are met. This could allow for more organic, emergent behavior than the typical wander or patrol system (i.e. random chance to stop at a shopkeeper if one is nearby or go home when the sun sets) but is low priority compared to getting the rest of the system fully functional.
Once the multibrain is fully completed, I will have everything I need to build most of a functioning game from scratch, with a modular plugin that is almost as easy as drag, drop, and configure. It is very much intended to be a quick and easy plug and play solution to (pseudo) sentience.
Instead, here are a list of planned features for the multi-brain plugin which will be licensed along side the delivered characters as an offering to my video game clients:
Teamsense: Multibrain Characters will have designated teams that can be allied, friendly, territorial, defensive or hostile to other teams.
Stealth and Awareness: Multibrain Characters will track which other characters they have line of sight to and will have perception stats that control how far they can see and how quickly they will notice hostiles.
Memory: Multibrain Characters will have a memory of characters that they have interacted with or been attacked by. Individual characters can have their teams hostility configuration overridden. This is most useful for characters who only react when provoked, who remember who provoked them and react aggressively, while their allies still remain friendly. They can also be configured with a short term memory to forget aggressors immediately.
Territories: Multibrain teams can own territories, sections of the map that they own and will react aggressively to invaders while allowing allies to pass through freely. An earlier version of this plugin involved a subclass of territory called Shrine which can be configured with conditions to take over the territory and send a ping to nearby defenders; this functionality will be re-added in a later version.
Stat System: Multibrain Characters will have the typical stats, health, stamina, and defense, as well as configurable elemental resistances. Effort was made to implement a system that allowed for custom element types on a game per game basis, but this proved difficult due to limitations with Unreal's own Gameplay Ability System (GAS). I'm still going to add common elemental types like fire, ice, and poison with their own unique status effect procs.
Inventory System: Multibrain Characters will have an inventory system and the ability to pickup items in their environment. There is a weight limit and an inventory limit as well as an item pickup class that can also bestow stats, abilities, and restore health, all at the same time if needed. They can have multiple inventories, and those inventories can be customized to only hold a specific type of item (i.e. weapons).
Weapons System: A weapons system is being developed on top of the item system with support and templates for common weapon types, such as one handed, two handed, throwable, pistol, machine gun, and shotgun. Currently the 3rd person aim offset for the gun system is proving the most difficult as it needs to support dynamic IK adjustment for a variety of skeletons while still aiming a variety of gun types exactly at the players head (with a stat for NPC accuracy). This is the main obstacle that currently keeps Multibrain from being production ready and I have consulted mathematicians and game programmers to no avail; everyone seems to be faking it or just eyeballing their animations rather than using a procedural truly accurate aim offset. You would think that this would be common enough that someone somewhere has figured it out, but i suppose i will have to be the first.
Projectiles: Ranged weapons can be configured with both projectile and hitscan types, allowing for greater flexibility, and can be configured with different impact, damage, and status effects.
Equipment: Multibrain Characters can be configured with equipment that changes or adds to their base stats. Effort is being made to make slots on the actual character skeleton that make this equipment visual (i.e. equippable shoulder armor, gauntlets, etc) but it is difficult to design this to be modular rather than designed for a specific character skeleton. Equip tags can be used to make it so certain characters can only equip certain types of weapon or armor.
Locomotion: The current iteration of this plugin is designed on top of a multiplayer replication ready fork of ALS or Advanced Locomotion System. Characters will already have smooth procedural animations for jumping, feet and hand position, run and walk cycles and grappling and climbing walls. Effort has also been made to implement different idle and aim animations for different weapon types, as well as slots for custom pickup and equip animations.
Identity System: An identity system has been built for the purposes of character selection and swapping as well as storing character data and stats. Teamsense is built into the identity, so its also useful for things like disguises.
Multiplayer Support: The Multibrain system is designed to replicate across multiplayer servers and identities can carry over across instances. The multiplayer system is designed around unreals own Online Subsystem which is designed to work with both steam and mobile. It is unknown yet if this can support cross platform play, further testing is required.
Behavior System: AI controlled Multibrain characters can be configured with custom default behaviors, such as wander, patrol a path, or defend a territory. They also have behaviors for chasing, attacking, searching for hostiles they have lost sight of, and following friendly characters, that can be overridden with custom behavior trees. In a future version I plan to add routines that allow for random variations to alter their default behaviors at a given probability or time period, at a certain point during the day / night cycle or if certain conditions in their environment are met. This could allow for more organic, emergent behavior than the typical wander or patrol system (i.e. random chance to stop at a shopkeeper if one is nearby or go home when the sun sets) but is low priority compared to getting the rest of the system fully functional.
Once the multibrain is fully completed, I will have everything I need to build most of a functioning game from scratch, with a modular plugin that is almost as easy as drag, drop, and configure. It is very much intended to be a quick and easy plug and play solution to (pseudo) sentience.
