В этом разделе:
Готовимся к работе и скачиваем необходимые программы: движок, редактор кода, графические программы и другие.
Все программы бесплатные. На работе с ними мы коротко остановимся в ходе курса.
Ren'Py - движок визуальных новелл;
Notepad++ - редактор кода;
GIMP - редактор графики;
FastStone Image Viewer - просмотрщик картинок с базовыми возможностями редактирования;
Audacity - редактор аудио.
Если вам понадобятся ресурсы, которые вы можете использовать в своей новелле, то есть множество сайтов, на которых вы можете найти их.
Легче всего найти подходящую музыку и звуковые эффекты. Фоны и спрайты персонажей крайне рекомендуется создавать своими силами.
Основные лицензии под которыми распространяются бесплатные ресурсы:
CC0 - никаких ограничений на использование;
CC BY - нужно указывать автора;
CC BY-SA - обязательно распространять свою работу под этой же лицензией;
CC BY-ND - нельзя изменять ресурсы;
CC BY-NC - запрещено продавать или зарабатывать иным образом на работе.
Подробнее о лицензиях Creative Commons можно узнать на официальном сайте.
Сайты на которых вы можете найти ресурсы для игры:
Музыка: Incompetech, Patrick de Arteaga, BenSound, AudioNautix
Звуковые эффекты: FreeSFX, SoundsCrate
Шрифты: Goole Fonts
Разные ресурсы: OpenGameArt, itch.io
В различных лицензиях легко запутаться. Многие музыкальные треки, звуковые эффекты и изображения можно скачать в Интернете совершенно бесплатно. Но это не означает, что все эти ресурсы вы можете спокойно добавлять в свою игру.
Никогда не стоит забывать на каких условиях вы можете использовать бесплатные ресурсы, и как они повлияют на вашу новеллу.
Этот тест поможет вам разобраться в лицензиях Creative Commons.
Ren'Py включает в себя отличную справочную систему, которая тоже сделана в виде визуальной новеллы.
Справка, как и весь интерфейс, переведены на русский. Поэтому знакомство с движком не вызовет проблем.
Знакомимся со структурой игры в Ren'Py и самыми важными файлами.
Папка Game - здесь расположены папки и скрипты вашей новеллы;
Папка Images - картинки, спрайты персонажей, фоны;
Папка Gui - картинки интерфейса;
script.rpy - основной файл сценария;
options.rpy - настройки игры;
gui.rpy - файл для изменения интерфейса;
screens.rpy - галерея, внутриигровые меню и другие элементы интерфейса.
Наконец-то, приступаем к созданию визуальной новеллы. Сперва создадим проект и зададим его основные настройки. Заодно познакомимся с некоторыми основами работы с редактором кода, если вы до этого не программировали.
Вам понадобится программа Notepad++ или другой редактор кода.
Визуальная новелла обычно не обходится без диалогов. Поэтому первое чему стоит научиться - это, как заставить ваших героев разговаривать.
В этом уроке мы начинаем постигать азы программирования в "Ren'Py".
# Всё после символа решетки и до конца строки - это комментарий
# Ren'Py полностью игнорирует комментарии
# Используйте их для заметок и временного отключения строк
# Создаём персонажа с именем Димон, его имя будет выводиться светло-синим цветом
define d = Character('Димон', color="#4ca6ff")
# Новая игра начинается после этой метки
label start:
# Укажите название переменной персонажа ("d") и после пробела его слова в кавычках.
d "Реплика Димона."
# Если не указывать персонажа, то получим слова автора.
"Слова автора."
# Эта команда завершает игру и переходит в главное меню.
return
На самом деле команда "return" не обязательно завершит игру. Она выходит из текущей метки и возвращает в предыдущую. Но пока не думайте об этом. Мы вернемся к этой теме в будущих уроках.
Мы еще не приступили к сложным темам, поэтому следующий тест будет очень простым. Но он позволит удостовериться, что вы не забудете ничего важного.
До этого наши герои были невидимыми. Для визуальной новеллы это явно нехорошо. Пора научиться отображать наших героев на экране. По пути заменим скучный серый фон.
# Очистить всю сцену и задать новый фон.
scene bg name
with fade # Переход через чёрный цвет
# Выведется картинка с именем "bg name".
# Отобразить спрайт. Поверх фона выведется картинка "dimon smile".
show dimon smile
# Убрать спрайт. Уберется любой спрайт, который начинается со слова "dimon".
hide dimon
В этой папке находятся спрайты персонажей и фоны, которые вы можете использовать для тренировки. Если будете распространять свою работу, то не забудьте указать авторов из файла "Автор.txt".
Некоторые картинки имеют белый фон и неправильный размер. На них вы можете потренироваться в следующем уроке.
Может выйти так, что ваш фон или спрайт персонажа не подходят по размеру. В этом уроке мы научимся быстро подгонять размер картинок.
Кроме того разберемся, что делать в ситуации, когда ваши герои изображены на белом фоне. Для этого нам понадобятся программы Gimp и FastStone Image Viewer.
Среди файлов из урока 6 есть папка "Неправильные картинки". Файл "agustina smile.png" в ней имеет белый фон. Если хотите, потренируйтесь убирать его. Файл "saki normal.png" и фоны "bg room.jpg" и "bg street.jpg" не соответствуют по размеру остальным картинкам. Приведите их в нормальный вид, изменив размер.
По умолчанию персонажи располагаются по центру экрана. В этом уроке мы будем перемещать их в другое положение. Для этого мы создадим свои положения, которые можно будет использовать по всей игре.
# Расположение картинки слева
show dimon smile
at left # или right/top
# Точное расположение по горизонтали и вертикали
show dimon smile:
xalign 0.5
yalign 0.5
# Особая метка, выполняется при старте новой игры
init:
# Создаём своё расположение спрайта
$ mypos = Position(xalign=0.5, yalign=0.5)
# $ строка с любым кодом Python
Обычный способ отображения картинок можно упростить в большинстве случаев. Мы научимся быстро менять спрайт персонажа прямо в диалоге.
Это очень экономит время при создании новеллы, а полученный код гораздо легче читать.
# Привязать спрайт к персонажу.
define d = Character("Димон", image="dimon")
# Изменение спрайта персонажа прямо в реплике.
d smile "Привет, я Димон."
d angry "Я очень злой!"
# Изменить спрайт на одну реплику, после неё вернуть прошлый спрайт
d @ smile "Привет, я Димон."
d @ angry "Я очень злой!"
Самый простой способ оживить новеллу - это добавить переходы при смене фона или другого изображения. В "Ren'py" есть достаточно много встроенных переходов, которые очень просто использовать.
# Показать спрайт персонажа с плавным переходом
show dimon smile
with dissolve
# Скрыть спрайт персонажа с плавным переходом
hide dimon
with dissolve
# Один переход можно указать сразу после нескольких картинок.
# Тогда эти картинки появятся с переходом одновременно.
show dimon smile
show alice angry at right
with dissolve
# Точно так же переходы можно использовать при смене сцены.
scene bg class
with fade
# Можно указать сцену и персонажей с одним переходом.
scene bg class
show dimon smile
show alice angry at right
with fade
Ссылка на информацию о переходах на официальном сайте РенПай.
Поэкспериментируйте с разными переходами самостоятельно.
Данный тест закрепит основные понятия и команды по работе с фонами и спрайтами.