news 2026/10/1 1:16:24

一张图做Live2D脸捕:从拆层到接入Vtube Studio全流程

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
一张图做Live2D脸捕:从拆层到接入Vtube Studio全流程

1. 一张图做脸捕:先理解Live2D到底在做什么

不少朋友入坑Live2D,都是看到一个念头:我手头就一张很好看的立绘,能不能让它动起来,最好还能让摄像头捕捉我的表情,让角色替我眨眼、张嘴、转头?答案是能。Live2D这门技术干的事情,本质上就是"用平面化的网格变形去模拟立体空间里的动作",而脸捕(面部捕捉)则是把摄像头拍到的真人表情数据,映射成Live2D模型的参数变化。两者一结合,就是你看到的那些虚拟主播的直播效果。

这个工作流的核心价值在于:不需要3D建模,不需要绑定骨骼,不需要做动作捕捉,只需要一张图片加几小时的调参,就能得到一个能实时交互的虚拟形象。对于刚入门的创作者、想做虚拟主播的新人、甚至只是想让自己的插画"活过来"的画师来说,这是成本最低、见效最快的路径。

我在这一篇里只聊"上"半部分,也就是从一张图到"能动的模型"这个最基础也最关键的环节。脸捕工具接入、实时驱动这些,等模型本身做好了再讲。很多新人一上来就急着去调Vtube Studio,结果模型没做扎实,动起来全是扭曲和穿模,那才是真正让人想摔鼠标的事。

1.1 脸捕的本质:不是"动图",是"参数驱动"

先说个认知层面的东西。你看到的Live2D动画,不是GIF那样按帧播放的动图,而是"参数驱动型"的实时变形。模型里有一套参数,比如"头部X轴旋转""眼睛开合""嘴巴张开",每个参数控制一部分网格的形变程度。脸捕工具做的事情,就是实时计算你脸部的关键点数据,把这些数据换算成参数值,再塞给Live2D模型去驱动。

所以这里有个关键结论:如果你想做脸捕动画,你需要在Live2D里把参数定义好、把变形做得自然、把关键帧补得平滑。如果模型本身只有"眨眼""张嘴"这种最基础的动作,那脸捕工具接上去也只能驱动这两个参数,效果就是机器人式的僵硬表情。你写给模型多少"可动性",脸捕驱动起来就有多生动。这就是为什么很多免费下载的Live2D模型看着漂亮,一动起来很奇怪——参数太少、变形太生硬,脸捕数据进来了,模型接不住。

1.2 一张图做脸捕的完整工作链路

从一张静态图到能实时脸捕的Live2D模型,完整链路是这样的:

  1. 准备素材:一张清晰的立绘(最好是分层PSD,但只有单张图也能做)
  2. 拆分图层:把头发、脸、五官、身体等各部位拆成独立的图层
  3. 导入Live2D Cubism编辑器:给每个图层做网格(Mesh)绑定
  4. 建立参数:创建X轴、Y轴、Z轴、眼睛、眉毛、嘴巴等参数
  5. 制作变形关键帧:为每个参数的不同数值制作网格变形,让模型呈现不同表情/角度
  6. 导出模型:打包成.moc3文件加贴图文件夹
  7. 接入脸捕工具:在Vtube Studio之类的软件里导入模型,把摄像头捕捉数据映射到参数上

这一篇重点讲第2到第5步。如果你的目标是做直播用模型,前面这几步的质量直接决定了直播时观众看到的画面是"灵动"还是"惊悚"。

1.3 这套方案适合谁

我做过的项目里,用"一张图做脸捕"这个需求的人大概分三类。第一类是画师,手头有自己的作品,想给客户展示"这个角色是活的",或者给自己的作品集加一段演示动画。第二类是刚起步的虚拟主播,预算有限,请不起高精度3D建模,先拿一张自己的设定图做一个能上播的Live2D皮套,播一段时间看看效果。第三类是技术爱好者,纯粹想弄懂Live2D这个软件怎么玩,手里有现成素材就拿来练手。

无论你是哪类,这篇的内容对你应该都有价值。我的建议是:不要跳过基础直接去找模型资源、不要一上来就下插件和脚本,先把"手动做一个会眨眼的头"这个基本功练扎实。Live2D和所有创作软件一样,基础功不扎实,后面堆再多技巧都是空中楼阁。

2. 准备工作:工具清单、素材要求与常见的坑

