Thinking Skeever

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

Skyrim Mod制作:日本語音声のLIPファイル(口パク)の作成方法 (2018/6/5追記)

先日公開したMinerva - Custom High Elf Voiced Follower - Japaneseで日本語音声の作成に初挑戦しました。

音楽制作経験があるので音声ファイル(WAV)の作成・編集は難なくできたのですが、LIPファイル(口パク)の作成に手間取ってしまいました。
せっかくなので分かる範囲で作成方法と注意事項をまとめておきます。

補足:

  • といいながら、ミネルヴァの口パクはまだ英語のままです・・・ そのうち直します
    今はちゃんと口パクしてくれます
  • 日本語文字列で口パクしないという話はokmaeさんに教えていただきました。ありがとうございます。

f:id:thinkingskeever:20151114030550p:plain
目次


f:id:thinkingskeever:20151114030550p:plain

まとめ

  • LIPファイルはCreation Kitからのみ作成可能。恐らく外部ツールは存在しない
    (表情制御のライブラリFaceGen/FaceFXはTESV.exe/CreationKit.exeにスタティックリンクされており、外部からの利用は不可)
  • LIPファイルは"Edit Response"画面で音声ファイルを選択し、"From Wav"をチェックして"Generate Lip File"を選択して作成する
  • LIPファイルの作成にはモノラル・16ビット・32/44.1kHz形式のWAVファイルが必要
  • LIPファイルの作成にはWAVファイルだけでなくResponse Textの文字列も使われる
  • Response Textが日本語の場合、正しいLIPが作成されず、あまり口パクしない
  • Response Textにローマ字を指定すれば、日本語発音に(比較的)合った口パクが作成できる
  • Response Textに日本語の発音に似せたインチキ英語を指定すれば、口パクの質を上げられるかもしれない
  • CreationKit.exeの引数を指定すればLIPファイルを一気にまとめて生成できる
  • FUZファイルの作成には拙作Yakitori Audio Converterが便利です(手前味噌)
  • ローマ字への変換には拙作Japanese Phonetic Text Converterが便利です(手前味噌その2)
  • FO4/Skyrim SEでのLIP作成には32ビット版のCKを使う


f:id:thinkingskeever:20151114030550p:plain

Creation Kitを使ったLIPファイルの作成手順

あらかじめ会話の応答音声ファイルが適切な名前で作成されているものとします。
LIPファイル生成時にWAVファイルを解析する都合上、次の形式のWAVファイルが必要なようです。

  • モノラル
  • サンプリング形式:16ビット
    32ビットだとCK上で音声再生できない/LIPファイル生成できないので注意!!
  • サンプリング周波数:32kHzまたは44.1kHz


"Edit Response"画面を表示します。
f:id:thinkingskeever:20160405082951p:plain

"Audio"セクションの表からVoice Typeを選択します。
"From WAV"をチェックして"Generate Lip File"を選択します。
f:id:thinkingskeever:20160405082953p:plain

"Edit Response"画面を開きなおすとlip列がYまたはY(L)になり、LIPファイルが作成されたことが分かります。
f:id:thinkingskeever:20160405082954p:plain

Mod Organizerを使う場合の注意点

  • WAVファイルがMod OrganizerのMODとして登録されている場合、LIPファイルがうまく作成できないようです(音声ファイルは認識され"Generate Lip File"ボタンを押せるが何も作成されない)。あらかじめWAVファイルだけをSkyrim/Dataフォルダにコピーしておく必要があります。
  • LIPファイルはMod OrganizerのOverwriteフォルダに出力されます。


f:id:thinkingskeever:20151114030550p:plain

日本語台詞のLIPファイルを作成する際の注意点

LIPファイルはWAVファイルの内容と"Edit Response"画面の"Response Text"の両方を解析して作成されるようです。
CKは英語の文章しか解析できないので、"Response Text"に日本語を指定するとうまく口パクしてくれません。
f:id:thinkingskeever:20160405082955p:plain

以下対策方法です。

"Response Text"にローマ字を指定する

日本語の変わりにローマ字でResponse Textを指定します。
f:id:thinkingskeever:20160405083017p:plain

