Home Creators Posts Import Register Favorites Logout

Content

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

Files

Comments

PseudoSamurai

Exciting information! Keep up the great work <3

ScrambledMons

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.

Brownmane

“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.

Blacky

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.

Brownmane

Ah, I see. Unfortunate, but understandable; large system overhauls take precedence over complex but ultimately largely cosmetic features. Sounds like reworking the body mesh system will be another tall order too, rife with potential compatibility problems to boot, but it’ll also be an opportunity to tweak and refine the body meshes in general to give everyone something new to play with. Does mean I’ll have to sit on quite a few potential character and scenario ideas for a good while longer, but at the rate things are going, everything will probably be neatly set out and ready for me like a private banquet by the time I can catch an extended break from IRL bullshit, heh. Thanks for the clarifications and good luck to you all on this next leg of the development cycle, gentlemen.

FurryVNE Team

Hi there Brownmane! Long time no see! Yes, we'll keep making new builds with new content while working on the migration and new systems. So new body types and body parts for the character creator most likely. Herms is something we want to implement but it's unlikely to happen during this render pipeline transition phase, as all my attention will be spent on that. All the best. - odes