首页 > 编程知识 正文

ue4和unity,maya面部表情控制器

时间:2023-05-05 06:38:44 阅读:37551 作者:2936

其他相关: X Tesla :【动捕面捕】——实惠有效的解决方案(非常详细) zhuanlan.zhihu.comX Tesla )【三维角色建模】你是数学家吗? 艺术家? 懒惰? 还是重要的斑马? 庄兰.智湖.com知道的视频www .智湖.com

上面视频的演示效果暂时还不能点击一个就实现。

但是,上面的视频方案可以集中提取。 结合以前制作Blendshape的构想,整理一下吧。

引导图: downloadasamplewww.poly wink.com

以下简称: Polywink为具有157个混合形状的模型=Louise——(L ) ) ) ) ) ) ) ) ) ) )。

Polywink单个Blendshape模型=louise_n——(ln ) ) ) ) ) ) ) ) ) ) )。

引入的其他型号(=custom3354(c ) ) ) ) ) ) ) ) )。

一、同样握持(对LL ) ) ) ) )。

雕刻模式下的Grab色调顶点与建模模式下的专业版相同。

使用l作为雕刻的基础模型时,无论捏多少头、横向捏多少头、纵向捏多少头,顶点信息都不会随着blendshape的变化而变化。 果然verts和faces都一样呢。 果然是同一型号。

在输入的其他型号c中,如果想在c中制作Blendshape,请按照与此外来型号相同的方式捏取l的形状。

当然,这样就要求美术素养。 必须按类似的方式捏。 必须借三视图来捏。

如果你懒的话,就需要用包裹。

二.办理Wrap包裹

【2.1】blendershrinkwrapboolean (面向局域网)。

因为在l中使用Shrinkwrap (包裹,要求位置大致一致)和Boolean Modifier (再次准确、交叉) )是不好的。 modifiercannotbeappliedtoameshwithshapekeys。

对齐两个模型时,可以通过向Shift添加两个模型,然后向Object Align Objects,Shift添加三个轴来快速对齐(或使用Cursor Shift S )。

如果是单个Ln,在Modifier Apply后,Ln的顶点和面数将与c大致一致,如下所示,顶点数从5034变为4万多个。

但是,这样制作的模型里有小碎片和小破面。

【2.2】ZWrapwrap(L (匹配l、c顶点和面数,也匹配UV ) zwrap官方文档www.russian3dscanner.com

使用Zwrap软件进行重新自动拓扑。

注意从Blender导出L Obj时,轴心返回原点,仅导出所选物体。

填写以下蓝图,选择“选定点”节点,然后在Visual Editor中标记点

右键单击节点可显示相关属性,如模型的顶点面数信息

请注意官方标记点与顺序的左右相对应。 (可以打开同步视图左右两侧的L C模型同步。)

Wrapping节点选项仍为缺省选项。 官方标志点

被操作的口腔被挤出。 c型号上没有。 必须将口腔从Save Geometry旋转到Blender,选择口腔末端的顶点ctrl“”select more。

然后定义顶点组,透视口腔。

额头,单眼皮变成双眼皮,可爱又邪恶,软件还有限制吗,还是我不受软件欢迎?

当两个顶点和面数一致时,在Shape Keys中为Transfer Shape Key。

首先选择l的形状密钥,用鼠标选择l,在Shift中添加c,然后单击向下箭头的transfer shape密钥。

Tab可以在编辑模式之间切换,并选择不同的形状键,从而在对象模式中切换值,而无需左右拖动。

如果要同时更改很多ShapeKey的值,请将鼠标悬停在后面的值0.000处,然后向下拉动,而不放置。

虽然采取了EyeClose Blendshape,但效果并不理想。 那是因为模型的顶点顺序都很混乱。

解决方案是导出x3d文件,而不是obj文件。 这样,Join as Shapes就会发挥作用。

可以选中带插件的Corrective Shape Keys。 就像应用修改器

样的效果,从混合的Blendshape 值生成一个新模型。

也可以下载免费的插件Mesh Data Transfer 插件试一下。(只对上面Wrap处理过的同一UV模型起效)https://gumroad.com/l/tOKEh​gumroad.com

Transfer UV可以将贴图转移到新的模型当中(注意在ViewPort 2D 中预览)

或者是直接在Wrap中直接对Wrap模型进行标记点,最终到Blender中合成,也就是不用Polywink的模型了。

另外他还有BlendWrapping,效果看着还不错。

【2.3】Maya 晶格体包裹+Retarget Blendshape Master插件

这是一年前当时采用的方案了,效果能差不多出来,但是需要稍微调整。Retarget Blendshape​lesterbanks.comGithub_Retarget Blendshape​github.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 documentation​www.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都应用当前选中顶点组的位置

本篇就到这里了,以后有更方便的做法再补充。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。