I’m looking for more general info about this. I have modeled an armor set, which I want to be split into a few parts (helm, chest, gloves, legs) so when I have multiple sets you can interchange them. From what I’ve seen in video games there’s a few ways to equip cosmetics. Mount and Blade and Dark Souls are good examples for what I’m trying to do, I’m just wondering what I need to do to the model before I can go about actually adding the armor I made to a character.
I want to “replace” parts of the model with my armor when equipped, so if you put on the helmet, it makes your head/hair go invisible. Same with the chest, legs, etc, but then I want the equipped armor to use the animations of the character it’s equipped on. I want to know how to decide which parts go invisible. Is that even possible?
Do I need to have an entire body skeleton attached to each part, or just the “relevant” bones? I assume I need the target character’s skeleton to match the one on the item exactly. I have Dynamic Combat System, if anyone is familiar with that, which already has an equipment system implemented, and the 5 default items of armor he has all have the whole skeleton in their skeletal mesh file. I can also clip the camera through the armor and see the character’s model underneath, so it doesn’t hide what’s under there I guess.
I’ve got notifications on so I should reply pretty quick, I’m just looking for anyone willing to answer my nooby questions. Thanks.
You can use a character BP to added components that can make up the total character package and turn on/off viability of each item added to the component list. You also have an option to turn on/off “use in game” as well so yes if you put on the helmet you can make your head/hair go invisible.
In practice you would only need the relevant bones, even though you might get a hierarchy warning, but the master component should contain all of the joints as required by the animations. As a best practice a master node should be used in the event graph to ensure all of the components animations sync up .
A master component is usually added as the “parent” component as either a place holder or can be replaced with an object that all other components that are added can be added that will “inherent” from the master component.
In your example if you add a rigged character as a body object it can then be animated or changed relative to world space as to scale or position. If you add another component, like a helmet, as a child it will inherent in local space relative to the parent as to what has been attached to it.
Think of it as dress up Barbie.
This more or less covers what I think you need to know.
So, Bruno, then it is possible to just hide portions of a model? Like hiding the head under the helmet? Is there a node like “set visibility” with a bone name input?
This doesn’t help OP at all, as he wants “to ‘replace’ parts of the model with armor when equipped” and “armor to use the animations of the character it’s equipped on”. Frankie’s approach (several skeletal meshes synced with a Master Pose Component) would be the way to go.
Thanks to all commenters, that video was very helpful in achieving my goal. The ideal thing, for anyone looking at this in the future please watch that video.
Essentially, from your modeling/rigging program of choice, you export the base mesh (your character, for example) and ANYTHING you want them to wear with the exact same skeleton, separately. Export character_mesh with character_skeleton, then export duster_mesh with character_skeleton too. You import your character_mesh to UE4 and leave the “Skeleton” tab empty so it uses the skeleton you exported it with (character_skeleton), then anything else needs to use the same skeleton upon import. Import Character, Character_Skeleton is made. Import Duster, use Character_Skeleton upon importing. Then when Duster is used as a component of Character, it can use the same Animation Blueprint.
I suggest saving/exporting a copy of your skeleton to import to any project you need to, so you can always have that exact skeleton for weight painting/etc.