こんにちは、みやびのです。
今回はPythonistaでSE(サウンドエフェクト)やBGMを再生する方法について紹介します。
具体的には以下の通りです。
・Pythonista+soundで音声を再生する方法
・【実装例】Pythonista+sceneのゲームに音声を追加する
Pythonistaでは音声データさえあれば簡単な処理でBGMやSEを再生することができます。
本記事を参考にしてsoundライブラリの使い方をマスターしておきましょう。
目次
Pythonista+soundで音声を再生する方法
音声の再生関数「play_effect()」の概要
音声を再生する場合は「sound」ライブラリの関数「play_effect()」を使用します。
「play_effect()」の主なパラメータは以下の通りです。
パラメータ名 | 概要 |
name | 音声データ |
volume | 音のボリューム |
pitch | 音声のスピード |
pan | 音の方向設定。-1.0~1.0で指定。0.0が中央。-1.0が左寄り、1.0が右寄り |
looping | 音声のループ設定。Trueの場合は音声を繰り返す。Falseの場合は一度だけ鳴らす |
最低限指定が必要なものは「name」(音声データ)のみです。
「looping」をTrueにすると音声を繰り返し流すことができます。
「pan」では音を出す方向を指定します。
通常の再生方法ではわかりにくいですが、イヤホンやヘッドホンをすると確認しやすいです。
◆通常再生
◆右寄せ再生
◆左寄せ再生
音声の停止関数「stop_effect()」の使い方
loopingがTrueの場合やBGMを再生している場合はstop_effect()関数を使用することで音声を停止できます。
1 2 | p = play_effect(name='xxxxx') stop_effect(p) |
stop_all_effects()で全ての音声を停止することができます。
音声ファイルの挿入方法
nameに使用する音声ファイルは+ボタンから追加可能です。
音声を選択すると代替テキストが挿入されます。
再生ボタンを押すことで音声の確認が可能です。
ファイルから読み込むことも可能です。
【実装例】Pythonista+sceneのゲームに音声を追加する
SE(サウンドエフェクト)の実装例
画面をタッチした時にSEを鳴らす実装例です。
touch_began()の処理に追加すればタッチした時に音声を追加することができます。
1 2 3 4 5 6 7 | from scene import * from sound import * class MyScene (Scene): def touch_began(self, touch): se = play_effect('game:Jump') if __name__ == '__main__': run(MyScene(), show_fps=False) |
BGMの実装例
BGMを流す場合の実装例です。
setup()で「looping=True」でplay_effect()を実行します。
1 2 3 4 5 6 7 8 | from scene import * from sound import * class MyScene (Scene): def setup(self): bgm = play_effect('xxxxxxx', looping=True) if __name__ == '__main__': run(MyScene(), show_fps=False) |
以上、Pythonistaで音声を追加する方法でした。
Pythonistaまとめ>>Pythonistaの使い方まとめ
おすすめ記事>>Python+Open JTalkで音声を操作する方法