Как правильно писать диалоги персонажей.

Учебник по Ren’Py

Как правильно писать диалоги персонажей. - student2.ru

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

Для начало работы вам необходимо будет скачать Ren’ру http://www.renpy.org

и установить ее, только смотрите что бы папка сохранения была не на русском языке(говорят скоро будет обновление где эта проблема будет исправлена).
Самый оптимальный вариант создать в диске С папку под номером 1 (мне так удобней) и получим C:\1\renpy-6.99.11.3-sdk (смело скачивайте самую последнюю версию)

Запускаем проект. У нас запустился лаунчер, и он на английском. Что бы его перевести на русский язык заходим в preferencesкак показано на картине Как правильно писать диалоги персонажей. - student2.ru И выбираем русский язык и выходим в главное меню программы Как правильно писать диалоги персонажей. - student2.ru

Далее разъясняю где что на экране программы Как правильно писать диалоги персонажей. - student2.ru

1) Проекты. Здесь находятся все ваши и сторонние проекты.

2) Добавить новый проект. Из названия и так все ясно.

3) Открыть папку. Из названия и так все ясно что она открывает папки выбранного проекта

4) и 5) Основные файлы с которыми мы будем работать при создавании новеллы

6)Навигация по Сценарию. Нажав на нее вы с легкостью сможете найти ваши метки, ссылки, скрипты…

7)Запустить проект.Из названия и так все ясно.

Для ознакомления, что вообще представляет собой Ren’py, какие есть у него возможности, запустите программу обучения. У вас запустится новое приложение, которое так же через preferencesможно перевести на русский язык. Как правильно писать диалоги персонажей. - student2.ru

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

Для этого нажмите <Добавить новый проект>

И у вас высветится окно выбора

1) New Gui interface – новый графический дизайн

2) Legacy Theme Interface – старый графический дизайн

Новый более удобней и симпатичней смотрится, чем старый дизайн. Но когда вы перейдете к редактированию главного меню загляните в контакт и найдите там сообщество Ren’Py. В сообществе откройте видео, и там вы найдете видео уроки как создавать меню игры и другие полезные материалы.

Запомните

Всегда в последнюю очередь создавайте свое главное меню. В процессе создания новеллы у вас может разительно поменяться: сюжет, герой, фон, художник и вам ее придется полностью переделывать. Создавая новеллу с меню вы тратите время зря, которая пошла бы на пользу создания вашего проекта. И возможно, вы бы успели создать 1 главу, пока вы создаете только меню. И после того как будет завершена 1 глава можете смело создавать меню, т.к. некоторые проекты создаются больше года, и для привлечения аудитории(покупателей, если вы делаете новеллу платной для Стима) создают бэта версию.

Вы выбираете Gui, и нажимаете далее.

У вас программа спросит имя проекта ,т.к. вы впервый раз знакомитесь с программой назовите его просто Test

Дальше у вас программа спросит разрешение экрана, выбирайте на свое усмотрение. Но чем больше разрешение экрана – тем больше она весит, я выбрал 1280 на 720(стандарт как говорится)

Дальше у вас программа спросит цветовую тему для проекта. Как говорится у каждого свои вкусы, и нажимаете далее.

Вот у вас появился ваш первый проект.


Учимся работать со сценарием

Нажимаем где Редактировать сценарий> Все файлы сценариев

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

Скачали текстовый редактор, и у вас запустилось окно. Сейчас расскажу где тут что

Как правильно писать диалоги персонажей. - student2.ru

1) Панель инструментов. Там, у программы находятся все инструменты для работы с текстом.

2) Файлы сценариев, вся основная работа происходит в них

3)Диалоговое окно, в нем мы будем вводитькоманды

4)Строка. Когда вы допустили ошибку в написании кода, программа покажет, на какой строке у вас ошибка.

Как правильно писать диалоги персонажей. - student2.ru

