I wanted to lock down the fight sequences by improving how the player fought with the NPC’s. This involved implementing two types of attacks: A Blockable (Normal) attack An UnBlockable (Charged) attack Having multiple types of attack will help to make the fighting a bit more varied and add to the experience. So what to do to implement it.
Post 17: Finishing Stealth and More Todays update is much like the christmas update in that I did a lot of improvements and implementing so I'll just list them in…
This session was about implementing the ability for the player to kill enemies stealthfully. The end result would aim to encourage play such as in the video below
This post is going to be a bit of a long one as I have done a fair bit in the way of the of AI without updating my logs. Call it a crazy time of year. The challenges with the timing has left me with many short burst of productivity, which in itself is actually kind of cool to go through as I feel it will help promoting a more scrum style development process, relieving pressure towards the end of the project. Never the less, I will start with the breakdown of what I have done since my last update.
I feel that already there are possibilities emerging here that will respect history, but also respect this particular cultures historical identity. Things like clothing colours, tabards, helmets and cloaks are all, from what I can tell at this moment, okay to get a bit of creative licensing on. I also shouldn't forget that the possibility of using English style armour and chain mail shouldn't be ruled out as this wasn't uncommon at the time.
As a common feature in fight sequences, targeting enemy NPCs allows for more fluid movement and enables orbiting which puts the focus on attacking combos. This is definitely what I would like to achieve.
Post 12: Combo Attacks; Part 2 Today I elaborated on what I had done previously with the combos. As it stood, I had a character with a fairy janky 2-part…
Tonight I jumped on to getting Bob armed and started implementing attacking animations / sounds. I started by grabbing a starter model kit off the Epic Store, which contained a two handed sword. Although this will not be the sword I will end up using, it's a good start as I want the player to use a customisable Claymore / Bastard sword. My next step was to create two sockets in the character skeleton. One of these was on the characters back and the other in the right hand of the bone rig. From there, I created a function that triggers when the player pushes the '1' key, effectively equipping and unequipping the sword by attaching it to either of the sockets and smoothing it out with a vector move call to. I then grabbed an animation from Mixamo.com that could serve as either an equipping or unequipping the weapon. Unfortunately it's only really useful as a single sword animation, but it will do for now. From there I delayed out the socket attached to coincide with when the right hand in the animation was closest to the hilt and the vector move takes care of the rest. Finally, I localised the equip animation to the arms of the character so that if they were running and they wanted to equip the sword, their legs wouldn't go crazy. Next I started on the attacking and combo animations. First, I setup the left mouse button as an input. Next I setup a function that would a) auto equip the sword if it already weren't equipped and b) set a selection that would occur depending on a integer that would increase when the player clicked in succession. This selector contains three different attack animations. It kind of works, but still needs a bit of refining. I'll double back later. Finally, I added sound cues in the animations for grunts and sword swings that would randomly pick from a variety. The audio, no doubt will be replaced, but this is a problem for a later date. I'll upload a video of the WIP when I refine it a little more. For now, here's some screen shots.
So I decided to start getting into some of the cooler stuff (well I think it's cooler). The first on the list was a little foray into creating a bit of NPC AI. The first step was figuring out how to implement the movement and have the ability to call on it. What I ended up doing was creating a master moveable character that would serve as the parent of the player and all other NPCs. All I really had to do to prep was to take the Camera and Spring Arm off. I created an AI class that would contain all of the NPC logic. I then placed a Nav Mesh into the level, with a pretty wide span and put a Nav Invoker into the NPC child that would act as a localiser of the Nav calculations. There are a couple of options in the project settings that I changed in order to make this work too: Nav Mesh / Runtime / Runtime Generation -----> Dynamic Nav Mesh / Runtime / Observed Paths Interval -------> 0.5 Navigation System / Navigation Enforcing / Generate Navigation Only Around Navigation Invokers --------> True Navigation System / Navigation System / Auto Create Navigation Data ------> True At this point, I thought I would implement a basic function that would get the NPC to run towards the character. This could be handy for attacking cycles, attention grabs and cinematics. In the AI Class, I put in a basic location function that would get the location of the player, the location of the NPC, average them out (to find the direction) and then send the NPC on that path. All in all, this turned out as well as I could hope for, seeing as this is pretty new to me.
This week was polishing off the final parts, for now, of the atmospheric stuff. Mostly it revolved around polishing a few things and fixing some elements that weren't quite up to my liking. These included fixing the fog settings so that the lower ground had a visibility range of more than 30cm. The other fix was to do with the lighting on the ground and exempting it from automatic lighting effects. This was implemented for better night time visibility and general play experience. The wind system was consolidated even more and the direction can now be dictated specifically. Finally, the grass now moves in a SEMI wave movement. I found the plugin included with the grass to be too intense and left the bigger bushes waving around quite violently. They now receive a value that equates to 1/4 of that of the grass. Finally I implented and consolodated the variable inputs of the included grass squashing mechanics. These will require a revisit as I believe that the player cylinder collider is somehow being offset slightly to the right. For now, I'm going to move on to AI, as the current environment has turned out far better than I thought that it would.