Skip to content

AI-assisted media creation

Placeholder media makes a prototype feel like the game. ChatMapper can generate a spoken take for a line, a portrait for a character, a picture for a place or a node, and a short video — from the text that is already in the project — and attach the result like any uploaded file.

Generated media is a workspace feature switch (Settings & Labs → Generative media and Generated actor portraits). It runs on provider keys the workspace admin adds under the AI tab; the included hosted allowance covers text generation only.

On a node’s Media tab, the ✦ Generate with AI button on Audio files sends the node’s dialogue to ElevenLabs and attaches the returned audio. Sentence splits (|) become separate files, in order, pairing with the sentences exactly as recorded audio would.

Each actor has a Voice (ElevenLabs) field in the Actors panel — paste a voice ID from your ElevenLabs library, and Preview voice to hear it. Every line that actor speaks then generates in that voice.

Markup is stripped before synthesis: [em1] tags, [var=…] tokens and stage directions are not read aloud.

In the Actors panel, Generate portrait builds a prompt from the actor’s name and description plus a project-wide style — one style shared by every actor and place, so the cast looks like it belongs in the same story — and asks OpenAI’s image model for a portrait. Preview it, then attach. The portrait then shows on node cards, in the simulator and in Play mode.

Actors without a portrait get a deterministic generated avatar automatically, so a cast is never faceless.

The same Generate button exists on a Place (a scene backdrop for Play mode) and on a node’s Pictures slot. For a node, the generation direction is assembled from the story around it — who is speaking, where, what just happened — and you can edit it before generating, or let the ✦ art director rewrite it from that context.

Generate on a node’s Video file slot offers two modes:

  • Avatar video — a talking-head render of the line via HeyGen or Synthesia, using an avatar ID and voice ID you set per actor (ai_video_avatar_id, ai_video_voice_id). Renders are asynchronous; the slot polls and attaches the file when it is ready.
  • Scene video — a character-free cinematic clip from a prompt built from the node’s context, via OpenAI.

Everything generated lands in the project’s media exactly like an upload: attached to the slot, stored once per workspace, included in CMPKG + media exports, replaced or detached whenever you like. Every generation is logged against the workspace.

  • Generated audio is a scratch track — right for pacing, timing and playtests; a recording studio will replace it, and the voiceover sheet is the hand-off.
  • Portraits and pictures are concept placeholders. The project-wide style keeps them consistent enough to show a producer.
  • Nothing is generated without you clicking Generate on a specific slot. There is no “generate all” that silently spends a key.