Далее переключите вашу клавиатуру на английскую раскладку. Скрипты и метки программа читает только на английском.

Далее, зайдите в файл options.rpyи найдите в нем 116 строку

default preferences.text_cps = 0

измените его на

default preferences.text_cps = 30

Теперь весь наш текст будет постепенно появляться в проекте, а не мгновенно (что выглядит не очень красиво).

Создаем меню выборов.

Сам жанр новелл состоит из выборов в игре. От выбранного пути будет зависеть судьба персонажа.

Меню выборов создается меткой menu:Давайте поможем парню Анжи сделать выбор

…."Дальше говорить было не зачем."

…."Что вы выберите?"

….menu:

…….."1) Примите их условия":

…………"Анжи" "Мне ничего не остается, кроме как согласиться с ними"

…….."2) Пошлете его в *опу":

…………"Анжи" "Держите меня Семеро!"

…….."3)Попытаетесь сбежать":

…………"Анжи" "А ты попробуй догони меня!"

Как правильно писать диалоги персонажей. - student2.ru

Теперь разбираем, что мы тут написали

Мы в метке label start:

написали метку menu:после которой, идут пункты выбора.

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

И теперь вместо 4 пробелов нужно писать 8 (т.к. : обозначает что код задействуется в метке(menu: значит программа прочитает в метке menu: и после : нужно +4 пробела ставить на следующей строке)Мы выбрали вариант, теперь нужно варианту прописать действие, для этого в конце варианта ставим : и текст, действие варианта на следующей строки будет не с 8 пробелов, а с 12 т.к. мы поставили :

Как правильно писать диалоги персонажей. - student2.ru

Создаем свои метки

Создавая пункты выбора, вы задаете себе вопрос. А как же на 50 часовых новеллах так печатают? Ведь получается что там больше 100 выборов…. Это сколько часов придется листать что бы найти ошибку на 976 строке у которой около 700 пробеллов…. Что бы облегчить себе жизнь, вы создаете метки. Делается это так:

1)Создаете файл в текстовом редакторе. Панель инструментов Файл>Новое>

И там же этот файл сохраняете, только название берите английское, и что бы заканчивалось на.rpyЯ создал файл 1_glava.rpy

Как правильно писать диалоги персонажей. - student2.ru

Теперь давайте вернемся к выборам Анжи. И напишем команду на переход к метке jump….c именем метки.

….menu:

…….."1) Примите их условия":

…………"Анжи" "Мне ничего не остается, кроме как согласиться с ними"

………… jump lox

…….."2) Пошлете его в *опу":

…………"Анжи" "Держите меня Семеро!"

………… jump battle

…….."3)Попытаетесь сбежать":

…………"Анжи" "А ты попробуй догони меня!"

………… jump gruppa_tatu

Обратите внимание, в имени после команд, не должно быть пробелов jump gruppa_tatu,

А так же в кнопке выбора ставится : иначе система не поймет зачем в кнопке выбора("3)Попытаетесь сбежать":) лишняя строка и действия с текстом("Анжи" "А ты попробуй догони меня!" )

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

Как правильно писать диалоги персонажей. - student2.ru

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

Сначала строки (без отступов) пишем

label lox:

label battle:

label gruppa_tatu:

Return

return– обозначает конец метки любой. Если ее не записать то она автоматически запустит 2 метку которая идет после нее. Что бы такого не произошло, в конце метки ставят return

label lox:

….Текст

….return

label battle:

И у нас после меткиlox,из за return,не запустится метка battle,когда закончится текст.

Либоreturn ставят в самом конце, в начале строки, и тогда любая метка, у которой закончится логическое продолжение, приведет к завершению игры.

И давайте пропишем последствия от выбора.

label lox:

…."Анжи стал их ней дойной коровой"

…."И когда у него не было денег им вернуть их, его жестоко избивали"

…."Он терпел больше года, пока не вытерпел однажды, и их избил трубой"

…."2 парней стали инвалидами, и Анжи положили в психлечебницу"

