Profile Picture

exporting morphs

Posted By Ellessarr 7 Years Ago
Rated 5 stars based on 2 votes.
1
2
3
4
5

Author
Message
garrettg11
garrettg11
Posted 6 Years Ago
View Quick Profile
Veteran Member

Veteran Member (640 reputation)Veteran Member (640 reputation)Veteran Member (640 reputation)Veteran Member (640 reputation)Veteran Member (640 reputation)Veteran Member (640 reputation)Veteran Member (640 reputation)Veteran Member (640 reputation)Veteran Member (640 reputation)

Group: Forum Members
Last Active: 3 Years Ago
Posts: 39, Visits: 560
Thanks klobbie1212! You must have attained the magic search term combination. This is a really great find. Its the first demonstration I've seen which actually shows how one might get a morph other than the built-in ones into unity. Its also the first I've seen showing the key piece of sending it from iClone back into CC3 after setting up the custom morphs instead of exporting from iClone to something like Maya. Reallusion should give this lady a job. I think I have said in previous posts that it seems like we should be able to do these things but where and how, and that the information is all over the place spread out. And also in the past I've been told it can't be done.

They should consider perhaps to learn two important things, they need better documentation and tutorials which gear toward the game engine workflows, including some step back and look at the overall common use cases to then cover those end to end flows. And second they should consider structural improvements to streamline the complicated many step zig-zag tool use pattern presently required. I think I have read that eventually they are going to merge CC3 and iClone into a single app, and perhaps that will help a lot. I have often thought to myself that they should have someone internal employed as a tester whom is working the tools in the paths that a developer would encounter, to help pinpoint the information gaps and the structural pain points that are encountered to then facilitate the streamlining of RL development and ensuring the training material meets the needs. As well then they could continue to gauge the quality of the results that are produced in Unity whether that is blendshapes accessibility or hair, eyes, and texture results improvement. In fact some of the new daz bridge results have been promising enough that we have been struggling a bit to decide whether to settle on CC3+ as we had planned, or just doing our own thing with G8, and focusing our RL use on iClone for creating exportable animation, and leave the CC3+ until further improvement arrives.

In fact on her video description she says:
"Hello! I wasn't able to find this anywhere on line and figured it out on my own so decided to create a tutorial. "
I'm sure that there are many users or potential users for which RL toolset is an auxiliary component in much larger workflows. And the time they may have to spend on decoding its mysteries is limited. I'm lucky if I can spend 8-10 hours on RL spread over a week. And a significant chunk of that time will be spent waiting on import/exports during which the tool is locked up busy, and you cannot run multiple instances sadly, even if one has plenty of horsepower to do so. And then of course one wants to spend a lot of that time actually learning/doing/editing animation clips to export.

I will be trying out these new steps at the first opportunity. 
Thanks for finding and posting this!
garrettg11
garrettg11
Posted 6 Years Ago
View Quick Profile
Veteran Member

Veteran Member (640 reputation)Veteran Member (640 reputation)Veteran Member (640 reputation)Veteran Member (640 reputation)Veteran Member (640 reputation)Veteran Member (640 reputation)Veteran Member (640 reputation)Veteran Member (640 reputation)Veteran Member (640 reputation)

Group: Forum Members
Last Active: 3 Years Ago
Posts: 39, Visits: 560
Well I took some time to try her tutorial steps https://www.youtube.com/watch?v=nZXQs2TVDE4

It doesn't work. But I could not even take the steps as far as Unity, since the morph slider steps gave me a slider that instead of applying the face expression I had setup it shrinks the whole body in a strange way which I found while testing it in cc3. And there is no point to try to test that in unity.

Also on the tutorial video there are many comments about it not working or various alternate steps but more saying it doesn't work. Or that they take it all the way to unity and the morph doesn't work there also.

