Swap mesh on a rigged model

Hey, had anyone here managed to equip armor on to a rigged/animated character model. I’m wondering what the best practice might be in babylon. I’ve got a model situated, with separate head, torso, legs, feet, and hand meshes. I’m currently trying to replace the torso mesh with an armored model, and I’m failing miserably here. Send help :sob:

Hopefully the playground is able to explain what I’m attempting here better than I.

https://www.babylonjs-playground.com/#AHQEIB#208

I’m unsure if I’m handling this the wrong way overall, or just making some silly mistake with my current attempts, as usual any/all help is appreciated. Love you guys :heart:

This doc may help: Use Bones and Skeletons - Babylon.js Documentation

Note that the link to your PG does not work.

1 Like

https://www.babylonjs-playground.com/#AHQEIB#208 sorry about that,

It seems your armor has no animation linked to it, so it does not animate.

Simply displaying the armor instead of the torso is not enough to animate it.

You could apply the same skeleton to the armor than the one from the torso but the animation would be broken because the torso and the armor are not rigged in the same way:

https://www.babylonjs-playground.com/#AHQEIB#210

1 Like

@Evgeni_Popov
Another step in the right direction, thank you. If I rig the armor peice up in blender with the same skeleton - I can then use this method to animate it?

Is there a way to the cut the character down to one skeleton from there? I feel like each armor piece having its own skeleton would cause some performance issues

Yes, just apply the same skeleton to the armor than the one from the torso as I did in the PG.

There is no performance issue here because each piece of the armor has the same skeleton applied, so a single skeleton is animated.

Look in the inspector, you will see you only have two skeletons even if you have more than two mesh parts: one skeleton is applied to each part of the hero and the other skeleton is the one for the armor.

1 Like

Alright, I’ve figured out how to pull this off. Huge thank you @Evgeni_Popov.
updating this post incase anyone ends up here trying to figure out the same thing.
I’ve brought my mesh into blender, parented the mesh to the existing skeleton for the character:
(select the mesh & skeleton > CTRL P > Armature Deform with automatic weights.

You can bypass the multiple skeleton situation previously mentioned by disposing the new one after importing the armor model.

here’s the PG: where we finally got things working (hacky, but functional.)
https://www.babylonjs-playground.com/#AHQEIB#215

2 Likes