Первые шаги. Как создать визуальную новеллу

В настоящее время в наших диалогах одновременно отображаются целые строки текста, а не символы. Вы можете изменить переменную settings.text_cps (cps означает количество символов в секунду) на Options.rpy.

# Начало работы

Прежде чем начать работать с NannyNobel, рекомендуется ознакомиться с основами работы машины.

Следующие главы учебника являются основными.

Если вы не собираетесь создавать пользовательский геймплей вне NaniNobel, пропустите изучение сцен, а также позвольте NaniNobel позаботиться о них.

# Основные концепты

Прежде чем использовать NaniNobel, давайте рассмотрим некоторые основные понятия.

Самое важное, что вы всегда найдете в остальной части руководства, — это актер. Актер — это объект, описываемый его личностью (ID), внешним видом, расположением в пространстве (на сцене) и другими параметрами.

Актеры — это абстрактные объекты, которые не могут существовать немедленно. Напротив, его специальный тип используется для различных дополнительных параметров.

Тип актора Дополнительные параметры Описание
Персонаж Направление взгляда Представляет персонажа в сцене.
Фон Отсутствуют Представляет фоновое изображение сцены; по умолчанию размещается за акторами персонажей.
Текстовый принтер Текст, ID персонажа, Процесс отображения Постепенно проявляет (печатает) текстовое сообщение в течение некоторого времени.
Обработчик выбора Варианты выбора Позволяет игроку выбрать один из доступных вариантов.

Рассмотрим типичную сцену в визуальном романе — персонаж изображен на заднем плане. На языке нани это можно выразить следующим образом.

Теперь предположим, что вы хотите, чтобы персонаж ‘Kohaku’ выглядел счастливым. Существуют различные текстуры (образы) этого персонажа, которые изображают различные эмоции. В NaniNobel эти текстуры называются «внешностью» актера. Чтобы достичь желаемого результата, необходимо изменить внешность персонажа. Аналогично, внешность актера на заднем плане должна меняться, чтобы показать «основной фон» на другом фоне.

Актеры и параметры управляются командами, заданными в сценарии NaniNovell (управляемый).

Другое широко используемое значение — пользовательский интерфейс (UI). Пользовательский интерфейс используется для того, чтобы игрок мог взаимодействовать с актерами и остальной частью игры. Сюда входят различные меню (например, главное меню, накопительный полет, настройки) и панели управления (например, саморегулирующиеся, сокращенные). Детали пользовательского интерфейса определены на актерах.

Текстовые принтеры и операторы выбора рассматриваются как действующие лица и элементы пользовательского интерфейса. Это означает, что они обладают качествами актеров и могут управляться сценарием романа Нани, но могут использоваться игроком для взаимодействия с игрой.

Если вы знакомы с программированием, ознакомьтесь с архитектурой двигателя и посмотрите, как он устроен с точки зрения программного обеспечения.

# Создание нового проекта Unity

Поэтому, имея в виду основные понятия, давайте начнем с первой аранжировки. Первое, что вам нужно, это проект Unity. Обратитесь к руководству Unity

Как создать проект.

При создании проекта можно использовать 2D-стандарты, чтобы перевести процессор в режим 2D-проекта, чтобы изображения вставлялись как спрайты по умолчанию и не нужно было вручную изменять параметры ввода. Вы можете использовать настройки проекта для последующего изменения функциональности процессора

Когда вы создаете новый проект, Unity автоматически добавляет образец сцены с двумя игровыми объектами: основной камерой и направленным освещением. Поскольку NaniNobel полностью независим от сцены, эти объекты могут быть удалены из сцены, чтобы не создавать ненужной нагрузки на производительность. Вы также можете удалить саму сцену, но рекомендуется иметь в проекте хотя бы одну сцену, чтобы правильно манипулировать частями проекта.

Визуальные романы могут стать той самой игрой, которую вы ищете. И этот семинар поможет вам установить его менее чем за 10 минут, не требуя практически никакого опыта программирования. Давайте начнем!

# Написание сценария

Далее, с меткой my_mod вы можете начать писать скрипты. В нем используется специальный аннуитет Лемпи, который мы рассмотрим позже.

# Метки

Ярлыки упрощают процесс создания мода, разбивая скрипт на части.

Имена меток должны быть уникальными, чтобы избежать конфликтов. Рекомендуется использовать имя метки, которое начинается с названия мода. MY_MOD_DAY1.

Типичный вариант отмены метки: ‘my_mod_day1’.

# Переходы между лейблами

В этом случае команда ‘jump’ игрой не выполняется. Фраза ‘action after jump’ из следующего примера не будет показана игроку. Другие команды, записанные после перехода, не будут работать.

В этом случае фраза из примера выше будет выведена после завершения энергии метки my_mod_day2.

Блок может быть завершен командой Return. После этого мод будет завершен, и появится главное меню игры, если вы ранее не вызывали ярлык, а только перешли к нему.

Вот еще один пример для пояснения:.