I also tried some alternate paths by following the CC3 manual and creating a saved iavatar first to use in these steps:
https://manual.reallusion.com/Character_Creator_3/ENU/3/Content/Character_Creator_3/3/06_Customizing_Morphing_Sliders/Morphing_Current_Character.htm
That flow produced a slider that had no effect.

So, unfortunately I don't have all day to experiment and guess as to what the work around should be if there is one. Maybe RL can produce a proper tutorial and check for bugs in their app?

garrettg11
garrettg11
Posted 6 Years Ago
View Quick Profile
Veteran Member

Veteran Member (640 reputation)Veteran Member (640 reputation)Veteran Member (640 reputation)Veteran Member (640 reputation)Veteran Member (640 reputation)Veteran Member (640 reputation)Veteran Member (640 reputation)Veteran Member (640 reputation)Veteran Member (640 reputation)

Group: Forum Members
Last Active: 3 Years Ago
Posts: 39, Visits: 560
Also, one of the comments on the video was:

"But this is only good for facial morphs not body morphs. So if i wanted to use corrective morph shapes for like elbow and other joints since CC3 doesn't seem to do a good at skinning weights, therefore when arms bend they look rubbery not realistic. Is there a way to get around this, or would we have to re paint skin weights in a separate DCC?"


This is descriptive of a significant problem with CC3+ figures in Unity that I have observed and am not happy about, which, it would be SUPER if there was something to deal with that.
der_kenshin
der_kenshin
Posted 5 Years Ago
View Quick Profile
Senior Member

Senior Member (387 reputation)Senior Member (387 reputation)Senior Member (387 reputation)Senior Member (387 reputation)Senior Member (387 reputation)Senior Member (387 reputation)Senior Member (387 reputation)Senior Member (387 reputation)Senior Member (387 reputation)

Group: Forum Members
Last Active: 3 Years Ago
Posts: 9, Visits: 116
Hi everybody
It's already an older post but here I found a workaround to get them into the engine.

https://forum.reallusion.com/472137/WIP-Custom-Morph-Tool-morphing-during-runtime

Greetz
SeanPollman
SeanPollman
Posted 5 Years Ago
View Quick Profile
Senior Member

Senior Member (352 reputation)Senior Member (352 reputation)Senior Member (352 reputation)Senior Member (352 reputation)Senior Member (352 reputation)Senior Member (352 reputation)Senior Member (352 reputation)Senior Member (352 reputation)Senior Member (352 reputation)

Group: Forum Members
Last Active: 2 Years Ago
Posts: 31, Visits: 129
der_kenshin (2/9/2021)
Hi everybody
It's already an older post but here I found a workaround to get them into the engine.

https://forum.reallusion.com/472137/WIP-Custom-Morph-Tool-morphing-during-runtime

Greetz

Neat, do you plan to let us know how? it would be quite useful, and hopefully not terribly tedious. 
amazinde
amazinde
Posted 5 Years Ago
View Quick Profile
Senior Member

Senior Member (385 reputation)Senior Member (385 reputation)Senior Member (385 reputation)Senior Member (385 reputation)Senior Member (385 reputation)Senior Member (385 reputation)Senior Member (385 reputation)Senior Member (385 reputation)Senior Member (385 reputation)

Group: Forum Members
Last Active: 3 Years Ago
Posts: 16, Visits: 67
I am having a hard time with this process, is there a tutorial on how to do this?
amazinde
amazinde
Posted 5 Years Ago
View Quick Profile
Senior Member

Senior Member (385 reputation)Senior Member (385 reputation)Senior Member (385 reputation)Senior Member (385 reputation)Senior Member (385 reputation)Senior Member (385 reputation)Senior Member (385 reputation)Senior Member (385 reputation)Senior Member (385 reputation)

Group: Forum Members
Last Active: 3 Years Ago
Posts: 16, Visits: 67
Is there a tutorial on how to do it? I can't find anything and I need this Bad!
joao.henriques
joao.henriques
Posted 5 Years Ago
View Quick Profile
Senior Member