…."Плохая концовка"

…. return

label battle:

…."Один раз уступлю, никогда не отстанут"

…."И Анжи ударил в пах рыжему, т.к. он был самым опасным из этой тройки"

…."Потом ударий ногой в колено, тому, что справа. "

…."И пока третий стоял, думал, Анжи побежал в коридор"

…."Рыжий" "Гек, хватай его. Убью гада. Заморыш... по яйцам бить нечестно. Урою, урою, сгною на нижних уровнях"

…." Анжи" "А втроем на одно - значит честно"

…."Убегая подумал Анжи"

…."Продолжение следует"

…. return

label gruppa_tatu:

…."Анжи резко развернулся и побежал от банды в противоположную сторону"

…."Банда была готова к тому, что он побежит, и погнались за ним"

…."Продолжение следует"

….return

Вот как будет выглядеть в сценарии проекта

Как правильно писать диалоги персонажей. - student2.ru

Домашнее задание

Попробуйте сделать для каждого выбора по 2 концовки, одну плохую и хорошую.

Именам цвет

Сохранив проект вы заметили, что имена у героев одного цвета(голубого), так почему бы не сделать их цветными?

Делается это просто здесь в define …. = Character('…..')после русского имени пишем добавив color="здесь номер цвета"и у нас получится

define rish = Character('Рыжий', color="#008000")

"#008000" –рыжий цвет

Как правильно писать диалоги персонажей. - student2.ru

Коды цветов можно получить в фотошоппе

Как правильно писать диалоги персонажей. - student2.ru

И давайте остальным пропишем цвета

define rish = Character('Рыжий', color="#008000") ### Лидер банды

define gol_1 = Character('Шестерка 1',color="ffff99") ### Его шестерка

define gol_2 = Character('Шестерка 2',color="9966ff") ###Очередная шестерка

define anshi = Character('Анжи',color="66ff66") ### Детдомовец, главный герой

Посмотрите в программе, что у вас получилось.

Переменные и с чем их едят

Что бы сделать секретную концовку в игре нужно ввести переменные. Для этого нам следует после label start: Прописать переменную и что она равна 0

label start:

$ udacha = 0

Далее в тексте выбора нам нужно будет поставить +1 от выбора, и мы получим

Как правильно писать диалоги персонажей. - student2.ru

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

Как правильно писать диалоги персонажей. - student2.ru

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

label gruppa_tatu:

if udacha <=0:

"Анжи резко развернулся и побежал от банды в противоположную сторону"

"Банда была готова к тому, что он побежит, и погнались за ним"

"Продолжение следует"

if udacha >=1:

"Пробежав два коридора и свернув в третий, взял заготовленную балку из дюрали, и когда подбежал Гек ударил его по шее, потом начал бил ногами"

Это еще не конец возможностям переменных.

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

if guard == 0 and day == 1:

