Voice Chat

In Review - feature maturity not classified, documentation in progress and likely to change

Overview

Spatial Audio provides large-scale, spatialised voice chat between players. You will often hear it referred to by its historical name, โ€œCrowd Audioโ€, and some files still use this name. The new name, โ€œSpatial Audio,โ€ is meant to convey the support for all kinds of audio, not just crowds of people talking!

The spatial audio system consists of three parts:

  • The spatial audio Unreal plugin. This integrates the system with Unreal and provides an API to game code.

  • The audio client. This is a DLL that provides engine-agnostic processing functionality, and provides an interface to the connection between the client and the audio server.

  • The audio server. The server receives audio from each client, performs processing and aggregation, and then sends the mixed audio back to each client.

Mic Check

Microphone settings can be managed in the Settings > Audio menu. This will allow users to change their mic input (desktop platforms only) and also test their microphone input is working. There is also an optional Mic check popup that can be configured to show when a user first enters the experience so they can test their microphone is working. The live config key to enable this popup is EntryFlow.ShowMicCheckPopup

Usage/Controls

Voice chat can be enabled either by pressing the button in the UI, or using the corresponding shortcut

  • C for regular spatial voice chat

  • V for loudspeaker (Requires the Capabilities.Voice.VoiceLoudspeaker capability on the current character for this to be enabled. Off by default for participants, but on for e.g. Presenters)

  • G for Party Chat (If party chat is enabled, and you are in a party)

These keys can either be "push to talk" (you are talking whilst the button is held down), or "toggle".

  • By default, characters are push to talk. This is to avoid issues with people accidentally having hot mics in large scale events.

  • Roles with the Capabilities.Voice.VoiceToggle capability can instead press to toggle. By default, this is only for e.g. presenters, but could be added to other roles if desired.

  • Even if you are using toggle mode, holding the button down will be treated as push to talk. (If you hold for longer than the EnterPushToTalkDelay of 0.25 seconds).

    • This functionality is not easily configurable as it stands, but we plan to make configurable in an upcoming update.

Party Chat

An addition to the Party System, if you are in a party, and have party chat enabled (controlled via the Social.PartyVoiceChatEnabled live config flag, if Social.EnableParties is also true), is the party chat button. This is currently mapped to G, and uses the same push to talk vs toggle rules as the other button.

NOTE: If parties are used, under the hood Broadcast channels are assigned to parties automatically, so they can talk in private channels. Therefore, if you are wanting to allocate broadcast channels manually, we advise not using the party system.

Crowd Audio

Voice Chat is powered by the crowd audio system. Typically this is intended for spatial voice. However, it also handles 2D voice chat, using broadcast channels:

Broadcast channels

This is the way that the crowd audio system handles different "channels" for communication.

It is controlled via the following (on the CrowdAudioComponent):

  • Add/RemoveSubscribedBroadcastChannels - controls which broadcast channels you are listening to

  • Add/RemoveAvailableBroadcastChannels - controls which broadcast channels you are allowed to talk in.

  • SetSelectedBroadcastChannel - sets the channel that you are talking in (must be available)

  • SetVoiceInputEnabled(bEnabled, bBroadcast) - controls whether you are talking or not. If bBroadcastis true, you will use your selected broadcast channel. If not, you will use spatial voice.

When someone talks on "loudspeaker", they are using the global broadcast channel (0), which everyone is subscribed to.

Last updated