全身追踪
🚧最近的更新!!
VRChat IK 2.0 最近发布了!这是对许多全身追踪相关系统的重大重构。此页面已根据反馈进行更新。但对全身追踪文档进一步的更改可能会根据需求而随时进行。
VRChat 支持使用 Lighthouse 生态系统内的追踪器(如 HTC Vive Trackers,Tundra Trackers 和其他追踪器),以允许追踪身体上的这些区域:
- 脚
- 膝盖
- 髋部
- 胸
- 肘部+肩部(单个追踪器将同时映射控制肘部和肩部。该追踪器必须佩戴在肘部以上)
目前,除了头显和控制器之外,VRChat 最多支持八个额外的追踪器。VRChat 官方不支持任何其他全身追踪方法。
一些用户在使用其他硬件(如 Kinect)时尝试使用各种其他方法让这些硬件能在 VRChat 中生效。我们并不会正式支持这些方法,但如果您觉得它适合您,那挺不错!但是,我们将无法通过 VRChat Support 为您提供这些替代方法的帮助。
❗️不稳定
此系统是实验性的,可能会进行更改或删除,而这可能会导致行为变更!如果您使用此系统,请密切注意更新,以确保您适应新的行为和要求。
初始设置
为了避免追踪器和控制器混淆的问题,您最好在 SteamVR 中定义追踪器的位置。以下是执行此操作的方法:
- 启动 SteamVR 。关闭头戴式耳机。
- 打开所有追踪设备,例如控制器和追踪器。
- 在 SteamVR 窗口中,单击左上角的三行(“汉堡菜单”)。将鼠标悬停在“设备”上,然后单击“管理 Vive Trackers ”。
- 在弹出的窗口中,再次单击“管理 Vive 追踪器”。
- 您会看到追踪设备的列表。您可以单击右侧的下拉菜单并将它们分配给您的左脚、右脚或腰部。
- 为帮助识别它们,请选择其中一个智能设备。按住其他两个追踪器上的按钮,直到它们关闭。屏幕将在打开的追踪器旁边显示一个绿色图标,在关闭的追踪器旁边显示一个红色图标。现在,您可以看到哪个追踪器是哪个,并对他们进行适当分配。
- 识别并分配其他两个追踪器。标记您的追踪器或以某种方式追踪它们可能会有所帮助,以便您始终将它们用于适当的追踪位置。
信息
👍实际上,您将追踪器分配给哪个点并不重要 - 只要它们都没有“握在手中”。但是,为了与其他应用程序的兼容性以及将来应对 VRChat 的潜在更改,最好确保您已经正确地分配了它们。
在 VRChat 中使用全身追踪
当您使用与 SteamVR 配对的追踪器启动 VRChat 时,它会自动检测到您处于“全身”模式,从而导致新选项出现在 UI 中。在使用全身追踪之前,您必须单击快速菜单中的“校准FBT”按钮,您会发现 VRChat 内您追踪器所在的点上会有小球体。这称为校准模式。
::: 🚧校准时要小心! 请确保您在校准时不会走进墙壁或物体!如果您的模型处于一个奇怪的校准位置,请将其移动到更好的位置,打开快速菜单并单击“校准”。这将重置该过程。 :::
如果要对追踪器进行校准,最简单的方法是遵循以下过程。
- 通过单击快捷菜单中的“校准”按钮进入校准模式。
- 确保“设置”菜单中的“高度”设置正确。如果高度不正确的,您的脚可能会穿过地板!
- 确保您的游戏空间已正确校准,并且没有被 OpenVR Advanced Settings 或游戏空间移动器等工具偏移。
- 您的虚拟形象将被附加或“固定”到您的 HMD。这会使得您的视角点始终保持正确,但前提是您已经在 SDK 中准确地设置了他们。
- 向下看,确保您现实生活中的脚被一只脚的宽度隔开。因为您的虚拟形象被“固定”在您的头戴式设备上,所以当您向下看时,您的腿会沉入地面,因为您正在向下移动您的头。无需担心,这是意料之中的。
- 检查您的髋部追踪器,并确保它位于您髋关节的合理位置。
- 如果使用肘部/肩部追踪,请将手臂与虚拟形象的手臂对齐。即使没有这些追踪器,这个动作也有助于确保您的身体旋转到位。
- **抬起头,直视前方!**无需担心您的视角点 - 它将永远“尽可能正确”。如果您在按下扳机时向下看,您的视角点将关闭。如果您不站直并向前看,您的脚或髋部就不会对齐。
- 同时单击控制器上的两个交互按钮(通常情况下为扳机)。
- 完成辽!
如果您想使用过时的“传统”校准方法,可以使用 --legacy-fbt-calibrate
启动选项启动 VRChat。
- 启动并进入 VRChat,同时佩戴全身追踪并单击快速菜单中的“校准”按钮进入校准模式。
- 将您自身与您的虚拟形象对齐,这样您就可以和它“合二为一”。
- 利用球体将脚与虚拟形象的脚对齐。如果您的腿在您的虚拟形象上太长,这可能看起来好像您把脚放在小腿上。没关系,但您看起来会像在“踩高跷”。
- 将髋部追踪器与智能装置在您自己的髋部上的大致位置对齐。
- 如果使用肘部/肩部追踪器,请将手臂与虚拟形象的手臂对齐。这也有助于即便您未手臂追踪器也依旧能确保您的身体旋转到位。
- 直视前方!确保您的视角点大致处于正确的位置。如果不是,您可能需要尝试将“虚拟形象测量”选项切换为“高度模式”,然后重新开始校准。
- 同时单击控制器上的两个交互按钮(通常情况下为扳机)。
恭喜,您现在已经校准了全身!
全身追踪的绑定要求
如果您使用全身追踪,则需要注意一些特殊事项。以下几个建议可以确保您的虚拟形象在使用全身追踪时运行良好。如果您使用的是未被优化/检查的虚拟形象,则可能会遇到奇怪的行为。
首先,一个简短的词汇表:
- 骨骼头部 - 骨骼的位置。在Blender和大多数其他3D软件中,任何给定的骨骼都有一个头和尾。Unity 仅使用骨骼的“尾巴”或“长度”来确定骨骼变换的旋转。头部确定骨骼转换的位置。
- IK 驱动骨骼 - 在 Mechanim 配置屏幕中映射的任何骨骼。
- 骨骼滚动 - 骨骼沿其局部 Y(上/下)轴的旋转。
全身追踪在以下情况下效果最佳:
所使用的虚拟形象在肢体和躯干长度方面与典型的人类成正比。这不是硬性要求,但是是理想状态。如果您的四肢不成比例,您可能会遇到“胳膊被拉伸”(您的虚拟形象的胳膊太短)、“高跷”(您的虚拟形象的腿太长)或其他奇怪的行为。如果一般 Legs>Hips>Spine>Chest>Neck>Head
骨骼链条比例不正常,则在校准时,您也可能难以对齐视角点。
Spine 不应该突然弯曲。虽然 Spine 不完全笔直也没关系,但是 Spine 上的任何弯曲都会被视为“松弛”,IK 系统会试图拉直它们。如果您的虚拟形象的静止姿势在脊柱上有尖锐的弯曲,那么当激活 IK 求解时,一旦这些弯曲被拉直,它看起来可能会很奇怪。
所有 IK 驱动的骨骼上的“滚动”应设置为零。实际上,这个值是多少并不重要 - 只要所有由 IK 驱动的骨骼都有相同的值。
没有使用一些“全身小技巧”,例如翻转臀部、额外的腿骨、零长度或未加权重的颈部或其他类似的变化。这些变化可能会对绑定行为产生极大的不利影响,并且在未来的全身追踪系统更新时会出现问题。
您的身高在“设置”中设置正确,并且在校准时不会蹲下。此外,请确保您的游戏空间已“初始化”——例如,在校准之前,您没有使用 Playspace Mover 或 OpenVR Advanced Setting 来设置偏移量。设置偏移会导致严重的问题。
骨骼之间的距离大于零。当骨骼是 IK 驱动的骨架的一部分并且是彼此的父项/子项时,您不应该将它们堆叠在一起。这对于髋部>脊柱>胸部>颈部>头部这样的骨骼链条特别重要。
髋骨的底部应该在大腿骨的顶部之上。髋部骨骼应始终在腿骨顶部上方!不要移动得太远,否则您可能会遇到臀部在运动过程中向上“翻转”的问题。
提示
📘请记住,Unity 并不在乎 Blender 和其他 3D 软件中骨骼的“尾巴”或“长度”,而是使用它来确定骨骼变换时的旋转。
膝盖和肘部有非常轻微的弯曲。这是 IK 求解器运行时的正常状况。弯曲会十分的小,但它应该在适当的方向上有一个“主要”弯曲。肘部的弯曲应朝向绑定的后方,膝盖的弯曲应朝向绑定的前方。换句话说,绑定骨在肘部形成的角应始终指向背部,而绑定骨在膝盖处形成的角应始终指向前方。此外,从前面看时,您的腿不应向内向外弯曲。
以下是您应该瞄准的一些示例:
调整您的绑定
尽管 VRChat 中的全身追踪系统非常强大,尤其是当您拥有比例匀称的虚拟形象时,它的效果会特别好。如果您有兴趣解决您的骨架的一些常见问题,并使其在全身追踪中感觉完美,请查看 Kung 的指南。它制作精良,而且只要您有一些基本的Unity和Blender的知识,就很容易弄明白。
其中一些修复是针对 IK2.0 旧版本/传统IK的,所以如果您没有遇到问题,不必一定要应用修复程序。但是,不建议使用任何标记为 “RIG HACK” 的修复程序 - 如果您使用它们,您应该预料到如果 VRChat 在未来做出调整或改变,您的骨架会有问题。
Avatar 3.0 功能
当您使用 Avatar 3.0 创建虚拟形象时,您将有两个新选项,这两个选项在使用全身追踪时可能与您相关。
使用自动步态
默认情况下,此选项处于打开状态。它仅适用于 3 点或 4 点追踪。关闭它意味着您将禁用在房间规模内移动时激活的程序性下半身动画。此程序动画是您在 3 点或 4 点追踪中在房间空间中移动时触发的动画。
将“自动步态”保持打开状态(这是默认状态)仍允许您通过追踪控制状态行为启用/禁用追踪。
如果“使用自动步态”处于关闭状态,则启用/禁用对腿部和臀部的追踪将无济于事,并且您将始终依靠动画来驱动下半身。
播放运动动画
默认情况下,此选项处于打开状态。它仅适用于6点或以上追踪。
当“运动动画”开启时,FBT 中的移动(推动摇杆)将播放行走/奔跑动画,就像当前在正式版中的表现一样。
当“运动动画”关闭时,FBT 中的移动将不会播放行走/奔跑动画。这非常有用,如果您希望用全身追踪动作来“模仿”您虚拟形象的行走。
如果您要关闭“运动动画”,那么请不要使用默认的基础和附加图层。这时您就应该自己做一套基础和附加层动画器了!