где переменные guard иday
По смыслу:
if guard == 0 and day == 1:стража 1 день,
if guard == 0 and day == 2:стража 2 день,
if guard == 1 and day == 2:чето случилось со стражником 2 день(например поговорили с ним и он вас гонит, после повторного обращения к нему.
Что бы добавить к переменной значение +1 или -1 пишут так
$ guard += 1или$ guard -= 1

А andявляется связующим звеном между 2 переменными

==означают что они должны быть равны тому то
Если нужно что бы значение переменной было больше 4 или меньше 2, то пишут
if guard <= 2 and day >= 4: (например стражник спился значение 1 или 0, и это событие происходит после 4 дня, почка отказала и он умер)

label hata_guard:
….if guard == 0 and day == 1:
…….."Дай денег- выпить хочу"
….if guard == 0 and day == 2:
…….."Дай еще денег"
……..$ guard += 1
….if guard == 1 and day == 2:
…….."Вы заходите обратно в дом и видите пьяного спящего стражника"
….if guard <= 2 and day ==3:
…….."Стражник ушел в запой и вы спокойно проходите в его дом"
….if guard <= 2 and day >= 4:
…….."Стражник умер – почка отказала и вы спокойно обходите его труп "

Так же переменным можно задавать значение, например имя который захочет выбрать игрок:
label start:
…."Ты кто? Мальчик или девочка?"
…."Я еще не определился…"
….$ name = renpy.input(_("А как тебя зовут то...?")) or_("Никак")
…."[name], зовут тебя так?"###и в тексте вместо [name] будет введенное имя
….$ renpy.block_rollback() ###что бы нельзя было вернуться назад
…."И я бы забыл, как меня зовут, с таким то именем…"

Можно и так

Как правильно писать диалоги персонажей. - student2.ru


А что бы у этой переменной было имя как у персонажа, прописать нужно как ссылку имен и получим:
define mc1 = Character ('[name]' )
и в тексте меток пишем
mc1 "Текст" ###


Теперь давайте разберем что тут записанно.
label name_input:- имя метки, можно любое имя взять(name_input), но только на английском.
….$ name = renpy.input("А как тебя зовут то...?")- мы переменной ($ nameкоторую можно на свой вариант на английском) задаем значение(=) ввод с клавиатуры(renpy.input)а ("А как тебя зовут то...?")- значит вопрос в текстовом боксе
…."[name], зовут тебя так?"– пример использования имени в тексте
….$ renpy.block_rollback() – что бы игрок не мог вернуться назад и поменять свой выбор имени

В общем, есть условие, оно задаётся через IF,
Есть вариант со вторым условием, которое проверяется, если первое не подходит, оно задаёся черезELIF

И есть вариант если не подходит ничего из этого ELSE
IF cvet == 'белый':
...действие 1
ELIF cvet == 'чёрный':
....действие 2
ELIF cvet == 'красный':
....действие 3
ELSE:
....действие если не 1 по 3

Запомните так же. Если логика подразумевает (все что угодно кроме), то логическое событие должно быть ELSE!

Спрайты

Спрайты – это изображения персонажей.

Давайте добавим нашим персонажам спрайты

### Спрайты

image rish_1 = "images/sprite/1.png"

image gol_1_1 = "images/sprite/3.png"

image gol_2_1 = "images/sprite/2.png"

Переходы и спецэффекты

Переходы

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

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

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

Вот пример самого часто используемой команды:

Pause .5

Теперь разберем что тут записано
scene logo–вызываем изображение, текст, и т.д
with– Вызов перехода
Dissolve – имя перехода(!Обратите внимание! В питоне есть несколько стандартных переходов которые он знает, но вдруг вы столкнетесь с интересным для вас переходом в другом проекте, то там скорее всего будет где то записана в сценарии имя этого перехода, и что бы у вас она так же заработала вам так же потребуется переписать ее себе в свой сценарий (пример слеповой гранаты которую я позже выложу пример)
(.5)

pause .5 – это время за который произойдет данный переход(это пол секунды)

With Dissolve(1.0)

pause 1.0 – 1 секунда

Пример кода с проекта обучения

With dissolve ### переход

With Pause(1) ###пауза

With dissolve ### переход

With fade

Эффект чем то похож на закрывание глаз. Вспышка, а потом переходит как dissolve к новой сцене. Им можно создать эффект включения лампочки. Для этого вам нужно создать переменную с указание ее цвета(в моем случае белый свет)

label start:

$ flashbulb = Fade(0.2, 0.0, 0.8, color='#fff')

###имя перехода flashbulb, задаем цвет белый color='#fff'

И где то в игре

With move

show rish_1 at center

With move

Здесь мы видим как рыжий переходит справа Как правильно писать диалоги персонажей. - student2.ru Как правильно писать диалоги персонажей. - student2.ru на центp Как правильно писать диалоги персонажей. - student2.ru Как правильно писать диалоги персонажей. - student2.ru

7) with Pause(1)пауза

Спросите, зачем нужна пауза? Допустим ваш герой провел обычный ничем не примечательный день(и показываем сцены дом, школа, столовая, домой) если между каждой сценой не ставить паузу, то программа эти сцены пропустит, так, что вы не успеете ничего увидеть. Мгновенно практически. А если между каждой сценой поставить паузу….то только щелчком мышки поменяются сцены.

Пример кода с обучения

With dissolve ### переход

With Pause(1) ###пауза

With dissolve ### переход

With pic

Как правильно писать диалоги персонажей. - student2.ru

и эффект закрытых глаз готов

Как правильно писать диалоги персонажей. - student2.ru

Не удачный пример, но суть вы поняли этих переходов

Эффекты перемещения спрайтов Move transition
(в основном на спрайты)

Ранее мы изучали переход with move и как поменять положение персонажа на экране.

Теперь давайте перейдем к командам moveболее подробно.

1) with moveoutleft -персонаж делает что то слева

