オーディオ

Pyxenは2種類のオーディオに対応しています:短いエフェクト用のサウンドと長いトラック用のミュージック。どちらもコンポーネントとしてエンティティにアタッチされます。

サウンド

Soundは短いオーディオクリップ — ジャンプ、ヒット、コインの取得など。Soundコンポーネントを持つエンティティを生成してサウンドを再生します:

world.spawn(sound=Sound("jump"))

サウンドは即座に再生されます。再生プロパティを制御できます:

world.spawn(sound=Sound("laser", loop=True, gain=0.5, pan=-0.5))
プロパティ意味
loopサウンドを繰り返すかどうか
gain音量(0.0 = 無音、1.0 = 最大)
panステレオ位置(-1.0 = 左、0.0 = 中央、1.0 = 右)

サウンドはプロジェクトアセットのオーディオファイルから読み込まれます。

ミュージック

MusicはSoundと同様に動作しますが、長いトラック向けに設計されています。Musicは完全にメモリに読み込むのではなく、ストリーミング再生されます:

world.spawn(music=Music("theme", loop=True))

Musicはloopgainpanと同じプロパティに対応しています。

コンポーネントとしてのオーディオ

オーディオはエンティティにアタッチされるため、他のすべてと同じ方法で管理します:

# BGMを開始
bgm = world.spawn(name="bgm", music=Music("overworld", loop=True))

# 後で停止
world.destroy(bgm)

これはECSモデルに自然に適合します — オーディオはエンティティ上の単なるもう1つのコンポーネントであり、フレームインスペクタで他のすべてと同様に確認できます。

サポートフォーマット

Pyxenのアセットマネージャーを通じてプロジェクトにオーディオファイルを追加します。

完全なAPIはSoundMusicを参照してください。