Unity Blendshapes

Hello, We trialed CC4 at work last year and I couldn’t find anything on how to auto setup the blendshapes (or manually) back then for Unity ARKit . I’m now on the trial again for a personal project to see if CC4 makes sense for me, and still couldn’t find anything on it except this: Advanced Animation — CC/iC Unity Tools 1.3.0 documentation . I wanted to know if there are any ressources to retarget the Blendshapes so I can use ARKit Facial Mocap from Live Link or Rokoko Studio on CC4 characters (because if there’s no quick solution there, I’m not gonna be able to use it for much for my specific use case). This is the mapping I use for the ARKit Actor component that after closing the mouth now works on my avatar (except the jaw not following):

// ---------- ARKit 52-to-CC4 Extended – one-row = one ARKit coefficient ----------
static readonly Dictionary<string /arkit/, string[] /cc4 morph(s)/> ARKIT_TO_CC4 =
{
/― BROWS ―/
[“browInnerUp”] = new[]{“Brow_Raise_Inner_L”,“Brow_Raise_Inner_R”},
[“browDownLeft”] = new[]{“Brow_Drop_L”},
[“browDownRight”] = new[]{“Brow_Drop_R”},
[“browOuterUpLeft”] = new[]{“Brow_Raise_Outer_L”},
[“browOuterUpRight”] = new[]{“Brow_Raise_Outer_R”},

/― EYES (lid blend-shapes only; eyeball rotation comes from the head-bone) ―/
[“eyeBlinkLeft”] = new[]{“Eye_Blink_L”},
[“eyeBlinkRight”] = new[]{“Eye_Blink_R”},
[“eyeSquintLeft”] = new[]{“Eye_Squint_L”},
[“eyeSquintRight”] = new[]{“Eye_Squint_R”},
[“eyeWideLeft”] = new[]{“Eye_Wide_L”},
[“eyeWideRight”] = new[]{“Eye_Wide_R”},
[“eyeLookUpLeft”] = new[]{“Eye_L_Look_Up”},
[“eyeLookUpRight”] = new[]{“Eye_R_Look_Up”},
[“eyeLookDownLeft”] = new[]{“Eye_L_Look_Down”},
[“eyeLookDownRight”] = new[]{“Eye_R_Look_Down”},
[“eyeLookInLeft”] = new[]{“Eye_L_Look_R”}, // left eye looks right when adducting
[“eyeLookOutLeft”] = new[]{“Eye_L_Look_L”},
[“eyeLookInRight”] = new[]{“Eye_R_Look_L”},
[“eyeLookOutRight”] = new[]{“Eye_R_Look_R”},

/― CHEEKS & NOSE ―/
[“cheekPuff”] = new[]{“Cheek_Puff_L”,“Cheek_Puff_R”},
[“cheekSquintLeft”] = new[]{“Cheek_Raise_L”},
[“cheekSquintRight”] = new[]{“Cheek_Raise_R”},
[“noseSneerLeft”] = new[]{“Nose_Sneer_L”},
[“noseSneerRight”] = new[]{“Nose_Sneer_R”},

/*― JAW ― (bone + morph: tick “Mouth Open as Morph” when exporting) */
[“jawOpen”] = new[]{“Jaw_Open”},
[“jawForward”] = new[]{“Jaw_Forward”},
[“jawLeft”] = new[]{“Jaw_L”},
[“jawRight”] = new[]{“Jaw_R”},

/― MOUTH / LIPS ―/
[“mouthFunnel”] = new[]{“Mouth_Funnel_Up_L”,“Mouth_Funnel_Up_R”,
“Mouth_Funnel_Down_L”,“Mouth_Funnel_Down_R”},
[“mouthPucker”] = new[]{“Mouth_Pucker_Up_L”,“Mouth_Pucker_Up_R”,
“Mouth_Pucker_Down_L”,“Mouth_Pucker_Down_R”},
[“mouthLeft”] = new[]{“Mouth_L”},
[“mouthRight”] = new[]{“Mouth_R”},
[“mouthRollUpper”] = new[]{“Mouth_Roll_In_Upper_L”,“Mouth_Roll_In_Upper_R”},
[“mouthRollLower”] = new[]{“Mouth_Roll_In_Lower_L”,“Mouth_Roll_In_Lower_R”},
[“mouthShrugUpper”] = new[]{“Mouth_Shrug_Upper”},
[“mouthShrugLower”] = new[]{“Mouth_Shrug_Lower”},
[“mouthClose”] = new[]{“Mouth_Close”},
[“mouthSmileLeft”] = new[]{“Mouth_Smile_L”},
[“mouthSmileRight”] = new[]{“Mouth_Smile_R”},
[“mouthFrownLeft”] = new[]{“Mouth_Frown_L”},
[“mouthFrownRight”] = new[]{“Mouth_Frown_R”},
[“mouthDimpleLeft”] = new[]{“Mouth_Dimple_L”},
[“mouthDimpleRight”] = new[]{“Mouth_Dimple_R”},
[“mouthUpperUpLeft”] = new[]{“Mouth_Up_Upper_L”},
[“mouthUpperUpRight”]= new[]{“Mouth_Up_Upper_R”},
[“mouthLowerDownLeft”]=new[]{“Mouth_Down_Lower_L”},
[“mouthLowerDownRight”]=new[]{“Mouth_Down_Lower_R”},
[“mouthPressLeft”] = new[]{“Mouth_Press_L”},
[“mouthPressRight”] = new[]{“Mouth_Press_R”},
[“mouthStretchLeft”] = new[]{“Mouth_Stretch_L”},
[“mouthStretchRight”]= new[]{“Mouth_Stretch_R”},

/― TONGUE ―/
[“tongueOut”] = new[]{“Tongue_Out”}
};

The copy Blendshape Button is greyed out for my default ARKit Face Blendshape animations. I need a quick pipeline, to bring the avatars together with the Face Animations into Unity; is there currently a way to do so with ARKit or is it more specifically designed for iClone atm?
I’ve also retargeted the blendshapes from the Body to the beard and eyebrows but with less than ideal results. If I’m missing some online resource I am sorry but I did look quite thoroughly today. Thank you in advance!

Solved it with switching to the CC3 Plus Facial Profile and selecting the right version of each Blendshape with a custom ARKit Actor script, after resetting the jaw to shut inside the Import Tool. Still not sure if that is the way to go , but it is working well for me🤷‍♂️ Only found this after some time, and saw a lot of people with the same issue using Unity, so I believe a official import guide for Unity with ARKit animations in mind (since that also is the animation workflow of a lot of indie people) would be very helpful👍

Thank you for posting your solution. This will surely help others in the same situation.

Please also feel free to make use of our Feedback Tracker if you wish request changes or need specific tutorials or guides. The FT is monitored by our dev teams so this is the best way to get things looked at. Thanks.