2020年4月15日

esp を esl や espFE ファイルに変換する方法

スカイリムSE版ではMODに「esl ファイル」というものが使えます。これにより、導入MODの上限数を飛躍的に向上させることができます。

この esl に続いて今は espFE という形式もあるようで、気になったので少し調べてみました。

それぞれの形式の概要に加えて、作成した esp ファイルを変換する方法についても書き残しておきたいと思います。


目次

  1. esl ファイルとは
  2. espFE ファイルとは
  3. SSEEdit で espFE ファイルに変換する
  4. CKで esl ファイルに変換する
  5. esl や espFE の配布を前提にした esp を作成する
  6. 参考情報

1. esl ファイルとは

1-1. 概要

拡張子は「.esl」です。従来の esp 1枠分にすべての esl が収められるため、esm/esp 255個制限を突破してMODを導入できます。その代わり、制限もいくつかあります。

概要は以下の通りです。

  • すべての esl のロードオーダー番号が「FE」で固定され、従来の esp 1枠分に収められる。
  • esl 群のロード順は esm 群と esp 群との間になり、下の方に配置して優先させることはできない。
  • 他のMODからマスターファイルに指定できないため、esl に対するパッチを作成することは不可。
  • CKで作成できるが、再編集できない。SSEEdit では編集可能で、xTranslator での翻訳も可能。
  • VR版では利用できないらしい。
1-2. Form ID の制限

esl は、Form ID の無駄を切り詰めることで従来の esp 1枠分に収まるようにしています。

スカイリムの Form ID は8桁で表記されますが、esl の最上位2桁 (ロードオーダー番号) は「FE」で固定されます。

次に続く3桁が esl 間でのロード順を表し、FE000~FEFFF までの4096個が esl を導入できる理論上の最大値となっています。

これで上位5桁を使っていますので、残りの下位3桁が1つの esl 内で使える部分となります。
そうすると1つ目の esl では FE000000~FE000FFF まで使えることになりそうですが、esl の ID は FE000800 が最小値で、それより小さい数値は扱えないようです。そのため、FE000800~FE000FFF までの2048個が、1つの esl 内で割り振れる Form ID になります。

2048個でもかなりの数なので、装備MODや小規模MODなら十分でしょう。逆に新天地MODなど大量のオブジェクトを追加するMODでは、esl 化は適さないことが分かります。

1-3. esl を配布する意義

正直なところ、後述の espFE と比べてしまうと意義は薄いと思います。

しかし、拡張子を見れば esl であることが分かるのは利点であり、さらにCKの標準機能でサポートされる形式なので、それらを気にかけるユーザーさんには優しいと思います。

目次に戻る


2. espFE ファイルとは

2-1. 概要

拡張子は「.esp」です。esp に「ESLフラグ」を付け、拡張子はそのままで esl として利用できるようにしたファイルのことです。

この形式は「ESPFE」と大文字表記されるのが主流ですが、私が見やすいという理由でここでは「espFE」と書いています。

  • ロードオーダー番号が「FE」となり従来の esp 1枠分に収められることは esl と同じで、esl との共存も可能。Form ID の制限も同じ。
  • 各 espFE のロード順は、従来の esp のように自由に変更することができる。
  • 他のMODからマスターファイルに指定できるため、espFE に対するパッチを作成することが可能。
  • 作成には SSEEdit が必要だが、CKで再編集することができる。xTranslator での翻訳も可能。
  • スクリプトを含むMODだと不都合が出るかもしれないという情報がある。
2-2. espFE を配布する意義

まず、パッチを作成できることがユーザーさんにとって最大の利点かと思います。
ロード順も変更できるため、従来の esp と同じ感覚で使ってもらうことができます。

VR版のことも考慮すると従来通りの esp の配布は必要ですので、それに加えて espFE を配布するのが優しいのかなと思います。
ただ、拡張子だけでは判断できないため、ダウンロードするところには「esp」なのか「ESPFE」なのかを明記しておくべきでしょう。

目次に戻る


3. SSEEdit で espFE ファイルに変換する

3-1. SSEEdit の導入

それでは変換方法へ入ります。まずはお勧めした espFE へ変換してみます。

SSEEdit を使いますので、Nexus Mods から最新版をダウンロードし、任意の場所に解凍して "SSEEdit.exe" を実行してください。

SSEEdit | Nexus Mods

3-2. espの読み込み

SSEEdit を起動したら、変換する esp にチェックを入れてOKボタンを押します。

右領域に「finished」の文字が出るまで待ちます。

3-3. オプションの変更

espFE を認識しやすくするため、左上のボタンからオプションを開きます。

「Show file header flags」にチェックを入れます。これにより、ESLフラグを付けたときに分かりやすくなります。

