Search in
Sort by:

Question Status:

Search help

  • Simple searches use one or more words. Separate the words with spaces (cat dog) to search cat,dog or both. Separate the words with plus signs (cat +dog) to search for items that may contain cat but must contain dog.
  • You can further refine your search on the search results page, where you can search by keywords, author, topic. These can be combined with each other. Examples
    • cat dog --matches anything with cat,dog or both
    • cat +dog --searches for cat +dog where dog is a mandatory term
    • cat -dog -- searches for cat excluding any result containing dog
    • [cats] —will restrict your search to results with topic named "cats"
    • [cats] [dogs] —will restrict your search to results with both topics, "cats", and "dogs"

SetMasterPoseComponent: slave with extra bones (Matt.Williams)

The problem that I'm having is the same as these two threads:

https://answers.unrealengine.com/questions/394025/set-master-pose-deforms-mesh.html https://answers.unrealengine.com/questions/323765/weird-set-master-pose-behaviour.html

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:

alt text

alt text

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 :)

Product Version: UE 4.12
more ▼

asked Jul 27 '16 at 03:05 PM in Bug Reports

avatar image

86 5 8 12

avatar image Matt.Williams Jul 29 '16 at 07:25 PM

Hey Arjun,

I saw your response in the other post.

You didn't get lost. I'm working on this right now, but I may not be finished investigating until we get back in the office on Monday. Thank you for your patience.

-Matt W.

avatar image Shempii Jul 29 '16 at 09:06 PM

Thank you! So sorry for spamming you :/

avatar image Flesh Forge May 01 '18 at 09:15 PM
avatar image 欧米哥 Dec 20 '16 at 01:39 PM

Since a lot of games work that way, I think this could be a new feature in the future - - there will always be someone encounter this issue

avatar image Matt.Williams Dec 27 '16 at 07:29 PM


We are currently encouraging people to use Copy Pose (as mentioned below) instead of SetMasterPoseComponent. In this case it's also recommended to use a separate skeletal mesh as an attachment.

-Matt W.

(comments are locked)
10|2000 characters needed characters left

2 answers: sort voted first

Hey Arjun,

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.

-Matt W.

more ▼

answered Aug 03 '16 at 09:41 PM

avatar image Shempii Aug 03 '16 at 09:50 PM

When you say "use it as an attachment" you mean basically just attach the physics-simulating parts as a separate object? For the loincloth, basically just making the diaper part the slave with no extra bones then manually attach (in a blueprint or runtime) the physics-simulating flap?

I suspected that this might be the case. It's a little unfortunate but oh well. I want to do this method instead of APEX though because my game has a very simple/non-photo-realistic art style so the cosmetic items need not be visually accurate. And I'm assuming that the overhead on APEX would be greater.

I guess it's not too bad to separate the physics-simulating parts of the mesh from the rest of the mesh...just another step in the art pipeline ¯_(ツ)_/¯

Thanks for taking a look at my issue Matt! I very much appreciate it.

avatar image Matt.Williams Aug 04 '16 at 08:19 PM

We also have Poseable meshes, not sure why I forgot to mention it. Create a poseable mesh component, assign the loin cloth skel mesh, then use the "Copy Pose from Skeletal Component" Node on tick. It's not really usable for anything with physics, but could be useful if you have any accessories/clothing that don't use physics.

avatar image Shempii Aug 04 '16 at 08:24 PM

Ah thanks. Seems like poseable meshes are a different solution to the same goal of having interchangeable cosmetic items. I'm pretty happy with SetMasterPoseComponent aside from this bug that we've been discussing.

I think I'll probably run with SetMasterPoseComponent for now, treating any physics-simulating parts as separate objects that need to be attached manually at some point. I'm guessing since it's not a majorly blocking bug that this will be a lower priority fix so I better adopt a different workflow anyway :)

Thanks so much Matt! I'll mark this as Solved, hopefully it can help anybody who has this same issue in the future.

(comments are locked)
10|2000 characters needed characters left

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.

more ▼

answered May 01 '18 at 09:05 PM

avatar image

Flesh Forge
6 1 2

(comments are locked)
10|2000 characters needed characters left
Your answer
toggle preview:

Up to 5 attachments (including images) can be used with a maximum of 5.2 MB each and 5.2 MB total.

Follow this question

Once you sign in you will be able to subscribe for any updates here

Answers to this question