XaiJu
yiffalicious
yiffalicious

patreon


Major improvements incoming!

The next release of FurryVNE will bring some major improvements to character loading and body editing while also reducing memory footprint and size on disk (exports). See the images for comparisons:

(Editing is about 3-4 times faster compared to before. Here's the same thing but in video form instead.)

(Video file here.)

(Newer export takes less space.)

Special thanks to Blacky for providing these comparison videos and data.

How?

When assembling the main character mesh we are essentially combining several separate meshes (body, head, hand, feet, sheath) into a single one. All these meshes have several hundreds of blend shapes that need to be combined when added to the newly combined mesh. Previously, we have been using Unity APIs for doing this (both retrieving and setting blend shapes). As it turns out, these APIs are not very performant. Just adding all these blend shapes accounted for more than 60% of the processing time when loading a character, and about 90% of the time when editing a character (for example swapping head model to something else). Perhaps this was acceptable before, as we did not have that many shape keys (blend shapes) that needed to be combined and added as we do now. But as the number of blend shapes have kept on increasing, these times have also increased to the point where the editor feels very slow and frustrating to use.

Now, we've made several changes to make this a much better experience for the user:

Custom blend shape system & reduced Unity API usage

We now only use the Unity APIs for retrieving mesh data and blend shapes, but we don't use it to add any blend shapes to unity mesh object itself as that is very slow. Instead, we use our own blend shape system for applying blend shapes at runtime.

Deferred blend shape processing

Instead of retrieving and combining all these blend shapes and adding them to the new mesh up front during the mesh combining phase, we simply just only combine the mesh data (vertices, triangles etc, no blend shapes).

Then, when we are in need of using a blend shape (for example when applying a body type), this blend shape is created on the fly by querying each individual mesh (body, head, hand, feet) and then combined and cached and added to our own blend shape system. This means only the shapes that are actually used will be retrieved and then cached for quick usage.

If this shape needs to be retrieved in the future, it is already cached in our system so we can circumvent using the Unity APIs.

This also happens for exports, meaning instead of having to put all the potentially used shapes into the export file (for creation of mesh upon load), we can simply omit all that data and create it on the fly when requested.

This makes exports smaller.

Final words

These changes will provide a significant improvement for FVNE fans and will go live in the next build, which we internally are calling "1.0.0". This is the final build before we start working on migrating our project to a different version of Unity and a more modern rendering pipeline which will open up doors for all sorts of new features, including (but not limited to) custom levels and VR.

Stay tuned for more news! In addition to these improvements, we have several new exciting features coming for "1.0.0"!

All the best.

- odes

Major improvements incoming! Major improvements incoming!

Comments

AFAIK Herm characters are currently not possible with the base body mesh we currently use. In order to make it work we would have to rework how body mesh is assembled on both mesh and code basis and since odes will be occupied with migrating the project to a different render pipeline in order to make VR and other major features happen, hermaphrodite characters have to wait. In terms of content, dogson and I will continue our regular monthly cycles. That means, new or updated heads, body types, templates, OC characters, stock mesh and such things.

Blacky

“1.0.0” eh? Congrats on what you feel to be the more-or-less feature-complete milestone! Life’s been keeping me busy again, and I’m currently in the middle of an extremely disorganized hardware reshuffle on account of my old machine being on its last legs, so I’ll again have to comment from the outside looking in with even less details visible to me than usual. Will there be some minor content updates in the meantime again, since engine version migration and a new render pipeline sounds like a pretty big hiatus on anything expansive and intricate? And what exactly falls in the purview of such updates? Can’t check for myself right now, but aren’t we still missing hermaphrodite genital configuration options (i.e. both cock and vag, preferably also with balls and no-balls options, which would be nice for male configurations as well to facilitate reptiles, cetaceans and the like), for example? Seems like something of that sort would fall within feasibility despite being a bit more complex than just cosmetics meshes, but I don’t know the extent to which the penetration mechanics are intertwined with logic that might be tied to the engine and therefore run the risk of compatibility issues, so could go either way.

Brownmane

My brain *Faster loading is cool and all, BUT I COULD'VE BEEN DRAGGING AND DROPPING THIS WHOLE TIME?!* But really that load time difference is insane.

ScrambledMons

VR games like this are absolutely phenomenal (and the reason i bought VR)

Wherethelambsaus


More Creators