Первая метка имеет некоторую энергию, а затем вызывает вторую метку. Это также обладает энергией. Команда возврата метки SO -Caled не выходит из моды, потому что она вызвала вторую метку вместо перехода — она прекращает вызов второй метки и возвращается к первой метке, потому что она вернулась к первой метке.. Но!!! мы не вернулись к первому, а продолжили после второго момента вызывания ярлыка.

# Реплики

Наблюдения за характером включают следующие общие черты внешнего вида «»Вот.

  1. ID персонажа — название переменной, которой он был объявлен.
  2. Реплика — текст, который будет говорить персонаж.

Список символов и переменных можно найти в таблице ссылок. Игровой ресурс — характер.

В следующем примере показана копия Мику и Ульяны. Их имена пока не известны.

В первом случае имя пионера или пионерки меняется на «пионер/пионерка» и сохраняет свой цвет. Во втором случае имя персонажа меняется на «девушка» и сохраняется ее цвет.

  1. prolog_time() — Интерфейс пролога.
  2. day_time() — Интерфейс дня.
  3. sunset_time() — Интерфейс заката.
  4. night_time() — Интерфейс ночи.

Изменение окраски спрайта в зависимости от времени

Всего существует три варианта раскраски спрайтов. Все это делается через переменную person.sprite_time

  1. $ persistent.sprite_time = «day» — Дневная версия окраски спрайтов.
  2. $ persistent.sprite_time = «sunset» — Вечерняя версия окраски спрайтов.
  3. $ persistent.sprite_time = «night» — Ночная версия окраски спрайтов.

Пример использования изменения цвета спрайта в сочетании с изменением стиля интерфейса выглядит следующим образом

Если значение переменной interface style и переменной mod sprite coloring не изменены, то стилем интерфейса по умолчанию будет $ progue_time (), а sprite coloring — $ person.sprite_time = «night».

# ADV и NVL режимы повествования

В визуальных романах используются две основные формы подачи материала

ADV: Оптические романы в стиле ADV состоят из диалогов и повествования. Они представлены по одной строке за раз, обычно в окне в нижней части экрана.

# Спрайты

Спрайты называются use: show.

Спрайты обычно состоят из слов, разделенных пробелом.

В оригинальной игре имя персонажа совпадает с идентификатором диктора из предыдущего раздела данного руководства.

Список всех предыдущих спрайтов можно найти здесь

Если персонаж уже находится на экране, повторное использование шоу изменяет эмоции и одежду, если персонаж имеет «метку» во время повторного использования. Например, Uncry Sport -un un действует как «ярлык» для персонажа, поэтому при смене одежды/эмоций нет необходимости удалять предыдущее изображение. Аналогичным образом метки работают с BG, DH и другими изображениями.

Чтобы убрать использование символа: скрыть

Если вы захотите изменить сцену позже, вам не нужно писать Hide для каждого персонажа, команда Scene удалит их.

# Действия с изображениями

# Позиционирование

Просто используйте команду Show, которая будет отображаться только в центре. Наконец, вы можете изменить его, добавив следующее: showat.

Всего в игре есть семь мест, где можно разместить спрайты.

Пример расположения спрайтов

На приведенном выше снимке экрана были использованы следующие команды

В качестве альтернативы, если вы не хотите использовать стандартные позиции спрайтов, вы можете создать свои собственные. Для этого нужно отобразить спрайт, а затем записать его положение в координатах X и Y. Для этого воспользуйтесь командным центром и введите ряд чисел поплавков. Первое число — это координата x, а второе — координата y.

Обратите внимание, что размещение основано на центре, а не на выравнивании или расположении.

Также можно приблизить/удалить персонажа. Для этого можно использовать свойства Close / Far.

Пример использования атрибутов close / far

Эти функции используются на скриншотах выше. Команда:.

# Анимации появления

Можно отобразить плавное замедление спрайтов, BG и CG.

Существует шесть свойств нормальности, отличающихся только скоростью.

  1. dspr — 0,2 сек — Самый быстрый, на практике не особо заметен. Оптимален для смены эмоций спрайтов.
  2. dissolve_fast — 0.5 сек.
  3. dissolve — также 0.5 сек. Оптимален для смены BG/CG.
  4. dissolve2 — 2 сек — хороший вариант для длинных переходов между локациями лагеря
  5. hell_dissolve — 50 секунд — на практике не особо применим, но вдруг пригодится.
  6. dissolve_long — 100 секунд.

Также можно группировать множество объектов и запускать эффекты одновременно.

В приведенном выше примере мы едем ночью в автобусе, и перед нами появляется улыбающаяся Славия. Все это с задержкой в 2 секунды.

Если все приведенные выше примеры вам не подходят, вы можете добавить свои собственные характеристики нормальности. Для этого напишите в блоке init.

Я уверен, что вы видели эффект, когда он иногда открывает глаза или вообще закрывает их. Вы могли бы реализовать подобную функцию!

  • show blink — Закрыть глаза
  • show unblink — Открыть глаза
  • show blinking — Моргание

Вспышка и выключение — это разные результаты, и они не могут быть взаимозависимыми.

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

# Добавление своих изображений

Возможно, сюжету вашего мода не хватает BG, TG и спрайтов. В этом случае добавьте свои собственные дополнения.

