great work man, i cant do it like that im sculpting so i need it to be a mesh. that i can zwrap. but atleast there are some progress here the body works
How did you even export it to Blender?
I canāt find a Blender Plugin that is available for download, like it is for Maya.
Thx for any help here, appreciate it!
you are spot on Peter. I am assuming, there is a bug, because the vertex points, the mesh itself, canāt be changed when you are going to use the ZWrapper.
But another thing, I canāt find even that solution.
How the heck can you export the mesh from UE5.6 to Blender?
I can find the DNA Export, but for that, you do need the Maya Plugin and Maya.
I canāt find anywhere a Blender Plugin to load the exported Metahuman.
I guess I am missing something substantial here.
Thx for any ideas on this, keep rocking, weāll get this all done!
I solved the problem by taking the good head out. But there are some pitfalls. To use this mesh in UE5 you need to export it from the program as FBX, you canāt connect the head to the body, in this case the vertex indices are overwritten and it becomes unreadable. Worked in blender.
You can download it from the link
.
great i will test it when i get home im working on a vertex order transfer addon for blender atm. i will test the head when i get home, thank you.
The only thing Iāve managed to get is most of the nose. Or, according to one tutorial, just a face, which I fit over the MH head by conform using DNA. But it doesnāt look good enough and thereās a crazy amount of fiddling with the texture. Otherwise, no mesh works once I do anything with it. I export via DCC from MH. I import in Maya via a plugin. I export back as FBX, import via conform and everything works. But when I want to try my head, despite copying the Vertex topology from the original open MH in Maya, or model posted here,I get a message like hundreds of other users - metahuman topologies unsupported. Do you happen to know what would be the exact procedure to get my head model into MH via Conform and what should be the mesh format or parameters?Im lost.
Use wrap3d and wrap you model with obj metahuman models what i attach above, than import into blender and export as FBX
I tested the head and the body( that was linked here) and imported them into ZBrush. (These two models are OBJ files exported from Blender as FBX because the OBJ files had some scaling issues). It might be that I forgot to apply rotation and scale in Blender.
Hereās what I did:
imported head and body, ( use the ones that was linked here)
I appended my sculpt model to the project that has to two Metahuman basemeshes, , not the other way around
-
Ran ZWrap In Zbrush with those two Metahuman Basemeshes.
-
Did Both head and Body
-I exported out files-.
There were no issues with Unreal, Vertex order was intact.
Thatās amazing ā huge congrats on getting it to work! Sounds like a big success and really great news.I have to admit Iām still quite new to ZBrush and donāt know my way around the program very well yet.
Would you happen to know where I could find a tutorial or guide on how exactly to do what you described in ZBrush?Or if itās not too much to ask, could you possibly point me in the right direction or briefly explain the steps you took in there?Sorry for the beginner questions ā really appreciate your time and help!
This Python script works in Blender.
Iām working on my own version that is more UV-based.
Using ZWrap for a separate head and body does not corrupt the vertex order.
However, if you want a perfect match, you have to group merge the head and body, then wrap it.
If you just select the two models and merge them, you are merging vertices. ( free to use )
If you need a full body for a perfect head and body match, you need to take these steps:
First, select both models and merge them. You also need to merge the vertices.
The problem is that if you just merge everything, it can bug out because some vertices in the head are stacked.
To avoid this, you should hide most of the head by selecting it and pressing H to hide.
Now merge all the vertices by distance: right-click and choose Merge by Distance.
That should merge the neck with the body (the head is hidden and should not be affected).
Your mesh is now ready to wrap.
Once itās wrapped, bring it back into Blender.
Itās time to separate the mesh again.
Select the head via the UV editor ā basically, select the entire left part.
Now click Separate.
Now you have the head and the body separated.
Now run the Python script.
Use the UV map to make your selection, because the two meshes are not identical so eyeballing the copy phase is hard, because you might end up slecting the wrong phases.
However, the UVs stay the same.
Hereās how it works:
Select 2 polygons from the reference mesh, then select the destination mesh and use Paste Vertex Order. That should fix it.
However, itās not 100% reliable ā a lot can happen to the mesh during these steps, especially when wrapping.
This is a hacky solution until Epic gets their act together and fixes the entire pipeline, because itās really not optimal in any shape or form.
Go and Make cool stuff now /Peter
Thanks @kantemrati
I have gotten the body conform feature to work nicely with your meshes albeit using ZWrap inside ZBrush. This suffices for me but I really hoped thereād be a way to do this by just sculpting on the exported Body Mesh out of the Metahuman Creator 5.6 Export Section. I will keep at it for now trying ZWrap.
Hopefully the feature set in the future will allow to to just import any body shape like you were able to do with the previous Metahuman Identity from Headmesh option.
Iām doing a bit of a deep dive into this now to try and figure out why this workflow is breaking. Hereās my observations so far.
To start with, if you use the mesh at /MetaHumanCharacter/Body/IdentityTemplate/SKM_Body.SKM_Body
as the input mesh for the conform tool with āFit from Mesh Onlyā selected, then the conform tool works. If you make a copy of this mesh, sculpt it using the in-editor skeletal mesh vertex sculpting tools and use that as the input mesh, then the tool also works.
Where it breaks down is when you export SKM_Body using āAsset Actions->Exportā as an FBX file, and immediately reimport it with no alterations and use that, it throws the usual Failed to import Template Mesh: input mesh is not consistent with MetaHuman topology
error.
Iām now diving into the C++ code for the Metahuman Creator during the conform process to see what is different between the valid skeletal mesh and the broken imported mesh.
Inside MetaHumanCharacterEditorSubsystem.cpp line 4831 and line 4840, if both calls to GetVertices() return false, we get the error Failed to get data for conforming as Template Mesh does not match MH topology
.
When using the working SKM_body mesh, GetVertices() returns 30455 vertices in the OutVertices buffer. The number of vertices is specified by the line DNAToSkelMeshMap->ImportDNAVtxToUEVtxIndex[InLodIndex][InMeshIndex].Num()
(line 4634). Interestingly enough, this vertex count is less than the actual skeletal mesh vertex count which is 32334.
Inside GetVertices(), between lines 4658 and 4667, there is a loop which iterates over all the soft vertices from the LOD0 model and it compares each vertex against the DNAToSkelMeshMap->ImportVtxToDNAVtxIndex
map (line 4656). If any DNAVertexIndex value is less than 0 or DNAVertexIndex is greater than the number of vertices in the imported mesh, then GetVertices() returns false.
When using the exported SKM_body, GetVertices() exits early from line 4666 (canāt put a breakpoint here in a development build; I need to build from source and compile in Debug mode first). This implies that DNAVertexIndex is not found or the index lies outside of OutVertices.Num(). Execution then skips down to the GetVertices() call that uses the combined DNA archetype (face + body). This also returns false because NumSetVertices (32334 vertices) does not equal the OutputBuffer size of 54412 which Iām assuming is the combined vertex count of both the body and the head.
Iām now going to start digging into the FDNAToSkelMeshMap that holds the DNA to UE vertex maps to see how they are initialized and the difference between the valid and invalid models. Inside DNAToSkelMeshMap->ImportVtxToDNAVtxIndex
, the valid body mesh vertex indicies map to a lot of DNA vertex indices which are out of order. The exported body mesh vertex indicies appear to map to a lot of vertexes that are roughly in order. This seems to confirms what @Dog_OW mentioned about it being a vertex order issue.
Edit 1: Just tested conforming using the skeletal meshes generated from the āExport Body Skeletal Meshā and āExport Face Skeletal Meshā options in MetaHuman creator and they both worked. Exporting both meshes as FBX and immediately reimporting them doesnāt work. Somethingās definitely getting lost or shuffled around during either the export or import process.
Edit 2: Iāve been doing some more digging with a Debug version of the editor. I discovered that the working body skeletal mesh LOD0 model contains 30455 unique FBX vertex indexes, but 1879 vertex indexes are duplicated and show up more than once. These vertexes are taken from the SkeletalMeshLODModelās MeshToImportVertexMap
array for which the description of this array is:
For each point in this LOD model that maps to its source point in the FMeshDescription that produced it. I.e. a linear map mapping the result of GetVertices() to its matching FVertexId entry in the original FMeshDescription.
When you add the total number of times an FBX vertex ID is duplicated to the unique FBX vertex ID count, we get 32334 - which is the total number of vertexes in the body mesh.
Now when I ran the exported/imported FBX body mesh through this process, I found that there were no duplicates. This means that any vertexes with an index higher than the total number of vertices returned by the DNA reader object (30455 in the case of LOD0 for the body), they get stored in the ImportVtxToDNAMeshIndex
and ImportVtxToDNAMeshIndex
arrays with a value of INDEX_NONE
(-1). Eventually this bubbles back up to the GetVertices
function which returns false if ANY vertexes come back with a value of INDEX_NONE.
Iām going to try and find out more about these duplicated vertices to figure out what they are, and how we can preserve them on export or import.
Edit 3: I replaced the index of any vertices that werenāt found in the DNA with a value of 0 instead of -1 to see what would happen.
No more topology error messages, but obviously the face indices are completely messed up. Interestingly enough, every face is messed up, so this confirms that the vertex indices for the faces are also out of order and the problem doesnāt just stem from the non-duplicated FBX vertex indexes.
Edit 4: I attempted to use a combined mesh that I found on FAB. This mesh worked when imported as-is, and also worked after I imported it into Blender, sculpted it, brought it into Unreal and conformed it to the body. The head was also conformed, but some detail was lost. The mesh also didnāt work when applied to the head conform from template option.
The mesh had duplicate vertex indices just like the other working body and face skeletal meshes. Iām inclined to draw a conclusion from this that the problem is in the FBX asset export process.
(post deleted by author)
Iām getting those type of issues even by staying inside UE5.6 with MH from UE5.5. basically just by modifying the MH from UE5.5 to UE5.6. I got that weird body like yours.
While creating the new modified MH I got a message that it would affect all my MH in Bridge and fro. UE5.5. After hours of work I could not do anything else than accept. Well⦠Now all my imported MH from UE5.5 are broken like that.
Hopefully they will fix this bug Pronto!
My body isnāt weird, I purposely distorted it with sculpting to make it look like I added my mesh
Doesnāt really matter. The deform feature is unusable.
First of all, none of my meshes are working. I had to get a head and a body meta base mesh from the community to even be able to deform.
Once it is working, this is the result: the skinning does not support the feature they are trying to promote ā different body types.
This feature is just a joke, and itās unusable. you are better off with any other rig than the meta Human one atleast you can skin them , Hey Sir your meshes are ready to be implimented to your game .
im gona test one more thing, before i drop this. im gona use the unreal final as a basemesh then Wrap it that to get less polygon distortion, but its s a long shot. i cant create monsters with sliders , because they just look horrible.
Unfortunately, I agree. I knew that I should have stuck with Metahuman in UE5.3, but the features they proposed were too good to be true. I had to test it⦠well, it broke all my custom Metahumans.
Well done, Epic
My MH from UE5.5 are now broken.
Now, like you, Iām making one last try today before going back to 5.3.
Such a slap in the face.
Will you record a tutorial?
i can do later on, ill chill for a week. its been alot of testing for it. but what exactly do you need help with?.