Skin Weights breaking on GLB Export from Maya

Hi there running to an issue where the skin weights on my animated model are breaking inexplictily on the tail of my mesh.

The babylon exporter in maya is displaying no errors on export, and when I’ve imported the model into blender and exported from there, it exports without issue. Checking the GLB that Babylon exports its clear the skin weights are being broken in the export process - its more or less ignoring the skinning on the tail of the model.

Unfortunately we use Maya as our work pipeline so we need it to work for Maya.

Any help would be appreciated.


Summary

Export started
DAG: full
DAG: relevant
Exporting nodes
Geo_grp
Mesh_grp
skinWhite_L_corneaScleraOutside_GEPL_eye_GRPeyes_GRP
tailFin_GRPmecha_GRPmetalGrey_C_metalParts_GEP
tailFin_GRPmecha_GRPleatherBrown_C_cableHolder_GEP
leatherBrown_C_fin_GEPtailFin_GRPmecha_GRP
L_eye_GRPeyes_GRPskinBlack_L_lens_GEPL_eyeOffset_GRP
L_eye_GRPeyes_GRPL_eyeOffset_GRPskinBrown_L_iris_GEP
eyes_GRPskinWhite_R_corneaScleraOutside_GEPR_eye_GRP
eyes_GRPR_eye_GRPskinBlack_R_lens_GEPR_eyeOffset_GRP
eyes_GRPR_eye_GRPR_eyeOffset_GRPskinBrown_R_iris_GEP
skinPink_C_tongue_GEPmouth_GRP
mouth_GRPboneWhite_C_lowerTeeth_GEPteeth_GRP
mouth_GRPteeth_GRPboneWhite_C_upperTeeth_GEP
skinBlack_LB_claws_GEPclaws_GRP
claws_GRPskinBlack_LF_claws_GEP
claws_GRPskinBlack_RB_claws_GEP
claws_GRPskinBlack_RF_claws_GEP
skinBlack_L_earSpikes0001_GEPL_earSpikes_GRPearSpikes_GRPspikes_GRP
L_earSpikes_GRPearSpikes_GRPspikes_GRPskinBlack_L_earSpikes0002_GEP
L_earSpikes_GRPearSpikes_GRPspikes_GRPskinBlack_L_earSpikes0003_GEP
earSpikes_GRPspikes_GRPskinBlack_R_earSpikes0001_GEPR_earSpikes_GRP
earSpikes_GRPspikes_GRPR_earSpikes_GRPskinBlack_R_earSpikes0002_GEP
earSpikes_GRPspikes_GRPR_earSpikes_GRPskinBlack_R_earSpikes0003_GEP
Toothless_skinBlack_C_body_5
Total meshes: 25
No camera defined
Total lights: 0
Exporting materials
Exporting skeletons
Export animation groups
GLTFExporter | Exportation started
GLTFExporter | Exporting nodes
GLTFExporter | Exporting meshes
GLTFExporter | Exporting skins, lights and cameras
GLTFExporter | Exporting materials
GLTFExporter.Material | Export material named: Eye_Lense_Mat
GLTFExporter.Material | Export material named: Leather_Mat
GLTFExporter.Material | create gltfMaterial
GLTFExporter.Texture | Export texture named: tail_brown_mat_Normal_OpenGL.png
GLTFExporter.Texture | create sampler
GLTFExporter.Texture | create image
GLTFExporter.Texture | create texture
GLTFExporter.Texture | KHR_texture_transform is not enabled, so the texture may look incorrect at runtime!
GLTFExporter.Material | create gltfPbrMetallicRoughness
GLTFExporter.Texture | Export texture named: tail_brown_mat_Base_color.png
GLTFExporter.Texture | create sampler
GLTFExporter.Texture | create image
GLTFExporter.Texture | create texture
GLTFExporter.Texture | KHR_texture_transform is not enabled, so the texture may look incorrect at runtime!
GLTFExporter.Texture | Export texture named: file550.jpg
GLTFExporter.Texture | create sampler
GLTFExporter.Texture | create image
GLTFExporter.Texture | create texture
GLTFExporter.Texture | KHR_texture_transform is not enabled, so the texture may look incorrect at runtime!
GLTFExporter.Material | Export material named: Tail_Red_Mat
GLTFExporter.Material | create gltfMaterial
GLTFExporter.Texture | Export texture named: tail_red_mat_Normal_OpenGL.png
GLTFExporter.Texture | create sampler
GLTFExporter.Texture | create image
GLTFExporter.Texture | create texture
GLTFExporter.Texture | KHR_texture_transform is not enabled, so the texture may look incorrect at runtime!
GLTFExporter.Material | create gltfPbrMetallicRoughness
GLTFExporter.Texture | Export texture named: tail_red_mat_Base_color.png
GLTFExporter.Texture | create sampler
GLTFExporter.Texture | create image
GLTFExporter.Texture | create texture
GLTFExporter.Texture | KHR_texture_transform is not enabled, so the texture may look incorrect at runtime!
GLTFExporter.Texture | Export texture named: file52file51.jpg
GLTFExporter.Texture | create sampler
GLTFExporter.Texture | create image
GLTFExporter.Texture | create texture
GLTFExporter.Texture | KHR_texture_transform is not enabled, so the texture may look incorrect at runtime!
GLTFExporter.Material | Export material named: Pupil_mat
GLTFExporter.Material | Export material named: Iris_Mat
GLTFExporter.Material | create gltfMaterial
GLTFExporter.Texture | Export texture named: Iris_Normal_OpenGL.png
GLTFExporter.Texture | create sampler
GLTFExporter.Texture | create image
GLTFExporter.Texture | create texture
GLTFExporter.Texture | KHR_texture_transform is not enabled, so the texture may look incorrect at runtime!
GLTFExporter.Material | create gltfPbrMetallicRoughness
GLTFExporter.Texture | Export texture named: Iris_Base_color.png
GLTFExporter.Texture | create sampler
GLTFExporter.Texture | create image
GLTFExporter.Texture | create texture
GLTFExporter.Texture | KHR_texture_transform is not enabled, so the texture may look incorrect at runtime!
GLTFExporter.Texture | Export texture named: file590.jpg
GLTFExporter.Texture | create sampler
GLTFExporter.Texture | create image
GLTFExporter.Texture | create texture
GLTFExporter.Texture | KHR_texture_transform is not enabled, so the texture may look incorrect at runtime!
GLTFExporter.Material | Export material named: Toothless_Tongue_Mat
GLTFExporter.Material | Export material named: lambert2
GLTFExporter.Material | Export material named: Nails_Mat
GLTFExporter.Material | create gltfMaterial
GLTFExporter.Texture | Export texture named: nails_mat_Normal.png
GLTFExporter.Texture | create sampler
GLTFExporter.Texture | create image
GLTFExporter.Texture | create texture
GLTFExporter.Texture | KHR_texture_transform is not enabled, so the texture may look incorrect at runtime!
GLTFExporter.Material | create gltfPbrMetallicRoughness
GLTFExporter.Texture | Export texture named: nails_mat_Base_color.png
GLTFExporter.Texture | create sampler
GLTFExporter.Texture | create image
GLTFExporter.Texture | create texture
GLTFExporter.Texture | KHR_texture_transform is not enabled, so the texture may look incorrect at runtime!
GLTFExporter.Texture | Export texture named: file650.jpg
GLTFExporter.Texture | create sampler
GLTFExporter.Texture | create image
GLTFExporter.Texture | create texture
GLTFExporter.Texture | KHR_texture_transform is not enabled, so the texture may look incorrect at runtime!
GLTFExporter.Material | Export material named: Head_Spikes
GLTFExporter.Material | Export material named: L_Wing_Mat
GLTFExporter.Material | create gltfMaterial
GLTFExporter.Texture | Export texture named: L_wing_mat_Normal_OpenGL.png
GLTFExporter.Texture | create sampler
GLTFExporter.Texture | create image
GLTFExporter.Texture | create texture
GLTFExporter.Texture | KHR_texture_transform is not enabled, so the texture may look incorrect at runtime!
GLTFExporter.Texture | Export texture named: file28file27file26.jpg
GLTFExporter.Texture | create sampler
GLTFExporter.Texture | create image
GLTFExporter.Texture | create texture
GLTFExporter.Texture | KHR_texture_transform is not enabled, so the texture may look incorrect at runtime!
GLTFExporter.Material | create gltfPbrMetallicRoughness
GLTFExporter.Texture | Export texture named: L_wing_mat_Base_color.png
GLTFExporter.Texture | create sampler
GLTFExporter.Texture | create image
GLTFExporter.Texture | create texture
GLTFExporter.Texture | KHR_texture_transform is not enabled, so the texture may look incorrect at runtime!
GLTFExporter.Material | Export material named: R_Wing_Mat
GLTFExporter.Material | create gltfMaterial
GLTFExporter.Texture | Export texture named: R_wing_mat_Normal_OpenGL.png
GLTFExporter.Texture | create sampler
GLTFExporter.Texture | create image
GLTFExporter.Texture | create texture
GLTFExporter.Texture | KHR_texture_transform is not enabled, so the texture may look incorrect at runtime!
GLTFExporter.Texture | Export texture named: file33file32file31.jpg
GLTFExporter.Texture | create sampler
GLTFExporter.Texture | create image
GLTFExporter.Texture | create texture
GLTFExporter.Texture | KHR_texture_transform is not enabled, so the texture may look incorrect at runtime!
GLTFExporter.Material | create gltfPbrMetallicRoughness
GLTFExporter.Texture | Export texture named: R_wing_mat_Base_color.png
GLTFExporter.Texture | create sampler
GLTFExporter.Texture | create image
GLTFExporter.Texture | create texture
GLTFExporter.Texture | KHR_texture_transform is not enabled, so the texture may look incorrect at runtime!
GLTFExporter.Material | Export material named: Body_Mat
GLTFExporter.Material | create gltfMaterial
GLTFExporter.Texture | Export texture named: body_mat_Normal_OpenGL.png
GLTFExporter.Texture | create sampler
GLTFExporter.Texture | create image
GLTFExporter.Texture | create texture
GLTFExporter.Texture | KHR_texture_transform is not enabled, so the texture may look incorrect at runtime!
GLTFExporter.Texture | Export texture named: file38file37file36.jpg
GLTFExporter.Texture | create sampler
GLTFExporter.Texture | create image
GLTFExporter.Texture | create texture
GLTFExporter.Texture | KHR_texture_transform is not enabled, so the texture may look incorrect at runtime!
GLTFExporter.Material | create gltfPbrMetallicRoughness
GLTFExporter.Texture | Export texture named: body_mat_Base_color.png
GLTFExporter.Texture | create sampler
GLTFExporter.Texture | create image
GLTFExporter.Texture | create texture
GLTFExporter.Texture | KHR_texture_transform is not enabled, so the texture may look incorrect at runtime!
GLTFExporter.Material | Export material named: Tail_Mat
GLTFExporter.Material | create gltfMaterial
GLTFExporter.Texture | Export texture named: tail_mat_Normal_OpenGL.png
GLTFExporter.Texture | create sampler
GLTFExporter.Texture | create image
GLTFExporter.Texture | create texture
GLTFExporter.Texture | KHR_texture_transform is not enabled, so the texture may look incorrect at runtime!
GLTFExporter.Texture | Export texture named: file43file42file41.jpg
GLTFExporter.Texture | create sampler
GLTFExporter.Texture | create image
GLTFExporter.Texture | create texture
GLTFExporter.Texture | KHR_texture_transform is not enabled, so the texture may look incorrect at runtime!
GLTFExporter.Material | create gltfPbrMetallicRoughness
GLTFExporter.Texture | Export texture named: tail_mat_Base_color.png
GLTFExporter.Texture | create sampler
GLTFExporter.Texture | create image
GLTFExporter.Texture | create texture
GLTFExporter.Texture | KHR_texture_transform is not enabled, so the texture may look incorrect at runtime!
GLTFExporter.Material | Export material named: Head_Mat
GLTFExporter.Material | create gltfMaterial
GLTFExporter.Texture | Export texture named: head_mat_Normal_OpenGL.png
GLTFExporter.Texture | create sampler
GLTFExporter.Texture | create image
GLTFExporter.Texture | create texture
GLTFExporter.Texture | KHR_texture_transform is not enabled, so the texture may look incorrect at runtime!
GLTFExporter.Texture | Export texture named: file48file47file46.jpg
GLTFExporter.Texture | create sampler
GLTFExporter.Texture | create image
GLTFExporter.Texture | create texture
GLTFExporter.Texture | KHR_texture_transform is not enabled, so the texture may look incorrect at runtime!
GLTFExporter.Material | create gltfPbrMetallicRoughness
GLTFExporter.Texture | Export texture named: head_mat_Base_color.png
GLTFExporter.Texture | create sampler
GLTFExporter.Texture | create image
GLTFExporter.Texture | create texture
GLTFExporter.Texture | KHR_texture_transform is not enabled, so the texture may look incorrect at runtime!
GLTFExporter | Nb materials exported: 14
GLTFExporter | Exporting Animations
GLTFExporter | Saving to output file
Export done in 180.57s

