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 — 是否在地面 |
|
|
菜单类型
| 类型 |
说明 |
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 中管理。