I have downloaded a set of 5 free character models from fab, all of which use the same epic skeleton, but each of which have a slightly varied static mesh. As a result, if I wanted to add an item (a hat for example), using a singular skeletal mesh socket it will only realistically align correctly for one of the 5 models. I could add 5 sockets, 1 for each model but this seems redundant and impractical in the long run if I add a lot of potential items (since all 5 sockets are going to show on the singular skeleton it will get really cluttered).
One potential route I found online would be to use static mesh sockets and then use set relative transform following attachment to allow me to use one socket with variation per model. This seems fine (maybe I am not applying it in the best way), but it also seems like a bit of a hassle to find the correct offsets for each thing compared to just moving it around on the model as I would with a regular skeletal mesh socket.
Is there a good way to do this or does the issue stem more from the way the models are rigged themselves (which I also wouldn’t know how to fix)?
I’ve got a similar process for weapons. Weapons would have different handle locations.
What I do is make a struct with a vector3 offset for location and rotation. And make a dataTable out of it. My skeleton’s hand socket locations are roughly the same. If your skeleton’s socket location are very different from each other. You may need more than 1 set of offset, add more to the struct.
Line up the offsets and fill the dataTable up once every new asset is added.
You can add sockets directly to the mesh and then use math to find any offsets. Ie ( get socket location - get actor location) Or switch to modelling mode and just move the centre point to where you want it.
It sounds to me that this is pretty similar to the path I am considering now, just using a better storage method (i.e. a data table). So you just have a singular socket called “weapon socket” or something and then just offset everything else with reference to a handle socket (which varies by weapon) to that?
But wouldn’t this require me to have several sockets for each item (i.e. a new one for each slightly different model)? I’m just worried its going to start to get really cluttered if there are more than a few potential items.
Each item may have a few sockets, barrel, handle etc but each one is named the same so you just use GetSocketLocation and everything works. No offsets, no math