开发者更新 - 2023年2月9日

欢迎来到2023年2月9日的开发者更新!这是2023年的第四次开发者更新。
感谢ACChosen的世界Club Orion在这是在本次开发者更新封面中展示的地图!总有一天我会去那里当DJ...
如果你想回顾一下,你可以阅读我们之前发布的专栏:

创作者助手提醒
我们目前计划在完全切换到VCC之前等待更新的带有Web UI(我们称之为“VCC-Web”的VCC版本)。
由于收到的反馈,我们正在研究直接下载软件包。它们将是与VPM兼容的UnityPackages,而不是旧版软件包。 VCC将继续推荐并作为设置VRChat SDK和保持其更新的主要方法。
一旦VCC发布,SDK2将同时被弃用,并且将不再提供SDK2的下载。
新更新 - Unity版本上传限制
我们立即开始阻止任何低于Unity 2019(包括2018)的上传。非常旧的SDK(2021年及之前;指年份,不是Unity版本)不会发送Unity版本信息,因此目前不受影响,但将在未来几天内完全被阻止。
如果用户的Unity控制台中显示他们的SDK太旧且已被阻止:

对于任何仍在2019年之前版本的用户,应按以下升级指南进行升级,并逐步升级至当前支持的Unity版本。
正如在以前的开发者更新中指出的那样,在将来的某个日期(未确定,但可能是“几个月之后”),将不再允许上传SDK2的世界和Avatar。我们将尽可能支持VRChat中现有的SDK2内容,但不希望无限期地维护额外的技术负担,并且不希望等到出现问题而没有测试或QA。
有几个社区创建的系统可以帮助迁移和调整为SDK3和Udon!
其中最值得注意的是CyanLaser维护的CyanTrigger,它为Udon提供了类似SDK2的界面。他还创建了一个名为SDK2 migrator的工具,可以将SDK2自动转换为SDK3,包括像SDK2支持的复杂资产,如标准资产包。
VRChat 2023.1.1 补丁
自上次发布以来,我们对2023.1.1进行了一次补丁更新!
2023.1.1p1
此补丁包含了一些小的更改。
音频更改
首先,我们再次更改了音频滑块的工作方式!社区的一位成员非常正确地指出,我们使用的音频缩放有误,因此我们再次调整了曲线。好啦,反复迭代!
有些头像和世界声音太大了。即使将滑块设置为5%,声音也太大了!由于2023.1.1中的更改,这个问题稍微变得更糟了。
不再如此!p1包含对音频滑块的另一个微调,使它们整体稍微更安静。将Avatar的滑块设置为5%将比以往更安静,但从0到100%的音量仍然应该听起来很平滑。
这里有一张图片来帮助说明:

