Replay Mod (Fabric & Forge)

Replay Mod (Fabric & Forge)

787k Downloads

Jumping back in timeline, locks camera position and pushes it out of character view

TheChocolateOre opened this issue ยท 2 comments

commented

Use case:

  1. Open a replay.
  2. Right click on the head of your character, for a first person camera view.
  3. Let the replay play for a little bit (the amount of time is irrelevant).
  4. From the replay timeline (top bar) jump to a previous time position, by left clicking at the left of the current timeline cursor. (e.g. if you are at 00:25, then jump at t < 00:25)

By following these 4 steps, now the camera is pushed out of your character and its position is locked. You will have to press shieft in order to unlock its position and then you must track your character in order to right click and get into a first person view, again.

If you jump ahead of the time cursor this won't happen. The camera won't be pushed out of the character or have its position locked, as expected. So the problem happens only in previous time positions navigation.

Without knowing the requirements of the timeline navigation system, I think, at the very least, the camera should never lock, as it makes the software feel less responsive.

Replay Mod v2.4.0
Minecraft 1.16.1

commented

Also, when navigating to a time position, that a teleport occured between the current time cursor and that position, the camera gets locked and pushed out of character view.

Replication cases:

  1. Suppose we are at 00:25 in first person view. A teleport (/teleport ~ ~ ~) occurs at 00:50 and we navigate to 01:30.
  2. Suppose we are at 02:50 in first person view. A teleport (/teleport ~ ~ ~) occurs at 01:35 and we navigate to 00:20.

Switching to spectator mode will lock and push out the camera no matter what.

As long as the user is in first person view of an entity, they should remain in it, as long as that entity is present in the current timestamp. Special care should be taken, when switching between dimensions (nether, end, overworld).

Taking a step back, I'm not sure if a patch to fix each use case independently, would be sufficient. There could be more problems related to the time navigation/camera system. Probably, it should be approached at a more fundamental level.

commented

Taking a step back, I'm not sure if a patch to fix each use case independently, would be sufficient. There could be more problems related to the time navigation/camera system. Probably, it should be approached at a more fundamental level.

We already store the UUID of the spectated entity and re-spectate it when the current instance disappears. That code probably just broke with one of the MC updates.