欢迎光临散文网 会员登陆 & 注册

开发者更新 - 2023年8月3日

2023-08-13 00:35 作者:bili_3537113098226354  | 我要投稿

欢迎来到2023年8月3日的开发者更新!

本次开发者更新的封面展示了“VR art ‘New place’”,一个令人惊叹的3D虚拟现实艺术画廊!Lee Jae-hyuk的艺术作品被展示在GreatMoonAroma_的世界中(由Jetdog构建)。去看看吧!

https://vrchat.com/home/world/wrld_ecc29d21-e4c1-4a4a-ae48-46de7b7bc6b1

如果你想要赶上进度,你可以阅读我们之前发布的专栏:

重要信息 / 公告

VRChat 2023.2.4已发布!

本周早些时候,我们发布了VRChat 2023.2.4!此次更新包括备受期待的Avatar缩放功能!!!

除了在我们的文档中提供的常规完整补丁说明外,我们还为您准备了一个视频,概述了这些功能和变化。

还有VRChat 2023.2.4p1!

就在这个开发者更新完成之前,一个新的补丁发布了,修复了一些2023.2.4的错误。

VRChat 2023.3.1 Open Beta版

我们还有一个活跃的Open Beta版

其中还有一个对于使用OSC为VRChat制作工具的人非常重要的大功能:OSCQuery!

OSCQuery

VRChat 2023.3.1包括对OSCQuery的支持!这是一个使应用程序更容易在OSC上设置和连接的系统。现在,一些应用程序将能够自动找到并连接到VRChat,用户无需手动查找和输入IP地址和OSC端口。此功能还使VRChat能够同时发送给多个OSC应用程序,而不仅仅是一个!

对于有兴趣与这一新功能集成的开发人员,可以阅读我们的OSCQuery的OSC维基页面,了解有关VRChat的实现和要求的详细信息。

https://github.com/vrchat-community/osc/wiki/OSCQuery

为了实现这一点,我们构建了自己的C#开源OSCQuery库,因为我们无法使用现有的库。在这一过程中,我们与社区中一些了不起的OSC应用程序开发人员合作和沟通,感谢你们在一年的时间里为我们的开发提供反馈和耐心!

VRChat IK测试版

IK测试版已经完成了封闭测试,现在每个人都可以在Steam的“IK-Beta”分支上尝试。与我们上次在开发者更新中讨论它时相比,有一些新的变化:

追踪器重做 - 调整运动预测

现在,您将能够选择SteamVR应用于FBT追踪器的运动预测量。预测越多,抖动越多(它试图猜测追踪器在未来的位置,有时会猜错)。新的默认设置将不使用运动预测,因此跳来跳去和踩脚应该会显得更加稳定。可以在Tracking & IK主菜单页面中玩“Tracker Motion Prediction”滑块,看看哪种设置对您最合适。

追踪器重做 - 失去追踪

当SteamVR追踪器失去追踪(例如被衣服或椅子挡住)时,它们现在会暂时停在原地,而不会飞到外太空。

当您使用“在断开连接时冻结追踪器”选项时,您的冻结追踪器将保持在播放空间中的原位,而不会被您的头部拖动。

脊柱改进

Lock-Head模式现在将支持一些微妙的位置胸部跟踪(以前只有Lock-Both模式有此功能)。这个版本比Lock-Both的位置胸部跟踪要轻柔。孤立的舞者可能仍然更喜欢Lock-Both来进行胸部跟踪。

以下是一些新变化的实际效果:

在IK测试版中,我们继续根据您的反馈进行迭代,处理了许多边缘情况的角色和姿势。请试试看。它与Live版兼容!

持续开发

全新VRChat+功能:UI颜色自定义和颜色选择器!

我们将在未来的发布中推出一个全新的VRChat Plus功能…!

我们为VRChat Plus的订阅者增加了UI颜色自定义作为新的福利!

您可以使用此功能为6个不同的类别选择颜色,以取代我们的默认调色板。然后,您可以保存这些调色板并在它们之间进行切换!