スペルチェック画面が出ますが気にせずキャンセルしてください。
f:id:thinkingskeever:20160405083018p:plain


ローマ字での指定例:

  • お手伝いするわ:otetsudai suruwa
  • 見せてちょうだい:misete chodai

CKがローマ字を積極的に解析する訳ではないですが、それなりの口パクとなるようです。
(英語では固有名詞や外来語を除き、文字の並びで発音が大体決まるため)

台詞の変更はLIPファイル作成時に一時的に行い、保存しない方がよいでしょう。

ローマ字について

元々英語での読みやすさに配慮して考案されたヘボン式をベースにした方が正しく読んでもらいやすいと思います。
ローマ字の方式には何種類かあり、方言・独自ルールもあるので完全に理解するのはなかなか大変なのですが、即戦力になりそうなポイントを挙げておきます(ヘボン式以外のルールも含まれています)。

  • 撥音
    • nの後に母音/yが続く場合はn'に(例:恋愛 ren'ai)。'で区切られるのでレナイと読まれない
    • b, m, pの前のnはmに(例:あんぱん ampan)
  • 促音
    • cchはtchに(例:一致 icchiではなくitchi)
  • 長音
    • 省略する(例:アーサー asa)
    • 母音を続けて aasaa にすると、正しく読まれない可能性あり(Google翻訳は読めなかった)。インチキ英語の章にあるようにarsar、いっそ英語でArthurと書いた方が確実です。
    • ハイフンを使ってa-sa-にすると、区切り記号と扱われて音が伸びないので注意が必要です。

ローマ字に興味がわいたら Rômazi Aiueo(ローマ字 あいうえお) をチェックしてみてください。勉強になるだけでなく、読み物としても大変楽しめます。

"Response Text"に日本語の発音に似せたインチキ英語を指定する

英語圏の方がローマ字を読むとき、微妙に別の発音になる場合があります。

別の発音になる例:

  • ウタダ・ヒカル -> utada hikaru -> ユタダ・ヒカル
  • いろんなもの -> ironna mono -> アイロンネモノ
  • いいなあ -> iinaa -> 読めない可能性あり。Google翻訳はアイアイエヌエーエーと読んだ

ウタダ:ユタダなら母音が同じなので口パクに変わりはないですが、アイロンネモノは口パクが不適切となるでしょう。yironnaまたはeeronnaとすることでイロンナと読ませることができます。iinaaはeenarとした方が読んでもらえそうです。

Google翻訳音声合成機能を使って調整すると、より正しい口パクに近づけられると思います(もちろんCKとGoogleは別物ですが、参考にはなります)。
f:id:thinkingskeever:20160405083019p:plain


Google翻訳はとてもお節介で元の文を勝手に修正する場合があるので、「元の文」をクリックして元に戻します。
f:id:thinkingskeever:20160405083020p:plain

f:id:thinkingskeever:20151114030550p:plain

台詞を一気にまとめてローマ字に変換する方法

対話応答の台詞を一気にローマ字に変換するツールを制作しました。
ESP/XML/SSLXLTNを読み込んで台詞をローマ字に変換した後、XML/SSLXLTNに出力できます。
多少間違っていてもいいから「それっぽく」口パクしてくれればよい、という方は是非お試しください。


Japanese Phonetic Text Converter
ダウンロード(Nexus Mods Skyrim):http://www.nexusmods.com/skyrim/mods/83033/?
ダウンロード(Nexus Mods Skyrim SE):http://www.nexusmods.com/skyrimspecialedition/mods/9190/?
Skyrim用/Skyrim SE用のどちらも内容は同じです。


f:id:thinkingskeever:20151114030550p:plain

Creation Kitを使ってLIPファイルを一気にまとめて作成する手順

Creation Kitの起動引数を指定すれば、LIPファイルをまとめて一気に作成できます。

CreationKit.exe -GenerateLips:YourMod.esm
※YourMod.esmの部分を自分のプラグイン名に置き換える

参考記事: Creation Kit Wiki - How to generate voice files by batch

