THIS POST IS INCORRECT!
I have updated my previous post with new information that fixed this issue and removes the need for these hacks.
There are some other things I should mention.
I can’t get it to work with just the pelvis as the master pose component. Perhaps this is some kind of animation optimization where if there are bones that do not influence the mesh they are not updated. So, I can only get it to work with the full body mesh I used to generate the physics asset as the master pose component. Obviously you don’t want to see the full body mesh, just the individual swappable pieces, so you set it to invisible and turn off cast hidden dynamic shadows.
This however will cause animations and whatnot to stop (since the engine thinks you can’t see it, so why update it?) so you need to turn on ‘AlwaysTickPoseAndRefreshBones’, which looks like this in C++ (although there is a tickbox for it somewhere in blueprint too).
MasterPoseComponent->MeshComponentUpdateFlag = EMeshComponentUpdateFlag::AlwaysTickPoseAndRefreshBones;
That should be all the important bits to get anyone who wants to do this up and working. However having to use the full body mesh as the master pose component and setting it to invisible strikes me as a hack, and I figure there must be a way to just make the master pose component be just the pelvis or head. If anyone has done this and can share please do, there is sometimes a lack of discussions on the more ‘advanced’ topics of UE4.
Furthermore, having to use ‘AlwaysTickPoseAndRefreshBones’ almost certainly causes it to update animation even when the mesh is off-screen. We don’t want that, so, this is not the end all be all solution here and somewhere there is a better way.