SaltieRL / DistributedReplays

👨‍💻 Rocket League Replay Collection and Analysis Server that powers calculated.gg

Home Page:https://calculated.gg

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Address animation interpolation on missing data frames

Abbondanzo opened this issue · comments

Overview

This issue is associated with the replay-viewer branch. Both of these issues are related to how we interpolate keyframe data, especially when the data is missing.

Cause

By the current implementation, if there is a lapse in data and all matrix information is the same over a number of frames (position coordinates and rotation coordinates), we combine those frames and that duration as a single animation frame. In the two cases below, position and rotational coordinates often remain the same for several frames, so the animation system treats that chunk of frames and the first frame of the ball or player's updated position as one large, slow animation.

The reason we chunk frames like these is because sometimes we are missing data for a player or the ball in a particular frame, and we did not want the animation over those frames to appear jumpy. By chunking the frame window, the animation smoothes out over the longer time period. This often results in inaccurate rotation of the car but is otherwise unnoticeable at normal game speed.

To address, we have to distinguish between a lapse of data inside a frame (to interpolate over that frame) and where the actual player or ball needs to remain in a particular position for a fixed period of time. Players that are demolished should be made invisible on the field, as is when the ball has reached inside the net and is scored.

Required Fixes

  • Fix interpolation of the ball when it is scored. Sometimes the ball clips through the field or slowly animates back into the center position.
  • Fix interpolation of players that are demolished. Sometimes, the cars slowly animate back to their respawn positions or clip through the bottom of the field.