Renpy как сделать меню свое
Перейти к содержимому

Renpy как сделать меню свое

  • автор:

ТЕМА: Несколько вопросов по настройкам Ren’Py

Несколько вопросов по настройкам Ren’Py 13 года 7 мес. назад #32539

Победитель Сбитой кодировкиКоммерсантОрганизатор конкурсовРазработчикПроект месяца 2 местоПроект месяца 3 местоУчительПроект месяца 1 местоДаритель Стимкея2 место Готв

Вот, возникло несколько вопросов по движку, помогите пожалуйста

1) Как можно убрать в настройках лишние пункты с настройками, например пункт «Транзакции», я не знаю что это вообще такое..или найти перевод этого слова нормально чтоб игроков не смущало.
2) Можно ли как-то поменять курсор в ренпи? Если можно, то как это сделать?
3) Можно ли в ренпи менять громкость звука, напрмер, у меня там птицы слишком громко в игре поют, хочу как-то убавить громкость, а то бесит всех
4) Можно ли в одном проекте сделать русскую и английскую версию игры каким либо образом, чтобы в начале перед запуском можно было выбирать, но при этом не две игры было, а одна, т.е. общие папки с графикой. Или лучше отдельно делать?

Администратор запретил публиковать записи гостям.

Несколько вопросов по настройкам Ren’Py 13 года 7 мес. назад #32542

1) Можно отключить их в настройках файла options.rpy (скопировать весь кусок кода в конец файла, строки с ненужными «отключениями» потом можно убрать):

init -1: layout.classic_preferences () #Это наше классическое меню настроек config.has_transitions = False #Отключаем переходы ("транзакции") config.has_afm = False #Отключаем автопрокрутку (хэндз-фри) config.has_skipping = False #Отключаем пропуск текста config.has_skip_after_choice = False #Отключаем пропуск после выбора config.has_joystick = False #Отлючаем включение/выключение джойстика

Также там по умолчанию есть настройки ползунков громкости. Если заменить True на False, этот ползунок пропадет. Например, если нет озвучки и этот ползунок не нужен.

config.has_sound = True #Звук config.has_music = True #Музыка config.has_voice = True #Голос

2) Сам не делал, но есть вот эта тема на Lemma Soft Forums. Там есть пример, как сделать анимированный курсор и ссылка на статью в англоязычном мануале

3) Если мешает один конкретный звук, проще сделать его тише в каком-нибудь звуковом редакторе

4) Можно сделать свое меню с помощью imagemap и сделать там отдельные кнопки на старт русской и английской версии игры. Так будет проще всего.

Еще есть русско-английская игра A Game, где автор сделал возможность переключать язык на лету — нажатием одной кнопки. Скрипт игры не зашифрован, на Lemma Soft Forums тема игры здесь.

А я бы просто сделал две разные версии.

ТЕМА: Создание меню

Приветик всем :3
Я совсем недавно начала изучение движка Ren’Py и ещё плохо с ним знакома. Сейчас я делаю свою новеллу и передо мной встала задача сделать красивое меню, а то стандартное мне не нравится. Хотелось бы сделать что то вроде такого:

ВНИМАНИЕ: Спойлер! [ Нажмите, чтобы развернуть ] [ Нажмите, чтобы скрыть ]

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

Если вас не затруднит, объясните пожалуйста как сделать нечто подобное. Заранее спасибо :3

Последнее редактирование: 11 года 10 мес. назад от Kuro-chan.
Администратор запретил публиковать записи гостям.

Re: Создание меню 11 года 10 мес. назад #51199

Программист RubyВетеранПрограммист JavaScript ОраторДаритель Стимкея

Чтоб сделать горизонтальное меню, откройте скрипт (кнопка «Edit Script») и на строчке №190 во вкладке «screens.rpy», замените vbox на hbox.
Там же, на строчках 187 и 188, можно изменить положение блока меню на экране. Насколько понял, число после точки означает количество процентов. Т.е. значение 50, расположит меню по центру экрана.

Насчет меню из своей картинки. Выходит примерно так:

result = renpy.imagemap("main_menu.jpg", "main_menu.jpg", [ (0, 0, 114, 35, "start") (114, 0, 228, 35, "load") (228, 0, 342, 35, "preference") (342, 0, 456, 35, "help") (456, 0, 570, 35, "quit") ]) if result == "start": Start() elif result == "load": ShowMenu("load") elif result == "preference": ShowMenu("preferences") elif result == "help": Help() elif result == "quit": Quit(confirm=False)

Последнее редактирование: 11 года 10 мес. назад от Lekste.
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: Kuro-chan

Re: Создание меню 11 года 10 мес. назад #51218

Это в «options.rpy» вставлять нужно?
После этой строки?
Или я совсем ничего не понимаю :с