hide rish_1

with moveoutleft- спрайт рыжего исчез влево(hide– убрать)

и

show rish_1

with moveoutleft- рыжий появился слева и встал посередине (show – вызвать спрайт, и мы не указали его позицию, поэтому автоматически он отправился на середину)

И с другими переходами with move…..все так же

2) with moveinbottom– персонаж что то делаетснизу

3) with moveinright - персонаж что то делает справо

4) with moveintop -персонаж что то делает сверху(спрайт вверх ногами)

Xanchor .5

Yanchor .5

parallel:

Zoom 0

Linear .5 zoom .75

Pause 2

Linear 1.0 zoom 4.0

parallel:

Xpos 0.0 ypos .6

Linear 1.5 xpos 1.0

Linear 1.0 xpos .5 ypos .2

Pause .5

Repeat

define alpha_example = AlphaDissolve("alpha_control", delay=3.5)

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

Как правильно писать диалоги персонажей. - student2.ru

Выше картинка полу прозрачная

Далее, нам потребуется создать scene blackоно будет старым изображением,

Новым будет фон, или спрайт персонажа или все сразу вместе. И получим вот что

Scene black

With dissolve

Scene komnata

show rish_1 at center

with alpha_example

Модифицируя alpha_exampleвinit’e можно создать кучу эффектов. И даже мини игру. Сейчас мне лень писать ее, но выложу ее суть. В конце, когда игра завершена предложите угадать персонажа в купальнике, и через alpha_exampleпокажите фигуру, кроме лица и выбор кто это за персонаж. ) идеей послужила аниме Жаркое лето, в конце этой анимешки эта мини игра и там такой ржачный сюрприз)

Ваше задание на сегодня

Align (.08,.05)

text ": [money]":

Align (.17,.07)

картинка монет Как правильно писать диалоги персонажей. - student2.ru а в игре дописываем

label start:

$ day = 1

$ money = 1

Show screen kalendar

Show screen cash

$ udacha = 0 и т.д.

Кнопки


Что бы отобразить кнопку в игре, ее требуется отобразить сначала в screen, а потом вызывать ее в игру.

Есть 2 вида кнопок imagebutton(изображение, пример в игре найти надо картинку девушки и через него кнопка-девушка прописывается) и textbutton(сухой текст, нажав на которую мы перейдем куда то)


Imagebutton

Граф кнопка имеет примерно такую структуру

Screen vasja: ###ссылка кнопки
….imagebutton: ###Кнопка

……….align (0.5, 0.5)### ее координата

………..idle "bin.png"### изображение 1 в покое

…………hover "bin.png"### изображение 2 при наведении

…………action Hide ("gruppa_tatu") ### кнопка должна что-то делать, иначе она не будет закрывать собой кнопки на заднем плане, и их можно будет нажать "через" картинку. В кавычках мы прыгаем в метку( gruppa_tatu )