工欲善其事,必先利其器。做Live2D的软件选择其实不多,但路径上有些分支,选错了会走弯路。

2.1 工具链怎么选

核心软件只有一个:Live2D Cubism,官方编辑器。现在主流是Cubism 5.x,免费版能创建和编辑模型,但导出可能会有限制(比如不能用部分高级功能,或者说不能商用),一般业余做表情包、个人直播是够用的。如果需要完整的商用授权和全部功能,就得买Pro版。我自己的建议是:先免费版练手,确认自己真的需要再做决定。

脸捕工具这一侧,目前最常用的还是Vtube Studio(Steam上有免费版),它对Cubism模型的兼容性最好,参数映射很灵活,还能用iPhone的面部捕捉(iFacialMocap协议)获得更光滑的表情数据。备选方案还有PRPRLive、Inochi2D(开源,但生态还不成熟)。如果你是纯测试,用电脑摄像头加Vtube Studio内置捕捉也行,效果差一些,但验证模型动作用。

注意:Live2D动画从Cubism 4.2之后都是.moc3格式,对应的是Cubism 3及以上版本。网上还能找到很多老教程讲.moc格式的,那个属于Cubism 2.x时代,界面和流程差别很大,建议直接看新版本的。如果你下载的资源是.moc文件,要么找对应旧工具转换,要么果断放弃找新版本资源。

2.2 素材准备:从"一张图"到"分层图"

标题说的是"一张图制作",这里我要先泼一盆冷水:严格说,一张图做出来的Live2D是"可以用但粗糙"的。最理想的素材是带图层的PSD文件,因为图层决定了模型后期拆解的难度。但很多朋友手里只有一张成品图,那么你面临两条路:

第一条路,在Photoshop里手动抠图分层。这是最靠谱、也是做任何Live2D模型都绕不开的基本功。你需要把立绘拆成这些基础层:

  • 身体(躯干+衣服)
  • 头发后层(被身体和脸遮住的头发)
  • 脸
  • 五官里的眼睛(左眼、右眼,通常还要分瞳孔层)
  • 眉毛(左、右)
  • 嘴巴(口腔内部、舌头、上下嘴唇)
  • 头发前层(刘海、鬓角等盖在脸上的头发)
  • 其他饰品(发饰、眼镜等,看具体画面)

为什么头发要分前后?因为头部转动时,后层头发应该"在脸的后面和身体前面",前层头发应该"压在脸前面",这个遮挡顺序决定了转动时有没有立体感。

第二条路,直接用Cubism的单图拆分功能。新版本Cubism有"从图像创建模型"的辅助功能,帮你自动识别部件,但实测下来,它对复杂插图的效果很一般,经常把眼睛和眉毛并成一个图层,导致后期网格调整时很痛苦。所以我的建议很直接:如果要用一张图,先在PS里花半小时到两小时拆好层,再进Cubism。这件事没有捷径,拆层拆得好不好,直接决定后续效率。

2.3 常见误区:图片分辨率不是越高越好

很多新手以为图越大越好,拿个2000x3000的立绘就开始做。实际上,Live2D模型的分辨率不是套用原图越大越精致,关键在"贴图尺寸是否统一布局"。Cubism导出时会把所有图层打包到一张图集(Atlas)里,图集尺寸通常建议2048x2048或4096x4096以内。如果你的图层原件太大或太多,图集会爆,还会拖慢渲染性能。

更合理的做法是:拆层完的部件,在PS里统一缩小到合适的尺寸,让脸部主体大概占画面高度的五分之一到四分之一即可,这样网格变形时计算量小,导出的模型文件也小,直播时更流畅。分辨率够看清纹理细节就够了,别贪大。

3. 第一步实操:把一张静态图拆成"可动的零件"

准备工作完成后,真正的动手环节开始。先从拆图层说起。

3.1 在Photoshop里的拆层顺序与命名规范

如果你拿到的是一张JPG或PNG,需要在PS里把人物抠出来,然后切割成一个个独立图层。我建议这样操作:

  1. 先用钢笔工具或快速选择工具,把人物主体从背景抠出来
  2. 在单独图层里,用套索工具把"脸"框选出来,复制到新图层
  3. 抠出左眼、右眼、左眉、右眉、嘴巴
  4. 区分头发前层和头发后层,分别抠
  5. 身体部分单独一层
  6. 每一层都命名清楚,比如:body、face、hair_back、hair_front、eye_L、eye_R、eyebrow_L、eyebrow_R、mouth

