跳转到内容

20. Social Hub,给社群一个家

约 25 分钟 难度:进阶 理解章

VRChat 里有一些世界,每天晚上九点准时聚 20 来个人,连聚了三年。它们不是热搜榜上的爆款,访问量平摊到每个非常驻玩家身上几乎为零。但常驻群体把它们当家。The Great Pug(owlboy 维护的酒吧型公共空间,多年一直是英语社群的代表性 Hub)是这类世界里被引用最多的样本。

这一章把 Social Hub(社群聚集的公共空间)这一类单独拎出来。它跟第 18 章的 Chill World 看起来很像(都靠氛围、都不靠机关),但解决的问题完全不同:Chill 世界服务的是「随机进来想休息一下的玩家」,Social Hub 服务的是「一群有归属感、每周来三次的固定群体」。这件事的设计含义和技术取舍跟前两章都对不上。

这类世界的核心是「社群结构能在里面发生」

Section titled “这类世界的核心是「社群结构能在里面发生」”

一个 Social Hub 好不好的衡量,不看某一晚上有多少人,看三个月之后还有没有人按时来。

要让人按时来,空间得能承载几件 Chill 世界不需要承载的事:

  • 能区分常驻和路人。社群里有「老人」和「访客」。老人需要熟悉的座位和角落,访客需要看得到「这里在发生什么」。两类人在同一个空间里得有不同的待遇。
  • 能区分公开和私密。整场 20 个人时常分成几个小圈子各自聊。一个长桌全员聊很热闹,但不能全场只有一个长桌:要有让两个人单独说话的角落。
  • 能给主持人 / 管理员开权限。社群里通常有运营者:定时活动主持、规则维护者、群组管理。他们需要能控制 BGM、关掉 / 打开某个区域、传送出捣乱玩家。
  • 能撑得住高频使用。Social Hub 每周被同一群人进出一两百次。坏一次可能不致命,但经常坏会让群体迁移到别的世界。
  • 能跟 VRChat Group 系统配合。VRChat 自己的 Groups 功能(社群、订阅、群组房间)已经存在,Social Hub 通常是某个 Group 的「物理总部」。两者要配合得自然。

跟 Chill 世界比,Social Hub 多了一层「治理结构」的需求:空间不只是给人感觉的容器,要能装下社群的运转结构。

Social Hub 的玩家分两类,期待不一样:

常驻玩家(每周来三次以上):

  • 他们的固定位置还在。常驻群体会形成习惯:A 总坐吧台第三个凳子、B 喜欢窗边的露台。世界改版时把这些位置挪了,老人会有「家被装修得我不认识了」的不适。
  • 熟悉的活动还能正常运行。每周三晚上的 DJ 台、每周五晚的桌游夜,相关设备得能用。
  • 能快速找到当晚的「主活动地」。今晚是在主厅放电影,还是在二楼包间桌游?得有视觉线索。

路人(被朋友带来、或被推荐第一次进):

  • 能很快看出「这里在干嘛」。前 30 秒决定他要不要留。一进门看到一群陌生人坐成一桌聊得很热闹,路人会犹豫要不要凑过去。
  • 能找到能凑的位置。空着的座位、墙边的吧台、可以坐着旁听的角落都得有,免得路人站在门口不知道往哪去。
  • 能分辨谁是「主人」。哪个是世界 owner、哪个是 staff、哪个是常驻、哪个是跟自己一样的路人,最好一眼就看得出(VR 名签、特殊头顶标记、Group Tag 都是常用手段)。

两类人对空间的需求经常冲突。常驻群体喜欢「固定不变」,路人需要「易进入」。Social Hub 设计的微妙之处大半在这两者的平衡。

按踩坑频率从高到低排:

「我做一个大酒吧吧,所有人坐在一起」。这个直觉的问题是:人数一多就只剩一个声场,所有谈话挤在一起,谁都听不清谁。

VRChat 里 16 个人在一个开放大厅里基本聊不起来。需要分腔:

  • 主厅(10 人左右的大圈子,谈话偶尔覆盖全场)。
  • 几个小腔(4 到 6 人,吧台、卡座、二楼包间)。
  • 至少一个真正密闭的私聊角(2 人,墙体能挡声音衰减更明显)。

物理墙体本身不阻挡 VRChat 的语音传播(语音是按距离衰减的,不绕墙),但墙能改变人的心理:人会下意识在墙围出来的小空间里放低音量。设计上要利用这一点。

