mc-world-export icon indicating copy to clipboard operation
mc-world-export copied to clipboard

Respawning players don't show up in the .replay file.

Open cassidyincandela opened this issue 1 year ago • 0 comments

Environment

Minecraft version 1.20.1

Mod version 0.9.0

Blender version 3.6.0

Problem

Seem's like players who died at some point, never returns in the .replay file. I encountered this in a replay from 1.8.9 that is opened and exported to a .replay in 1.20.1. So I thought this is just an error because it's a replay from a significantly older version of Minecraft. But I dug deeper with a single-player world in 1.20.1 where I get to my death in-game. The issue is still there. So, this must be something from the exporter or importer.

My theory is that this is the exporter's side, because the imported keyframes just ends right there at the time of death, so no more information was read afterwards.

Here's a preview of the replay, to show how the death and respawn should look like:

https://github.com/Igrium/mc-world-export/assets/118965414/18c19211-d529-467f-a632-ae1a294b6e12

And here's how the imported replay in Blender play out. It may look like it's freezing, but the moment my character's arms stop moving is the moment where I pressed the Respawn button in-game and I should've came back out under that tree as seen in the video above.

https://github.com/Igrium/mc-world-export/assets/118965414/f2819b81-6a6b-40d7-b152-cf42a1b40ba2

Workaround

The workaround is pretty tricky. It is to export an additional .replay starting from a couple milliseconds after the character respawned. A starting time keyframe is added when the respawned player is fully ready in the scene. This doesn't work if the time keyframe was added at the time before the player respawned, because the previous entity (the "dead body") is still there. When importing, you'll need to only import the entities, single the respawned character out. Disable the Disable in Viewports keyframe action from the timeline (you'll need to select the body mesh while it's visible, go to Timeline window, open the sidebar, expand Summary, and move all the keyframes to start where the character is supposed to respawn in the scene before. In some cases, the "dead body" needs to be hidden, so add a keyframe to disable the object in the viewport and renders.

https://github.com/Igrium/mc-world-export/assets/118965414/f578c26f-a12f-40e0-b3ae-a04162d584cc

Files

Example replay recording file; 2024_02_02_21_42_18_1.zip

Example .replay file: single player death.zip

cassidyincandela avatar Feb 02 '24 15:02 cassidyincandela