読者です 読者をやめる 読者になる 読者になる

Thinking Skeever

Skyrim/The Witcher 3 Modについてのあれこれ。FoModの作り方、Mod導入時のトラブル事例などのニッチな話を書いていきます。a.k.a. BowmoreLover@nexusmods

Skyrim自作Mod: Yakitori Audio Converter 利用ガイド (v1.3版)

Skyrim 自作Mod

nexusmodsで公開中のSkyrim/Fallout用 音声ファイル変換ツール Yakitori Audio Converter の利用ガイドです。

nexusmods Skyrim Yakitori Audio Converter - Convert fuz-xwm-wav-various audio files
nexusmods Fallout4 Yakitori Audio Converter - Convert fuz-xwm-wav-various audio files

Yakitori Audio Converter 利用ガイド (v1.3版)
f:id:thinkingskeever:20151114030550p:plain

1. はじめに

Yakitori Audio Converterは、数あるオーディオコンバーターの「もう1つの」オーディオコンバーターです。このツールはfuz, xwm, wav, mp3といった音声ファイルを相互に変換します。
標準ではfuzとxwmファイルを取り扱えますが、別途xWMAEncode、LAMEFFmpegをダウンロードしてインストールすれば、より多くの音声ファイル形式を取り扱うことができます。

私はFallout4をまだプレイしていませんが、恐らくfuzeファイル形式はスカイリムと同じですので、Fallout4の音声ファイルでも良好に動作するはずです。

ご活用ください!!


補足:v1.1より、mod名称を「Yet Another Audio Converter」から「Yakitori Audio Converter」に変更しました。既に同じ名前のツールが世の中にあることに気付いたので、混乱を避けるためです。次の名前を考えていたときちょうど焼き鳥を食べていたのでこの名前にしました。




f:id:thinkingskeever:20151114030550p:plain

2. 動機と目的

私がmodの翻訳をするとき、modの音声ファイルを一般的な形式(wavやmp3)に変換し、メディアプレイヤーで再生して登場人物の会話を確認することが多いです。この手の作業にはJonB氏のSkyrim Audio Converterが比較的要件を満たしており、愛用していました。ですがどういうわけか、大量のファイルを変換するとクラッシュすることが多かったのです。
ですので音声ファイルの勉強を兼ねてこのツールを作ることにしました。
そういう訳で、Skyrim Audio Converterが大きな開発の動機を与えてくれたことを強調させてください。JonBさん、ありがとう!




f:id:thinkingskeever:20151114030550p:plain

3. 主な特徴

変換ファイルの選択

  • メニューまたはドラッグ&ドロップで変換したいファイルを選択し、ファイル一覧に追加できます。
  • ファイル、フォルダ、bsaファイルを選択できます。bsaファイルを選ぶとbsaファイル中に含まれる音声ファイルを変換できます。
  • ファイル一覧からチェックボックスを使って変換するファイルを選ぶことができます。

音声ファイルの変換

  • 標準ではfuzとxwmファイルの変換ができます。lipファイルも取り扱えます。
  • MicrosoftのxWMAEncodeがインストールされている場合、xwmとwavファイルの変換ができます。
  • LAMEがインストールされている場合、wavとmp3ファイルの変換ができます。
  • FFmpegがインストールされている場合、wavと一般的な音声ファイル形式(mp3, ogg, flac, aiffなど)の変換ができます。
  • (v1.2の機能) FFmpegがインストールされている場合、一般的な動画ファイル形式 (avi, flv, mpg, mp4など)からの変換ができます。あまりテストしていませんし、変換の成否はFFmpegの仕様次第ですが、手持ちのファイル(flv,mp4,wmv)での変換結果は良好でした。問題がある場合は追加引数を設定してください。
  • 出力ファイルは入力ファイルと同じフォルダ、または指定したフォルダに出力できます。
  • FFmpegを使って変換するとき、音量を調整できます。
  • (v1.1の機能) コマンド引数の知識があれば、LAMEFFmpegのコマンド引数を自由に追加できます。FFmpegでは2種類の追加引数が指定できます。「追加の引数」は(FFmpegの)入力ファイルに対する引数で、「追加の引数 2」は(FFmpegの)出力ファイルに対する引数です。使い分けに注意してください。

