Создаем персонажей: от имен до спрайтов за пару шагов

Не останавливайтесь на тексте, узнайте, как за пару кликов упаковать историю в полноценных персонажей с лицом и характером

Проблема: у вас в проекте только имена героев, а не полноценные персонажи

Если вы прошли вчерашний гайд, у вас уже есть рабочая сцена. Алекс говорит «Я ждал тебя». Джордан отвечает «Я не был уверен, что приду». Она запускается. Она работает.

Но откройте проект и посмотрите на состав. Что движок на самом деле знает об Алексе? Что он существует, и что у него есть реплика. И всё. На экране нет лица, нет ощущения, кто он такой, нет причины, по которой игроку должно быть не всё равно, выйдет ли тайна наружу.

Во многом успех визуальной новеллы определяется благодаря своим персонажам. ИИ быстро доводит вас до первого играбельного прототипа - в этом суть - но состав, который он определил, это отправная точка, а не финал и сегодня мы это исправим.

Почему настройка - это разница между «техно-демо» и «историей»

Вспомните визуальную новеллу, которая вас зацепила. Скорее всего, вы помните лицо, голос, момент колебания при выборе. Ни одно из этого не приходит из самого диалога - оно приходит от персонажа за диалогом.

Если вы даёте персонажу биогафию, внешность и набор выражений, то получаете:

  • Письмо становится острее. Как только вы определите, что Джордан сдержанный и уставший, вы начинаете чувствовать героя и писать его реплики.
  • Сцена читается как сцена. Спрайт, который сменяется с «спокойного» на «напряжённый», говорит игроку больше, чем абзац описания.
  • Твой экспорт становится богаче. Каждый движок, который поддерживает ScriptFormer (Ren'Py, Ink, Yarn Spinner, Dialogic, HTML5), может использовать метаданные персонажа и вариации спрайтов, чтобы определять, кто на экране и как он выглядит.

Настройка персонажей - это то, как сценарий становится вашей историей.

Шаг 1 - Откройте рабочее пространство «Персонажи»

Внутри проекта ScriptFormer хранит всё в отдельных рабочих пространствах. Раздел Персонажи находится рядом с СценарииЛокации и Типы в навигации проекта.

Откройте его - и вы увидите персонажей, которых конвертер вытащил из сценария. В нашем примере это ALEX и JORDAN. Конвертер уже создал по ассету для каждого.

Каждый персонаж (и каждая локация) собран из одного и того же набора базовых блоков: ИмяОписаниеТаблица свойств и набор изображений Вариации. Пройдёмся по каждому.

Шаг 2 - Уточните имя, описание и свойства героя

Кликните по персонажу, чтобы открыть его редактор:

  • Имя - конвертер определил его из того, как были размечены реплики (ALEX: в вашем сценарии). Если имя получилось неверным или вы хотите полное имя («Алекс Ривера» вместо «ALEX») - переименуйте его здесь. Это имя видно в экспортируемом диалоге, так что задайте его один раз правильно - и каждый экспорт его унаследует.
  • Описание / био - это сердце персонажа. Напишите несколько предложений: кто он, чего хочет, что скрывает. Для Джордана из «The Café» био может быть таким: «Человек, который кажется нерешительным и конфликтным. Язык его тела слегка настороженный, а его настроение характеризуется неуверенностью и нежеланием, хотя в конечном итоге он выполнил свое решение о встрече».
  • Properties (Свойства) - простая таблица «имя-значение», прикреплённая к ассету. Здесь хранят структурированные факты о персонаже: age (возраст): 34zodiac_sign (знак зодиака): Рыбыtemperament (темперамент): колеблющийся. В отличие от свободного написания, свойства могут быть прочитаны движками и ИИ-агентами, удобно для отслеживания деталей, поддержания согласованности текста и работы будущих командных процессов. Добавляйте сколько угодно строк, это ваш личный лист персонажа.

Описание предназначено для вас и вашей команды. Оно хранится вместе с проектом (и позже - в облаке/командных процессах), но не захламляет обращённый к игроку сценарий.

Шаг 3 - Загрузите спрайт и его вариации

У каждого персонажа есть секция Вариации - здесь живёт арт спрайтов. «Вариация» - это просто другой вид того же персонажа: поза, выражение, настроение. Можете добавить:

  • default (по умолчанию) - спокойная поза (та, что показывается, когда персонаж впервые говорит)
  • smile (улыбка) - тёплое, облегчённое
  • tense (напряжение) - сдержанное, сжатая челюсть
  • sad (грусть) - момент, когда тайна раскрывается

Чтобы добавить одну, нажмите Добавить вариацию в этой секции и загрузите изображение (.png или .jpg). Дайте ему понятное имя - вы будете ссылаться на него позже. Первое загруженное изображение в свежем ассете становится default автоматически - это ровно то, что нужно для открытия сцены.

Не нужно в первый же день заводить полный лист спрайтов. Даже один приличный портрет default оживляет сцену, а smile / tense / sad можно добавить, когда арт будет готов. Структура уже есть, а совершенствование - за вами.

Откуда брать спрайты? Используйте ваш собственный арт, работа по заказу, генератор изображений на ИИ, бесплатный ассет-пак. ScriptFormer даёт полную свободу действий.

Шаг 4 - Локации работают точно так же

Персонажи - не единственное, что стоит определить. Давайте также создадим место, где встречаются Алекс и Джордан, - почти пустое кафе The Café - в рабочем пространстве Локации.

Откройте Локации - и увидите The Café. Как и у персонажа, у него есть:

  • имя, которое можно уточнить,
  • описание - тёплый свет, два придвинутых стула, владелец протирает последний стол,
  • таблица свойств - например time_of_day: 11:48mood: тихоneon_sign: мерцающая - чтобы место ощущалось столь же конкретным, сколь и люди в нём,
  • и место для фонового изображения - визуала, который игрок видит за диалогом.

Задайте фон для The Café - и сцена перестаёт происходить в пустоте. У спрайтов появилась сцена.

Что вы решили сегодня

  • Ваш состав перешёл от просто имён к персонажам с историей и лицами.
  • У Алекса и Джордана есть спрайт default, с местом для smile / tense / sad, когда вы будете дорабатывать проект.
  • У The Café есть имя, описание и фон.

Сцена, которую вы экспортировали вчера, теперь наполнена людьми.

Что дальше: формируйте ветвление сами

Сейчас поток - то, что определил ИИ. Завтра мы открываем граф сцены (scene graph) и перестраиваем его - добавляем ветку, переписываем реплику и указываем истории, где появляется каждый персонаж и локация.

Попробуйте сейчас: откройте свой проект на scriptformer.com/app, перейдите в рабочее пространство Персонади и дайте Алексу и Джордану лица. Пять минут настройки - это разница между демо и историей.


FAQ

Нужны ли мне художественные навыки, чтобы добавить спрайты?

Нет. Загрузите любое изображение - даже заглушку. Важна структура (именованные вариации вроде defaulttense) для экспорта; отполированный арт можно подставить позже, не трогая сценарий.

Конвертер назвал персонажа неправильно. Могу я это исправить?

Да - переименуйте ассет персонажа напрямую. Но учтите: имя, встроенное в уже созданные узлы речи, не обновляется автоматически. Если хотите, чтобы новое имя появилось в уже сгенерированных сценах, либо пересоздайте ссылку на персонажа в этих узлах, либо повторно запустите конвертацию с исправленным именем. Для новых сцен имя возьмётся из ассета сразу.

Могу ли я иметь больше одной вариации спрайта?

Безусловно. Добавляйте сколько угодно - позы, выражения, наряды. Называйте их понятно (smiletensesad), чтобы можно было ссылаться на них, когда сцена меняет внешний вид персонажа.

Влияет ли настройка персонажей на все экспорты движков?

Да. Метаданные персонажа и вариации спрайтов - часть проекта, так что Ren'Py, Ink, Yarn Spinner, Dialogic и HTML5 подхватят их при экспорте.

Назад к блогу