njo

StarfieldのMod Vasco Japanese Female Voiceの作り方の断片

Vasco Japanese Female Voiceというヴァスコの声をVOICEVOXでtext2speechにより生成した音声に置き換えるModを作ったのでその作り方の断片。

www.nexusmods.com

最初はRVCを使って変換を試してみたけどRVC全く詳しくなく高い男の声しか作れなかったので、諦めてセリフからの読み上げで作ることにした。

ヴァスコのボイスの一覧を得る方法

steamapps\common\Starfield\Data\ の中を見ると下記の3つにボイスが入っている気配を感じたので、これをBAE - Bethesda Archive Extractorを使用して開いてみる。

  • Starfield - Voices_ja01.ba2
  • Starfield - Voices_ja02.ba2
  • Starfield - Voices_ja_Patch.ba2

フィルタのところにvascoと入れてみると Starfield - Voices_ja02.ba2 に入ってるようで、とりあえず全てのボイスの.wemファイルの一覧が取れた。

ヴァスコの全てのセリフのテキストを得る方法

Creation Kitがリリースされれば簡単にそれは入手できるらしいが、今はまだそれが出ていないのでxTranslatorを使用して抜き出した。

下のは翻訳設定をenにしてenのXMLファイルを取り出す説明になってるけど、最初のenをjaにしたら日本語のセリフを取り出せる。

セリフのテキストと.wemの音声ファイルを紐つけるには、エクスポートするXMLファイルにFuzInfoを含める必要がある。一度NPC/Fuz Mapのタブを開かないと、エクスポートする際にExport Fuz Dataにチェックを入れられない。

  1. Options -> Dictionaries and langueages -> src language: en, dest language: en

  2. File -> Load Esp/Esm -> Open Starfield.esm

  3. Click NPC/Fuz Map.

  4. File -> Export translation -> XML files -> Check Export Fuz Data -> Everything -> OK

他に使ったツールの雑なメモ

StarfieldのMod有効化手順とトラブルシューティング

Mod有効化(Archive Invalidation)のためのINI設定について

Modを有効化するためには.iniの設定ファイルにコードを追加する必要がある。英語ではArchive Invalidationと言われている。

bInvalidateOlderFiles=1sResourceDataDirsFinal= を設定する必要がある。

bInvalidateOlderFiles=1 とは?

これはOlderFiles(古いファイル)を無効化するかどうかという設定。OlderFilesというのは具体的にはバニラの元のファイルたちを指していて、Invalidate(無効化)といっても完全に無効化させるわけではなく優先度を下げるという意味。 0 がデフォルトで、OlderFilesを無効化しない、つまり元のファイルを最優先にする設定。 1 はOlderFilesを無効化するという設定。つまり元のファイルの優先度を下げて、新しく追加したModのファイルの優先度を上げる設定。

sResourceDataDirsFinal= とは?

これは Data\ 内でスキャンするサブフォルダを指定する設定。デフォルトでは STRINGS\ のみが設定されているため、それ以外のサブフォルダ(Modで追加されるInterfaceやSound)なども自動的に全てスキャン対象とするために空を設定することになる。

Mod有効化手順

事前準備

  • デフォルトのWindowsでは拡張子が省略されて表示されるが、あらゆるトラブルの元になるので常に拡張子を表示させておいた方がいい。どこでもいいのでエクスプローラーを開き上の「表示」->「表示」->「ファイル名拡張子」をオンにする

StarfieldCustom.iniのファイル新規作成

誤った形式のファイルを作るとトラブルの元なので、元々存在しているファイルをコピペして新しいファイルを作成するのが一番安全。

  1. 設定ファイルを作成するフォルダを開く。エクスプローラーのアドレスバーに %USERPROFILE%\Documents\My Games\Starfield\ を入力してエンターで開ける。開くと StarfieldPrefs.ini があるはず

  2. StarfieldPrefs.ini をコピーして同じ場所に張り付けし StarfieldPrefs - コピー.ini を作成する

  3. StarfieldPrefs - コピー.ini の名前を StarfieldCustom.ini に変更する

  4. StarfieldCustom.ini の中身をすべて削除する

StarfieldCustom.iniにMod有効化のための設定追加

  1. StarfieldCustom.iniテキストエディタで開き、その中に下の3行を追加する

    • 新たに StarfieldCustom.ini を作成した人は下の3行だけが存在しているはず
    • 例えばFOVを設定したい場合などはこのファイルに設定を書いていくことになる
    [Archive]
    bInvalidateOlderFiles=1
    sResourceDataDirsFinal=
    
  2. 完了