命名用英文或拼音,不要用中文,因为部分版本对中文文件名支持不好,导出时可能乱码。分层这个步骤看起来枯燥,但它是整个Live2D模型"关节"的地基,你分了多少层,后面就能动多少个部分。有些画师图层本来就分得好,我拿到PSD直接改图层命名就能用,省很多时间;如果只有一张成品图,我通常要花不少时间抠图,这没办法避免。

3.2 在Cubism里的网格与变形器基础

打开Cubism,新建一个模型,把PSD或分层PNG导入进来。这时候你会看到左侧图层面板列着所有部件。接下来核心操作是"网格(Mesh)生成"。

选中图层(或者用自动网格生成),Cubism会按图像内容的轮廓自动铺一层三角网格。网格的含义是:贴图会贴在网格上,网格顶点变形,贴图跟着变形。自动生成的网格通常密度偏高、不够贴合轮廓,需要手动调整。我的做法是:

  • 选中网格,切换到"编辑网格"模式,删掉多余的顶点
  • 在轮廓边缘补充顶点,让网格尽量贴合图像不规则形状
  • 网格不是越密越好,密度过高会导致形变时出现"网格感"和抖动,过低又不够顺滑

每个图层都调整好网格后,需要把它们组合进"变形器(Deformer)"。变形器可以被理解成"空的控制点容器",你拉变形器,里面的图层一起动。比如头部的所有部件放进"头部变形器",转动头部时整张脸同步转动,而不会扯出奇怪的分裂。

3.3 为什么零件单独成层能决定成败

这里我要强调一个新手最容易忽略的问题:每一块物理上会相对运动的区域,必须拆成独立图层。举几个例子:

  • 下巴和脸不能是一块整体,否则张嘴时下巴不能往下掉
  • 嘴部内部必须有"口腔内壁"图层,张嘴时才能看到口腔而不是直接穿帮
  • 眼睛至少需要"眼白"和"瞳孔"分层,闭眼时光滑地让眼皮遮住瞳孔,而不是整个眼睛图层压扁
  • 头发前层和后层拆分,转头时两层的遮挡关系才能自然切换

我见过很多新手拿着别人拆好的模型改,觉得图层好多好复杂,就自作聪明把几层合并成一层,结果一动起来,该弯的弯不了、该挡的挡不住,最后只能推倒重来。拆层这件事,"宁多勿少"是不变的原则。

4. 第二步实操:建立参数与变形器,让表情动起来

图层和网格是"静态的骨架",参数和变形器才是"让模型动起来"的灵魂。这一节我重点讲四个最基础的参数组:头部旋转、眼睛、眉毛、嘴巴。

4.1 参数体系:哪些参数是脸捕必需的

Live2D的参数面板里,你会在"参数"列表看到默认的几个大类。要做脸捕,至少得准备这么几组:

  • 头部角度:Angle X(左右转头)、Angle Y(上下点头)、Angle Z(左右歪头)
  • 眼睛:Eye L开合、Eye R开合
  • 眉毛:Brow L上扬/下压、Brow R上扬/下压(左右要分开,不然脸捕时单边挑眉做不了)
  • 嘴巴:Mouth Open(张合程度)、Mouth Form部分时候也做一组

这些参数名不一定要跟脸捕工具完全一致,因为Vtube Studio之类的软件里可以手动做参数映射。但最好是直接沿用Live2D默认命名,这样导入工具时能自动识别,省得一条条去配。

4.2 用变形器实现头部转动

现在做最关键的一步:让头部可以左右转动。在Cubism中,先把所有会随着头部动的图层(脸、五官、前层头发等)放进一个"头部变形器"里。

然后创建参数Angle X,数值范围设为-30到30。接着为这个参数添加三个关键帧:

  • 数值-30:头部向左转,这时需要把网格进行横向压缩变形,并适当移动五官位置,让透视感出来
  • 数值0:正面,不变形
  • 数值30:头部向右转,与-30对称

按快捷键可以在不同参数值之间切换,然后通过拖动网格顶点来调整形变。注意,头部转动不是简单地把整个图压扁,而是要模拟"视线偏移"和"厚度收缩"效果。比如转头时,离视角远的那一侧脸颊宽度要适当压缩,近的那一侧保持甚至微胀。

我个人的技巧是:转头的关键帧里,不仅仅做旋转,还要在垂直方向做一点微小的移动,让鼻子位置略微偏移,模拟走后摄像头的错位感。这样会大幅提升真实度。

