VRoid Studio -> Omniverse with hair a cloth physics?

VRoid Studio (VRoid Studio) is free software from Pixiv for creating anime style characters. It outputs characters in a VRM (https://vrm-consortium.org/) format used by a number of VR apps (like VR Chat), which is actually GLB. If you rename a .vrm file to .glb, Create can import it successfully. It makes it quick to create 3d avatars with rigging and blend shapes.

I am experienced in Unity, but new to the Omniverse tools. I was exploring how hard it would be to add hair bone physics and/or cloth physics to characters. (For Unity, if you import a VRM file using the UniVRM package from GitHub, it adds crude hair and cloth physics automatically.) Reading around the forums I see threads basically saying “its hard” to add physics. Looking at the Bunny example_cloth sample in Create made it look possibly easy…?

Are there any examples around on how to add hair and cloth physics to a model? VRoid Studio is nice because you can create avatars quickly with minimal knowledge, even if just for prototyping. All the characters also have very regular structure, making an automated script easier to write (e.g. to add standard capabilities). But without hair and cloth physics, they lack the depth to make them useful in a real project.

2 Likes

I’m also interested in this thread.
(Perhaps this importer for Unreal Engine could be beneficial: VRM4U/README_en.md at master · ruyo/VRM4U · GitHub)

Could be worth a try for sure. I tried the Unity version (UniVRM), but the Unity/OV connector is newer and the character that came across did not work. The Unreal connector is more mature - definitely worth a try. I will however note that you still need some sort of behavioral code in OV to do the hair movement (mesh, bones, whatever).

We are working on cloth and hair features, but we don’t have a release date yet. So please stay tuned!

Until “the real thing” is available, are there any examples that could be used as a simple stop gap measure? Even a little bit of physics for hair bounce can make a huge difference. (So lots of stiffness and damping.)

For example, here is a character with hair bones shown.


Here is the stage hierarchy

I was looking at the “Rigid-Body Ropes” physics sample and it looked pretty close. Adjustments I want to make are:

  • Lock down the root of the bone chain - the root of the hair should not move
  • The bones are a hierarchy, whereas the rope they are siblings with extra “Physicsjoint” added. Do I need that given I already have a bone hierarchy? (I can do it, but wondering if there is a better approach)
  • Add more stiffness and damping so each segment only moves a little bit. I am happy with subtle hair movements for now, like the fringe bobbing a little bit when the head turns. (I assume that is just tweaking properties.)

I was just wondering if there was an existing sample that already does the above before I explore the rope demo deeper. Even without colliders (so hair disappears into the body) this would be useful. I was just not sure if Articulators or Physics Joints are closer to what I want. Hints in the right direction appreciated!

Hi,
Right now, there is no way to connect the bodies with the SkelJoint other then using some separate python script to update the poses.
You would have to create a separate hierarchy through joints, like the rigid body rope demo does. Then the rigid body transformations would have to be applied to the SkelJoint.
For next release (should happen in few weeks) there should be a way to add rigid body directly to the skel joint, for the current release only a separate hierarchy would work I am afraid.

Ales

Just an update, I created a blog on my efforts to use particle cloth for hair with attachments to the skull. Some problems, some success. Kit 105 has some new capabilities which could be useful.

But I think the short term solution is to implement some kind of behavioral script or action graph to implement slight movements and gravity based on bone animations. 105 seems to have improved collider support with skeleton animation making this at least feasible in concept.

impressive work @alan.james.kent
looking forward to see the 1st eposide. Btw, it looks like that the Trailer is missing from the website.

And yes, for now you need to combine all animations generated in A2F in another DCC for full control.

I am only maintaining the ‘blog’ section of the website at present. The videos there were rendered using Unity. I was trying to see if I could do them with Omniverse instead, but it’s been slow going. There are lots of nice technologies in Omniverse (beautiful cloth physics, great rendering, cool AI for audio to lip sync) but they are hard to combine in a reliable way into a complete solution.

Oh, and trying to do it with free tools adds to the complexity! ;-)

1 Like

Just for clarity @Ehsan.HM , here are a list of some of the open Omniverse bugs in this area (retested with the final 105 release out today - still present). Just wanted to make sure these were on a bugs list somewhere to be addressed.

  • After a while in Play mode, colliders disappear (and seem to stop working). I think they go to 0,0,0 with size 0,0,0 (if I hit ‘f’ key, it zooms in on 0,0,0)
  • Particle mesh causes the hair after a while jumps to height zero off the ground. Turning debug views on/off sometimes makes it go back to the right spot on the head for a bit.
  • When I have the particle system on for the hair (particle cloth), I can no longer use skeleton bone rotation to move the skeleton (in other areas of the character). Also if I select the “upper chest” bone in the skeleton, and the rotation tool shows at 0,0,0.
  • If I do try to rotate other bones, the character sometimes vanishes. (The sphere is not attached to bones so it stays visible.)

Not sure if a bug or a feature:

  • If the character moves the hair does not sway. Hair dangles down, but there is no “dangle” effect where the hair swings if the character moves. Not sure if I need to add some other physics effects to get it to work. If there is no “dangle” physics available, this is all moot (I cannot use it for hair or clothes), so that would be good to clarify.

Here is a video as well, showing a series of things going wrong (it was 105 beta, but I have not seen anything fixed so reusing the same video). Note: some things do work, but as the video progresses more and more things go wrong (including an OV crash).

Blog: Omniverse 105 (beta) Colliders for Particle Mesh Hair and Clothes – Extra Ordinary, the Series

Made some progress. Mega capsule across shoulders just to prove it works.

I need to research Rigid Body more as adding a Rigid Body on the character did two things:

  • The hair starts following physics better
  • The character often falls over

Hair physics also improved a lot when I increased the Particle System / Advanced / Solver Position Iteration Count from 16 to 32.

Still having problems such as:

  • As soon as I select a bone in the skeleton hierarchy (no movement, I just click on an Omnijoint prim in the stage window) the collider disappears and the hair falls directly down.
  • The hair still frequently ends up on the ground unless I turn the debug particle mesh view on. (No change other than to turn the debug view mode off - hair ends up on ground).
  • I need to get all the stretch settings right because the hair can look pretty bad (not a bug, but rather a side effect of the way the character was created. I think I need things very very stiff, but have not cracked the settings for that yet.)