ユーザーインターフェース

  • 使いやすいファイル一覧。音声ファイルは状態によりカテゴリ分けされます。変換が終わったか、lipファイルがあるのかが一目瞭然です。もちろん一覧を好みの条件でソートすることもできます。
  • オーディオ変換ツールに付き物の難しい設定は不要です。デフォルトの設定で簡単に変換できます。
  • その時に必要な変換設定だけが動的に表示されます。
  • xwmファイルとlipファイルをfuzファイルにマージするのが容易です。xwmファイルと同じ場所にある同名のlipファイルをfuzファイルに取り込むことができます。
  • ヘルプメニューからLAMEFFmpegのコマンドヘルプをメモ帳で表示できます。コマンドプロンプトを開いてヘルプメッセージを読む必要はありません。追加の引数を指定する際に役立つはずです。
  • (v1.2の機能) 設定はすべてiniファイルに保存され、次回起動時に引き継がれます。
  • (v1.3の機能) ファイル一覧の右クリックメニューから入力/出力ファイル、入力/出力フォルダ、bsaファイルを開けます。入力ファイルがbsaファイル中にある場合は即席で解凍して開きます。fuzファイルの場合、即席でxwmファイルを解凍して開きます。
  • (v1.3の機能) ファイル一覧でファイルをダブルクリックすると入力ファイルを開けます。状態列の「変換済み」をダブルクリックすると出力ファイルを開けます。
  • 多言語サポート。今のところ英語と日本語に対応しています。リソースファイルを修正すれば別の言語に対応できます。

性能

  • Windows(.NET?)のListView、特にGrouping機能はとても遅くてバグが多いので、出来る限り調整とチューニングを行いました。
  • 変換処理はマルチスレッド・マルチプロセスで多重化されています。お使いのCPUに応じてUIから多重度を変更できます。


f:id:thinkingskeever:20151114030550p:plain

4. 対応するファイル形式

入力形式

音声形式

ファイル形式 拡張子 必要ツール
fuze .fuz
xwma .xwm xWMAEncode
wave .wav xWMAEncode または LAME または FFmpeg
mp3 .mp3 LAME または FFmpeg
ogg .ogg/.oga FFmpeg
flac .fla/.flac FFmpeg
aiff .aif/.aiff FFmpeg
wma .wma FFmpeg
mp4 .m4a FFmpeg

動画形式

ファイル形式 拡張子 必要ツール
asf .asf FFmpeg
avi .avi FFmpeg
flv .flv FFmpeg
mov .mov/.qt FFmpeg
mp4 .mp4 FFmpeg
mpeg .mpg/.mpeg FFmpeg
ogg .ogv/.ogx FFmpeg
web-m .webm FFmpeg
wmv .wmv FFmpeg

出力形式

ファイル形式 拡張子 圧縮形式 必要ツール
fuze .fuz
xWMA .xwm xWMAEncode
wave .wav xWMAEncode または LAME または FFmpeg
mp3 .mp3 LAME または FFmpeg
ogg .ogg/.oga flac/opus/speex/vorbis FFmpeg
flac .fla/.flac FFmpeg
aiff .aif/.aiff FFmpeg

対応表

