maya表情blendshape_【UE4】人物角色MorphTarget(Blendshape) 面部表情制作方案
其他相关:X Tesla:【动捕面捕】——价格划算效果好的解决方案(非常详细)zhuanlan.zhihu.comX Tesla:【三维角色建模】你是数学家?艺术家?懒人?还是土豪?zhuanlan.zhihu.com知乎视频www.zhihu.com
上面视频中的演示效果还暂时不能一键click就能实现。
但是上面视频中的方案可以总结提炼,结合之前制作Blendshape的思路,整理一下。
【导图】Download A Samplewww.polywink.com
以下简称:Polywink带157个Blendshape的模型=Louise—— (L)
Polywink单个Blendshape 模型=Louise_n——(Ln)
导入的其他模型=Custom——(C)
一、捏得一样(针对L)
雕刻模式下Grab托顶点 跟建模模式下Propotional Editing是一样的。
使用 L 作为雕刻的基础模型,这样即使人头怎么捏,横着捏、竖着捏,blendshape对应 变化的顶点信息 都不会变,毕竟verts和faces都始终相同嘛,还是同一个模型。
如果是输入进来的其他模型 C 的话,想给C制作Blendshape的话,就把L的形状捏得跟这个外来模型一样。
当然这种的话,就对美术素养要求比较高了,得捏得像,可以借用三视图来捏。
如果你是个懒人的话,就需要用到包裹了。
二、进行Wrap包裹
【2.1】Blender Shrink Wrap+Boolean(针对 Ln)
因为对L 使用Shrinkwrap(包裹,位置要求两者差不多重合)和Boolean Modifier(再次精确,取交集)的话,是不成功的,Modifier cannot be applied to a mesh with shape keys。
对齐两模型的时候,可以Shift 加选两模型,然后Object Align Objects,Shift加选三个轴就可以快速对齐了(或者是用Cursor Shift S)
如果是单个Ln的话,Modifier Apply 之后,Ln 的顶点和面数会变得跟 C大概一致,如下,顶点数会从5034变成4万多。
但是这样操作出来的模型会有些小碎片小破面的。
【2.2】ZWrap Wrap(让L 和 C的顶点和面数保持一致,UV也一致)ZWrap 官方文档www.russian3dscanner.com
使用Zwrap 软件进行重新自动拓扑。
注意从Blender 导出L Obj 的时候,枢轴归到原点(先origin to geometry,然后Shift C cursor回原点,再Shift S selected to cursor),而且只导出所选物体。
填写以下蓝图,并选中Selected Points节点 在Visual Editor中标记点
在节点上鼠标右键可以看到相关属性(如模型的顶点面数信息等等)
官方标记点,注意顺序左右要对应上。(可以开启Sync Views左右L C 模型同步)
Wrapping 节点选项保持默认。官方标记点
操作出来的口腔会挤出来,C模型没有,需要Save Geometry 到Blender当中把口腔转一下,选中口腔末端顶点,Ctrl+ “+” Select More 。
然后定义顶点组,透视挪口腔。
额,单眼皮 变 双眼皮,可爱 变 恶狠,软件还是有限制的,还是说我不受软件欢迎?
两者顶点和面数一致后,可在Shape Keys中,Transfer Shape Key。
先选L的Shapekey,然后鼠标选择L,再Shift加选C,点击下箭头 Transfer Shape Key。
Tab 切换Edit Mode,选择不同的Shape Key即可切换,而不用在Object Mode中 来回左右拖动值。
如果要同时更改很多ShapeKey的值的话,鼠标悬浮到后面的值0.000处,然后不要放,向下拉动即可。
取了一个EyeClose Blendshape ,效果并不理想,那是因为模型顶点顺序全部是错乱的。
解决办法就是不要导obj文件,而要导x3d文件,这样的话Join as Shapes就管用起效啦。
可勾选自带插件 Corrective Shape Keys,类似Apply Modifier那样的效果,从混合的Blendshape 值生成一个新模型。
也可以下载免费的插件Mesh Data Transfer 插件试一下。(只对上面Wrap处理过的同一UV模型起效)https://gumroad.com/l/tOKEhgumroad.com
Transfer UV可以将贴图转移到新的模型当中(注意在ViewPort 2D 中预览)
或者是直接在Wrap中直接对Wrap模型进行标记点,最终到Blender中合成,也就是不用Polywink的模型了。
另外他还有BlendWrapping,效果看着还不错。
【2.3】Maya 晶格体包裹+Retarget Blendshape Master插件
这是一年前当时采用的方案了,效果能差不多出来,但是需要稍微调整。Retarget Blendshapelesterbanks.comGithub_Retarget Blendshapegithub.com
# Auto create Corrective blendshapes from wrapped geos of a corrective blendshape
# 1. Set the geomatry with the blendshapes
# 2. Select all geometries wrapped to that one that has the blendshapes
# 3. Run the script
import maya.cmds as cmds
#import maya.mel as mel
try:
if (cmds.window( autoBlendsFromWrappedUI, exists=True)):
cmds.deleteUI( autoBlendsFromWrappedUI )
except:
pass
autoBlendsFromWrappedUI = cmds.window( title="DD Auto Blendshapes creator from wrapped obj", iconName='Short Name', width=(320), s = 1 )
a1 = cmds.columnLayout( adjustableColumn=True, width = 320 )
selected = ""
a2 = cmds.rowLayout ( numberOfColumns = 2, columnWidth2 = (270, 50), p = a1 )
ownerTx = cmds.textFieldGrp ( label = 'Blendshapes owner geo', text= "", p = a2 )
ownerBt = cmds.button ( label = "Set", width = 30, command = "setSelected()", p = a2 )
def setSelected ():
global selected
selected = cmds.ls ( sl = 1 )[0]
cmds.textFieldGrp ( ownerTx, e = 1, text = selected )
return selected
cmds.button( label='Create Blendshapes', command = ( 'ddAutoBlendsFromWrapped()' ), width = 90, p = a1 )
cmds.showWindow( autoBlendsFromWrappedUI )
def ddAutoBlendsFromWrapped():
def suffix ( obj ):
suf = obj[-4:]
return suf
sel = cmds.ls ( sl = True )
blendsOwner = selected
selHistory = cmds.listHistory ( blendsOwner )
findBlend = cmds.ls ( selHistory, type = "blendShape" )
blendList = cmds.listAttr ( findBlend[0] + ".w", m = 1 )
for eachSel in sel:
i = 0
for eachBlend in blendList:
i += 300
cmds.setAttr ( findBlend[0] + '.' + eachBlend, 1)
newDelta = cmds.duplicate ( eachSel, n = eachSel.replace( suffix(eachSel), "" ) + eachBlend.replace( selected.replace( suffix(selected), "" ), "" ) + "_tgt" )
cmds.setAttr ( findBlend[0] + '.' + eachBlend, 0)
cmds.select ( newDelta )
cmds.move ( i, 0, -75 )
还有一个Retarget Blendshape mel文件,最终效果差不多,但就是涉及嘴唇的Blendshape不太理想,还需稍微调整。(当时的文件早都不知道跑哪儿了)
下载解压后:拖拽Mel 文件到场景当中
在Python 栏中复制以下 并Enter(不是Mel呀)
import retargetBlendshape.ui
retargetBlendshape.ui.show()
3.可以看到有框框了
选mesh,blendshape即可。
这个是只能针对同面数,同顶点数目的模型才可以。
Retarget 完成之后,可以用自带的重命名工具命名这些Blendshape。
Ctrl+G打组,鼠标中键挪动物体在世界大纲中的位置。(解组)
三、重新用骨骼绑定并根据骨骼制作Blendshape
【3.1】DAZ+FACEGEN捏脸+MAYA 插件传施工坊根据DAZ模型的面部骨骼一键生成51个Blendshape(推荐)
但是Daz比较老旧,而且安装也比较麻烦。传世工坊daz到maya整合工具,为daz人物角色一键Humanik,一键FACS表情,支持苹果手机51个面部表情捕捉数据-传世工坊daz.lianghuadashi.com
【3.2】Auto-Rig Pro 插件相关:Auto-Rig Pro 3.41 适配Blender 2.8 以上版本(我的Blender版本是 2.82的)
Auto-Rig Pro 3.40 适配Blender 旧版本,如2.78,2.79这些旧版本(页面灰色旧旧的那种)
官方文档:(从安装到导出到UE4,应有尽有)Installation - AutoRigPro Doc documentationwww.lucky3d.fr
这个很傻瓜式了,跟着教程走,和Mixamo指定身体Marker是一样的。
面部标记点,比Maya 的 Advanced Skeleton绑定过程要方便很多,效果也特别好,尤其是上下嘴唇部分的骨骼权重。
如果导出UE4骨骼的话,需要在骨骼Edit Mode下,选中Spline 骨骼,设置Count数量为4。
【3.3】Manuel Bastion Lab 插件
另外,可以研究一下ManuelbastionLab插件,也是个捏人软件,Blendshape也是自动生成的。
跟Daz一样,也是通过JSON 数据来动态变化角色Blendshape的,表情身材肌肉胸大小等等。
【其他绑骨骼:】有些需要绑定骨骼,先选模型再Shift加选骨骼,Ctrl+P With Automatic Weights,自动权重,这样会自动给模型创建一个Armature Modifier
Bind To Vertex Groups
Object=Armature
Object Data中也会自动创建一个Bone Vertex Group
可以Weight Paint Mode 刷顶点组,也可以Edit Mode指定顶点组。选中模型 Ctrl Tab 切换到Weight Paint Mode刷权重,红色就是所有顶点可以被骨骼影响,蓝色就是不受影响 。
R=1
B=0
或者是 Ctrl Tab 切换到 Edit Mode中Assign 顶点,注意不要更改Vertex Group的名字,默认是Bone就是Bone,改成其他名字骨骼权重就没有了。(Bone、Bone.001 依次排列)
Weight就是上图中骨骼的权重。
骨骼其实就是一个hook modifier,定义一个骨骼怎样控制一些顶点。
如果不加骨骼切换到Weight Paint Mode的话,就是可以直接绘制顶点组,不需要像Edit Mode中 Assign/Remove了。
【其他拆表情】
有表情是一整个脸的,需要分成左右脸表情。定义左右顶点组(左脸右脸),权重为1
定义中间对称轴Vertex Loops,权重为0.5,左边一点,右边一点
然后下面Vertex Group 为左或右就可以拆开表情了。
【搜索Blendshape】
点击下方的小箭头,可以搜索、按字母排序、正序倒序这样子。
【其他】转移模型贴图UV
注意模型大小!有些Scale =1,Scale=100,保持模型大小一致。
【其他好玩的】让人头模型贴图错乱,单个面单个材质先选Shapekey模型,再加选参考模型
Join as Shapes
然后进入Edit Mode当中
Vertex Blend From Shape
参考选Shapekey
然后Blend 值为 -1 即可。
然后就跟我知乎头像那样差不多了。
【其他Shading 模式切换】
有时候Retarget之后,模型表面并不平整,右键Shade Smooth并不管用,就需要进入到Edit Mode中进行相关的编辑了。进入Edit Mode
Mesh->Shading->Smoothing Faces/Verts/Edges (亦可切换到Flat)
【其他更改ShapeKeys】可以选Vertex Group 只针对选定的顶点组变形
或进入Edit Mode中,Blend From Shape进行混合编辑
PropagatetoShapes,对其他所有Shapekeys都应用当前选中顶点组的位置
本篇就到这里了,以后有更方便的做法再补充。
maya表情blendshape_【UE4】人物角色MorphTarget(Blendshape) 面部表情制作方案相关推荐
- maya表情blendshape_三维动画表情控制曲线与BlendShape的使用技巧
张梦 摘 要:三维动画制作过程中经常会因为调好的表情不能和人物面部绑定在一起,单独使用Blend Shape来控制人物表情比较麻烦,给后期调动画带来不必要的麻烦,使用曲线控制角色表情绑定使得调动画变得 ...
- ue4怎么用虚幻商城场景_【更新】UE4虚幻引擎野外场景制作零基础入门教程
原标题:[更新]UE4虚幻引擎野外场景制作零基础入门教程 作为一套零基础入门教程,可以帮助虚幻4引擎的新手了解到环境制作流程和相关软件的配合.本教学适合零基础入门用户,不适合有一定经验的UE使用者. ...
- UE4虚幻引擎关于小地图制作教程
UE4虚幻引擎关于小地图制作教程 首先,要做一个这样子的效果! 怎么做呢! 首先,我们要准备UI! 小地图,我们的分辨率是512x512 记住参数! 然后在MainUI当中!我们就可以这么设置! 一个 ...
- 用Maya、Zbrush和Photoshop的经典组合制作逼真砖墙纹理
Hello,大家好,今天给大家带来砖墙纹理制作,我是CQBiuBiu. 一.介绍 Carylitz Tamez这次谈到了用Maya.Zbrush和Photoshop的经典组合制作逼真的砖墙. 我叫Ca ...
- maya表情blendshape_maya在表情制作中Blendshape的使用技巧
标签: 表情 制作 blendshape 教程 雨恒 教育 分类: [ Maya 教程] 角色表情的制作在 Maya 中,可以理解为模型点的位移. Maya 中对于点的控制有多种方 式: Spring ...
- maya表情blendshape_Maya的形状融合变形器Blend Shape | 学步园
Maya的形状融合变形器Blend Shape是制作面部表情动画的有力武器,它能通过使用一系列的目标形状物体(Target)使基础物体得到非常平顺.高精度的变形效果.它在角色动画的时候非常受用,尤其是 ...
- maya Xgen导入UE4中,UE4毛发动力学
MAYA2018 版本 UE4 4.26.1版本 写文章只为自我记忆保存.能帮助他人是意外之喜,如果有错误请指出我一定会改.谢谢~ (因为发现网上找的都是4.25的,按照4.25的操作步骤在4.26里 ...
- Maya动画导入UE4相关的细节问题及解决方案
导入前检查文件命名是否有重名,否则会报错导入不了ue4,同时检查是否有隐藏的模型. 千万不要随便删除命名空间,否则就会这样 导入ue4之前务必打开烘培关键帧设置,选择"下方",否则 ...
- maya导入abc动画_人物动画极速制作宝典分享!再也不用担心项目周期不够了
作者 | 朱亚东 订阅 | 010-86092062 项目周期有限,怎样才能完成人物动画的极速制作呢?日前,有业内"活雷锋"发现了一款人体建模软件MakeHuman,并分享了其制作 ...
- html制作虚拟人物,一种虚拟人物角色直播系统的制作方法
本实用新型涉及直播技术相关技术领域,特别是一种虚拟人物角色直播系统. 背景技术: 现有的视频直播通常是通过摄像头获取当前视频画面,然后将视频画面实时上传到直播平台,通过直播平台向客户端进行直播. 然而 ...
最新文章
- 《梦醒黄金城》主创暨明星见面会举办 预计2019年完成拍摄
- 【设计模式】分类和定义
- 腾达W303R v3 无线路由器使用移动光纤无法打开视频的设置方法
- F - Heron and His Triangle UVALive - 8206
- ios键盘横屏_平板电脑就只能追剧玩游戏?看这款外设键盘如何让iPad爱上办公...
- 微软ODBC服务器驱动,Microsoft ODBC 桌面数据库驱动程序
- 13、TWS API和IB中的历史数据
- python字符串输入小圆点_第6章 多序列比对
- matlab编写正弦波mif,使用MATLAB一键制作mif文件
- 【易通慧谷】盘点供应链金融的主要模式和对商业银行领域的影响
- 【年终】电感两端施加正弦波电流,电感两端的电压波形是怎样的?
- 搜索引擎的索引和搜索
- django 快速实现文件上传(django2.0)
- Android面试题中高级,androidframework视频
- 光脚丫学LINQ(006):投影
- 使用Unity开发RPG游戏完整指南
- cmd命令之Xcopy介绍_复制文件夹里所有文件到另一个文件夹操作方式
- 【Python】and和or的讲解与实例
- [JavaWeb]谁是卧底游戏制作(网络游戏)
- 【linux】网卡驱动框架介绍