Skip to content

Character

Someone who appears on a visual novel’s Stage, inside it: on stage while their entity is shown, standing at one of the stage’s positions, looking as their Expression says. Each expression is a picture for their Sprite or a clip their Animation plays. Their name is their Speaker’s (or their entity’s), which the stage’s tags and lines use: “[show Ava left happy]”, “Ava (sad): Oh.” While they speak they’re lit, and the others on stage dimmed.

Part of the Visual Novels module: Visual novels: a Stage with backgrounds and the characters on it (Character), at named positions and with expressions, directed by the lines of a dialogue (“[show Ava left happy]”, “[background Park fade]”); the Visual Novel template, a short story with three endings; and Create Stage, Create Character and Create Reading Menus in the Entity menu.

Requires: Sprite (how they look)

Works with: Speaker (their name, for the lines they say); Animation (for expressions that are clips)

Changes how its entity is drawn (a tint, a shake or drawing it on top).

Each is listed as its key in the scene file and the MCP tools, then its kind of value, its default and what it does.

  • expressions: lines of text: an array of strings, or one string with line breaks = []. How they can look, one per row: a one-word name and a picture for their sprite (“Happy: Characters/ava-happy.png”), or the name of a clip their animation plays (“Laugh: Laugh”). (Expressions, one per row: a one-word name and a picture for their sprite (“Happy: Characters/ava-happy.png”) or the name of a clip their animation plays (“Laugh: Laugh”). The Inspector lists them a row each with the picture or clip picked.) (Field: its own editor: Expressions.)
  • expression: text = null. How they look now, one of Expressions: their sprite shows it as soon as it’s set. (Names one of their expressions (Expressions); the Inspector picks from them and flags a name that isn’t one. Empty for none.) (Field: its own editor: Choice Of.)
  • position: text = null. Where on the stage they stand, one of its positions: set here, they stand there. (Names one of their stage’s positions; the Inspector picks from them and flags a name that isn’t one. Empty for none.) (Field: its own editor: Choice Of.)
  • shown: a number = 1. How much of them shows, from 0 (not at all) to 1, as they fade in and out. (Field: a number.)
  • leaving: true or false = false. True while they’re going off: they’re hidden once they’ve faded or slid away. (Field: on or off.)
  • brightness: a number = 1. How lit they are, from 0 to 1: lower while someone else on stage is speaking. (Field: a number.)
  • moveFrom: [x, y] = [0,0]. Where a walk or slide started, from the stage’s middle. (Field: a vector.)
  • moveTo: [x, y] = [0,0]. Where a walk or slide ends, from the stage’s middle. (Field: a vector.)
  • moveLeft: a number = 0. Seconds left of a walk or slide. (Field: a number.)
  • moveTime: a number = 0. Seconds the walk or slide takes in all. (Field: a number.)
  • fadeTime: a number = 0. Seconds the fade in or out takes in all (0 for none under way). (Field: a number.)

What anything can make it do with no code: a Trigger’s do when its message arrives, a Contraptions Wire’s input as its signal comes on, a script’s Game.Do(entity, “Name”).

  • Show. Brings them on, as “[show Ava]” does: where they were last, or in the middle.
  • Hide. Takes them off, as “[hide Ava]” does.
  • Look (done with a name, its expression: a trigger’s with). Makes them look as expression says, one of their Expressions, e.g. “Happy”.
  • Stand (done with a name, its position: a trigger’s with). Stands them at position, one of their stage’s positions, e.g. “Left”.

What anything can read with no code: a Counter’s, Bar’s or Text’s output, a Contraptions Wire’s output as its signal; Text shows names too, the rest read numbers, true as 1.

  • Expression (a name). How they look now, one of Expressions: their sprite shows it as soon as it’s set.
  • Position (a name). Where on the stage they stand, one of its positions: set here, they stand there.
  • OnStage (true or false). True while they’re on stage (and not going off).

Not saved with the scene; scripts read them, and entity_get shows them as live while the game plays.

  • name: text. Their name: their Speaker’s, or else their entity’s.
  • isOnStage: true or false. True while they’re on stage (and not going off).

Scripts use it as Character: its methods, events and values that aren’t saved with the scene.