Monday, 8 April 2019

Week 9 & 10 - Final Enemy/Root Motion Testing/Beginning Polish

Final Year Project

Week 9 & 10


Now that I am approaching the final weeks for my project I will no longer be developing any new content. Because of this, I will now be cutting the dragon enemy from my game and instead have different variations of the three currently implemented enemies as well as polish them over the coming weeks.  

The third and final enemy I have developed is the Banshee. This enemy has the ability to cast a variation of spells that will force the player to use their space wisely. I also believe that when the Banshee is combined with either the Vampire or the Brute, it will lead to varied and difficult game play. 

When I first started developing the Banshee I started with the basics by setting up a simple behavior tree and AI controller. Now I had to research into what spells and attacks I should include with this enemy.  I first looked into creating a basic spell such as a fireball. I researched into creating particle based projectiles and then sync it up to the animation. For my next few attacks I took inspiration from World of Warcraft where the player has to time their movement in time with attacks. The second attack is a timed fire whirlwind that spawns at the players location after a delay. I achieved this by adding a scene component to the player that acts as a spawn location. When The cast animation is finished, a small cloud is spawned where the player is, this location is then set as the cast location and after a small delay the fire whirlwind is spawned there. 


(This is the first attack sequence including the fireball and whirlwind attacks)

As you can see in the picture above I have a switch on int that makes the Banshee shoot 4 fireballs and then move onto the whirlwinds. The Banshee will keep casting whirlwinds until the 5th is cast, then Phase 2 is set. 

When creating the attack sequence for phase 2, I wanted the player to feel less powerful than the Banshee, this would created dynamic game play where the player isn't hacking into the enemy until it's dead. The second phase of attacks include an AoE attack that causes the player to slow down when inside and a large beam of frost. I also decided to leave in the whirlwinds during this phase to create more pressure for the player. 


The second phase works in a similar way to the first phase but with a few differences. In this case, the first cast is the AoE spell, then 4 beams. once this is completed the Banshee is reset back to phase one and all whirlwinds are removed. 

 

This is Behavior Tree I created for the Banshee. I have used a selector to determine what phase is activated. Creating this enemy has given me a greater understanding of behavior trees and I believe I have the ability to create even more complex AI. 


As I had time left over this week I decided I could try and fix a major issue with my project. root motion animations. To fix this issue I imported a mixamo animation into 3DS max and added a root bone as well as copied the X location the Hip bone to match the movement of the animation. I had successfully done this, however once imported into unreal the animation plays sideways instead of forward, I believe after another week of polishing I will have this problem sorted and begin adding root motion animations into all my characters. 


Finally this week I added some basic world lighting into my level to give it an overall feel, over the coming weeks I will be adding more lighting and polishing the level.