Fallout4のNPCカスタムボイス吹き込み作業記録
なんすかこれ?
キャラに声を吹き込む方法を大分忘れてしまったので改めて作業、そしてしながらつけた記録
今回の目標は
・自作NPC夏色花梨、花隈千冬のボイスライン再調整でLip生成
Cevioのピタ声を使ってもう少し流暢に
・NPC小春六花の新設
上記ふたりをたたき台にNPCレコードを新設
大まか「Combat」「Favor」「Detection」のみ作成
「Misc」とか「Scene」での掛け合いは結構大変なのでやる気がある時に
作業チャート①~⑪
①(Outfit)でAz_Rikkaの服のテンプレを作る

②(VoiceType)でAz_RikkaVoiceを作る

③(Actor)Az_KoharuRikkaでひとまとめ

NanaRaceの指定、ChargenPartで顔の荒組、Voice指定、Outfit指定を行う
新規に作るならなるべく簡単なつくりのバニラNPCなどをひな型にする
④NPCのワールド配置

Cellのウィンドウから適当な場所、今回はCommonwalth→Vault111Extを選択してRenderViewに3D画面を表示
ここから配置できるが「必ず」View→Layerで自作レイヤーを新規製作してから触る
バニラのオブジェクトを変更すると事前結合がこわれるので慎重に
自作レイヤーを選択した状態で(FreezeOtherLayer)としておくと干渉することなく配置可能
そうしたらActorのNPCレコードをドラッグアンドドロップする
キャラが表示されると思うので選択しながらFキーで地面に設置でOK
⑤(Quest)で音声を再生できる形にする


Actor(VoiceType)をこのQuestで紐づけした、このあとQuest内のタブの方で台詞を入れていく
⑥声の吹込み

Combat\Tauntのセリフ例一覧
ここに好きなセリフを入れよう!(これが結構タイヘン)

乱数(Voice filename)はCKで台詞レコードを作成した時(Sound\KoharuRikka.ESP\46622213.wav)のように生成される
しかしCKで作りながらCeivoで台詞調声してリネーム……だとなかなか大変な上、一度リネームにミスった場合乱数の中から声を探さなくてはいけない

なのでこんな風にフォルダを作って仮置きしてあとでまとめて作業するのがオススメ
ちなみにCKextend環境下で2バイト文字OKにしておいても
特定の日本語が文字化け表示されることがある
実際は入力した通りレコードに記録されているのだが
自分は後述のPhoneticで反映されるか不安だったのでひらがなで打ち込んだ。参考までに
⑦音声を適切なフォーマットに直す

教科書通りだとLip生成の条件は44100Hz16bitMonoですが
自環境では48000hz16bitMonoでないとLipを生成できませんでした
Ceivo特有の問題?
よくわからないのでご自由にどうぞ
今回はこちらのソフトを使用してビットレートを一括変換しました
⑧リネーム

先ほどのセリフレコード内にある乱数名をコピー、用意したWavにペースト
参考までに今回行った300弱のラインを手作業でリネームすると2時間ほどかかる。目が疲れる。チビチビやろう。
CKのウィンドウは固定なのでエクスプローラーが見えるように工夫して配置するとF2リネームがし易い
⑨ローマ字化

2バイト文字だとLipgenに反応しない。なのでいったんローマ字に変換してからLip生成して元に戻す
作成したESPをxTranceratorで読み込んでいったん全て仮訳(F2)。
xmlで出力したものをJapanesePhoneticに投げる
https://www.nexusmods.com/fallout4/mods/23253
「(Romaji)Hoge.xml」が出力されるので
「漢字台詞状態」と「ローマ字状態」、二つのxmlを保持しつつESPをローマ字化
⑩Lip生成

仮想化環境下だと上手くいかなかった記憶があるのでリアルフォルダ下での作業を推奨
フォルダが汚れないように置いた場所を覚えて、後で掃除しよう
ルートフォルダ管理ツールなどあると便利 自分【ENBMan】を使っている
MO2なら右ペイン上でRoot階層の出し入れが出来る【RootBuilder】なども選択肢だが、自分は仮想化状態だと頭がこんがらがってくるので直感的に入れ替え可能なENBManを使用
========
用意するもの
・対象ESP
・マスター指定したESP
・リネームしたWav
・【.LIP Sync File Generator - Fallout 4】
https://www.nexusmods.com/fallout4/mods/20728
・【FonixData.cdf ( Easier .Lip Files )】
https://www.nexusmods.com/newvegas/mods/61248
========

Lipの生成は繊細な作業らしいのでブラウザなど、メモリを喰うようなアプリは事前に終了しておくとよい
LipsyncをRootフォルダに配置して起動。コマンドラインが出るのでプラグイン名を入力でEnter
その後勝手にCKが起動してなんらかのなんかが走り始めるので放置
環境によるかもしれないが結構長めなので表で用事を済ませるなりひとっ風呂入るなりする

厳密にはシークが伸びきるまで待つところだが、Lip生成は(COMQCIdles)の文字が出たころには終わってるので
そこで強制終了してもいい
Lipが生成出来ていたらゲームで確認
実際のところ100%口パク追従は難しいが、違和感ないようならOKと割り切ろう
⑪仕上げ
Lipが出来たらxTranslatorで先ほど保存しておいたxmlでローマ字を漢字に戻す
ここまで来たらルート階下に配置してあるものを掃除
Fuz(WavとLipを合体させたもの)を作るならYakitoriConverterなどで
MO2ならフォルダ新設と階層整頓で完成
かんせー
完成したものがこちら
やったー!
こんな感じで作れますのでみんなもやってみてね
以上です。内容についてわからないところがある場合はBlueSkyの方に連絡くだされば
https://bsky.app/profile/anbsts.bsky.social
付録:Quest内セリフタブ区分
(Combat)
戦闘中セリフ
(Attack)攻撃開始
(AvoidThreat)手榴弾回避など?
(Bleedout)ダウン
(Death)死エッセンシャルなら無くても
(Hit)被弾 短めが良いかも
(PowerAttack)銃バッシュ叫び
(Taunt)キメ台詞 長めでも可
(ThrowGranade)グレ投擲
(Favor)
NPCを選択した時のセリフ
(Agree)同意肯定
(ExitFavor)選択肢中終了時の相槌
(MoralRefusal)好感度ダウン選択肢
(PathingRefusal)行動指示を拒否
(Refuse)同上?こちらのほうが発動多し
(Show)コマンド受付開始の相槌
(Trade)トレード
(Detection)
発見ステータス台詞
(NormalToCombat)のみ特殊。バニラコンパニオンでは敵種類に分類されている…があまり聞いたことは無い
(AlertToCombat)
(AlertToNomal)
(CombatToLost)
(CombatToNormal)
(LostToCombat)
(LostToNormal)
(NormalToAlert)
(NormalToCombat)
(NormalToLost)
(Misc)
放置中のIdleセリフ(パイパーが街中で取材するときのような)。
Conditionを取得して場面場面でしゃべらせることが出来る
発動条件のための構文がイマイチ分からないので保留中
参考文献など
主にSkyrimの記事だがFallout4でも活用できる
作業中画像は自分の撮影分よりリンク先のもののほうが適切な理解につながると思われるので併読して作業してもらいたい
https://seesaawiki.jp/mod_memo/d/CV%a5%d5%a5%a9%a5%ed%a5%ef%a1%bc%a4%ce%ba%ee%a4%ea%ca%fd
https://thinkingskeever.hatenablog.com/entry/2016/04/05/083000
