Персонажи
Как определять, использовать и настраивать персонажей в Pixi’VN, включая хранение, эмоции и пользовательские свойства.
Что такое characters? Персонажи (characters) — это актёры, которые появляются в визуальной новелле. В Pixi’VN персонажи создаются с помощью класса CharacterBaseModel или пользовательского класса.
Инициализация
Чтобы инициализировать персонажа, создайте новый экземпляр класса CharacterBaseModel (или вашего пользовательского класса) и добавьте его в словарь персонажей игры при инициализации игры.
Рекомендуется импортировать экземпляры при запуске проекта.
RegisteredCharacters.add обязателен для сохранения персонажей в игре.
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