…………focus_mask True ### только непрозрачная часть кнопки будет активна - т.е. мы сможем взаимодействовать с задним планом в том месте, где картинка прозрачна

И в метке старт вызываем call screen vasja или show screen vasjaв зависимости от того что вам нужно от этой кнопки

Textbutton

Все аналогично предыдущей кнопки

Screen vasja:

textbutton "X" action [Hide("binoculars"), Hide("back_view") ] yalign 0.0 xalign 0.5

или

textbutton "X" action Hide("gruppa_tatu") yalign 0.0 xalign 0.5
в метке старт вызываем call screen vasja или show screen vasjaв зависимости от того что вам нужно от этой кнопки

Координаты изображения

Ранее мы умели прописывать координаты спрайтов(at centerи т.д) Но допустим нам требуются именно точные координаты(как например кнопкам) тогда (at center и другие) не подойдут нам.


Для этого у нас есть короткие команды
xpos 500 ypos 500 –точные координаты

pos=(475, 50)

xalign 0.5 yalign 0.5 -% положение координаты на экране(0.5 половина на изображении)

Теперь что значитх иу
Геометрию все помнят?

У – верх низ

Х– право лево

Еслиу илих отрицательное значение значит за границей полей изображения

Как правильно писать диалоги персонажей. - student2.ru

Как их прописывать эти координаты?

1) Как анимацию алт

image pos = "target1.png"

потом в

label start:

show pos:

xanchor 0.5 yanchor 0.5 xpos 0.5 ypos 0.5 ###(ровно посередине экрана)

2) Обычным способом

textbutton "X" xpos 100 ypos 200 action Hide("gruppa_tatu ")

А как быть если нужно на изображении сделать якорь, как тут?

Как правильно писать диалоги персонажей. - student2.ru

Делается это командой anchor

image anchor = "target2.png"
image logo blue = "logosolid.png"

в метке старт прописывается
show logo blue: ###”Эйлин

Xpos 300 ypos 100

Show anchor: ###Крестик

Xanchor 0.5 yanchor 0.5

Xpos 300 ypos 100

With dissolve

Как правильно писать диалоги персонажей. - student2.ru

Xpos 300 ypos 100

show anchor:

Xanchor 0.5 yanchor 0.5

Xpos 400 ypos 100

With dissolve

e "The second position we care about is the anchor. The anchor is a spot on the thing being positioned."

e "For example, here we have an xanchor of 0.0 and a yanchor of 0.0. It's in the upper-left corner of the logo image."

show anchor:

Linear .5 xpos 500

e "When we increase the xanchor to 1.0, the anchor moves to the right corner of the image."

show anchor:

Linear .5 ypos 400

e "Similarly, when both xanchor and yanchor are 1.0, the anchor is the bottom-right corner."

show pos:

Xanchor .5 yanchor .5

Xpos 600 ypos 400

e "To place an image on the screen, we need both the position and the anchor."

show logo blue:

Linear .5 xpos 400 ypos 100

show anchor:

Linear .5 xpos 600 ypos 400

И получается Как правильно писать диалоги персонажей. - student2.ru

Xalign

Как правильно писать диалоги персонажей. - student2.ru

show logo blue:

Linear .5 xalign 0.5

логотип посередине экрана

show logo blue:

Linear .5 xalign 0.0

а теперь он слева

Как правильно писать диалоги персонажей. - student2.ru

show logo blue:

linear .5 xalign 1.0

Как правильно писать диалоги персонажей. - student2.ru

Теперь справа тоже самое и с увысотой его

Как правильно писать диалоги персонажей. - student2.ru

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

Как правильно писать диалоги персонажей. - student2.ru

Музыка

Как добавить в проект?

Делается это просто

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


play music "rock.mp3" fadeout 1

queue music "pop.wav"

Теперь разберем что тут записано

Play– запуск

Music –канал постоянный

"rock.mp3"-имя файла и путь его

fadeout 1 –текущая музыка затухнет перед следующей музыкой

