Pcm3DAudio リファレンス
バージョンに関する注意
v1.2.3以降を使用することをおすすめします。
今後、予告のない仕様変更が生じる場合があります。
このクラスは、Minecraftクライアント上でOpenALを利用し、PCM音声を3D空間に配置して再生する機能を提供します。
音はプレイヤーの位置・向きに応じて定位され、距離による減衰も適用されます。
呼び出し方法【チュートリアル】
例えばplay(pcm, sampleRate, x, y, z): intを呼び出したい場合、このPcm3DAudioクラスをインポートしてからPcm3DAudio.play(pcm, sampleRate, x, y, z);と入力し呼び出すことができます(引数は変えて下さい)。
ほかのメソッドでも同じ形です。
戻り値が必要な場合は、: intなどを確認し、以下のようにします。
int int_value = Pcm3DAudio.play(pcm, sampleRate, x, y, z);
これで、int_valueにPcm3DAudio.play(pcm, sampleRate, x, y, z);の戻り値が代入されます。
パッケージ名:nest.addon.mtrante.patch.audio
クラス名:Pcm3DAudio
play(pcm, sampleRate, x, y, z): int
指定したPCM音声を、ワールド座標 (x, y, z) に配置された音源として再生します。
挙動
- 音は3D空間に存在するため、プレイヤーの位置や向きによって聞こえ方が変化します
- 音源に近づくと大きく、離れると小さくなります(距離減衰)
- 音源は単一チャンネル(モノラル)である必要があります
- 再生は即座に開始されます
戻り値
- 再生中の音源ID(後から停止・更新・削除に使用)
updateSource(sourceId, x, y, z): void
既存の音源の位置を更新します。
挙動
- 音源が移動する場合に使用します(例:動く列車、エンティティ)
- プレイヤーとの相対位置に応じて、リアルタイムで聞こえ方が変化します
stopAndDelete(source): void
音源の再生を停止し、完全に削除します。
挙動
- 再生中の音は即座に停止します
- 関連するリソースも解放され、再利用できなくなります
- 呼び出さないとリソースが残り続け、長時間動作時に影響が出る可能性があります
setVolume(source, volume): void
音源の音量を変更します。
挙動
- 指定した音源の音量が即座に変化します
- 0に近づけると無音に、1で通常音量になります
update(source, pcm, sampleRate): void
音源に新しいPCMデータを追加し、ストリーミング再生を行います。
挙動
- 音声データを継ぎ足しながら連続再生が可能になります
- 再生済みデータは自動的に破棄されます
- 再生が止まっていた場合、自動で再開されます
- リアルタイム音声(TTSや通信音声)に適しています
clearQueue(source): void
音源に溜まっている再生待ちデータを削減します。
挙動
- 古い音声データを破棄し、遅延を減らします
- リアルタイム性を重視する場合に有効です
createSource(x, y, z): int
指定位置に空の音源を作成します。
挙動
- 音はまだ再生されません
- 後から
update()を使って音声を流し込むことで再生可能です - 距離減衰などの設定は初期状態で適用されています
戻り値
- 作成された音源ID
補足
- このシステムは「プレイヤー=リスナー」として動作します
- 音源はワールド座標に固定または移動可能です
- ストリーミング再生を利用することで、長時間の音声やリアルタイム音声にも対応できます
想定用途
- 動画から取得したPCM配列(
short[]であること)をゲーム上で再生する