using UnityEngine; namespace Normal.Realtime.Examples { public class VoiceMouthMove : MonoBehaviour { public SkinnedMeshRenderer[] skinned; private RealtimeAvatarVoice _voice; private float _mouthSize; void Awake() { _voice = GetComponent(); } void Update() { if (skinned != null) //not sure whether work or not { float targetMouthSize = Mathf.Lerp(0.1f, 1.0f, _voice.voiceVolume); _mouthSize = Mathf.Lerp(_mouthSize, targetMouthSize, 30.0f * Time.deltaTime); foreach (SkinnedMeshRenderer s in skinned)//not sure whether work or not { s.SetBlendShapeWeight(41, _mouthSize * 100); s.SetBlendShapeWeight(17, _mouthSize * 50); s.SetBlendShapeWeight(6, _mouthSize * 20); } } } } }
top of page

Blendshape学习笔记

  • 作家相片: fang ma
    fang ma
  • 2021年10月13日
  • 讀畢需時 2 分鐘

已更新:2021年10月16日


  1. 关于Blendshape(Morph Target动画)的概念和脸部动捕的使用

  2. ARKit的52个Blendshape表情基准组

  3. Vive面部的表情基准组

  4. 人体Anatomy:尝试肌肉面部表情 (Ziva)

1. 关于Blendshape(Morph Target动画)的概念和脸部动捕的使用


  • 关于Blendshape(Morph Target动画)的概念

这里Blendshapes泛指3D定点动画的制作方式 (Maya里面称之为 blend shapes ,而3DS Max里称之为morph targets) ,在3D动画中用的比较多,尤其是人脸动画的制作,通过blendshape来驱动角色的面部表情。


用在脸部动画制作时,blendshape可以被称之为脸部特征,表情基准,定位符等等。这里要引入一个FACS的概念,可以简单理解为将脸部进行合理化的分区标准。


“”表情这个东西看起来是一个无限多可能的东西,怎么能够计算expression呢?这就带来了Blendshapes——一组组成整体表情的基准(数量可以有十几个、50个、100+、 200+,越多就越细腻)。我们可以使用这一组基准通过线性组合来计算出整体的expression,用公式来说就是 ,其中e是expression,B是一组表情基准,d是对应的系数(在这一组里面的权重),b是neutral。” -- From https://zhuanlan.zhihu.com/p/78174706


  • 脸部动捕的使用


ARKit 脸部与Vive脸部blendshape基准对比


ARKit(52)

Extra

VIVE(52)

Extra

Brow

5

0

Eye

13

14

Eye Frown + 1

Cheek

3

3

Nose

2

0

Jaw

4

4

Mouth

24

20

O shape - 1

Tongue

1

Tongue + 7

11

Sum

52

59

52

52

2. ARKit的52个Blendshape表情基准组

CC3

ARKit Name 表情基准/定位符

ARKit Picture

CC3 Picture

A01

browInnerUp


ree


ree

A02

browDownLeft


ree


ree

A03

browDownRight


ree


ree

A04

browOuterUpLeft


ree


ree

A05

browOuterUpRight

ree


ree

A06

eyeLookUpLeft

ree


ree

A07

eyeLookUpRight

ree


ree

A08

eyeLookDownLeft


ree


ree

A09

eyeLookDownRight


ree


ree

A10

eyeLookOutLeft


ree

ree

A11

eyeLookInLeft


ree


ree

A12

eyeLookInRight


ree


ree

A13

eyeLookOutRight


ree

ree

A14

eyeBlinkLeft


ree

ree

A15

eyeBlinkRight

ree

ree

A16

eyeSquintLeft

ree


ree

A17

eyeSquintRight

ree

ree

A18

eyeWideLeft

ree


ree

A19

eyeWideRight

ree


ree

A20

cheekPuff


ree

ree

A21

cheekSquintLeft


ree

ree

A22

cheekSquintRight


ree

ree

A23

noseSneerLeft

ree

ree

A24

noseSneerRight

ree

ree


A25

​jawOpen

ree

ree

A26

​jawForward

ree


ree

A27

jawLeft


ree


ree

A28

jawRight

ree

ree

A29

mouthFunnel


ree

ree

A30

mouthPucker

ree

ree

A31

​mouthLeft

ree

ree

A32

mouthRight

ree

ree

A33

mouthRollUpper

ree

ree

A34

mouthRollLower

ree

ree

A35

mouthShrugUpper


ree

ree

A36

mouthShrugLower


ree

ree

A37

mouthClose


ree

ree

A38

mouthSmileLeft

ree

ree

A39

mouthSmileRight


ree

ree

A40

mouthFrownLeft


ree

ree

A41

mouthFrownRight


ree

ree

A42

mouthDimpleLeft


ree

ree

A43

mouthDimpleRight


ree


ree

A44

mouthUpperUpLeft


ree


ree

A45

mouthUpperUpRight


ree


ree

A46

mouthLowerDownLeft


ree

ree

A47

mouthLowerDownRight


ree


ree

A48

mouthPressLeft

ree

ree

A49

mouthPressRight


ree

ree


A50

mouthStretchLeft


ree

ree

A51

mouthStretchRight

ree


ree

A52

​tongueOut


ree



良心网站可以看ARKit Face Blendshapes的照片和3D模型示例:https://arkit-face-blendshapes.com/


CC3 额外的舌头Blendshape(with open month):


T01

Tongue_Up


ree

T02

Tongue_Down

ree

T03

Tongue_Left

ree

T04

Tongue_Right


ree

T05

Tongue_Roll

ree

T06

Tongue_Tip_Up


ree

T07

Tongue_Tip_Down


ree



3. Vive面部的表情基准组


Vive这一套脸部追踪也是52个blendshapes,但是和苹果的基准有很大区别。


  • 区别一:舌头

苹果其实是52+7,因为舌头在52个里只有一个伸舌头的blendshape,但vive其实是42 + 10,整体来讲Vive表情记住能tracking到的表情细节还是更少一些。


  • 区别二:眉毛

ARKit的52个blendshapes,是根据硬件分区一对一tracking的,然而Vive眉毛不分是没有单独另设blendshapes,而是与眼睛的动作blended在一起作为一个blendshape的,并不是精准的一对一分区tracking。


我下面编号的排序是按照VIVE Eye and Facial Tracking SDK unity 里inspector里的顺序,方便我加表情。(这里有个maya改blendshape名字的问题,其实名字如果是一模一样的是不需要手动加表情的,但是maya的命名里我不知道怎么改前缀,导致名字无法一样,可能晚点尝试改SDK的代码)


这里是我整理的用ARKit制作Vive基准的对应编号:

https://docs.google.com/spreadsheets/d/1kWXnqtiVbXRb1FrD5NLlxxuxbYmS0Z6YBLuIE1WwqD4/edit?usp=sharing

  • Eye Blendshapes (14 = 12 + 2)

Vive编号

Vive表情基准

Vive Picture

Create by CC3 blendshapes

V01

Eye_Left_Blink


ree


ree

V02

Eye_Left_Wide


ree

ree

V03

Eye_Left_Right


ree


ree

V04

Eye_Left_Left


ree

ree

V05

Eye_Left_Up


ree

ree

V06

Eye_Left_Down


ree

ree

V07

Eye_Right_Blink


ree

V08

Eye_Right_Wide


ree

V09

Eye_Right_Right


ree

V10

Eye_Right_Left


ree

V11

Eye_Right_Up


ree

V12

Eye_Right_Down


ree

V13

Eye_Left_squeeze: The blendShape close eye tightly when Eye_Left_Blink value is 100.

ree

ree

V14

Eye_Right_squeeze

ree

  • Lip Blendshapes (38 = 37 + 1)


Vive编号

Vive表情基准

Vive Picture

Create by CC3 blendshapes

V15

Jaw_Right


ree

ree

V16

Jaw_Left


ree

ree

V17

Jaw_Forward


ree

ree

V18

Jaw_Open


ree

ree

V19

Mouth_Ape_Shape

ree

ree

V20

Mouth_Upper_Right


ree

ree

V21

Mouth_Upper_Left


ree


ree

V22

Mouth_Lower_Right


ree


ree

V23

Mouth_Lower_Left


ree


ree

V24

*Mouth_Upper_Overturn

ree

ree

V25

*Mouth_Lower_Overturn


ree


ree

V26

Mouth_Pout


ree

ree

V27

Mouth_Smile_Right


ree

ree

V28

Mouth_Smile_Left


ree

ree

V29

Mouth_Sad_Right


ree

ree

V30

Mouth_Sad_Left


ree


ree

V31

Cheek_Puff_Right


ree

ree

V32

Cheek_Puff_Left


ree


ree

V33

Cheek_Suck


ree

ree

V34

Mouth_Upper_UpRight


ree


ree

V35

Mouth_Upper_ UpLeft


ree


ree

V36

Mouth_Lower_DownRight


ree

ree

V37

Mouth_Lower_DownLeft


ree


ree

V38

Mouth_Upper_Inside


ree


ree


V39

Mouth_Lower_Inside


ree


ree

V40

Mouth_Lower_Overlay


ree

ree

V41

Tongue_LongStep1


ree

ree

V42

Tongue_LongStep2


ree


ree

V43

*Tongue_Down


ree


ree

V44

*Tongue_Up


ree

ree

V45

*Tongue_Right


ree

ree

V46

*Tongue_Left


ree

ree

V47

*Tongue_Roll


ree


ree

V48

*Tongue_UpLeft_Morph


ree

ree

V49

*Tongue_UpRight_Morph

ree

ree

V50

*Tongue_DownLeft_Morph

ree

ree

V51

*Tongue_DownRight_Morph


ree

ree

V52 *

O-shaped mouth


ree


ree

ree




人体Anatomy:尝试肌肉面部表情 (Ziva)

相關文章

查看全部
Inspector GUI

https://answers.unity.com/questions/814870/why-arent-public-variables-shown-in-the-inspector.html public variables shown in the Inspector...

 
 
 

Comments


  • Facebook
  • Twitter
  • LinkedIn

©2021 by Mianzi Ltd

bottom of page