オーディオ
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はloop、gain、panと同じプロパティに対応しています。
コンポーネントとしてのオーディオ
オーディオはエンティティにアタッチされるため、他のすべてと同じ方法で管理します:
# BGMを開始
bgm = world.spawn(name="bgm", music=Music("overworld", loop=True))
# 後で停止
world.destroy(bgm)
これはECSモデルに自然に適合します — オーディオはエンティティ上の単なるもう1つのコンポーネントであり、フレームインスペクタで他のすべてと同様に確認できます。
サポートフォーマット
- サウンド:WAV
- ミュージック:OGG Vorbis
Pyxenのアセットマネージャーを通じてプロジェクトにオーディオファイルを追加します。