unity-变形_可制作面部表情


itle: unity-变形_可制作面部表情
categories: Unity3d
tags: [unity, 变形, 面部表情, max]
date: 2019-04-16 20:32:53
comments: false

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动画


简单模型测试

以一个简答的球体变形为例

  1. 新建一个 球体a (需要导出部分), 同时复制几个球体 b,c,d (用来做变形)

  2. b,c,d 分别做不同的变形

  3. 给 a 添加一个 变形器 修改器, 加载多个 变形目标 b,c,d

    unity-变形_可制作面部表情_第1张图片

  4. 导出 fbx. 勾选 动画 后, 才能勾选 变形->变形

    unity-变形_可制作面部表情_第2张图片

  5. 丢带unity中测试. 在 skinned mesh renderer 组件中会有个 BlendShapes 显示所 变形目标 及其 权重值

    unity-变形_可制作面部表情_第3张图片

    • 脚本中控制 权重值

      using System.Collections;
      using System.Collections.Generic;
      using UnityEngine;
      
      [ExecuteInEditMode]
      public class MorpherCtrl : MonoBehaviour {
      
          [Range(0f, 100f)]
          public float val1 = 0f;
          public SkinnedMeshRenderer smr;
      
          void Start() {}
      
          void Update() {
              if (smr != null) {
                  smr.SetBlendShapeWeight(0, val1); // 通过索引设置 BlendShapes 中的值
              }
          }
      }
      

角色测试

导出方式可以参考: 3dsmax-骨骼绑定及动作导出流程

模型及动作使用的是之前做好的, 参考: art-记一次角色合成制作流程

  1. 复制一个 袖标 模型出来做变形动画.

  2. 原有 袖标 模型上加一个 morpher 变形器 修改器, 变形器 修改器 一定要在 蒙皮 修改器下面, 才能做正确的动作及变形, 不然容易踩这个坑: [加了 变形器 修改器 后, 动作无效](#加了 变形器 修改器 后, 动作无效). (应该和顶点矩阵变换的先后顺序有关). 记得打开修改器列表下的 显示最终结果 的开关 才能看多所有修改器的效果.

  3. 在导出 骨骼和模型 的时候, 在导出动画模型的基础上 再额外勾选上 变形->变形 即可.

    unity-变形_可制作面部表情_第4张图片

  4. 丢带unity中测试. 选中 袖标 节点就有个变形权值可以调整了

    unity-变形_可制作面部表情_第5张图片

踩坑

加了 变形器 修改器 后, 动作无效

是因为 变形器 修改器 和 蒙皮 修改器 的顺序错了, 如图,

unity-变形_可制作面部表情_第6张图片

只需要把 变形器 修改器 放到 蒙皮 修改器 之下即可解决问题.

你可能感兴趣的:(Unity3d,Unity3D)