Metahuman DNA (Free Scripts) - Maya Experiments
LFA LFA
1.18K subscribers
3,221 views
0

 Published On Nov 2, 2023

Free script (non-commercial use) - HUGE SHOUT OUT TO @revoconner
https://github.com/revoconner/metahum...
- Rename DHI namespace.py
- Combined_MH.py to transform joints (to match custom mesh)
- all his scripts must be placed in a folder and the script Combined_MH.py must be edited in the line #9. I used "C:\Maya\Journalist\Scripts"

Official DNA Calibration from Epic Games
https://github.com/EpicGames/MetaHuma...
- dna_viewer_run_in_maya.py
- dna_viewer_grab_changes_from_scene_and_propagate_to_dna.py

Export Sculpted MH to UE
   • How to sculpt a MetaHuman head for Un...  

In the video, I used the steps:

1. Set Maya Scene as "Y up", load the DNA viewer, fill in all fields and import DNA
2. Import your modified mesh(es), adjust and freeze transformations to match Maya scene Y up. Rename it to "New_Mesh".

3. Select one bone of the facial rig, go to attributes editor panel and rename rl4Embedded_Archetype to rigLogicNode
4. Open the file Rename_DHI_namespace.py from Revoconnor and edit the script, replace "rl4Embedded_Nasim_rl" by "rigLogicNode" in the lines #124 and #201. Make sure enter_wrapped_mesh_name = "New_Mesh" in line #6. All his scripts must be placed in a folder and the script Combined_MH.py must be edited in the line #9. I used "C:\Maya\Journalist\Scripts". After that, select spine_04 and run rename_DHI_namespace.py

5. Hide Original Head LOD0, show New_Mesh and run combined_MH.py to modify joint transforms.
6. Create blendshape for the head so you can toggle on /off later. Repeat for the other face objects.
7. Set Blendshape = 0 to get original shape and edit "SaveJointsInfo" to make sure the character name in the line #50 the same loaded in the scene, then run the script, which is explained below.
8. Set Blendshape = 1 to get the new shape and run "UpdateDNA" once, which is also explained below.

Now, explaining the modification of "dna_viewer_grab_changes_from_scene_and_propagate_to_dna.py", as this script was separated into two parts.

1. My "SaveJointsInfo" is from line #1 to "# Loaded data - end of 3rd step". Make sure the character name in the line #50 the same loaded in the scene.

Note: These lines below are just comments and it refers to the 4th step of the original script, meaning is done without code, therefore can be disregarded:

##################################
modify rig in maya, 4th step
##################################

##################################

2. My file UpdateDNA as is:
Propagate changes to dna, 5th step
reader = load_dna_reader(CHARACTER_DNA)
calibrated = DNACalibDNAReader(reader)

run_joints_command(reader, calibrated)

for name, item in current_vertices_positions.items():
new_vertices_positions = get_mesh_vertex_positions_from_scene(name)
if new_vertices_positions:
run_vertices_command(
calibrated, item["positions"], new_vertices_positions, item["mesh_index"]
)
save_dna(calibrated)
assemble_maya_scene()

show more

Share/Embed