Senior Member (474 reputation)Senior Member (474 reputation)Senior Member (474 reputation)Senior Member (474 reputation)Senior Member (474 reputation)Senior Member (474 reputation)Senior Member (474 reputation)Senior Member (474 reputation)Senior Member (474 reputation)

Group: Forum Members
Last Active: Last Month
Posts: 31, Visits: 1.7K
There is no tutorial since its not possible to achieve with real illusion software. If you need this kind of basic features you will need a different pipeline. 
SeanPollman
SeanPollman
Posted 5 Years Ago
View Quick Profile
Senior Member

Senior Member (352 reputation)Senior Member (352 reputation)Senior Member (352 reputation)Senior Member (352 reputation)Senior Member (352 reputation)Senior Member (352 reputation)Senior Member (352 reputation)Senior Member (352 reputation)Senior Member (352 reputation)

Group: Forum Members
Last Active: 2 Years Ago
Posts: 31, Visits: 129
joao.henriques (4/27/2021)
There is no tutorial since its not possible to achieve with real illusion software. If you need this kind of basic features you will need a different pipeline. 


This is actually not true, it is possible, I've done it, it's just unreasonably tedious. about 20 actoions per morph, and required 3d software like blender to remerge them all, the end result isnt even something that can be considered a reallusion basemesh, but has near-identical morphs. 
mark.jsday
mark.jsday
Posted 5 Years Ago
View Quick Profile
New Member

New Member (43 reputation)New Member (43 reputation)New Member (43 reputation)New Member (43 reputation)New Member (43 reputation)New Member (43 reputation)New Member (43 reputation)New Member (43 reputation)New Member (43 reputation)

Group: Forum Members
Last Active: 2 Years Ago
Posts: 10, Visits: 79
I agree exporting of blendshapes/morphs is a vital part of character creation in a game.

I was able with a basic script able to take morphs from CC3 into Unity without any issue.

CC3 Steps
1.  Choose a base character  e.g. cc3 female base
2.  Reset the morphs to ensure all are default
3.  Export out a clean base character (fbx) to unity folder  e.g. cc3_base.fbx
4.  Dial in a morph e.g. abdomen to 100
5.  Export out a base character (fbx) to unity folder e.g. cc3_base_abdomen_100.fbx

Unity Steps
1.  Create an empty game object and reset its transform (e.g. call it blendshapes)
2.  Attach the following component script to it
3.  Assign the body mesh from the Base character to the source property
4.  Assign the body mesh from the Base_Abdomen_100 to the target property
5.  Play 

Notes

This works with morphs that don't resize the character in height.
To achieve morphs that change the height you will have to do something
like
a.  Calc delta pos of the base bone positions and the morph bone positions
b.   In the LateUpdate()
      {
          Calculate new bone positions from blendshape weights
          Calculate bind poses for new bone positions
          Create new mesh
          Assign bind poses to the new mesh
          Assign new mesh to character shared mesh
          Update the animator
      }

Make sure on import of the fbx to unity to set Read/Write in import settings.


Result
You will notice that the blendshape on the base character skinned mesh renderer will show the blendshape "test" with the slider working

Hope it helps
Mark


using UnityEngine;public class BlendShape : MonoBehaviour{    public SkinnedMeshRenderer source;    public SkinnedMeshRenderer target;    // Start is called before the first frame update    void Start()    {        Vector3[] verts = new Vector3[target.sharedMesh.vertexCount];        source.sharedMesh.ClearBlendShapes();        target.sharedMesh.ClearBlendShapes();        // Calculate delta verts from source to target        for (int i = 0; i < verts.Length; i++)            verts[i] = target.sharedMesh.vertices[i] - source.sharedMesh.vertices[i];        source.sharedMesh.AddBlendShapeFrame("test", 1, verts, null, null);        source.sharedMesh.RecalculateNormals();        source.sharedMesh.RecalculateTangents();    }}

1
2
3
4
5



Reading This Topic