unity-变形_可制作面部表情
unity-变形_可制作面部表情
前篇
- 3ds max 中製作表情動畫 - https://www.youtube.com/watch?v=ZqRMegDgif8
- 使用3dmax Morpher制作Unity表情动画 - https://blog.csdn.net/hello_crayon/article/details/80430453
简单mesh变形的话, 可以使用 max 中的 Morpher (变形器) 来做, 不需要用到骨骼, 而且可以通过 权重值 来控制变形强度
复杂mesh变形才用骨骼做, 绑定点, 刷权重, k动画
TODO
- 模型合成时, blendshapes 也合成进去
简单模型测试
以一个简答的球体变形为例
新建一个 球体a (需要导出部分), 同时复制几个球体 b,c,d (用来做变形)
b,c,d 分别做不同的变形
给 a 添加一个 变形器 修改器, 加载多个 变形目标 b,c,d
导出 fbx. 勾选 动画 后, 才能勾选 变形->变形
丢带unity中测试. 在 skinned mesh renderer 组件中会有个 BlendShapes 显示所 变形目标 及其 权重值
脚本中控制 权重值
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19using System.Collections;
using System.Collections.Generic;
using UnityEngine;
[ ]
public class MorpherCtrl : MonoBehaviour {
[ ]
public float val1 = 0f;
public SkinnedMeshRenderer smr;
void Start() {}
void Update() {
if (smr != null) {
smr.SetBlendShapeWeight(0, val1); // 通过索引设置 BlendShapes 中的值
}
}
}
角色测试
导出方式可以参考: 3dsmax-骨骼绑定及动作导出流程
模型及动作使用的是之前做好的, 参考: art-记一次角色合成制作流程
复制一个 袖标 模型出来做变形动画.
原有 袖标 模型上加一个 morpher 变形器 修改器, 变形器 修改器 一定要在 蒙皮 修改器下面, 才能做正确的动作及变形, 不然容易踩这个坑: [加了 *变形器* 修改器 后, 动作无效](#加了 *变形器* 修改器 后, 动作无效). (应该和顶点矩阵变换的先后顺序有关). 记得打开修改器列表下的 显示最终结果 的开关 才能看多所有修改器的效果.
在导出 骨骼和模型 的时候, 在导出动画模型的基础上 再额外勾选上 变形->变形 即可.
丢带unity中测试. 选中 袖标 节点就有个变形权值可以调整了
踩坑
加了 变形器 修改器 后, 动作无效
是因为 变形器 修改器 和 蒙皮 修改器 的顺序错了, 如图,
只需要把 变形器 修改器 放到 蒙皮 修改器 之下即可解决问题.