Unity 脚本控制3D人物模型的BlendShape

有些3D角色模型带有BlendShape面部控制, 在Unity中可以通过接口访问并操作其参数可以表现不同的面部表情


在Unity中选中角色模型的指定部位,这个是由模型师定义的,不固定.但肯定是在面部建模上.

点选之后在检查器可以看到对应的BlendShapes设定项出现在SkinedMeshRenderer组件中.

由于BlendShape中定义的每个项是在建模中由建模师自定义的,所以名称不固定,所以在脚本中检索每个值是通过列表从上往下从0开始往下的索引来指定, 在代码中可以通过以下方式设置不同BlendShape项的值:

cs 复制代码
// SkinnedMeshRenderer.cs
// SetBlendShapeWeight(int index, float value);
// 以下是对13索引进行设置0的操作
GetComponent<SkinnedMeshRenderer>().SetBlendShapeWeight(13, 0);

最好的方式是制作成animation放置到animator中进行不同表情的快速展示, 同时也可以使用复合表情控制方法去融合动画

cs 复制代码
// Animator.cs
public void CrossFade(string stateName, float normalizedTransitionDuration);
相关推荐
倚剑仙9 小时前
Unity-WebGL开发——用IIS(Internet Information Services)部署webGL工程
unity·游戏引擎·webgl
baldr_439615 小时前
关于光照探针的实验和疑问
unity
作孽就得先起床16 小时前
c#调Lua返回个字符串
unity·c#·lua·xlua
井队Tell17 小时前
打造高清3D虚拟世界|零基础学习Unity HDRP高清渲染管线(第十天)
学习·3d·unity
Python私教1 天前
Unity 游戏开发「工业化级」学习路线 2025 版
学习·unity·游戏引擎
于小汐在咯2 天前
【Unity每日一记】Unity物理引擎:刚体与碰撞体详解
unity·游戏引擎
鱼蛋-Felix2 天前
Unity jar更新不生效怎么解决
unity·游戏引擎·jar
爱吃小胖橘2 天前
Unity资源加载模块全解析
开发语言·unity·c#·游戏引擎
井队Tell2 天前
打造高清3D虚拟世界|零基础学习Unity HDRP高清渲染管线(第九天)
学习·3d·unity
千年奇葩3 天前
Unity性能优化之:利用CUDA加速Unity实现大规模并行计算。从环境搭建到实战案例
c++·人工智能·unity·游戏引擎·cuda