开发深入探讨 - Avatar缩放和自定义标量

偶尔,我们会深入探讨一些技术性质的内容。这需要更长时间来准备和审查,所以不要期望经常看到!

这次的主题是“Avatar缩放如何处理自定义标量?(技术方面)”

最初的Avatar缩放版本在我们的Open Beta版中,破坏了那些具有自定义标量的Avatar,比如“GoGo Loco Broke”。这是一个很大的痛点,虽然最初考虑将其视为“设计上的瑕疵”,但最终我们找到了解决方案,既满足了我们的设计目标,又保持了性能。

社区成员对于如何实现这一点感到好奇,所以我将尽力在这里解释。

问题

自定义比例动画每帧都会应用于Avatar的根变换(描述符所在的地方)。我们过去只在加载后立即应用新的Avatar比例,这意味着之后(事实上,甚至在我们“测量”它用于FBT等之前,这就是比例标量最初的工作方式)动画可能会再次影响比例。然而,我们的内部系统现在会假定我们设置的比例仍然有效,这导致了眼睛高度和预期比例的不一致。

在Unity中设置transform.localScale是有代价的,特别是如果它需要为实例中的每个Avatar运行,所以始终运行它并不是一个好主意。它还需要仔细的时间安排,因为动画和我们Avatar系统的其他部分可能会同时运行。(是的,VRChat是多线程的……)

社区中立即提出的另一个建议是,我们应该在加载时只是移除缩放动画。不幸的是,Unity打包动画控制器的方式不保留太多细节,目前我们无法提取或修改Avatar上的个别动画。你知道吗,即使在游戏中的Avatar调试面板中,图层名称之所以能够正常工作,也是因为SDK特别保存了它们吗?

解决方案

在VRChat中,SDK3的Avatar使用了Unity的PlayableGraph API。不详细介绍,这个一般的概念在社区工具中得到了复制,例如AV3Emulator,如果您感兴趣,可以查看一下。您的所有动画和动画控制器层都是控制您的Avatar所做的事情的单个图层的一部分。

Unity支持在此类图表中使用自定义脚本节点(称为动画任务),这些节点将与任何动画一起进行评估。解决方案只是简单地在此图表的末尾附近插入一个节点,该节点应用本地Avatar缩放系统计算的根缩放。与“每帧只是设置transform.localScale”解决方案相比,这解决了两个主要问题:

  • 性能大部分不受影响,因为该任务已经经过了Burst编译,会与图表的其余部分一起异步运行

  • 应用变换值与其他动画同时进行,这意味着时间将与现有缩放器的时间匹配

几乎完成的东西

告诉你,不仅是你,还有创作者们 - 有时候我们也要与Unity的怪异之处进行内部斗争。

不幸的是,Unity 2019(至少如此)存在一个错误,即从Playable图表中的根变换访问或写入缩放会产生虚假(尽管相当有趣)的结果,如果禁用了 root motion:

顺便说一下,您自己非常接近亲身体验到这一点,因为它在QA流程中相当晚才被发现!由于某种原因,它适用于许多Avatar,但非常特定的Avatar会中断。从未弄清楚原因。

仅仅打开 root motion 还不是一个解决方案,因为这可能会影响我们的IK解决方案。因此,我们需要变得有创造力!Unity允许您声明一个名为OnAnimatorMove的函数,该函数将被用于应用 root motion ,而不是使用内置的函数。在一个瞬间的天才(或疯狂)中,我们想出了最终要发布的解决方案 - 让我为您展示,VRChat™已知的最强大的 root motion 应用脚本:

别担心,律师团队 - 我已经改变了评论的内容,所以我没有透露商业机密😉

有了这个设置,我们可以在Animator上启用 root motion,Unity会很高兴地在我们的图表中为我们提供所有根变换数据,然后我们在最后丢弃这些更改,以使我们的IK不受影响。

哦,结束了吗?

那么,代价是什么?简单的功能或错误修复请求通常会变得比您想象的要复杂得多!


开发者更新 - 2023年8月3日的评论 (共 条)

分享到微博请遵守国家法律