Marketplace and Avatar Clothing, Customization


#1

Now, I’ve been working on renewed PBR version of the FenFen Avatar which I have been planning on releasing on the Marketplace for free for the use of the general Hifi Populance.

However, here comes an issue, I’d like to for the end user to have the ability to switch clothing / provide default attachments on the avatar when it is put into the marketplace.

Forexample, right now the WIP PBR version of FenFen, my old avatar that I been teasing on releasing to the market since last year, avatar looks like this

For clothing the avatar would have to be split up into components, such as, arms, hips, torso so that it could encompass multiple clothing configuration which may or may not fit. And not everyone has the modeling skills, nor the experience to do so, so it is upto the avatar creation to decide how customizable the avatar is. Especially this early on when Hifi needs to attract users, and now that we are in beta, and steam release is looming.

Head gear is fun and all, but full avatars and their inworld customization is what would differentiate HiFi from every other current released HMD based Virtual Reality social platform out there right now, other than the “open” nature. The list of these competators is just growing, but end users care about polish of content, customization of their avatars and environments more than just “Openness”.

Forexample, this is my own personal coat that you guys have seen me use around the place, which unfortunatelly I cant release to the marketplace (as its based on [clothing from an anime character] (http://vignette1.wikia.nocookie.net/p__/images/7/75/Nyanta.png/revision/latest?cb=20160519110254&path-prefix=protagonist) even if it is my own creation)


For this avatar, the coat clips a bit, would need me to hide the torso, Like I do with my current personal avatar

I could technically also use it on the other avatars, if I did some mods to the clothing and the other avatar.

But the issue rises that If Id create a few sets of clothing for it (such as sets of shirts, shorts, pants, coat, etc), there is no way to connect the avatar to its clothing (that fit) on the marketplace, nor have the ability for someone to go sans clothing (if they so wish, I am not the one to judge as an avatar creator), nor be able to say “these are the default clothing”, and “this is the avatar as naked as the avatar creator allows it to be” without extensive mods.

Similarly, If Id be using the Photo-Real Male Avatar (Mathew), or the Photo-Real Female Avatar, End Users have no other way to customize, or create clothing for those avatars without exporting them and doing adjustments like what many of the veterans such as @Piper.Peppercorn has done. There is no way everyone will know how, nor have the time. SL’s Avatar economy is a testament to this, and every content creator vet from SL knows this.

Social VR platforms, avatars are a really, really important piece of it, even if you might not see it when you are in the HMD. After all it is a “representation of you” as a user. So, I really do suggest that we need improved avatar distribution methods onto the marketplace, and additional features that support this on it, along with avatar customization.

Hiding via vertex groups would be the ideal method, but I am not aside on splitting the avatar into parts, even if it will create material issues. But this would require for clothing to have definitions on “what groups” should be hidden when the clothing is worn.

CC: @Caitlyn, as you are the director of content :slight_smile:


#2

Not meaning to pick on Minithal here, just using this as a jumping off point for something that kinda gripes me a little about the current state of mesh avs and mesh clothes in HiFi.

The fact that we still have here on HiFi the situation SL has with mesh avs, – that we have to selectively alpha the base avatar in order to make certain clothes work right with it – kind of shows how primitive and hackish the current state of the avs in virtual words in general is. Ideally we need to get to the point someday where the clothes automatically conform themselves around the base av regardless of what type it is, so that you could take a jacket and apply it to a human male avatar, to an anthromoprhic dog avatar which as a very different arm and chest shape, or apply it to a non-anthro hippo avatar, and it would just work, stretching itself to heck and gone to fit itself around the front legs and the upper front body of the hippo, but still not have any pokethru.

I’m actually wondering what all it would take to make such a universal-fitting clothes-morphing system (something involving a nested set of humanoid-shaped Russian-bottles sort of approach, perhaps?)… and how long it might be before something like that was available for HiFi. Months? Years?

It would be nontrivial to develop such a system, though. I get the impression someone at LL had suggested such a thing, way back when mesh was still in the very early stages there, and some bean-counter in the company nixxed it as too expensive to develop, but apparently LL also thought end-user interest in mesh avs and mesh clothes would be minuscule and everyone would be purely interested only in non-avatar-related mesh objects, such as buildings, cars, furniture, etc. Why spend a few million dollars on crafting a hugely sophisticated mesh clothes system that would contour ALL mesh leotards around ANY av with four limbs (or maybe better yet, one that supported mesh clothing-layers where you’d have pants covering underpants covering dynamic genitals) when only 5% of the SL population would bother using it? And then they were completely taken by surprise when there was gigantic interest in mesh clothes on mesh avs.


#3

Ultimately yes, mesh wrapping would be the way to go but technically is is a near impossibile to do it cheap and fast per frame on many different geometries (not just shapes) without clip through. It is not easy nor cheap to do, and if such exists its proprietary.

it’s god damned bloody hard to do in real time or match every vertice position with same weight paint, polygon flow. It’s only doable if everyone uses the same avatar mesh as a baseline.

If not you’d have to have a different system entirely., it would have to be a real time system that adjusts polygon count on the fly. And that is an expensive operation.

Then you run to the issue of LOD and floating point issues when the distance between the avatar skin and clothing becomes so relatively so small to the camera distance that you get depth fighting (flickering textures). among mismatch of polygon detail when it nets with the avatar flow. Eventually you’d still have to not render parts of the avatar just so that you can achieve ‘no clipping’. It’s inevitable and even in 3d suites such as Blender or Maya where it is possible, you have to hide parts of the avatar to avoid clipping, again at distance.

Its not very realistic goal to achieve within months or even a year, however, unless there is someone who really knows how to do the implementation. And there is only a small handful which work at proprietary systems.

A solution, as I mentioned, would be the Vertex Group Hiding method, where the avatar has -everything- in place This should be done by the avatar creators discretion but specific vertexes are not rendered depending on the vertex groups a clothing says it covers. If wrapping gets implemented on top of this, then good as it would with custom shapes on an avatar


#4

Just a compromise idea between realtime and nothing.
What if mesh clothing would adjust only once you wesr it. So you only do calculations at that moment. After that hou wear it like the old style clothing and how secondlife is doing it.

Would that be a direction to think into ?

Still asking myself with clothing fit functions if your not going to rip the texture and uv map apart with ugly looking result ?


#5

Ay, as I said, its still going to result into clipping: Every avatar vertices move differently due to weight paint differences, and every single modeller does their polygon flow differently. Again it only works if everyone is using the same base avatar mesh, regardless of shape as long as the polygon flow is not changed.

Ive done few times with mesh avatars and clothing them. It simply doesn’t work “as is” when generated onto an avatar that doesnt match the polygon flow of the clothing. You have to do alot of manual work to fix the stuff that is generated, and usually after is when you get to do all the fun stuff.

Forexample, this is automatic “shrinkwrapping” of clothes onto an avatar in Blender.

After applying the modifier, it is a Very manual process afterwards to fix it for -that- specific avatar flow mesh and avatar based on that body mesh.

The clothing would have to have excessive amount of polygons to cover for that, and its not a cheap operation to have 4x the polygon amount for clothing and would be unoptimised for HMD VR, especially with 8+ avatars in a scene.
OR the clothing would float quite a bit aways from the skin.

Both of these still dont cover the issues with floating points (with zbuffers that are used mitigate z fighting) and LOD levels too!

You could only do it without issue, if you use the base mesh as the avatar, otherwise there still will be clipping, thus the end result still requires you to hide the mesh underneath.

We still go full circle: We still need to hide stuff underneath. I suggest that we start with hiding with vertices groups and then bring in wrapping later. Its more attainable goal to have, especially since you have to do it in the first place.

Waiting for just wrapping just to make content is not realistic, and it honestly is not solve it fully, but it would help once we get customization blendshapes for avatars.


#6

Is that not why texture baking was done in SL? It basically removes the lower layers, and yes, it is a slow initial process but yields good results. The modern equivalent of this might be to have interface examine the layering whenever things are attached to an avatar and then form a layers hiding process. Of course that creates a temporary asset, and that issue is far from resolved too.


#7

Pretty much yes, but not exactly.

As much as I understood second life avatar system, it was based on having 5 layers being based on the same mesh. 4 of the layers were on the first layer with the avatar mesh and texture, and the last was on the outer layer (skin, tatoo, under clothes, top clothes) the skirt and coat

The server blended and then delivered single texture on the first 5 layers and a skirt. which resulted in an avatar with skintight clothing, and a geometry that was adjusted accordingly to make it seem as if the avatar had clothing…


#8

Yeah, I’m with @Richardus.Raymaker on this: do the mesh wrapping adjustment only when something changes (when you add or drop a garment, say), then sorta “bake” the current form of the av-with-clothes into the full av package and all that then gets handled by the system then is the movement of the av around. I had suggested this very idea some while back in a detailed reply in one of the other threads. I had also suggested a system where the mesh clothes are slaved not to the base avatar itself (and its rigging) but to a sort of invisible shell around the base avatar that one has then rigged to adjust to the movement of the avatar, you would then, when you make the base av or import an av to HiFi, create this shell contoured to the shape and form of your new base av, which would then ship with it, and the there’d be other layered shells around that one, Russian Bottle style representing things like underpants layer, pants layer, etc, that are then slaved to the shape offset of that base shell-around-the-base-av thingy, instead of to the base av directly.


#9

Indeed, that is so, which is why I am only using that example as a legacy analogy. If we want to go full out on clothing the end implementation will be cloth physics (I am definitely looking forward to seeing that in a next generation virtual world). Cloth physics can be computationally expensive, so much of making it viable is about reducing the scope of the flexible vertex counts. It is then the issue that makes inner layer things poke through that has to be dealt with, and it cannot be local ordering of layers. It has to be more systematic than that.