This post will contain the tweaks done during the easter holiday.
The first tweak I am implementing during this time is making the player rotate instead of snapping when an input is given. I am currently looking to do this in a similar way to how it is done within the UE4 standard 3rd person character with a turn rate variable based on the input axis.
Towards the end of the holiday this was decided to be unimportant to refining the game in its current state so has been pushed aside for more important visual aspects of the game. As such I have begun looking into making certain atmospheric VFX for the game using the unreal engines Niagra particle system.
The first effect I am creating is a fire effect to be placed on torches within the level. I will be doing this by applying a material to a simple sphere mesh that I have created in maya. This mesh has lowered subdivisions to create a more rough aesthetic to the flame.
The Niagara system does a few changes to the mesh and to the applied material to give it the look of a flame. The first change it does is it will change the size of the mesh as its life span continues. Along with this it will change colour along the gradient of orange to a more yellowish-white colour. I did want to add opacity to this but the type of material used didn’t work with opacity as it wasn’t translucent. I didn’t add this change as doing so removed some of the flare from the fire effect.
This week I implemented bouncing off of enemies heads. Using a test blueprint which I created which was a box with 2 cube hit boxes, one to act as the body of the enemy and another to act as the “head” of the enemy to bounce off of. I then implemented a Blueprint Interface to act as an intermediary between the test enemy and the player.
The interface was set up so that it stores a variable for a vector of +1200Z. This is then called by the enemy when the head hitbox overlaps with another object. To make sure that this doesn’t misfire it checks if the overlapping object implements the interface before continuing. Then it uses a message node to call the event in the overlapping actor.
When the player receives this message it will fire the event jump force node and launch the character +1200Z.
This week I have been researching what I will need to do to implement my next target mechanic. This mechanic is going to be the ability to jump off of enemy heads
The current plan to implement this will be by having the player character have a hitbox placed just below their feet, this will then have an on overlap event that will fire when it is overlapping with an object that is tagged as an enemy. This is to prevent the event firing on other objects by accident. When this is true the blueprint can have an impulse force applied to simulate a jump, if possible I would rather have it so that we use an actual jump event but I don’t yet know if this would be possible to do.
Another measure I want to take when developing this feature is to make it so that it can only activate on a hitbox that will be placed at enemies heads so that the player doesn’t just jump when they run into an enemy.
This week the main goal was to fix some bugs with the player controller I was made aware of this week. These problems occurred when a placeholder asset was introduced to the controller. The problems were that the animations were rotated 90 degrees to the right causing movement to look janky and also the player controller was spinning rapidly whenever the player controller would input any movement.
These problems have been fixed by us moving the test mesh we are using from the inherited mesh slot to within an invisible cube, as this seems to not cause the camera’s parent scene actor’s yaw value to rubber band causing spinning.
After fixing this change we had an issue with the combo system for attacking, so I helped to correct the issues.
Before the changes the attack system would play the first animation and get stuck with the IsAttacking variable not updating correctly causing the player to lose the ability to attack. To fix this we removed the IsAttacking variable and replaced it instead with a delay after the left mouse input is received to delay the attacks, so the player cant attack too quickly.
I missed last weeks post so this week will be a recap of last week along with this weeks progress.
I spent some time these two weeks going over the progress in the excel spreadsheet to see how we are getting along with the most important parts of the project.
We also have set ourselves a deadline to have a playable alpha version of the game by the 28th of February, this will cause us to focus more on these key aspects. All the currently in development or completed aspects of the game are within the high priority category as decided by the whole team.
I have started to tweak the players jump physics to try and make the player feel less floaty, to do this I increased the base jump Z velocity and increased the air control to allow the player to have some control on their movement when jumping.
I also increased the gravity scale by .1, I did this to have the player fall a little bit faster as I thought they fell a bit too slowly.
This week we have been discussing the different priorities of the blueprints we are going to make.
I also spent some time making a 3rd person character controller for the project. It stills needs some slight tweaking to be where I want it to be but overall it works as intended.
I have managed to fix the problem with the character not rotating as intended, this problem was being caused by me not properly handling the vectors given from the player camera, I have now combined the two vectors into one which then updates the players rotation allowing them to rotate freely from the camera.
For the first week of Journeyman, I have started by putting together a spreadsheet with my team to list out roles and also to keep track of people progress as the weeks go by.
After this I started to do research into the game that we have chosen to develop. (Castlevania) I primarily looked into the mechanics of the game and how they function along with the certain aspects such as balancing, theme etc.