Crab animations - UQdeco2800/2022-studio-1 GitHub Wiki
Initial user testing
The goal of this initial user testing was to decide what animation or combination of animations (e.g. scurrying, stabbing of the hook hand, angry eyebrows etc) would most align with users’ expectations of the crab movements in the Atlantis Sinks game. Users were first provided with an overview of the game, followed by a demonstration of a night cycle with the pirate crab. From there, users were asked to describe their thoughts on the pirate crab and how they would expect it to move. Only qualitative data was collected as we required in-depth, specific responses in order to determine what specific movements should be involved in the crab animations. Notes from user testing
The following open-ended questions were asked:
- Describe your first impressions of the crab.
- How would you expect the crab to move in the game? Why is that?
Both users suggested animating the crab's hook to lash out out characters and its legs when it moves around the screen very quickly. Other animation suggestions from the users included animating its claw to lash out to show danger and making its face angrier as it begins to approach the main character (i.e. emphasising angry eyebrows etc). From these results, it was decided that the animations that would make the crab appear more menacing would be a slashing using its hook; clenching of its claw; and making its face look angrier as it attacks. Had time permitted, its legs would have also been animated to increase how realistic the enemy looks.
Pixel frames
Final Implementation
As shown in the image above, the same original frame was included multiple times at the end of the animation cycle. This meant that the animations could be implemented on a continuous loop. The texture atlas was added to the game's assets. (An extra default option was also added to the Atlas file.) To implement these animations in a continuous loop no new methods were needed. The createPirateCrabEnemy() method in the public class NPCFactory was simply updated to create and call a new AnimationRenderComponent. Consequent changes were also made to the spawnPirateCrabEnemy() method in the public class ForestGameArea. The atlas file path was also added to the String arrays in the SaveGameTest and MainMenuScreen classes, ensuring that the implementation passed all tests.
Below is a video of what the crab animations look like when implemented in the game:
Results from additional user testing of the implemented animations in the game confirm that the animations do fit the character and make the crab feel "aggressive", "threatening" and like it would be "very damaging to the main character" or "partially knock the main character,... disarm[ing] them". Future improvements could include animating its legs to make it more realistic. Notes from user testing