Expressions/zh-hant: Difference between revisions

From VRChat Wiki
雨可韓韓 Yucohanhan (talk | contribs)
No edit summary
雨可韓韓 Yucohanhan (talk | contribs)
Created page with "每個自訂參數都可以設定是否 '''Saved'''('''儲存''')及 '''Synced'''('''同步''')。已同步的自訂參數會計入角色的 256 位元同步預算,而單一角色最多可定義 8192 個自訂參數。此資產中的參數也可以由 Contact ReceiverParameter DriverPhysBone 以及 OSC 進行..."
Line 35: Line 35:
若要新增自訂表情,請先在 Unity 中建立 '''Expression Menu'''('''表情選單''')資產與 '''Expression Parameters'''('''表情參數''')資產,然後在 VRChat Avatar Descriptor 的 Expressions 區段中指派這些資產。Expression Menu 用於定義哪些控制項會顯示於遊戲內選單,而 Expression Parameters 則用於定義這些控制項所變更之數值的名稱、類型、預設值,以及同步行為。
若要新增自訂表情,請先在 Unity 中建立 '''Expression Menu'''('''表情選單''')資產與 '''Expression Parameters'''('''表情參數''')資產,然後在 VRChat Avatar Descriptor 的 Expressions 區段中指派這些資產。Expression Menu 用於定義哪些控制項會顯示於遊戲內選單,而 Expression Parameters 則用於定義這些控制項所變更之數值的名稱、類型、預設值,以及同步行為。


<div lang="en" dir="ltr" class="mw-content-ltr">
每個自訂參數都可以設定是否 '''Saved'''('''儲存''')及 '''Synced'''('''同步''')。已同步的自訂參數會計入角色的 256 位元同步預算,而單一角色最多可定義 8192 個自訂參數。此資產中的參數也可以由 [[Special:MyLanguage/Contacts|Contact Receiver]][[Special:MyLanguage/parameter drivers|Parameter Driver]][[Special:MyLanguage/physbones|PhysBone]] 以及 [[Special:MyLanguage/Open Sound Control|OSC]] 進行變更。
Each custom parameter can be marked as ''Saved'' and ''Synced''. Synced custom parameters count toward the avatar's 256-bit sync budget, while avatars can define up to 8192 total custom parameters. Parameters on this asset can also be changed by [[Special:MyLanguage/Contacts|Contact Receivers]], [[Special:MyLanguage/parameter drivers|parameter drivers]], [[Special:MyLanguage/physbones|PhysBones]], and [[Special:MyLanguage/Open Sound Control|OSC]].
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
<div lang="en" dir="ltr" class="mw-content-ltr">

Revision as of 05:54, 4 June 2026

查看 · 編輯這是與 VRChat 官方資訊有關的頁面!
它已經由 VRCWiki 團隊審核並批准。透過閱讀貢獻指南,以瞭解如何為此頁面貢獻。
動作選單中的表情選單範例。

表情」(Expressions),是在 VRChat 中的角色(Avatar)功能之一,其由用戶自訂的選單所組成,可讓用戶在角色上啟用各種動作或切換功能,旨在以靈活且方便的方式快速存取角色的獨特功能。

更多資訊請參閱關於角色的創作者文件

表情選單

遊戲內的表情選單,可透過動作選單(Action Menu)存取,也可透過快速選單(Quick Menu)主選單(Main Menu)中的表情標籤頁存取。這種操作方式適用於所有平台的 VRChat。角色表情的變化會同步給同一平台上的其他用戶,並可設定跨平臺同步

SDK 中的表情

表情功能可透過 VRChat SDK 中的各種參數進行編輯。

基礎表情

當未設定任何表情功能時,系統會自動為角色加入包含基礎動畫的預設表情選單,其中包含以下動畫:

  • 揮手(Wave)
  • 鼓掌(Clap)
  • 指向(Point)
  • 歡呼(Cheer)
  • 跳舞(Dance)
  • 後空翻(Backflip)
  • 死亡(Die)
  • 悲傷(Sadness)

自訂表情

若要新增自訂表情,請先在 Unity 中建立 Expression Menu表情選單)資產與 Expression Parameters表情參數)資產,然後在 VRChat Avatar Descriptor 的 Expressions 區段中指派這些資產。Expression Menu 用於定義哪些控制項會顯示於遊戲內選單,而 Expression Parameters 則用於定義這些控制項所變更之數值的名稱、類型、預設值,以及同步行為。

