【VRChat】为你的 PC 模型创建 Android 版本
此教程皆在用尽量最通俗易懂的语言教会你为自己的模型创建 Android 版本,来达到在非 PC 版本的 VRChat 上也能看到你自己的模型。
Android 版本拥有非常严格的性能限制,这意味着你的模型只能固定为一种外观。并且大部分外观效果必须弃用。
此教程默认你拥有基础 Unity 和 Blender 知识:包括但不限于安装 UnityPackage,复制粘贴物体组件,融并骨骼等操作。
准备工作
基础知识
VRChat 官方在《创作者指南》上发布了基础的 Quest 模型教程,你可以前往这里查看:《Android | VRChat Creation》
笔者并不推荐在 PC 的工程文件上再次制作 Android 版本模型,这可能会导致项目目录结构非常混乱,特别是在你对 Unity 操作不熟悉的情况下,将会导致重大损失。建议创建工程文件副本,并在此基础上制作 Android 模型。
如果你对自己抱有信心,也可以尝试使用下面的 Unity 插件:
- アセットを依存関係を保ったまま一括コピーするやつ [Unityエディタ拡張] :为所有被模型引用的资源创建副本,如果你想制作两个版本的模型,这将非常有帮助。
Android 模块
如果你需要为 VRChat 上传兼容 Android 版本的模型或地图,你需要先为你的 Unity 添加 Android 模块。
- 使用 Unity Hub 安装的 Unity:转到 Unity Hub 主界面,点击左侧列表里的
安装
,在已安装的 Unity 版本列表里点击右侧的齿轮
图标,点击添加模块
,在弹出的窗口中取消勾选Microsoft Visual Studio Community xxxx
,再勾选Android Build Support
复选框,单击继续
,Unity Hub 将会开始下载 Andriod 模块并自动安装。 - 使用 *.exe 安装程序安装的 Unity:笔者忘了……
如果下载失败并且你使用的是 UU 加速器,你可以加速 VRChat 并尝试重新下载,一般来说将恢复正常。玄学。
性能评级
请记住,Android 版本的性能评价比 PC 严格上一万倍,你需要移除模型上绝大部分的功能才能达到要求。下面为参考表格。
模型属性 |
Excellent | Good | Medium | Poor |
Very Poor |
---|---|---|---|---|---|
Triangles / 面数 | 7,500 | 10,000 | 15,000 | 20,000 | 超过 Poor 的限制后即 Very Poor |
Bounds Size / 边界体积 | 2.5m x 2.5m x 2.5m | 4m x 4m x 4m | 5m x 6m x 5m | 5m x 6m x 5m | |
Texture Memory / 显存占用 | 10 MB | 18 MB | 25 MB | 40 MB | |
Skinned Meshes / 蒙皮网格 | 1 | 1 | 2 | 2 | |
Basic Meshes / 基本网格 | 1 | 1 | 2 | 2 | |
Material Slots / 材质槽 | 1 | 1 | 2 | 4 | |
Animators / 动画器 | 1 | 1 | 1 | 2 | |
Bones / 骨骼 | 75 | 90 | 150 | 150 | |
PhysBones Components / PhysBone 组件数 | 0 | 4 | 6 | 8 | |
PhysBones Affected Transforms / PhysBone 转换数 |
0 | 16 | 32 | 64 | |
PhysBones Colliders / PhysBone 碰撞体 |
0 | 4 | 8 | 16 | |
PhysBones Collision Check Count / PhysBone 碰撞检测数 | 0 | 16 | 32 | 64 | |
Avatar Dynamics Contacts / 触发器 | 2 | 4 | 8 | 16 | |
Particle Systems / 粒子系统 | 0 | 0 | 0 | 2 | |
Total Particles Active / 最大粒子数量 | 0 | 0 | 0 | 200 | |
Mesh Particle Active Polys / 网格粒子面数 | 0 | 0 | 0 | 400 | |
Particle Trails Enabled / 粒子尾迹 | 关 | 关 | 关 | 开 | |
Particle Collision Enabled / 粒子碰撞 | 关 | 关 | 关 | 开 | |
Trail Renderers / 尾迹渲染器 | 0 | 0 | 0 | 1 | |
Line Renderers / 线渲染器 | 0 | 0 | 0 | 1 | |
未被列出的模型组件为 Android 版本无法使用的组件,请移除它们。 |
虽然目前一体机版本仍然可以查看 Very Poor 评级的模型,但 VRChat 官方也可能在将来删除此评级下的模型,谨慎考虑。原文如下:
DANGER!
"Show Avatar" for Very Poor avatars functionality may be removed in the future, and Very Poor avatars may be removed from Android entirely. Please keep this in mind when creating avatars for VRChat on Android.
着色器
常见的 Liltoon 以及 Poyomi 都无法在 Android 平台上使用。出于性能考虑,VRChat 官方限制了你能够使用的着色器。你可以在这里查看你可以使用的着色器:《Quest Content Limitations | VRChat Creation》
你可以在 Android 模型上使用的着色器都将列出在 Shader : VRChat / Mobile / 目录下。这里整理了一些常用的着色器,它们对除了主色外的额外功能支持如下方表格所示, 你可以参考表格来选择合适的着色器。
着色器名称 | MatCap | 金属 | Normal | 阴影 | 跟随环境亮度 |
Bumped Diffuse | × | × | √ | √ | × |
Bumped Diffuse Specular | × | √ | √ | √ | × |
Diffuse | × | × | × | √ | × |
MatCap Lit | √ | × | × | √ | × |
Standard Lite | Standard 着色器的轻量版,保留了原版所有的功能 | ||||
Toon Lit | × | × | × | × | √ |
删删减减
在上一页中,我们熟悉了 Android 版本的模型限制,为了达到此要求,我们不得不抛弃在模型上添加的额外外观物品和功能性插件。
外观物品
外观物品包括但不限于 衣物、头发、额外饰品。以衣物举例,有助于我们制作 Android 模型的衣物往往具备以下特点:
- 外观简洁 :这类衣物往往具有较低的面数,减少减面负担;
- 较少 PhysBone :如果原始衣物用到了非常多的 PB(例如:裙子),那么在转为 Android 后很难保持这些功能;
- 大面积覆盖上半身 :在女性模型中,身体占用面数最多的往往是胸部,被衣服覆盖后我们可以移除这些面;
- 未使用特殊渲染属性 :可以在切换着色器后尽可能的保持外观效果;
- 只使用一个材质球和基础贴图 :越少的材质球和贴图代表着越容易获得较好的性能评级。
除了选择合适的衣物外,我们也应该移除那些额外的衣物,只保留这一件。多件衣物在面数的占用上是显而易见的恐怖,这肯定会超出 Android 面数限制。
模型插件
对于插件,我只建议你安装姿势类,例如 GOGOLOCO。使用了特殊 Shader 与 Android 平台不支持的组件的插件保险起见应该完全移除。
你可以在这里查看 Android 平台不支持的 Unity 组件:《Performance Ranks | VRChat Creation》
用好插件
只使用 Unity 现有的功能是很显然无法轻松达到 Android 要求,这个时候就要请出我们万能的插件了。
下面列出了此教程将会涉及到的插件,并标注了它们在此次教程中的主要作用。你可以事先了解它们:
- Unity :
NDMF Mantis LOD Editor 的前置插件 Mantis LOD Editor - Professional Edition 为 Unity 资产商店内的付费资产,你需要购买才能使用。