3-4. Form ID の確認と変更

最も重要な過程です。

esp で新規に追加している Form ID が、esl として使用可能な範囲に収まっているか確認します。

上図では「01000800 IronDaggerNew」が新しい項目です。最上位2桁は無視して良いので、続く6桁を見ます。

6桁のうち、上位3桁は必ず「000」である必要があります。さらに下位3桁は「800~FFF」の範囲に収まっていなければなりません。

普通にCKで作っていると、これに収まらない Form ID が使われることが多々ありますので、ここで修正を行います。変更したい ID を右クリックして「Change FormID」を選択します。

新しい Form ID は、8桁のうち最上位2桁は変更せず、続く3桁を「000」にして、下位3桁を「800」から付けていくと良いでしょう。
800 以降は16進数で FFF まで使えます。16進数は「0123456789ABCDEF」の16個で表現する方法です。例えば 809 の次は 80A になります。80F の次が 810 になります。

ちなみに、バニラのオブジェクトを変更した項目については ID を気にする必要はありませんし、むしろ変更してはいけません。
上で読み込んだ esp で言うと「0001397E IronDagger」がそれに当たります。ここはそのままで良く、あくまでも新規追加した項目だけ確認すればOKです。

3-5. ESLフラグの付加

Form ID さえ確認できれば、あとはフラグを付加するだけで espFE になります。
左領域で対象の esp を選択し、右領域の「Record Flags」を右クリックして「Edit」します。

ダイアログが出たら、「ESL」にチェックを入れてOKします。

すると、下図のように <ESL> の文字が出ます。

3-6. esp の保存

左上のボタンから「Save」を選択します。

ダイアログが出るので、変更した esp にチェックが入っていることを確認してOKします。

これで espFE に変換することができました。
このファイルを開き直してみると、ESLフラグを認識して下図のように表示が変化します。

目次に戻る


4. CKで esl ファイルに変換する

4-1. Form ID の自動調整

espFE の方が利点が多いとは言え、CKで esl に変換する方法も大事です。

特にこの Form ID 自動調整機能は役に立ちます。この機能を使うと、ID の下6桁を「000800~000FFF」に自動で収めてくれます。

調整方法自体は簡単で、CKで esp を読み込んだ後に「File > Compact Active File Form IDs」を選択するだけです。下図で囲ったうちの上側です。

実行確認のダイアログが出ますので、「はい」を押します。

完了すると、使った ID の最大値を表示してくれます。

4-2. esl への変換

esl への変換も簡単で、「File > Convert Active File to Light Master」を選択するだけです。一応確認のダイアログが出ますので「はい」を押します。

これで、Data フォルダ内に esl ファイルが作成されています。元の esp とは別物です。
SSEEdit で開いてみると、[ESM] とESLフラグが付いた状態のファイルとして見ることができます。

目次に戻る


5. esl や espFE の配布を前提にした esp を作成する

5-1. LE版で作成し、SE版にも変換して配布する場合

MODをLE版CKで作成し、その esp をSE版CKで保存し直す場合です。
LE版の esp に加えて、SE版の esp と espFE (または esl) も配布することを考えてみます。

気を付けるのは espFE の Form ID 制限ですので、これをLE版作成時から対応させておくのが良いでしょう。
TES5Edit でも SSEEdit と同様に Form ID を変更できますので、先を見越して次のように作成します。

  1. LE版CKで通常通り esp を作成する。
  2. TES5Edit で読み込み、新規追加項目の Form ID 下6桁を「000800~000FFF」に収まるように修正する。 (LE版完成)
  3. LE版 esp をSE版の Data フォルダにコピーしてSE版CKで読み込み、保存する。 (SE版 esp 完成)
  4. SE版 esp を SSEEdit で読み込み、ESLフラグを付加する。 (SE版 espFE 完成)

LE版の段階で Form ID を修正する理由は、MODのアップデートを考慮しているからです。

ID の修正を4番のSE版 espFE でのみ行ってしまうと、LE版をアップデートした際、SE版に変換するたびに ID の修正が必要になってしまいます。

LE版の段階で修正しておけば、アップデートの際もSE版 espFE の作成まですんなりと行うことができます。LE版CKには ID 自動調整機能はありませんので、TES5Edit を使って手動で行います。

もしすでに公開済みのMODでこれから espFE に対応しようとする場合、運よく Form ID が範囲内にあればそのまま行えば良いでしょう。

範囲外の項目がある場合、アップデートするごとにその ID を修正してから espFE に変換し、配布することになってしまいます。

これはかなり面倒なので、早い段階でMODの再導入をお願いする方が良いかもしれません。

