Notifications
Article
虚拟偶像技术方案指南
Updated 8 months ago
1.8 K
7
常用的虚拟偶像实现方法,以及一些相关的 Unity 插件,最后还会介绍几款免费软件,感兴趣的同学不要错过哦
今天我们来系统的介绍一下打造虚拟偶像需要用到的技术,说是虚拟偶像,其实也可以应用于更广义的人型 3D 形象。这里侧重于针对使用 3D 形象进行直播的场景,如果是制作动画,由于可以后期编辑,对实时性、数据准确率的要求不是那么高,技术方案的选项也会更多些。
一般的虚拟偶像技术方案,主要包括以下几个部分,
动作捕捉 手势控制 表情控制 口型同步
除此之外,可能还会用到眼动捕捉,变声软件之类,这次先略过了。

动作捕捉

首先我们来看最重要的动作捕捉。根据实现的原理,动作捕捉方案可分为光学以及惯性两类。光学动捕需要在场地安置多台摄像机,这些摄像机同时对演员身上佩戴的光学标记进行识别,从而得到演员的位置以及动作信息。惯性方案则是通过演员各关节佩戴的惯性传感器得到骨骼的旋转信息。
光学方案的优势在于精确度高,同时支持的人数多,而且可以取得绝对位置,便于演员之间、或者演员与物体之间的交互。而由于需要大量摄像机,所以初期成本、运营成本都很高,对使用人员的要求也更专业。
而惯性方案的优势在于设备成本低,使用方便,对场地也没特别要求,光学方案中可能出现的遮挡问题也能从原理上避免。另一方面,惯性方案由于无法取得各传感器的绝对位置,要实现诸如握手这样的多演员交互比较麻烦,而且因为惯性传感器会累计误差,随着使用时间增长,可能逐渐产生位置偏移,不得不经常校准。
常用的光学动捕包括,
VICON
VICON 是电影级设备,VTuber 用的人不多,彩虹社于 2019 年 10 月导入使用。
完整视频:https://www.youtube.com/watch?v=rQNMvG_dlWY
src: https://www.bilibili.com/read/cv3835796/
OptiTrack
OptiTrack 相比 VICON 价格稍低,也更为普及,使用者如虚拟女团 marinasu,
完整视频:https://www.youtube.com/watch?v=puDLucsK1lw
需要注意的是这是一段经过后期编辑的视频,可能并不代表 OptiTrack 捕捉的实际数据。
src: https://area.autodesk.jp/case/technology-art/marinasu/
惯性系统有,
XSens MVN
XSens 作为比较高端的惯性方案广泛应用于 VTuber 以及动画制作中,比如下面的视频,
完整视频:https://www.youtube.com/watch?v=xds00gPAOk8
src: https://www.moguravr.com/one-piece-vtuber/
Perception Neuron
Perception Neuron 由国内厂商诺亦腾出品,因为在虚拟偶像领域发力早,价格优势明显,深得 VTuber 喜爱,捕捉示例如下,
完整视频:https://www.youtube.com/watch?v=n-7KlFRVdrc
电脑少女小白据说用的是 Perception Neuron。
src: https://zh.wikipedia.org/wiki/%E9%9B%BB%E8%85%A6%E5%B0%91%E5%A5%B3%E5%B0%8F%E7%99%BD
通过以上的介绍可知,光学和惯性方案的优劣都很明显,所以现在已经出现兼具光学和惯性优点的混合型动捕方案,比如诺亦腾今年推出的 Perception Neuron Studio。其在惯性动捕的基础上增加摄像头进行绝对位置定位,帮助减少因为误差积累形成的偏移,效果非常可期。其他惯性厂商,也有类似方案。
以上是动捕系统的硬件面。从软件面来说,光学和惯性方案的方法差不多,要么提供可供 Unity 或者 Unreal Engine 使用的插件进行数据导入,要么可以将动作数据导入 Maya、MotionBuilder 之类的 3D 软件,再通过 MeshSync(Unity) 或者 LiveLink(Unreal Engine) 导入到引擎中。
相比 LiveLink,可能 MeshSync 大家不是很熟悉,放个连接吧。
https://github.com/unity3d-jp/MeshSync
项目简介是,
live link plugin for Unity. supported tools: Maya, Maya LT, 3ds Max, Motion Builder, Modo, Blender, Metasequoia.
VIVE Tracker
除了上述这些传统意义的动捕系统,我们还能用 VIVE Tracker 构建比较另类的动捕系统。从原理上说,VIVE Tracker 也算是光学动捕,说其另类是因为,上面的这些动捕系统都可以直接输出骨骼信息,而 VIVE Tracker 只能输出传感器位置,我们需要中间件来将位置信息转换为骨骼信息,也就是需要进行 IK(Inverse Kinematics)。之前比较常用的是 IKinema 的 Orion,而去年 IKinema 被苹果收购后,Orion 前途未卜,所以比较靠谱的还是自己在引擎中借助 IK 插件完成这种转换。
在 Unity 中,IK 插件无二的选择是 FinalIK,
https://assetstore.unity.com/packages/tools/animation/final-ik-14290
Unreal Engine 中还没有出现能跟 FinalIK 媲美的插件,比较接近的是 Vive Mocap Kit,作者活跃于论坛积极回答各种疑问,软件本身也经常升级,非常期待赶上 FinalIK 的那一天。
https://www.unrealengine.com/marketplace/vive-mocap-kit
如果实在想在 UE4 中使用 FinalIK,办法也是有的,就是在 Unity 中做了 IK 之后,通过通信协议把骨骼信息传到 UE4 里进行渲染。感兴趣的可以参考下面的项目。
https://github.com/HAL9HARUKU/VMC4UE
既然用 VIVE Tracker,一大半功能需要自己实现,那为什么还用来做动捕呢,主要原因有两个,其一是硬件成本远低于其他各种方案,其二演员不需要穿光学动捕中需要的动捕服,或者像在惯性方案中那样在身上绑十几甚至几十个传感器,而只需要在头、手等几个关键位置佩戴 Tracker,便能满足大部分动作的捕捉需求,对演员来说非常轻便。
使用 VIVE Tracker 的 Vtuber,最有名的要算“一二三酱”,其“中之人”是日本 80 高龄的将棋天才加藤一二三。从穿脱简便,减少动捕设备对“中之人”的负担等方面来说,非使用 VIVE Tracker 不可了。
原视频:https://www.nicovideo.jp/watch/sm34774066

