Profile Picture

Facial Expression - 3DXchange7 to Unity - not working with humanoid avatar

Posted By paulfielding 7 Years Ago
You don't have permission to rate!

Facial Expression - 3DXchange7 to Unity - not working with humanoid...

Author
Message
paulfielding
paulfielding
Posted 7 Years Ago
View Quick Profile
Senior Member

Senior Member (357 reputation)Senior Member (357 reputation)Senior Member (357 reputation)Senior Member (357 reputation)Senior Member (357 reputation)Senior Member (357 reputation)Senior Member (357 reputation)Senior Member (357 reputation)Senior Member (357 reputation)

Group: Forum Members
Last Active: 6 Years Ago
Posts: 5, Visits: 48
Hi,
So, I had been using the trial of the full stack fine for its duration and bought the animation pipeline package today.
My workflow is:
Import FBX to 3DXchange7 -> setup facial bones etc. -> send to iClone -> add animations, including muscles for facial expressions -> send back to 3dXchange -> Add Motionplus to 3DXchange -> export from 3DX to Unity as an FBX.
For some reason, despite messing with every export setting there is in 3DX I've only ever managed to get a full animation clip to import properly in to Unity once, when using Humanoid Avatars. For all the rest of my attempts (up to about 50 so far), the facial animation only transfers in to Unity if I use Generic avatars when importing. I know it must be possible to retarget to Humanoid successfully because I HAVE one export that works, I just can't reproduce it.
Could anyone advise on what I need to do to achieve this please? I've read the manual to no avail.

Regards,
P


《/^\》
《/^\》
Posted 7 Years Ago
View Quick Profile
Distinguished Member

Distinguished Member (1.9K reputation)Distinguished Member (1.9K reputation)Distinguished Member (1.9K reputation)Distinguished Member (1.9K reputation)Distinguished Member (1.9K reputation)Distinguished Member (1.9K reputation)Distinguished Member (1.9K reputation)Distinguished Member (1.9K reputation)Distinguished Member (1.9K reputation)

Group: Forum Members
Last Active: 5 Years Ago
Posts: 107, Visits: 2.0K
Can I ask what type of characters are you trying with? Are they from Character Creator or the older versions & are the animations character specific of custom etc?
paulfielding
paulfielding
Posted 7 Years Ago
View Quick Profile
Senior Member

Senior Member (357 reputation)Senior Member (357 reputation)Senior Member (357 reputation)Senior Member (357 reputation)Senior Member (357 reputation)Senior Member (357 reputation)Senior Member (357 reputation)Senior Member (357 reputation)Senior Member (357 reputation)

Group: Forum Members
Last Active: 6 Years Ago
Posts: 5, Visits: 48
Hi,
They're custom characters modelled and rigged in Maya. Though they follow the DAZ3D method of facial bone mapping. They aren't character creator characters but they have been converted to non-standard characters in 3DXchange and had their facial expressions setup through that software before importing in to iClone.
The animations are a mixture of iClone face puppet, face key and motion puppet. I'm not importing any other animations in from elsewhere.
Given the animation data is making it in to Unity when importing via a generic avatar, it would suggest the export is happening but there's something going awry with the export settings (I think) that doesn't convert well to Humanoid. As I say, I did get one facial clip to import properly on a humanoid avatar, I just can't for the life of me recreate it.

Regards,
P
but0fc0ursee
but0fc0ursee
Posted 7 Years Ago
View Quick Profile
Distinguished Member

Distinguished Member (1.6K reputation)Distinguished Member (1.6K reputation)Distinguished Member (1.6K reputation)Distinguished Member (1.6K reputation)Distinguished Member (1.6K reputation)Distinguished Member (1.6K reputation)Distinguished Member (1.6K reputation)Distinguished Member (1.6K reputation)Distinguished Member (1.6K reputation)

Group: Banned Members
Last Active: 7 Years Ago
Posts: 595, Visits: 1.7K
paulfielding (9/14/2017)
...the facial animation only transfers in to Unity if I use Generic avatars when importing.

By Generic... do you mean "Non-Standard" characters?

...I know it must be possible to retarget to Humanoid successfully because I HAVE one export that works, I just can't reproduce it.
Reallusion has (3) types of 3D Characters.
~ CC... Character Creator
~ Non Standard Characters
~ Non Human Characters

All are exported with:
~ Mesh
~ Skeleton... bones
~ Morph Targets (Optional)

What type are you working with?
paulfielding
paulfielding
Posted 7 Years Ago
View Quick Profile
Senior Member

Senior Member (357 reputation)Senior Member (357 reputation)Senior Member (357 reputation)Senior Member (357 reputation)Senior Member (357 reputation)Senior Member (357 reputation)Senior Member (357 reputation)Senior Member (357 reputation)Senior Member (357 reputation)

Group: Forum Members
Last Active: 6 Years Ago
Posts: 5, Visits: 48
Hi,

