VtuberStudio配置选择和模型调参

好久没用Vtuber Studio了,最近闲下来了,想掏出来玩点游戏,想起之前用USB摄像头模型效果一直不太好,比较僵硬,还经常丢追,于是去b站搜一下调优方法,看了一晚上,头昏脑胀ing

这一两年没碰,新技术还挺多的,姑且记录一下调试的过程吧

1. OBS输入源选择

参考:vts官方wiki

https://github.com/Mouwoo/VTubeStudio/wiki/Recording-Streaming-with-OBS

对于win平台,Vtuber Studio(VTS)有几种常用的输出可选

  • obs游戏采集vts进程
  • obs采集vts虚拟摄像头
  • spout2插件输出
  • NDI网络接口推流(没用过)

前面俩比较常用,都是老方法了

第一种最简单方便,问题在于vts的UI也会被采集到obs,在直播的时候如果要调vts软件设置就不太方便。

虚拟摄像头需要装个驱动,用起来也比较方便,不会采集到vts UI,据说画质没有第一种好(存疑)

用法参考wiki,b站也介绍很多

说下spout2,这个应该是新加的,也没看到啥视频介绍,但是在wiki上官方最推荐这个方法

image-20250214194459415

看起来很棒

不过需要手动给obs装一个插件

官方的安装指南:https://knowledge.offworld.live/en/spout-plugin-for-obs-studio/how-to-install-the-spout-plugin-for-obs-studio

  1. 关掉obs

  2. 下载最新版本:https://github.com/Off-World-Live/obs-spout2-plugin/releases(第一个,自动安装的,这玩意很久没更新了啊,适配的还是obs29,不过实测看起来在最新的obs31里用起来是ok的)

  3. 一路next结束

  4. 在vts里打开spout2输出(和其他方法一样,背景还是依然用纯色+允许透明)

    image-20250214195126138

  5. 在obs里加一个spout2输入,如图配置一下,ok

    image-20250214195350401

2. 小技巧

给vts设置为管理员启动(对steam打开也生效)

wiki说可以增加进程优先级,降低延迟和卡顿(谁知道呢)

image-20250215001240940

3.追踪方式

常用的面捕方法有这么几种

  • VTS内置追踪直接调用电脑usb摄像头(最简单,效果差)
  • 电脑usb摄像头输入,VTS调用NVDIA面捕或者Google的面捕(比上面好,但是依然受摄像头限制)
  • VTS ios端调用苹果iPhone面捕api,局域网推流面捕数据给电脑本地VTS调用(精度高,效果好)
  • VTS ios端面捕,推流给电脑上的VBridger,VB推流给电脑端VTS调用(使用复杂,效果最好,可以实现额外的动作效果)

其实还有几种其他的搭配,比如电脑摄像头配VB,感觉意义不大就不多提

这里苹果的面捕api比起电脑摄像头有绝对的优势,这个是硬件差距,包括苹果的面捕摄像头硬件和ios的api生态。实测来看,不管是vts的面捕还是n卡面捕啥的,在我这种双屏常转头+摄像头比较远+摄像头在底侧向上拍的情况下,都无法避免丢追。但是ios的面捕工作稳定。

所以一般来说都会建议有条件的情况下使用苹果面捕(我这里是淘汰下来的老iPhone13正好再利用了,用了个手机支架横着放在电脑屏幕下面)

然后是vb,vb是一个面捕软件,通过接收苹果api的面捕数据,二次计算得到更复杂精细的面部建模和追踪,用来驱动vts。

image-20250328003021305

关于用不用vb,当然vb可以实现很多高级的复杂表情识别,但是这个是依赖你的模型建模的,如果你的模型没有做这些高级的输入绑定,那其实vb也无法帮你实现更高级的效果(我的模型就是普通的)

如果你的模型是适配vb的,那当然肯定要用vb

