A stylised physics based character controller made in Unity 3D.
Before you read on, get a hands on feel for the project over at itch.io. Additionally, watch the demo and listen to my exploration into oscillators for game development.
The character controller is based on the floating capsule approach devised by Toyful Games for Very Very Valet. In a 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 a (fanmade) 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.
- Sound effects play when the character moves and jumps, to bring everything together.
- Oscillators, Torsional Oscillators and much more...
Open the project in Unity. Open the demo scene located at stylised-character-controller/Assets/Scenes/.
When running the project in the Game view, use WASD and Space to move and jump the character. Press F1 to toggle oscillator gizmos.
- 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!
Physics based character controller 1
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.
The platforms follow paths using Sebastian Lague's very useful Path Creator (a project which I have previously contributed to). This has been adapted to work with [Oscillator.cs].
The sound effects and audio were kindly created and arranged by Clara Summerton.
Is my own.
See this page for more information.
Footnotes
-
Disclaimer: This project is fanmade! The quality of the project does not reflect the quality of Toyful Games or their products. ↩