Creating my own perfectly functional character (skeletal mesh) ?

Hello everyone, I’m venturing into UE4, as of now I’m having a blast ! However, like many of you, I have a ton of questions. I hope I can find some answers here.

(By the way, I am using Blender 2.8 and UE4 v4.25…)
I want to create my own character and not use a character on the marketplace. However, I still plan to use animations from either Mixamo or the Epic Store (or even make some myself).
I already made a character, rigged it in Mixamo, put it in UE4 and had success with that. Used animations from Mixamo as well and had that to work too.
After that, I came across many problems that made me question my character, and I don’t want to go further until I’m sure my character is well done and suitable for my needs, compatible with what UE4 has to offer.

I have many questions about how to approach my skeletal mesh, here are some of them :

1- Would it be recommended to make a skeletal mesh that is 100% compatible with the mannequin vs having my own custom rig ? I’m sure there are functions or stuff I don’t know of yet that I may want to use. What are the benefits/cons of using a mannequin type rig or a self made one ?

2- Regarding everything IK, is the setup done in UE4 or Blender ? I didn’t know it was a thing and I want to know If I have to redo everything in Blender.

3- Is it possible to make my own mesh in Blender and rig it myself so everything fits perfectly with the mannequin ? My character doesn’t have the same proportions, so I can’t make my character around a premade mannequin rig. Every character models on the Epic Store seem to have the same proportions…

4- Physics asset, do I need this ? I’m not sure what it’s for, I only know you can do ragdoll stuff with it. Do I need it for let’s say : floating hairs or clothes ?

5- I would love to make my own animations as well, and for that I’m guessing I would need some Rig Controls. Can I do this in UE4, Blender ? What is my best option ? And also, can it be done later ? Or do I have to do it before importing my skeletal mesh into UE4 ?

6- If I want to update my mesh or skeleton, can it be done ? (I assume it will conflict with animations and stuff…) How do you guys go about updating the skeletal mesh if you realize you made a mistake ?

Here is it for now. This may lead to further questions, but that’s all I can think of at the moment.
Thank you for reading, have a nice day o7 !

  1. it prevents you from having issues when you work. Retargeting, different heights, etc. Take the epic skeleton by exporting the mannequin. Keep the same names and bones. Move them to fit your character mesh.
    Or don’t move them at all. The bone placement doesn’t really matter at all. What matters is your weight paint. If you don’t move them you can’t use auto functions and will need to manually weight paint.

  2. in ue4, but the bones have to exist on the skeleton the same or similar to the base mannequin.

  3. shouldn’t be an issue. see point 1.
    The bones don’t have “proportions”, all they matter for is rotations and angles. Consider them a “pivot” point.
    obviously you can use their length to offset pivots at different distances - which helps a lot for good animations. But that doesn’t mean you can have a stubby fat character just use the epic skeleton as is.

  4. yes, if you plan to do ragdolls, hit reactions, anything at all involving physics. That does include hair and cloth.

  5. blender’s rigify or similar.

  6. yes to both. However you should take care not to invalidate animations by deleting bones.
    generally you don’t make mistakes, or you make additions at the end of the skeletal hierarchy so that the changes don’t affect anything already existing.

You may be overthinking this.
Use this
Http://mosthostla.com/gamedev/bonebreaker

Import a mannequin. Delete the base mesh, create your own mesh, weight paint it to the rig.
start with something that visually fits the skeleton. And keep it simple. The goal here is to experiment with the mesh, not to get correct anatomical joint bends. 1 vertex at the bend will probably be enough for the test.

after you do that once, repeat the same process with your custom stubby mesh.
This time take your time on it, after weight painting it, you can export the version to the engine and use retargeting.

You can also try this:
Make a copy, delete the short stubby skeleton, bring in and parent to the ue4 skeleton (make sure you don’t overwrite the weight paint when you parent) then export to the engine and see how it moves on some default animations.
the skeleton being exactly the same won’t require you to go through retargeting. However the motions should still work almost identically - give or take the stray translation position issue.
the reason this isn’t ideal - before you ask - is that the phat assets will all have trouble since your head won’t be where the bone is, for instance. So ragdolls in this fashion aren’t impossibly, but prone to real errors - ei: no one should actually do this if not for experimental purposes.