旧バージョンのMODを抜いてからセーブデータをロードしてセーブすれば、MODで追加したものは消えます。それから最新版を再度導入してもらうという方法です。

スクリプトを含まない装備MODならこれで良いと思います。所持品から消えるのでユーザーさんには再取得してもらう必要がありますが、以後のアップデートで作成者が ID を毎回修正しなければならないよりは安全でしょう。

5-2. SE版のみを配布する場合

SE版しか作らない場合は、手順が短いです。

  1. SE版CKで通常通り esp を作成する。
  2. CKの「Compact Active File Form IDs」を使い、ID を自動調整して保存する。 (SE版 esp 完成)
  3. SSEEdit で読み込み、ESLフラグを付加する。 (SE版 espFE 完成)

ID の調整をCKに任せてしまえるので、とても楽ですね。最初に公開する前に自動調整することができれば、アップデートで新規項目を追加しても既存項目の ID は変わらないので、再度自動調整を行えば良いだけです。

注意するのは既存項目を削除した場合で、欠番になったはずの ID に対して、自動調整機能が新しい項目を当てはめてしまう可能性があります。

既存項目を削除しないようにするか、または SSEEdit で新旧の esp を比較し、ID の置き換えが発生していないか確認することになるでしょう。

また、espFE ではなく esl で配布する場合は、次のようにすべての操作をCKで行うことができるため、作成者の負担がより少なくなります。

  1. SE版CKで通常通り esp を作成する。
  2. CKの「Compact Active File Form IDs」を使い、ID を自動調整して保存する。 (SE版 esp 完成)
  3. CKの「Convert Active File to Light Master」を使い、esl を作成する。 (SE版 esl 完成)

パッチ作成への対応やロード順を考慮する必要性の低いMODであれば、esl で配布しても良いと思います。

5-3. esl や espFE の配布をするかどうか

最後におまけの雑談です。

今回お示しした通り、変換方法はそこまで難しいものではありません。ユーザーさんにとって esl や espFE も選べるならそれに越したことはありませんので、余裕があれば配布すると良いでしょう。

気を付ける点として、配布するファイルの種類が多いとその管理が大変になります。それぞれのフォルダを作って間違えないようにしておく必要がありますし、何よりアップデートに合わせてどんどん管理対象が増えることになります。

ユーザーさんの利便性を考慮して全部配布するのか、esl または espFE の片方で対応するのか、公開前に考えておけるといいですね。
もちろん配布義務はありませんので、「esp だけ配布するよ」というスタンスでもまったく問題ないと思います。(←私今ここ)

世の流れ的には、esp を作成した段階で Form ID を範囲内に収めておいたりするのは良いことかもしれません。それなら esp しか配布しなくてもユーザーさん個人で espFE 化をしやすいので、「いいね!」と思ってくれたりするかも…。しないかな。

目次に戻る


6. 参考情報

目次に戻る

