Dubbingowanie Skyrima #1

Pliki i narzędzia

Wstęp

To będzie pierwszy wpis z serii postów o implementacji dubbingu do modów do Skyrima, na bazie doświadczeń z dubbingiem modyfikacji do Skyrima Alternate Start oraz Gifts of the Outsider (wciąż pracuję nad tym).

Ten artykuł skupi się na plikach, narzędziach modderskich oraz konfiguracji wine na Linuxie.

Plan jest taki, że ta seria wpisów będzie służyć jako poradnik do dubbingowania modów do Skyrima od początku do końca.

Praktyczne zastosowanie pokryję w kolejnych wpisach.

Formaty plików, jakie można napotkać w kontekście dubbingu

  • .bsa - archiwum na dane jak tekstury czy głosy odczytywane przez silnik Skyrima
  • .fuz - kontener zawierający w sobie plik audio (Skyrim to .wav / .xwm a Oblivion to .mp3) oraz, opcjonalnie, .lip
  • .lip - plik zawierający informacje o tym, jak postać ma ruszać ustami
  • .xwm - skompresowany format audio będącym wariantem Windows Media Audio
  • .wav - nieskompresowany format audio
  • .esp / .esm / .esl - pliki pluginów zawierających informacje o zasobach jak tekst, questy czy odniesienie do audio w modzie / grze / pluginie

Narzędzia modderskie

YakitoriAudioConverter

Ten program umożliwia spakowanie i rozpakowanie pliku .fuz do pliku .wav oraz, opcjonalnie, .lip co jest istotne w kontekście dubbingu.

Też umożliwia konwersję .wav na .xwm i inne formaty.

Co lepsze, te zmiany mogą być wykonane en-masse na wielu wątkach, co przyspiesza pracę na sporych modach.

Należy pamiętać, żeby zapodać mu ffmpeg w folderze z plikiem wykonywalnym, by mógł konwertować do większej ilości formatów.

Link

BSArch

Za pomocą tego narzędzia można spakować i rozpakować archiwa bsa do gier bethesdy tj. Morrowind, Oblivion, Skyrim (Oldrim, SE / AE), Fallout 3, Fallout: New Vegas, Fallout 4 oraz Starfield.

Można znaleźć wariant CLI oraz GUI. Tutaj będę korzystać z wersji CLI, ale nic nie broni korzystać z GUI.

Ciekawostka dostarczona przez Świętego z trzeciej ulicy: xEdit przychodzi z BSArchPro, a najnowszą wersję można uzyskać z serwera discordowego na kanale xedit-builds

Link do CLI

Link do GUI

Link z zaproszeniem do discorda xEdit

FaceFXWrapper

To narzędzie CLI, które umożliwia generowanie plików .lip bez wchodzenia do CreationKit.

Do działania wymaga FonixData.cdf.

Link do FaceFXWrapper

Repozytorium FaceFXWrapper

Link do FonixData.cdf

xWMAEncode

To narzędzie CLI zdolne konwertować z .wav na .xwm i vice-versa.

Dochodzi ono w pakiecie z YakitoriAudioConverter.

Jak szukam, nie mogłem znaleźć pliku do pobrania standalone, jednak znalazłem minimalne narzędzie wrapujące xWMAEncode.

Link

xTranslator

To program, który w gruncie rzeczy służy do tworzenia tłumaczeń do modyfikacji gier Bethesdy.

Tutaj przyda się funkcjonalność eksportu do XML, który zawiera informacje o każdym wpisie w projekcie wraz z audio, w celu przyszłego przetwarzania audio i tworzenia pliku .lip, który wymaga tekstu źródłowego.

Link

Linux

Jak testowałem, to BSArch.exe, YakitoriAudioConverter oraz xTranslator działają pod wine (testowane na wine-11.0 staging), ale wymagają zainstalowanego dotnet 6.

Założę tutaj prefix wine_dotnet jako nazwę w dalszych skryptach, zatem ścieżka to będzie $HOME/.local/share/wineprefixes/wine_dotnet.

Komendy tworząca prefix:

export WINEPREFIX=$HOME/.local/share/wineprefixes/wine_dotnet

wineboot
winetricks dotnet6

Ze względu na to, jak logi wine potrafią być spore, to póki nie ma błędów, sugeruję przekierować stderr do /dev/null.

Przykładowa komenda uruchomienia programu:

WINEPREFIX=$HOME/.local/share/wineprefixes/wine_dotnet wine YakitoriAudioConverter.exe 2>/dev/null

Podsumowanie

Tak oto prezentuje się wybór głównych narzędzi, które będą wykorzystywane w procesie wprowadzania dubbingu do modyfikacji do Skyrima.

W przyszłości zamierzam zrobić wpisy o wykorzystaniu wspomnianych narzędzi w celu łatwego tworzenia i wprowadzania poprawek do finalnego rezultatu.

Po drodze wbije Python do automatyzacji procesów czy yq do przetworzenia XMLa z xTranslatora. Będę tłumaczył, co odpowiada za co oraz stosował w miarę prosty kod, więc nie trzeba być programistą na starcie, ale przyda się podstawowa znajomość Pythona oraz wiersza poleceń na starcie.