bevy_speech_bubbles
A dialog kit for Bevy: world-space speech and thought balloons that float over their speakers, a conversation graph with a runtime, paced barks, and a skinnable screen dialog box. Balloons are quads in the scene rather than a UI layer, so they hold a world position, can be hidden behind a wall, and turn to face the camera.
Add it
cargo add bevy_speech_bubbles
The README has a quick start that is compiled on every cargo test. Your game names the camera balloons face with a marker component, and loads its own font.
What it gives you
- Balloons (
build_bubble,track_bubbles,BalloonSkin,BalloonScale), including pixel-perfect ones (balloons). - A
DialogueScriptofLineandChoicenodes, loaded from RON or any serde format, strict about unknown keys, and checked byvalidate_script(conversations). - A runtime driven by
StartConversation,ChoicePickedandConversationEnded, withDialogueNodeEnteredfor effects, and two presenters: balloons or the dialog box. Barks withBarkSettingspacing, and a 9-slicedDialogSkinwith portrait, name tag and typewriter.
Use it in the Cauldron
The Cauldron takes this crate behind its bevy_speech_bubbles feature and keeps a project’s dialogue as the crate’s own DialogueScript in family/bevy_speech_bubbles.ron, with barks as Vec<Bark>. family_set writes them and runs validate_script before anything is saved, so a dangling next or a missing start node is refused with nothing written. dialogue_preview walks one path through a conversation, taking the options you name at each choice, and answers with the lines said, where the walk stopped and which nodes no path reaches, without changing a file. People placed with bevy_society speak these lines.
Links
- Repository · docs.rs · crates.io · CHANGELOG