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

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

2023-08-09 11:24 作者:bili_3537113098226354  | 我要投稿

欢迎来到2023年2月16日的开发者更新!这是2023年的第五个开发者更新。

首先感谢DrMorro,他的获奖作品Organism为本周的开发者更新封面增色不少。我想告诉你们在Organism中“迷失”,但那听起来有点刻薄。而且在那里迷失似乎是理所当然的。

如果你想回顾之前的开发者更新,可以阅读我们之前发布的专栏:

这次的更新内容相对技术性较强,请耐心阅读这堆文字。

创作者助手提醒

我们目前计划在发布更新后等待更新的VRChat创作者助手带有Web用户界面(我们称之为“VCC Web”)之后,再全面切换到VCC。

根据反馈,我们正在研究直接下载软件包。它们将是与VPM兼容的UnityPackages,而不是旧版本的包。 VCC仍将是推荐的和主要的方法来设置VRChat SDK并保持其更新。

一旦VCC发布,SDK2将同时被弃用,并且SDK2将不再提供下载。

禁止从旧版本Unity上传

我们现在正在主动阻止旧于2019年的Unity版本的上传。这只影响了极少数的创作者!

如果用户使用的Unity版本过旧并且被阻止上传,他们会在Unity控制台中看到以下消息:

任何仍在2019年之前的版本上的用户应逐步升级至目前支持的Unity版本。

SDK2废弃

正如在之前的开发者更新中所指出的那样,未来的某个日期(尚未确定,但可能在“几个月后”),将不再允许上传SDK2创建的世界和Avatar。我们将尽可能支持现有的SDK2内容在VRChat中使用。

如果您正在维护一个SDK2世界项目并希望进行迁移,CyanLaser维护了CyanTrigger,它为Udon提供了类似SDK2的接口。他还创建了一个名为SDK2 migrator的工具,可以自动将SDK2转换为SDK3,包括像SDK2支持的复杂资源,比如Standard Assets包。

VRChat 2023.1.1 更新

2023.1.1p2

我们在2月9日发布了VRChat的补丁,其中包含了一些小的修复和改进!

2023.1.1p2 补丁说明

客户端

改进

  • 群组横幅的透明度现在遵循图标透明度,即使将名牌透明度设置为0,横幅仍将可见。

    • 您仍然可以通过快捷菜单中的群组横幅开关完全关闭群组横幅。

  • 群组横幅现在使用mipmaps,意味着它们在远处不再闪烁,并且在视觉质量方面有所提高。

  • 相机现在有一个选项,在远右边的选项中可以显示用于更容易进行照片构图的九宫格网格!

修复

  • 修复了在移动Stations中相机运动跳跃的问题。

  • 我们仍在努力改进UI和在移动时抓取功能。

  • 修复了玩家在尝试在无人机相机模式下移动时退出Stations的问题。

  • 修复了桌面模式下瞄准相机的问题。

  • 修复了“拍照”按钮在相机保存多层图像时可视外观启用。保存高分辨率分层图像可能需要一段时间--在8K下,每张图像约为45MB!

  • 修复了菜单FPS计算,允许显示低于11的FPS值……虽然我们希望你不需要太经常体验到这一点!

  • 在桌面模式中的键盘控制菜单中添加了“Y”按钮用于聊天框。

玩家模式丢失

在我们于一月中旬完成后端系统的维护和升级期间,一些玩家的限制(屏蔽、静音等)可能在升级过程中丢失。

很遗憾,这些玩家的限制将无法恢复!为了避免未来再次发生这种情况,我们正在审查升级过程,以确保不会丢失这些数据。对于可能引起的不便,我们深表歉意!

持续开发

Avatar性能统计变更

我们对Avatar性能等级系统进行了两项改进!

Avatar的VRAM使用现在会影响性能等级

一段时间以来,我们开始计算Avatar VRAM使用情况,即角色纹理所占用的显存(目前不计算网格)。这被证明是很有用的,因为人们发现他们的设置在VRAM方面有点过大,然后进行了优化!

