• Unity
  • Images and their meshes are deformed when imported to Unity

Hi, my team and I run into a problem where some images from our .json file turned out in different resolution and their mesh are deformed from the original when we imported it to Unity. The image attachments below should explain it.

I also want to mention that this project is a dress-up game. There are three different objects: bra cups, harnesses, and corsets. Each objects have 4-5 different types. We animated each objects with the model body attached in Spine Editor before separating them in their own skeletons and skins.

The animation is solely done by mesh deformation, with no bones used.
Mesh is not shared between skins, so, Bra Cup 1, 2, etc. have their individual mesh their shapes are way too different to share one mesh. This also applies to the other objects.

Then we exported each skeletons to their own .json file before importing it to Unity. Everything works fine save for the bra cups that looks deformed, and the last bra cup on the right even has another bra cup bleeding into it.

Can anyone help me with this one, please?
Thanks in advance!

Related Discussions
...
  • Изменено
10 дней спустя
ivomitink написал

Hi, my team and I run into a problem where some images from our .json file turned out in different resolution and their mesh are deformed from the original when we imported it to Unity.

Could you please describe what exactly you mean by "turned out in different resolution "? Are you repacking the skins? How do you switch between these attachments, is each of the shown bra cup items a separate mesh attachment, or do you re-use a single mesh attachment and replace the texture region of it via code (e.g. via attachment.Region = otherRegion or GetRemappedClone() or similar methods)?

Please check if you have Power of Two enabled in Unity at your atlas texture and your texture is not exported as a power-of-two texture as described here under Runtime Repacking - Important Note:
spine-unity Runtime Documentation: Combining Skins

ivomitink написал

> 4. The source texture is not a power-of-two texture but Unity enlarges it to the closest power: Either a) export from Spine with Pack Settings Power of two enabled, or b) make sure the atlas Texture import settings in Unity has Non-Power of Two set to None.

Also, the four screenshots at the bottom look like you are using incorrect texture import settings, as described here:
spine-unity Runtime Documentation: Advanced Premultiplied vs Straight Alpha Import
spine-unity Runtime Documentation: Visual
Or did you perhaps edit the exported atlas texture in an image editor like Photoshop?

ivomitink написал

The animation is solely done by mesh deformation, with no bones used.

Please note that it is in general recommended to use mesh deformation only where bones can't be used, as it's far more costly performance wise. In your case it also seems as if you could save animation work by sharing the same bones.

ivomitink написал

Mesh is not shared between skins, so, Bra Cup 1, 2, etc. have their individual mesh their shapes are way too different to share one mesh.

Please note that in your case a single larger mesh attachment could be setup to fit all different bra cups (leaving some transparent unused whitespace at slim items). You could place vertices not only at the outer perimeter but distributed across the area, where you need deformation to happen. This could save you a lot of time animating each individual item's vertices.