렌파이에서는 아래의 오디오 파일 형식을 사용하는 음악이나 표과음을 백그라운드에서 재생할 수 있습니다.
또한 수 많은 오디오 채널도 지원합니다. 기본적으로 세 가지 채널이 정의되어 있습니다.:
새 채널은 renpy.music.register_channel()
함수로 등록할 수 있습니다.
인게임 환경설정 메뉴에 있는 '배경음 크기 ', '효과음 크기', '음성 크기' 설정은 이 세 가지 채널의 소리 크기를 따로 설정하기 위해 사용됩니다.
버튼, 선택지, 이미지맵에 접근할 때에
효과음이 재생되도록 설정할 수도 있습니다. 자세한 내용은
Button Style Properties 를 참고하세요.
config.main_menu_music
과 config.game_menu_music
설정 변수로
메인 메뉴와 게임 메뉴에서 재생시킬 음악 파일을 지정할 수도
있습니다.
렌파이 게임 내에서 음악이나 효과음을 재생하는 방법은 음악/효과음과 연관 있는 세 가지 명령문을 사용하는 것입니다.
play문은 효과음과 음악을 재생합니다. 어떤 소리 파일이 현재 재생 중이라면 재생을 중단시키고 새 파일을 재생합니다.
play
키워드 다음에는 채널 이름을 입력해야 합니다.
(보통 채널 이름은 "sound", "music" 또는 "voice" 가운데 하나입니다.) 이 다음에는
소리 파일 이름 하나 혹은 파일 이름을 리스트 형태로 적어야 합니다.
리스트를 입력하면, 리스트에 적힌 순서대로 파일이 재생됩니다.
fadein
과 fadeout
절을 입력하는 것은 선택입니다. fadeout 절에는
현재 재생하는 음악의 크기가 서서히 줄어들어 종료할 때까지 소모되는 시간을 초 단위로 입력해야 하며
fadein 절에는 새로운 음악이 서서히 음량을 키워가며 재생되기까지 소모되는 시간을
입력해야 합니다. fadeout 절을 입력하지 않으면 config.fade_music 의 값을 사용합니다.
loop
와 noloop
절 입력도 선택입니다. loop 절은 음악을
반복 재생시키고 noloop 절은 음악을 한 번만 재생시킵니다. 두 절 모두 입력하지 않았다면
반복 여부는 해당 채널의 기본값에 따라 결정됩니다.:
play music "mozart.ogg"
play sound "woof.mp3"
play myChannel "punch.wav" # 'myChannel' 채널은 renpy.music.register_channel() 로 정의해야 합니다.
"효과음의 리스트나 음악을 재생할 수도 있어."
play music [ "a.ogg", "b.ogg" ] fadeout 1.0 fadein 1.0
stop 명령문은 stop
키워드로 시작하며 그 다음에는 소리 재생을 중단시킬
채널 이름을 적어야 합니다. fadeout
절을 추가로
입력할 수 있습니다.
stop sound
stop music fadeout 1.0
queue문은 소리 파일을 대기열에 추가할 때 사용합니다. 지정한 채널에서 재생 중인 파일이 재생을 종료한 다음에 재생되도록 합니다.
queue문은 queue
키워드로 시작하며 그 다음에는 음악을
재생할 채널 이름을 적어야 합니다. 추가로 loop
와 noloop
절을 받습니다.
queue sound "woof.ogg"
queue music [ "a.ogg", "b.ogg" ]
이 명령문을 사용해서 얻을 수 있는 이점은 프로젝트에 없는 효과음 파일과 음악 파일을 오류 검사를 할 때 검색한다는 점입니다. 아래 항목에 적힌 함수들로는 파이썬으로 음악과 효과음에 접근할 수 있으며 (자주 사용하지 않는) 상급 기능들을 활용할 수 있습니다.
renpy.
seen_audio
(filename)¶지정한 파일이 현재 사용자의 시스템에서 한 번이라도 재생된 적이 있다면 True를 반환한다.
renpy.music.
get_playing
(channel='music')¶지정한 채널에서 재생 중인 음악 파일이 있다면 해당 파일 이름을 반환한다. 그 외에는 None을 반환한다.
renpy.music.
is_playing
(channel='music')¶지정한 채널에서 현재 음악을 재생하고 있다면 True를 반환하며, 사운드 시스템이 작동하지 않거나 음악 재생 중이 아니라면 False를 반환한다.
renpy.music.
play
(filenames, channel='music', loop=None, fadeout=None, synchro_start=False, fadein=0, tight=None, if_changed=False)¶지정한 채널에서 재생 중인 파일을 중지시키고, 대기열에 있는 모든 음악을 대기 해제한 다음에, 지정한 파일(들)을 재생시킨다.
renpy.music.
queue
(filenames, channel='music', loop=None, clear_queue=True, fadein=0, tight=None)¶지정한 채널에 지정한 파일들을 대기열에 추가시킨다.
renpy.music.
register_channel
(name, mixer=None, loop=None, stop_on_mute=True, tight=False, file_prefix='', file_suffix='', buffer_queue=True)¶name 이라는 이름으로 새로운 소리 채널을 등록한다. play 또는 queue 명령문에 채널 이름을 적으면 소리를 해당 채널에서 재생시킬 수 있다.
renpy.music.
set_pan
(pan, delay, channel='music')¶지정한 채널에서 소리가 재생되는 위치를 이동시킨다.
renpy.music.
set_queue_empty_callback
(callback, channel='music')¶대기열이 비었을 때 호출될 콜백을 설정한다. 이 콜백은 대기열이 비었을 때 처음으로 호출되어, 대기열이 비어있는 동안에는 인터렉션마다 호출된다.
콜백은 아무런 매개변수 없이 호출된다. renpy.music.queue 에 적당한 인수를 적어 호출하면 재생할 소리 파일을 대기열에 추가할 수 있다. 대기열이 비어있기만 하다면 소리가 재생되고 있다 하더라도 콜백이 호출될 수 있다는 점을 기억해야 한다.
renpy.music.
set_volume
(volume, delay=0, channel='music')¶지정한 채널의 음량을 설정한다. 해당 채널에서 음량을 제어할 때 사용하는 음량 조절기의 값을 비율로서 음량을 지정한다.
renpy.music.
stop
(channel='music', fadeout=None)¶재생 중인 음악을 종료하고 대기열에 추가된 모든 음악을 대기열에서 제거한다. fadeout 이 None이라면 음악을 페이드할 때 소요될 시간은 config.fade_music 에 설정된 시간을 따르며, 그 외에는 fadeout에 지정한 시간만큼 페이드아웃한다.
이 함수는 마지막으로 대기열에 추가된 파일을 None으로 설정한다.
renpy.music 함수로 사용할 수 있는 기능 대부분은 renpy.sound 함수에서도 사용할 수 있습니다. 차이점으로는 renpy.sound가 music 채널이 아닌 sound 채널을 기본적으로 사용하고, 소리 파일을 반복 재생하지 않는다는 점이 있습니다.