OpenArena Message Boards

OpenArena Contributions => Idea pit => Topic started by: fromhell on August 03, 2016, 05:42:04 PM



Title: [cgame] Player animation improvement
Post by: fromhell on August 03, 2016, 05:42:04 PM
Well more like ideas kicking around in my head to make players move more fluidly.

- A float calculated from the current position of an animation, to tween to another movement animation sequence. Like going from 50% through a run animation to 50% to a walk animation with blending, assuming both animations have similar foot cycles. This in theory, would prevent foot stutter from the animation restarting many times
- Some way to prevent the fall animation from being played for running over down slopes and stairs
- Better blending with the strafe sequences
- Tilting the lower/legs with the surface normal where the player is standing, with an angle limit, as well as a low pass filterwith any more angles run into per bobcycle
- Perhaps a wading animation for shallow water/high water level so there's no awkward fullbody swimming over the water surface

Animation.cfg could probably turn these improvements on


Title: Re: [cgame] Player animation improvement
Post by: Gig on August 04, 2016, 12:57:43 AM
- Perhaps a wading animation for shallow water/high water level so there's no awkward fullbody swimming over the water surface
Probably this would also make the model fit its own hitbox better than when it's actually swimming, right?


Title: Re: [cgame] Player animation improvement
Post by: cheb on October 30, 2016, 07:14:53 PM
There is a much more jarring problem: in any realistic situation (everyone strafe-jumping like pros they are) there is NO animation at all. Everyone's avatar is stuck in a perpetual "mid-jump" frame like bouncing mannequins.

I STRONGLY PROPOSE to find a way to apply running animation for strafe-jumping.

1. For each skin, analyze animation to split it into two phases: phase 0 is one foot forward and phase 1 is the other foot forward. Maybe by using the foot sound attachment points as references, or by selecting frames with lowest vertical vertex coordinates - in short, the hard part.

2. Add a boolean phase counter to each player, each time he jumps flip 0 and 1.

3. If player speed exceeds, say, 250 horizontal and abs(vertical speed) is, say, below 200, consider it strafe-jumping and apply running phases instead of jumping animation.
The trick here is to apply frame not based on time but based on vertical speed. So, for example, upward speed of 150 maps to 0.0, zero to 0.25 and downward of 150 to 0.5, and for the next jump upwards to 0.5, zero to 0.75 and downwards to 1.0.
There *will* be sharp transitions during the bounces as start and end of each phase would be probably cut off due to speed being less. But this is for the better as no amount of twiddling would make animation match strafe jumping speeds.
(believe me, when I animated that mancubus I found the hard way that its animation is twice slower than its actual speed in Doom 2. I had two options: making it skating around (looks damn unnatural) or double the playing speed of its walking animation (looks damn unnatural, all that lard would shake itself apart at those accelerations)
In light of this, the classic rules of anime when there are NO intermediate frames between two dramatically different poses, are a godsend.

This is NOT perfect but at least it could be applied to old models, keeping Q3 compatibility and not breaking anything AND pro players would stoop looking like bouncing mannequins. They will be moving their legs, at least