入力→ ↓出力 fuz(*1) xwm wav mp3 一般音声/動画形式(*3)
fuz(*2) - o o (xWMAEncode) o (xWMAEncode + LAME) o (xWMAEncode + FFmpeg)
xwm o - o (xWMAEncode) o (LAME) o (FFmpeg)
wav o (xWMAEncode) o (xWMAEncode) - o (LAME) o (FFmpeg)
mp3 o (xWMAEncode + LAME or FFmpeg) o (xWMAEncode + LAME or FFmpeg) o (LAME or FFmpeg) - -
ogg o (xWMAEncode + FFmpeg) o (xWMAEncode + FFmpeg) o (FFmpeg) - -
flac o (xWMAEncode + FFmpeg) o (xWMAEncode + FFmpeg) o (FFmpeg) - -
aiff o (xWMAEncode + FFmpeg) o (xWMAEncode + FFmpeg) o (FFmpeg) - -

(*1) fuz含まれているlipを解凍可能
(*2) 入力ファイルと同じ場所に同名のlipファイルがある場合、lipファイルを含めることも可能
(*3) 今のところ次の形式に対応:mp3/mp4/ogg/flac/aiff/wma, asf/avi/flv/mov/mp4/mpeg/ogg/web-m/wmv

変換の流れ

  f:id:thinkingskeever:20160203211416p:plain




f:id:thinkingskeever:20151114030550p:plain

5. 必要条件

動作環境

私はWindows XP/8/10を持っていないので動作検証できていませんが、恐らく.NET Framework 4.0以降がインストールされていれば動作します。

オプション(ファイル形式を増やすのに必要)

xWMAEncode.exe(Microsoft DirectX SDKに付属のツール)

必須ではないですが、xwmファイルを扱うのに必要です。
このツールは再配布不可なので、Microsoft DirectX SDKをダウンロードする必要があります。
DirectX Software Development Kit Jun 2010をダウンロードしてインストールします。
インストールしたくない場合(多くの方はそうだと思います)、7-Zipを使ってSDKインストーラ DXSDK_Jun10.exe を開き、"DXSDK\Utilities\bin\x86\xWMAEncode.exe"を解凍します。