queue-запустить песню на указанный канал после проигрыша предыдущей песни

Что бы остановить музыку пишется

Stop music fadeout 1

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

play sound "ku-ku.mp3"

Вы так же можете поставитьqueueна каналsoundно оно будет 1 раз играть.

queue play sound "ku-ku.mp3"

queue play sound "ku-ku.mp3"

queue play sound "ku-ku.mp3"

Что бы вам зарегестрировать свой канал(например что бы кнопки при наведении звучали)

Вам потребуется немного поработать с питоном

В файле screens.rpy в самом конце напишите

init python:

renpy.music.register_channel("test_one", "sfx", False)

renpy.music.register_channel("test_two", "sfx", False)

renpy.music.register_channel("test_three", "sfx", False)

renpy.music.register_channel("test_four", "sfx", False)

renpy.music.register_channel("test_five", "sfx", False)

renpy.music.register_channel("test_six", "sfx", False)

Далее когда вы пишите кнопку вы в нее добавляете канал

textbutton "X" xpos 100 ypos 200 action [Play("test_six", "Click3.wav"),Hide("gruppa_tatu")] hovered Play("test_one", "menu_click_01.ogg")

Теперь разберем что тут записано

textbutton "X" xpos 100 ypos 200 action – начало большинства кнопок

Play("test_six", "Click3.wav"), -музыка при нажатии на канале test_six(для нажатия достаточно 1 канала)

hovered Play("test_one", "menu_click_01.ogg")–музыка при наведения (если несколько кнопок, то несколько кнопок надо использовать)

для горячих точек вот наглядный пример

Как правильно писать диалоги персонажей. - student2.ru

Анимация

Все видели как часто в новеллах персонажи моргают, двигаются а как это происходит?

Самый простой способ через алт (1 и 2)

Как правильно писать диалоги персонажей. - student2.ru Как правильно писать диалоги персонажей. - student2.ru

image ger_1:

"images/1/1.png"

Pause 1.0

"images/1/2.png"

Pause 1.0

Repeat 2

repeat 2 – количество повторов 2, если просто поставитьrepeat,то будет повторяться бесконечно

Введя это мы видим что персонаж моргает.

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

image glaz = Animation("1.png", 0.1, "2.png", 0.1)

И потом просто вызываете анимацию как картинку в проекте пример:

Show glaz

"текст"

show ger_1

Scene black

$ max_time = 60

$ ww, hh = 4, 4

call memoria_game

Return

Вам нужно вставить в ваш проект

$ max_time = 60

$ ww, hh = 4, 4

call memoria_game

и файл с самой мини игрой

И все игра у вас в проекте

Splashscreen

Есть 2 типа splashscreen

1)Метка splashscreen

2) Изображение splashscreen

Метка splashscreen

если добавить метку «label splashscreen:», то код после неё запустится до появления главного меню.

Добавьте такую метку в проект test

label splashscreen:

….scene black

….centered "Внимание\n

Данная игра может содержать нецензурные выражения\n

и сцены насилия.Содержимое может вызвать у вас протест.\n

Данная игра является безобидной шуткой и ни в коем\n

случае не ставит перед собой цели оскорбить кого-либо\n

Все сходства с реальными персонажами и событиями\n

случайны. Эта игра содержит контент, принадлежащий\n

третьим лицам.По закону об авторском праве РФ я имею\n

право использовать его для создании пародии, которой\n

данная игра и является. Я не присваиваю себе\n

авторство над видео- и аудиозаписями, изображениями\n

и эффектами, я всего лишь являюсь автором всей картины\n

в целом. Все исходники указанны в конце игры(и/или описании)\n

Возрастная маркировка данной игры - 18+. "

….centered "{size=+10}САМИЗДАТ{/size}\n\n\n\n\nЛитературно-публицистический журнал\n\n\n\n {size=-5}{a=http://samlib.ru}http://samlib.ru{/a}{/size}"