Modが有効化されない場合のトラブルシューティング

不正な目に見えない文字が混入している

目に見えない文字がINIに混入する事で設定が反映されない問題。このブログの上の設定をコピペするのは安全だけど、Nexusmodの説明欄などに記載されているコードをコピペする場合はかなり注意した方がいい。たぶんNexusmodの入力フォームが悪いと思う。

Windowsの標準のメモ帳ではこれを確認する事ができないが、もう少し高機能なエディタであればこれを目で確認する事ができる。他の回避策としてはタイプミスに注意して綺麗に削除した後に手入力で書き直すなど。

例えば9/17現在の Ship Skip - Instant Station Docking and More by Bub というModの説明欄に記載されているコードをVisualStudio Codeで確認すると下記のようにメモ帳では目に見えない文字が先頭に混じっている。これではModは有効化されない。

なぜかStarfield.iniに設定を書かないと反映されない民

原因はよくわかっていないが、 StarfieldCustom.ini に正しく設定を追加しても設定が反映されない人がいるらしい。そういう人は Starfield.ini というファイルに設定を追加すると反映されるらしい。

Starfield.inisteamapps\common\Starfield\Starfield.ini に存在するもの。 \Documents\My Games\ の方ではないので注意。

設定方法は、 Starfield.ini の中にはすでに [Archive]sResourceDataDirsFinal=STRINGS\ が設定されているので、この sResourceDataDirsFinal=STRINGS\= より後ろ STRINGS\ を消す。そして bInvalidateOlderFiles=1 の行を追加する。 StarfieldCustom.ini に設定したものと同じ内容にするということ。これでModが有効化されるらしい。

Starfieldのwem音声ファイルを解凍して再生する方法

Starfieldの音声差し替えMODを作る際の参考に。Starfieldの音声をBA2ファイルから解凍して.wemファイルを再生してみる方法。

BA2を解凍してwemファイルを取り出す

Starfieldの音声ファイルは SteamLibrary\steamapps\common\Starfield\Data\Starfield - Voices_ja01.ba2Starfield - WwiseSounds02.ba2 などでBA2で圧縮されている。BA2は下記の「BAE - Bethesda Archive Extractor」を使って解凍できる。

BAE - Bethesda Archive Extractor at Starfield Nexus - Mods and Community

BAEを起動して Starfield - Voices_ja01.ba2 をBAEにドラッグすると、中身を確認できる。

例えばアンドレヤのボイスを取り出したい場合はまず全てのチェックボックスをoffにし、上のフィルタに andreja と入力する。するとnpcfandrejaの中にすべてのボイスが入っている事がわかるのでnpcfandrejaにチェックを付けてExtractを押す。

sound\voice\starfield.esm\npcfandreja\ の中に.wemファイルが解凍される。

web上のプレイヤーでwemファイルを再生する

wemファイルはWwiseのファイルだが、とりあえずWwiseを使わずに再生だけ試したい。簡単な方法としては、下記のweb上のプレイヤーがあるのでドラッグしたらそれだけで聴ける。

vgmstream-web Player

foobar200でwemファイルを再生する

またはfoobar2000でも再生できる。

foobar2000

foobar2000をインストールし、それだけだと再生できないので下記のプラグインをインストールしたらwemファイルを聴けるようになる。

foobar2000: Components Repository - vgmstream decoder

StarfieldでModOrganizer2(MO2)でModを管理する方法

StarfieldのModの管理をModOrganizer2(MO2)で行う方法。Vortexからの移行手順つきで。

StarfieldでMODを導入する場合、手動で全てインストールする方法、Nexusmod公式の管理ツールVortexを使う方法、あとMO2を使う方法がある。少量のModを管理するだけならVortexで十分足りると思うけど、本格的なMod環境を作りたいならMO2を使うべきとされてる。

現状、MO2を使うメリットで大きいのは、今作ではModの配置先がtexture系はMy games\のDataに配置し、それ以外はゲームのインストールディレクトリのDataに配置する仕様になっている。この2つのフォルダに分かれたせいで今のVortexではMy gamesに配置するModを管理できず、どうしても手動でインストールすることになる。一方でMO2ではこれに対応しているため、両方の種類のModを意識することなく管理できる。