手势控制

手势控制主要有以下三种方法。
动捕方案自带的手势捕捉 独立的手势捕捉方案 在预设手势中选择
动捕方案自带的手势捕捉
上文提到的 XSens MVN,Perception Neuron 等惯性方案现在都可增配手势捕捉。如果动捕选择的是惯性方案,那么选择这些自带系统也是自然的延申。
独立的手势捕捉方案
这个领域选择很多,既有老牌的,也有前几年跟随 VR 热潮起来的,下面罗列几种,
Manus VR
StretchSense
IGS Cobra Glove
他们的共同特点是都不便宜。
在预设手势中选择
除了上述两种依靠捕捉来控制手势的方法外,另一种常见的方法是通过控制器在预设的手势中选择。选用这种方案,面临的最主要考量是,控制器是由演员使用还是另外配备人员控制。如果是由演员实时控制,控制器就不能太复杂,相应的预设手势数量比较有限,如果专门配置人员使用,控制器的选择比较丰富,从键盘到游戏手柄到专门的外设都行,预设的手势数量也可以多些。

表情捕捉

表情捕捉可算是虚拟偶像方案中除动作捕捉之外的另一个重要组成部分,现在主要方案有以下三种。
图像识别 iPhoneX 深度摄像头识别 在预设表情中选择
图像识别
这是传统的影视制作的表情解决方案。通过摄像头捕捉演员的面部表情,经由解析软件得到表情信息后,应用到虚拟形象上。
这种方法的优点在于解析精度高,当然解析软件都不便宜。常用的包括以下这些,
Faceware
DynamiXYZ
民用级别的解析软件,结果还差强人意,比如下面这款基于 OpenCV 的插件,
https://assetstore.unity.com/packages/templates/tutorials/cv-vtuber-example-118186
iPhoneX 深度摄像头识别
src: https://www.fxguide.com/fxfeatured/bebyface-in-bebylon/
这个方案发源于 2018 年,主要通过 iPhoneX 的深度摄像头识别人脸的表情信息,再转换为由苹果事先约定的 51 种微表情并进行组合,从而形成虚拟形象的表情。该方案优势在于解析软件的门槛很低,Unreal Engine 和 Unity 都已经开源了实现方法,非常容易移植到自己的模型上。
https://docs.unrealengine.com/en-US/Platforms/AR/HandheldAR/FaceARSample/index.html
https://github.com/Unity-Technologies/facial-ar-remote
而且适用于该方案的微表情已经可以流水线生产,进一步降低了实现难度。
https://www.polywink.com/15-78-facial-animation-for-iphone-x.html
该方案主要的弱点在于,为了让 iPhoneX 始终拍摄到人脸,需要佩戴类似头盔的固定器,表演者的活动受到一定限制。
在预设表情中选择
除了以上两种方法外,和手势一样,我们也可以通过控制器在预设的表情中选择。这种方法很适合表情不需要特别真实的二次元形象,而且还能用于星星眼之类无法通过人脸识别得到的夸张表情。当然主要的问题也是由谁操控。
src: https://cgworld.jp/feature/201907-cgw251-hs3hiyori-2.html

