2019年2月23日

SkyrimPrefs.ini を選択してスカイリムを起動するバッチ

描画設定ファイルの "SkyrimPrefs.ini" をいくつか用意しておき、使用するiniファイルを選択してからスカイリムを起動するバッチです。

フルスクリーンモード用とウィンドウモード用を切り替えたいときや、様々な描画設定を試したいときなどにお使いください。

※今のところLE版専用です。


1. ダウンロード (uploader.jp)

SkyrimPrefsIni_選択起動.zip

zip形式ですので、任意の場所に解凍してください。中身は以下のような構成になっています。

  • "iniファイル" フォルダ
  • "PrefsIni_選択起動.txt"
  • "previous.txt"

2. 使い方

2-1. iniファイルを用意する

まず、使いたい "SkyrimPrefs.ini" を次のようにリネームして、"iniファイル" フォルダに入れます。

  • SkyrimPrefs_識別名.ini

「SkyrimPrefs」のあとにアンダーバー「_」を入れ、識別名を入力してください。

識別名は日本語でも大丈夫ですが、空白を用いないようにしてください。空白を含むファイル名には対応していません。

画像は1例です。iniファイルは同梱しておりません。

2-2. 必要に応じてテキストファイルを編集する

通常は、このステップは不要です。以下の2項目を変更している場合のみ行ってください。

  • スカイリムのインストールフォルダ("TESV.exe" があるフォルダ)
  • ドキュメントフォルダ("SkyrimPrefs.ini" が保存されている親フォルダ)

該当する場合は "PrefsIni_選択起動.txt" を開き、「設定」内の項目を書き換えてください。

2-3. 拡張子を変更する

"PrefsIni_選択起動.txt" の拡張子を、「txt」から「bat」に変更します。

最初から「bat」にしていないのは、皆様にバッチそのものをダウンロードさせてしまうのは良くないと考えているからです。

このページの最後にバッチ内容を公開していますので、気になる方はファイルの内容と同じかどうかご確認のうえ、ご利用ください。

2-4. バッチを実行する

以上で設定は終わりです。"PrefsIni_選択起動.bat" を実行すると下図のようにリストが表示され、入力された番号のiniファイルを使ってスカイリムを起動します。

SKSEを導入していて "skse_loader.exe" が存在すれば自動的にそれを起動し、なければ "TESV.exe" を起動します。

切り替え前のiniファイルは、バッチと同じ階層に "SkyrimPrefs_Backup.ini" としてバックアップされます。バックアップは、切り替えのたびに上書きされます。


3. ウィンドウの設定

余談になりますが、スカイリムのウィンドウに関する設定箇所を書いておきたいと思います。

「フルスクリーンモードとウィンドウモードの切り替え」や「ウィンドウモードのサイズ」は、"SkyrimPrefs.ini" の以下の行で設定できます。
もし該当する箇所がなければ行を追加してください。

[Display]
bFull Screen=0
iSize H=900
iSize W=1600
  • bFull Screen … 0:ウィンドウモード、1:フルスクリーンモード
  • iSize H … ウィンドウモードの高さ、フルスクリーンモードの縦解像度(制限あり)
  • iSize W … ウィンドウモードの幅、フルスクリーンモードの横解像度(制限あり)

一方、「ウィンドウモードの位置」は、"Skyrim.ini" の以下の行で設定できます。
こちらも、もし該当する箇所がなければ行を追加してください。

[Display]
iLocation X=100
iLocation Y=100

スクリーン左上の座標を (X, Y) = (0, 0) として、Xは右方向、Yは下方向へ移動させたい数値を入力すればOKです。


4. バッチ内容

最後に、バッチの内容を載せておきます。
配布したファイルでは「タブ」を使っていますが、ここに載せるにあたって「半角スペース4つ」に変換しています。

@echo off
rem ======================
rem ▼---------------設定---------------▼
rem 【1. スカイリムのインストールフォルダ】
set TESVFolder=C:\Program Files (x86)\Steam\steamapps\common\Skyrim

rem 【2. ドキュメントフォルダ(独自に変更している場合のみ)】
set Documents=%USERPROFILE%\Documents
rem ▲-----------------------------------▲
rem ======================

if not exist "%TESVFolder%\\" (
    echo "%TESVFolder%" が見つかりません。フォルダパスを正しく指定してください。
    pause > nul & exit /b
)

if exist "%Documents%\\" (goto SteamCheck)

set Documents=%USERPROFILE%\My Documents
if not exist "%Documents%\\" (
    echo ドキュメントフォルダが見つかりません。フォルダパスを正しく指定してください。
    pause > nul & exit /b
)

:SteamCheck
tasklist | find /c "Steam.exe" > nul
if %ERRORLEVEL% neq 0 (
    if not exist "C:\Program Files (x86)\Steam\Steam.exe" (
        echo Steam が起動されていません。処理を中止します。
        pause > nul & exit /b
    )
    echo Steam を起動します。その後、このバッチを再度実行してください。
    pause > nul
    start "" "C:\Program Files (x86)\Steam\Steam.exe"
    exit /b
)

cd /d %~dp0\iniファイル
set Documents=%Documents%\My Games\Skyrim

if not exist %~dp0\previous.txt (
    type nul > %~dp0\previous.txt
)
set /p Previous=<%~dp0\previous.txt
set Previous=%Previous:~0, -1%

set /a n=0
echo. & echo  [iniファイルリスト]  ★:前回の設定

setlocal enabledelayedexpansion
for /f %%i in ('dir /a-d /b /on "SkyrimPrefs_*.ini"') do (
    set /a n+=1
    if "%%i" == "!Previous!" (
        echo   !n!. %%i ★
    ) else (
        echo   !n!. %%i
    )
)

if !n! neq 0 (goto ChoiceNum)

echo.
set /p Running=このまま変更せずにスカイリムを起動しますか? (y/n):
if "%Running%" == "" (goto Run)
if /i "%Running%" == "y" (goto Run)
if /i "%Running%" == "yes" (goto Run)
echo. & echo 処理を中止します。
pause > nul & exit /b

:ChoiceNum
echo. & echo 使用するiniファイルの番号を入力してください。 & echo 「0」で終了します。空欄や無効な数値の場合、変更せずに起動します。 & echo.
set /p Choice=番号入力:
if "%Choice%" == "" (goto Run)

set /a Choice/=1
if %Choice% equ 0 (exit /b)
if %Choice% gtr 1 (goto Choice2)

for /f %%k in ('dir /a-d /b /on "SkyrimPrefs_*.ini"') do (
    set Previous=%%k
    goto SavePrevious
)

:Choice2
set /a Choice-=1
for /f "skip=%Choice%" %%k in ('dir /a-d /b /on "SkyrimPrefs_*.ini"') do (
    set Previous=%%k
    goto SavePrevious
)

:SavePrevious
cd /d %~dp0
type nul > previous.txt
echo !Previous! >> previous.txt

copy /y "%Documents%\SkyrimPrefs.ini" "SkyrimPrefs_Backup.ini" > nul
ping localhost -n 1 > nul
copy /y "iniファイル\%Previous%" "%Documents%\SkyrimPrefs.ini" > nul
ping localhost -n 1 > nul

:Run
cd /d %TESVFolder%
if exist "skse_loader.exe" (
    start "" "skse_loader.exe"
) else (
    start "" "TESV.exe"
)

「iniの切り替えだけして、スカイリムの起動はしたくない」という場合は、最後の6行(cd /d %TESVFolder% ~)をまるっと削除すればよいとおもいます。

0 件のコメント:

コメントを投稿

注: コメントを投稿できるのは、このブログのメンバーだけです。