layout.button_menu()

У меня выглядит так:

######################################### # Планы ## Здесь активируется использование игрового меню ## ввыполненного из кнопок. layout.button_menu() $ result = renpy.imagemap("bg/main1.jpg", "bg/main2.jpg", [ (6, 550, 190, 579, "start"), (238, 550, 431, 579, "load"), (495, 550, 627, 579, "preference"), (705, 550, 784, 579, "quit"), ], focus="imagemap") if result == "start": Start() elif result == "load": ShowMenu("load") elif result == "preference": ShowMenu("preferences") elif result == "quit": Quit(confirm=False) #########################################

Выдает ошибку при проверке, говорит что синтаксическая ошибка.
Последнее редактирование: 11 года 10 мес. назад от Kuro-chan.
Администратор запретил публиковать записи гостям.

Re: Создание меню 11 года 10 мес. назад #51219

Нужно делать вот так:

# Планы ## Здесь активируется использование игрового меню ## ввыполненного из кнопок. layout.button_menu() init -2 python: layout.imagemap_main_menu("main1.jpg", "main2.jpg", [ (300, 250, 495, 270, "Start Game"), (300, 273, 495, 294, "Load Game"), (300, 298, 495, 318, "Preferences"), (300, 323, 495, 343, "Quit"), ]) #########################################

Lekste спасибо за идею с imagemap ^^

И да, кстати новое меню:

Renpy как сделать меню свое

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

—> Приключения —> —> Фантастика —> —> Комедии —> —> Ужасы —> —> 2020 —> —> 2019 —> —> 2018 —> —> 2017 —> —> 2016 —> —> 2015 —> —> —> —> —> —> 5.0 —> —> —> —> —> —> 4.0 —> —> —> —> —> —> 3.5 —> —> —> —> —> —> 3.0 —> —> —> —> —> —> 2.5 —>

Популярные новеллы

Lucy — The Eternity She Wished For

The House in Fata Morgana

Princess Evangile

Перезапись

Изменение меню в RenPy

Время на чтение:
Автор статьи:

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

Изменение изображения в главном меню

Изменение картинки в главном меню делается очень просто: необходимо поместить нужное изображение в папку с файлами графического интерфейса. Рассмотрим подробнее.

В корневой папке “game” проекта RenPy есть папка gui. В этой папке находятся изображения с названием “main_menu” и “game_menu” (если вы их не удаляли и не меняли настройки проекта в файле “options.rpy”). Это и есть изображения главного меню и меню игры в целом.

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

Самый простой способ изменения картинок — просто заменить их на свои с таким же разрешением. Но есть еще один момент: по дефолту RenPy выводит название игры поверх фона. Если оно вам мешает, то это можно поправить через файл “options.rpy”.

Находим строчку следующую строчку и меняем True на False.

define gui.show_name = True
Создание своего меню

Для начала рассмотрим изменение первичного дизайна новеллы, который предлагает сам RenPy. В той же папке gui есть еще несколько подпапок. Одна из них называется “overlay”. Эти изображения накладываются поверх фонов.

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

Далее можно поменять шрифт в меню, а именно: его цвет. Заходим в файл gui.rpy и ищем строчку:

define gui.idle_color

Это не выделенные пункты меню. После знака равенства пишем любой подходящий цвет в шестнадцатеричном формате.

Есть вариант полностью перерисовать меню игры под себя: если вы хорошо рисуете или у вас есть дизайнер, то подготовьте все нужные экраны, изображения кнопок, боковых панелей и т.д. Узнать список всех необходимых файлов можно из созданного проекта в RenPy: внимательно изучите папку gui, просмотрите вложенные папки. Определите, какие изображения за что отвечают. Узнать это можно из названия картинок и опираясь на официальный гайд по изменению интерфейса.

Рассмотрим вариант изменения главного меню с созданием своих кнопок.

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

Пример фонового изображения

Пример изображения с пунктами меню

Пример выделенных пунктов меню

! У вас должен быть не серый фон, а прозрачный. Скачать картинки из примера можно будет в конце статьи.

Далее все три изображения перемещаем в папку “gui”. Изображение с фоном можно назвать “main_menu”, с кнопками “menu_normal”, с подсвеченными кнопками “menu_hover”. Чтобы настроить отображение своего меню заходим в файл screens.rpy и находим раздел screen main_menu(). В этом блоке можно смело всё удалить, оставив лишь tag menu.

screen main_menu(): tag menu

Воспользуемся объектом imagemap, у которого можно указать фоновое изображение (ground), изображения с кнопками (idle и hover).

screen main_menu(): tag menu imagemap: ground "gui/main_menu.png" idle "gui/menu_normal.png" hover "gui/menu_hover.png"