By Generic Avatar I mean in Unity terms. In Unity animator controllers make use of avatars, which are essentially bone and muscle maps, according to the type of model you're animating. It allows Mechanim (Unity's animation system) to blend animations etc etc. Unity has Legacy, Generic and Humanoid Avatars and they behave very differently. By default, Unity tries to import iClone /3DXChange FBX exports as Generic, which is no good for me as all of my current content is bound to the Humanoid avatars. iClone won't be usable for me if I can only import generic avatars.

In terms of the iClone terminology you mentioned below, I'm importing a non standard character (i.e not a Character Creator or non-human) rigged model. I import it in to 3DXChange and bind the muscle and bone mapping iClone works with to the bones in the model. Included in this I setup the expression weights etc in the 3DXChange Expression Editor.

On further inspection, everything seems to look right when I examine the FBX that's created by 3DXChange during the animation export process. All the facial rigs are in place, the bone mapping looks fine and the Humanoid Avatar created by Unity during the import process is identical when I compare the version of the export that works properly with the one that doesn't. For all intents and purposes, I can't find any difference between the export that works in Unity and the export that doesn't.  I'm convinced this is an export setting of somesort that I'm not aware of / haven't found yet so I'm hoping someone experienced with iClone and Unity can shed some light?

Regards,
P
Rampa
Rampa
Posted 7 Years Ago
View Quick Profile
Distinguished Member

Distinguished Member (35.8K reputation)Distinguished Member (35.8K reputation)Distinguished Member (35.8K reputation)Distinguished Member (35.8K reputation)Distinguished Member (35.8K reputation)Distinguished Member (35.8K reputation)Distinguished Member (35.8K reputation)Distinguished Member (35.8K reputation)Distinguished Member (35.8K reputation)

Group: Forum Members
Last Active: 2 hours ago
Posts: 8.1K, Visits: 60.5K
You need to start with a Unity skeleton. When you characterize it, you are not changing any bones,  your just subbing in the iClone rig to drive its existing bones. When you export, the motions in the Perform will applied to the actual bones, no longer the iClone rig.

Here's a video on it I found. All the newer videos are for CC, so this may look a little different here and there, but the procedure is still the same.


Here is a more recent one. It may be helpful as well.

Edited
7 Years Ago by Rampa
paulfielding
paulfielding
Posted 7 Years Ago
View Quick Profile
Senior Member

Senior Member (357 reputation)Senior Member (357 reputation)Senior Member (357 reputation)Senior Member (357 reputation)Senior Member (357 reputation)Senior Member (357 reputation)Senior Member (357 reputation)Senior Member (357 reputation)Senior Member (357 reputation)

Group: Forum Members
Last Active: 6 Years Ago
Posts: 5, Visits: 48
Hi,
Thanks for sharing the videos. I had indeed watched the more recent one. The second one unfortunately is for an old version of Unity and not relevant to the Mechanim system and Humanoid Avatars.

There's no such thing as a Unity skeleton btw. Meshes/models, rigs and bone mapping are the same principles in virtually every 3D software. IClone's rig, at least in my case, is from my character's rig, as I'm setting it during the import process via 3DExchange. Or rather, it's in a compatible format because of this process. Like I said above, the export process has already worked once for this model and rig. The only thing that's changed is the animation clip created in iClone and perhaps the export settings I used. Both successful and unsuccessful exports are from the same iClone project. It's why I'm so stumped. I don't understand why it worked and now doesn't.

Regards,
P
but0fc0ursee
but0fc0ursee
Posted 7 Years Ago
View Quick Profile
Distinguished Member

Distinguished Member (1.6K reputation)Distinguished Member (1.6K reputation)Distinguished Member (1.6K reputation)Distinguished Member (1.6K reputation)Distinguished Member (1.6K reputation)Distinguished Member (1.6K reputation)Distinguished Member (1.6K reputation)Distinguished Member (1.6K reputation)Distinguished Member (1.6K reputation)

Group: Banned Members
Last Active: 7 Years Ago
Posts: 595, Visits: 1.7K
paulfielding (9/15/2017)
Unity has Legacy, Generic and Humanoid Avatars and they behave very differently. By default, Unity tries to import iClone /3DXChange FBX exports as Generic, which is no good for me as all of my current content is bound to the Humanoid avatars. iClone won't be usable for me if I can only import generic avatars.

......For all intents and purposes, I can't find any difference between the export that works in Unity and the export that doesn't.

Hey paulfielding,
Main Problem: "WHY does Unity recognize your iClone character as Generic?"

answer: iClone characters have a (Pelvis & Hip) Bone.
Generic allows you have a pelvis root and separate hips for animation,
Humanoid does "NOT". You have to have one bone for translations and rotation of the characters pelvis.

Also:
Humanoid requires you to have only 2 spine bones. Generic doesn't have that restriction.
____________________________________________________________________________________________________

I'm own Unity Pro. I'm an old "Legacy" user.
~ I've shifted my concerns to "Rigging and Optimizing" mesh's for Games. (Unity & Unreal)

