Armature and Mesh Deformation

good questions :thinking:

Would make life so much easier and use less parts to load in.
:thinking:

3 Likes

indeed … now that you say it lower part count is just one other advantage …
tough ; now that i think about it i found a new problem );

Currently ppl actually have to separate their models so or so into different parts due to the tri count limit of 5k … without a higher tri limit per mesh the vertex deformation update would be quite less usefull ?

1 Like

Exceeding the 5k triangle limit is actually pretty hard to do unless intentional. If you’re going to be making a figure that you want to animate, anything that you’re going to add onto it is going to be separate anyway (I.E. Equipment, clothing, etc…). A base model, or the “body” would in most cases never be exceed the 5k triangle limit if you have no issues creating an optimized model.

People don’t usually separate their meshes due to triangle count. Personally I do it because I need specific parts of a mesh to have separate colors and textures, this isn’t that time consuming, nor is it that big of a problem, and using UV mapping takes far longer and a lot more effort to do, since you’re going to have to create/find your own textures and apply them correctly. This is especially a problem if you’re going to be making updates to a game quite frequently with tons of assets using meshes and textures.

1 Like

No not really, only non-fully-optimized models have to be split up, you can easily make a good looking character with under 5k tris.

1 Like

The reason I kept it to just characters was because ROBLOX would probably not go for things like flags and trampolines out of fear that they’d lose their appeal to younger kids with the blocky aesthetic.

1 Like

For some modelers this is true; however things like modifiers in Blender (I don’t know what they’re called in other programs) boost the triangle count up like crazy. It’s pretty easy to exceed 5000 if you’re making something rather large. Especially things with curves. If I were to make a food truck in Blender, then port it to roblox, it would almost certainly be over 5000 triangles.

1 Like

Basically, the way things like this would work is based on the position of the Bone. The bone would carry a base collision model for the mesh (similar to how my gif looks, only that would be collisions instead of visible mesh.) Attachments would attach to the bones, and treat them like parts.

I’m not sure how other game engines do it, but it might be worth taking a look to see how they do it.

Another concern would be asking how to remove a limb if needed. Basically, to remove a limb, you remove the bones and any vertex group associated with the bone would be removed as well.

3 Likes

They would be regular MeshParts, only VertexGroups would be available to map bones onto. Animations are already moderated, so I can’t say I know what you mean by this…?

3 Likes

As for anyone saying performance is an issue, it is ultimately up to the developer to make sure their game doesn’t lag. Not only this, but mesh LOD models are coming in the future, and this would greatly optimize games. Especially for mobile platforms. Perhaps Roblox could have distant models have no mesh deformation while nearby models have it? (@BuildIntoGames @glurbman @EchoReaper ) Not only this, but developers aren’t required to use this feature. To be honest, it’s a pretty advanced feature and not all developers are going to know how to use it; however I think it should be an option so that the ones that do know how to use it are given the resources to do it.

6 Likes

I’m pretty sure if we had mesh deformation, the clothes would have to be a part of the same mesh.

1 Like

usually yes

@bigcrazycarboy
You’re not going to be using modifiers that increase your poly count that often… These modifiers are usually used for sculpting high detailed objects which in most cases is used for rendering or baking textures, and using a modifier to create a base model that is going to be rigged and animated is definitely not going to work. It’s not practical to use a modifier for uses such as this because it would be way too hard to manipulate vertices with a modifier active.
Also, yes, there may be a few models that exceed the 5k poly count limit, which is totally understandable with the issue of separating unnecessarily. but like I stated before, if you have no trouble keeping an optimized model going, it’s not going to be that big of an issue. But even for a truck, surely there is a few areas that will be colored differently to the rest of the vehicle, which would need separating regardless (if you’re not going to be making your own textures). Which doesn’t always mean you’ve reduced the poly count per separated mesh, which again, would be understandable.

@vsnry @glurbman
Actually no, think about MMORPG games. If the clothes would happen to be one mesh with the base model (body) then you’re extremely limited with character customization. In rare cases you’ll just UV map a shirt/armor texture onto the body and go from there, but if you’re not, then changing your avatars equipment would mean having to completely swap your entire characters body with a new set just to change your look. This could be quite troubling for the actual rig, you’d have to basically reset all your characters function as a rig every time you’d switch equipment. It’s way more practical to just swap meshes that overlay the main model and would require a lot less script optimization.
The only time this would be reasonable is if you’re not going to have character customization and your avatar will just have a static look, and like mentioned before, UV mapping clothes/equipment.

1 Like

I honestly don’t know how it works, but in most if not all games the character isn’t actually one mesh, it’s multiple meshes for the arms, legs, torso etc. and when customisation is done one of those meshes is swapped and the whole body is reconnected together in the engine.

1 Like

Yeah, it ran with 2000 units, with their highly optimized and fine tuned meshes that barely have any vertices. You see the shields on those units? Those probably have like, a dozen triangles total. While Roblox on the other hand is full of horribly optimized unnecessarily high poly count meshes. Old games like that probably use some other optimization tricks like sharing the same point in the animation cycle for multiple units so that they don’t have to solve the mesh deformation for every single unit.

They aren’t necessarily very comparable.

5 Likes

Regardless, vertex skinning via vertex shader in the rendering pipeline is a super cheap process. You don’t even need something fancy like dual quaternion skinning in roblox, linear skinning would suffice.

7 Likes