Social Hub 的人数容量由世界创作者通过 VRCSceneDescriptor 自行设置,常见硬上限在 32–64 人区间。要在最大人数下世界还跑得动。

这件事主要影响:

  • Realtime Light 数量:每盏实时光在玩家身上会算一遍光照。Quest 上 4 盏以上的实时光基本就要看明显的性能下降。Social Hub 里灯多但要尽量烘焙。
  • AudioSource 数量:每个 AudioSource 每帧都在算空间衰减。几十名玩家在一个有 20 个 AudioSource 的世界里,加起来的音频通道压力可观。
  • Mesh 复杂度:玩家自己的 Avatar 通常都很重。世界本身要把网格做轻,给 Avatar 留预算。

第七部第 38 章会展开。这里只先意识到:Social Hub 的性能预算要按「最大人数 + 复杂 Avatar」的最坏情况估算,不要按自己一个人测试时的帧率估。

世界发布之后两周,社群里有人捣乱,常见的需求:「能不能让管理员把那个人传走」、「能不能临时把 BGM 关一下听公告」、「能不能晚上 11 点之后强制把灯调暗一档」。

这些需求事先没设计的话,现场没办法处理。常见的做法是做一个「管理员控制面板」:

  • 一个挂在某面墙上的 UI,只有特定 Player 能用(用 VRChat Player 的显示名 / 群组成员状态等做白名单判断)。
  • 控制面板里有:一键 Mute 全场 BGM、一键切换房间灯光预设、传送某玩家到「冷静角」、显示当前在场玩家列表。
  • 用 VRChat Group 集成判断身份:哪个群组的 owner / moderator 进来时自动获得权限;具体可读的 Group 信息以当前 SDK 暴露的 API 为准(Class Exposure Tree / 官方文档)。

这一类工具是 Social Hub 的隐形骨干,单纯的 Chill 世界不需要,但 Social Hub 几乎逃不掉。

VRChat 自带的 Groups(VRChat 群组)功能可以做到:群组成员才能进入的实例(Group Only / Group+ / Group Public)、群组角色(Owner / Moderator / Member)、群组商店、群组公告。

Social Hub 不用这套就只是「一个公共大厅」。用上了能拿到:

  • 常驻群体在他们想要的隐私级别下使用空间:今晚搞内部活动?开 Group Only 实例。今晚对外开放?开 Group Public。
  • 管理员身份自动传到世界里:如果 SDK 当前版本暴露了相应的群组成员/角色查询能力,门禁、控制面板就有了权限基础;否则可以用显示名白名单 + 群组实例类型组合兜底。
  • 订阅功能跟世界绑定:Group Subscription(订阅角色)配合 Udon Products,能给订阅者特权(特殊房间、专属椅子、显示名标记)。这一块第 25 章会讲。

如果心里那个 Social Hub 是为某个具体社群服务的,VRChat Groups 集成几乎是默认选项。

出生点把人扔到「半夜没人的状态」

Section titled “出生点把人扔到「半夜没人的状态」”

跟 Chill 世界一样,但更严重:Social Hub 出生点的「氛围」必须既适合「20 人热闹中」,也适合「凌晨 3 点只有一个人」。

如果出生点旁边永远是「DJ 台 + 强 BGM + 满地人偶」的布置,凌晨一个人进来会觉得空旷又喧闹的反差特别大。

通用做法:出生点放在「氛围中等」的位置(比如门厅、玄关),让玩家自己往主厅走。主厅的强氛围只在到达后才完整呈现。这一点跟戏剧的入场设计是同一个思路。

Social Hub 介于 Chill 和 Game 之间,技术骨干是两边的杂交:

  • 氛围(继承自 Chill):光、声音、空间尺度、动线。第七部 31、32、33、36、37 章。
  • 同步(继承自 Game,但需求弱):管理员的操作要让所有人看到(关 BGM、切灯、传走玩家),常驻玩家收藏的设置要能保留。第 27、28 章。
  • PlayerData(持久化):常驻玩家的偏好设置(坐哪、灯光预设、是否显示名签)跨实例保存。VRChat 的 PlayerData API(VRC.SDK3.Persistence)。第 28 章末尾或第 46 章。
  • Group 集成:基于群组实例类型(Group / Group+ / Group Public)+ SDK 当前暴露的群组成员/角色查询 API 做权限。具体可用 API 以 Class Exposure Tree 和当前 SDK 版本为准;不可用时用显示名白名单、Instance Owner 等方式兜底。
  • UI:管理面板、玩家列表、活动公告。第 34 章。
  • 性能(最大人数情况下):第 38、39 章。