Но надо еще указать координаты для каждой кнопки, потому что мы задали по одному изображению и RenPy думает, что у нас есть одна большая кнопка на весь экран: исправить это можно через hotspot, указав ему стартовую координату кнопки, её ширину и высоту.

screen main_menu(): tag menu imagemap: ground "gui/main_menu.png" idle "gui/menu_normal.png" hover "gui/menu_hover.png" hotspot(x, y, width, height) 

Посмотреть эти координаты можно в графическом редакторе. Когда вы водите мышкой по экрану, то по краю изображения можно найти числа в пикселях или увидеть координаты в отдельном меню (например, в фотошопе стоит зайти в “Окно”>”Навигатор” и выбрать вкладку “Инфо”).

Необходимо определить координаты (это и есть x и y) левого верхнего угла каждой кнопки. Высоту можно определить при помощи разницы координаты Y нижнего левого угла кнопки и ее верхнего левого угла. Ширину аналогично при помощи разницы координаты X правого верхнего угла и левого верхнего угла.

Отлично, мы нашли кнопку на экране. Осталось определить, что эта кнопка будет делать при помощи action. Action бывают следующие: Start — для запуска игры, ShowMenu — для показа какого-то конкретного меню, Quit — выход из игры. Действиям можно передавать параметры: название меню или флаг, который будет указывать на подтверждение выхода из игры.

Вот как это выглядит в коде:

screen main_menu(): tag menu imagemap: ground "gui/main_menu.png" idle "gui/menu_normal.png" hover "gui/menu_hover.png" hotspot(30, 150, 240, 60) action Start() hotspot(30, 240, 320, 80) action ShowMenu("load") hotspot(30, 320, 330, 80) action ShowMenu("preferences") hotspot(30, 400, 250, 80) action ShowMenu("about") hotspot(30, 610, 220, 60) action Quit(confirm=True)

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

С дальнейшей кастомизацией помогут официальный гайд и многочисленные видео на YouTube.

Дата публикации: Окт. 25, 2022

Renpy как сделать меню свое

Главное меню

Есть множество способов создания главного меню.
Рассмотрим пару из них.
1. Меню со своим фоном и созданием контейнера с однообразными кнопками. Почти то же, что и стандартное Ren’Py меню.
2. С использованием метода «Горячих точек» (ImageMap). Но добавление точек происходит иначе.

Метод первый: Создание контейнера с кнопками.

Нужно 3 вещи:
1. Фон
2. Пустая кнопка
3. Пустая наведённая кнопка.

Фон устанавливается стандартно, в options.rpy.

mm_root = «back.png»

А для создания кнопок нам желательно иметь 2 кнопки: обычную и наведённую (hover)

Обычная:

Наведённая:

Можно обойтись и одной кнопкой.

Заходим в screens.rpy и опускаемся до 174 строки, далее, если необходимо заменяем код.

screen main_menu:
# Это заменяет другие меню.
tag menu

# Фон главного меню.
window:
style «mm_root»

#Непосредственно кнопки
has vbox
textbutton _(«Новая игра») action Start():
area(50,10,310,70)
background «but.png»
hover_background «but_hover.png»

textbutton _(«Загрузка») action ShowMenu(«load»):
area(50,10,310,70)
background «but.png»
. hover_background «but_hover.png»

textbutton _(«Настройки») action ShowMenu(«preferences»):
area(50,10,305,70)
background «but.png»
hover_background «but_hover.png»

textbutton _(«Справка») action Help():
area(50,10,305,70)
background «but.png»
hover_background «but_hover.png»

textbutton _(«Выход») action Quit(confirm=False):
area(50,10,300,70)
background «but.png»
hover_background «but_hover.png»

textbutton — создание кнопки с текстом, который будет написан поверх неё..
action — действие, происходящее по клику.
area(50,10,305,70) — точки координат размещения кнопки и текста на ней.
Координаты:
Первая точка (50) — расположение кнопки по координате X.
Вторая точка (10) — расположение кнопки по координате Y.
Третья точка (300) — расположение надписи по координате X.
Четвёртая точка (70) — расположение надписи по координате Y.

background «but.png» — указывание обычной кнопки.
hover_background «but_hover.png» — указывание наведённой кнопки.

P.S. has vbox — создаёт контейнер с кнопками, все кнопки идут подряд сверху вниз. Количество кнопок может варьироваться.



Второй метод: Использование «Горячих точек» (ImageMap)

Как и в обычном ImageMap, нам нужно иметь 2 изображения:
1.Фон
2.С отличающейся областью наведения/выделения.

1.

2.

screen main_menu:
imagemap:
ground «mmo.png»
hover «mmh.png»
alpha True

