I really didn't have any idea in which I wanted to design the character in, not did I have any idea on who the players character was. I began designing random characters with different resolution and body proportions.
1) The first character I designed had no aim and I just doodled, I ended up designing some sort of cyber-punk looking scuba diver which could have been cool for a different project but this design definitely didn't work with the current theming and plot for my game. I did learn something from this little doodle, this being the use of opacity to produce the illusion of a semi-transparent materials such as a visor. I moved on and continued to experiment with more styles and designs.
2) The next test drawing that I did was an odd experiment with proportions and resolution. This example of pixel art has a much higher resolution as it uses more pixels. I wanted to experiment and produce a character that had a more blocky style in this test. I liked the unique style to the character but once again decided that this would not work for my game due to it not matching the rest of the games resolution and style.
3) This final design that I came up with had much more complex shadows and highlights compared to the previous designs. This design also matched the resolution of the textures in the game environment and suited the theming of the game.
I really likes this character design and decided that I would use this in the game for now. I began to research into walk cycles and how their stages in preparation for animating the player. I came across this video which I found to extremely helpful when it came to the different stages of a walk cycle:
The 8 frame walk cycle includes several different stages that repeat. These stages include contact, low, passing, high and then the cycle repeats for the other leg.
Lines-
I used the video to help me understand the basic position and angle that each leg would be in during each frame of the animation. I used basic lines at first so that I knew where the leg was pointing so that I could then use that as a frame to add more detail upon.
Basic form-
From here I moved on to try and get the general shape of the leg. To keep the shape of the leg looking natural throughout the animation. To do this I had to make sure that specific aspects of the leg were kept the same (eg. the width the leg at the knee joint and at the ankle). I designed the character to have the width of his leg to be 4-5 pixels wide at his knee and 3-4 pixels wide at his ankle depending on the angle that the leg is at.
From there all I had to do was make some slight adjustments to the shape of the leg as well as add some details to the trousers. I repeated this process for every step of the walk cycle (8 times), my method of working was to create a natural and proportionate looking walk cycle.
Here is the end result within the Unity Game engine
After this I created a very basic climbing animation only made of 4 frames. This was just to add some more visual feedback to the player that they are climbing now, I plan to remake the animation with one consisting of more frames so that the animation is smoother and more detailed.
I worked on an animation blueprint and began implementing the different parameters required for each animation to trigger.
I made some adjustments to the player controller script so that I could change the values of these conditions through out the game so they trigger the correct animations.
I created a public reference to the animator component on the player so that the script could access the conditions/parameters.
Now with this access I was able to adjust the values in the animator component, triggering the right animations. There was one problem with the player at this moment at it was that the player could only look right as that's what the animation was limited to so I created another simple function that I could call upon to flip the direction that the player was facing.
I created a function called Flip() which would toggle the variable 'facingRight' to be true and false, as well as flip the scale of the player sprite on the x-axis according to the variable 'Scaler'.
Kommentare