开发者更新 - 2023年4月28日

欢迎来到2023年4月28日的开发者更新!这是2023年的第13次开发者更新。
备好船帆!升起…额…主帆!确保…嗯,朗姆酒桶?抱歉,我对航海的了解基本上主要来自《海盗》游戏。今天的开发者更新封面展示了Shiro K的世界Sailing!
(https://vrchat.com/home/world/wrld_511d8efe-b233-4ffa-af92-846370aa0f47)
如果你想赶上进展,请阅读我们之前发布的专栏:

2023.2.2 Open Beta版
Open Beta版正在进行中!你可以在这里看到更新说明。我们将谈论正在进行中的开发中的一些新功能。
SDK电子邮件认证变更
在之前的开发者更新中,我们讨论了SDK电子邮件认证!简而言之,当您登录时,如果我们发现登录方式奇怪或不同寻常,就会发生这种情况。如果您没有启用双因素身份验证,我们会向您发送一封带有代码的电子邮件,您需要输入该代码。
首次发布时情况有些混乱。😳 我们让很多人感到非常困惑!为此,我们表示歉意!
我们将其关闭,进行了一些微调和修复,最近又重新打开并修复了一些错误。
值得注意的是,即使是旧的SDK现在也可以进行认证 - 只要它们支持基于令牌的双因素认证。这意味着只要您在过去…看了看手表…四年里更新了您的SDK,即使要求您输入令牌2FA,您也可以输入电子邮件代码。
创作者助手 - 社区套件
上周,我们在创作者伙伴中添加了社区套件!社区套件使您能够在无需等待我们筛选所需套件的情况下,通过社区制作的套件增强您的VRChat世界和Avatar项目。
这还意味着您将像创作者们推出套件一样经常收到这些套件的更新!
我们制作了一个简短的视频,帮助您了解社区套件的工作原理:

阅读我们的文档以了解更多信息。
如何添加区存储库(非常简单)
如果你是资产创作者,如何创建套件列表
如果您是资产创作者,如何转换.unitypackage文件
持续开发
弹性骨骼
这个功能现在在VRChat 2023.2.2中的OpenBeta版中。
我们在VRChat中添加了一个名为“SquishyBones”的新PhysBones功能!
这个视频是为了Live版发的发布,但您在这里可以看到一个小预览。

喜欢视频中第5秒的兔子Avatar吗?它是由Moop制作的!你可以在这里获得它。
此更新添加了新功能,允许骨骼以前所不能的额外方式进行伸展和压缩。
现有的“最大伸展”值允许您指定骨骼的长度可以增长/延长多少。以前只有当有人抓住骨骼并将其拉出时,才会对此产生影响,但现在意义更大。
添加了“伸展动力”值,该值指定骨骼应允许运动如何影响骨骼的长度。值为0(默认值)使骨骼像现在一样工作,保持其长度不变。值为1表示骨骼将根据移动方式而变长/缩短。拉力值是试图将这些骨骼恢复到其原始长度和方向的力量。
以下是伸展动力为零时的效果,这是默认值。

...以及将伸展动力设置为1时的效果!

我们还添加了“最大压缩”值,它指定骨骼长度可以压缩/缩短的百分比。这类似于最大伸展,只是方向相反。您可以将这些术语视为骨骼长度的最小和最大百分比。与最大伸展一样,当抓取骨骼并通过伸展动力进行操作时,此值会受到影响。此外,碰撞体与可以压缩的骨骼之间有独特的相互作用。

这里有一个拉伸和压缩的GIF示例。

现在,碰撞体可以通过压缩来影响骨骼的长度。具有正的最大压缩值的骨骼将根据碰撞体的方向被推开或向下压。这可以以各种方式使用,从让骨骼触摸起来感觉柔软。如果与约束一起使用,您可以在Avatar上制作独特的按钮。


还添加了一个名为“_Squish”的新参数,它与现有的“_Stretch”参数非常相似。它提供一个浮点值,范围从0到1。该值表示整个骨骼链
的长度在其最小长度时被压缩的程度。与_Stretch一样,如果骨骼链有多个分支,它将在所有分支之间选择最大值。
PhysBone版本控制
提供这些新功能需要对某些值的应用方式进行一些更改。这些更改会影响到现有的VRCPhysBone组件的外观。为了保持现有的Avatar行为,我们决定直接将版本控制添加到VRCPhysBone组件中。

所有现有的VRCPhysBone组件将使用旧版本1.0,并且工作方式完全相同。新的组件将默认为最新版本,版本1.1。
如果升级,您可以更改下拉菜单以选择最新版本。您可以在版本之间自由切换。
请注意,某些值在不同版本之间的工作方式并不完全相同!对于这个更新,两个特定的值发生了变化:Gravity和Stiffness。
重力
以前,重力是一个与拉力竞争的力量。为了获得特定的外观,您需要平衡这两个值的比例。
现在,重力直接作用于重力如何使您的骨骼的静止位置变形的比例。值为1意味着您的骨骼将始终垂直下降,值为0.5意味着它将在静止位置和世界下方的向量之间悬停一半。
在实践中,我们发现这更容易调整您要达到的外观。
由于重力不再是一个力量,拉力是唯一决定骨骼将以多快的速度落入新的静止位置的力量。以前,很多指向直下的东西看起来像(拉力:0 重力:0.3)。现在,这需要一个像(拉力:0.3 重力:1.0)这样的配置。
刚度
以前,刚度是一个力量,其矢量是上一帧的骨骼矢量。这与拉力和重力竞争的力量,并且用于减弱特定运动。与重力一样,您需要管理此力量与其他力量之间的比例,以获得特定的外观。
现在,刚度作为当前速度与保持骨骼在其先前方向的速度之间的比例。这更多是技术差异,而不是目的的差异,因为您仍然可以像以前一样有效地使用此值。
之所以这么说,是因为实现类似外观所需的确切值会有所不同。
引导模式
这个功能现在在VRChat 2023.2.2的Open Beta版中。
对于新用户来说,VRChat可能是一种压倒性的体验。选择您的第一个化身,找到酷炫的世界进行探索,并导航菜单可能会让人有点不知所措!我们正在努力开发新功能,使这种体验更加简化。
其中一个新功能就是引导模式。

引导模式是一种新的UI“模式”,可以轻松访问VRChat的核心功能。例如,克隆某人的化身,更改世界,或阻止用户。
引导模式将使新用户在不让他们感到选项和选择过多的情况下掌握他们的体验。

引导模式将在Open Beta版中为所有人启用。然而,一旦推向正式客户端,我们将通过“A/B测试”来逐步推出该功能。
这种测试形式将该功能启用于某些用户,但并非所有用户。我们将收集数据,以了解人们如何使用此功能,以及它是否有助于他们在VRChat中获得更好的体验。通过这种方式,我们可以确保我们对VRChat所做的更改实际上会改进体验!

一旦测试完成,并且引导模式完全推出,我们可能会提供一种方式供任何人启用它,以便您可以获得更简单的体验。
随着更多功能添加到VRChat中,我们将不断调整和调整引导模式,重点是帮助新用户。例如,某人可以使用引导模式来查找与他们兴趣相匹配的群组。这是我们想要尝试的实验类型,所以请在将来注意一下。
我们将根据情况向社区提供更多信息。值得注意的是,我们不会宣布我们正在进行的每项A/B测试。
新的SDK功能!
这些新的SDK功能现在已经在VRChat 2023.2.2的Open Beta版中。
DataContainers和VRCJSON
我们添加了DataContainers!随着它们一起出现了Lists、Dictionaries和Udon的JSON!我们在之前的开发者更新中已经讨论过这个功能。

DataLists和DataDictionaries为Udon提供了类似于Lists和Dictionaries的功能。
我们还添加了VRCJSON,这是一个助手类,可以将JSON字符串(例如从Remote String Loading接收到的字符串)转换为DataLists和DataDictionaries,反之亦然。阅读数据容器/ VRCJSON文档页面以了解更多信息。
VRCAsyncGPUReadback
我们添加了对AsyncGPUReadback的支持!这使您可以从GPU和着色器中读取数据,而不会带来过大的性能损失!我们在3月9日的开发者更新中已经讨论过这个功能。

我们添加了VRCAsyncGPUReadback.Request函数和相应的OnAsyncGpuReadbackComplete事件。使用这些功能,您可以将数据从GPU读取到CPU内存中,而不会对性能产生太大的影响,代价是将数据延迟一帧或多帧。
查阅ASyncGPUReadback文档以获取更多信息。
Udon UI更新
对于即将推出的Udon UI功能,我们有一个快速的更新!我们一直在进行一些测试,我们认为您可能会喜欢了解我们的进展。
这个UdonUI测试展示了系统通过这个系统可用的一些调试功能。使用Udon UI创建的一个世界空间画布,在“AnimalFriend” UdonBehaviour上实时显示一些值的更新,类似于控制台中的日志,但可以轻松地附加到世界上…它还显示了一个添加到快速菜单中的按钮,该按钮调用了一个方法来控制相同的UdonBehaviour。这里的所有Udon UI功能都是在不对AnimalFriend Udon程序进行任何更改的情况下创建的。

按角色过滤群组成员
如上次的开发者更新所提到的,按角色过滤成员的功能即将推出!(甚至可能已经推出,我还没有检查!)这个改变将帮助您在网站上组织/查看您的群组成员。
搜索您自己的群组成员正在进行中,但尚未确定时间!