A stylised physics based character controller for Unity 3D.
The character controller is based on the approach devised by Toyful Games for Very Very Valet. In this video from the team's development blog, the various techniques for the movement are outlined and explained. The video also provides snippets of code, though incomplete in places. The source code was not provided by Toyful Games due to it being tied up in the complex otherworkings of Very Very Valet. This project aims to be an independent pure re-creation of their physics based character controller.
Additional stylisation inspired by discussions found in Toyful Games blog posts on character animations and shaders and effects are also included. These implementations exist from a personal desire to have them in my own projects. The project makes use of Unity's Universal Render Pipeline (URP) to facilitate some of these graphical features.
- Physics based character controller, as described here.
- Squash and stretch on the character makes motion appear more fluid and bouncy, it is a principle of animation.
- Dithered silhouettes appear on the character when obscured from view, letting the player know where they are at all times.
- Top down blob shadows on characters make 3D platforming feel sharper, and they look great when combined with Unity's inbuilt shadows on the environment.
- Dust particles appear when characters move, making the character feel more alive.
Open the project in Unity. Open the demo scene located at StylisedCharacterController/Assets/Scenes/.
When running the project in the Game view, use WASD and Space to move and jump the character.
- Fork the repository.
- Create a branch for your feature:
git checkout -b my-shiny-feature
. - Commit your changes:
git commit -am 'Added my super shiny feature'
. - Push to the branch:
git push origin my-shiny-feature
. - Submit a pull request.
All contributions big and small are appreciated and encouraged!
Credits for the clever character controller goes to Toyful Games. A large portion of this system's code is their own as presented in this video.
The blob shadows use Nyahoon Games' asset Dynamic Shadow Projector for URP.
Is my own.
See this page for more information.