Skeletal mesh including animations with complicated symmetries in Blender for export to UE

Hello everybody!

I want to create a sophisticated skeletal mesh consisting of several similar/equal submeshes and animations. I use Blender 2.78c and UE 4.16 (i. e. the latest versions).

My object is based on a simple mesh with an armature and an animation. Now I just want to copy mesh and animation three times, so that the centers of the resulting four objects build a tetrahedron. To understand what I mean, see the following screenshots of my unfold animation:

But this is only a preview!!! I made it “by hand” in a very tedious way. For my actual mesh and animation (that do not exist yet), I want to avoid animating four times instead of once as this animation shall be much more complicated. So the above works great, but I am asking for a clever way to simplify the task and to copy skeleton and animation. (Copying/Linking the base mesh and/or surface material would be a plus :-))

If you want to test yourself using my [blender file][4]: Look at layer 2. There you have got only one of the four arms including an animation. Copying and rotating this arm is a little bit tricky. (Hint: Use rotation mode ZYX and angles 60° for Z and -109.47° for Y.) Find out how to get the result into one mesh and one armature without destroying or rebuilding the animation. Layer 1 contains the tediously hand-made result, as I mentioned above.

Please note: This seems like a pure Blender specific question, but it is not. There are several ways to do this comfortably just in Blender, but no solution can be exported via FBX to Unreal.


Hello, phisigma. I may be able to help. I’ll have a look at your blend. You’re running 4.16.1 yeah? Not 3.16?

So, if I can get the mesh, the armature it’s parented to, and the animation to import without error, that’s OK?

Can you see if [this version of the fbx][1] imports OK?
[Here’s the Blend.][2]
It imports fine for me. I get this error that bone transform is different from original, but seeing as the animation plays fine in UE4, and it looks virtually identical to how it is in Blender, I’d assume you can ignore the error.

The warning is there likely because of how UE4 deals with transforms on import. For more info check [here][3]
I’m pretty sure how UE4 deals with transforms is more like that of Maya rather than Blender.

This is what I did:

  1. unparented the mesh from the
  2. Applied loc/rot/scale on mesh, then cleared it.
  3. Applied loc/rot/scale on Armature,
    then cleared it.
  4. Reparented the mesh to the armature
  5. Unwrapped the mesh (you don’t have
    to do this)
  6. Deleted all the tracks from the
    armature in NLA track editor
  7. Selected the mesh then
    Shift-selected the armature
  8. in fbx export I left fbx version at 7.4 Binary, in the Geometries tab set Smoothing to Face, in Armatures tab unchecked Add Leaf Bones and left everything else at default.

Edit: I was wrong about leaving scene scale at 1. It’s still best to set it to .01. (Forgot I had it set to that by default…)

Also, just so you know, if you’re interested in reimporting single animations I made a [comprehensive tutorial][5] for it here. Afaik, it’s the best tutorial out there, because all the other info I’ve found on the subject doesn’t work right. My method works 100%. (It may seem like a lot of steps at first, but once you get used to it you can do it in about 10-20 seconds per animation)

Of course UE 4.16, not 3.16, sorry!

No, just exporting is not enough, I am asking for a better workflow. I edited the text and updated the blender attachment to describe my problem better.

Well the FBX is not ok, the error “bone transform is different from original” seems to be relevant: The animation is 100 times to small (just drag and drop both mesh and animation into level within UE to see).

But anyway: Exporting is not the main problem, I just edited my question to make it clearer. Nevertheless thanks for the tutorial, I’ll need it.

The given Blender file already gives a very good preview what I want to have. So no fractals, just four parts, each with a sophisticated but identical mesh and animation.

The animation could be done programmatically in realtime, but shall not, because this is not necessary and animating in Blender is easier.

The four parts belong together and behave like one big object, so no, they won’t dislocate from the center. Although, later, I indeed want an explosion animation for the whole object. But this shall not be part of the thread, if everything would get even more difficult then.

It seems that you suggest to make only one part in Blender, export it and put together all in UE by using four meshes, right? First of all, sounds good for the moment, I didn’t think about that, thanks! I just wonder how to create one animation, that encapsulated the four subanimations and plays them simultaneously.

