※当サイトのリンクには広告が含まれています。

【Pyxelでゲーム開発】サンプルのソースコードからPyxelを知る4(04_sound_api.pyの解説)

Pyxel

Pyxelでは9個のサンプルが用意されています。

これらのサンプルのソースコードを理解することで、Pyxelでのゲーム開発をどのようにすれば良いのかがわかってきます。

本記事では、そのサンプルについて解説しています。

今回は、4つ目のサンプルについて解説します。

スポンサーリンク

04_sound_api.pyはどんなサンプル?

04_sound_api.pyを実行すると、下の画像のようにsoundのAPIの説明画面とともにBGMが流れ始めます。

このサンプルできる操作はキーボードの数字キーを押すことで、チャンネルの操作ができます。
2を押すと、メロディー部分のみが演奏され、3を押すとベース音のみ、4を押すとドラムのみというふうになっています。
5を押すと、演奏が止まります。

スポンサーリンク

04_sound_api.pyのソースコード解説

では、ソースコードの解説をしていきます。

これまで通り、全てのソースコードはここには載せないので、各自エディタで確認してください。

またこれまでに解説した内容については、割愛することがあります。

04_sound_api.pyの構成

今回のサンプルはコンストラクタ(__init__メソッド)、updateメソッド、drawメソッドの基本的なもにplay_musicメソッドがある構成になっています。
構成自体はシンプルなので、わかりやすいかと思います。

__init__メソッド(コンストラクタ)

25行目~31行目

pyxel.sound(0).set(
    "e2e2c2g1 g1g1c2e2 d2d2d2g2 g2g2rr" "c2c2a1e1 e1e1a1c2 b1b1b1e2 e2e2rr",
    "p",
    "6",
    "vffn fnff vffs vfnn",
    25,
)

今回のサンプルはサウンドエディタからデータをロードするのではなく、このsound.setで音楽データを打ち込んでいます。
ここで作成したサウンドデータをplay_musicメソッドの方で呼び出して音楽再生するようになっています。

第1引数は音程になります。

"e2e2c2g1 g1g1c2e2 d2d2d2g2 g2g2rr" "c2c2a1e1 e1e1a1c2 b1b1b1e2 e2e2rr"

はフレーズになるわけですが、2文字で1つの音階を表しています。

第2引数は、音色になります。
pyxelで使用できる音色は4種類あります。
Triangle、Square、Pulse、Noiseがあり、その頭文字で設定します。

第3引数は音量です。
音量は0~7まであります。

第4引数はエフェクトです。
Pyxelで使用できるエフェクトは4種類あります。
None、Slide、Vibrato、FadeOutがあり、その頭文字で設定します。

第5引数はスピードです。

play_musicメソッド

BGM再生の制御をしているメソッドになります。

updateメソッドでキーボードのどのキーを押したかによって、再生する音楽をコントロールしています。

67行目

pyxel.play(0, [0, 1], loop=True)

第1引数は、チャネルの設定です。

第2引数は、サウンドの設定です。
ここでは、[0,1]という設定をしているので、サウンド0で作成している25行目~31行目とサウンド1で作成している33行目~39行目のデータを使用する設定になっています。

第3引数は、ループ再生の設定です。
ループ再生する場合は、このサンプルの通りloop=Trueを設定する必要があります。

スポンサーリンク

まとめ

今回は、サウンドのAPIのデモである04_sound_api.pyについて解説しました。

ゲームに華を添えるサウンドは大切なものです。

ぜひとも公式サイトも確認しながら、APIの使い方をマスターしましょう。


Pyxel
スポンサーリンク
toniemonをフォローする

コメント