如何用原神角色当虚拟主播

时间:2024-03-12 11:44:48

2021/11/18
发现有一款名为小K直播姬的免费国产的软件,不过需要手机注册账号才行,只需RGB摄像头就能完成面部和半身动捕,还能导入自定义模型(VRM格式),详情请见量子位官网下载
作为一个笔记本只有1050Ti显卡的...只能玩一玩他们提供的面部动捕,上半身动捕得至少1060显卡才行:

2021/10/07
国庆假期最后一天,再来整点好玩的~
这次是为了研究如何用原神提供的人物模型做虚拟主播。虽然对主播没啥兴趣,但是一想到可以真人扮演还是挺好玩的:)
简单搜了下教程然后来现学现卖,工作流程主要是用Unity将模型转换成VRM格式,然后导入到VSeeFace这款免费软件中进行愉快玩耍。

首先去Github下载两个关于VRM格式转换的packages:

然后用2019.4版本的Unity创建一个Built-in项目,并将这两个packages导入:

导入一只.FBX格式的王小美(可以用Blender将.pmx格式进行转换),并将Animation Type设置为Humanoid:

选中王小美,然后菜单栏->VRM0->Export UniVRM

然后会弹出一个VRM Exporter框,会有四个红色叹号。问题不大,只需要点击T-Pose日文按钮把人物变成T-pose,然后滚轮滚到下面把Title(人物名字,例如:椰羊),Version(版本号,填1.0就好了),Author(作者)给填上,然后点击Export按钮将初始的VRM格式模型导出到一个新文件夹里(例如 初始VRM):

然后将Wxm.Materials文件夹里的材质的Shader统一替换成VRM->MToon,里面材质的属性可以根据自己喜好调整,比如说调调轮廓线,边缘光,把透明材质的Rendering Type设置为Transparent之类的(不知道可不可以换成自定义shader...),再将初始VRM文件夹的模型prefab拖到Scene场景下(蓝色图标)

点击该gameobject,找到VRM Blend Shape Proxy组件,点击上面的Blendshape,然后project中的Blendshape文件会被高亮显示。点击该文件,对表情进行设置。设置的话就依次点击对应的按钮,再调整下方的Blendshape,让模型做出对应的表情动作即可。我这只简单设置了A,I,U,E,O和Blink对应的BlendShape,Inspector下方有个预览窗口,显示可能会有点问题不过应该问题不大

设置好表情后,需要对头发裙摆的仿真进行设置。找到Wxm gameobject的孩子——secondary。上面挂载一个VRM Spring Bone组件,需要把人物需要摆动部分的骨骼根节点拖拽到Root Bones卡槽内,比如裙子头发之类的,可以在这个上面添加多个VRM Spring Bone脚本,分别放置不同的骨骼节点,比如头发放一起,裙子放一起,这样参数就可以分开设置。具体参数就是手调了,也说不准,可以在运行模式下来回晃动人物查看头发裙子摆动是否合理:

有时候头发和裙子可能会和身体穿模,所以可以在对应的骨骼上添加VRMSpringBoneColliderGroup组件,对大小进行合理设置,使穿模不那么明显。这个组件是可以添加多个碰撞球体的,改变size的大小就可以添加多个球体。设置好后再把它拖到对应的VRM Spring Bone组件的Collider Groups里

设置完后,点击Wxm gameobject,找到VRMLookAtHead组件,将头骨骼拖拽至head,将Main Camera拖拽至Target,这样就能让人物的视线跟随相机运动从而显得更加机智。它下面的VRMLookAtBoneApplyer组件可以调整眼睛转动范围,在运行模式下移动相机可以看到人物的眼球运动:

然后就可以导出最终VRM格式模型了,步骤和导出成初始VRM格式模型类似,也是点击wxm gameobject,选择VRM0->Export VRM,点击Export按钮,新建一个 最终VRM文件夹,导出到该文件夹下(VRM Exporter是可以设置成英文的,在lang下进行设置即可,之前忘了说了...):

然后下载VSeeFace这款免费软件,打开后点击Add Avatar,选中导出的.vrm格式文件,然后选择它,点击start(右下角可以调成中文):

然后就可以愉快玩耍了

点击右下角的小叉可以隐藏UI并将背景透明化:

要和直播那一套东西接起来也不难,只需打开obs,添加一个游戏捕获窗口,将模式设置为捕获特定窗口,窗口选择VSeeFace,再勾选SLI/Crossfire 以及允许透明度两个选项,将窗口拖到合适位置即可:

实际效果如下:

要加入手势识别的话得用到LeapMotion这个硬件,大概长这样:

要在PC上用的话还得去官网下个软件安装视频教程也是一大堆。LeapMotion可以放在头上,放胸前或者就直接放在桌上。直接放桌上比较方便,不过识别范围有限,手的互相遮挡也会影响识别准确率:

放好LeapMotion后还要在VSeeFace里设置LeapMotion的位置,点击Settings->Leap Motion Settings可以打开面板调对应参数(Leap Motion放置在现实中的位置之类的):

实际效果...还凑合吧:

遇到的问题

阴影显示好像有点问题,于是我把材质的阴影颜色设置为肤色(白色)
用的是笔记本自带的摄像头,追踪不是很稳定,人物总是闭眼睛...

未来计划(咕咕咕)

如何导入自定义材质
如何将动作录制下来导入Unity进行二次创作
其它工作流程研究

参考链接

VSeeFace VTuber Tutorial and Full Guide 2021 【VTuber/Artist】(关于VSeeFace软件的基操)
How to convert your avatar into VRM format for VTubers! (2021)(用Unity将模型转换成VRM格式)
Convert Avatar to VRM for Vtubing - Detailed with explanations!
Very straightforward guide on setting up VseeFace in OBS!
DIY Vtuber Unreal Engine 5 / 4.26 Application for FREE - Full guide
Leap Motion Controller Setup and Demo
Hand Tracking / Leap Motion Controller VSeeFace Tutorial - 04 - How to Be a VTuber - Tutorial