Saltar al contenido

Descripción

Conversations that are not a wall of text.

StoryModule turns a DataTable into a scene: several characters on screen at once, each with a portrait material whose mouth moves while that character is the one talking, a typewriter with per-character pacing, branching choices, and ten inline minigames that can send the scene somewhere else when the player fails them.

Speakers do not have to stay in the widget. Place a Story Avatar in the level and that character is presented there instead - as a portrait panel hanging in the room, as a screen prop whose material mirrors the same lip sync, or as a skeletal mesh that idles and blends into a talk animation while it speaks. Mix them freely: one speaker on a monitor, the next one standing in front of you. The dialogue text, the choice buttons and the minigames always stay on the viewport.

A guided camera does the rest. It travels towards whoever is speaking and stops at a distance you set, pans until they are centred and stops at an angle you set, breathes with a subtle handheld sway, and lets the player push the shot around with the mouse by a clamped angle before easing back to the guided framing. It is a dolly and a pan, not a shot list: the framing your level gave the camera is kept.

Lip sync with no audio pipeline. The default mode drives the mouth from the letter the typewriter just revealed, so it is always exactly in sync with the visible text - deterministic, free, and it works before a single line is recorded. Swap it for the amplitude envelope of your voice-over later, or for a plain oscillator, without touching the material.

Multiplayer is built in. A shared scene is server-authoritative: every client shows the same line, any of them can advance it, and a late joiner opens at the line that is currently playing.

Optional LLM dialogue. Switch the text source to Google Gemini or any OpenAI-compatible local endpoint and the rows you marked get rewritten at runtime from the speaker persona, the recent history and the authored line as the beat to hit. Every failure path falls back to the authored line, so the scene is always playable offline. Off by default: nothing touches the network until you turn it on.

Standalone. No RTSUnitTemplate, no Mass, no GAS - the module links engine modules only, so a scene drops into any project.

KEY FEATURES

• Multi-character scenes from two DataTables - one row per speaker, one row per line.

• Per-character lip sync driven by text, audio envelope or oscillator; every material parameter is optional.

• Speakers in the level: portrait panel, screen prop, or skeletal mesh with idle-to-talk blending.

• Guided camera with distance and angle thresholds, idle sway and clamped mouse deflection.

• Ten inline minigames with win/lose routing into different rows.

• Branching choices, flags, goto rows and played-scene tracking, ready for save games.

• Server-authoritative shared scenes with late-join support.

• Optional LLM-generated lines with deterministic fallback to the authored text.

• Every widget binding is optional - an empty widget tree still builds a working layout.

TECHNICAL DETAILS

• Engine version: Unreal Engine 5.8

• Type: C++ Code Plugin (full source included)

• Modules: StoryModule (Runtime)

• Supported platforms: Windows (Win64)

• Network Replicated: Yes (shared scenes; local scenes are deliberately not replicated)

• Number of Blueprints: 5 (dialogue widget, character slot, choice entry, minigame skin, trigger actor) - all optional overrides

• Example content: one example level with a three-character scene and a minigame stretch, two example DataTables, and a lip-sync portrait material with three instances

• Third-party dependencies: none. The optional LLM path calls an endpoint you configure; with the default DataTable text source nothing leaves the machine.

Documentation: https://wiki.teufel-engineering.com/en/StoryModule

Support: [email protected]

Formatos incluidos