Thinking Skeever

Skyrim/The Witcher 3 Modについてのあれこれ。FoModの作り方、Mod導入時のトラブル事例などのニッチな話を書いていきます。a.k.a. BowmoreLover@nexusmods

FOModの作り方(準備編)

FOModを作る前にFOModについてのおさらいと作業の準備をしましょう。


FOModとは

Mod管理ツールでインストール画面を表示する仕組み。画面で項目を選択してインストールできるようになります。

 

 

FOMod化のメリット

  • Modのアーカイブファイル数を減らすことができる。オプションのファイルがずらりと並んでわかりにくい、という状況を改善できる。
  • インストール画面で説明、注意事項、スクリーンショットなどを表示することができる。
  • ユーザーの単純な導入ミスを防止できる。

FOMod化のデメリット

  • すべてのオプションを1つのアーカイブファイルにまとめるのでファイル容量が大きくなりがち。

FOModの作成に必要なもの

 手に馴染むものならなんでもいいです。なんならメモ帳でも。
 私はサクラエディタ(http://sakura-editor.sourceforge.net/)にXMLアウトライン解析プラグイン(http://sakura.qp.land.to/?Plugin%2F%C5%EA%B9%C6%2F2)を入れています。

  • XMLの基礎的な知識

 ググれば詳細な説明が見つかりますがノリで書いていけば大丈夫。簡単です。

  • Mod管理ツール

 Nexus Mod Manager(NMM)とMod Organizer(MO)
 必ず両方導入しましょう。FOModの動作が微妙に違うので両方での動作確認が重要です。

  • Skyrimインストールフォルダのバックアップ

 転ばぬ先の杖。

XMLの記述ルール(ざっくりと)

  • <>で囲まれたタグを使ってデータを表現する。
  • タグには開始タグと終了タグがあり、必ず1:1に対応する必要がある。
<Name></Name>
  • タグの間に値を書くことができる。
<Name>ドヴァキンさん</Name>
  • タグ間の値がない場合、開始タグと終了タグをまとめることができる。
<Name/>
  • タグ中には属性を書くことができる。
<Actor type="player">
  • タグは入れ子構造にすることができる。
<GameInfo>
    <Actor type="player">
        <Name>ドヴァキンさん</Name>
        <Level>21</Level>
    </Actor>
    <Actor type="follower">
        <Name>ジョディスさん</Name>
        <Level>19</Level>
    </Actor>
</GameInfo>
  • で囲むとコメントになる。
<!-- プレイヤーの情報 -->
<Actor type="player">
    <Name>ドヴァキンさん</Name>
    <Level>21</Level>
</Actor>
特殊文字 記法
アンパーサント(&) &amp;
小なり(<) &lt;
大なり(>) &gt;
アポストロフィ(') &apos;
クオート(") &quot;
10進数で文字指定 &#n;
16進数で文字指定 &#xn;
  • 特殊文字が多い場合 で囲む。(値にのみ有効)
<Message><![CDATA[こんなに&<>特殊文字"'を使っても<aaa>大丈夫&&&です]]></Message>
  • ファイルの先頭に次のようなおまじないを書く。詳細は後述。
<?xml version="1.0" encoding="UTF-16"?>

XMLの保存形式について

すべて英文ならSJISでも問題ないようですが、ローカライズを考慮してUnicodeで作成しましょう。
Unicodeにはいくつかのエンコード方式がありますが、UTF-8UTF-16(BOM付)のどちらかを使うのが一般的なようです。

保存形式によってXML先頭行のおまじないが異なります。

<?xml version="1.0" encoding="UTF-8"?>
<?xml version="1.0" encoding="UTF-16"?>

流通しているModでは保存形式とencodingが食い違っているものが多数ありますが、それでも問題なく動作はするようです。ですが念のため一致させておきましょう。

この記事では Unicode UTF-16(BOM付) で統一します。

以上

Copyright (C) 2015-2020 ThinkingSkeever, All Rights Reserved.
ブログの記事内に記載されているメーカー名、製品名称等は、日本及びその他の国における各企業の商標または登録商標です。
リンクはご自由に。記事の転載はご遠慮ください。記事を引用する場合はトラックバックするか元のURLを明記してください。