Personajes
Cómo definir, usar y personalizar personajes en Pixi’VN, incluyendo almacenamiento, emociones y propiedades personalizadas.
¿Qué son los characters?* Los personajes (characters) son los actores que aparecen en una novela visual. En Pixi’VN, los personajes se crean usando la clase CharacterBaseModel o una clase personalizada.
Inicializar
Para inicializar un personaje, crea una nueva instancia de la clase CharacterBaseModel (o de tu clase personalizada) y agrégala al diccionario de personajes del juego cuando se inicialice el juego.
Se recomienda importar las instancias al inicio del proyecto.
RegisteredCharacters.add es obligatorio para guardar los personajes en el juego.
import { CharacterBaseModel, RegisteredCharacters } from "@drincs/pixi-vn";
export const liam = new CharacterBaseModel("liam", {
name: "Liam",
surname: "Smith",
age: 25,
icon: "https://example.com/liam.png",
color: "#9e2e12",
});
export const emma = new CharacterBaseModel("emma", {
name: "Emma",
surname: "Johnson",
age: 23,
icon: "https://example.com/emma.png",
color: "#9e2e12",
});
RegisteredCharacters.add([liam, emma]);Obtener
Para obtener un personaje por su id, usa la función RegisteredCharacters.get.
import { RegisteredCharacters } from "@drincs/pixi-vn";
const liam = RegisteredCharacters.get("liam");Obtener todos
Para obtener todos los personajes, usa la función RegisteredCharacters.values.
import { RegisteredCharacters } from "@drincs/pixi-vn";
const characters = RegisteredCharacters.values();Usar
ink
Puedes usar este método con la sintaxis ink. Ver más aquí.
Puedes usar un personaje del juego, por ejemplo, para vincularlo al diálogo actual. Puedes usar el id del personaje o la instancia del personaje, pero se recomienda usar la instancia.
import { liam } from "@/content/characters";
narration.dialogue = { character: liam, text: "Hello" };
// or
narration.dialogue = { character: "liam_id", text: "Hello" };Editar
ink
Puedes usar este método con la sintaxis ink. Ver más aquí.
CharacterBaseModel es una clase almacenada, lo que significa que sus propiedades se guardan en el almacenamiento del juego. Por ejemplo, si cambias el nombre del personaje durante el juego, el nuevo nombre se guardará en el almacenamiento del juego y se vinculará a su id.
Si el id del personaje se cambia de una versión a otra, el sistema no moverá los datos vinculados al id anterior hacia el nuevo id.
Para obtener las propiedades usadas al instanciar la clase, puedes usar las propiedades default.
import { liam } from "@/content/characters";
console.log(liam.name); // Liam
liam.name = "Liam Smith";
console.log(liam.name); // Liam Smith