I took some time, but … great!

To let the four parts use the same AnimBP is the solution. Thanks kusogaki. Next time you can omit the StarterContent :wink:

Hey phsigma.

You can fix the scale easily simply by changing the Uniform Scale of the skeletal mesh to like 10 when you import it:

Initially I thought you couldn’t import it at all, so that’s why I said you could ignore the error.

I’m not exactly sure what your end goal is, so I can’t suggest a workflow with confidence. So your question now is " Find out how to get the result into one mesh and one armature without destroying or rebuilding the animation."?

Are you doing fractals or something out of these tetrahedron parts?
You want to do all the animating programmatically in realtime maybe?

I’ve made meshes comprised of multiple parts in the past. Like a destructible zombie. In that case the way I did it was have one complete armature that each mesh referenced. There were about 14 mesh components that used the same armature. Each mesh was a separate component, yet they all referenced the same armature and animation. In order to do this you’d set one skeletal mesh component as the master, and the rest as children.

Do you want your separate parts to dislocate completely from the main one at any point? And still retain their skeleton? If so, I think each piece of the tetrahedron will need to have its own armature. Aside from parenting each one to a Scene Component (like an empty in Unity), and then rotate/scale/translate them as you wish, you cannot merge individual skeletons into 1 single cohesive armature. Afaik, the best you can do is parent each skeletal mesh to the same core.

You can rotate/scale/translate any the bones in BP or C++ if you want, whether all components share the same armature or not.

“The animation could be done programmatically in realtime, but shall not, because this is not necessary and animating in Blender is easier.”

I agree animating in Blender is easier.

I think I understand now what you want to do. You just want to Animate one piece of the 4 yeah? So, basically you will have lots of different animations for the tetrahedron as a set? Like one would be translate on local Z, rotate on local y, scale by 3 times. And another would be like scale to .5, rotate on local Z, translate on local Y all while parent (core) spins 720 degrees on X. Or something? That would be a bit tedious to do even in blender, because seeing as you can’t easily mirror the same method for each part you’d have to do each piece by hand.

If that’s the case I would suggest:
① creating an Actor in UE4 and then giving it a Scene Component

② assuming it will always remain in the center of the animating parts, like you have in Layer 1, just make the core a static or skeletal mesh w/ its own skeleton

③ parent the core to the scene object

④ create 1 single tetrahedron part (like in layer 2) consisting of 1 root bone and 1 bone weighted to all verts on the tetrahedron part

⑤ Import just 1 tetrahedron part with whatever animation(s) you want (you can import more later if you want; using that tutorial I referenced).

⑥ Then once it’s imported parent 4 skeletal meshes to the Scene Component. (and set each one of them to reference the same tetrahedron part.)

⑦ You will have to adjust their relative rotation and translation from the scene component (just like you already did in Blender) You probably only need to do this once though, considering your animations don’t go too crazy.

Finally, they can all use the same exact Anim BP. When they enter a specific state they will each play the same animation, but since their relative rotation is different it should appear as 1 single group animation.

Let me see if I can make a sample. If I understand what you’re after correctly, I believe you already did the hardest bit of it; finding out the right rotation and offset from the core. So long as each part has the same method/animation relative to the core, I’m certain you can accomplish what you’re after just by animating one part.

Here’s a link to a project containing an Actor, called tetra, which consists of 4 identical skeletal meshes (the plate you had in layer 2). Basically, all you have to do is animate one piece in blender. All of the pieces will use the same anim BP, and since their relative rotation from the parent scene component is different it looks the same as the full-pieced animation you made in Blender.

I made the core of it a static mesh. You can apply any material or texture to any of the pieces if you want. All the pieces are identical so you can use the same UV map for each of them - or if you wanted you could use a different UV layer for each one.

I couldn’t get the pieces to line up perfectly, though, but you know all the proper rotations for each piece…

Glad to hear that solution worked for you, phisigma.

Sorry about the starter content. It was completely unnecessary (for both of us.) It was double-edged sword.