Thank you for your time and answers. I’d love to see other people’s take on these questions. Some of the things you mentioned I already tried and it doesn’t work, and your answers are formulated very oddly, I have to go back and forth with my post to understand what you are talking about. And also I would love some explanations, not just do this and do that. I don’t wanna be rude or anything.

Perhaps explain what “doesn’t work”, other than that you are totally overthinking things.
Just do, you learn a lot more from that than from twiddling over questions.

Also, since you want explanations, the first point of reference is the ue4 documentation. The second is probably the GC or gamegem talks and papers. It depends on what you are looking for an explanation to.

Aside from that, how about you convert your confused list of questions in an actual list so you can refer to the numbers (since you do have 10 question marks in 1 entry, you are right, who knows what question mark within that I was answering to…)

Yeah I think I may be overthinking things overall.

But I wanted to know something about exporting the mannequin skeleton. I tried exporting it in Blender and the armature is very messy, it’s not very acceptable to work with such a skeleton (the bones angles are all twisted and it looks like a porcupine). I thought about making my own skeleton from scratch, including weight painting, and just having the same exact hierarchy and bone names. Would this be the way to go ? How would you go about this ?

What I do is I use the exact same structure and my own free plugin to handle/rig/export.

The bone rotation within blender is wholly irrelevant. Once you make the rig you never actually see the bones.

For your information - since you did want explanations - the bone structure works off a single pivot point. The bone length is useless. The position of the tail is also useless.
the bones automatically connect (in unreal ofc) based on their root (the large ball of the default display) and their parenting/hierarchy.
Thats also why in unreal the root bone is often displayed as a stick from the bottom of the character to its pelvis.
Therefore, you can consider the dotted lines blender automatically makes as a coarse representation of the actual bone.

All that said (And like I probably already told you? At this point I don’t know myself ;P), you use the Metarig to do your weightpaint in automated mode, and just rename the vertex groups to match the epic skeleton which then powers your rig movement. But automated paint isn’t good enough, almost never anyway.

The best process would be for you to make a copy of the epic skeleton, adjust them individually in edit mode by using the cursor and moving the heads/tails at the correct spots. Perhaps even toggle the connected status.
To do this, you select a loop (lets say the wrist for instance), you shift s and select the cursor to selected option. You then tab out from edit mode and modify the position of the skeleton by editing the skeleton and shift s + selected to cursor.
after its aligned you auto weight paint (ans save this copy in case you need to edit).
you can then unparent the mesh, and parent it to the unmodified epic rig, which will work flawlessly.

​​​repeating myself, you’ll need to adjust the paint, probably heavily. Common error prone spots are elbows, shoulder/neck, hip/butt area.
Doing it properly, manually, can take days the first time around. Experience will make that take less.

In doing it, you need to remember that the amount of bones affecting a single vertex is of extreme importance. I would say never more than 2 as a general rule of thumb, but some areas (mentioned before) can actually have a single vertex shift in up to 6 different bones with auto paint.
the problem there is the engine has a hard limitation on the skinned mesh.

Also, in case you get into it its better to know this. The paint on any skeletal mesh is truncated. Influence values below .01 are ignored. You should strive to make .1 the minimum value for something that moves.

That was an amazing explanation.
I can relate to everything you said, since I experimented a lot with rigging and weight painting. I know what you mean by the 2 bones affecting 1 vertex, and also the 0.01 value thing, I’ve stumbled upon this problem at some point. I still have a lot of learning and experience to gain, but what you did there put me in the right direction and motivates me a lot. There are so many methods and workflows possible, sometimes as a newbie, you just don’t know if you’re losing your time. Now I understand a bit more how skeletons work, and how it’s handled in Blender and UE4.
Thanks again for this very nice explanation ! o7

