LogoPixi’VN

Personnages

Comment définir, utiliser et personnaliser les personnages dans Pixi’VN, notamment le stockage, les émotions et les propriétés personnalisées.

Que sont les characters ? Les personnages sont les acteurs qui apparaissent dans un roman visuel. Dans Pixi’VN, les personnages sont créés à l'aide de la classe CharacterBaseModel ou d'une classe personnalisée.

Initialisation

Pour initialiser un personnage, créez une nouvelle instance de la classe CharacterBaseModel (ou de votre classe personnalisée) et ajoutez-la au dictionnaire de personnages du jeu lors de l'initialisation du jeu.

Il est recommandé d'importer les instances au démarrage du projet.

RegisteredCharacters.add est obligatoire pour sauvegarder les personnages dans le jeu.

content/characters.ts
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]);

Obtenir

Pour récupérer un personnage par son id, utilisez la fonction RegisteredCharacters.get.

import { RegisteredCharacters } from "@drincs/pixi-vn";

const liam = RegisteredCharacters.get("liam");

Récupérer tous

Pour récupérer tous les personnages, utilisez la fonction RegisteredCharacters.values.

import { RegisteredCharacters } from "@drincs/pixi-vn";

const characters = RegisteredCharacters.values();

Utiliser

ink

Vous pouvez utiliser cette méthode avec la syntaxe ink. Voir plus ici.

Vous pouvez utiliser un personnage du jeu, par exemple, pour le lier au dialogue actuel. Vous pouvez utiliser l'id du personnage ou l'instance du personnage, mais il est recommandé d'utiliser l'instance.

import { liam } from "@/content/characters";

narration.dialogue = { character: liam, text: "Hello" };
// or
narration.dialogue = { character: "liam_id", text: "Hello" };

Modifier

ink

Vous pouvez utiliser cette méthode avec la syntaxe ink. Voir plus ici.

CharacterBaseModel est une classe stockée, ce qui signifie que ses propriétés sont sauvegardées dans le stockage du jeu. Par exemple, si vous modifiez le nom du personnage pendant le jeu, le nouveau nom sera sauvegardé dans le stockage du jeu et lié à son id.

Si l'id du personnage est modifié d'une version à une autre, le système ne déplacera pas les données liées à l'id précédent vers le nouvel id.

Pour obtenir les propriétés utilisées lors de l'instanciation de la classe, vous pouvez utiliser les propriétés default.

import { liam } from "@/content/characters";
console.log(liam.name); // Liam
liam.name = "Liam Smith";
console.log(liam.name); // Liam Smith

Autres fonctionnalités

Sur cette page