Звук (аудио)
Съдържание
Ren'Py поддържа фонова музика и звукови ефекти, използвайки следните аудио файлови формати:
- ОПУС
- OGG Vorbis
- MP3
- WAV (само некомпресиран PCM)
Ren'Py поддържа произволен брой аудио канали. Има три стандартни канала, дефинирани по подразбиране:
- музика - канал за възпроизвеждане на музика.
- sound - канал за звукови ефекти.
- voice - канал за гласово озвучаване.
Стандартните канали поддържат възпроизвеждане и опашка, но възпроизвеждат само по един аудио файл наведнъж. Нови стандартни канали могат да бъдат регистрирани с renpy.music.register_channel().
Опциите на менюто с настройки в играта „Сила на звука на музиката“, „Сила на звука на звука“ и „Сила на звука на гласа“ се използват за регулиране на индивидуалната сила на звука за горните канали.
В допълнение към стандартния канал има още един специален канал - аудио. Аудио каналът поддържа възпроизвеждане на множество аудио файлове едновременно, но не поддържа опашка или спиране на възпроизвеждането.
Звуците също могат да бъдат конфигурирани да се възпроизвеждат, когато бутони, селекции от менюта или карти на изображения са в неактивно или активирано състояние. Вижте раздела Свойства на стила на бутона.
Две конфигурационни променливи, config.main_menu_music и config.game_menu_music, позволяват определените музикални файлове да се възпроизвеждат както в главното меню, така и в менюто на играта.
В игрите, създадени с Ren'Py, обичайно е да се възпроизвежда музика или звук, като се използват трите инструкции за музика/звук по-долу.
изявление за игра (изявление за възпроизвеждане) [редактиране]
изявление за играизползвани за възпроизвеждане на звук и музика. Ако даден файл се възпроизвежда в момента на стандартния канал, той ще бъде прекъснат и заменен с нов файл.
Очаква се ключовата думаplayда бъде последвана от името на канала, обикновено "звук", "музика", "глас" или "аудио". Следва аудио файлът, където аудио файлът може да бъде един файл или списък от файлове. Когато е даден списък, елементите в него се играят по ред.
Параметритеfadeinиfadeoutне са задължителни. Fadeout дава времето, през което музиката се възпроизвежда, за да заглъхне (в секунди), докато fadein дава времето, необходимо на нов аудио файл да заглъхне. Ако fadeout не е указано, се използва config.fade_music.
Параметритеloopиnoloopсъщо не са задължителни. Loop кара музиката да се повтаря, докато noloop кара музиката да се възпроизвежда само веднъж. Ако и двата параметъра не са посочени, се използва стойността по подразбиране за текущия канал.
В аудиоканала множество инструкции за възпроизвеждане възпроизвеждат множество звуци едновременно:
Изявление за спиране [редактиране]
Инструкцията за спиране започва с ключовата думаstop, последвана от името на канала, за да спре звука на този канал. Инструкцията за спиране може да включва незадължителен параметър за изчезване.
Изявление за опашка [редактиране]
Изявлението за опашка се използва за поставяне на аудио файлове на опашка. Те ще се възпроизведат веднага щом каналът приключи възпроизвеждането на възпроизвеждания файл.
Изявлението за опашка започва с ключовата думаqueue, последвана от името на канала, на който да се възпроизвежда аудио. Изявлението за опашката може по избор да използва цикъла иnoloop.
Предимството на използването на горните твърдения е, че вашата програма ще бъде проверена за липсващи звукови и музикални файлове, когато се изпълнява контрол на качеството на кода.
Функциите по-долу съществуват, за да осигурят достъп до музика и звук, които ще се управляват от Python, и да изложат допълнителни (рядко използвани) функции.
Частично възпроизвеждане [редактиране]
Ren'Py поддържа частично възпроизвеждане на аудио файлове. Това се постига чрез поставяне на спецификацията за възпроизвеждане, оградена в ъглови скоби, в началото на файла. Спецификацията за частично възпроизвеждане трябва да се състои от име на свойство на променлива и двойка стойности, разделени с интервали с всеки елемент.
Стойностите винаги се интерпретират като брой секунди от началото на файла.
По-долу са три свойства:
от Указва позицията във файла, където започва първото възпроизвеждане (по подразбиране 0,0 секунди). to Указва позицията във файла, където ще завърши възпроизвеждането на файла (по подразбиране, цялата дължина на файла). loop Указва позицията във файла, в която започва възпроизвеждането на втория и следващите цикли (по подразбиране е началният час, даден отот, ако свойството е посочено, или времето, посочено преди началото на файла).
Кодът ще възпроизведе 10,5 секунди от waves.opus, започвайки от знака 5 секунди.
Ще възпроизведе song.opus веднъж от началото до края, след което ще прескочи до знака 6,333 секунди, преди да възпроизведе файла отново от знака до края на файла.
Възпроизвеждане на мълчание [редактиране]
Зададеният интервал от време на пауза може да бъде възпроизведенкато използвате името на файла като „ “, където 3.0 е желаният брой секунди мълчание. Това може да се използва за забавяне на стартирането на аудио файл. Например:
Кодът ще възпроизведе тишина за половин секунда и след това ще възпроизведе звука на експлозията.
Пространството на аудио имената (Audio Namespace) [редактиране]
Операторите за възпроизвеждане и опашка оценяват своите аргументи в пространството на имената на звука. Това означава, че командата define може да се използва за създаване на псевдоним за аудио файл. Например, можете да напишете псевдоним в код:
и след това го използвайте по-късно така:
Функции [редактиране]
renpy.play(име на файл, канал=Няма, **kwargs)
Възпроизвежда звуков ефект. Акоchannelе зададено на None, тогава конфигурационната променлива config.play_channel е зададена по подразбиране. Функцията се използва за възпроизвеждане на звуците, дефинирани в стиловете hover_sound и activate_sound.
Връща True, ако посоченотоfilenameе възпроизведено поне веднъж на текущата система на потребителя.
Връща флага за пауза заканал.
Ако посочениятканалсе възпроизвежда, тогава функцията изчислява името на файла, който се възпроизвежда. В противен случай се връща None.
Връща True, ако каналът в момента възпроизвежда аудио, връща False, ако не се възпроизвежда аудио или системата от високоговорители не работи.
renpy.music.play(имена на файлове, channel='music', loop=Няма, fadeout=Няма, synchro_start=False, fadein=0, tight=Няма, if_changed=False)
Спира музиката, която в момента се възпроизвежда на номерирания канал, премахва всяка поставена в опашката музика от опашката за възпроизвеждане и започва да се възпроизвеждапосочения файл или файлове.имена на файловеТова може да бъде един файл или списък с файлове за възпроизвеждане.каналКаналът за възпроизвеждане на аудио на посоченияканал.loopАко е true, песните ще се повтарят, докато не станат последните в опашката за възпроизвеждане.заглъхванеАко не е None, това е времето в секунди за затихване на възпроизвежданата музика. В противен случай това време се взема от config.fade_music.synchro_startRen'Py ще се увери, че всички канали сsynchro_start, зададени на True, започват да се възпроизвеждат по едно и също време.Synchro_startтрябва да е True при възпроизвеждане на два аудио файла, които трябва да бъдат синхронизирани един с друг.fadeinБроят секунди за затихване на възпроизвежданата музика, само на първия цикъл.tightАко е True, тогава затихването ще покрие следващия звук в опашката. Ако е зададен на None, параметърът е True, когато loop=True, в противен случай False.if_changedАко е True и музикалният файл се възпроизвежда в момента, той няма да спре/изчезне и да изчезне отново, а вместо това ще продължи да се възпроизвежда. Параметърът винаги ще постави на опашка допълнителен цикъл от музика. Функцията изчиства флага за пауза заканал.
renpy.music.queue(имена на файлове, channel='music', loop=None, clear_queue=True, fadein=0, tight=None)
Подрежда посочените имена на файлове на посочения канал.имена на файловеТова може да бъде един файл или списък с файлове за възпроизвеждане.каналКаналът за възпроизвеждане на аудио на посоченияканал.loopАко е вярно, песните ще се повтарят, докато станат последните вопашка за възпроизвеждане.clear_queueАко е True, опашката се изчиства, което прави посочените файлове файловете, които се възпроизвеждат, когато текущият файл завърши възпроизвеждането. Ако се оцени като False, тогава тези файлове се поставят в края на опашката. Във всеки случай, ако не се възпроизвежда музика, посочените файлове започват да се възпроизвеждат веднага.fadeinБроят секунди за затихване на възпроизвежданата музика, само на първия цикъл.tightАко е True, тогава затихването ще покрие следващия звук в опашката. Ако е зададен на None, параметърът е True, когато loop=True, в противен случай False. Функцията изчиства флага за пауза заканал.
renpy.music.register_channel(име, mixer=None, loop=None, stop_on_mute=True, tight=False, file_prefix=, file_suffix=, buffer_queue=True, movie=False)
renpy.music.set_pan(pan, delay, channel='music')
Задава панорамирането на този канал.panЧисло между -1 и 1, което контролира как звукът се разполага в звуковото поле. Ако числото е -1, тогава целият звук се изпраща към левия канал. Ако е 0, тогава и двата канала са еднакво балансирани. Ако 1, тогава цялото аудио се изпраща към правилния канал.закъснениеВремето, необходимо за извършване на панорамиране.каналКаналът, на който се извършва панорамиране. Това може да бъде звуков или музикален канал. Най-често това е канал 7, музикалният канал по подразбиране.
Задава флага за пауза заканалсстойност. Ако е True, възпроизвеждането на канала ще спре, в противен случай каналът ще се възпроизвежда нормално.
Задава функция за обратно извикване, която се извиква, когато опашката за възпроизвежданепразен. Функцията за обратно извикване се извиква, когато опашката за първи път стане празна и поне веднъж на потребителско взаимодействие, докато опашката за възпроизвеждане е празна. Функцията за обратно извикване се извиква без параметри. Може да постави звуци на опашка, като извика renpy.music.queue със съответните аргументи. Моля, обърнете внимание, че функцията за обратно извикване може да бъде извикана по време на аудио възпроизвеждане, докато слотът в опашката е празен.
renpy.music.set_volume(сила на звука, закъснение=0, канал='музика')
Задава силата на звука на канала като част от силата на звука на миксера, управляващ канала.обемТова е число между 0,0 и 1,0 и се разбира като процент от силата на звука на миксера за канала.закъснениеПараметърът изисква закъснение от секунди чрез закъснение за промяна/затихване на силата на звука от старата стойност към новата. Тази стойност се записва в запазените игри и участва в връщането назад.каналКаналът за настройка.