Audio
概要
Audio は、Minecraft のサウンドの上に、小さなミキサーを追加します。この拡張機能を通じて再生されるすべてのサウンドは、5 つのレイヤー、MASTER、MUSIC、AMBIENT、SFX、VOICE のいずれかに属します。各プレイヤーは、レイヤーごとに音量(0.0 から 1.0)を持ち、拡張機能はサウンドを再生するとき、レイヤーの音量にマスター音量を掛け合わせます。音量はプレイヤーごとに保存されるため、設定は再接続後も維持されます。
ミキサーに加えて、Protection のリージョンに結び付けた環境音ゾーン、タイミング付きのサウンドシーケンス、ファクトに反応するダイナミックなミュージックトラック、ダイアログ用の「タイピングボイス」プロファイル、プレイヤーが自分の音量を調整できるゲーム内メニューが利用できます。
この拡張機能は、BTC ビルドの TypeWriter(BTC Core、Paper/Folia)上で動作し、ここでは参考情報として文書化されています。メニューのエントリは、GUI 拡張機能の上に作られています。
機能
- 5 つのオーディオレイヤー —
MASTER、MUSIC、AMBIENT、SFX、VOICE。それぞれにプレイヤーごとの音量があります。 - 保存される音量 — Player Audio Volume アーティファクトが、全プレイヤーの設定を保存します。
- 環境音ゾーン — プレイヤーが Protection のリージョン内に立っている間、サウンドを再生します。ゾーンが重なる場合は優先度が使われます。
- サウンドシーケンス — 1 つのアクションから、複数のサウンドを、選んだ遅延で発火します。
- ダイナミックミュージック — ベースのトラックを開始し、ファクトの値に応じて追加レイヤーをオン/オフします。
- ダイアログボイス — 入力される文字ごとに 1 つのサウンドを再生します。母音、句読点、スペースには別のサウンドを使え、ピッチにランダムな揺らぎも加えられます。
- 音量アクション — プレイヤーのレイヤー音量を、即座に、または段階的に変更して設定します。
- 設定メニュー — プレイヤーが各レイヤーを上げたり、下げたり、ミュートしたりできる GUI。独立したメニューとして、または任意の GUI ページ内のボタンとして使えます。
インストール
- GUI 拡張機能をインストールします。Audio 拡張機能はそれに対してビルドされており、設定画面にそのメニューシステムを使います。
- 環境音ゾーンを使いたい場合は、Protection 拡張機能をインストールし、それでリージョンを作成します。
- Audio の JAR を
plugins/Typewriter/extensions/に置き、サーバーを再起動します。 - 独自のサウンドは、これまでどおり再生します。カスタムサウンドはリソースパックから提供され、拡張機能は、サウンド ID でそれらを再生するだけです。
はじめに
森のリージョンにループするような環境音を追加し、プレイヤーに音量メニューを提供する手順です。
- TypeWriter の Web パネルで、Protection 拡張機能を使ってリージョンを作成し、そのエントリ ID を控えます。
- static ページを開き、Ambient Sound Zone エントリを追加します。
protectionRegionIdを、リージョンエントリの ID に設定し、soundを選び、layerはAMBIENTのままにします。- manifest ページに Player Audio Volume アーティファクトを追加し、音量が保存されるようにします。
- Audio Settings Menu アクションを追加します。
layoutPoolでレイアウトを作り、mainLayoutIdを設定して、タグがaudio_button:AUDIO_LAYER:MASTER、audio_button:AUDIO_LAYER:MUSICなどのアイテムを配置します(レイヤー名は大文字で書きます)。 menuでそのメニューを指す Open Audio Settings アクションを追加し、NPC のダイアログの選択肢、コマンド、アイテムからトリガーします。- パブリッシュし、リージョンに入ってから、メニューを開いて音量をテストします。
フェードはサポートされていません。Minecraft は、すでに再生中のサウンドの音量を変更できないため、fadeIn と fadeOut は何も行いません。サウンドは最大音量で始まり、すぐに停止します。フィールドはゾーン、シーケンス、ダイアログプロファイルに残っていますが、値を変えても何も変わりません。同様に、looping は実装されていません。サウンドは 1 回だけ再生され、繰り返されないため、ゾーンに対して十分な長さのサウンドを使ってください。
仕組み
環境音ゾーン、サウンドシーケンス、ダイアログプロファイル、Dynamic Music Track はすべてミキサーを通るため、そのレイヤーのプレイヤーの音量に従います。サウンドは最終的な音量で直接始まります。サウンド自体の音量に、レイヤーの音量(マスター音量を含む)と、エントリごとの係数(環境音ゾーンの zoneVolume、シーケンスのセグメントの volumeOverride)を掛けた値です。Minecraft は再生中のサウンドの音量を変更できないため、後から変更したレイヤーの音量は、変更後に開始したサウンドにのみ適用されます。
メニュー
Audio Settings Menu は、GUI エントリです。そのフィールド(inventoryTitle、inventoryRows、guiType、layoutPool、mainLayoutId、audio)は、GUI 拡張機能と同じように動作します。Audio は、特別なボタンを追加します。レイアウトのアイテムに、audio_button: に続けてボタンタイプを付けたタグを設定します。
| ボタンタイプ | 動作 |
|---|---|
AUDIO_LAYER:<LAYER> | レイヤー(たとえば AUDIO_LAYER:MASTER)を、そのアイコン、パーセンテージ、10 段階のバーとともに表示します。左クリックで 10 パーセント上げ、右クリックで 10 パーセント下げ、Shift + 左クリックでレイヤーをミュートまたは復元します。 |
AUDIO_CLOSE | メニューを閉じます。 |
タグは audio_button:<TYPE>:<LAYER> として読み取られます。実際には、AUDIO_LAYER:<LAYER> が使うべきボタンです。AUDIO_VOLUME_UP、AUDIO_VOLUME_DOWN、AUDIO_LAYER_MUTE のタイプも認識されますが、レイヤーを同じ方法で指定した場合(たとえば audio_button:AUDIO_VOLUME_UP:MUSIC)にのみ動作し、その場合は AUDIO_LAYER:MUSIC とまったく同じ表示になります。3 つのクリックすべてが、常に利用できます。
ボタンはすべての GUI ページに登録されるため、Audio Settings Menu だけでなく、一般的な「設定」メニューにも配置できます。生成されるレイヤーのアイテムは、フランス語の表示名とロア(「Volume general」、「Musique」、「Clic gauche」)を使います。これらのテキストは、拡張機能内で固定されています。
プレイヤーは、起動時に登録される、audio_button という名前の内部コマンドを通じて、音量を変更します。手で入力するためのものではなく、それ自体の権限チェックはありません。
設定
この拡張機能には設定ファイルがありません。音量は、Player Audio Volume アーティファクト(artifactId のデフォルトは player_audio_volumes)を通じて保存されます。変更は、最後の変更の約 5 秒後と、TypeWriter がアンロードされるときに書き込まれます。パブリッシュ済みのページにこのアーティファクトがない場合、音量はメモリ上にしか存在せず、プレイヤーが退出すると失われます。
エントリ
8 件のエントリー(拡張機能のソースから生成)。
アクション5
- Audio Settings MenuAudio Settings Menu
- Dynamic Music TrackMusic track that reacts to game facts
- Open Audio SettingsOpen Audio Settings Menu
- Set Master VolumeSet the master or layer volume for a player
- Sound SequenceA sequence of sounds to play
アーティファクト1
- Player Audio Volume ArtifactStores per-player audio layer volumes
定義2
- Ambient Sound ZonePlay ambient sound in a region
- Dialogue Audio ProfileAudio profile for dialogue typing sounds
トラブルシューティング
環境音ゾーンが何も再生しない。 ゾーンは、Protection 拡張機能のリージョンの ID である protectionRegionId と照合されます。worldGuardRegionId は、protectionRegionId が空の場合にのみ読み取られ、WorldGuard プラグインが必要です。どちらもないゾーンは、決して一致しません。また、sound が空でないこと、そしてプレイヤーがリージョン内で実際にブロックの境界をまたいでいることも確認してください。ゾーンは、プレイヤーが別のブロックに移動したときにチェックされるためです。
ダイアログボイスがまったく再生されない。 リスナーが開始されるのは、話し手の sound が、ID がプロファイルの ID であるエントリを指しており、そのエントリがサウンド ID エントリとしても見つかる場合だけです。Dialogue Audio Profile エントリは、単純な static エントリなので、頼る前に短いダイアログでテストしてください。テキストが空、または長さが 0 のダイアログは、スキップされます。
再接続後に音量の変更が失われる。 パブリッシュ済みのページに、Player Audio Volume アーティファクトを追加してください。これがないと、何も保存されません。
メニューのボタンが何もせず、通常のアイテムのまま表示される。 タグは audio_button: で始まり、大文字で書かれたレイヤー名で終わる必要があります。例: audio_button:AUDIO_LAYER:SFX。有効なレイヤーがない場合、アイテムは設定したままになります。
設定メニューが開かない。 メニューは GUI 拡張機能の上に作られています。インストールされていること、Open Audio Settings アクションの menu フィールドが設定されていることを確認してください。
関連する拡張機能
- GUI — 設定メニューが使う、メニューのレイアウトとアイテム。
- Protection — 環境音ゾーンを動かすリージョン。