vgmstream活用ガイド:500種類以上のゲーム音声フォーマットを再生する方法
vgmstreamは、ビデオゲームで使用される多様なストリーミング音声フォーマットを再生できるオープンソースライブラリです。ゲームサウンドの収集家、MOD制作者、レトロゲーマーにとって、このツールは数え切れないほどのゲームBGMや効果音にアクセスするための鍵となります。
vgmstreamを選ぶ理由
このプロジェクトが注目されるのは、膨大なフォーマット対応と柔軟な利用形態にあります。
- 500以上に対応:一般的なMP3やOGGから、ADX、HCA、FSB、ATRAC9など専用形式までカバー
- クロスプラットフォーム対応:Windows、Linux、macOSだけでなく、WebAssemblyによるブラウザ再生も可能
- 多様な統合手段:スタンドアロンプレイヤー、コマンドラインツール、メディアプレイヤー拡張として利用可
- 継続的なアップデート:コミュニティ主導で新しいゲームフォーマットが定期的に追加されています
インストール手順
Windows環境
- 公式リポジトリから最新のビルドをダウンロード
- ZIPファイルを展開し、必要なコンポーネントを選択:
- Winamp用:in_vgmstream.dll
- foobar2000用:foo_input_vgmstream.fb2k-component
- XMPlay用:xmp-vgmstream.xpi
- 対応するアプリケーションのプラグインディレクトリに配置
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プレイヤーソフトとの連携
| プレイヤー | プラグイン名 | 特徴 |
|---|---|---|
| foobar2000 | foo_input_vgmstream | タグ情報表示、バッチ変換対応 |
| Audacious | libvgm.so | 軽量、GTKベース |
| Winamp | in_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など
トラブルシューティング
ファイルが読み込まれない場合
- ファイル拡張子が正しいか確認(.str, .aud, .fsbなど)
- バイナリエディタで先頭バイトを調査し、既知のシグネチャと照合
- TXTHファイルを作成して手動でパラメータ指定を試す
- GitHubのIssuesページで類似事例を検索
プラグインが読み込まれない
- foobar2000:管理者権限で起動後に「コンポーネント」から手動追加
- Audacious:LD_LIBRARY_PATHにビルド済みsoファイルのパスを追加
- Winamp:Pluginsフォルダ内にDLLを配置後、一度終了して再起動
関連リソース
vgmstreamは、ゲーム音楽の保存・解析・再利用を可能にする強力なツールです。独自の音声コーデックを使うゲームタイトルでも、これを用いれば高音質なオーディオデータを取り出すことが可能です。最新のゲームからレトロタイトルまで、そのサウンドトラックに耳を傾けてみてください。