每個自訂參數都可以設定是否 Saved儲存)及 Synced同步)。已同步的自訂參數會計入角色的 256 位元同步預算,而單一角色最多可定義 8192 個自訂參數。此資產中的參數也可以由 Contact ReceiverParameter DriverPhysBone 以及 OSC 進行變更。

The SDK also includes a Default Parameters button. This restores the three alias parameters used by VRChat's default AV3 controllers: VRCEmote, VRCFaceBlendH, and VRCFaceBlendV.

Controls

You can create up to 8 controls per page. When creating a control, choose its type:

  • Button sets a value while pressed, then resets after VRChat sends the change.
  • Toggle sets a value when enabled and resets it when disabled.
  • Sub Menu opens another Expressions menu, and can optionally set a parameter while that submenu is open.
  • Two Axis Puppet drives two float parameters from horizontal and vertical input, usually in the range -1.0 to 1.0.
  • Four Axis Puppet drives four float parameters, one for each direction, usually in the range 0.0 to 1.0.
  • Radial Puppet drives one float parameter from 0.0 to 1.0.
Puppet Menu Example
Example of the Action Menu and Face Mirror in use. (Animated GIF)

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.

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.

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.

Expression Parameter

Expression Parameters are used to control avatar features via expression menu, contact receiver, OSC, parameter drivers or physbones. These parameters are then mapped to Animator Controller parameters in your avatar's FX, Gesture, or Action controllers.

Settings

Each entry in the Expression Parameters asset stores:

  • Name, which must match the Animator parameter name exactly.
  • Type, which can be Bool, Int, or Float.
  • 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.

By default, custom parameter sync uses VRChat's Playable sync mode. Puppet controls temporarily use faster IK sync while they are actively open.

Built-in parameters

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.

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.

Additional built-in parameters include:

  • Viseme (Int) — Set by lip sync from 0 (silence) to 14 (the "u" vowel) when the Avatar Descriptor's Lip Sync is set to Viseme Blend Shape or Viseme Parameter Only.
  • Voice (Float) — Perceived microphone volume from 0.0 to 1.0, affected by distance and earmuff settings.
  • VelocityX, VelocityY, VelocityZ, VelocityMagnitude (Float) — Movement speed in m/s along each axis and total magnitude. Locally, playspace movement does not count; remotely, it does.
  • Upright (Float) — 0 when prone, 1 when standing.
  • Grounded (Bool) — Whether the user is touching the ground.
  • MuteSelf (Bool) — Whether the user's microphone is muted.
  • Earmuffs (Bool) — Whether the user has earmuffs enabled.
  • IsOnFriendsList (Bool) — Whether the viewer is friends with the avatar's wearer (shows False locally).
  • ScaleFactor, ScaleFactorInverse, EyeHeightAsMeters, EyeHeightAsPercent (Float) — Scaling-related parameters for avatar scaling. EyeHeightAsMeters is recommended for scale-aware systems because it is linear and does not depend on upload height.

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).

Network synchronization

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.

For reliable late-joiner support, a recommended pattern is to split animator logic using the IsLocal 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.

Gestures and facial expressions

The built-in GestureLeft and GestureRight parameters identify the user's hand gesture, while GestureLeftWeight and GestureRightWeight 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.

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.

Expression Parameter Mismatching

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 advanced setups. The same conversion behavior can also be used with built-in VRChat Animator parameters.

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.

Expression Parameter Bool

Animator Controller Parameter
Type Expression Bool = False Expression Bool = True
Bool → Bool Bool = False Bool = True
Bool → Int Int = 0 Int = 1
Bool → Float Float = 0.0 Float = 1.0

Expression Parameter Int

Animator Controller Parameter
Type Behaviour
Int → Bool Any Int value that isn't 0 sets bool to True
Int → Int Expected Behaviour
Int → Float Straight Conversion: e.g. Int = 2 → Float = 2.0

Expression Parameter Float

Animator Controller Parameter
Type Behaviour
Float → Bool Any Float value that isn't 0 sets bool to True
Float → Int Rounded Conversion: ≥0.5 → 1 ; <0.5 → 0
Float → Float Expected Behaviour

Resources

See also

References