跳转到内容

创作者视角 7 · NPC 是一种讲故事的方式

约 1 分钟

这一篇写在第七部之前。

NPC 在多人游戏里通常被当作「自动玩家」:占据一个角色位,让玩家有打的目标,让世界看起来不空。

往上抬一层看,NPC 在 VRChat 世界里同时承担四类工作:

  • 空间感:一个空房间和一个有 NPC 在角落看书的房间,给人的感觉完全不同。NPC 是空间的「家具」之一。
  • 存在感:单人进入世界时,NPC 让玩家不孤独。多人进入时,NPC 让世界有第三方的存在。
  • 节奏感:合作防守里的敌人波次决定了游戏的节奏。先来一波小怪让玩家热身,再来一波精英给压力,最后 boss 战。这种节奏由 NPC 的出场决定。
  • 叙事感:会说话的 NPC、会触发剧情的 NPC、会指引下一步的 NPC,给世界提供故事线索。玩家不需要看长篇文字也能理解发生了什么。

第七部讲 NPC 的三种架构(Local-only 装饰、Owner 驱动、分片 Owner),讲行为树在 UdonSharp 里的替代写法,讲对象池和迟入恢复。这些是技术实现。

技术决定之前,先回到 NPC 的功能

设计 NPC 之前先问:这个 NPC 是为空间感来的,还是为节奏感来的,还是为叙事感来的?不同目的,实现方式完全不同。

为空间感的 NPC 适合 Local-only:每个客户端各自播放,不用同步。 为节奏感的 NPC 适合 Owner 驱动:所有玩家看到同一波怪在同一时刻出现。 为叙事感的 NPC 可能需要 GameState 触发:剧情节点在所有玩家身上同时发生。

挑实现之前先挑功能。挑功能之前先挑这个 NPC 在世界里的角色。