….centered "Посетите нашу группу {a=http://vk.com/renpy}Ren'Py на vk.com{/a}"

….return

Как правильно писать диалоги персонажей. - student2.ru

Сохраните сценарий и запустите проект тест
Запустившись вам ранее сразу главное меню загружалась, а теперь то что вы прописали в метке splashscreen.Там вы сможете вставить видео(http://ru.renpypedia.shoutwiki.com/wiki/%D0%A0%D0%B0%D0%B1%D0%BE%D1%82%D0%B0_%D1%81_%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE_%D0%B2_Renpy )

Логотип группы, и т.д…

Изображение splashscreen

Eсли картинку назвать "presplash.png" и положить в папку game проекта, то она появится на экране ещё перед появлением окна игры (на время загрузки контента)

Создаем инсталлятор

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

1) Для этого, заходим в лаунчер ренпая,
2) Выбираем раздел «очистить постоянные данные». Дабы у игрока сразу не было все открыто, и он ваш проект пропуском за 5 мин не прошел.
3) Выбираем пункт «Построить дистрибьютор» И там выбираем что вы хотите сделать(на виндовс или линукс и т.д) и программа автоматом создаст ехе и т.д.
4) Выходим на папку проекта testили какой вы создавали. Выбираете правой кнопкой мыши ваш проект и выделяете галкой Создать SFX-архив

Как правильно писать диалоги персонажей. - student2.ru

5) Простейший инсталлятор у вас готов
Если вам нужен посложней то просмотрите видео https://vk.com/cyber_z_craft?w=wall-76362432_181

Теперь давайте уделим внимание на проблеме всех начинающих кодировщиков.

Нет художников

По этому поводу писал один человек https://vk.com/renpy?w=wall-7553243_24357%2Fall и я с ним согласен.

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

мы написали 1 и 2 главу но нам не хватает художника,

чем

ну мы сейчас начнем писать новеллку у нас есть сюжет, но мы не пишем новеллу из за того что художника нету….

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

Плюс вы всегда можете нанять художника профессионального для вашего проекта. Зачастую от этого вы выигрываете время, у вас будут профессиональные рисунки, а не квакозябры которые рисуют в 1 классе. https://vk.com/topic-7553243_33290860?post=5013

Есть еще такая штука как генератор персонажей https://vk.com/topic-76362432_35593417

И такие вот сообщества https://vk.com/ayri_attic в которых вам помогут собрать новелле ресурсы, которая в дальнейшем вам проще будет найти художника(ибо он будет иметь представление что нарисовать)

Сайты

1) https://lemmasoft.renai.us/forums/

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

2) https://vk.com/renpy

Российское крупнейшее объединение ренпая. Тут вам всегда смогут подсказать ответ на вашу проблему. В обсуждениях группы собраны полезные плюшки, мини игры, статьи.

3) https://vk.com/cyber_z_craft

Автор, пока единственного, видео-урока по ренпаю на русском языке (и в этом же сообществе был записан данный учебник)

4) http://renpyfordummies.blogspot.ru/

Заключение

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

Так же я настоятельно рекомендую пройти вам видеоуроки от Мастера Ирдиса на ютубе их можно найти, или в сообществе https://vk.com/cyber_z_craft

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

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

Всем спасибо! Что уделили моему маленькому учебнику внимание.

Как правильно писать диалоги персонажей. - student2.ru

Учебник по Ren’Py

Как правильно писать диалоги персонажей. - student2.ru

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

Для начало работы вам необходимо будет скачать Ren’ру http://www.renpy.org

и установить ее, только смотрите что бы папка сохранения была не на русском языке(говорят скоро будет обновление где эта проблема будет исправлена).
Самый оптимальный вариант создать в диске С папку под номером 1 (мне так удобней) и получим C:\1\renpy-6.99.11.3-sdk (смело скачивайте самую последнюю версию)

Запускаем проект. У нас запус

Наши рекомендации