Skip to content

Releases: LucasChlz/Scene-Director-Distribution

Scene Director 1.0.0

Choose a tag to compare

@LucasChlz LucasChlz released this 30 Sep 02:12

First public release.

Encounter screens

  • Cinematic screens when combat starts and when it ends, shown to every connected player at the same time.
  • Two art styles, each with a start and an end screen: Rebel (punk collage in three flat colors, tilted bands, ransom-note titles, camera shake) and Chronicle (ink, parchment and gold, construction lines that draw themselves, paint splashes, crowned titles).
  • Every screen lasts 2 to 4 seconds and can be skipped with a click or Esc when the GM allows it.

Session openings

  • Open session (scene controls, a key binding or the Openings section of the window): the GM writes the session number, the chapter, its title and what happened last time, and an opening screen plays for everyone with the party.
  • A Rebel and a Chronicle opening in every world. The recap shows as strips (Rebel) or as a paragraph that wraps (Chronicle); the next session number is proposed automatically.
  • The library has three sections: Encounters, Openings and Maps.

Interactive maps and title cards

  • Interactive maps: your own map art with places on it. Hovering a place shows what the party knows about it; clicking opens another map (with an iris from the icon), activates a Foundry scene, opens a journal or plays a cinematic. The GM opens a map for the table and every player follows it, late joiners included; places the GM leads move everyone, free places let each player explore on their own screen. A player who closes the table's map brings it back from the token controls.
  • The map editor takes the middle of the Scene Director window: place and size icons (Foundry's note icons or your own images), pick who triggers each click, write the hover text, choose a transition and a cinematic to play first, hide places and reveal them later with a right click on the open map, see the map as a player, and open it for the table. Save and Discard work as for any scene.
  • Hidden places are left off the players' screens only: the library is a world setting, so a determined player can still read them in the world's data.
  • Title cards: a short screen with the name of a place, played for everyone when the GM activates the Foundry scene it is linked to (General tab of the card).
  • A Rebel and a Chronicle map and title card under New scene in the Maps section; new worlds are not filled with them.
  • Maps made with an earlier Patreon companion keep working: their data is read from the companion's old key and moves to Scene Director's own the next time they are edited.

Filled in by the combat

  • Enemy leader, party members, names, enemy count, rounds and scene name come from the combat. Hidden combatants never show.
  • Cast: right-click a combatant in the combat tracker to make it the leader, or open the Cast window to reorder the party, bring an NPC ally in or leave a companion out. The choice is saved on the combat.
  • Without a GM choice, the leader is the enemy with the highest level or challenge rating; on a tie, the one with no copies, then the bigger token and more hit points.
  • Actors with no art (or Foundry's generic icons) get the style's silhouette instead of a placeholder icon.

Editing

  • Scene Director window with the library, a live preview and the scene settings in tabs: general, palette, texts, images and sound.
  • Every color of every style is editable. Saved palettes, a default palette per style and a contrast warning.
  • Texts accept values such as {leader}, {enemies} or {roundsRoman}; any image slot can use a fixed image instead of the combat's.
  • Zoom on the preview while editing: Ctrl + mouse wheel or the buttons in its corner, drag to look around, double click to see the whole scene again.
  • Images and sounds straight from your computer: the upload button next to "Browse files", or drop or paste a file on the field. Files go to the world's own scene-director folder, with safe names that never overwrite another file.
  • A text that comes out empty draws nothing (no empty box or strip). Long names and titles shrink to fit their box; paragraphs can wrap and shrink too.
  • Import and export scenes as JSON. An imported scene's colors are kept as a saved palette.
  • Studio: a large window to compose a scene by hand, opened from the brush icon next to every scene in the library. Pick a layer on the stage or in the list; move it, stretch it by its handles (Shift keeps its proportions, the opposite side stays put even when it is turned), turn it (Shift: 15° steps) and slant it, with guides that snap to the middle and edges of the stage and of the other layers; arrows nudge it. Double click a text (or press Enter) to write in it right on the stage. The settings column changes images, palette colors (with their opacity), fonts, lettering, blending and more. The layer list hides, locks, renames and reorders layers (drag, or Ctrl + [ and ]). Undo and redo (Ctrl+Z, Ctrl+Shift+Z), zoom (Ctrl + wheel, Alt + drag to look around) and a preview in the same frame. What lies outside the stage shows dimmed. The Studio edits the Scene Director window's draft: Save and Discard work as always.
  • Shapes and lines can have curves: a point may carry two handles, and the stage draws the curve (clip paths, outlines and image masks included).
  • The window dresses in the style of the scene being edited, with the accent from its palette. Foundry's look is one setting away.

Table and players

  • Plays automatically when combat starts and ends, or on demand with Play for everyone, key bindings or the API.
  • Each player can turn scenes off or reduce flashes and camera shake; the system's reduced-motion setting is respected.
  • Scene sounds play through Foundry's interface volume.
  • While a scene plays, the canvas behind it draws at a lower frame rate, so the animation stays smooth on modest graphics cards. Measured on an integrated GPU: the four built-in screens run at 94 to 116 frames per second.
  • The Scene Director and Cast windows can be used with the keyboard: Tab, Space, Enter and the arrow keys stay in the window instead of reaching Foundry's shortcuts.

For developers

  • Public API: play, stop, setLeader, openCast, resetCast, openMap, closeMap, tableMap, registerStyle, registerTreatment, registerSceneType, and the hooks sceneDirector.register, sceneDirector.ready, sceneDirector.prePlay, sceneDirector.play, sceneDirector.end.
  • The two built-in styles register through the same API a third-party style would use, window theme included.
  • api.registerTemplate (extra templates for existing styles and scene types), api.lineup(combat), api.trigger(id), open trigger ids for other modules' scene types, and the hooks sceneDirector.resolveScene (pick another scene for a trigger) and sceneDirector.renderDirector (add controls to the window, with app.applyColors).
  • Library sections (api.registerSection): scene types of each section are listed under their own tab. Scene types can bring their own editor, context and token labels; scenes and layers keep module data under extensions (the maps' own under extensions["scene-director"]); api.createPlayer() plays scenes that stay up until closed.
  • Maps for other styles: a style may declare a map look (icon frame, place names, the viewer's frame colors); map templates get a kit with the style's look, the example places and the art layer's mark (factory(t, kit)); api.maps names the map and title-card types, their section and the data key. The map viewer's classes (.scdir-map[data-style], .scdir-map-*) and its --scdir-map-* properties are a styling contract for other styles.
  • Scenes can carry extra cards after their main screen (scene.cards), played on the same stage: layers marked stay remain while each card's layers come and go, and each card moves on after its time or when the GM clicks Next (a Next/End bar and the right arrow key; players follow over the socket). The free module plays only the main screen until another module calls api.enableCards(); api.registerDirectorTab adds a tab to the scene settings.
  • Studio extensions (api.registerStudioExtension): tools, modes with a panel under the stage, stage tools, settings sections and controls under the screens, all through undoable changes. api.openStudio(sceneId), api.unregisterTemplate(id), api.refreshDirector(), api.normalizeLayer, api.motion (the effect lists) and shape helpers (pathData, samplePath, shapePoints).
  • The player can hold a scene at any instant (play(scene, context, { paused: true, at }), then seek, pause and resume): what shows is exactly what the table sees at that moment.
  • Layers have a locked flag (used by the Studio only).