SetMasterPoseComponent: slave with extra bones (Matt.Williams)
The problem that I'm having is the same as these two threads:
I am trying to use SetMasterPoseComponent to set up a modular cosmetic items system. Using this system, players will be able to customize the clothing that their character is wearing. Everything works fine on regular clothing.
The problem that I am experiencing arises when I try to use SetMasterPoseComponent on a piece of clothing that has MORE bones than the master. I still set the Skeleton asset to match that of the character on import. I can still preview the animations that are targeted to that skeleton and they look fine. However, as soon as SetMasterPoseComponent is called, every vert that is influenced by the extra bones gets stretched out to the root joint of the skeleton.
I'm posting a new thread because the solution for the two threads I linked above was to remove the extra bones. This solution will not work for me, however. The example piece of clothing that I am having this issue on is a simple loincloth. The loincloth covers the pelvis region of the character, and doesn't require any complicated skinning. I want the flap that is hanging from the front of the loincloth to be able to simulate physics. This is just an example of what I want the extra bones for. The best solution for me would be to find a way to make Unreal accept slaves that have extra joints. I want to be able to have any number of hybrid clothing assets that can both be bound to the animation AND simulating physics in certain areas (scarf, tassels, etc.). The best way to do that for my art pipeline would be having the freedom to append joints onto the existing character skeleton and have those joints simulate the physics. These two photos are of the master and slave joint hierarchies, respectively:
As you can see, the master has a pretty standard skeletal hierarchy. To make it, I simply used the default settings of the Epic A.R.T. The slave shares the same skeleton PLUS a chain of extra joints starting at the "anchor" joint. That chain of joints is what is affected by this SetMasterPoseComponent issue.
Based on others who have had this same issue, I tried weighting spine_01, thigh_l, and thigh_r to the mesh of the loincloth to see if that would un-interrupt the hierarchy. According to Epic staff, the gap in the hierarchy is what is causing this problem. Unfortunately, adding the extra joint influences did not solve the problem.
I have also tried assigning minuscule weights to every joint in the hierarchy but I was unable to get a conclusive result from that because the weights were too small for Persona to register as being "weighted" to the mesh.
I also tried removing all of the unweighted joints from the slave's skeletal hierarchy before importing to unreal, but this had the same result as my previous attempts.
I recognize that I could have a separate skeletal mesh that I attach to the base of the loincloth. This may be what I have to do in the end, but I would really prefer to find a way to make SetMasterPoseComponent work out of the box on this.
Any help would be super appreciated :)
asked Jul 27 '16 at 03:05 PM in Bug Reports
Thanks for your patience on this one. I've tested your issue and entered UE-34182.
For this specific asset that you've sent, however, only one of the skinned bones for the loin cloth is part of the master mesh. In this case, I would instead remove the other bones from the loin cloth, set the root (pelvis) to the origin, then use it as an attachment instead.
answered Aug 03 '16 at 09:41 PM
Is this still being worked on as a bug, because I also would like to implement something like this, with skeletal meshes driven by MPC that contain extended child bones beyond those in the master skeleton. Thanks.
answered May 01 '18 at 09:05 PM
Follow this question
Once you sign in you will be able to subscribe for any updates here