読者です 読者をやめる 読者になる 読者になる

RのSkyrim Mod開発日記

SkyrimのMod開発を中心に、備忘録などを載せていきます。

Skyrim Mod ファイルフォーマット解説 - 3

はじめに

この記事ではSkyrimのModのファイルフォーマットについて解説しています。
SkyrimのModのファイルフォーマットについてはTes5Mod:Mod File Format - The Unofficial Elder Scrolls Pages (UESP)が詳しいですが、ここでは、これまで自分なりに解析してきた内容や、必要な部分なども踏まえて解説していきます。
また、同時にプログラミングで利用する情報なども合わせて解説したいと思いますが、プログラミングについての主な情報は別サイトで記事にいていきます。

前回はグループについて記載しましたので、今回は主にレコードについてです。

レコード

武器データのレコードを見てみることにします。武器の情報はWEAPです。

f:id:rrryutaro:20170410215906p:plain
選択部分はグループヘッダーです。

次の、範囲がレコードヘッダーです。
f:id:rrryutaro:20170410220010p:plain

レコードヘッダーの情報は次のようになっています。

項目名 byte数 byte数合計 説明
Signature string 4 4 どのような情報を扱うかを識別する記号。
DataSize uint 4 8 ヘッダーサイズを含まないレコードの全体サイズ。
RecordFlags uint 4 12 あまり気にしない。詳細はUESPのRecordsのflags参照。
FormID uint 4 16 mod内でデータを一意に識別するためのID。
VersionControlInfo1 uint 4 20 あまり気にしない。詳細はUESPのRecordsのrevision参照。
FormVersion ushot 2 22 あまり気にしない。詳細はUESPのRecordsのversion参照。
VersionControlInfo2 ushot 2 24 あまり気にしない。詳細はUESPのRecordsのdata参照。

※項目名はSSEEditでの表示名称を使用

では、実際のデータに当てはめて見て見ます。

項目名 バイナリ上での表示
Signature WEAP f:id:rrryutaro:20170410220922p:plain
DataSize 422 f:id:rrryutaro:20170410220946p:plain
RecordFlags 0 f:id:rrryutaro:20170410221017p:plain
FormID 00017288 f:id:rrryutaro:20170410221110p:plain
VersionControlInfo1 10 2C 1E 00 f:id:rrryutaro:20170410221353p:plain
FormVersion 44 f:id:rrryutaro:20170410221448p:plain
VersionControlInfo2 03 00 f:id:rrryutaro:20170410221517p:plain

SSEEditで見ると次のようになっています。
f:id:rrryutaro:20170410221632p:plain

ちなみに、最初のファイルヘッダーにあたるTES4はグループヘッダーが無く、このレコードヘッダーの部分からはじまっています。

以降のDataSize分のデータがフィールドのデータになります。
f:id:rrryutaro:20170410222056p:plain


以上、今回はここまで。