4.3 眨眼动作的参数绑定

眼睛参数相对简单,但细节很多。你需要在Eye L/R参数上做三个关键帧:0(睁眼)、1(半闭)、2(完全闭合)。在关键帧之间,Cubism会默认做线性补间,但线性插值会让眼皮像"翻板"一样垂直落下来,非常假。

更自然的手法是:调整眼睛上眼皮的网格顶点,让"闭眼"动作是从上往下盖住的曲线,而不是整体压缩。具体操作:在完全闭合关键帧,把上眼睑的顶点往下拖动,覆盖住瞳孔,同时下眼睑保持不动或者微微上抬一点,形成一个自然的"眨眼"。如果你拆层时拆了瞳孔,还可以让瞳孔在眨眼过程中稍微缩小,模拟真实眼睛的微小变化。

4.4 口型动画:脸捕的灵魂

嘴巴是脸捕最关键的部分,因为观众很容易盯着嘴看。一个真实的张嘴动作,不是把嘴巴那个图层拉长就行,至少需要:

  • 口腔内壁随开口而显现
  • 上嘴唇基本不动或轻微上扬
  • 下嘴唇向下拉伸
  • 下巴网格跟随下嘴唇下移

在Cubism中,我会把"口腔内壁"图层放在"嘴唇"和"脸"之间,并且在Mouth Open参数为0时不显示,在参数大于0时显示出来。这个效果可以通过图层可见性关键帧来做。

实操中,还需要考虑"口型"而不是只有张开度。嘴里除了开合,还有A/I/U/E/O等不同元音的形状,这通常需要一组Mouth Form参数来做。对基本脸捕来说,先做好Mouth Open(张合)这个参数就能用了,但要做得更像,建议后续把五种元音口型也补上。我一般会在基础版本里先做Mouth Open和简单的Smile(嘴角上扬),剩下的高级口型放到第二版再丰富。

5. 第三步实操:导出模型并接入脸捕工具

模型在Cubism里能动,还不算完,我们需要把它导出成脸捕工具能识别的格式,再接上摄像头。

5.1 导出前的最后检查清单

导出之前,我每次都会过一遍这几个检查点:

  • 所有图层的网格是否有遗漏顶点没绑好?在动画预览模式下快速拖动所有参数,确认没有明显的穿帮和撕裂
  • 变形器是否分组正确?头部转动时身体是否稳定?头发前后层遮挡是否正确?
  • 参数最小值到最大值的过渡是否平滑?有没有跳变或者突然的大变形?
  • 模型的物理效果(Physics)先不要加,等基础动画稳定了再加飘发、抖动等效果,不然排查问题时会很混乱
  • 导出设置里,图集大小是否合理?如果图片较大导致4K贴图,而你的直播电脑性能一般,建议压缩图集

确认没问题后,在Cubism菜单里选择"导出为动画模型(.moc3)",它会把模型文件和贴图打包到一个文件夹里。这个文件夹你可以保留,也可以压缩成zip,等会导入Vtube Studio。

5.2 接入Vtube Studio并校准

Vtube Studio可以直接从本地导入.moc3的文件夹或zip包。导入后,你会看到模型出现在场景里。这时打开摄像头,软件会尝试自动捕捉你的面部,自动识别模型里的参数。如果识别不准,你需要打开"参数映射"面板,手动把摄像头数据(比如MouthOpen)对到模型参数(比如Mouth Open)上。

这里的校准环节,我强烈建议花十分钟好好调一下"平滑度"参数。平滑度越高,模型跟随你表情的时间越长,视觉上会很黏滞;调太低,模型会疯狂抖动。我的参考值是10-20之间,具体看摄像头质量和个人喜好。

另外,Vtube Studio支持把摄像头数据做"手动偏移和补偿"。说白了就是,默认的捕捉值往往不是让模型表情对你最舒服的,你需要自己测试:比如我习惯让"张嘴"触发得更灵敏一点点,就让映射曲线在左下角更陡一些,这样麦克风前说话时模型反应更跟嘴。

5.3 在直播软件中使用模型

Vtube Studio本身可以作为一个虚拟摄像头源供OBS读取,这就是最常规的直播链路。只需要在OBS里添加"视频采集设备",选择"Vtube Studio"作为源,画面就会输出模型的实时动态。音频方面,Vtube Studio此时只是驱动模型,你的麦克风音频直接在OBS里正常用即可。

