Files
mod_audio_base/docs/ja.md
T

8.8 KiB

Audio Engine — 音楽、効果音、環境音

Audio Engine はゲームに音の生命を吹き込みます。音楽は現在のシーンに付き従い、効果音はアクションに応じ、環境音のループが場所の空気を作ります。これらのレイヤーは音量調整が別々なので、インターフェースのクリックや環境の音を聞こえたまま、サウンドトラックだけを絞れます。

メニューとゲームが使う共有エンジン MOD です。通常あなたが Audio Engine 自体を開いたり操作したりすることはありません。ゲームがオーディオファイルを提供し、再生を頼む側です。

三つの再生チャンネル:シーンのプレイリストが音楽へ、アクションの効果音が効果音へ、シーンの環境ループが環境音へ流れます。各チャンネルには音量と有効設定があります。

聞こえるもの

  • 音楽: シーンのプレイリストが曲を供給します。曲が終わるとプレイヤーが次を選び、ほかに選択肢があれば直前の曲は避けます。一曲だけのリストはその曲を繰り返します。
  • 効果音: インターフェースのクリックや戦闘アクションのような短い効果音です。別々の音カテゴリーの効果音は重ねられます。同じカテゴリーの新しい効果音は前のものを置き換えます。
  • 環境音: 場所の背景音。たとえば Town Pack の酒場の雰囲気です。環境音のストリームは一度に一本だけ流れ、止めるか置き換えるまで繰り返します。

音楽と環境音は、両方とも背景で鳴っていても別物です。場所によっては、音楽チャンネルで探索のサウンドトラックを流しつつ、環境音では別の室内や屋外のループを鳴らせます。

音を調整する

メニューで 設定 → サウンド を開きます。三つの行は 効果音、音楽、環境音。それぞれにオン/オフのトグルと音量スライダーがあります。変更はその場で保存されます。

設定のサウンドタブ:効果音・音楽・環境音の行が並び、それぞれトグルと音量スライダーつき。ここでは音楽を 1% まで絞り、効果音と環境音は 100% のまま。

たとえば 音楽 を絞れば、効果音 を下げずに会話まわりやインターフェースの効果音を聞き取りやすくなります。サウンドトラックだけにしたいなら 環境音 を切ってください。

設定パネルは Menu MOD の提供物で、Audio Engine はその設定を再生に反映するだけです。別の音設定ウィンドウを足したりはしません。

どこで使われているか

  • 共有フロントエンドは、ゲームが動いていなくても、メインメニューと設定のために Audio Engine を読み込みます。
  • Music Pack はメニューのテーマと共有の探索・戦闘プレイリストを提供し、Audio Engine がそれを再生します。
  • ノベルテンプレートでは、酒場のシーンが bar/bar_ambient を要求します。提供するのは Town Pack です。
  • ストーリーと戦闘のシステムは、ゲームの進行に合わせて効果音を要求したり、音楽のコンテキストを切り替えたりします。

Audio Engine と Music Pack は役割が違います。 Audio Engine は再生を担い、Music Pack は特定のサウンドトラックとプレイリストを担います。作者は Audio Engine を別のオーディオコンテンツと組み合わせてもかまいません。

ゲーム作者向け:サウンドトラックを足す

コンテンツ MOD の既存の depends リストに audio_base>=1 を加えます。さらに MOD をインストールし、対象ゲームのコレクションに含めてください。インストール済みのコンテンツ MOD がすべてのゲームに自動で入るわけではありません。

// manifest の既存の依存リストに追加:
"depends": ["audio_base>=1"]

音楽は music/ に、効果音や環境ループは sounds/ に置きます。新しい例には Ogg Vorbis(.ogg)を使ってください。同梱のサウンドトラックと酒場の環境音がその形式です。

my_audio_content/
├── manifest.json
├── music/
│   ├── evening_theme.ogg
│   └── playlists/
│       └── my_scene.json
└── sounds/
    └── my_room/
        └── ambience.ogg

music/playlists/my_scene.json の例:

{
  "Scene": "my_scene",
  "Musics": [
    {
      "MusicType": "Ambient",
      "MusicNames": ["evening_theme"]
    }
  ]
}

Scene はシーンの論理名と一致させます。曲名は music/ からの相対パスで、拡張子は付けません。リソース名の綴り・大文字小文字・空白はそのまま保ってください。

ここで MusicType: "Ambient" は探索の音楽の意味です。この曲が独立した環境音チャンネルへ送られるわけではありません。

ゲーム作者向け:シーンに環境ループを与える

シーン定義の defaultAmbient に、sounds/ から見た拡張子なしの音リソースを指定します:

{
  "name": "my_scene",
  "defaultAmbient": "my_room/ambience"
}

この断片は音まわりのフィールドを示すものです。シーンに必要な他のフィールドはそのまま保ってください。defaultAmbient が空のシーンは、前のシーンの環境ループを止めます。

実例はノベルテンプレートの my_novel_bar シーンです。defaultAmbient: "bar/bar_ambient" を使い、音は Town Pack が提供します。その資産を自分の MOD で再利用する場合も、所有者である town_pack への依存が必要です。

シーンの切り替え、戦闘、上書き

  • シーンに使えるプレイリストがない場合、Audio Engine は共有の default プレイリストを探します。曲が出るのは、対応するオーディオコンテンツがあるときだけです。
  • シーン専用のプレイリストがある場合、足りない音楽タイプを default で補うことはしません。そのシーンの音楽コンテキストが必要とするバケットを入れてください。
  • シーンが切り替わるとき、新しいプレイリストに曲が残っていて音楽タイプが変わらなければ、現在の曲はそのまま続きます。
  • 戦闘に入るとき、探索の曲とその位置を保存し、探索へ戻るときに復元を試みます。これは再生中の挙動であって、セーブのロードが正確な曲のタイムスタンプを復元する保証ではありません。
  • 同じシーンと音楽タイプでは、後から読み込まれた MOD が前の曲リストを置き換えます。リストは連結されません。相対名が同じリソースファイルも、後の MOD に上書きされ得ます。

戦闘の音楽コンテキストには Combat バケットを使ってください。任意のバケット名を足しても、新しいコンテキストも設定スライダーも生まれません。

音がしないとき

  1. 設定 → サウンド で当該のトグルと音量を確認します。音楽・効果音・環境音は互いに独立です。
  2. 選んだゲームに Audio Engine と必要なコンテンツ MOD が読み込まれているか確認します。Audio Engine は Music Pack の曲も Town Pack の酒場ループも含みません。
  3. 音楽なら、シーン名、必要な Ambient か Combat バケット、そして全曲名を確認します。プレイリストの参照はオーディオファイルを作りもダウンロードもしません。
  4. 環境音なら、defaultAmbient と sounds/ の下のリソースを確認します。前のループが止まったなら、新しいシーンでその欄が空ではないか見てください。
  5. プレイリストのバケットや音リソースを置き換え得る、後から読み込まれる MOD を確認します。ゲームログに、無い音ファイルやプレイリストの解釈エラーが出ていないかも見てください。

このガイドは対応済みの Ogg Vorbis の経路を使っています。エンジンには WAV の読み込み経路もありますが、現在のローダーは WAV コンテナーのメタデータを検査しません。書き出した WAV がすべて正しく振る舞うとは考えないでください。迷ったら新しいコンテンツは Ogg Vorbis へ変換を。MP3 は現在のオーディオファクトリーが対応していません。