简化版优先级:

顺序学什么在书里的位置
1出生点 + 进场动线第 31 章
2多腔体空间设计(主厅 + 子腔 + 私聊角)第 32 章
3光 + 声音的氛围基础第 33、36 章
4网络同步(管理员动作的同步)第 27、28 章
5UI 和管理面板第 34 章
6PlayerData 持久化(玩家偏好)第 28 章末尾
7性能(最大人数下)第 38、39 章
8发布之后维护 + 长期更新第 46 章(这一项 Social Hub 比其他类型重要)

注意最后一项。Social Hub 的开发周期是「持续运营」,发布日是起点而非终点。第 46 章那一节对这一类世界尤其重要。

VRChat Groups 给了 Social Hub 几种可能的实例策略:

模式说明适合什么社群
Public任何玩家可进想吸引新人的开放型公会 / 兴趣社团
Group Public群组关联实例,任何玩家可加入;通常需要群组里有较高权限的角色(如 Moderator)才能创建主体是群组活动但欢迎旁观的
Group+群组成员或被邀请的人可进半私密社群,有一定门槛
Group(也称 Group Only)仅群组成员可加入私密内部聚会
Friends / Friends+创建者的朋友小型亲密圈

不同 Group 实例类型的创建权限可由群主在 Group Roles 设置里自行配置(例如 Group / Group+ 通常 Member 即可创建,Group Public 通常需要 Moderator 以上)。

Social Hub 的设计可以一次容纳多种模式:白天 Public 开放给路人,晚上 Group Only 关起来内部用。这套切换不在世界里,而在 VRChat 实例创建侧。世界开发只要确保「Public 模式下不会暴露内部内容」(比如管理面板要做权限校验)就够了。

把心里那个 Social Hub 写下来,回答这五件事:

  1. 服务的是谁的社群?这个 Hub 的「常驻群体」大概多少人、什么背景、用什么语言?群组性质决定整个空间的语言、配色、氛围、活动类型。
  2. 每周有几次固定活动?这些活动需要什么设备(DJ 台 / 大屏 / 桌游 / 沙发圈)?这些设备分别需要在哪个区域?
  3. 典型的一晚是什么样?8 点先来 5 个人在吧台聊天、9 点活动开始 15 人聚到主厅、11 点活动结束剩 6 个人散到各小腔体、凌晨 1 点剩 2 个人在二楼。设计要能撑过这些不同密度的瞬间。
  4. 路人能从哪进来?是 VRChat Public 搜索?群组邀请?传送门?路人进来后第一秒看什么、第十秒被引导到哪?
  5. 管理员需要哪些工具?把可能的「现场处置」需求列五条,对应到管理面板上的五个按钮。

这五条都答上之后,能开始把空间布局画出来。Social Hub 的布局通常要边写运营场景边来回调整,很少能一张图画到位。

走 Social Hub 这条路要带走的:

  • 评判标准是「三个月之后还有没有人按时来」。
  • 空间要分腔:主厅、子区域、私聊角,三档密度都要照顾到。
  • 管理员工具是基础设施,不是后期补丁。
  • 跟 VRChat Groups 集成几乎是默认选项。
  • 长期运营的功夫比开发本身长,结构稳定 + 装饰更新两件事要分清。

走这条路的话,后面几部按这个顺序读最稳:

第六部(和别人一起) ← 中等深度,Social Hub 同步需求弱于 Game World
├ 第 26 章 你看到的,别人不一定看到
├ 第 27 章 谁说了算,Ownership
└ 第 28 章 告诉别人发生了什么(含 PlayerData 持久化)
第七部(让世界变成一个地方) ← 重点,几乎全部都要
├ 第 31 章 玩家进来的前三十秒
├ 第 32 章 空间、比例和舒适 ← 核心:分腔设计
├ 第 33 章 声音和氛围
├ 第 34 章 UI 和反馈 ← 核心:管理面板
├ 第 36 章 光
├ 第 38 章 性能 ← 核心:最大人数下
└ 第 39 章 PC 和 Quest
第九部(发出去,然后继续走) ← 重点
└ 第 46 章 维护一个世界 ← Social Hub 维护周期最长

下一章看 Gallery。Gallery 跟 Social Hub 同样有「让人走进来」的需求,但服务对象从社群换成了作品。空间安静下来给作品让位,这件事的取舍跟前面三章都不同。