Humanoid Deforms Textures on Mesh

NOTE
I initially thought this was related to the current Humanoid + Mesh deformation bug however after asking on that thread, staff noted this is not related - thus I am making a new bug report…

When applying a Texture to a mesh that shares a Model with a Humanoid, the Texture gets deformed. This is especially noticeable if the Texture object is semi-transparent (which is required for my use case).

Example:
Applying Humanoid to Model with Texture present:
https://i.gyazo.com/fdd3426a577d2a557a89ea0b6c693891.mp4
Changing Transparency of Texture with Humanoid in Model.
https://i.gyazo.com/c50ae715c9f2de0c4616ebd9863cec54.mp4

In the examples you can see when I add the Humanoid object, the texture (+mesh) becomes deformed - causing the transparency to be applied inconsistently.

This only happens when there is a Humanoid present in the model with a Mesh + Texture. This does not happen with Decal objects - however Texture objects would be ideal to use, as you can resize the textures without uploading multiple images.

Texture Repro.rbxm (50.7 KB)

8 Likes

Thanks, I’ll have a look at the repro.

7 Likes

This is because you are using texture instances rather than setting the TextureId property of the MeshPart. Your textures are being wrapped to the deformed mesh as you are not actually properly UV mapping a texture onto it.

Once the engineering team roll out a fix for the mesh deformation issue, this should be fixed.
But I could be wrong.

1 Like

This isn’t happening with Textures only, it happens with Decals too!
Take a look in this beautiful 420x420 face found on the Library:
image
Here is the link if you want to see it by yourself
Pretty neat decal, looks very nice!

but this happens if you use it with a Mesh+Humanoid

image

also…
The Decal/Texture Renders perfectly if you DON’T use a mesh and DO use Humanoid

Decal+Humanoid

image

It also Renders Correctly if you DO use a mesh and DON’T use Humanoid (This was expected)

Decal+Mesh

image

To be honest i think the problem is with the Head Mesh because it still renders correctly if you DO use Humanoids and DO use a Mesh too, except the Mesh has the MeshType set to anything but Head or Sphere.

lol my english is bad

3 Likes

I want to inform that the bug has not been fixed. also in response to @AdministratorGnar, setting the textureID doesnt change a thing, as shown in this gif where i reproduced the problem.
2019-10-05_21-41-44

6 Likes

Exuse me for the necrobump but is this ever going to be fixed? it is still affecting my game!

Hello, we are currently experiencing the same issue. Suddenly lower resolution textures on any character mesh that is being updated. Deleting the humanoid part fixes the issue. Is there a solution for this?

2 Likes

This issue is still occurring and is a pretty big issue if users want to use custom characters in their games.

It has been over a year since roblox has stated anything on this issue.

Still an issue, reproduced in real-time. Textures get horribly pixelated, but as soon as you drag that same mesh out of the humanoid’s group it looks crisp again. This affected us heavily with our previous game as well when trying to do custom character heads with textures to save memory, but now we’re going to likely need to add even more verts to the game to model out faces which will slow creation of character art a ton + impact performance.

3 Likes

This happens because we currently pack multiple textures into slots of a single texture atlas when a Humanoid is present for improved performance. Currently the slots have fixed sizes around 264x284. You can avoid using the atlas by removing the Humanoid or by naming the part something other than “Head” or any other standard R15 part name, since the atlas only picks up the standard R15 body parts.

We’re working on a project to make the atlas much smarter so it uses texture space more efficiently, and doesn’t downscale textures in cases that it doesn’t need to. In the future, we can look at scaling the size of the atlas based on available device memory which should help even more.

9 Likes

apologies for possible necro bump. I bumped into this bug and was searching for a solution so figured I would post it for any others. The humanoid still deforms your basic MeshPart TextureID. To fix this, insert a Surface Appearance instance instead parented to your Mesh Part. Insert your Texture Id from your mesh part into the Color Map on the surface appearance to fix any distorting on your character!

Lol I know this post over 3 years old at this point, but just in case you check this, I was sort of able to bypass this limit by inserting a SurfaceAppearance object into each mesh and then putting the mesh’s texture into the Color ID slot. Not the best, the colors seem more saturated and darker, but it works for what I’m doing. Just thought I should share. :v:

Sorry for the necro bump, but i’m wondering if the bug i’m having is similar to this, or in any way related.

Turns out it was the shadows screwing with the chainmail texture. Ig ima have to cope with no chainmail texture. I have noticed, it only happens on compatibility and voxel.

Sorry for the bump, but wow this really annoys me.

Without Humanoid:


With a humanoid:

Hi all!
As @Homeomorph mentioned, this is due to the way we pack textures into a texture atlas for Humanoid. In addition to the workarounds they suggested, using SurfaceAppearances, as other developers suggested, can avoid this issue. This is because SurfaceApperances are not packed into a texture atlas.

This is an inherent issue due to our engine architecture. I will close this bug report since we are not treating this as a bug, but we will be tracking this pain point as a feature request that we’ll consider in our future work.