现在是时候完全实施这项统计了。在即将发布的版本中,Avatar的VRAM使用情况将影响性能等级。

以下是我们正在考虑的数值。请记住,这只计算纹理部分!Thry的工具还包括网格部分。(这仍然是一个很棒的工具。嗨,Thry!)

PC Avatars

优秀:<40MB

良好:<75MB

中等:<110MB

较差:<150MB

这意味着非常差是大于等于150MB的任何Avatar。

Quest Avatar

优秀:<10MB

良好:<18MB

中等:<25MB

较差:<40MB

这意味着非常差是大于等于40MB的任何角色。

这些数值是如何确定的?

好问题!

让我们从PC Avatar开始。首先,我们需要确定我们可以使用多少VRAM。我们查看了Steam硬件调查以及我们自己的内部分析数据,将8GB的VRAM作为一个合理的中位数值。

接下来,我们需要定位一个与用户遇到的平均实例大小接近的实例大小,但又留出足够空间容纳相对较重的实例。这给了我们一个实例大小为20的值,所以任何数值都需要在8GB中的20个Avatar之间分配。

除此之外……不完全如此。在VR合成器和您的操作系统之间,我们假设2GB的VRAM已经被使用。此外,您所在的世界也需要VRAM!我们还要再减去1GB。

所以,我们将剩下的5GB,分配给20个Avatar,得到了以上数值。

如果您有一张高VRAM显卡,对您来说这仍然是好消息!在PC上,在一个有80个玩家的实例中,充斥着刚好不到“较差”级别(149.9MB)的Avatar,纹理仅会占用12GB的VRAM。听起来是很多,但目前在完整的实例中,情况要糟得多,有时候,当某个Avatar使用20个8K纹理的中等级别的Avatar时,使用3090、4090和7900XTX等卡的VRAM会被吃光。真是可怕。发抖

那Quest的数值呢?

很简单!

Quest有6GB的共享RAM,CPU和GPU之间共享。没有VRAM,只有RAM。

实际上,我们只能使用其中的约4GB RAM。Quest的底层操作系统会消耗大部分。

由于我们已经为PC完成了大部分的工作,所以我们可以通过简单地将PC数值除以4来近似缩小尺寸,得到Quest的数值。

这将影响多少Avatar?有多少Avatar会变为非常差?

又是一个很好的问题。我们进行了研究。答案是“数量非常少”。在此更改后,仅有约0.8%的Avatar将从未被评为非常差的等级降至非常差等级。

让我们用另一种方式来看待这个问题。

这是VRChat中的一小部分Avatar。每个饼图代表了该Avatar当前的性能等级。

每个饼图的每个扇区表示在VRAM统计方面,该等级内的角色将如何被分类。例如,目前处于中等等级的Avatar中,落入橙色“较差”扇区的Avatar在此系统实施后将降至较差等级。

总之,大多数Avatar不会因为这个变化而改变等级。很少有Avatar会降至非常差等级。

当然,这些饼图有些误导性,因为您不知道每个等级有多少Avatar(我不会告诉您)。因此,各个扇区看起来比您预期的要大。

我可以告诉您,有很多非常差的Avatar不会因此变化。请记住这一点。

SDK会告诉我这个信息吗?

是的,我们将在SDK中实现这个功能,这样在我们实施这个更改时,你就能知道正在发生的情况。

Avatar约束

我们还将在Avatar统计中添加约束!这仅适用于PC,因为Quest没有约束。我们很快会讲到这个问题。

哇,很酷的Avatar胶囊设计

这个统计数据暂时不会影响性能排名,但是正如你所见,我们推荐的最大值是15。

等等,仅仅15个?我以为约束是非常节省资源甚至是不消耗资源的?

是的,我们也是这样认为的。但我们错了。