pinging @srzerbetto , who will know who might be able to debug this :slight_smile:

1 Like

Thanks for reporting that @Happles !

I’m taking a look at the code. Would it be possible for you guys to provide any form of repro sample? Any extra information on where the problem might be would be very useful.

1 Like

How many bones you have influencing the tail vertexes? I see we have some hard limit on that in the exporter, I think this might be the problem. We are assuming no more than 8 bones influencing a single vertex, maybe this assumption is not true for your model.

Hi thank you both for the quick reply! I’ve recorded a video of the export from maya and checking the result in gltfviewer.

If you needed to look further I can PM you the Maya and GLB file.

As for joints in the tail there are about 16 main joint chain from pelvis to tip of the tail - with about 50 bones total making up joint chains for the wings on the sides of the tail, but overall the longest chain is 16 for the main tail.

I did run a script to limit the max influence to 8 per vert as well on the model and I’ve also tried removing all influences from the left and right tail wing joints just to see, but the issue still persists.

1 Like

Can you guy try this version of the plugin? I’ve increased the number of allowed joint influences to 16. If that does not work I will probably need you to PM me a model that reproes the issue.

2022.zip (681.4 KB)

Hey unfortunately my plugin doesn’t seem to work after updating the files, Maya gives me this error when trying to load the plugin:

// Error: file: C:/Program Files/Autodesk/Maya2022/scripts/others/pluginWin.mel line 316: Invoking ExecuteInDefaultAppDomain() failed. //
// Error: file: C:/Program Files/Autodesk/Maya2022/scripts/others/pluginWin.mel line 316: (Maya2Babylon.nll) //
// Error: file: C:/Program Files/Autodesk/Maya2022/scripts/others/pluginWin.mel line 316: Invoking ExecuteInDefaultAppDomain() failed. //
// Error: file: C:/Program Files/Autodesk/Maya2022/scripts/others/pluginWin.mel line 316: (Maya2Babylon.nll) //

You are using Maya 2022, right?

Yes that’s correct Maya 2022.