vgmstream活用ガイド:500種類以上のゲーム音声フォーマットを再生する方法

vgmstream活用ガイド:500種類以上のゲーム音声フォーマットを再生する方法

vgmstreamは、ビデオゲームで使用される多様なストリーミング音声フォーマットを再生できるオープンソースライブラリです。ゲームサウンドの収集家、MOD制作者、レトロゲーマーにとって、このツールは数え切れないほどのゲームBGMや効果音にアクセスするための鍵となります。

vgmstreamを選ぶ理由

このプロジェクトが注目されるのは、膨大なフォーマット対応と柔軟な利用形態にあります。

  • 500以上に対応:一般的なMP3やOGGから、ADX、HCA、FSB、ATRAC9など専用形式までカバー
  • クロスプラットフォーム対応:Windows、Linux、macOSだけでなく、WebAssemblyによるブラウザ再生も可能
  • 多様な統合手段:スタンドアロンプレイヤー、コマンドラインツール、メディアプレイヤー拡張として利用可
  • 継続的なアップデート:コミュニティ主導で新しいゲームフォーマットが定期的に追加されています

インストール手順

Windows環境

  1. 公式リポジトリから最新のビルドをダウンロード
  2. ZIPファイルを展開し、必要なコンポーネントを選択:
    • Winamp用:in_vgmstream.dll
    • foobar2000用:foo_input_vgmstream.fb2k-component
    • XMPlay用:xmp-vgmstream.xpi
  3. 対応するアプリケーションのプラグインディレクトリに配置

Linux環境(Debian系)

sudo apt update
sudo apt install build-essential git cmake pkg-config \
                 libmpg123-dev libvorbis-dev libopus-dev \
                 libavcodec-dev libavformat-dev libswresample-dev \
                 libao-dev libsndfile1-dev

git clone https://gitcode.com/gh_mirrors/vg/vgmstream
cd vgmstream
mkdir build && cd build
cmake .. -DENABLE_MPGLIB=ON -DENABLE_FFMPEG=ON
make -j$(nproc)
sudo make install

macOS環境(Homebrew利用)

brew install cmake mpg123 libvorbis opus ffmpeg libao
git clone https://gitcode.com/gh_mirrors/vg/vgmstream
cd vgmstream
mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
make

基本的な使い方

コマンドラインツール

主に以下の2つの実行ファイルが提供されます:

  • test.exe (またはvgmstream-cli):音声ファイルをWAVに変換
  • player.exe (またはvgmstream123):直接再生

例:ADXファイルをWAVに変換

./test -o music_output.wav game_audio.adx

例:HCAファイルを即時再生

./player sound_effect.hca

GUIプレイヤーソフトとの連携

プレイヤープラグイン名特徴
foobar2000foo_input_vgmstreamタグ情報表示、バッチ変換対応
Audaciouslibvgm.so軽量、GTKベース
Winampin_vgmstream.dll古典的インターフェースで動作安定

高度な活用法

TXTHによるカスタムフォーマット定義

未サポートのバイナリデータでも、ヘッダ情報を記述したTXTHファイルで再生可能になります。

; custom_format.txtth
layout = interleave
interleave = 2048
channels = 2
samplerate = 48000
codec = PCM16LE
loop_start = 10240
loop_end = 51200

同名の音声ファイル(例: custom_format.bin)と同じディレクトリに保存することで認識されます。

一括変換スクリプト(Bash)

複数のファイルを自動変換する場合:

#!/bin/bash
for file in *.hca; do
    if [[ -f "$file" ]]; then
        base=$(basename "$file" .hca)
        ./test -o "${base}.wav" "$file"
    fi
done

対応ハードウェアプラットフォーム

主に以下のゲーム機・システムからの音声抽出が可能です:

  • Sony:PS1~PS5、PSP、Vita
  • Nintendo:GBA、NDS、Wii U、Switchなど全般
  • Microsoft:Xbox、Xbox 360、Xbox Series X/S
  • PC:DirectSound、XAudio2を使用するタイトル
  • アーケード基板:NAOMI、RingEdgeなど

トラブルシューティング

ファイルが読み込まれない場合

  1. ファイル拡張子が正しいか確認(.str, .aud, .fsbなど)
  2. バイナリエディタで先頭バイトを調査し、既知のシグネチャと照合
  3. TXTHファイルを作成して手動でパラメータ指定を試す
  4. GitHubのIssuesページで類似事例を検索

プラグインが読み込まれない

  • foobar2000:管理者権限で起動後に「コンポーネント」から手動追加
  • Audacious:LD_LIBRARY_PATHにビルド済みsoファイルのパスを追加
  • Winamp:Pluginsフォルダ内にDLLを配置後、一度終了して再起動

関連リソース

  • 公式Wiki:ビルド手順、フォーマット仕様の詳細
  • readme.md:コマンドラインオプション一覧
  • VGMrips:vgmstreamを利用した高品質リッピングのサンプル集

vgmstreamは、ゲーム音楽の保存・解析・再利用を可能にする強力なツールです。独自の音声コーデックを使うゲームタイトルでも、これを用いれば高音質なオーディオデータを取り出すことが可能です。最新のゲームからレトロタイトルまで、そのサウンドトラックに耳を傾けてみてください。

タグ: vgmstream ゲーム音声 音声変換 foobar2000 FFmpeg

8月13日 19:09 投稿