红线是旧的曲线,我们使用很长一段时间的曲线。正如你所看到的,音量调整为低值提供了大量选项,但在高值时选项非常有限 - 简而言之,在0到70%之间调整提供了很大的范围。然而,这个范围在更高的音量下崩溃,这意味着90%和100%之间的差异几乎无法辨别。此外,在0%时,曲线并没有降至0%。用数学老师的话说,它没有截断到正确的值!
此外,“超”到125%会导致音量大幅提升到超高水平!尽管我们在用户超过100%的主音量时会发出警告,但我们希望将其控制在合理范围内。
橙线是我们在2023.1.1中换用的线。你可以很快地看出这里的问题,因为它是反向的!在高音量水平下,你有很多选择,但在低音量下,5%的音量太大了。曲线在最后“下降”得太陡了。
绿线是我们调整后的曲线。尽管它看起来是线性的,但那只是因为Y轴是对数值。感知音量按照“log2(x)*10”的比例工作。
因此,我们直接将其与音量映射,这是大多数游戏和应用程序使用的方式。此外,将主音量提升至125%映射为更合理的200%,而不是荒谬的400%,100%和125%之间的值更加有用。
因此,您可以在较低和较高音量下有很多选择。
嘘,音频工程师,这是你们要找的:
<2023.1.1: “x”
2023.1.1: “log10(x)* 20”
2023.1.1p1: “log2(x)* 10”
试试看,并告诉我们你的想法!
一些修复
在我们处理补丁的同时,我们还修复了一些其他问题!
首先,我们修复了一个有关收藏组的问题:
这主要出现在用户在网站上编辑他们的收藏组时。现在这个问题已经修复,所以之前缺失的收藏组现在可以看到了!这是我们的支持团队经常遇到的问题,所以我们很高兴解决了它!
最后,我们修复了一个关于Index手柄的问题:
我们已经对处理Quest手指跟踪的方式进行了一些更改,这些更改也应用到了PC VRChat。由于我们处理手指跟踪的方式以及TrackingControl状态行为的工作方式,这个问题花了一些时间来跟踪!但现在它已经被修复了。Index用户现在可以向别人展示“和平”的手势而不需要把手指挨在一起。✌
当前开发的东西
Udon网络调整
世界创作者,你好!👋
我们一直在调整从客户端出站的网络流量。这可能会导致出现一些问题,比如在大量使用Udon网络(同步对象、所有权转移等)的世界中出现缓慢或拥堵的流量。
如果您注意到任何异常,请在我们的反馈板上告诉我们。
Udon中的JSON
接下来,让我们谈谈Udon中的JSON!如果你还不知道,互联网使用的是JSON。这是一种保留合理人类可读性的数据格式,几乎所有应用都在使用。
Udon正在获得解析JSON的能力!你将能够输入JSON格式的字符串,运行一个函数将其转换为容器,然后可以抓取特定值或者以编程方式探索整个结构。你还可以反向操作 - 创建这些结构然后将它们转换为JSON。
虽然这个项目最初只是Udon中的JSON,但JSON需要某种有效的列表和字典接口。随着时间的推移,这个特定的接口在范围上扩展成为了自己完全独立的东西,我们不断地添加更多的功能……因此,它拥有了你需要的实际列表和字典以及更多的功能。
我们之前没有做列表和字典的原因是,将它们公开为它们本来的样子意味着将公开数千个不同的列表和字典!这给Udon的代码生成带来了巨大的压力,并且会导致无数问题的出现。
但是这次,我们只公开了一个列表和一个字典,分别称为DataList和DataDictionary。
它们包含DataTokens。DataTokens本身可以存储任何其他内容 - 包括其他DataList和DataDictionary!这意味着你可以创建任意深度嵌套的数据结构,这是JSON所需的。
总体而言,我们相信这个功能将允许世界创作者在数据存储方面拥有更多的灵活性。你可以使用这些存储创建更好的保存系统,在UdonBehaviours之间实现更好的通信,在UdonBehaviors内部实现更好的通信,并摆脱那些从未打算承载目前重量的笨重的数组结构。
好了,关于说明的部分写的太多了。让我们来展示一些例子!
这是一个包含字符串和另一个包含更多字符串的DataList!

这些DataList和DataDictionary还附带了一个漂亮的、花哨的检查器视图。这使您可以像Unity的层次结构一样使用下拉菜单来探索结构。
您可以拖动项目进行重新排列、更改类型等。

如前所述,它们可以任意嵌套:

您还可以选择特定的组件,即使一个GameObject有多个组件。

请期待即将发布的版本和SDK更新中的这个功能!我们在下一个SDK发布中准备了很多东西 - 我们认为它将非常令人兴奋!

本地化工具提示
我们正在开始本地化我们的界面!
首先,我们正在本地化出现在菜单底部的工具提示。我们将首先支持英语、法语、意大利语、德语、西班牙语和日语。我们还在努力添加韩语。此版本使用了自动翻译作为首次尝试,因此可能会出现错误,以及典型的自动翻译混乱。
作为一个有趣的例子,自动翻译将英文的“Bloom Slider”翻译成了法文的“curseur de floraison”,听起来很酷,但我们并没有一个用于调整花朵的滑块。🙃我们会解决这些问题的!
值得注意的是,我们计划使用社区驱动的本地化工具来帮助我们添加更多的语言,并使我们现有的翻译更加准确!许多应用程序都使用社区驱动的本地化,我们对看到人们为其提供翻译的语言感到兴奋。关于该过程的更多信息(在哪里?如何?何时?)即将推出。
无论如何,这是一个预览:

相机三分之一准则网格
相机现在有一个选项,可以显示用于更容易构图的三分之一准则网格!在相机选项的最右边找到该按钮。
