コンテンツにスキップ

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_valuePcm3DAudio.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[]であること)をゲーム上で再生する