Skyrim Mod ファイルフォーマット解説 - 2
はじめに
この記事ではSkyrimのModのファイルフォーマットについて解説しています。
SkyrimのModのファイルフォーマットについてはTes5Mod:Mod File Format - The Unofficial Elder Scrolls Pages (UESP)が詳しいですが、ここでは、これまで自分なりに解析してきた内容や、必要な部分について解説していきます。
また、同時にプログラミングで利用する情報なども合わせて解説したいと思いますが、プログラミングについての主な情報は別サイトで記事にいていきます。
前回はModの基本構成や、ファイルの先頭部分のファイルヘッダーについて記載しました。
今回は主にグループについてです。
グループ
Modファイルの中身をみると、最初には必ずTES4
からはじまるファイルヘッダーがあり、その後はグループの固まりの繰り返しが基本となります。
Skyrim.esm
を見てみます。
選択した範囲がファイルヘッダーです。その後に続くGRUP
からが、グループのはじまりです。
グループの先頭24byteはグループヘッダーです。
ここではとりあえず次の点を把握できればOKです。
名称 | データ型(サイズ) | 説明 |
---|---|---|
Group | string(4) | GRUP 固定グループの始まりを示す |
DataSize | uint(4) | グループヘッダーを含むグループ全体のサイズ |
Signature | string(4) | そのグループで扱う情報を識別する記号 |
実際のデータを見てみます。
名称 | 内容 | バイナリ上での表示 |
---|---|---|
Group | GRUP | |
DataSize | 96,862 | |
Signature | GMST |
前回特に言及しませんでしたが、DataSize
は内容の所には10進数で書いていますが、バイト上での表示は16進数で、バイトオーダーはリトルエンディアンです。
バイトオーダーなどについての詳細はGoogleなどで"バイトオーダー"で検索してみてください。
10進数と16進数の確認は例えば、Windows標準の計算機などで確認する方法があります。
qiita.com
Signature
はGMST
とあります。UESPによるとGame Setting
とのこと。
Game Setting
ということでしょうか。
とりあえず、ここでは詳細は気にしません。
ここまでわかれば、知りたい情報のSignature
のある位置まで、DataSize
分読み飛ばしていけばよいことになります。
プログラミングでグループのデータを扱う方法は次の記事にまとめました。
qiita.com