[SOLVED] Skinweights drastically different than MAYA/UNITY

I’ve created a simple rig with a skinned mesh (skinned a lowpoly version and copied the weights to the highpoly mesh). I imported the model with a baked animation (just a pose).
When imported into Playcanvas the result is quite different than in Maya - even tested it in Unity, and I can’t replicate the result.

The skinweights react different - making the “highpoly” character look similar to the no longer existing lowpoly mesh:

I’ve tried adjusting the bone influence per vertex count in Unity to see if that was the issue. But the mesh looks different than the result yielded by Playcanvas.

Any ideas on what is causing this deformation?

Here’s what it’s supposed to look like.:

It has thickness and is way more smooth.

And in unity with 4 bone influence:

Unity with 1 bone influence. The mesh is still round and has thickness.

Hi @Sophie_Refshauge, this seems like a bug indeed.

Could you share a sample project that includes the FBX you are trying to render in PlayCanvas?

Hi Leonidas.

Thanks for the reply. Here’s a sample scene:
https://playcanvas.com/editor/scene/815606

Thanks @Sophie_Refshauge

I’ve downloaded the FBX file from your scene and imported it in Blender, it looks the same as in PlayCanvas (flat).

Not sure what is wrong here. Definitely it doesn’t render as you’d expect but it seems that the issue might not be with PlayCanvas but with the imported FBX file.

Could you try and download the original_skincopyfromlow_posed.fbx file from PlayCanvas and import it to Maya/Unity to check how it renders there?

I tried to download it back from playcanvas, and also double checked with the original export. This is how it looks in the different programs.
I’m just at a loss… I can’t wrap my head around what is actually happening.
Blender seems to react the same way as PlayCanvas.

Maybe @will or @vaios might have an opinion on how the editor reads/imports a boned FBX to the editor.

I’ve tried to go back to basics to figure out where everything goes wrong.
So far I have a suspicion that it’s due to the hierarchy structure:

I’m using Maya to conduct this experiment…

  • Test 1: Just a cube. No skinned mesh or bones.
  • Test 2: Added a simple rig and skinned the mesh to the bones. All the elements are in the root of the project.
  • Test 3: Added animation to the cube rig. All elements still in the root of the project.
  • Test 4: Decided to group the rig together under an empty element/put it in a group - result : mesh renders weird in PlayCanvas.

Maybe this is what was happening to the other mesh. I’ll try and check that out now.

Can anyone explain why this happens or explain if there are no goes in terms of structuring a rig intended for PlayCanvas?

Removing all groups seemed to do the trick… This is the mesh rendered in Playcanvas
I’m still wondering why though? ( @will )?

image

Takeaway: On export, make sure there are no groups in your rig (only geometry and joints). Playcanvas does not understand Maya groups.

1 Like