如果你是拿手机(尤其是iPhone)做捕捉,Vtube Studio支持虚拟捕捉协议,用iPhone摄像头能获得更高质量的面部追踪数据,而且不占用电脑摄像头资源。这类设置属于"进阶玩法",本篇先不展开,但给你一个方向:电脑上装iFacialMocap之类的接收端,Vtube Studio里选对应协议,手机会把更精细的表情数据无线传给电脑。

6. 常见问题与排查技巧实录

每一次做新模型,我都会遇到几个重复出现的问题。这里整理成速查表,给你一个排查方向。

6.1 模型抖动严重

抖动的原因通常是两处,一个在模型侧,一个在捕捉侧。

模型侧的问题:网格顶点过密,或者变形关键帧太复杂,导致参数微小变化时网格顶点在相反方向拉扯,产生肉眼可见的高频抖动。解决办法是精简网格,或者检查变形器是否有重叠/反向的作用。另一个模型侧的原因是物理效果(Physics)没有配置好,比如头发物理太重,在面部抽搐式带动下疯狂晃动。

捕捉侧的问题:摄像头帧率低、画面噪点多、光源变化大,都会让脸部关键点定位飘忽。解决办法是尽量用自然光或补光灯让面部光线均匀,降低捕捉灵敏度,增加平滑度。如果条件允许,用手机捕捉会好很多。

6.2 参数不灵敏或过头

脸捕工具里的参数映射往往不是线性对应的,Vtube Studio里可以把一条曲线的非线性调出来。比如你说"我嘴角上扬不明显",可以去参数映射里把对应映射曲线的起点调高、斜率增大。

如果模型里某个参数本身上下限没有给够,比如Mouth Open最大只有0到1,而捕捉数据是0到2,那自然无法完全张开嘴。这时候需要回到Cubism里,重新调整参数范围,或者把关键帧的形变做得更大,让上限值对应的表情足够夸张。

6.3 模型穿模/遮挡关系错误

穿模就是两个图层互相穿插,比如转头时头发前层应该盖住眉毛,但网格变形后它却跑到眉毛下面去了。

这个问题的根源,多半是图层顺序不对。在Cubism里,图层面板从上到下代表渲染顺序,上面的图层会盖住下面的。你需要检查:头发前层是否在整个头部所有图层的最上面;头发后层是否在脸的后面;身体要不要盖住头发后层等。理清顺序后,再在变形器里确认每个图层是否归属正确,很多穿模是图层被误放进错误的变形器导致的。

6.4 性能占用过高

直播时模型掉帧,多半是贴图图集太大、物理计算太重或者特效脚本太多。先在图集里把贴图压缩到2048x2048或1024x1024,再把物理子的"刚性"和"范围"调低,通常能明显缓解。模型上如果加了复杂的呼吸、眨眼动态触发脚本,也会持续消耗CPU,直播机上建议关掉不必要的自动化脚本,把计算资源留给摄像头捕捉和渲染。

7. 关于后续的一点个人建议

这一篇讲到这里,"一张图制作Live2D的基本脸捕动画"的上半部分差不多告一段落。模型能动了、能接入摄像头了,但说实话,它还只是一个"比较简单的基础版本"。我建议下一步做的事情是:

第一,把口型的A/I/U/E/O五种元音做完,这是提升口播观感最快的手段。第二,添加物理效果,让头发、衣角、饰品有轻微摆动,直播画面会活泼很多。第三,做一个"待机循环动作",让模型在没人说话时也有轻微呼吸、眼神漂移,而不是死板地定格。这三步做完,你的模型已经有了相当不错的完成度。

从我个人的经验来说,真正让我把Live2D摸透的,不是看了多少教程,而是反复做模型、反复改参数、反复在直播中测试。每加一个参数,你就多理解一点"为什么别人那样调";每次看到模型出问题,你排查的过程就是进步最快的过程。这一篇是基础,下一篇我会重点讲口型动画、物理效果和高级参数映射,争取让你这个"一张图"做的模型,在直播里也能撑起场面。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/1 1:16:12

Win10下RTX 2070s显卡驱动安装全攻略:从DDU清理到黑屏排查

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/1 1:16:01

离线Ubuntu源码编译安装Samba完整指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/1 1:15:36

Qt版本选择指南:LTS、Kit、交叉编译与迁移避坑

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/1 1:14:24

校园二手交易平台源码实战:Java+小程序+MySQL从跑通到毕设高分

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华