見出し画像

Linux+Steam Play上で、Skyrim SE(1.6.640.08)+SKSE64 2.2.3+MOD環境を構築する(基礎環境構築編)


◇はじめに

Linux+Steam Play環境でもSKSE64のDLLベースプラグインやENBなどが動作します。VortexによるMOD管理、Wrye BashによるMOD適用を行ってSteamでSkyrim SEを起動させるだけでMODを通常プレイで使えるようになります。

WindowsのようにSKSE64対応MODが使えるとは限らないので、基本的にはSKSE64を使わないMOD環境から構築していき、SKSE64やSkyUIが動作したら他のMODを追加していくという感じで導入を進めていくと良いでしょう。

◇環境

[OS]
Ubuntu 22.04.3 LTS+Openbox+カスタムカーネル

[Steam Play]
Proton GE 8-25(カスタムProton)

[GPU]
Radeon RX 460

[MOD管理マネージャー]
Vortex (1.9.10)

[Skyrim]
- Skyrim SE 1.6.640.08
- SKSE64 2.2.3
- SkyUI 5.2+Edge UI
- Address Library for SKSE Plugins
- SSE Engine fix
- SSE Display Tweaks
- ENB(SubSurfaceScattering・ComplexFireLights・ComplexParticleLights・Water・EnableUnderwaterShader・ComplexParallax・ComplexParallaxShadows・Reflection・ComplexGrass・ComplexGrassCollisions・DynamicCubemap)
- ENB Light
- ENB for Water
- Soft Shadow
- ReShade(Glamayre_Fast_Effects.fx,GloomAO.fx,LumaSharpen.fx,PD80_03_Filmic_Adaptation.fx,Technicolor.fx,Unsharp.fx,FakeHDR.fx,Vibrance.fx,Levels.fx,PD80_02_Bloom.fx)
- USSEP - Japanese Voice Edit 4.1.2-r2のスクリプト部分のみ+各種バグフィクスMODを適用
- Papyrusエンジンのバグフィクス・拡張MODを適用
- Attack – MCO|DXP・Dodge – MCO|DXP
- Open Animation Replacer
- Animation Motion Revolution
- Valhalla Combat
- Precision
- SCAR
- Sexlab Framework 1.65
- Flower Girls 3.0.2
- EVG Animated Traversal
- Nemesis,FNIS

[option]
- Community Shaders(Light Limit Fix+Water blending+Glass Lighting+Vanilla HDR+Complex Parallax Materials+Tree LOD Lighting+Screen-Space Shadows+LLF Particle Lights instead of Fake Glow)

AE版・SE版(1.6.640)では、英語版と日本語版のSkyrim.exeが共有化されているので、日本語版でもMOD環境を構築出来るようになっています。

◇日本語版を英語音声+日本語字幕にする

音声は英語版をベースにしたい場合は、日本語版の音声ファイル「skyrim - voices_ja0.bsa」を、英語版の音声ファイル「Skyrim - Voices_en0.bsa」を「skyrim - voices_ja0.bsa」にリネームした物に差し替えます。

◇Linux環境にMOD管理ツール「ModOrganaizer2」をインストール

Linux環境にModOrganaizer2(MO2)を導入するには、スクリプトが公開されています。

https://github.com/rockerbacon/modorganizer2-linux-installer

◇Steam PlayにMOD管理ツール「Vortex」をインストール

※2024年1月3日現在、vortex-linuxというスクリプトでインストールが出来るようです。

MODの管理用にVortexを導入します。次のサイトの方法を参考にしました。Vortexのインストールがうまく出来ない場合は、直接MODファイルをSkyrim SEのDataディレクトリに上書きしても構いませんが、不用になったMODを削除するのが面倒になります。

1.Vortexのインストーラーをダウンロードして適当な場所に置いて、そのVortexインストーラーをLinux版Steamから「非Steamゲームを追加」で追加します。

2.Proton GEをsteamがインストールされているディレクトリ(./steamなど)の下にあるcompatibilitytools.dディレクトリに置きます。Steam上でSkyrim SEのプロパティから「互換性」でSteam Playに使う互換ツールをProton GEにします。