LAME 3.99.5以上(http://lame.sourceforge.net/

必須ではないですが、mp3ファイルを扱うのに必要です。
コンパイル済み実行ファイルはRAREWARESからダウンロードできます。
32bit版と64bit版のどちらでも構いません。お使いのOSに合わせて選んでください。

FFmpeg 2.8.5以上(http://ffmpeg.org/

必須ではないですが、mp3, ogg, flacなどの多彩な音声ファイルをを扱うのに必要です。
コンパイル済み実行ファイルはZeranoe FFmpegからダウンロードできます。
32-bit static version、64-bit static versionのどちらでも構いません。お使いのOSに合わせて選んでください。
FFmpegをインストールする場合、LAMEは必須ではありません。mp3のエンコードオプションはLAMEのほうが多いので、必要に応じて使い分けてください。




f:id:thinkingskeever:20151114030550p:plain

6. インストール方法

  • 次のページからZIPファイルをダウンロードします。
  • ZIPファイルを解凍し、YakitoriAudioConverterフォルダーごと任意のフォルダにコピーします。ただしゲームのフォルダ、Mod Organizer/NMMのフォルダ、Program Filesフォルダは避けてください。良く分からなければデスクトップ上でも問題ありません。
  • オプションの外部ツール(xWMAEncode.exe, lame.exe, ffmpeg.exe)はYakitoriAudioConverter.exeと同じフォルダにコピーします。
  • 旧バージョンからのアップデート時には、単純にファイルを上書きコピーしてください。



f:id:thinkingskeever:20151114030550p:plain

7. アンインストール方法

アンインストールする場合、インストールしたYakitoriAudioConverterフォルダごと削除してください。レジストリは使っていませんのでクリーニングの必要はありません(厳密にはWindows.NET Frameworkによって少量のレジストリが作られているかもしれませんが、誤差の範囲だと思います)。




f:id:thinkingskeever:20151114030550p:plain

8. 使い方

変換の手順

  f:id:thinkingskeever:20160202190315p:plain

  1. YakitoriAudioConverter.exeを起動します。
  2. 入力形式を選びます。
  3. 「ファイル」メニューまたはドラッグ&ドロップで変換するファイルを追加します。
  4. チェックボックスで変換するファイルを選びます。
  5. 出力形式を選びます。
  6. 出力フォルダを選びます。
  7. エンコーダ/デコーダの設定を変更します。表示されるオプションは入力形式/出力形式に依存します。良く分からなければデフォルトのままで構いません。
  8. 「変換」ボタンを押して変換を開始します。
  9. 変換が完了すると、ファイル一覧は変換結果によって分類表示されます。マウスカーソルをステータスの上に移動すれば変換結果の詳細を表示できます。

ショートカットキーと便利な使い方

メインウィンドウ
操作 説明
Ctrl+O ファイルを開く
Ctrl+L フォルダを開く
F5 変換
ファイル一覧
操作 説明
DEL 選択行の削除
Ctrl+A すべての行を選択
Ctrl+C ファイル名のコピー
Ctrl+G グループ表示の切り替え
Alt+Up 前のグループにジャンプ
Alt+Down 次のグループにジャンプ
Shift+クリック 範囲選択
余白をドラッグ 範囲選択
グループ名のクリック グループ中のファイルをすべて選択
グループ名のダブルクリック グループの折りたたみ/展開
範囲選択されたチェックボックスのクリック 選択されたファイルすべてをチェック/チェック解除
列ヘッダのクリック ソート列の選択/ソート方向の切り替え
マウスカーソルをファイル名上に ツールチップでファイル名を表示
マウスカーソルをステータス上に ツールチップで詳細情報を表示(エラーメッセージ、作成したファイルなど)
右クリック メニューの表示
ファイルをダブルクリック 入力ファイルを開く
状態列の「変換済み」をダブルクリック 出力ファイルを開く
オプションウィンドウ
操作 説明
マウスカーソルを入力形式/出力形式上に ツールチップで拡張子を表示
ログウィンドウ
操作 説明
Ctrl+A すべて選択
Ctrl+C コピー
右クリック メニューの表示
ステータスバー
操作 説明
グループ名のクリック グループにジャンプ



f:id:thinkingskeever:20151114030550p:plain

9. 注意点・制限事項・既知の不具合

  • きっとバグがあります。必ず変換元ファイルのバックアップを取ってください。
  • ひどい英語です。文章の改善提案は歓迎です。
  • 変換の(音質的な)結果は外部のツールに依存します。
  • UIで選んだ変換オプションの組み合わせによっては外部ツールがエラーとなる場合もあります。ログウィンドウに表示されたコマンドのログを参照してください。
  • ログの行数が大量になると性能に悪影響があります。定期的にクリアしてください。
  • 安定性と操作性を優先したため、最高の変換性能とはいえないかもしれません。ですが実用十分なはずです。
  • ListView、特にGrouping機能はとても遅くてバグが多いので出来る限り調整とチューニングを行いました。ですがすべてのOSで動作確認した訳ではありません。もしファイル一覧が再描画されなくなったら、バージョン情報ダイアログ(ヘルプメニューから)を表示してください。これで状態がリセットされます。頻繁に起こるようであれば私のnexusページまで報告してください。
  • ba2ファイル(Fallout4の圧縮ファイル)には未対応です。ba2ファイル形式を知りませんし、まだFallout4を購入していません。
  • 変換したファイルを個人で楽しむのは自由ですが、他の人に公開したり配布する場合、元の音楽の著作権に気を使ってください。


f:id:thinkingskeever:20151114030550p:plain

10. 今後の予定

  • 予定していた機能はほとんど実装しましたが、新たな使い方の提案・アイデアは歓迎です。
  • 音声/動画ファイル形式の追加リクエストは歓迎です。FFmpegがサポートする形式であれば、定義ファイルの修正のみで簡単にできます。とはいえFFmpegの機能は膨大で、私自身すべてを把握していません。コマンド引数に関するヒントがあればより簡単に修正できるでしょう。


f:id:thinkingskeever:20151114030550p:plain

11. クレジットと謝辞

このツールは私BowmoreLoverが開発しました。プログラムはすべてフルスクラッチで私自身が書いたもので、他のいかなるライブラリも使用しておりません。

Skyrim Audio Converterが大きな開発の動機を与えてくれたことを強調させてください。作者のJonBさんにこの場を借りて御礼申し上げます。本当にありがとう。

開発ツール:
Microsoft Visual C# 2010
Mod形式については次のページを参考にしました: http://www.uesp.net/wiki/Tes5Mod:File_Formats
GIMP
LibreOffice




f:id:thinkingskeever:20151114030550p:plain

12. ツールの変更履歴

v1.0 (2016/2/1)

  • 初回リリース

v1.0.1 (2016/2/1)

  • FFmpegで変換するとき音量調節できるようにした。

v1.1 (2016/2/2)

  • mod名称を「Yet Another Audio Converter」から「Yakitori Audio Converter」に変更しました。既に同じ名前のツールが世の中にあることに気付いたので、混乱を避けるためです。次の名前を考えていたときちょうど焼き鳥を食べていたのでこの名前にしました。
  • 音量リストの項目追加。少し細かく音量調整できます。
  • LAMEFFmpegのための追加引数のテキストボックスの追加。コマンド引数の知識があれば、LAMEFFmpegのコマンド引数を自由に追加できます。FFmpegでは2種類の追加引数が指定できます。「追加の引数」は(FFmpegの)入力ファイルに対する引数で、「追加の引数 2」は(FFmpegの)出力ファイルに対する引数です。使い分けに注意してください。

v1.2 (2016/2/3)

  • FFmpegがインストールされている場合、一般的な動画ファイル形式 (avi, flv, mpg, mp4など)からの変換ができます。あまりテストしていませんし、変換の成否はFFmpegの仕様次第ですが、手持ちのファイル(flv,mp4,wmv)での変換結果は良好でした。問題がある場合は追加引数を設定してください。
  • 設定はすべてiniファイルに保存され、次回起動時に引き継がれます。
  • (バグ修正) ファイル名に連続した空白文字があるとき、外部コマンドが"No such file or directory"エラーとなる問題を修正しました。
  • (バグ修正) UI言語切り替え時の動作改善

v1.3 (2016/2/4)

  • ファイル一覧の右クリックメニューから入力/出力ファイル、入力/出力フォルダ、bsaファイルを開けます。入力ファイルがbsaファイル中にある場合は即席で解凍して開きます。fuzファイルの場合、即席でxwmファイルを解凍して開きます。
  • ファイル一覧でファイルをダブルクリックすると入力ファイルを開けます。状態列の「変換済み」をダブルクリックすると出力ファイルを開けます。
  • (変更) ヘルプメニューから開けるコマンドヘルプのテキストファイル名を意味のある名前にした。
  • (変更) エラーメッセージの改善とローカライズ
  • (変更) エラーメッセージの簡素化。スタックトレース情報はオプショナルとなり、オプションメニューで切り替えられます。
  • (バグ修正) ファイル一覧でチェックボックスを右クリックしたとき、ファイル一覧が再描画されなくなる問題を修正した。
  • (バグ修正) 「ヘルプ」-「バージョン情報」ダイアログを表示したとき、ファイル一覧の再描画問題が正しくリセットされるようにした。


f:id:thinkingskeever:20151114030550p:plain

本ガイドの改訂履歴

  • 2016/02/02 19:20 - 公開開始。v1.1対応
  • 2016/02/03 21:22 - v1.2対応
  • 2016/02/04 18:20 - v1.3対応

以上

Copyright (C) 2015,2017 ThinkingSkeever, All Rights Reserved.
ブログの記事内に記載されているメーカー名、製品名称等は、日本及びその他の国における各企業の商標または登録商標です。
リンクはご自由に。記事の転載はご遠慮ください。記事を引用する場合はトラックバックするか元のURLを明記してください。