使用3dmax Morpher制作Unity表情动画

关于游戏人物的面部表情动画
方案一:如果面部骨骼数丰富的话,可以直接做骨骼动画
方案二:采用变形器(3dmax是Morpher,maya是blendshape)修改相应通道的权重值来做表情动画

本文简述方案二的做法。
说明:本文截图中3dsMax版本为2017。笔者第一次使用3dsMax,欢迎指正。

  1. 3dmax中导入人物模型,选择需要变形的对象,即head。当前对象附带skin信息。
  2. 选择head,右键clone一份,选择copy,叫做head001。(如果选择Instance的话,复制品修改会影响原对象)
    这里写图片描述
  3. 选择head,菜单Modifiers/Animation/Morpher,添加Morpher编辑器。好了,现在去构建最终的变形效果。
    这里写图片描述
  4. 选择head001,ModifierList中删除skin绑定。在EditableMesh中编辑顶底等,变形成你最终需要的效果。
    • 带skin的模型 编辑Mesh时会有位移,暂时不用担心,退出编辑模式就会恢复
    • 至于为什么要删除skin,我在没删的情况下导入到unity变形会有位移,删掉之后两个模型就对上了。
    • Selection里面再次点击选项可以退出编辑模式(新手第一次使用卡在这里,汗|||)
      这里写图片描述
  5. 选择head,ModifierList中选择Morpher,Channel Parameters中,点击Pick Object from Scene,在场景中点击选择head001对象,此时Channel Parameters中首行的1 -empty-变成你选择的对象名。即选择Morph目标成功。
    这里写图片描述
    这里写图片描述
  6. 选择head,ChannelList中第一行为刚刚选择的目标对象,修改旁边的值(0-100),可以观察到head的变化。 Morpher支持多个通道变化,当前只用了一个通道。
  7. 若6的效果OK,可以删除head001,导出fbx。确认下导出参数勾选了Deformations/Morphs,默认是勾选的。
    这里写图片描述
  8. 将fbx文件导入到unity,可以观察到head的SkinMeshRenderer组件,BlendShapes属性下有通道列表,调节head001的值(0-100),可以观察到面部形变效果。
  9. 制作动画可以选择K动画或者脚本skinMesh.SetBlendShapeWeight(0, weight)控制。
    这里写图片描述

猜你喜欢

转载自blog.csdn.net/Crayon_Chen/article/details/80430453