MO2の特徴は実際にMODのファイルをストレージディスクのフォルダ上に配置するのではなくメモリに直接MODをロードさせるために環境がクリーンに保たれること。

1. Vortex管理のMODを削除する

もしすでにVortexを使っている場合、Vortex経由で一度すべてのModを削除して綺麗な状態に戻した方が良い。Vortexを使っていない場合はこの手順はスキップする。

  1. 今インストールしているMODを忘れないようにメモしておく。自分の場合は適当にVortexの画面をスクショした

  2. VrotexのMOD一覧画面でCtrl+Aで全選択し左下にあるボタンで一括削除する

  3. Purge Modsを押す

    • VortexでMODを管理するとそれを示すためのVortex管理用のファイルがData配下に作成される。Modを削除しただけだとそれが削除されないのでPurge Modsでそれも消す。
    • Purge ModsのボタンはVortexの何かを設定しないと出てこなかったかも?放置でも問題はないので消せないなら消せないで気にしなくていい

  4. VortexのGamesタブにあるStarfieldの右上の…ボタンを押して、Stop Managingを押す

  5. Documents\My Games\Starfield\Data\Textures\ に手動でインストールしていたModがある場合はそれも削除する

2. MO2をダウンロードする

MO2のStarfield対応は現状beta版のみで、そのbeta版はDiscordに参加しないと手に入らない。

  1. 下記の公式Github内の説明にDiscordへの招待リンクがあるのでそこからDiscordに入る。「Discord」とかでブラウザ検索するとリンクは見つけやすい

    https://github.com/ModOrganizer2/modorganizer

  2. Discordに入ったら #dev-builds のチャンネル内にあるbeta版をダウンロードする。ArchiveでもInstallerでもどちらでもいいけど自分はArchiveにしたのでそちらの方法で書く

  3. ダウンロードしたものは.7zで圧縮されているのでそれを解凍する

3. MO2をインストールする