Сначала необходимо указать изображение в блоке init. Это делается путем объявления переменной picture. Например, если у вас есть Picture City.jpg в Game/mods/my_mod/city.jpg, объявите следующее

Настоятельно рекомендуется использовать этикетки. В следующем примере слово BG служит меткой для изображения. Если вы используете такую метку для определения многих BHS, то при появлении следующей метки она будет автоматически заменять предыдущую.

Более подробную информацию об ATL см.

(открывается в новом окне) Продвинутые семинары.

Вы можете завершить игру, выполнив команду Reply без дополнительных вызовов. Перед этим лучше всего добавить в игру что-нибудь, чтобы сообщить игроку о том, что игра отсутствует.

Некоторое время все шло очень гладко. Постепенно графика была разработана, и на форуме для любителей графики один любитель предложил написать музыку.

Вот как выглядели персонажи вначале: все они были очень разными.

Затем в моем мире разразился экономический кризис, и я уволился с работы. И у меня не было денег, чтобы заказать графику. И до свидания, детектив Виктор, увидимся в следующей жизни. Графика отсутствовала, и у композитора начались собственные проблемы, поэтому он отказался от дальнейшей работы. (Но он написал несколько песен, и они мне понравились — их включили в окончательный вариант).

Однако мне повезло. Я встретил японский сайт с готовой графикой. Он продавал много пресетов по низкой цене, но я не стал собирать их все вместе. Но проблема, что делать с графикой, была решена. Потому что они были созданы специально для меня, и они мне понравились. К сожалению, мне пришлось пожертвовать некоторыми из них. Некоторые из них были успешно внедрены в текущую версию.

Так Герой увидел конец.

Музыкальная проблема была решена аналогичным образом. Я купил много мелодий в Steam и спросил у службы технической поддержки: «Могу ли я использовать это там?». спросил я. И я получил ответ: «Можете». Слушайте! Проблема с ресурсами решена.

Песнь четвертая: код.

Несколько слов предостережения. Я не товарищ по команде. Я стараюсь все контролировать, и мне гораздо проще сделать это самому, чем поручить это кому-то другому и проверить, справился ли он.

В Лемпи я уже был немного знаком с «Бесконечным летом», когда исправил его. Там все было достаточно легко — никаких проблем с интерфейсом, размером шрифта, стилем и т.д. И да, напомню еще раз — я не использовал опции и переменные.

Это значит, что моя гуманитарная голова начала ломаться во второй раз. Одно дело — воткнуть вилку в лист бумаги. А вот как втиснуть их в код, чтобы они правильно реагировали — это другое дело. В третьем акте было около 16 вариантов развития событий. И эти 16 вариантов были добавлены предыдущим вариантом. Все эти «если», «если», «если», эти ящики, точки… О, мой друг.

Но с помощью тестов, ошибок и маленьких матерей я закодировал их все за две недели. И, как ни странно, мне это понравилось. Очевидно, что во мне есть черты саморазрушения. Вы делаете что-то, а затем смотрите, как ваша работа воплощается в программе. Я также нашел в коде много интересных идей. Что произойдет, если персонаж спросит имя человека в одном действии, а в следующем действии назовет его по этому имени? А если он не спрашивает, значит, он не знает имени? И таких персонажей семь. Здравствуй, новая переменная. Что произойдет, если в некоторых сценах экран будет прерываться? Это логично, учитывая сценарий. Привет, глюки и эффекты видеошума. А что если в главном меню запиливают еще запиливают при выходе из концовки и скрывают одну из них только после первого прохождения? И что произойдет, если … И все это реализовано и делает игру все более и более красивой.

Спецэффекты со старой оригинальной графикой.

Но когда вы работаете над ним, вы понимаете, что нет предела совершенству, и вы можете доминировать бесконечно. В какой-то момент нужно остановиться и опубликовать. Затем начались проблемы с публикацией.

Песнь пятая: провал.

Сначала друг предложил мне опубликовать игру. Он знал о моих успехах в коррекции и предложил свои услуги. Я обрадовалась и сказала «Океушки!», но ему кое-что не понравилось, и наши улицы разошлись.

Боль. Я начал искать другого издателя. И, кажется, я нашел его (здесь есть небольшое объявление) — того самого независимого разработчика 7DOTS. Я хочу расцеловать его в обе щеки и повторять «спасибо — спасибо» снова и снова. Прежде всего, он сказал «нет, это не очень хорошая идея» и одним движением изменил весь план. Он также добавил немного DHS и даже достиг сцены SLO-MO в VNKA (я потрясен тем, что сделал это там).

Во-вторых, он выпустил игру на Android и продал ее за 35 рублей.

Однако этот разработчик отказался от этой затеи из-за различных личных обстоятельств.

Меня охватило отчаяние. У меня не было денег, все шло наперекосяк, черт возьми, детектив. У меня никогда не было намерения стать сценаристом. В конце концов, они даже не взяли меня в студию игрушек. Проект был дерьмовым. Версия для Root Tracker и Android стала бесплатной.

Оцените статью
bestgamemobile.ru