Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

YL2 - Intermediary format tutorial (our commitment to compatibility)

odesodes Administrator
The 0.1.0 release has made changes to the necks of YL2 characters. Due to the nature of how surface points are stored in YL2, this change means that appendage groups, masks and parts may not load properly from previous saves.

We know the amount of time and effort you spend on your characters, and we are committed to doing our best to keep save files compatible between versions of YL2, or offer some work-around.

Hopefully, as the app matures, these types of changes will not happen as often or at all.

This is a guide showing you how you can restore appendage groups in 0.1.0 from saves in the previous version of YL2, and it also goes to show our commitment to compatibility.

How is surface point data stored in YL2?

During runtime, surface points are stored using a triangle index and a so called barycentric coordinate. However, it would not be safe to save and load surface points using this data, since triangle order of the mesh may change between versions. Therefore, we have opted for storing surface points using a world coordinate instead. Then, during load, this coordinate is translated to a surface point by looking at the closest surface point on the mesh to this coordinate.

While this technique is not sensitive to changes in triangle order, UVs or other data, it is sensitive to differences in shape. This means that since the neck has been changed and the head moved further back, the stored world coordinates for the surface points will not load properly for the neck/head.

How can this be rectified?

We are offering a second "intermediary" build this month. This intermediary build has content from the previous version, but offers new commands that can be used to translate from the old format to an "intermediary" format which the new build can read. Here's how it works.

1. Download and launch the intermediary build.
2. Open your character in the intermediary build.
3. For each appendage group with instances placed on neck or face:
    3.a) Right click the appendage group.
    3.b) Select “Export intermediary format”.

Then, in the "real" build:

1. Download and launch YL2 0.1.0 (the non-intermediary build).
2. Open your character file.
3. For each appendage group you created a intermediary file for:
    3.a) Right click the corresponding appendage group.
    3.b) Select “Import intermediary format”.

How does this "intermediary" format work?

Instead of storing data by using world coordinates, it's using UV coordinates.

Why not always use this way of storing data?

It may have worked for this month, but there's no guarantee that UVs won't change in the future. In the long run, world space coordinates are still safer (and also faster to load).

What about parts and masks?

These will have to be adjusted manually unfortunately.
Sign In or Register to comment.