ренпай музыка в главном меню
Ренпай музыка в главном меню
RenPy. Звук это просто.
По просьбе, делаю максимально простую инструкцию о том как вставить звук в визуальную новеллу создаваемую в прекрасной программе под названием RenPy.
Пункт 1. Проще быть не можешь
Сначала пользователь увидит «Фраза 1»
Затем по клику начнётся воспроизведение файла и одновременно с этим пользователь увидит «Фраза 2»
Волшебные символы «music/test.mp3» означают, что программа будет искать файл с названием test.mp3 в папке music находящуюся в свою очередь в той же папке, что и все наши скрипты, а именно в папке game.
Пункт 2. Зачем так громко?
Те же, там же, но на этот раз мы сразу устанавливаем громкость для всех мелодий/песен/звуков
В магической строчке «$renpy.music.set_volume (0.2)» Цифра 0.2 это 20% от максимальной громкости. Соответственно 1.0 это 100% —максимальная громкость, а 0.0 это 0% — минимальная громкость, то бишь вообще без звука.
Пункт 3. Стойте! Я уже наслушался
Здесь всё будет так.
Запускаем игру, видим «Фраза 1»
Жмякаем мышку. Появляется «Фраза 2» и запускается музыка.
Мы наслаждаемся мелодией, читаем текст, думаем о своём (мелодия без устали играет)
Жмякаем мышку ещё раз. Появляется «Фраза 3» и вместе с этим воспроизведение останавливается. Теперь мы сидим в тишине
Пункт 4. Зачем так резко?
Для этого эксперимента делаем звук по громче (60%)
И добавляем ещё две не менее магические приставочки. А именно
«fadein 5» и «fadeout 7»
Естественно вместо циферок 5 и 7 можно ставить любые числа которые вам будут по душе.
Что же изменилось? Теперь когда придёт время музыки заиграть, она будет «мягко» вступать в течении 5 секунд.
А когда придётся остановиться, она так же медленно будет затухать в течении 7 секунд
Пункт 5. Заика, заика что ли?
Ну и напоследок. Мелодия которая запущена при помощи команды
play music «music/test.mp3»
будет постоянно повторяться пока вы не запустите другую мелодию, или пока вы её сами же и не остановите командой «stop music»
Если же вы хотите скажем озвучить выстрел, который по понятным причинам не должен без устали повторяться, то можно/нужно использовать те же конструкции только вместо слова music пишите sound.
Как добавить музыку в главное меню
Заходите в файл сценария в screens. rpy
Находите метку главного меню и допишите через питон музыку, пишется все до tag menu
screen main_menu():
python:
renpy.music.queue(«music/mainmenu.mp3»,channel = «music», fadein = 1)
# This ensures that any other menu screen is replaced.
tag menu
# The background of the main menu.
Запустите проект ваш. После начните игру. Музыка главного меню играет в вашем проекте, а как в игре убрать мелодию главного меню? Можно это исправить 2 способами.
1) После метки label start: пишите переменные… а потом
stop music и музыка остановилась
label start:
….$ peremennaja_lubaja = 0
….stop music
2) Пишите мелодию в начале игры
label start:
….$ peremennaja_lubaja = 0
….play music»rock.mp3″ fadeout 1
Как воспроизвести сразу 2 мелодии
Что бы воспроизвести 2 песни или песню и звук любой вам потребуется прописать эти мелодии в 2 каналах music и sound.
label start:
….$ peremennaja_ lubaja = 0
…. play music» rock. mp3″ fadeout 1 ###Мелодия, главная повторяющееся тема
…. play sound » ku- ku. mp3″ fadeout 1 ### Звук, временный звук
Анимация
Все видели как часто в новеллах персонажи моргают, двигаются, а как это происходит?
Самый простой способ через алт (Нужны 2 картинки спрайтов)
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 имя_анимации-спрайта
scene имя_анимации-фона
Язык трансформаций и анимаций (ATL или ALT)
Alt можно использовать в 3 местах ренпая.
Как часть оператора image.
label start:
….show ger_1
….scene ger_1
2)Использовать как часть оператора трансформации. Что позволит его использовать в at и в других трансформаций.
init:
….transform napravo:
………xalign 1.0 yalign 0.0
label start:
….show risunok_spraita at napravo
Как часть оператора show
Теперь давайте разберемся, что значит анимация и трансформация
Анимация –изменение показываемого объекта(глаз моргает, головой качает…)
Трансформация – изменение и передвижение вида изображений(вращение, прозрачность, размер деформируется….)
Теперь перейдем к спискам
1) Самая простая анимация
image ger_1:
«images/1/1.png»
pause 1.0
«images/1/2.png»
pause 1.0
repeat
2) Переходы и смена фона
image pic1 = «risunok_1.png»
image pic2 =»risunok_2.png»
image pic_anim:
….»pic1″ with dissolve
….pause 1.0
….»pic2″ with dissolve
….pause 1.0
….repeat
label start:
…. scene pic_ anim
И вот фон у нас анимированный, и меняется растворением
Поперечные профили набережных и береговой полосы: На городских территориях берегоукрепление проектируют с учетом технических и экономических требований, но особое значение придают эстетическим.
Общие условия выбора системы дренажа: Система дренажа выбирается в зависимости от характера защищаемого.
Ренпай музыка в главном меню
В визуальных новеллах музыка играет ключевую роль. Она является основным инструментом для создания и поддержания неповторимой атмосферы. В Ren’Py с ней работать предельно просто.
Для проигрывания музыкального сопровождения, необходимо написать следующее:
Звук
Помимо музыки, немаловажным являются и звуки.
В Ren’Py разница между музыкой и звуком, в том, что музыка бесконечно повторяется, а звук проигрывается лишь раз.
Звук можно воспроизводить поверх музыки.
К примеру:
Если вам необходимо начать воспроизведение музыки/звука более плавно, для этого есть такой эффект:
Громкость музыки будет нарастать плавно, в течении 5 секунд.
Для плавного убывания звука/музыки:
Можно устанавливать громкость для уже проигрывающей музыке или звуков.
Также, можно управлять левым и правым аудио-каналом.
Это может придать дополнительный эффект погружения.
К примеру, нам нужно воспроизвести звук закрывающейся двери лишь в левом аудио-канале, дабы создать эффект того, что дверь закрылась слева от нас.
Альбом
Можно создать «альбом», указав файлы, которые будут проигрываться.
В Ren’Py можно воспроизводить и озвучивание персонажей.
P.S.S.S. Если во время первой реплики вывести вторую, то воспроизведение «fr1.ogg» прервётся, и начнётся воспроизведение «fr2.ogg«. Но если после реплики будет стоять строка voice sustain, то озвучивание будет продолжать проигрываться.
Используя вышеперечисленное, можно создать неповторимую атмосферу в вашей визуальной новелле.
Звук (Audio)
Содержание
Ren’Py поддерживает воспроизведение музыки и звуковых эффектов в фоновом режиме, используя следующие форматы аудиофайлов:
Ren’Py поддерживает произвольное количество звуковых каналов. По умолчанию определены три стандартных канала:
Стандартные каналы поддерживают воспроизведение и формирование очереди воспроизведения аудио, но одновременно воспроизводят только один аудиофайл. Новые стандартные каналы можно зарегистрировать с помощью renpy.music.register_channel().
Помимо стандартного канала, есть один специальный канал – audio. Канал audio поддерживает одновременное воспроизведение нескольких аудиофайлов, но не поддерживает формирование очереди воспроизведения звука или остановку воспроизведения.
Звуки также можно настроить так, чтобы они воспроизводились, когда кнопки, выбор пункта меню или карты изображений находятся в неактивных или активированных состояниях. Смотри раздел «Свойства стиля кнопки».
Две переменные конфигурации, config.main_menu_music и config.game_menu_music, позволяют воспроизводить указанные музыкальные файлы, как в главном, так и игровом меню.
В играх, созданных с помощью Ren’Py, принято воспроизводить музыку или звук, используя три оператора music/sound, приведенных ниже.
Оператор play (Play Statement) [ править ]
Оператор play используется для воспроизведения звука и музыки. Если в данный момент файл воспроизводится на стандартном канале, он прерывается и заменяется новым файлом.
Предполагается, что после ключевого слова play следует название канала, как правило, это либо «sound», «music», «voice» или «audio». Затем следует следует аудиофайл(ы), где аудиофайлом(и) может быть один файл или список файлов. Когда список задан, элементы в нём воспроизводятся по порядку.
Параметры fadein и fadeout необязательны. Fadeout дает время на затухание проигрываемой музыки (в секундах), тогда как fadein предоставляет время, требуемое на постепенное увеличение громкости звука нового аудиофайла. Если fadeout не указан, используется config.fade_music.
Параметры loop и noloop также являются необязательными. Loop приводит к зацикливанию музыки, тогда как noloop приводит к проигрыванию музыки всего один раз. Если ни один из параметров не указан, используется канал по умолчанию.
На канале audio несколько операторов play воспроизводят сразу несколько звуков одновременно:
Оператор stop (Stop Statement) [ править ]
Оператор stop начинается с ключевого слова stop, за которым следует название канала, для того, чтобы остановить воспроизведение звука на нём. Оператор stop может включать дополнительный параметр fadeout.
Оператор queue (Queue Statement) [ править ]
Оператор queue используется для постановки аудиофайлов в очередь. Они будут воспроизведены, когда канал завершит воспроизведение текущего проигрываемого файла.
Оператор queue начинается с ключевого слова queue, за которым следует название канала для воспроизведения звука на нём. Оператор queue может дополнительно использовать параметры loop и noloop.
Преимущество использования вышеуказанных операторов заключается в том, что ваша программа будет проверена на предмет отсутствия звуковых и музыкальных файлов при запуске контроля качества кода.
Приведённые ниже функции существуют для обеспечения доступа к музыке и звуку, которые будут контролироваться из Python, и раскрытия дополнительных (редко применяемых) функций.
Частичное воспроизведение (Partial Playback) [ править ]
Ren’Py поддерживает частичное воспроизведение аудиофайлов. Это достигается путём размещения спецификации воспроизведения, заключенной в угловые скобки, в начале файла. Спецификация частичного воспроизведения должна состоять из чередующихся пар «имя свойства» и «значения», разделенных пробелами. Значения всегда интерпретируются, как количество секунд от начала файла.
Ниже представлено три свойства:
from Определяет позицию в файле, с которой начинается воспроизведение (по умолчанию 0.0 секунд). to Определяет позицию в файле, в которой файл заканчивает воспроизведение (по умолчанию вся продолжительность файла). loop Указывает позицию в файле, с которой начинается воспроизведение второго и последующих прогонов (по умолчанию это время начала, заданное from, если свойство указано, или начало файла).
Будет воспроизводить 10.5 секунд waves.opus, начиная с 5-ти секундной отметки.
Будет воспроизводить song.opus один раз от начала до конца, затем вернётся к отметке 6.333, прежде чем снова воспроизвести файл до конца.
Воспроизведение временного молчания (Playing Silence) [ править ]
Установленный интервал времени паузы можно воспроизвести, используя имя файла, например » «, где 3.0 – требуемое количество секунд тишины. Это можно использовать, чтобы отсрочить начало воспроизведения звукового файла. Например:
Код будет полсекунды воспроизводить тишину, а затем воспроизведёт звук взрыва.
Пространство имён audio (Audio Namespace) [ править ]
Операторы play и queue вычисляют свои аргументы в пространстве имён audio. Это означает, что можно использовать оператор define для создания псевдонима для аудиофайла.
Например, можно прописать псевдоним в коде:
и потом использовать его в дальнейшем, как например:
Функции (Functions) [ править ]
Воспроизведение звукового эффекта. Если channel принимает значение None, то по умолчанию используется переменная конфигурации config.play_channel. Функция используется для воспроизведения звуков, определенных в стилях hover_sound и activate_sound.
Возвращает значение True, если заданный filename хотя бы один раз был воспроизведен в текущей системе пользователя.
Вычисляет продолжительность аудио или видеофайла на channel. Возвращает нулевое значение (0.0), если на канале не воспроизводится файл.
Возвращает флаг паузы для channel.
Если заданный channel воспроизводится, то функция вычисляет имя проигрываемого файла. Иначе, возвращает значение None.
Вычисляет текущую позицию аудио или видеофайла на channel, в секундах. Возвращает значение None, если на channel не воспроизводится звук. Поскольку функция может вернуть значение None до начала воспроизведения канала, либо если задействованный канал audio был отключен, код, вызывающий эту функцию, всегда должен обрабатывать значение None.
Возвращает значение True, если в данный момент канал воспроизводит звук. Возвращает значение False, если звук не воспроизводится или же акустическая система не работает.
renpy.music.play (filenames, channel=’music’, loop=None, fadeout=None, synchro_start=False, fadein=0, tight=None, if_changed=False)
Останавливает музыку, воспроизводимую в данный момент на пронумерованном канале, удаляет из очереди воспроизведения любую музыку, поставленную в очередь, и начинает воспроизведение указанного файла или файлов. filenames Это может быть один файл или список файлов для воспроизведения. channel Канал для воспроизведения звука на указанном channel. loop Если принимает значение True, треки будут зациклены, пока они являются последними в очереди воспроизведения. fadeout Если принимает значение не None, то это время в секундах на затухание проигрываемой музыки. Иначе это время берется из config.fade_music. synchro_start Ren’Py гарантирует, что все каналы с synchro_start со значением True начнут воспроизведение в одно и тоже время. Synchro_start должен иметь значение True при воспроизведении двух аудиофайлов, которые предназначены для синхронизации друг с другом. fadein Количество секунд на постепенное увеличение громкости звука проигрываемой музыки, только в первом цикле. tight Если принимает значение True, то затухание будет переходить в следующий звук в очереди. Если установлено значение None, параметр принимает значение True, когда loop=True, иначе значение False. if_changed Если принимает значение True и музыкальный файл воспроизводится в данный момент, то он не остановится/не затухнет и снова не исчезнет, а вместо этого продолжит проигрываться. Параметр всегда будет помещать в очередь дополнительный цикл музыки. Функция очищает флаг паузы для channel.
renpy.music.queue (filenames, channel=’music’, loop=None, clear_queue=True, fadein=0, tight=None)
Помещает в очередь указанные имена файлов на указанном канале. filenames Это может быть один файл или список файлов для воспроизведения. channel Канал для воспроизведения звука на указанном channel. loop Если принимает значение True, треки будут зациклены, пока они являются последними в очереди воспроизведения. clear_queue Если принимает значение True, то очередь очищается, что делает указанные файлы файлами, которые воспроизводятся, когда заканчивается воспроизведение текущего файла. Если принимает значение False, то эти файлы помещаются в конец очереди. В любом случае, если музыка не воспроизводится, эти файлы начинают немедленно воспроизводиться. fadein Количество секунд на постепенное увеличение громкости звука проигрываемой музыки, только в первом цикле. tight Если принимает значение True, то затухание будет переходить в следующий звук в очереди. Если установлено значение None, параметр принимает значение True, когда loop=True, иначе значение False. Функция очищает флаг паузы для channel.
renpy.music.register_channel (name, mixer=None, loop=None, stop_on_mute=True, tight=False, file_prefix=, file_suffix=, buffer_queue=True, movie=False, framedrop=True)
renpy.music.set_pan (pan, delay, channel=’music’)
renpy.music.set_pause (value, channel=’music’)
Устанавливает флаг паузы для channel с value. Если принимает значение True, воспроизведение на канале приостановится, иначе канал будет воспроизводиться как обычно.
renpy.music.set_queue_empty_callback (callback, channel=’music’)
Устанавливает функцию обратного вызова, которая вызывается, когда очередь воспроизведения пуста. Функция обратного вызова вызывается, когда очередь сначала становится пустой, и по крайней мере раз за взаимодействие с пользователем, пока очередь воспроизведения пуста. Функция обратного вызова вызывается без параметров. Она может помещать в очередь звуки, вызывая renpy.music.queue с соответствующими аргументами. Обратите внимание, что обратный вызов может быть вызван во время воспроизведения звука, если слот очереди пуст.
renpy.music.set_volume (volume, delay=0, channel=’music’)
Устанавливает громкость этого канала, как долю громкости микшера, управляющего каналом. volume Это число от 0.0 до 1.0, которое интерпретируется как доля громкости микшера для канала. delay Для изменения/уменьшения громкости со старого значения на новое требуется несколько секунд. Это значение сохраняется в сохраненных играх и участвует в откате. channel Канал, который будет установлен.
Ренпай музыка в главном меню
68) Добавление видео в стартовое меню
Заходим в файл script.rpy и вставляем туда такой текст перед label start:
init python:
style.mm_root.background = None
init:
#на весь экран
image movie = Movie(size=(config.screen_width, config.screen_height))
После чего добавляем строку в label start:
stop movie # без этого видео не остановится
Также важно, чтобы видео было в одном из этих форматов: https://www.renpy.org/doc/html/movie.html
69) Сжатие ресурсов (для версии 6.99.12 (в противном случае не поддерживает webp) и новее.)
А пока маленькая инструкция по ffmpeg:
Ffmpeg прописывает свой путь в папку bin, именно там находится главный исполняемый файл ffmpeg.exe и именно туда нужно скидывать всё, что нам надо сконвертировать.
-i файл — входящий файл. Его имя и расширение. Я задаю стандартное имя и расширение, так что вы можете переименовать всё сами или использовать решение с батниками.
«1.webp» — выходящий файл.
«newfiles/» — выходящая, УЖЕ СУЩЕСТВУЮЩАЯ, папка. Новую папку не создаёт и ругается, если её нет.
На самом деле ffmpeg очень функциональная программа, но пока она нужна нам только как конвертер.