この引数を指定してCreation Kitを起動すると、引数で指定したプラグインが自動的にロードされ、 "Data/Sound/Voice/指定したプラグイン名/" フォルダのWAVファイルとESPに定義された台詞を元にLIPファイルを一気にまとめて作成してくれます。マスタープラグインのResponseレコードもチェックするので少し時間がかかりますが、ちまちま操作するよりも断然楽です(音声ファイル300個で5分程度でした)。
f:id:thinkingskeever:20170322162540p:plain

日本語音声のLIPファイルを作成する場合、あらかじめ対象プラグインのResponse Textをローマ字に変更しておく必要があります。
毎回CKでローマ字に変更するのは大変ですから、sseTranslatorを使ってローマ字変換用のXMLファイルを作成しておき、必要に応じて変換するのがオススメです。
f:id:thinkingskeever:20170322162543p:plain

補足:

  1. CK実行中に別ウィンドウに切り替えると、CKの画面が更新されずフリーズしたように見えますが、実際には裏で動作しており、LIP作成に影響はありません。
  2. プラグイン名に空白が含まれている場合、CKの処理は実行されるものの、LIPファイルが作成されない場合があるようです。確実な回避方法は不明ですが、私は一時的にプラグイン名とsound/voiceフォルダ下のフォルダ名から空白を削除して回避しています。ファイル名・パス名に空白が含まれている場合にうまく動作しないツールも存在するので、プラグイン名に空白を含めないほうが安全です。

Mod Organizerを使う場合の注意点

ツールメニューに次のような定義を追加して実行します。
f:id:thinkingskeever:20170322162536p:plain

手動でLIPファイルを作成する場合と同様、あらかじめWAVファイルをSkyrim/Dataフォルダにコピーしておく必要があります。
実行が完了すると、OverwriteフォルダにLIPファイルが作成されます。
右クリックメニューからMOD作成するか、MOのインストールフォルダ/overwriteを開いてLIPファイルを取り出します。
f:id:thinkingskeever:20170322162546p:plain


f:id:thinkingskeever:20151114030550p:plain

FUZファイルを作成する方法

WAVとLIPファイルが揃ったらFUZファイルに変換しましょう。
FUZファイルはLIPファイルと圧縮済みの音声ファイルをひとまとめにしたファイルで、ファイル容量・ファイル数の節約に役立ちます。

ここでは拙作のツールYakitori Audio Converter - Convert fuz-xwm-wav-various audio filesを使った方法を紹介します。

Yakitori Audio Converterの操作手順

Yakitori Audio Converterを起動し、次の設定をします

  • 入力形式:.wav
  • 出力形式:.fuz
  • 出力先フォルダ:「入力フォルダと同じ」をチェック
  • xWMAEncode xwmエンコーダの設定:
  • 内蔵fuzeエンコーダの設定:
    • モード:lipは必須


WAVファイルとLIPファイルの入ったフォルダを画面にドロップします。
Lip有無列を見れば、LIPファイルの不足をチェックすることもできます!
f:id:thinkingskeever:20160405083021p:plain


「変換」ボタンをクリックして変換実行します。
LIPファイルが足りない場合、このようにエラーとして分類表示されます。LIPファイルを補充して再実行することもできます。
f:id:thinkingskeever:20160405083023p:plain


f:id:thinkingskeever:20151114030550p:plain

LIPファイルが作成できないときの確認ポイント

LIPファイルがうまく生成できない場合、次の点について確認してください。

WAVファイルがDataフォルダ上にあるか

Mod Organizerの機能を使って仮想的にWAVファイルを配置した場合、LIPファイルがうまく作成できないことがあります。
Mod Organizerを使ってCKを起動する場合、WAVファイルだけはDataフォルダにコピーします。

WAVファイルの形式は適切か

繰り返しになりますが、次のWAV形式でないとLIPファイルがうまく生成できないようです。

  • モノラル
  • サンプリング形式:16ビット
  • サンプリング周波数:32kHzまたは44.1kHz

特にサンプリング形式が重要です。サンプリング形式が32ビットの場合、CK上で音声再生できない上、LIPファイルも生成できません。


f:id:thinkingskeever:20151114030550p:plain

サンプリング形式の確認方法

