2025年Unity 中使用 Animator 控制 BlendShape 的 AnimationClip 播放

Unity 中使用 Animator 控制 BlendShape 的 AnimationClip 播放在 Animato Controller 中分成 3 层 1 FaceLayer 表情基本层 主要是各种基本表情 2 FaceBlinkLay 表情眨眼 这个一般是在一个基本表情播放完成后 然后间隔眨眼 3 FaceMouthLay 口型 表情制作可能分 1 精细表情

大家好,我是讯享网,很高兴认识大家。

在 Animato Controller 中分成 3 层

(1) FaceLayer 表情基本层,主要是各种基本表情

(2) FaceBlinkLayer 表情眨眼,这个一般是在一个基本表情播放完成后,然后间隔眨眼

(3) FaceMouthLayer 口型

表情制作可能分

(1)

精细表情,这个就是整个表情和口型都是在 Animation 或者 Max 中 Key 帧中制作出来。在 FaceLayer 播放,播放完成后,在 FaceBlinkLayer 播放眨眼

(2)

基本元件,制作几种基本元件,类似哭、笑、生气等几种,然后使用这几种播放,在 FaceLayer  播放,播放完成,在 FaceBlinkLayer 间隔播放眨眼

animator controller 中遇到的问题

(1)

播放一个 blendshape 的 animationclip ,如果当前的 animationclip 没有播放完,直接播放下一个 animationclip ,会导致 blendshape 权重设置错误,口型卡主之类的

解决方法

将 blendshape 权重值全部重置初始值,然后再进行下一个 animationclip 的播放

animator controller 中多层遇到的问题

(1)

FaceLayer 中没有设置 MouthA 这个 blendshape 权重,FaceMouthLayer 设置 MouthA 这个权重,但是多层混合后,MouthA 却不是 FaceMouthLayer 设置的 MouthA 权重

解决方法

将 FaceMouthLayer 的混合方式从 Addition 改成 Override


讯享网

其它层

(2)

问题

(2.1)

动画是播放了部分,例如眼睛转动没有播放,可能是 mask 不对的问题

 

只要添加对应的骨骼就可以了

(2.2)

blendshape 突然不起作用了,可能是 blendshape 动画导出的时候没有了

应该是

只要重新导出就可以了

(2.3)

(6)

Animator Controller 配置

(6.1)

这三层必须要有,名字必须是对应的名字

(6.2)

每一层的 Layer 名字,状态名字,动画名字必须是这个,程序要使用这些名字去替换资源

(6.3)

每一层 Mask 设置

 

(6.4)

新建对应的 AvatarMask

AvatarMask 设置

Humanoid 设置

Transform 目前只设置这几个

 

(6.5)

Prefab 上挂组件,Blink List 是随机从数组中挑选眨眼动画播放, Interval 是播放眨眼间隔, AvatarName 对应的是 Assets\AsbRes\Emotion\Mei 目录下的名字,不同 Avatar 配置不同名字,根据这个去查找资源

 

 

 

小讯
上一篇 2025-02-05 15:59
下一篇 2025-03-17 11:09

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/34405.html