This is what I do to ensure ALL characters import to Unity & Unreal smoothly.

Unity:
~ I create (1) Unity "Humanoid" skeleton inside 3ds Max.
~ I save the skin of Character Creator,  Daz, Poser, iClone, Mixammo, Dishonored, RocketBox, 3dsk, and Quidam characters.
~ I add the saved skin to the mesh.... using my Unity "Humanoid" skeleton.
Poof.... flawless import.

I do the same for Unreal.
Works like a charm.Wow


Edited
7 Years Ago by but0fc0ursee
paulfielding
paulfielding
Posted 7 Years Ago
View Quick Profile
Senior Member

Senior Member (357 reputation)Senior Member (357 reputation)Senior Member (357 reputation)Senior Member (357 reputation)Senior Member (357 reputation)Senior Member (357 reputation)Senior Member (357 reputation)Senior Member (357 reputation)Senior Member (357 reputation)

Group: Forum Members
Last Active: 6 Years Ago
Posts: 5, Visits: 48
Hi but0fc0ursee,

Thank you very much for your response, it was very enlightening. I didn't know that RE: Humanoid Avatars and bones. As a follow up question, when the character is essentially 'rigged' in 3DXchange, if one selects on the bones a Humanoid Avatar should have, won't the animations applied in iClone only transform / rotate those correct bones? When then creating the Humanoid Avatar in Unity, everything matches up. In your experience, is this not enough? Do those extra bones need removing completely? I ask because animations created in Maya work fine for this workflow on the same model and control rig.

Also, after reading your post I did some further digging around and found a significant difference between the working iClone export and the broken ones. For some reason, the broken exports have their bind pose set to the model pointing from toe to head along the Z-axis. I.e as if the model is lying flat on their face. The bind pose effects skinning, right? I'm not that familiar with this side of things but would this impact the facial animations? Do you know how this is set in 3DXchange / iClone? The model's initial pose from creation is with the Y-axis as up (including bind pose) and I'm exporting from 3DXchange with the Y-axis set to up too. I'm not sure how this is getting changed.

Regards,
P
but0fc0ursee
but0fc0ursee
Posted 7 Years Ago
View Quick Profile
Distinguished Member

Distinguished Member (1.6K reputation)Distinguished Member (1.6K reputation)Distinguished Member (1.6K reputation)Distinguished Member (1.6K reputation)Distinguished Member (1.6K reputation)Distinguished Member (1.6K reputation)Distinguished Member (1.6K reputation)Distinguished Member (1.6K reputation)Distinguished Member (1.6K reputation)

Group: Banned Members
Last Active: 7 Years Ago
Posts: 595, Visits: 1.7K
paulfielding (9/17/2017)
Hi but0fc0ursee,

Thank you very much for your response, it was very enlightening. I didn't know that RE: Humanoid Avatars and bones. As a follow up question, when the character is essentially 'rigged' in 3DXchange, if one selects on the bones a Humanoid Avatar should have, won't the animations applied in iClone only transform / rotate those correct bones? When then creating the Humanoid Avatar in Unity, everything matches up. In your experience, is this not enough? Do those extra bones need removing completely? I ask because animations created in Maya work fine for this workflow on the same model and control rig.

Also, after reading your post I did some further digging around and found a significant difference between the working iClone export and the broken ones. For some reason, the broken exports have their bind pose set to the model pointing from toe to head along the Z-axis. I.e as if the model is lying flat on their face. The bind pose effects skinning, right? I'm not that familiar with this side of things but would this impact the facial animations? Do you know how this is set in 3DXchange / iClone? The model's initial pose from creation is with the Y-axis as up (including bind pose) and I'm exporting from 3DXchange with the Y-axis set to up too. I'm not sure how this is getting changed.

Regards,
P

Wow! I really enjoy your questions.... reminds me when I first started.

Note:
I learned long ago to find what the Game Engine requires... (One Hip) and see iClone bones with (Pelvis & Hip)
I STOP.... 

Then create one skeleton and "Re-Purpose" it.
At first... it's long and tedious... then, as you gain experience.... you get FAST.

Today... I "Re-Purpose"  my rig.
~ I strip ALL characters to "My Rig" and NEVER have any surprises.
(I "Skin-Wrap" most characters in approx. 5 mins.) 
...this saves me tons of worry.

I don't expect you to do as I do,
but....

I never have to worry if iClone or 3dxchange is doing this or that properly.
Sorry, I can't accurately elaborate whether iClone / 3dxch is doing this or that... I don't use RL Bones.
_______________________________________________________________

Also:
You are correct RE: "If these bones are selected... the transform are correct in Maya",
but... you are using iClone....

The (Bind Pose) really chapped my hide. (morphs are effected)
__________________________________________________________________

Conclusion:
3dxchange WILL export character to Unity or Unreal. You need to learn the iClone way and your go to go.

...or do as i do.Cool
Edited
7 Years Ago by but0fc0ursee



Reading This Topic