约束对帧时间有很大的影响,并且有一个“悬崖”,如果你超过了它,约束的成本会突然增加30%,并且添加的限制越多,情况会变得更糟。

你是怎么得出15是你推荐的值的?

和VRAM的计算方式类似。设定一个目标,按平均实例进行分割,但保留一些空间来处理更复杂的实例。

约束到底有多糟糕?

少量的约束并不可怕,但是随着数量的增加...相当糟糕。以下是我们所做的一些研究。下面是数学计算。

从场景中启用0到682个约束,每个约束大约耗费3.2微秒(0.0032毫秒,但请记住每帧在90FPS下约为11毫秒)。这听起来很小(而且单独来看确实很小),但它们累积得很快。在场景中有300个约束时,耗费的时间是0.96毫秒,约占你的帧时间预算的9%。将它增加到600个,几乎有五分之一的帧时间用于约束!!

这在用户通常已经超过11毫秒目标的情况下是很多的,尤其考虑到像克隆、衣服附件和其他由社区创建的系统通常为单个Avatar包括几十个或几百个约束。在一个VRChat实例中有超过一千个活动约束并不罕见。😥

但是如果你有一千个约束,你还有另一个问题:约束的悬崖。

什么是“悬崖”?

如前所述,这个成本仅仅是简单的累加...直到你达到683个约束。

如果你对这个分析工具不熟悉,它是比较两个帧和计算每个帧所需时间的。在下方的部分,向右延伸的橙色条表示“右侧”帧在这些特定“标记”上所花费的时间更长。我们在这里看的是与约束相关的标记。

当你从682个约束增加到683个时,Unity会出现问题。突然间,你的约束现在成本增加了30%——每帧增加了4.2微秒...并且每个组件的成本会随着添加每个额外的约束而增加。

这似乎是Unity的一个bug,而不是我们可以解决的问题。因此,目前我们需要告诉用户“嘿,请尽量限制使用多少约束”。

顺便说一句,你也可以自己测试。这些截图是从一个基本的Unity项目中获取的,没有包含VRChat代码。

那么禁用的约束呢?

这有点复杂!

有三种方式可以关闭约束:

关闭GameObject或组件(绿色复选框)的成本非常低,几乎可以忽略不计。

然而,约束还有一个IsActive属性(红色显示)。将其设置为False,但GameObject和组件设置为True也会产生成本,尽管这个成本没有活动约束那么高。此外,这些IsActive为False的约束似乎不会对“悬崖”产生影响,但它们会使事情变慢,所以不要使用IsActive复选框来打开和关闭约束。请关闭组件或GameObject。

你难道不能只计算启用的约束吗?

当然可以,但你也可以对它们进行动画处理。

然后,不,在你访问之前,我们不能在更改时重新扫描。扫描性能统计信息是非常费资源的,所以我们只在加载Avatar时进行一次扫描。

约束是否多线程处理?

有点。它们在主线程之外执行,但是它们有一个单线程依赖排序步骤,使得多线程处理变得无关紧要。🤦‍

这适用于所有类型的约束吗?

我们只测试了父约束,每个约束只有一个来源。其他类型的约束可能有不同的行为。

哦...而且VRChat的Quest版本似乎不支持约束。这就是为什么你在Quest上没有启用约束的原因吗?

是的。

那现在怎么办?

我们正在考虑一些解决方案,但现在还没有准备好谈论。

我们正在与Unity联系,就这个buggy行为以及奇怪的主线程依赖性进行沟通。我们还没有在更新的Unity版本上进行测试,所以可能在后来的版本中这种行为已经有所改变。请记住,约束在2019.4版本中才是新功能!

目前,我们希望Avatar创作者在约束方面要谨慎,避免使用大量约束的预制件和系统。在整个Avatar中,启用或禁用的约束最多应为15个,不管是不是已经启用。如果它们不使用,请通过禁用它们所在的GameObject或组件来关闭它们。

快捷菜单中的Udon UI

