跳转至

title: VRChat Avatar 3.0 规范 created: 2026-05-01 updated: 2026-05-01 type: reference tags: [vrchat, avatar-3, animator, expressions]


🎬 VRChat Avatar 3.0 规范

Avatar 3.0 是 VRChat 当前的标准 Avatar 架构,包含 Animator 图层、表情系统和可玩层配置。

1. 核心组件

Avatar 3.0 由以下核心组件构成:

组件 作用
Animator 控制 Avatar 的基础状态机和动画图层
VRC_AvatarDescriptor 定义 Avatar 的性能参数、相机位置和图层
VRCExpressionParameters 定义表情参数的名称、类型和默认值
VRCExpressionsMenu 定义表情菜单的结构(按钮、Toggle、Radial)

2. Animator 标准图层

Avatar 3.0 必须包含以下 5 个标准图层(不可删除,可自定义 Controller):

2.1 Base Layer(基础层)

  • 用途: 基础站立、呼吸、待机动画
  • 权重: 1.0(最高优先级)
  • 混合模式: Override
  • 内容: Idle 动画、Walk、Run、Jump 的 State Machine

2.2 Additive Layer(叠加层)

  • 用途: 表情同步(眨眼、张嘴等叠加动画)
  • 权重: 1.0
  • 混合模式: Additive
  • 内容: 面部 BlendShape 驱动的动画状态

2.3 Gesture Layer(手势层)

  • 用途: 控制手部姿势(握拳、指向、和平手势等)
  • 权重: 1.0
  • 混合模式: Override
  • 内容: 受 Radial Menu 控制的手势切换
  • 参数: GestureLeft, GestureRight(Int 类型)

2.4 Action Layer(动作层)

  • 用途: 控制特殊动作(跳舞、坐下、道具使用)
  • 权重: 1.0
  • 混合模式: Override
  • 内容: 全身动作覆盖
  • 典型用法: 坐/躺/舞蹈时的全身姿态

2.5 FX Layer(特效层)

  • 用途: 控制粒子特效、PhysBone 切换、材质开关
  • 权重: 1.0
  • 混合模式: Additive
  • 内容: Toggle 切换、粒子播放、材质变更
  • 典型用法: 换装菜单、表情切换、特效开关

2.6 Sitting Layer(坐下层)

  • 用途: 专门处理坐下的动画与骨骼权重
  • 权重: 1.0
  • 混合模式: Override
  • 内容: 坐姿动画,会覆盖 Base 层

3. VRC_AvatarDescriptor 字段详解

画与骨骼权重 - 权重: 1.0 - 混合模式: Override - 内容: 坐姿动画,会覆盖 Base 层

3. VRC_AvatarDescriptor 字段详解### Network

属性 类型 说明
Network ID String (只读) Avatar 唯一网络标识符,上传时自动生成

View Position

属性 类型 说明
View Position Vector3 (Local) 相机锚点位置,定义玩家戴上头显后的摄像机位置(通常在双眼之间)

Animations

属性 类型 说明
Idle AnimatorController 待机状态动画(呼吸、微晃)
Walk / Run AnimatorController 行走/奔跑动画
Jump AnimatorController 跳跃动画
Sitting AnimatorController 坐下姿态动画

Playable Layers

属性 类型 说明
Base / Additive AnimatorController 基础层和叠加层控制器
Gesture / Action / FX AnimatorController 手势、动作、特效层控制器
Sitting AnimatorController 坐下专用层控制器
Customize Animation Bool 允许其他玩家替换此 Avatar 的待机/行走动画

Eye Tracking

属性 类型 说明
Enable Eye Tracking Bool 启用眼球追踪(需头显支持 + 眼球骨骼)

Lip Sync

属性 类型 说明
Lip Sync Enum 嘴型同步模式:Viseme(基于参数)或 Jaw Flap(仅下颌开合)
Lip Sync Jitter Float 嘴型抖动的随机系数,防止静音时嘴唇完全僵硬
Viseme Parameter String 驱动嘴型的参数名称(默认 Viseme

Voice

属性 类型 说明
Voice AvatarVoice 麦克风音频设置(音量衰减、音高偏移、空间化范围)

Colliders

属性 类型 说明
Avatar Colliders List 自定义碰撞体列表,用于击打、抓取或与场景物体交互

4. Expression Parameters 配置

VRCExpressionParameters 定义所有表情/交互参数:

参数类型 说明 典型用途
Bool 开/关 Toggle 显示/隐藏、开关特效
Int 整数值 手势切换、菜单选择
Float 浮点值 表情混合权重、参数控制
--
Bool 开/关 Toggle 显示/隐藏、开关特效
Int 整数值 手势切换、菜单选择
Float 浮点值 表情混合权重、参数控制
VRChat 系统预留了以下参数(不可用于自定义):
- Viseme — 嘴型同步
- GestureLeft / GestureRight — 手势
- Angry / Happy / Sad / Surprised — 面部表情
- Mouth — 嘴部控制
- Velocity / VelocityAngular / Upright — 移动状态
- Grounded — 是否在地面

5. Expressions Menu 结构

菜单类型

类型 说明
Button 单击触发一次(播放表情动画)
Toggle 开/关切换(显示/隐藏部件)
Radial 径向菜单(多选项旋转选择)
Sub Menu 子菜单入口
Two Axis 双轴控制(XY 平面参数控制)
Four Axis 四轴控制

菜单深度限制

  • 最多 4 级 子菜单嵌套
  • 每个 Radial 最多 8 个 选项
  • 总参数数 ≤ 256(与 Animator 共享)

6. Playable Layers 工作流

用户操作(手势/菜单)
Expression Parameters 更新参数值
Animator Controller 根据参数切换 State
对应 Layer 执行动画/特效/Toggle
Avatar 表现变化

💡 最佳实践: FX Layer 是最常用的自定义图层,建议将换装、表情、特效全部放在 FX Layer 中管理。