https://github.com/GloriousEggroll/proton-ge-custom/releases

3.VortexをSteamから起動します。ゲームは「Skyrim SE」を選択

4.~/.steam/steam/steamapps/compatdata(Ubuntuの公式リポジトリからSteamを入れた場合。Steam公式のインストーラーを使うと、~/.local/share/steam/steamapps/compatdata)の下に、10桁ぐらいの数字が入っているディレクトリが出来ています。そのディレクトリ名を記憶しておいてください。ここでは、「2847896747」であったとします。

ターミナルを起動させて、以下のコマンドを実行します。実行した後はターミナルは開いた状態のままにしておいてください。Vortexインストール用のProton環境変数の設定を行っています。ターミナルを閉じると、この変数設定が無効になるので注意してください。

export STEAMAPPID=2847896747

export X="/home/${USER}/.local/share/Steam" (Steam公式からダウンロードしたdebを使ってSteamをインストールした場合)
export X="/home/${USER}/.steam/steam" (Ubuntu公式リポジトリからAPT経由でSteamをインストールした場合)

export PFX="${X}/steamapps/compatdata/${STEAMAPPID}/pfx"

5.GitHubで公開されているproton_user_settings.pyをダウンロードして、Steamをインストールしているディレクトリ直下のsteam/steamapps/compatdataの下にコピーします。

https://gist.github.com/class101/65f3133b64ba278537ee19fbb3fbb782

6.proton_user_settings.pyをテキストエディタで開いて、以下のように変更します。SteamAppIdは、先程調べた10桁の数字です。

# Vortex Mod Manager (non-Steam app) elif SteamAppId == '2847896747': custom_settings = { "SteamAppId": "2847896747", # [fsutil.exe=d] to prevent admin rights checking on startup # [taskschd=d] to prevent a crash on browsing the Vortex settings

7.Proton GEにproton_user_settings.pyのシンボリックリンクを作成します。
以下のコマンドを実行します。

find "${X}/steamapps/common/" -name "Proton*" -exec echo '********** {} **********' \; -exec ln -sf "${X}/steamapps/compatdata/proton_user_settings.py" "{}/user_settings.py" \;

8.さらに、ターミナルはそのまま開いた状態で続けて以下のコマンドを順番に実行させます。


ln -s "${X}" "${PFX}/dosdevices/x:"

mkdir -p "${X}/steamapps/common/Vortex Mod Manager"

mv "${PFX}/drive_c/Program Files/Black Tree Gaming Ltd/Vortex/"* "${X}/steamapps/common/Vortex Mod Manager"

mkdir -p "${X}/steamapps/common/Vortex Mod Manager Downloads"

mkdir -p "${X}/steamapps/common/Vortex Mod Manager Mods Staging (Skyrim)"

mkdir -p "${PFX}/drive_c/users/steamuser/Application Data/Vortex/skyrimse"

ln -s "${X}/steamapps/common/Vortex Mod Manager Downloads" "${PFX}/drive_c/users/steamuser/Application Data/Vortex/downloads"

ln -s "${X}/steamapps/common/Vortex Mod Manager Mods Staging (Skyrim)" "${PFX}/drive_c/users/steamuser/Application Data/Vortex/skyrimse/mods"

sed -i.bak 's/C:\\Program Files\\Black Tree Gaming Ltd\\Vortex/X:\\steamapps\\common\\Vortex Mod Manager/g' "${PFX}/system.reg"

ここまでコマンドを実行したら、ターミナルを閉じて構いません。

9.Steamで1で設定したVortexのプロパティを開き、以下のパスを設定します。

リンク先:"X:\steamapps\common\Vortex Mod Manager\Vortex.exe"

これで、SteamからVortexを使ってMODをインストールする事が可能です。「.NET installation broken」という通知が出ていると思いますが、特に何も修正しなくても使えるので放置しておいて良いでしょう。

◇アニメーション追加管理にNEMESISを使う