ところで、WAVファイルのサンプリング形式を確認する手段が意外とないので困りますね。サウンド編集ツールAudacityで開いても一律に「32-bit浮動小数点」と表示されますし、Windowsのプロパティ表示にも表示されません。
ffmpegを使った方法を紹介しておきますので、他に確認手段がない方はぜひ活用してください。

設定手順:

  • ffmpegWindowsバイナリ配布サイト Zeranoe FFmpeg からWindowsffmpegをダウンロードします。最新のstatic版から64bit/32bitどちらかをダウンロードします。
  • zipファイルを展開してbinサブフォルダ下のファイルを適当なフォルダにコピーします。この例ではD:\Mytools\ffmpegにインストールしますが、好きなフォルダで構いません。
  • Windows+Rキーを押して「ファイル名を指定して実行」ダイアログを表示します。shell:sendto と入力してOKボタンを押します。
    f:id:thinkingskeever:20170609172229p:plain
  • SendToフォルダが開きます。「音声ファイル情報の表示.cmd」というファイルを新規作成し、メモ帳で開きます。
    f:id:thinkingskeever:20170609172252p:plain
  • 次の内容をコピペして保存します。D:\Mytools\ffmpeg\ffmpeg.exeの部分はffmpegをインストールしたフォルダに合わせて訂正してください。
    f:id:thinkingskeever:20170609172256p:plain
@echo off
chcp 65001
set ffmpegpath=D:\Mytools\ffmpeg\ffmpeg.exe
for %%i in (%*) do "%ffmpegpath%" -hide_banner -i %%i
pause
  • 以上で設定は完了です。

使い方:

  • 音声ファイルを選択して右クリックメニューから「送る」-「音声ファイル情報の表示.cmd」を選択します。
    f:id:thinkingskeever:20170609172259p:plain
  • コマンドプロンプトに情報が表示されます。
    f:id:thinkingskeever:20170609172304p:plain
    見るべき場所は赤枠で囲った部分です。
    ちょっとややこしいですが重要なのは16/32の数字の部分です。LIPを作成する場合、ここが16になっていることを確認します。
  • ちなみにこの例で表示された値の意味は次の通りです。ffmpegのヘルプに詳細があります。


f:id:thinkingskeever:20151114030550p:plain

CK 64ビット版でのLIP作成について  New!!

2018/6/5現在、64ビット版のCK、つまりSkyrim SE用/Fallout 4用のCKではLIPファイルが作成できません。Generate Lip Fileボタンを押すとエラーメッセージが表示されたりフリーズしたりするようです。

Fallout 4の場合は、ゲームフォルダ/Tools/LipGen/フォルダに入っている32ビット版のCKを使ってLIP生成する必要があります。このフォルダからは起動できないので、ゲームフォルダ直下にコピーして起動します。

Skyrim SEの場合はSkyrim LE用の古いCKを使ってLIP生成する必要があります。Fallout 4と違ってCK32はバンドルされていないので、Steam等から別途ダウンロードする必要があります(もちろんSkyrim LE本体も必要です)。
LE用のCKではSSE用のプラグインファイルは読み込めませんが、プラグインファイル中のフォーム番号(要はバージョン番号)をバイナリエディタまたはxEditスクリプトで書き換えた後、対話関連以外の不要なレコードを削除して、CK32で開く方法が以下のフォーラムで紹介されています。
https://afkmods.iguanadons.net/index.php?/topic/4803-how-to-generate-lip-files-in-skyrim-se-ck/


f:id:thinkingskeever:20151114030550p:plain

変更履歴:

  • 2016/04/05 08:30 : 公開
  • 2017/03/22 16:45 : LIPを一気にまとめて作成する方法の追加
  • 2017/03/24 03:00 : ローマ字に関するTIPSを追記、インチキ英語指定の追補
  • 2017/03/31 02:00 : Japanese Phonetic Text Converterを使って一気にまとめてローマ字化する方法の追加
  • 2017/06/09 17:30 : LIPファイルが作成できないときの確認ポイント、サンプリング形式の確認方法を追加
  • 2017/06/18 02:40 : Creation Kitを使ってLIPファイルを一気にまとめて作成する手順の補足を追加
  • 2018/06/05 19:30 : CK64でLIP生成できない件について追記

//

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