❓ QWAY Studio HelpQWAY · WRIGHT · RIDLEY · RAMS

Speech, talking characters and interactive content

Compile speech for playback

Give the actor a stable QWAY alias and add a RIDLEY voice declaration. Dialogue cues use that voice; a cue can override delivery settings. Narration can also specify a voice without an actor. Subtitle cues remain silent.

QWAY / RIDLEY
\voice[actor=@guide,voice=cedar,language="en-US",speed=1,instructions="Speak clearly and warmly in English."];
\cinematic[id=welcome]{
  \dialogue[id=greeting,actor=@guide,text="Welcome. Let us explore this space together.",duration=5s];
  \return[id=done];
}

This is a pattern to adapt: @guide must refer to an existing actor in your project. The accepted voice set and cue fields are listed in the RIDLEY reference. Do not paste illustrative aliases into a project where they do not exist.

Generation, cache and timing

New speech is generated through the API during WorldPack export. The provider key stays on the server. Ordinary source compilation and visits to the published site do not call the speech provider. The package contains the resulting MP3 bytes, and subsequent identical requests reuse the persistent cache.

Preview looks up already-compiled speech: export once, then reopen preview. If audio is longer than the authored cue, the resolved export timing extends the cue and shifts later actions coherently; the source text is not rewritten. Spoken cues must not overlap. Missing credentials or uncertain generation receipts must be investigated rather than repeatedly retried without checking whether a paid request completed.

Talking character preparation

Speaking audio and facial animation are separate capabilities. The talking-human conversion needs a reviewed source-specific profile or a GLB with the required facial morph set. An unrigged face without such a profile reports TALKING_PROFILE_REQUIRED; conversion is not a generic automatic face rig.

A successful conversion creates a derivative library asset and replaces the selected instance’s asset while retaining instance identity, placement and directing bindings. Keep the original. Review neutral appearance and mouth deformation before close-up use. Current mouth motion is an approximation gated by audio energy, not phoneme-aligned lip reading; body clips and navigation remain separate.

Unlock audio and check it

Enable audio using the player’s button or an explicit play gesture. A muted or browser-suspended audio context can leave otherwise valid speech silent. Wait for resource decoding, then inspect playback from the start. Pause, stop, reset and close must release the previous audio source; replay should not layer duplicate speech.

Interactive labels and content

Select an object and use its Inspector to create an interactive label. Give it a readable title, placement and action. Supported content includes pinned PDF, standalone HTML, audio, video and subtitle resources, plus typed RIDLEY actions. External hyperlinks remain links rather than packaged remote websites.

  1. Choose the existing object that owns the label.
  2. Upload/select the required content resource and set the appropriate action.
  3. Compile and check the label in player preview; editor overlays and player navigation serve different purposes.
  4. Open the content, close with Escape and confirm focus returns to the invoking control.
  5. Export and repeat the check in the standalone site, where the editor catalog is not available.

Labels follow their parent and can hide with distance or occlusion. The shared content viewer opens over the existing world, pauses media on close and preserves the player. HTML is constrained to its supported sandbox/content format, not arbitrary access to Studio.

Semantic chat is not an unrestricted agent

The website chat can report the current room, list known objects/exits, navigate to a known room, approach an object and activate available content. These actions resolve real identities from the world and call the same player operations as visual controls. Ambiguous names require clarification; unknown text cannot create objects or routes.

Room editorial text adds context but does not define live geometry. NPC conversation is a separate feature with a pinned persona and an explicitly configured optional transport. An exported site does not inherit the authoring API or its provider credentials.