Igrium's Replay Exporter

Igrium's Replay Exporter

Mod

An addon to the Replay Mod that allows it to export into Blender and other 3D software.

Client TechnologyUtility

4,827 downloads
158 followers
Created2 years ago
Updateda month ago

Follow Save
Host your Minecraft server on BisectHosting - get 25% off your first month with code MODRINTH.

Beta 0.7.0

Changelog

The Anti-Jank Update (Part 1)

This update is quite ambitious, so I had to pull a Caves and Cliffs and split it into two. 0.7.0 lays the technical groundwork for 0.8.0, which will be focused on the UI and making a better user experience.

In this update, the world exporter has been almost completely re-written. If you've been following the GitHub repo, this is what's been happening in the async_world_capture branch.

The new exporter is written in a way such that it can be executed off of the main thread, with all block updates during the export being properly accounted for. This works using a proxy, "snapshot" object, which uses a client-side block update detector to create a thread-safe view of the world at a given time, without any overhead upon creation. This means that, along with some internal optimizations, the initial world exporter can now operate concurrently with the frame exporter to improve export times and make the UI more responsive.

Additionally, the export pipeline has been re-written as to not piggyback off of the Replay Mod's render pipeline. A custom pipeline that's built for the unique needs of the replay exporter rather than a video exporter significantly improves code cleanliness and paves the way for better UI clarity (some of which is already implemented.)

I also updated the mod to 1.19.3 because some people were asking for that.

Changes

  • Updated to 1.19.3

    • Removed Joml as a jar-in-jar dependency as that's now provided by Minecraft.

    • Updated model adapters to use Joml types where relevant.

  • Overhauled world exporter

    • Wrote ChunkView abstract class which represents a block view that declares which chunks are loaded.

    • All Vcap capture classes now use this ChunkView abstraction, allowing them to be used on things other than World instances.

    • Created WorldSnapshot class, a thread-safe view of a world at a specific point in time.

    • World exporter works asynchronously, exporting chunks in parallel to drastically improve export time.

  • Re-wrote replay export pipeline

    • Created new ReplayExporter, an adaption of VideoRenderer designed specifically for exporting replays.

    • Removed all the janky workarounds that were in use to get VideoRenderer to export replays.

    • Implemented backend for better UI feedback about export "phases." This replaces the prints to console that were in use before.

    • Fixed an issue where entities wouldn't export properly if the export region started at the very beginning of the replay.

    • Fixed an issue where player skins wouldn't export if the playhead was in the middle of the export region.

    • Moved replay finalization and serialization off of the main thread.

  • Small UI update

    • New export progress screen displays world export progress as well as replay export progress.

    • Added warning about the fluid exporter's memory issues to export screen.

  • Misc.

    • Made the Blender addon camera export start at frame zero, regardless of the starting frame.

Files

mc-world-export-0.7.0.jar(545.65 KiB) Primary Download
mc-world-export-0.7.0-sources.jar(267.45 KiB) Download

Project members

Igrium

Owner


Technical information

License
GPL-3.0-or-later
Client side
required
Server side
unsupported
Project ID