長らくアニメーション管理にFNIS(https://www.nexusmods.com/skyrimspecialedition/mods/3038)が使われていましたが開発終了したので、FNISと下位互換を持っているNEMESISを導入します。FNISに含まれているFNIS.espをDataフォルダ直下に置くと、NEMESISでも、ほとんどのFNIS用MODを使えます。但し、SexLab系アドオンにあるクリーチャー系のアニメーションには対応していません。

基本的な使い方は、FNISとあまり変わりません。Steamのインストールディレクトリ/steam/steamapps/common/Skyrim Special Edition/Data/Nemesis_Engineの直下にあるNemesis Unlimited Behavior Engine.exeをWineで起動させます。パスを設定すれば、Vortexから起動可能。

1.Update Engineボタンを押して、NEMESISを更新
2.追加したいMODは、予めMODマネージャーでインストールしておく。
3.NEMESISが持っているMODの中で必要な物にチェックを入れる
4.Launch Nemesis Behavior Engineボタンでアニメーションを生成する
5.完了したら、NEMESISを終了させても構いません。

◇SKSE64のインストール方法

SKSE64をインストールする方法です。SKSE64は動作しているようですが、Linux+Steam Play環境でのSKSE64プラグインはWindowsのようにうまく動作しない恐れがあります。
ここでは、Enhanced Character Edit SEのフル機能を使う為に使いました。

1.SKSE64をダウンロードする

2.ダウンロードしたファイルを解凍して、Skyrim SEのインストールディレクトリの直下に上書きする。あるいは、Vortexにドラッグ&ドロップをしてインストールする。

3.SkyrimSELauncher.exeをSkyrimSELauncher_original.exeにリネーム

4.skse64_loader.exeをSkyrimSELauncher.exeにリネーム

5.Skyrim SEディレクトリにあるDataディレクトリの直下にSKSEディレクトリを新規作成し、そこにSKSE.iniを新規作成するSKSE.iniの中身は以下の通りです。

[General]
ClearInvalidRegistrations=1
EnableDiagnostics=1
[Display]
;iTintTextureResolution=2048
[Memory]
;DefaultHeapInitialAllocMB=768
;ScrapHeapSizeMB=256
[Trees] 
;bEnableTreeAnimations=0
[Grass] 
;fWaveOffsetRange=0
;fGrassWindMagnitudeMax=0
;fGrassWindMagnitudeMin=0
[Controls]
;fMouseHeadingYScale=0.0100

6.Steamから通常通りにSkyrim SEを起動させて、ゲーム開始後にセーブ・ロード画面を見ると、左下方向のバージョン名にSKSE64の名前が出ていたら、SKSE64のインストールは成功です。

◇MCMメニューが出てこない場合の対策

SLALなどMCMメニューが出てこないとMODを有効にする事が出来ない場合があります。時々MCMメニューが出てこない事がありますが、これはMODをSkyrim SE環境にインストールするとDataフォルダの直下に出来る「Scripts」フォルダの名称の文字を「scripts」に直す事で動作します。特にLinux+Steam Play環境は大文字と小文字を正確に記載しないとパスが通りません。
SKSE64+SkyUI付きでゲームを起動させるとMCMメニューに順次追加したMODの設定項目が追加されていくので暫く待つか、以下のコマンドを書いた mcm.txtをゲームフォルダに置いて、ゲームのコンソールを起動させてから「bat MCM」を動作させると、MCMメニューの追加を強制的に行えます。

setstage ski_configmanagerinstance 1

◇Wrye BashでMODを適用

MOD管理ツール「Wrye Bash」は、Vortexとは違って、インストールしたMODを適用するのに使用しました。チェックを入れたMODが動作する事になります。次のサイトを参考にしました。MODを新規に導入した時に、「Mod Installation」の項目の作業を行います。パスを指定する事で、Vortexから起動可能。

1.Proton GEをsteamがインストールされているディレクトリ(./steamなど)の下にあるcompatibilitytools.dディレクトリに置きます。Steam上でSkyrim SEのプロパティから「互換性」でSteam Playに使う互換ツールをProton GEにします。


2.Steam Play上のSkyrim SEのプロパティの起動オプションに以下のオプションを追加して、Skyrim SEを起動させると端末が起動します。ターミナルはxfce4-terminal以外でも構いません。使っているターミナルに合わせて変更してください。

xfce4-terminal && echo %command% > /dev/null

3.起動させたターミナル上でWrye Bashを起動させて、Vortexなどで導入したMODにチェックを入れます。チェックを入れたMODが実際にゲームで反映されます。Protonは、Proton GE 7-42を使っています。導入したProtonの名称に変更しておきます。
Wrye Bashが起動したら、VortexなどでインストールしたMODから使いたい物にチェックを入れます。特に保存する必要はなく、そのまま、Wrye Bashを終了させて構いません。

"/home/$USER/.steam/root/compatibilitytools.d/GE-Proton7-42/proton" run "/home/$USER/.steam/steam/steamapps/common/Skyrim Special Edition/Mopy/Wrye Bash.exe"

必要に応じて、SSEEditを使ってMOD環境をクリーンアップしても良いでしょう。SSEEditの起動方法もWrye Bashと同様に行います。SSEEditが入っているフォルダ名は「SSEEdit」に変更しておく。

"/home/$USER
/.steam
/root/compatibilitytools.d/GE-Proton7-42/proton" run "/home/$USER/.steam
/steam/steamapps/common/Skyrim Special Edition/SSEEdit/SSEEdit.exe"

Wrte Bashでチェックを入れたMODのロードオーダーを最適化するには、LOOTというツールを使う。LOOTをダウンロードしてインストールをしたら、「LOOT」フォルダに名前を変更してゲーム直下に置くと使い易い。LOOTもパスを設定すれば、Vortexから起動可能。

"/home/$USER
/.steam
/root/compatibilitytools.d/GE-Proton7-42/proton" run "/home/$USER/.steam
/steam/steamapps/common/Skyrim Special Edition/LOOT/LOOT.exe"

三本線のアイコンをクリックすると、自動的に最適なロードオーダー順にソートしてくれます。適用ボタンを押すと反映します。

◇Steam PlayからSkyrim SEを起動

Steam上のSkyrim SEの起動オプションを元に戻します。

Skyrim SEを通常通り起動させると、MODが適用された状態でゲームが遊べます。

◇ゲームパッド・キーボード・マウスのキーマップ変更ツール

Skyrim Pad Config
ゲームパッドのキーマップの設定が行える。ホットキーの追加やキーの組み合わせを設定する事も可能。保存先は「ゲーム本体が入っているフォルダ/Data/interface/controls/PC/controlmap.txt」

◇翻訳ツール

xTranslator
MODに日本語化パッチを適用する時に使う

Saints and Seducers to Japanese
AEで追加されたコンテンツ「セイント&セデューサー」の日本語訳

◇ENB+MOD入り環境のSkyrim SEの軽量化用SkyrimPrefs.iniとSkyrim.ini

△SkyrimPrefs.ini

[Display]
fShadowDistance=2000.0000
iNumFocusShadow=1
fInteriorShadowDistance=2000.0000
ffocusShadowMapDoubleEveryXUnit=450.0000
iShadowMapResolution=512
fDynamicDOFBlurMultiplier=1.0000
fProjectedUVNormalDetailTilingScale=0.8000
fProjectedUVDiffuseNormalTilingScale=0.2000
bEnableProjecteUVDiffuseNormals=0
bUseTAA=0
bIndEnable=0
bSAO_CS_Enable=0
bToggleSparkles=0
bSAOEnable=0
bScreenSpaceReflectionEnabled=0
bIBLFEnable=0
bUse64bitsHDRRenderTarget=0
iSaveGameScreenShotHeighWSt=192
iSaveGameScreenShotWidthWS=320
iSaveGameScreenShotHeight=192
iSaveGameScreenShotWidth=256
iShadowMaskQuarter=4
bVolumetricLightingEnable=0
iVolumetricLightingQuality=0
bEnableImprovedSnow=0
fLightLODStartFade=3500.0000
bFXAAEnabled=0
fLeafAnimDampenDistEnd=4600.0000
fLeafAnimDampenDistStart=3600.0000
fTreesMidLODSwitchDist=9999999.0000
fMeshLODFadePercentDefault=1.2000
fMeshLODFadeBoundDefault=256.0000
fMeshLODLevel2FadeTreeDistance=2048.0000
fMeshLODLevel1FadeTreeDistance=2844.0000
fMeshLODLevel2FadeDist=1600.0000
fMeshLODLevel1FadeDist=4000.0000
fGamma=1.0000
bBorderless=0
bFull Screen=0
iSize H=720
iSize W=1280
iScreenShotIndex=0
bTreesReceiveShadows=0
bUsePrecipitationOcclusion=0
bDrawLandShadows=0
iMaxSkinDecalsPerFrame=25
iMaxDecalsPerFrame=100
iAdapter=0
iNumSplits=2
uBookRatio=2
bForceCreateTarget=0
iReflectionResolutionDivider=2
iVSyncPresentInterval=1
bFloatPointRenderTarget=1
fShadowBiasScale=0.1500
iBlurDeferredShadowMask=1
iMultiSample=0
iMaxAnisotropy=0
bTransparencyMultisampling=0

[Imagespace]
bDoDepthOfField=1
bLensFlare=0

[General]
fLightingOutputColourClampPostSpec=1.0000
fLightingOutputColourClampPostEnv=1.0000
fLightingOutputColourClampPostLit=1.0000
iStoryManagerLoggingEvent=-1
bEnableStoryManagerLogging=0
uLargeRefLODGridSize=5
bFreebiesSeen=0

[MAIN]
fSkyCellRefFadeDistance=150000.0000
bGamepadEnable=1
bCrosshairEnabled=1
fHUDOpacity=1.0000
bSaveOnPause=0
bSaveOnTravel=1
bSaveOnWait=1
bSaveOnRest=1

[Interface]
fMouseCursorSpeed=1.0000
bDialogueSubtitles=1
bGeneralSubtitles=1
bShowCompass=1

[GamePlay]
bShowFloatingQuestMarkers=1
bShowQuestMarkers=1
iDifficulty=2

[Controls]
fMouseHeadingSensitivity=0.0125
fGamepadHeadingSensitivity=0.6667
bAlwaysRunByDefault=1
bInvertYValues=0
bGamePadRumble=1
bUseKinect=0

[Particles]
iMaxDesired=750

[SaveGame]
fAutosaveEveryXMins=15.0000

[AudioMenu]
fAudioMasterVolume=1.0000
fVal7=0.8000
uID7=1094521241
fVal6=1.0000
uID6=1093069564
fVal5=1.0000
uID5=1093069565
fVal4=1.0000
uID4=1093069566
fVal3=0.5000
uID3=466532
fVal2=0.8000
uID2=554685
fVal1=0.8000
uID1=1007612
fVal0=1.0000
uID0=94881

[Clouds]
fCloudLevel2Distance=262144.0000
fCloudLevel1Distance=32768.0000
fCloudLevel0Distance=16384.0000
fCloudNearFadeDistance=9000.0000

[Water]
bUseWaterDisplacements=1
bUseWaterRefractions=1
bUseWaterReflections=1
bUseWaterDepth=1

[TerrainManager]
fTreeLoadDistance=12500.0000
fBlockMaximumDistance=100000.0000
fBlockLevel1Distance=25000.0000
fBlockLevel0Distance=15000.0000
fSplitDistanceMult=0.5000
bShowLODInEditor=1

[NavMesh]
fObstacleAlpha=0.5000
fCoverSideHighAlpha=0.8000
fCoverSideLowAlpha=0.6500
fEdgeFullAlpha=1.0000
fEdgeHighAlpha=0.7500
fEdgeLowAlpha=0.5000
fTriangleFullAlpha=0.7000
fTriangleHighAlpha=0.3500
fTriangleLowAlpha=0.2000
fLedgeBoxHalfHeight=25.0000
fEdgeDistFromVert=10.0000
fEdgeThickness=10.0000
fPointSize=2.5000

[Trees]
bRenderSkinnedTrees=1
uiMaxSkinnedTreesToRender=40

[Grass]
fGrassStartFadeDistance=7000.0000
fGrassMaxStartFadeDistance=7000.0000
fGrassMinStartFadeDistance=0.0000

[Decals]
bSkinnedDecals=0
bDecals=0
uMaxSkinDecals=0
uMaxDecals=0
iMaxDecalsPerFrame=0
iMaxSkinDecalsPerFrame=0

[LOD]
fLODFadeOutMultSkyCell=1.0000
fLODFadeOutMultObjects=30.0000
fLODFadeOutMultItems=10.0000
fLODFadeOutMultActors=15.0000

[Launcher]
sD3DDevice="AMD Radeon RX 460 Graphics (RADV POLARIS11)"
uLastAspectRatio=1

[Bethesda.net]
uPersistentUuidData3=1943316213
uPersistentUuidData2=3217099545
uPersistentUuidData1=3924444239
uPersistentUuidData0=3607046807

△Skyrim.ini

[General]
sLanguage=JAPANESE
sTestFile1=Dawnguard.esm
sTestFile2=HearthFires.esm
sTestFile3=Dragonborn.esm

uExterior Cell Buffer=36

[Display]
fShadowLODMaxStartFade=1000.0
fSpecularLODMaxStartFade=2000.0
fLightLODMaxStartFade=3500.0
fLightLODStartFade=3500.0
iShadowMapResolutionPrimary=512
bAllowScreenshot=1
fTreesMidLODSwitchDist=9999999.0000
fFirstSliceDistance=2000.0000
fDynamicDOFFarBlur=0.4
fDDOFFocusCenterweightExt=2
fDOFMaxDepthParticipation=10000

[Audio]
fMusicDuckingSeconds=6.0
fMusicUnDuckingSeconds=8.0
fMenuModeFadeOutTime=3.0
fMenuModeFadeInTime=1.0

[Grass]
bAllowCreateGrass=1
bAllowLoadGrass=0
fGrassStartFadeDistance=35000.0000
fGrassMinStartFadeDistance=0.0000
iMaxGrassTypesPerTexure=15
iMinGrassSize=60

[Decals]
bAllowDecalsOnAlpha=1
bBackgroundInitializeGeometryDecals=1
bDecalMultithreaded=0
bDecalOcclusionQuery=1
bDecals=0
bSkinnedDecals=1
fDebrisDecalTimer=0.0049999999
uMaxSkinDecalPerActor=20
uMaxSkinDecals=35

[LightingShader]
fDecalLODFadeStart=0.45
fDecalLODFadeEnd=0.5

[Imagespace]
iRadialBlurLevel=2

[GeneralWarnings]
SGeneralMasterMismatchWarning=One or more plugins could not find the correct versions of the master files they depend on. Errors may occur during load or game play. Check the "Warnings.txt" file for more information.

[Fonts]
sFontConfigFile=Interface\FontConfig_ja.txt

[Archive]
sResourceArchiveList=Skyrim - Misc.bsa, Skyrim - Shaders.bsa, Skyrim - Interface.bsa, Skyrim - Animations.bsa, Skyrim - Meshes0.bsa, Skyrim - Meshes1.bsa, Skyrim - Sounds.bsa
sResourceArchiveList2=Skyrim - Voices_ja0.bsa, Skyrim - Textures0.bsa, Skyrim - Textures1.bsa, Skyrim - Textures2.bsa, Skyrim - Textures3.bsa, Skyrim - Textures4.bsa, Skyrim - Textures5.bsa, Skyrim - Textures6.bsa, Skyrim - Textures7.bsa, Skyrim - Textures8.bsa, Skyrim - Patch.bsa
bLoadArchiveInMemory=1
sArchiveToLoadInMemoryList=Skyrim - Animations.bsa

[Combat]
fMagnetismStrafeHeadingMult=0.0
fMagnetismLookingMult=0.0

[Actor]
bUseNavMeshForMovement=0

[Papyrus]
fPostLoadUpdateTimeMS=500.0
bEnableLogging=0
bEnableTrace=0
bLoadDebugInformation=0

[Trees] 
bEnableTreeAnimations=0

基礎環境が構築出来たら、次はクエストやフォロワー、戦闘システムのオーバーホールなどを行っていきます。


この記事が気に入ったらサポートをしてみませんか?