Skip to main content

玩家 Avatar 缩放

Udon 提供函数允许世界创作者:

  • 允许或强制化身缩放功能和参数。
  • 响应玩家身高的变化。

要查看与这些函数配合使用的相关事件,包括"OnAvatarChanged"和"OnAvatarEyeHeightChanged",请参阅化身事件。

缩放和碰撞

请注意,将化身缩放到其他大小不会影响其与环境的碰撞——就像上传您在 Unity 中放大的化身也不会一样。

化身缩放有两种模式,可以在逐个玩家的基础上单独调整:

  1. 玩家控制模式,允许玩家在操作菜单中使用径向控制器或快速菜单中的"匹配眼睛高度"按钮来调整自己的身高。
  2. 世界权威模式,禁用这些功能,玩家身高只能由世界中运行的 Udon 程序设置。

在任何一种情况下,化身更改和眼睛高度更改都会触发"OnAvatarChanged"和"OnAvatarEyeHeightChanged"事件,以便 Udon 程序可以响应这些事件。

默认为玩家控制

目前,化身缩放默认以玩家控制模式运行。如果您希望以世界权威模式运行,必须在网站或使用下面的 Udon 函数禁用它。

玩家控制模式的范围为 0.2m 到 5m,Udon 可以设置 0.01m 到 10000m 之间的值。请注意,0.1m 和 100m 之外的范围不受 VRChat 官方支持,可能会导致不良影响,例如 UI 损坏或不稳定。

通过网站禁用玩家控制的缩放​

如果您只想在世界中禁用化身缩放系统,可以登录 VRChat 网站的我的世界部分,选择您的世界,将其关闭并保存更改。

非常简单!

当您通过网站禁用化身缩放时,系统中玩家的缩放功能被完全禁用。他们只能以默认缩放使用您的世界,化身缩放的菜单组件将被禁用。

因此,当通过网站禁用化身缩放时,以下 VRCPlayerApi 函数在 Udon 中不可用,使用它们将无效:SetManualAvatarScalingAllowed、SetAvatarEyeHeightMinimumByMeters、SetAvatarEyeHeightMaximumByMeters、SetAvatarEyeHeightByMeters、SetAvatarEyeHeightByMultiplier。

如果您希望保留对这些 Udon 函数的访问权限,但又不希望用户通过操作菜单中的径向控制器缩放自己,请通过网站保持化身缩放启用,而是使用 Udon 通过 SetManualAvatarScalingAllowed 禁用玩家控制的化身缩放模式。

玩家控制缩放的函数​

仅限本地玩家

除非另有说明,以下所有函数只能由影响本地玩家的 Udon 程序使用,无法成功对属于其他玩家的 VRCPlayerApi 对象调用。

GetManualAvatarScalingAllowed​

检查本地玩家是否允许控制其化身缩放。

输出

  • bool:如果本地玩家处于玩家控制的化身缩放模式则为 true,如果处于世界权威化身缩放模式则为 false。

SetManualAvatarScalingAllowed​

在玩家控制和世界权威缩放模式之间切换。

输入

  • bool:true 设置为玩家控制模式,false 设置为世界权威模式。

GetAvatarEyeHeightMinimumAsMeters​

返回在玩家控制的化身缩放模式下,本地玩家被允许缩放到的最小眼睛高度(米)。(大于或等于 0.2 米。)

输出

  • float:最小眼睛高度(米)。

SetAvatarEyeHeightMinimumByMeters​

设置在玩家控制的化身缩放模式下,本地玩家被允许缩放到的最小眼睛高度(米)。(必须大于或等于 0.2 米。)

Input

  • float: Sets the minimum avatar eye height in meters.

GetAvatarEyeHeightMaximumAsMeters​

返回在玩家控制的化身缩放模式下,本地玩家被允许缩放到的最大眼睛高度。(小于或等于 5 米)

输出

  • float:最大化身眼睛高度(米)。

SetAvatarEyeHeightMaximumByMeters​

设置在玩家控制的化身缩放模式下,本地玩家被允许缩放到的最大眼睛高度(米)。(必须小于或等于 5 米。)

输入

  • float:设置最大眼睛高度(米)。

世界权威缩放函数​

仅限本地玩家

除非另有说明,以下所有函数仅可由影响本地玩家的 Udon 程序使用,不能成功地在属于其他玩家的 VRCPlayerApi 对象上调用。

GetAvatarEyeHeightAsMeters​

返回目标玩家化身配置的眼睛高度。此函数适用于本地玩家和远程玩家。

输出

  • float:目标玩家化身配置的眼睛高度。

SetAvatarEyeHeightByMeters​

输入

  • float:为当前玩家化身设置眼睛高度(米)。

SetAvatarEyeHeightByMultiplier​

输入

  • float:将眼睛高度设置为目标玩家化身在其预制体缩放下的眼睛高度的倍数。