LogoPixi’VN

Персонажи

Как определять, использовать и настраивать персонажей в Pixi’VN, включая хранение, эмоции и пользовательские свойства.

Что такое characters? Персонажи (characters) — это актёры, которые появляются в визуальной новелле. В Pixi’VN персонажи создаются с помощью класса CharacterBaseModel или пользовательского класса.

Инициализация

Чтобы инициализировать персонажа, создайте новый экземпляр класса CharacterBaseModel (или вашего пользовательского класса) и добавьте его в словарь персонажей игры при инициализации игры.

Рекомендуется импортировать экземпляры при запуске проекта.

RegisteredCharacters.add обязателен для сохранения персонажей в игре.

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]);

Получить

Чтобы получить персонажа по его id, используйте функцию RegisteredCharacters.get.

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

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

Получить всех

Чтобы получить всех персонажей, используйте функцию RegisteredCharacters.values.

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

const characters = RegisteredCharacters.values();

Использование

ink

Этот метод можно использовать с синтаксисом ink. Подробнее здесь.

Вы можете использовать игрового персонажа, например, чтобы связать его с текущим диалогом. Можно использовать id персонажа или экземпляр персонажа, но рекомендуется использовать экземпляр.

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

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

Редактировать

ink

Этот метод можно использовать с синтаксисом ink. Подробнее здесь.

CharacterBaseModel является сохраняемым классом, что означает, что его свойства сохраняются в хранилище игры. Например, если вы изменяете имя персонажа во время игры, новое имя будет сохранено в хранилище игры и привязано к его id.

Если id персонажа изменяется от одной версии к другой, система не перенесёт данные, привязанные к предыдущему id, к новому id.

Чтобы получить свойства, использованные при инстанциировании класса, можно использовать свойства default.

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

Другие возможности

На этой странице