但是即使模型是普通的,也还是可以用的,vb是支持兼容普通模型的模式的,只不过就实现不了高级的表情,还占用电脑资源,增加复杂度

然而我试过之后还是用了手机vts+VB+电脑vts的方案,原因是是啥呢

首先吧

你用vb是可以不用买手机版vts的,手机vts要150,vb只要30多

众所周知如果你直接用手机vts推流电脑vts,如果不买手机端vts,5分钟就会自动断连

但是如果你用vb,vb是使用第三方客户端连接接口,不通过推流接口,所以并不会受这个影响,是可以正常使用的,也就是其实只用买个vb就好了(这里不涉及破解啥的,完全是正常的功能使用)

但是其实这是小事,vb还有个好用的地方…他可以调输出曲线!

这个等会说

先说下配置

工作流配置

首先保证iPhone和电脑在一个路由器局域网下面

然后装ios的vts,不用装模型,直接开设置,拉到最下面第三方客户端,打开它(不用开pc推流)

再点下显示ip,记下iPhone的局域网ip备用

然后打开vb,载入

image-20250328003704492

如果你是vb模型可以用前面那些高级的,我是普通模型就用了最后那个兼容配置

image-20250328003752365

把刚才的ip写在这里,连接上iPhone

这时候vb里的模型应该已经可以动了

然后打开电脑版vts

image-20250328004016998

在设置里给这个打开

image-20250328004059943

去vb下面选vts,点右边的连接

然后去vts里点同意

image-20250328004152122

这里插件应该连上了,你的模型也会动了

搞定~

剩下的就和正常的vts配置一样了,b站教程很多

注意这么做的情况下,电脑端vts的所有面捕参数都不生效,比如灵敏度啥的

image-20250328004307411

这些都不生效,由手机端控制

同样的,手机端所有模型配置都不生效

image-20250328004341367

包括这些模型参数,表情啥的

可以理解为现在被拆成了两部分,手机只负责面捕,电脑只负责渲染模型

关于vb和曲线

这里就说到为什么要用vb了

众所周知vts的参数输入映射是一个一次函数

也就是[x,y]到[i,j]的一个线性映射(前面是你的面捕参数,后面是给模型的驱动参数)

image-20250328011019567

这里怎么调都是线性的,在大部分情况下,通过调这四个值的范围来控制表情的动作幅度,常态表情是什么都是可以实现的

但是有些时候就会有问题

比如我这里的睁眼参数

在我对着主屏幕看的时候,这个参数大概是0.7左右,正常来说我要把这个常态调整到输出给模型的1.0(也就是正常睁眼)

大概是上面这个映射值

但是当我稍微转头,看左边的屏幕,就出问题了

这时候面捕识别到的睁眼参数会下降到0.4~0.5左右,实际上我还是睁眼,但是就会变成这样

image-20250328011230412

输出只有0.7了,变成了半闭眼,就很诡异

只有我的输入参数到了0.2,0.3,也就是接近闭眼或者眨眼的情况,我才希望模型闭眼,不然就维持在睁眼的状态(比如转头看侧屏的时候应该是睁眼)

通过这个简单的输入映射,就没法解决这个问题

一个办法是改模型的控制参数里的变形器绑定,相当于直接修改模型动作,但是很明显模型不好改,一般来说都不会有源文件

那么用vb的曲线就可以解决这个问题

首先我们常态的输入是0.7,这时候眼睛的驱动参数是1左右,是正常的

然后我转头,最差的情况输入下降到了0.4

我希望在0.4~0.7的输入情况下模型的眼睛都不会明显闭眼,也就是把0.4~0.7的输入都映射到0.7左右的输出

那么我们改曲线

image-20250328011709060

手动加两个控制点

image-20250328012742732

总之修成大概0.4到0.7的区间输出都是0.65左右就好了

这样也不影响前后段的眼睛动作(比如闭眼,眨眼和睁大眼)

ok~

这玩意用法应该还有挺多的,就看怎么开发了