Anonymous
Not logged in
English
Log in with VRChat
VRChat Wiki
Search
Export translations
From VRChat Wiki
Namespaces
More
More
Page actions
Language statistics
Message group statistics
Export
Settings
Group
Account Linking
Action Menu
Age Verification
Avatar Dynamics
Avatars
Badges
Bans
Camera
Camera Drone
Category:Worlds
Community Labs
Community:Jetski Rush
Community:LGBTQ culture in VRChat
Community:Murder 4
Community:Rexouium
Community:Sketchu Spring
Community:Terrors of Nowhere
Community:The Black Cat
Community:VR Photography Exhibitions
Controls
Expressions
Finger Tracking
Footer
Getting Started
Groups
Guides:Connection issues
Guides:How to write efficient bug reports
Holiday Event 2025
Impostors
Instances
Legal & Guidelines
Lunar New Year 2025
Lunar New Year 2026
Main Page
Menus
Merchandise
Mirrors
Portals
Public Avatars
Quick Menu
Rat
Reporting
Resources
Sidebar
Social
Template:Contentbox/Asset
Template:Delete
Template:Economy-navbox
Template:Infobox/Asset
Template:Infobox/Asset/Authors
Template:Infobox/Event
Template:Infobox/Official World
Template:Infobox/World
Template:MainPageQuickLinks
Template:MainPageTitleBox
Template:MainPageUpdates
Template:MainPageUpdates/Item
Template:MainPageVersion
Template:Noticebox/Biased
Template:Noticebox/Community
Template:Noticebox/Conflict of interest
Template:Noticebox/EditCommunityPage
Template:Noticebox/EditPage
Template:Noticebox/Guidelines translation
Template:Noticebox/non-npov
Template:Noticebox/Official
Template:Noticebox/Stub
Template:Noticebox/unreleased
Template:Noticebox/Unsupported
Template:Noticebox/Update
Template:Noticebox/wip
Template:Proofread
Template:Rat
Template:Reason
Template:Spoiler
Template:Start-navbox
Template:Templatelinks
Template:VisitorsIndicator/Inner
Trust and Safety
Trust Rank
Two-Factor Authentication (2FA)
Udon
VRC+
VRChat account
VRChat API
VRChat Home
VRChat SDK
VRCWiki:Conflicts of interest
VRCWiki:Contributor hub
VRCWiki:Disciplinary policy
VRCWiki:Guidelines
VRCWiki:How to Contribute
VRCWiki:Manual of Style
VRCWiki:Neutral point of view
VRCWiki:Notability
VRCWiki:Roles
VRCWiki:Team
Worlds
Language
de - German
en - English
es - Spanish
fr - French
it - Italian
ja - Japanese
ko - Korean
pl - Polish
pt - Portuguese
pt-br - Brazilian Portuguese
ru - Russian
zh - Chinese
zh-hans - Simplified Chinese
zh-hant - Traditional Chinese
qqq - Message documentation
Format
Export for off-line translation
Export in native format
Export in CSV format
Fetch
{{DISPLAYTITLE:模型功能}}<languages/> {{Noticebox/Official}} [[File:Action_Menu_Expressions.png|thumb|圆盘菜单中的模型功能示例。]] '''模型功能'''是 VRChat [[Special:MyLanguage/avatars|虚拟形象]]的特性之一。它由自定义菜单组成,允许玩家在自己的虚拟形象上使能动作或开关,以便灵活便捷地访问虚拟形象的特有功能。 更多信息请参阅 {{VRC link|https://creators.vrchat.com/avatars/expression-menu-and-controls|Avatar Creators Docs}}。 <span id="Expressions_menu"></span> ==模型功能菜单== 游戏内的模型功能菜单可在[[Special:MyLanguage/Action Menu|圆盘菜单]]中找到,也可从[[Special:MyLanguage/Quick Menu|快捷菜单]]或[[Special:MyLanguage/Main Menu|主菜单]]中的模型功能侧边栏打开。该操作适用于所有 VRChat 版本。对虚拟形象的模型功能的操作将会全局同步到同一[[Special:MyLanguage/Platforms|平台]]上的全部玩家,并可配置为跨平台[[Special:MyLanguage/Guides:Synchronization|同步]]。 <span id="Expressions_in_the_SDK"></span> ==SDK 中的模型功能== 模型功能可通过 [[Special:MyLanguage/VRChat SDK|VRChat SDK]] 中的各种参数来编辑。 <span id="Base_expressions"></span> ===基础模型功能=== 当没有配置任何模型功能时,包含一些基础动画的默认模型功能菜单会被自动添加到虚拟形象之中。这些动画包含: * Wave(挥手) * Clap(鼓掌) * Point(指差) * Cheer(欢呼) * Dance(跳舞) * Backflip(后空翻) * Die(死亡) * Sadness(伤心) <span id="Custom_expressions"></span> ===自定义模型功能=== 欲添加自定义模型功能,可以在 Unity 中创建 '''Expression Menu'''(模型功能目录)资产(Asset)和 '''Expression Parameters'''(模型功能参数)资产,并将它们指定到 VRChat Avatar Descriptor 脚本的 ''Expressions'' 部分。Expression Menu 控制游戏菜单中显示哪些控制功能,而 Expression Parameters 则定义这些控制功能所改变的值的名称、类型、默认值以及同步行为。 每一个自定义参数都可被标记为 ''Saved''(储存)和 ''Synced''(同步)。标记为同步的自定义参数计入模型的 256 比特(bit)同步配额。一个虚拟形象最多可以定义 8192 个自定义参数。资产中的参数也可通过[[Special:MyLanguage/Contacts|Contact Receivers]]、[[Special:MyLanguage/parameter drivers|parameter drivers]]、[[Special:MyLanguage/physbones|PhysBones]]或[[Special:MyLanguage/Open Sound Control|OSC]]更改。 SDK 也包括了一个 ''Default Parameters''(默认参数)按钮。它用于还原 VRChat 默认 AV3 控制器使用的三个参数别名:<code>VRCEmote</code>, <code>VRCFaceBlendH</code>以及<code>VRCFaceBlendV</code>。 <span id="Controls"></span> ====控制项(Controls)==== 每页最多可以有 8 个控制项。当创建时,可选择以下 Type(类型): * '''Button'''(按钮):按下时设定值,并在 VRChat 发送变更后重置。 * '''Toggle'''(开关):开启时设定值,关闭时重置值。 * '''Sub Menu'''(子菜单):打开另一个模型功能菜单。该项可在打开子菜单时设定值(可选)。 * '''Two Axis Puppet''':水平和垂直方向的两个浮点数输入,范围在<code>-1.0</code>到<code>1.0</code>之间。 * '''Four Axis Puppet''':对应四个方向的四个浮点数输入,范围在<code>0.0</code>到<code>1.0</code>之间。 * '''Radial Puppet''':单个浮点数输入,范围在<code>0.0</code>到<code>1.0</code>之间。 <div lang="en" dir="ltr" class="mw-content-ltr"> =====Puppet Menu Example===== </div> [[File:PuppetMenu.gif|thumb|<span lang="en" dir="ltr" class="mw-content-ltr">Example of the Action Menu and Face Mirror in use. ''(Animated GIF)''</span>]] <div lang="en" dir="ltr" class="mw-content-ltr"> As you move your joystick, touchpad, or mouse in different directions, you change animation parameters to blend between moods (e.g., "happy" and "surprised"). Any parameter can be controlled from this menu. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> You can open one menu on either hand (or both). By default, flick to select an option. In Action Menu settings, you can choose to use the Trigger. To back out of a selection in the Expressions menu, pull the trigger. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> When a puppet control is open, VRChat synchronizes its live values with the faster ''IK'' sync mode. After it is closed, the frozen value remains until it is changed again. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> ==Expression Parameter == </div> <div lang="en" dir="ltr" class="mw-content-ltr"> Expression Parameters are used to control avatar features via expression menu, [[Special:MyLanguage/Contacts|contact receiver]], [[Special:MyLanguage/Open Sound Control|OSC]], [[Special:MyLanguage/parameter drivers|parameter drivers]] or [[Special:MyLanguage/physbones|physbones]]. These parameters are then mapped to Animator Controller parameters in your avatar's FX, Gesture, or Action controllers. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> === Settings === </div> <div lang="en" dir="ltr" class="mw-content-ltr"> Each entry in the Expression Parameters asset stores: * '''Name''', which must match the Animator parameter name exactly. * '''Type''', which can be <code>Bool</code>, <code>Int</code>, or <code>Float</code>. * '''Default''', which is used when the avatar is reset. * '''Saved''', which controls whether the value persists between sessions. * '''Synced''', which controls whether the value is sent to other users. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> By default, custom parameter sync uses VRChat's ''Playable'' sync mode. Puppet controls temporarily use faster ''IK'' sync while they are actively open. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> === Built-in parameters === </div> <div lang="en" dir="ltr" class="mw-content-ltr"> VRChat also provides built-in Animator parameters. These do not need to be added to the Expression Parameters asset, and they do not count toward the custom parameter budget. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> Built-in parameters are read-only. They are added directly to a playable layer's Animator Controller by name, and VRChat updates them automatically at runtime. They are not set on sub-animators, only on playable-layer animators. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> Additional built-in parameters include: * <code>Viseme</code> (Int) — Set by lip sync from <code>0</code> (silence) to <code>14</code> (the "u" vowel) when the Avatar Descriptor's Lip Sync is set to Viseme Blend Shape or Viseme Parameter Only. * <code>Voice</code> (Float) — Perceived microphone volume from <code>0.0</code> to <code>1.0</code>, affected by distance and earmuff settings. * <code>VelocityX</code>, <code>VelocityY</code>, <code>VelocityZ</code>, <code>VelocityMagnitude</code> (Float) — Movement speed in m/s along each axis and total magnitude. Locally, playspace movement does not count; remotely, it does. * <code>Upright</code> (Float) — <code>0</code> when prone, <code>1</code> when standing. * <code>Grounded</code> (Bool) — Whether the user is touching the ground. * <code>MuteSelf</code> (Bool) — Whether the user's microphone is muted. * <code>Earmuffs</code> (Bool) — Whether the user has earmuffs enabled. * <code>IsOnFriendsList</code> (Bool) — Whether the viewer is friends with the avatar's wearer (shows False locally). * <code>ScaleFactor</code>, <code>ScaleFactorInverse</code>, <code>EyeHeightAsMeters</code>, <code>EyeHeightAsPercent</code> (Float) — Scaling-related parameters for avatar scaling. <code>EyeHeightAsMeters</code> is recommended for scale-aware systems because it is linear and does not depend on upload height. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> Each built-in parameter has a sync type determining when it is sent to remote users: ''IK'' for tracking-derived values (gestures, velocity, grounded), ''Speech'' for voice-related values (viseme, voice), ''Playable'' for user-state values (mute, earmuffs, tracking type, scale), or ''None'' for local-only values (IsLocal, PreviewMode). </div> <div lang="en" dir="ltr" class="mw-content-ltr"> === Network synchronization === </div> <div lang="en" dir="ltr" class="mw-content-ltr"> Only synced expression parameters and certain built-in parameters are sent over the network. The full list of data sent for each avatar includes: * '''IK targets''' — Head, jaw, and hands for desktop and 3-point tracking; additionally hip and feet for full-body tracking. Index controller users also sync finger positions. * '''Synced expression parameters''' — Only parameters marked as Synced are transmitted. Values are quantized: Int values sync in the range 0–255, Float values sync as multiples of 1/127 between −1 and 1, and Bools sync as true or false. * '''Built-in VRC parameters''' — Including gestures, velocity, voice, and other runtime parameters. * '''PhysBones''' — Pose position data is sent to late joiners. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> For reliable late-joiner support, a recommended pattern is to split animator logic using the <code>IsLocal</code> parameter: local-side layers handle contacts, parameter drivers, and all logic, then set synced parameters, while remote-side layers only read those synced parameters to play the correct visualization. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> === Gestures and facial expressions === </div> <div lang="en" dir="ltr" class="mw-content-ltr"> The built-in <code>GestureLeft</code> and <code>GestureRight</code> parameters identify the user's hand gesture, while <code>GestureLeftWeight</code> and <code>GestureRightWeight</code> expose analog trigger pressure. On humanoid avatars, the Gesture playable layer is commonly used for hand poses, while facial expressions are often driven from the FX layer with blendshapes, material properties, or other non-humanoid animations. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> On tracked controllers where finger tracking overrides animation by default, creators can use a Tracking Control state behavior to switch the relevant fingers from ''Tracking'' to ''Animation'' when needed. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> == Expression Parameter Mismatching== </div> <div lang="en" dir="ltr" class="mw-content-ltr"> Expression Parameter Mismatching refers to the practice of using different parameter types between your Expression Parameters and your local Animator Controller parameters. While it is recommended to keep parameter types consistent, mismatching is supported and the system will convert values between types according to specific rules. This can be useful in certain <u>advanced</u> setups. The same conversion behavior can also be used with built-in VRChat Animator parameters. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> Unity's Animator system uses floats on the backend for all parameter types, while VRChat stores synced custom parameters in compact network-friendly formats. The user interface in Unity and the VRCSDK lets creators choose parameter types for convenience, but under the hood, value conversion is possible. This means that parameters are not being cast in the C# sense, but rather mismatched across systems. This behavior is also supported by popular tools such as Av3Emulator and Gesture Manager. </div> <div lang="en" dir="ltr" class="mw-content-ltr"> ===Expression Parameter Bool=== </div> {| class="wikitable" |+<span lang="en" dir="ltr" class="mw-content-ltr">Animator Controller Parameter</span> !<span lang="en" dir="ltr" class="mw-content-ltr">Type</span> !<span lang="en" dir="ltr" class="mw-content-ltr">Expression Bool = False</span> !<span lang="en" dir="ltr" class="mw-content-ltr">Expression Bool = True</span> |- |Bool → Bool |Bool = False |Bool = True |- |Bool → Int |Int = 0 |Int = 1 |- |Bool → Float |Float = 0.0 |Float = 1.0 |} <div lang="en" dir="ltr" class="mw-content-ltr"> ===Expression Parameter Int=== </div> {| class="wikitable" |+<span lang="en" dir="ltr" class="mw-content-ltr">Animator Controller Parameter</span> !<span lang="en" dir="ltr" class="mw-content-ltr">Type</span> !<span lang="en" dir="ltr" class="mw-content-ltr">Behaviour</span> |- |Int → Bool |<span lang="en" dir="ltr" class="mw-content-ltr">Any Int value that isn't 0 sets bool to True</span> |- |Int → Int |<span lang="en" dir="ltr" class="mw-content-ltr">Expected Behaviour</span> |- |Int → Float |<span lang="en" dir="ltr" class="mw-content-ltr">Straight Conversion: e.g. Int = 2 → Float = 2.0</span> |} <div lang="en" dir="ltr" class="mw-content-ltr"> ===Expression Parameter Float=== </div> {| class="wikitable" |+<span lang="en" dir="ltr" class="mw-content-ltr">Animator Controller Parameter</span> !<span lang="en" dir="ltr" class="mw-content-ltr">Type</span> !<span lang="en" dir="ltr" class="mw-content-ltr">Behaviour</span> |- |Float → Bool |<span lang="en" dir="ltr" class="mw-content-ltr">Any Float value that isn't 0 sets bool to True</span> |- |Float → Int |<span lang="en" dir="ltr" class="mw-content-ltr">Rounded Conversion: ≥0.5 → 1 ; <0.5 → 0</span> |- |Float → Float |<span lang="en" dir="ltr" class="mw-content-ltr">Expected Behaviour</span> |} <div lang="en" dir="ltr" class="mw-content-ltr"> ==Resources== </div> <div lang="en" dir="ltr" class="mw-content-ltr"> *{{VRC link|https://vrchat.com/home/world/wrld_6168d07b-f55c-40bc-8077-749dde39983c|Avatar 3.0 Hub}} world on VRChat *[https://creators.vrchat.com/avatars/expression-menu-and-controls/ Expression Menu and Controls] on Creator Docs *[https://docs.vrchat.com/docs/action-menu#expression-menu Action Menu - Expression Menu] on Creator Docs *[https://creators.vrchat.com/avatars/animator-parameters/ Animator Parameters] on Creator Docs *[https://creators.vrchat.com/avatars/playable-layers Playable Layers] on Creator Docs *[https://creators.vrchat.com/avatars/state-behaviors/ State Behaviors] on Creator Docs </div> <div lang="en" dir="ltr" class="mw-content-ltr"> ==See also== </div> <div lang="en" dir="ltr" class="mw-content-ltr"> *[[Special:MyLanguage/Avatars|Avatars]] **[[Special:MyLanguage/Avatar Dynamics|Avatar Dynamics]] *[[Special:MyLanguage/Action Menu|Action Menu]] *[[Special:MyLanguage/VRChat SDK|VRChat SDK]] </div> <div lang="en" dir="ltr" class="mw-content-ltr"> ==References== </div> <div lang="en" dir="ltr" class="mw-content-ltr"> * [https://vrc.school/docs/Avatars/Expressions-Menu-Params VRC School: Expressions Menu and Parameters] * [https://vrc.school/docs/Avatars/Gestures VRC School: Hand Gestures/Facial Expressions] * [https://vrc.school/docs/Avatars/VRC-Parameters VRC School: Built-In VRC Parameters] * [https://vrc.school/docs/Other/Network-Sync VRC School: Network Sync] * [https://vrc.school/docs/Other/Parameter-Mismatching VRC School: Expression Parameter Mismatching] </div> [[Category:Avatar features{{#translation:}}]]
Navigation
Navigation
Main page
Recent changes
Random page
Contributing
Contributor Hub
How to Contribute
Official Links
VRChat Website
VRChat Forums
Official Guides
Getting Started
Controls
Menus
Worlds
Avatars
Groups
Safety
Resources
Troubleshooting
FAQ
Community Content
Worlds
Avatars
Guides
Resources
Wiki tools
Wiki tools
Special pages
Page tools
Page tools
User page tools
More
Translate
Printable version