|The character now rotates to match the surface!
tl;dr: I added support for rotating the character to match the surface slope.
What happened last week?
- It was another short week, because I was visiting family and still dealing with colds.
- I mainly just added support for rotating the character according to the slope of the current surface.
- Fix an issue with how is-rounding-corner surface-state logic would incorrectly assume the contact point is the corner point, even if the surface is not axially aligned, and the character doesn't touch the corner.
- Add additional verbose logs for debugging is-rounding-corner logic.
- Add a new flag to SurfaceContact for tracking which mechanism caused the contact to exist.
- Add a method for skipping the current CharactorAnimator blend.
- Track character animator latest/current blend duration.
- Finish implementing character-animator rotation to match surface-contact normal.
- Add support for calculating the surface contact point without using Godot's collision APIs.
- Update nav-preselection character-prediction-phantom rotation to match the contact-normal for the underlying surface.
- Fix an issue where surface-grabs weren't triggering while still holding the jump button.
- Debug an issue with redundant waypoint calculations with oddly-shaped surfaces.
- Add support for edge-trajectory waypoints around surface-interior protrusions.
Rotating the character to match surface slope
Last week I added support for rotating the character in order to match the slope of the surface that they are attached to. I needed to iterate over a few different attempts before I got this to look right. The following screenshots illustrate this process.
Sorry about the jitter in some of these! It seems to be a bug in my screen-recording software when running in full-screen mode.
- Debug some remaining issues with oddly-shaped surfaces.
- Finish some other surface-parsing logic I'd left-off on before.