4 件のコメント:

  1. eka.さん こんばんは!

    なんと詳しい解説ありがとうございます!!!!!
    私のやりたいことが全部書いてあったー!

    一応
    How to (Easily) convert ESPs into ESLs using xEdit - SSE | Nexus Mods

    Skyrim箱庭DIYさんの FO4版のほうにeslの変更方法が解説されていたので
    読んだのですが、眠くなりました>おぃ
    ですので、eka.さんの説明はそれらを総合したskyrim用にわかりやすい説明になっていてとても助かります!

    読み進めると改めて思うのは、LE版の時点でForm IDを直しておいた方がよさそうってことですね。
    実は、自動のやり方についてはなるほどと思っていても、手動はどうするんだろ?って思っていたので
    その辺も網羅されていてありがたかったです。

    話は少し変わりますが、私のMOD、なんだかんだいっても
    クラフト版だけでなくエンチャントなしもあったほうがいいのかな?
    とも思いはじめ、「私のこだわりとはたいしたことねーなー(遠い目)」となってました。(笑)

    作業も単純ではあるのであってもいいかなと思い始めていました。
    しかしLE版はそれでもよいとして、SE版のesl版が非常にネックでして
    やる気が起きなかったのですが、こちらをみればできちゃう!とおもい
    ちょっとやる気が出てきました。

    また espFEというものがあるのも今初めて知りました。
    こちらのほうが eslより便利そうですよね。
    ロード順変えられるって結構大事だと思うんです。

    作者はすべての要望に応えられるわけではないので、自分で改変できる余地を作っておいた方が
    いいんじゃないかなとも思っていたので、いい話を聞けたな~と思っています。

    明日にでもちょっとチャレンジしてみようかなと思います。
    ありがとうございました。
    (カジートに装備させることは、できるようになりました。)

    それでは~。

    返信削除
    返信
    1. りんさんありがとうございます!褒められた嬉しい☆
      噂の esl に足を踏み入れてみました。この記事も文章が多いので、眠くなったら迷わず寝てください。Zzz…

      LE版の時点で ID を手動で直すのは手間なんですが、MODのアップデートを視野に入れるとそれが一番楽なのかなと思います。
      裏技的には、「LE版の esp をSE版CKで読み込んで ID を自動調整し、それをLE版CKで読み込んで保存し直す」という手段が考えられるんですけど、SE版 esp をLE版CKで保存し直すことの安全性に関する情報が見当たらないんです。
      一応、SE版からLE版へのコンバートということで普通は大丈夫みたいなんですが…。なんか新しい形式のファイルを旧式のソフトウェアで読み込むのが不安なんですよね。ここは作者の判断にお任せしようと思ってあえて書きませんでした。

      あっあとエンチャントについて!まずりんさんのこだわりは絶対大事にしてください!作者こだわりの部分は妥協不要!その上で。

      「エンチャントなしが良い」というコメントが見受けられましたが、この真意は「エンチャントを何も付けたくない」というのではなく、「好きなエンチャントを自分で付けたい」のではないかと思います。
      例えば私なら、サークレットにはいつも決まって「弓術上昇」を付けています。自分の中での決め事みたいな感じ。
      あらかじめ何か付いていると追加や変更ができませんから、それでデフォルトではなしにしておいて欲しいと言ってるのではないでしょうか。サークレットの代わりに装備するからこその意見かと。

      とはいえ、ブログでおっしゃってたように修正はCK等でできるので(しかも超簡単)、ユーザーまかせでもいいと私は思ってます。
      そういう意味でも「自分で改変できる余地を作っておいた方がいい」という考えは賛成です。espFE での配布ならパッチも作れるので良いかもしれませんね。

      余計なお世話を言っちゃいましたが、それはともかくとしてカジートにも装備させられるようになったんですかー!どんどんいくなぁ。
      ステップアップする様子を見てほんといい刺激になっています。お互いにどんどんチャレンジしていきましょう!

      削除
  2. eka.さんこんばんは~。

    たしかに新しいヴァージョンのソフトで作ったものを古いヴァージョンのソフトに入れて
    保存しなおすのって、あまり気持ちよくないですよね。
    office系によくやられて困る感じですよねw
    なのでその意見には賛成です。
    LE版の方には申し訳ないのですが仕方がないですし
    今回のバージョンで満足されている方はそのまま使うと思うので
    あまり気にしないことにします。


    >「好きなエンチャントを自分で付けたい」

    そういうことなんだなって私も気が付きました。

    調べているとどんな装備にも好きなエンチャントを付けるMODがあって、
    あーーそういうことかと思いました。
    (もしやそのMODがなくてもエンチャントできちゃうのかしら?)

    esPFEは今日はちょっと試していません。
    ここを読んだら安心してしまって、いつでもできる気持ちになってしまいましたw
    男性用のピアスを仕上げて、必要なオブジェクトをそろえてからやってみようと思います。

    一応、商人を配置する予定なのですが、既存の商人をコピーするつもりなので
    ESPFE化しても問題ないのかな~って勝手に思ってます。
    (見た目はカジートにしようと思ってます。バニラでもかわいいので。)

    カジートの装備はちょっとした発想の転換が必要で位置があまりかわらなければ
    新たにメッシュファイルを準備する必要もなさそうです。

    あとで、ブログに記録として残しておくつもりです。

    余計なお世話なんてことはないですよー。
    逆にありがたいです。

    色々チャレンジしましょう!!

    返信削除
    返信
    1. りんさんこんにちは~
      SE版で作成されてからLEにコンバートしてるMODも結構あるみたいなので、おそらく問題ないんだろうとは思います。ただ心配性なので何か裏付けが欲しいんですよね。私に検証スキルがあったら良かったんですけど…無い。

      エンチャントについては気付いておられたようで!なんにせよ解決に向かってよかったです。
      ちなみにりんさんの髪飾りも、CKでエンチャントを外すだけで付呪できるようになります。
      バニラの付呪システムで可能です。

      espFE 化は ID さえ収めればいつでもすぐできますし、もう後まわしにして忘れてください。クマの方が大事です。必要になったらまたここ見にきてくだされば!

      商人の配置はいい解決策だと思います。カジートコピーなら顔作らなくていいし。
      レシピを大量追加するのって気が引けますよね!なんか見づらくしちゃってごめん…みたいな気持ちになる。

      カジートの頭装備は大変らしいっていうくらいにしか知識がないんですけど、発想の転換には結構興味があるので楽しみにしています☆

      削除

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