口型同步

最后是口型同步,主要方案有如下几种。
图像识别 iPhoneX 深度摄像头识别 声量识别 音素识别
图像识别
和表情识别一样,也是通过一般摄像头获得脸部图像后,由解析软件得到嘴型信息,并且应用到虚拟形象上。和表情捕捉不同的是,因为只需要得到嘴部轮廓,解析软件已经普及,在 Unity 中可以试试下面的插件,
https://assetstore.unity.com/packages/tools/integration/single-face-tracker-plugin-lite-version-30-face-tracking-points-90212
https://assetstore.unity.com/packages/tools/integration/dlib-facelandmark-detector-64314
iPhoneX 深度摄像头识别
因为 iPhoneX 的深度摄像头也能识别口型,所以如果表情识别使用的是 iPhoneX,那么其实也顺带完成了口型同步。
声量识别
根据声量的大小来控制嘴巴张开的大小,一般分大中小三种。实现简单,虽然听上去有些简陋,但用在二次元形象上还恰到好处,我们随便看一段 Kizuna AI 的视频,就会发现其嘴型的变化种类很少,
完整视频:https://www.youtube.com/watch?v=3sPnwZUMckE
在 Unity 中实现该方法并非难事,也可以借助下面的插件,
https://assetstore.unity.com/packages/tools/animation/salsa-lipsync-suite-148442
音素识别
这种方法通过语音识别,判断当前所发的是什么音,进而选取与该语音匹配的口型,这也是传统意义上的口型同步。现在比较常用的库是 OVRLipSync。
https://developer.oculus.com/documentation/native/audio-ovrlipsync-native/
或者 Unity 中的如下插件,
https://assetstore.unity.com/packages/tools/animation/lipsync-pro-32117
这些库针对的都是英文语音,音素众多,一般汉语的日常对话,我们只需处理 A O E I U 这样的元音即可。
以上大致介绍了虚拟偶像方案的各个部分,用到的技术各有长短,适用于不同场合,需要根据实际直播或者动画制作的需求进行组合。

其他软件

另外一方面,随着虚拟偶像内容的不断丰富,也出现了可供制作特殊内容的专门软件,比如,
可提供板书,适合制作教学内容的 VDRAW,
https://sites.google.com/view/vdraw/
适合用来直播游戏或其他各种电脑操作的 VMagicMirror,
https://github.com/malaybaku/VMagicMirror
以及大家经常看到的,被用来制作 Beat Saber 视频的 VirtualMotionCapture。
https://github.com/sh-akira/VirtualMotionCapture
这些项目的特点是全都免费甚至开源,有些甚至不需要额外硬件设备支持,非常适合对虚拟偶像有兴趣的个人进行尝试。
冯侃
www.sunnyview.tech - Programmer
11
Comments
姬柯丞
2 months ago
Nice
1
未来
7 months ago
0
Neil
8 months ago
3D Developer
很全面!
0
🐶柳
8 months ago
救星啊..😭
0
张燚龘
8 months ago
独立游戏开发者
挺好的,可惜我买不起。 如果硬件成本下降,或许能促进许多基于虚拟偶像的社交类应用?也就不单单局限于直播了。
0