公式doc
ja.renpy.org
1.音楽ファイルの定義
init python: music_room = MusicRoom(fadeout=1.0) music_room.add("audio/ukuk00.ogg", always_unlocked=True) music_room.add("audio/machi1.ogg", always_unlocked=True) music_room.add("audio/kaiz.ogg", always_unlocked=True) music_room.add("audio/wawawa.ogg", always_unlocked=True) music_room.add("audio/ukiwa0.ogg", always_unlocked=True) music_room.add("audio/reee00.ogg", always_unlocked=True) music_room.add("audio/zaz01.ogg", always_unlocked=True) music_room.add("audio/hero00.ogg", always_unlocked=True) music_room.add("audio/yogaku.ogg", always_unlocked=True) music_room.add("audio/011pf00.ogg", always_unlocked=True) music_room.add("audio/koko.ogg", always_unlocked=True)
これはoptions.rpyでもscreen.rpy内でもどこでも書いてよし
always_unlocked=True:Trueにすると常にアンロックされた状態になる。
ゲーム内で再生されてからアンロックしたい場合はFalse、
またはmusic_room.add~にこの文を記載しない(デフォルトがFalseのため)
music_room.add内はaction(https://ja.renpy.org/doc/html/screen_actions.html)も使えるので
再生されると変数をオンにする仕組みを作って同時に説明文(解説、本編で流れる箇所、借りた元のURL表示など)を表示することができそう
再生と同時に説明文を表示する例
init python: koko = False music_room.add("audio/koko.ogg", action=ToggleVariable("koko", true_value=True, false_value=False) screen music_room: textbutton _("地球は丸いね") action music_room.Play("audio/koko.ogg") if koko == True: text _("説明文")
2.サウンドモードの画面を作る
screen music_room(): on "show" action Hide("omake") key "mouseup_3" action Show("omake") style_prefix "music" add gui.game_menu_background vbox: xalign 0.1 yalign 0.5 textbutton _("ゴーストタウン") action music_room.Play("audio/ukuk00.ogg") textbutton _("町だよ") action music_room.Play("audio/machi1.ogg") textbutton _("幽霊船") action music_room.Play("audio/kaiz.ogg") textbutton "kitten in the kitchen" action music_room.Play("audio/wawawa.ogg") textbutton _("歩くのはやいよ") action music_room.Play("audio/ukiwa0.ogg") textbutton _("心残り") action music_room.Play("audio/reee00.ogg") textbutton _("静かな情熱") action music_room.Play("audio/zaz01.ogg") textbutton _("誘蛾灯") action music_room.Play("audio/hero00.ogg") textbutton _("カントリー・ファミリー") action music_room.Play("audio/yogaku.ogg") textbutton "home" action music_room.Play("audio/011pf00.ogg") textbutton _("地球は丸いね") action music_room.Play("audio/koko.ogg") vbox: xalign 0.55 yalign 0.5 textbutton _("▲ 前の曲") action music_room.Previous() null height 10 textbutton _("▼ 次の曲") action music_room.Next() null height 15 textbutton _("ランダム再生") action music_room.RandomPlay() null height 10 textbutton _("シャッフルオン") action music_room.ToggleShuffle() null height 25 $ musi = _preferences.get_volume('music') text _("BGM音量 [musi:.0%]") null height 5 bar value Preference("music volume") vbox: xalign 0.8 yalign 0.5 textbutton "BACK": action Show("omake") text_size 35 on "replace" action music_room.Play() on "replaced" action Play("music", "audio/ukuk00.ogg") style music_button is button style music_button_text is button_text style music_slider is gui_bar: xsize 250 style music_button: activate_sound "audio/se_akch.ogg" style music_button_text: text_align 0.5 xalign 0.5 yalign 0.6 size 25 line_spacing 10
textbutton以外にもimagebuttonとかimagemapとかでもできるはず
音楽再生中は再生してる曲のボタンが押せなくなりinsensitive設定で表示される
on "show" action Hide("omake") key "mouseup_3" action Show("omake")
このスクリプトは表示されたと同時に前の画面を消す命令
右クリックで前の画面に戻るようにしてる
別のボタンを押すときややラグあり?(仕様かも)
3.完成図
(23/01/31)変数名だだかぶり悲劇発見伝したのでmrからmusic_roomへ 被らなそうな長ったらネームにしました