Wrapping full-body base mesh to face mesh

Hello,

I want to wrap a full-body base mesh (with legs, arms, torso, head) to just the frontal part of a face mesh.
So I want the result to have the body of the base mesh, but with the face of the target face mesh.
I have attached images showing these two meshes.
Is there a good way to do this? I don’t want the whole body mesh to warp. Is there a way to specify which parts of the mesh I want to wrap, and which to stay rigid?

Thanks!

Hello Richard,

The easyest way is to use Wrap instead WrapX as WrapX approach would require a custom script.

First i would pre-align both the body and the face in Maya or 3DsMax. Just rotate and translate the face so that it match the rest of the body.

Load the face to the left view of Wrap, and the body (basemesh) to the right.

Click Subset(Select) tool and select all the facial polygons on fullbody basemesh. Click Done. The rest of the body will dissapear.

Now you just wrap face to face using Registration tool. When wrapping is complete click Subset(Apply). This will bring all the changes made to basemesh’s face to fullbody basemesh. The vertex order will be preserved. The rest of the body will remain unchanges. You will see some seams between wrapped face and the rest of the body. You can fix them using Brush tool with Relax brush and Max projection dist set to 0.0.

Please let me know if it works for you!

Hello, I have a similar question about wrapping a targeted part of a basemesh to a head scan.

I’m using a finished, retopologized, neutral expression head as a basemesh. I want to wrap it to a mouth open expression to create a blendshape. The goal is to limit the changes to the mouth and nose. Rigid alignment was done before importing to wrapX. It’s important that the basemesh not make any global movements as it will be reattached to a full body character rig.

Using the free polygon select tool, I hid all of the basemesh except the nose and mouth. Despite being hidden, the entire hidden portion of the basemesh shifted in place, resulting in an unusable blendshape.

Will there always be a global shift in basemesh topology even when vertices are hidden, or would there be a way to lock specific vertices of the basemesh into place? I’ve attached an example of the neutral to mouth open shift that occurs.

I appreciate all help,
Owen

Hello owen!

Global movement of the head is the result of inaccurate alignment of scans to each other. Ideally they must be aligned by the skull but if there is no possibility do to this, you can use subset tool.
Free polygons only tend to stay as rigid as possible and do not tend to stitch to target surface, but they are moving as you see. Instead, subset tool guarantees absolute no motion of excluded vertices.

I made example script for you which demonstates subset usage in WrapX. I restricted movement of the back of the head as you can see in attachment gif. You can use this method for arbitrary polygons of basemesh. Download here: http://russian3dscanner.com/downloads/ForumAnswers/2016.March.02.SubsetExample.zip

Sorry for the long delay, but I wanted to come back and say your example script was a huge help! Thank you!!!

When using the script, I had to be careful not to place any matching points on a part of the basemesh that would later be hidden/excluded from the wrapping stage. Other than that, the desired effect was achieved.

I tried this with wrap and using daz3d genesis 2 female and having the face scale end oriented as close
to the genesis template as possible but wrap hangs and last line shows in consul log: Building graph started
I can see 12% activity on all CPU treads (8)
Did I do anything wrong ?

Additional info: The Genesis template was exported as OBJ file with basic res (no subdiv)

I had extracted only the head of the genesis (only one mesh) and exported it from mudbox as OBJ
then imported it to wrap and yet the same problem as above .
I can easily make the process done withe your template and my scanned heads
so it must be something in the Genesis head mesh that makes Wrap hang.

The most possible thing that can go wrong is that WrapX only works if the mesh consists of single piece of interconnected polygons (single element), i.e. the mesh must not contain disconnected parts like teeth or eyeballs which is the case for Genesis models. You need to feed into WrapX only a body part excluding all the isolated pieces like eyes, eyelashes, teeth, nails etc. Genesis head alone is quite heavy (~20K polygons) so a wrapping process can take 15-20 minutes.

So I understand that Genesis figures can not be used in this software
and this is a major limitation for me since it is an impotent source of avatars for me

No, actually it can. The process goes like this:

  1. Export Genesis mesh from Daz
  2. Remove all the separated pieces (eyeballs, eyelashes, teeth etc.) from the mesh. Verter order will be changed.
  3. Load the cleaned mesh in WrapX and perform wrapping
  4. Now you need to restore your original mesh back with eyeballs, eyelashes etc. and so that vertex order is preserved. You can use lattice deformer in WrapX, Maya or any 3rd-party editor. Use cleaned mesh and wrapped cleaned mesh as a source of deformation for lattice deformer and use original Daz mesh as a deformable object.

As a result you should get new Daz mesh with the same vertex order. After importing the mesh back into Daz there is a function to recalculate rig for edited mesh.

Andrew,

My workflow i wanna use Agisoft to scan a face or half-face scan, then use wrapX to deform a genesis 3 head/body to it

I’m interested in knowing more about this workflow for daz genesis3 specifically, I understood all you said in your last post, EXCEPT the lattice deformer… in another post you say that 3dsmax has this deformer, but i can really only find Lattice modifier which basically turnes all edges into tubes..

The other Modifier i can think of, is the FFD..but really this just makes a Cagearound the mesh and then you deform manually pulling out the points…

1.what is the exact name of thie “lattice deformer” in 3dsmax? OR

2.do you have a video showing the workflow using lattice deformer in wrapX?

  1. When u say use clean mesh and clean mesh wrapped as source for lattice deformer in wrapX, is that an automated process?

Im looking to buy wrapX but i really have to make sure my workflow goes in sync with wrapXs

Hello, this feature will be implemented in Wrap3 by the end of September along with video-tutorial of how to do that. Untill then you can use Wrap3 private beta, I have just sent you an instructions on PM.

Hi..thanks alot for your response..will look into that now :).

When it is mentioned to remove the separate objects does that mean to delete the polygons after detaching them?

Yes. For example in Wrap3 you can use SelectSmallComponents node (http://www.russian3dscanner.com/docs/Wrap3/Nodes/SelectSmallComponents/SelectSmallComponents.html) to automatically select all the components but the biggest one. After wrapping a single-component model you can use lattice deformer to copy the deformation of the single-component model to the original model.

We are going to release a nice tutorial of how to wrap a head and attach it to a body by the end of this week.

Id love to see that tutorial :).

Did anyone get wrap3 to work with daz I can’t use wrapped obj as morph, i followed neo tutorial perfect 100 times ive redone it daz keeps say geometry is wrong when trying to use as morph target do I find the function to recalculate rig for edited mesh in daz3d I found update mesh which has vertex only or full geometry but it won’t work .