ここからMO2をどんなパスに配置してどんなフォルダ名にするかなど俺流の管理方法での説明なので、自分のやりたい用に名前など適宜変えてください。これはポータブル版前提での手順。

  1. 解凍すると Mod.Organizer-2.5.0-beta6 みたいなフォルダができるのでそのフォルダ名を mo2_starfield に変更する

    • 名前は別に変えなくてもいい。自分の場合SkyrimやFallout4など他のMO2も存在するのでどのゲームのMO2なのかがわかりやすいように名前を変えてる
  2. mo2_starfield を適切な場所に置く

    • 自分の場合は、 C:\Games\mo2_starfield こんな感じにしているので説明はこれで書いていく
    • 自分の場合は、C:\Games\mo2_starfield mo2_skyrim mo2_fallout4 とかを配置してる
  3. mo2_starfield\ 内の ModOrganizer.exe を実行する

  4. 「Creating a new instance」でNextをクリック、「Create a portable instance」をクリックする

    • global instance: 1つの ModOrganizerで複数のインスタンス、複数のゲームを管理するタイプ。
    • portable instance: 1つのModOrganizerで1つのインスタンス、ゲームのみを管理するタイプ。複数のゲームを管理する場合は、その分だけ何個もMO2を配置する必要がある。すべてのファイルが mo2_starfield\ 内で管理されてシンプル、バックアップしたい場合もこのフォルダだけを対象にしたらいいし、あるインスタンスが他のインスタンスに影響を与えないので環境が分離されてて安全。そんな感じで自分はportable instanceを選んでる。好みで選んでいい。
  5. 「Select the game to manage.」でStarfieldを選択する。

  6. 「Configure your profile settings.」はこれも人それぞれ好みがある

    • 自分の場合は、上2つの Use profile-specific... のチェックはonにしている。MO2ではプロフィールを分けてModを管理する機能があるが、それぞれでINIやセーブファイルを分離するかどうか。何でも分離させた方が安全だと思っているので自分はチェックを付けている。
      • チェックを付けると例えばsaveであれば mo2_starfield\profiles\profile_name1\saves\ に個別で保存されるようになり、他のprofileでゲームを起動するとそのセーブは見えなくなる
      • StarfiledCustom.ini`mo2_starfield\profiles\ 内のものが使用されるようになり、 My games 側を変更しても反映されなくなる。INIを編集したい場合は、MO2内のTools -> Tool plugins -> INI Editorを使用する
    • 「Automatic arcihve invalidation」はStarfiledCustom.iniに記述するいつものModを有効化する呪文を書かなくてもいいようになる設定だと思うけど具体的にどのような挙動になるのか知らない
      • 自分の場合はすでにStarfiledCustom.iniに呪文を書いて自前で有効化しているためチェックは外した

  7. 「Select a folder where the data should be stored.」は特に理由がなければそのままでNextをクリックし、Finishで完了

  8. 「Associate it with nxm links?」はYesにする

    • これをYesにしておくとブラウザでNexusmodのModをダウンロードする際に、自動的にMO2に遷移してMO2でダウンロードを行ってくれる

4. ゲームのお試し起動

a. SFSEの設定

すでにSFSEをインストールした状態でMO2を導入した場合は、自動的に検出して右側のRunボタンの横にSFSEが出ているはず。

SFSEが認識されていなかったりMO2を導入後にSFSEを入れた場合は、自分でSFSEをExecutablesに追加する

  1. メニューバーのToolsから「Executables...」を開く

  2. 左側にあるボタンの「Add an executable」から「Add from file...」を押して、 sfse_loader.exe を選択する

  3. こんな感じに設定されるはず

b. saveファイルのコピー

Use profile-specific saveにチェックを付けた場合、My games の既存のセーブは読み込まれなくなるので、コピーしてセーブファイルを持ってくる

  1. Documents\My Games\Starfield\Saves\ 内のセーブファイルを全てコピー

  2. mo2_starfield\profiles\Default\saves\ 内にセーブファイルを張り付け

c. バニラの状態で試しに起動する

  1. MO2内の右上でSFSEを使っているならSFSEを選択、使ってないならStarfiledを選択して右の「Run」で実行する

  2. 起動して既存のセーブをロードしてプレイできれば成功

5. MODのインストール方法

MO2を使うことでMy games側にインストールするModも、ゲームのインストールディレクトリ側にインストールするModも、それを気にせずにインストールが可能になる。

ただ現状MO2を使っている人が少ないとか、その機能が知られていないとかで、わざと「MOD MANAGER DOWNLOAD」ボタンを消しているMod開発者も多い。その場合はマニュアルダウンロードして、ダウンロードされた圧縮ファイルをDownloadsタブにドラッグしてインストールする。

  1. nexusmodで「MOD MANAGER DOWNLOAD」のボタンからmodをダウンロードする

  2. nxmlinksで開くかどうか聞かれるのでOKするとMO2でダウンロードが始まる

  3. MO2の右側にあるタブの中の「Downloads」にダウンロードしたものが入るので、それをダブルクリックするとインストールできる

  4. インストールすると左側の一覧にModが追加されるので、左にあるチェックボックスをonにするとModが有効化される

  5. 「Run」でゲームを起動してModが有効化されているか確認する

Webページ全体翻訳ツールの比較

Webページの全体翻訳ができるツールの比較したメモ。

Google Chromeにデフォルトで搭載されているもの

  • 右クリックのメニューやアドレスバーのボタンから使うもの
  • 見た目の構造が崩れやすい(例えばNexusmodの説明ページのリストの改行が消えたり)
  • キーボードショートカットにon/offを割り当てできないので切り替えがめんどう
  • 翻訳の精度や安定感は高い気がする
  • 前はRedditでまともに常時翻訳をonにしておくとページ遷移などが上手くいかずに使えなかった記憶があるが、今はその問題はない気がする
  • 常時onだとNexusmodのダウンロードタブから説明タブなどに戻れなくなる

Linguist - ウェブページ翻訳者

https://chrome.google.com/webstore/detail/linguist-web-pages-transl/gbefmodhlophhakmoecijeppjblibmie

  • Chrome拡張機能
  • 翻訳エンジンはGoogle翻訳にしているけどGoogle Chromeのデフォで搭載されているものより安定しない。たまに精度が低いものが表示されたりして、もう一度翻訳すると改善されたりして謎
  • ショートカットーにon/offを割り当て可能
  • Chromeのデフォのものより見た目の構造が崩れにくく、nexusmodのタブの遷移も問題なくなる

Monica - あなたの GPT-4 人工知能アシスタント

https://chrome.google.com/webstore/detail/monica-your-ai-copilot-po/ofpnmcalabcbjgholdjcjblkibolbppb

  • AI系のChrome拡張機能
  • 一番の利点は元の原文を表示したまま、追加する形で翻訳文を表示してくれる点

DeepL

  • ページ全体翻訳をするにはProプランにする必要があるが、楽天カードJCBが使えないことで課金する手段が断たれ終わる