Advanced Search
Search Results
1273 total results found
分步同步的技术细节
开始本部前,确保你已具备所需的前置知识,并且了解分布时间同步的基本概念 在VRChat 每隔 0.2秒会对 Avatar 的同步参数发起同步 (Sync Interval (同步间隔) = 0.2s),而同步的信息抵达远端玩家的时间大约在 0.1 - 1.0秒 (Latency = 0.1 ~ 1.0)。 同步步骤,Bit 数与延迟 (续) 上一章节提到,同步步骤决定了可节省的 bit 数,以及带来的延迟。 同步步骤可节省的 bit 数可以由以下公式计算: 计算同步参数 bit 节省的公式 ...
选读:VRChat Avatar Parameter 网络同步机制简述
该选读部分由 AI 于受监督的环境下协助完成 如欲了解更多,可参考 Animator Parameters | VRChat Creation 参数同步 参数同步是指将 Avatar 的特定参数传递给其他远端玩家,使得远端玩家一侧的 Avatar 能够接收到这些参数更新,从而执行相应的逻辑和动画。这一机制是确保功能正常运行的基础。 参数同步的实现 要实现参数同步,首先需要将参数添加到 Avatar 的 Playable Layer 动画控制器中。接着,在 Expression Parameters...
选读:Parameter Driver 概述
该选读部分由 AI 于受监督的环境下协助完成 如欲了解更多,可参考 Animator Parameters | VRChat Creation Parameter Driver 概述 Parameter Driver 是一种用于修改 Avatar 动画控制器中参数的行为。该行为可以在进入状态时对参数进行多种操作,并且这些操作按从上到下的顺序依次完成。需要注意的是,只有在 VRCExpressionParameter 对象中定义的参数才会在网络中同步。 参数操作类型 Avatar Param...
前言与摘要
前言 LIII Works 一直鼓励开发者手动进行 Avatar 的开发,而不仅仅依赖于自动化工具。 然而,令人遗憾的是,大多数开发者只能完成最基本的物体开关操作,或是利用 Modular Avatar 或 VRCFury 将其他创作者已经打包好的内容安装到自己的 Avatar 上,却缺乏调整这些内容以及在出现错误时排除问题的能力。 实际上,前述开发者中有相当一部分人并没有真正的学习心态。换言之,他们只求现成的成果,而不愿学习获取成果的方法。此外,他们对传授知识的玩家缺乏应有的耐心和态度。 鉴于此,我在...
更改 Hosts + SDK 上传补丁
前言 本解决方案使用 Windows 10、Windows 11 系统,管理员账号,UAC 设置保持默认,国内网络环境 使用 SDK 补丁是非 VRChat 官方支持的办法,将有未验证的潜在可能导致账号被限制登录或封禁,请自负风险。 如果您需要放弃使用该方案,请转到本文档的“清除 host 章节"! 注意:如果按照流程做仍出现问题,请在 SDK 构建面板中点击 API Logging Enabled,并尝试上传失败一次后,保存 Unity 控制台中所有前缀为 API 的截图,并将截图发到社区群中! 1...
UU 加速器 + SDK 上传补丁
本篇所述操作亦适用于其他游戏加速器,如 ak 加速器、奇游加速器、小黑盒加速器等。 使用 SDK 补丁是非 VRChat 官方支持的办法,将有未验证的潜在可能导致账号被限制登录或封禁,请自负风险 如果您需要放弃使用该方案,请转到本文档的“停止加速章节"! 如果按照流程做仍出现问题,请在 SDK 构建面板中点击 API Logging Enabled,并尝试上传失败一次后,保存 Unity 控制台中所有前缀为 API 的截图,并将截图发到社区群中! 点击这里访问 SDK 上传补丁的 VPM ...
使用科学上网+SDK 补丁
注意,如果您在上传时,在控制台中注意到以下“Missing Credentials”错误 您可以尝试刷新SDK并重新登录后进行上传。 不排除是网络环境存在声誉问题导致报错,您可以同时尝试更换节点并重新登录上传。 如重新登录或更换节点仍失败,则该方法暂时失效,请停止使用魔法,将 UseProxy 改为 false,并使用其他办法 在使用下述办法后,您可访问 Cloudflare Threat Score Test 来测试您当前网络环境在 Cloudflare 网络的声誉,如分数理想,说明您更大概率...
将虚拟形象快速迁移到 Resonite
注意:Resonite 目前还在优化性能中,如果您对性能比较看重,您可以选择暂时等待更新。 我们将使用 Nebbia 作为演示。 准备软件 Blender Unity(任意版本) 处理模型文件 1、使用 Blender 打开您想要导入的虚拟形象文件(fbx 或 glb)。 2、如图按顺序点击左上角的 文件(File) -> 导出(Export) -> glTF 2.0(.glb/gltf) 导入与配置模型 导入方法:直接将文件拖入游戏窗口,或者用快捷键 ctrl+c / c...
绪论:模型大小与 VRChat 新限制
在阅读这篇文章前,您或许会想了解一些稍显边缘的计算机组成原理,这样可以帮助您更好的理解本教程中的一些疑问,例如: 为什么显存使用量≠未压缩大小? 什么是虚拟形象大小? 模型大小的评价标准分为3个部分: 1、压缩大小/下载文件大小:指下载模型文件时的实际大小。 2、未压缩大小/解压后大小:指将模型文件下载并解压到设备运行内存空间(RAM)后的总大小。 3、显存使用量/显存占用:指模型使用的显卡内存(VRAM)大小,有时也称为"VRAM 使用率"。需要注意的是,当前 VRChat 的"显存占用"只统...
贴图方面
压缩贴图大小是目前最简单也最容易减小您模型大小的方法。 选中一个贴图,即可在 Inspector | 检查器 中查看此贴图目前的导入设置: 让我们快速认识一下可以减少贴图大小的重要部分: Alpha Is Transparency | Alpha 是透明的 允许导入贴图中透明的部分,一般配合渲染模式非 Opaque/不透明 的材质球使用; Generate Mipmaps | 生成 Mipmap 生成一系列 Mipmap,来使得视角距离物体偏远时拥有更好的视觉效果; Max Size ...
音频方面
尽管 Unity 使用的打包格式 AssetBundle 一般情况下压缩率都很高,但是对于音频这样的信息熵很高的多媒体文件,常规的无损压缩很难减小它的体积。因此,对于较长的音频文件,如果想要大幅降低体积,必须使用合适的有损压缩方式。 压缩率的计算方式为:压缩后大小 / 压缩前大小,因此压缩率越小,压缩效果越好。 Unity 支持大多数常见音频文件,并且针对各种用例提供了不同的压缩、加载方式。Unity 将音频文件称之为 Audio Clip,而正确配置 Audio Clip 导入设置 非常重要! 取决于您的音...
基本用法
使用自动优化 有些优化项目可以自动为模型执行。 移除未使用的 BlendShape1 对于值不为零的 Blendshape,冻结 Blendshape 将降低处理成本。 即使值为零,移除 Blendshape 也会有助于减小模型大小。 移除未使用的行为,例如 PhyBone 如果存在不需要运动的已启用 PhysBone(例如:运动目标 Mesh2 始终被禁用),这会导致额外的性能占用。 使用 PhysBone 来合并未动画化或运动的骨骼 如果衣物骨骼嵌套在身体骨骼中,...
模型全局组件
模型全局组件是一种应该添加到模型的根对象,并应用于整个模型的组件。 “模型根对象” 是位于模型层级结构顶层的游戏对象。例如:对于 VRChat 模型,“模型根对象” 是添加了 VRC Avatar Descriptor 组件的游戏对象。 如果将任何模型全局组件添加到模型根目录以外的任何地方中,你将在 inspector(检查器窗口)中看到错误提示,且不会有任何实际用途。 以下组件是模型全局组件,应当被添加至模型根对象的位置: Trace And Optimize UnusedBonesByRefe...
蒙皮网格编辑组件
蒙皮网格编辑组件应该被添加到具有 SkinnedMeshRenderer 组件的游戏对象,其作用是对 SkinnedMeshRenderer 组件产生修改。 它有两种子类型。 源组件 这种组件将额外生成 Mesh(网格)和 SkinnedMeshRenderer(蒙皮网格渲染器)。 以下组件是生成蒙皮网格的组件。 MergeSkinnedMesh此组件将合并已有网格并生成新的网格。 修改组件 这种组件将复制/修改现有的 Mesh(网格)和 SkinnedMeshRenderer(蒙皮网格渲染器...
Trace And Optimize / 跟踪和优化
在旧版本中,此组件名称为“Automatic Configuration”(自动配置)。 此组件将自动优化你的模型。你可以使用复选框来启用或禁用某些自动优化功能。 此组件应当被添加到模型根对象中。(参考分类:模型全局组件) Trace and Optimize 在“绝对不要让它影响到外观”的前提下进行了精心设计。所以,如果出现任何问题,例如外观受到影响或者某些插件不正常运行,它们都是由 AAO 引起的错误,无一例外。因此,如果你在使用此组件时遇到任何问题,请向我们反馈。我们会尽可能的去修复它。 目前,此组件...
UnusedBonesByReferencesTool
将其标记为 EditorOnly,即仅从 EditorOnly 网格中引用的骨骼。 此组件应添加到模型根目录中。(参考分类:模型全局组件) 此组件已过时,你应该使用 Trace And Optimize 的 Remove unused Objects 功能来代替,此组件将永远不再获得支持与更新。 这是 Narazaka 的 UnusedBonesByReferencesTool 的端口,但在打包构建时运行。
Merge Skinned Mesh / 合并蒙皮网格
将一个或多个 SkinnedMeshRenderer 和 MeshRenderer 合并为同一个 SkinnedMeshRenderer . 你应该将此组件添加到具有未指定网格的 SkinnedMeshRenderer 组件的新游戏对象中。(参考分类:蒙皮网格编辑组件) 好处 合并 SkinnedMeshRenderer 将减少蒙皮网格(变形网格)的数量。 此外,它可以合并使用相同材质球的材质槽,有助于降低渲染成本。 注意 此组件将会让动画无法单独打开或关闭网格,但与材质球相关的动画仍可工作,无需修改。 ...
Freeze BlendShape / 冻结和移除形态键
此组件可以冻结并从网格中移除 BlendShape。 应将此组件添加到具有 SkinnedMeshRenderer 组件的游戏对象中。(参考分类:蒙皮网格编辑组件) Trace And Optimize 将自动执行相同的过程,因此在大多数情况下,你不需要使用此组件。 好处 冻结和移除 BlendShape 具有以下好处。 对于值不为零的 BlendShape,冻结 BlendShape 将降低处理成本。 即使值为零,移除 BlendShape 也会减小头像的大小。 注意 冻结 BlendSh...
Merge ToonLit Material / 合并 ToonLit 材质球
通过手动打包纹理,将多个 VRChat/Mobile/Toon Lit 材质球合并为单个材质球。 应将此组件添加到具有 SkinnedMeshRenderer 组件的游戏对象中。(参考分类:蒙皮网格编辑组件) 该组件目前仅支持 VRChat/Mobile/Toon Lit,因为我感觉它的需求非常大。但我可能也会添加对其它着色器(包括第三方着色器)的支持。如果你希望支持其它着色器,请在 Github 上提交 issue。 该组件将创建新的材质球,因此由组件创建的材质槽将不会被 AAO Merge Skinned...
Remove Mesh By BlendShape / 通过形态键移除面
移除由指定 Blendshap 驱动的顶点和面。 好处 通过删除被衣物或者其它东西遮挡的面,可以降低渲染成本、BlendShape 处理成本等,而不会对外观产生太大影响。 你可以使用此组件通过 BlendShape 轻松移除不需要的面,以减少身体各个部分的面数,这在许多模型中都有应用。 设置 你将看到一个 Blendshape 列表,并且可以通过选中复选框来选中 Blendshape。如果选中的 Blendshape 使网格中的某些顶点移动距离超过了设定的 Tolerance,此组件将移除这些顶点。 ...