这个功能目前正在开发中,我们已经有一个工作中的内部版本,其中世界可以指定在快捷菜单中显示各种控件(按钮、滑块、切换、标签等)的方式,这些控件将显示在一个新的选项卡中。

这个功能使得创作者更容易添加特定于世界的控件和信息,让访问者可以轻松找到并理解!

有多种方法可以添加和组织这些UI控件,包括直接在Udon中完成。然而,我们首先专注于创建一个Unity编辑器窗口,您可以在其中构建和预览Udon UI布局。

例如,向一个世界添加一个简单的“传送到屋顶”按钮可能如下所示:

  • 打开Udon UI编辑器窗口。

  • 点击“New QuickMenu UI”,这将启用布局并呈现一个空的UI槽。

  • 将包含传送功能的UdonBehaviour拖放到此槽中,这将将其添加到轮廓中,并显示一个选择器,其中列出了Udon程序中可用的公共变量和事件。

  • 从列表中选择“TeleportToRoof”事件。

  • 这将在快捷菜单UI中添加一个新的按钮,标记为“TeleportToRoof”,当用户按下它时,将触发此事件。

下面是一个显示窗口两个主要部分的基本线框图——UI预览,您可以在其中看到您的控件在快捷菜单中的样子,以及轮廓,您可以查看和编辑这些控件的详细信息。

Udon变量也可以与UI绑定,并显示目标变量的最新值,无论是通过UI还是通过Udon程序更改的。例如:

一个创作者创建了一个默认情况下打开Post-Processing效果的世界。他们创建了一个UdonBehaviour,可以使用名为postProcessingEnabled的布尔变量切换效果的开启和关闭,以及使用名为postProcessingWeight的浮点变量来调整效果的强度。他们选择这两个变量显示在默认的Udon UI组中,并将postProcessingWeight变量的范围设置为(0,1)。当玩家访问他们的世界时,他们可以在快捷菜单中轻松地使用滑块来设置效果的强度,并使用开关来完全打开或关闭效果。

请记住,随着我们继续开发,这一切都可能会有所改变!我们会尽力回答关于这个新的编辑窗口和Udon UI系统的问题,但仍然有一些细节和工作流程需要解决。以下是一些可能首先出现的问题:

  • 快捷菜单中Udon UI的外观是可以定制的,但在推出时还不支持。

  • 您可能可以直接定位属性,而不仅仅是UdonBehaviour的变量和事件,但在推出时可能不支持。

  • 您将能够在运行时使用Udon添加和删除控件...但在推出时可能不支持。😅

  • 您可以将这些相同的控件应用到世界空间的画布上,而不仅仅是快捷菜单中。

  • 我们正在考虑本地化这个功能,但目前还没有在计划中。 我们非常期待把这个功能交到你手上!

SDK 3.1.11 已经准备好发布了!

SDK 3.1.11 已经准备好发布,包括我们的远程图像和字符串下载器、MIDI播放功能,以及以下内容:

Unity Inspector现在将检测缺少的VRCUrlInputField变量,并在此组件未能正确加载时提供重新加载SDK的选项(已知问题,将在我们可以升级到Unity 2020或更高版本时修复)。

如上面的创作者助手提醒部分所述,我们仍将提供Web UnityPackage下载,这样您也可以通过导入方式进行更新,但强烈建议使用VCC!

VCC Web更新

创作者助手的Web版本已经添加了一个有关初次运行的新教程,向您展示基本操作并指导您安装Unity Hub和正确的Unity编辑器版本。

我们离发布创作者助手的Web版本已经非常接近了!很快!

群组Web界面

我们花费了大量时间对VRChat主页的后端进行重构和修复,尤其是群组部分!

总的来说,您应该会注意到加载和渲染速度更快,更稳定,并且加载和错误状态也更好。

这个功能即将到来,如果还没有发布的话!

您可以抚摸猫猫

现在您可以在vrchat.com/home上拍一拍VRCat徽章了。

就是这样


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

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