I came across a problem.
I made a very basic box character to test this out. I imported the mannequin skeleton into blender, made a copy of it. Then I adjusted the bones of the copy so it fits my box character. I didnt had much weight painting correction to do since the auto weight was almost perfect. Everything moved smoothly with the copied armature.
Then I right clicked the mesh and selected > Parent > Clear Parent. Now my copied skeleton didnt move the mesh as expected. But, when I parented the mesh with the first unmodified mannequin skeleton, the mesh moved with the pivot points of the new parent skeleton, and didnt work as intended. I even tried every parenting options just for the heck of it.
The weight seemed alright for the mesh, the right parts moved for each bone I rotated in pose mode, but like I said, the pivot points are from the new skeleton. Lets say, when I move the elbow, it doesnt rotate from the center but from an exterior point (where the unmodified skeleton’s elbow is located).
What should I do about that ?

Having trouble following this. Can you show a few images or a video perhaps?

Note that in blender, all that “parenting” really does, is it allows you to use the armature object as the root.

The issue could be you moved the object and didn’t apply transforms.

Also, you may not need to parent things (cloth for instance) you can just set the peoper armature in the modifiers tab of the object, and the mesh is usually exported with the correct skeleton - out of habit i usually patent stuff though, so i probably never tested this without proper parenting to the armature. You can give it a try still.

BTW, in blender the bone pivot location drives the transforms. if that’s what you are referring to that’s happening. Applying transforms helps, but you aren’t supposed to animate or mess with the armature when you do this.
Import it in engine and test how animations apply to it. IF they don’t work as you expect, then go with retargeting, which effectively takes care of shifting the pivot point translations.

Ok I’ll show you exactly what I did in order.

This is me rotating the elbow with the skeleton copy I did, on which I moved the bones to fit my mesh :

Now this is me unparenting the mesh :

Then here is me parenting the mesh with the unmodified epic skeleton :

Now here’s what it looks like when I rotate the elbow what that epic skeleton (the big bone not moving is the hand IK bone, is just didnt bother with it yet) :

Seems about right. Apply all transforms to mesh and armature.

What you need to do now is to adapt the pose of your custom skeleton to match that of the epic Skeleton.
you need to go through, bone by bone, and copy the bone rotations from one rig to the other in Pose mode.

After the pose is set you need to apply the pose as the rest pose, and apply the armature modifier to the mesh.
You then add another armature modifier and hook it up to the rig again.

The final item you have is basically engine ready for retargeting.

Note that you arent shifting things to get the pivot to match. You are only changing rotations to the the exact same between the 2 skeletons.

Alright, I will try this out. By the way thanks for taking your time to answer my questions, very appreciated.

I wanted to know tho, if I would use my own made mesh with my own made skeleton, nothing related to epic skeleton, what would I lose ? Is it just that I couldn’t use animations from the marketplace (not considering retargeting) ?

Is there any feature or stuff I don’t know of that makes the epic skeleton useful, besides animations ?

IK bones are helful for a lot of things, but need to be manually set up and corrected (in animations too for performance reasons - never let the engine do what could already be done by you).

So, no. There’s really nothing else that would prevent you from using your custom skeleton except for the ease of using someone else’s animations (as bad as all the free stuff is you aren’t missing out on much).

Other things you may miss out on is some hard coded stuff when it isn’t of your making - and it isn’t properly made.
Some old marketplace stuff does have things like that where the code checks for bone names and sockets things.
Neddless to say differnet bone names would throw erros for those items.

My 2c, you are almost there. Just finish the rotations and you have a viable thing ready for retargeting.
Even if you don’t use it now, if you make any custom animations you can then target them onto the epic skeleton and apply them to a mannequin or any other character that’s compatible.

I’m not sure what I must do at this point, every bone of my copy already has the same rotations of the epic skeleton. I just changed their location (X-Y-Z axis transforms) to fit my copy’s mesh, and I didn’t touched their rotation. So, I’m not sure how to change them accurately so they match the epic skeleton pose.

Take the left elbow for example, its not located at the same XYZ, but the rotation of the bone is the same. So if I want it to match the epic skeleton’s elbow, I must eyeball it or just do some math for each angle of rotation ?

I’m a bit confused there !

(Btw, if you don’t mind, it would be very effective to have a discord call with me sharing my screen, if you have the time)

If all the rotations are the same you wont need anything else.
Chanches are your clavicle bones do not share the same rotation (going by the screenshots you shared).
the pose needs to be similar, not identical since translations can be different.

If the clavicles and every bone has the same rotations you can just set retargeting up in engine, and it’ll work.