hotspot (262, 117, 497, 68) action Start()
hotspot (314, 196, 447, 32) action ShowMenu(«load»)
hotspot (314, 238, 445, 32) action ShowMenu(«preferences»)
hotspot (298, 278, 463, 32) action Help()
hotspot (270, 318, 490, 32) action Quit(confirm=False)

P.S.S. Ниже, стандартно на 218 строке, необходимо удалить/исключить из кода следующие строки:

init -2 python:
style.mm_button.size_group = «mm»

ground «mmo.png» — обычное фоновое изображение.
hover «mmh.png» — изображение с отличающейся областью выделения.
alpha True — разрешает прозрачность (альфа-канал).
hotspot — создание новой «Горячей точки».
(262, 117, 497, 68) — координаты «Горячей точки». Вычисляются иначе, чем в обычном ImageMap.
action — действие, которое происходит, по клику на выделенную область (горячую точку).

Вычисление координат:
1.Закидываем изображения в папку game, можно создавать свои папки, но не выше game.
2.Заходим в Ren’Py .
3. Запускаем свой проект.
4. Нажимаем комбинацию клавиш Shift + D (раскладка должна быть на английском).

5. В Developer Menu жмём по Image Location Picker.
6. Выбираем любое из двух нужных изображений.

7. Выделяем нужную область. С верхнего левого угла, до нижнего правого.

8. И в отличие от обычного ImageMap, здесь нам необходимы все четыре точки с Rectangle

9. В итоге получим что-то, вроде (262, 117, 497, 68). Их и необходимо вписать в координаты точки.
10. Повторяем действия 7, 8, 9 для остальных горячих точек.




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

screen main_menu:
imagemap:

#Добавляем круг, и заставляем его крутится по часовой стрелки.
add «mm/poe4.png» at RotoZoom(0, 360, 10, 50, 1, 1, rot_repeat=True, rot_anim_timebase=True,
opaque=False, xalign=-0.07, yalign=0.18)

#Добавляем туманы и всякие полосочки, и прописываем им путь движения.
add «mm/mut11.png» at Move((3.0, 1.0, 1.0, 1.0),
(-2.0, 1.0, 1.0, 1.0),
50.0, repeat=True, bounce=True, subpixel=True )
add «mm/mut10.png» at Move((-0.1, 1.0, 1.0, 1.0),
(3.0, 1.0, 1.0, 1.0), 20.0, repeat=True, subpixel=True )
add «mm/mut8.png» at Move((-0.1, 1.0, 1.0, 1.0),
(3.0, 1.0, 1.0, 1.0), 15.0, repeat=True, subpixel=True )
add «mm/mut9.png» at Move((-0.1, 1.0, 1.0, 1.0),
(3.0, 1.0, 1.0, 1.0), 20.0, repeat=True, subpixel=True )
add «mm/mut6.png» at Move((-0.1, 1.0, 1.0, 1.0),
(2.0, 1.0, 1.0, 1.0), 20.0, repeat=True, subpixel=True )
add «mm/mut5.png» at Move((2.0, 1.0, 1.0, 1.0),
(-0.1, 1.0, 1.0, 1.0), 20.0, repeat=True, subpixel=True )
add «mm/mut4.png» at Move((2.0, 1.0, 1.0, 1.0),
(-0.1, 1.0, 1.0, 1.0), 12.0, repeat=True, subpixel=True )
add «mm/mut3.png» at Move((-0.1, 1.0, 1.0, 1.0),
(1.15, 1.0, 1.0, 1.0), 13.0, repeat=True, subpixel=True )
add «mm/mut2.png» at Move((-0.1, 1.0, 1.0, 1.0),
(2.0, 1.0, 1.0, 1.0), 13.0, repeat=True, subpixel=True )
add «mm/mut1.png» at Move((4.0, 1.0, 1.0, 1.0),
(-0.1, 1.0, 1.0, 1.0), 30.0, repeat=True, subpixel=True )

ground «mmo.png»
hover «mmh.png»
alpha True

hotspot (262, 117, 497, 68) action Start()
hotspot (314, 196, 447, 32) action ShowMenu(«load»)
hotspot (314, 238, 445, 32) action ShowMenu(«preferences»)
hotspot (298, 278, 463, 32) action Help()
hotspot (270, 318, 490, 32) action Quit(confirm=False)

Скриншоты:


P.S.S.S. При использовании второго метода, после первого запуска проекта, в папке game, создастся папка cache. В ней находятся вырезанные выделенный области. Если у вас не абсолютно прямоугольные области, файл, лежащий в данной папке можно подредактировать, стерев в нём всю область, которая лишняя в горячей точки.
К примеру я стёр области с левой стороны «кнопок», ибо они у меня не идеально-прямоугольные. В итоге получилась не прямоугольная область.

Но если бы я не отредактировал файл, было бы примерно так:

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *