Groom binding moves my hair up by 2 units

Hello, I’ve made a groom hair asset in maya and imported it into Unreal5, then created a binding and added the groom asset to a metahuman blueprint that I have, along with the binding. Everything looks fine, but as soon as I apply the binding to the groom component in the blueprint, the hair groom jumps up by around 2 units in the z axis, so it’s floating slightly above the head.

I created the groom in maya using the metahuman head geometry that I’m using in my BP, and it looks fine and in the correct position until I assign the groom binding (when it moves up around 2 units). I don’t know what to do about this, as there aren’t really any import settings for the groom, or settings on the groom binding asset for adjusting the transform position.

I had a similar issue in UE4, but I simply moved the groom component’s transform position down 2 units in the blueprint details panel, and that worked. If I try that in UE5, it doesn’t work - when I try to edit the component transform, the groom’s position doesn’t seem to change.

I’m really stuck and have an approaching deadline, any ideas?

3 Likes

Any suggestions at all? I found out that I can bind my hair groom to the body skeletal mesh rather than the head skeletal mesh, and this actually seems to attach the hair at the expected distance from the head (so it’s no longer too high). The problem now is that there’s a bone somewhere in the body skeletal mesh that distorts the hair groom whenever that bone moves (i.e. when the head turns).

1 Like

I am having exactly same issue.

You need the reference mesh and the target mesh when binding. When you create a bind, scroll down, there is another slot for the original mesh.
I have created a tutorial series (promo) Metahuman Creator Customization Tutorial (Promo video) - YouTube

2 Likes

RobertRamsay
I am following that exact tutorial. But I can’t get the binding to work…
I tried setting the original mesh as the source and the new one as the target, but the hair stayed in place.
Does anyone have an idea what could be the problem? I am using 5.0.3.

I’ve found someone said “delet all the capsule body except head and regenerate binding asset”.I havn’t tried this idea,and hope that can help you.

@samuelthomson have you ever found a solution to this?

I have created a custom groom in Maya with 100% the same metahuman model that I use in UE5.

However, in UE5, the groom is set 2 Units too high.

Simple solution for the following scenario:

  • Metahuman made with Metahuman Creator
  • Exported to Maya directly using Quixel Bridge
  • Groom made in Maya is up 2 units on Z-Axis when imported into Unreal Engine
  • Binding Asset is also up 2 units on Z-Axis

Reason:
Sending Metahuman mesh to Maya with Bridge will result in a 2 unit offset on the Z-Axis on the face-mesh

Solution:
Set Z-Axis transform of the face-mesh to 0 in Maya and re-export.
Groom and binding will align with the Metahuman mesh in Unreal Engine.

4 Likes

Still valid with UE 5.4 (using maya 2023), thank you @sv3n :pray:

In my case, the exported FACE_Mesh was already in the position X-Axis “0”

An alternative approach would be to lower the group of splines and guides before exporting the Alembic file by -2 along the Y-Axis. This might create a couple of extra steps but certainly solves the issue.

My approach is straightforward. I select the Metahuman and then the Face. Next, I use Make Static Mesh to choose the Static Mesh with the head and export it to Maya. I apply ResetTransform and Freeze Transform, followed by creating the hair. This method ensures that everything aligns properly without any misalignments.

1 Like

I agree, this should ensure proper alignments.

I have since switched to Blender for Groom Creation, as I think the hair system introduced with Blender 3.6 is superior to xgen, at least when it comes to usability.

In case anyone wants to look into it, there is a great groom exporter tool build that should be used when exporting grooms from Blender to Unreal:

To add to this, the send2Unreal tool currently does not work well for grooms.

make sure the groom asset in the blueprint is parented under head, it should work when you set up binding and compile

I’m having this problem exporting form blender to unreal. The Groom is floating above the actor in unreal. I’ve applied transforms, re-parenting etc. but still getting floating groom. Anyone come across this from Blender?

I can align the groom in the blueprint but when add binding it pops back to original floating position