新手上路
创建场景
话不多说,我们开始吧!要让你的 3D 模型动起来,我们需要配置 Warudo 的场景。场景的概念和 OBS 或者游戏引擎的场景有一点类似,可以理解为「一个可随时切换的配置文件」。
具体来说,Warudo 的场景由两部分组成:资源以及蓝图。
- 资源:一个资源就是一个「东西」,比如一个角色、一个摄像机,一个动捕数据接收器等等。
- 蓝图:一个蓝图可以实现一个或多个「功能」,比如「按 X 键切换到 Y 表情并切换到 Z 动作」、「收到 X 礼物时,让道具 Y 砸到角色的头上」等等。
Warudo 会默认打开最后一次 打开的场景(没有场景的话会打开默认场景)。为了方便起见,我们创建一个新场景吧!
点击左下角「🚀」->「创建新场景」,输入场景名称,点「确定」就可以创建啦。
创建完毕后,资源列表应该是这样的:
加载角色
现在我们把模型加载到场景中。你的模型八成是 VRM 格式,所以我们来加载一个 VRM 文件看看吧。
Warudo 目前支持两种模型格式:.vrm
以及 .warudo
。前者是使用 VRoid Studio 等软件制作的格式,后者是 Warudo 自创的格式,可以通过 Warudo SDK 将 Unity 中任意配置好的模型 GameObject 导出为 .warudo
。不过这是进阶话题啦!
首先,我们打开数据文件夹:
把 VRM 文件放到 Characters 文件夹里:
无需重启 Warudo,回到我们的配置界面,点击「角色(未激活)」选中角色资源,在「源」的下拉选单选择想加载的 VRM 即可。
应该就能见到模型加载到场景中了!
场景基本操作
我们来欣赏一下刚刚加载好的模型吧。默认的摄像机模式是**「环绕角色」,也就是摄像机会绕着角色转。你可以鼠标左键或右键**来旋转视角,鼠标滚轮来拉远拉近,鼠标中键来平移视角。试下将摄像机移动到这个角度吧:
如果资源列表中「角色」还是选中状态的话,那么你会看到模型的脚下有一个可以用来移动模型的 Gizmo——使用方法也很直观,直接拖着 移动就好了,像这样:
按 E 键可以切换到旋转 Gizmo(顺带一提,按 W 键可以切换回位移 Gizmo):
按 R 键可以切换到比例 Gizmo:
可以在主界面按 G 键随时开启 / 关闭主摄像机的 Gizmo。
然后你就可以把你的模型变成这个样子了:
……看起来不大妙!怎么复原呢?如果你有留意的话,你会发现配置界面**「变换」**里面的值会跟着你刚才的操作而改变。比如我现在的就是这个样子:
那么要回到初始状态,设置成默认值就好了!
摄像机除了可以绕着模型转以外,还可以切换成**「自由观察」**模式,直接在场景中穿梭飞行。选中摄像机资源,然后「控制模式」选择「自由观察」:
鼠标右键的状态下 WASD 键移动,E 键和 Q 键上升和下降,按住左 Shift 可以加速;鼠标中键可以平移视角。
习惯了两种摄像机操作模式后,我们回到「环绕角色」模式,然后点击**「重置摄像机变换」**让摄像机回到默认位置吧。
配置动作捕捉
那么,终于要让模型动起来了!我们先来看看 Warudo 内置都支持哪些动作捕捉方案吧。
面部追踪方案:
- OpenSeeFace(Beta):基于摄像头的面捕方案。可以捕捉基本 BlendShape,以及头部的旋转和移动。和 VSeeFace 的面捕效果大致相仿。
- iFacialMocap:基于苹果 ARKit 的面捕方案,需要一台支持面容 ID 的 iOS 设备,并购买 iFacialMocap App(国区售价 40 元)。可以捕捉 52 个 ARKit BlendShape,以及头部的旋转和移动。精度和可动性最佳。
- RhyLive:基于苹果 ARKit 的面捕方案,需要一台支持面容 ID 的 iOS 设备,并下载 RhyLive App(免费)。可以捕捉 52 个 ARKit BlendShape,以及头部的旋转和移动。精度最佳。
- VMC:由外部程序发送 VirtualMotionCapture 数据到 Warudo。一般较少使用 VMC 发送面捕数据。
- Rokoko:由 Rokoko Studio 发送面捕数据到 Warudo。
姿态追踪方案:
- MediaPipe(Beta):基于摄像头的上半身动捕方案。优点是可动范围较大,手部能够前后移动;反应更为及时,可以捕捉到快速甩手、挥拳等。缺点是初次配置和校正需要一点点时间,并且稳定性略有不足。可动性最佳。
- RhyLive:由域动数字 RhythMo 研发的上半身动捕方案,需要一台支持面容 ID 的 iOS 设备,并下载 RhyLive App(免费)。缺点是长时间使用,设备会发热严重。
- VMC:由外部程序发送 VirtualMotionCapture 数据到 Warudo。比如你想使用 VR 动捕(例如:SlimeVR、Mocopi 等),就可以使用 VirtualMotionCapture 软件,发送 VMC 数据给 Warudo。
- Xsens MVN:由 Xsens MVN Analyze/Animate 发送全身动捕数据到 Warudo。
- Rokoko:由 Rokoko Studio 发送全身动捕数据到 Warudo。
好了,我听到你在问了:「那我应该选哪两个?!」
——只要照着下面的步骤来选择就可以了!
- 我有一台 iPhone / iPad:
- 我更在乎稳定性和易用性,或者我没有广角摄像头:RhyLive + RhyLive。
- 我更在乎表现力,并且我有广角摄像头:iFacialMocap + MediaPipe。
你的模型师是否为模型适配了 ARKit 的 52 个面捕表情(又称「完美同步」)?基于 ARKit 面捕的表情要比 OpenSeeFace 灵动得多,可以极大提升模型的表现力。
- 我没有 iPhone / iPad:OpenSeeFace + MediaPipe。
如果你没有 iOS 设备的话,可以考虑入手一台二手的 iPhone X。这是最便宜又支持面容 ID 的 iOS 设备。
除了家用 VR 设备以外,许多动捕设备都有第一方或第三方的 VMC 支持,例如 Mocopi、Perception Neuron、Rokoko,所以都可以接入 Warudo。
除了家用动作捕捉方案以外,Warudo 还支持众多专业动作捕捉设备。
因为是教程嘛,**我们这里就以 RhyLive + RhyLive 作为例子,**但你可以到这个页面查看其它动捕方案的详细介绍、属性介绍和配置技巧。
选中角色资源,点击「动作捕捉」->「配置动作捕捉」:
「面部追踪模板」选择 RhyLive。下面会有选项询问想要使用哪种 BlendShape 映射;绝大多数情况下使用默认自动选择即可。
BlendShape 是什么?一个 BlendShape 是模型网格上若干个顶点的位移,像下面这样:
来源:https://developpaper.com/unity-realizes-facial-expression-transition-and-switching-animation-tutorial-through-blendshape/一个 BlendShape 的值在 0 到 1 之间。值为 0 时,顶点不移动;值为 1 时,顶点移动到目标位置,如下所示:
注意,Unity 中 BlendShape 的取值范围是 0-100,但在 Warudo(以及大多数 3D 工具)中 BlendShape 的取值范围都是 0-1。来源:https://developpaper.com/unity-realizes-facial-expression-transition-and-switching-animation-tutorial-through-blendshape/一个模型上有什么 BlendShape 完全根据模型师(和制作工具)而定。以下列出一些常见的 BlendShape 列表(仅供参考,你的模型可以有更多 / 更少 BlendShape):
VRoid Studio 制作的模型
- Fcl_ALL_Neutral
- Fcl_ALL_Angry
- Fcl_ALL_Fun
- Fcl_ALL_Joy
- Fcl_ALL_Sorrow
- Fcl_ALL_Surprised
- Fcl_BRW_Angry
- Fcl_BRW_Fun
- Fcl_BRW_Joy
- Fcl_BRW_Sorrow
- Fcl_BRW_Surprised
- Fcl_EYE_Natural
- Fcl_EYE_Angry
- Fcl_EYE_Close
- Fcl_EYE_Close_R
- Fcl_EYE_Close_L
- Fcl_EYE_Fun
- Fcl_EYE_Joy
- Fcl_EYE_Joy_R
- Fcl_EYE_Joy_L
- Fcl_EYE_Sorrow
- Fcl_EYE_Surprised
- Fcl_EYE_Spread
- Fcl_EYE_Iris_Hide
- Fcl_EYE_Highlight_Hide
- Fcl_MTH_Close
- Fcl_MTH_Up
- Fcl_MTH_Down
- Fcl_MTH_Angry
- Fcl_MTH_Small
- Fcl_MTH_Large
- Fcl_MTH_Neutral
- Fcl_MTH_Fun
- Fcl_MTH_Joy
- Fcl_MTH_Sorrow
- Fcl_MTH_Surprised
- Fcl_MTH_SkinFung
- Fcl_MTH_SkinFung_R
- Fcl_MTH_SkinFung_L
- Fcl_MTH_A
- Fcl_MTH_I
- Fcl_MTH_U
- Fcl_MTH_E
- Fcl_MTH_O
- Fcl_HA_Hide
- Fcl_HA_Fung1
- Fcl_HA_Fung1_Low
- Fcl_HA_Fung1_Up
- Fcl_HA_Fung2
- Fcl_HA_Fung2_Low
- Fcl_HA_Fung2_Up
- Fcl_HA_Fung3
- Fcl_HA_Fung3_Up
- Fcl_HA_Fung3_Low
- Fcl_HA_Short
- Fcl_HA_Short_Up
- Fcl_HA_Short_Low
MMD 模型
- 真面目
- 困る
- にこり
- 怒り
- 上
- 下
- まばたき
- 笑い
- ウィンク
- ウィンク2
- ウィンク右
- ウィンク2右
- はぅ
- なごみ
- びっくり
- じと目
- なぬ!
- 瞳小
- 瞳縦
- 瞳縦潰れ
- びっくり
- への字
- 恐ろしい子!
- カメラ目
- はちゅ目
- 星目
- はぁと
- 涙
- 猫目
- 瞳全消し
- あ
- い
- う
- お
- ▲
- ∧
- ω
- ω□
- はんっ!
- ぺろっ
- えー
- にやり
- ぎゃーす
- がーん
- ギギギ,
- あ2
- ああ
- いい
- おお
- 青ざめ
- д
- 八重歯左
- 八重歯右
- ワ
- 口角上げ
- 口角下げ
- 口横広げ
- 口横狭め
- 頬染め
- 照れ
- 赤面
适配了 ARKit BlendShape(「完美同步」)的模型
- eyeBlinkLeft
- eyeLookDownLeft
- eyeLookInLeft
- eyeLookOutLeft
- eyeLookUpLeft
- eyeSquintLeft
- eyeWideLeft
- eyeBlinkRight
- eyeLookDownRight
- eyeLookInRight
- eyeLookOutRight
- eyeLookUpRight
- eyeSquintRight
- eyeWideRight
- jawForward
- jawLeft
- jawRight
- jawOpen
- mouthClose
- mouthFunnel
- mouthPucker
- mouthLeft
- mouthRight
- mouthSmileLeft
- mouthSmileRight
- mouthFrownLeft
- mouthFrownRight
- mouthDimpleLeft
- mouthDimpleRight
- mouthStretchLeft
- mouthStretchRight
- mouthRollLower
- mouthRollUpper
- mouthShrugLower
- mouthShrugUpper
- mouthPressLeft
- mouthPressRight
- mouthLowerDownLeft
- mouthLowerDownRight
- mouthUpperUpLeft
- mouthUpperUpRight
- browDownLeft
- browDownRight
- browInnerUp
- browOuterUpLeft
- browOuterUpRight
- cheekPuff
- cheekSquintLeft
- cheekSquintRight
- noseSneerLeft
- noseSneerRight
- tongueOut
BlendShape 映射的意思就是「面捕参数应该怎么应用到模型的 BlendShape 上」,所以需要选择模型上有什么 BlendShape。
你可能听过别人把 BlendShape 称作「表情」。不过,在 Warudo 中,表情是角色若干个 BlendShape 的状态。比如,图中下方的哭哭表情是五个 BlendShape 的特定值组合而成:
为了避免混淆,我们下文一律用 BlendShape 和表情来称呼两者。
同样,「姿态追踪模板」选择 RhyLive。
开启「使用键盘」和「使用触控板」的话,在不捕捉到手部的时候,会实时生成模型使用键盘和鼠标的动画:
点击确定后,应该可以看到成功信息:
资源列表中多出来了「RhyLive 接收器」,用来接收 RhyLive App 发送的动捕数据:
蓝图列表中也多出来了两个蓝图:
Warudo 的蓝图是非常强大的功能,不过,刚上手 Warudo 的话,不需要接触蓝图也可以配置出很棒的效果!建议熟悉 Warudo 其他功能后,再阅读蓝图教程。
iOS 设备上打开 RhyLive,左上角点击菜单图标进入设置界面。电脑和手机用的是同一个 WiFi 的话,就在 「IP」处输入电脑 IP,然后开启「无线」开关;或者也可以把设备用 USB 连上电脑,然后开启「有线」开关(需要安装 iTunes)。
如果不知道电脑的 IP,可以在「RhyLive 接收器」的配置页面查看:
如果列出多个 IP,则需要一个一个尝试。通常来说,你的 WiFi 路由器分配给你电脑的 IP 是以 192.168. 开头的,所以以上图为例,可以先尝试 192.168.1.2。
如果你使用「有线」选项,你必须在打开 Warudo 之前,在 iPhone 打开 RhyLive,并通过 USB 线连接到电脑。
如果希望模型更可动,可以把「锁定弯腰」的选项关掉——Warudo 没有 RhyLive 里面模型常年弯腰的问题,所以可以放心关掉。
应该就能看到模型动起来啦!
如果模型的姿势看起来不太对,请选中「RhyLive 接收器」,点击「校正」进行校正。
配置表情
模型的上半身动起来了,闭眼和嘴巴开合应该也能捕捉到了,接下来就该配置表情了!
在角色资源页往下滚,就可以见到表情相关的配置。点击「导入 VRM 表情」:
没有问题的话,就能看到表情导入成功:
你可以展开并且详细配置每个表情,比如切换到该表情时,是否应该禁用眨眼追踪:
不过,表情是导入进来了,我们要怎么触发它们呢?点击「生成按键绑定蓝图」就好啦:
注意到蓝图列表中多出来一个叫「表情按键绑定」的蓝图:
按 Alt+1、Alt+2、Alt+3…… 如此类推,就可以切换表情啦!按下 Alt+Backspace 即可重置表情。
切换待机动画
最后,我们给模型换个姿势吧。往下滚可以看到「待机动画」:
Warudo 内置超过 500 个待机动画,我们选择一个猫猫手吧:
然后就是这样的效果啦!
最棒的是,动捕可以如常运作哦!举起手让 RhyLive 捕捉到时,就会淡入到捕捉到的姿势;放下手时,就会淡出到待机动画的姿势,像下面这样:
小结
到这里,你已经使用 Warudo 让模型动起来,而且学会了怎样切换表情和待机动画!不过,这只是 Warudo 功能的冰山一角……
记得用「🚀」->「保存场景」时不时保存一下场景!