プログラミング・動画編集 備忘録

プログラミングや動画編集についての備忘録です

Skyrim Mod 製作日記 - 10 - NIFの閲覧完全版

大分時間をかけてやっていたので、それまでの経緯の書きなぐりです。画像のキャプチャもほとんど撮ってません・・・


次の記事にて、NIFの閲覧用のModを作成しましたが、大分不完全なものです。
rrryutaro.hatenablog.com

出来れば、実際の全てのNIFファイルを見れるようにしたいです。
とりあえず、Skyrim - Meshes0.bsaからNIFファイルが配置されている、Meshesをすべて展開したところ、19,328ものファイルがあります。
これを手作業で行うのは無理があります。

というわけで、espファイルを生成するツールを作ることにします。
いずれはやるつもりだったので、よい機会です。

やることは原始的な地道なバイナリ解析です。
とはいえ、SSEEditがあるので大分楽です。

空のファイルを作成し、必要な項目を追加して、バイナリでどのように変化するかをWinMergeなどで比較して進めていきます。

とりあえずは、MiscItemのModelにNIFを指定した要素を作成し、これを固定で出力します。
コンテナに配置したりなどは、Cration Kitで行えばよいでしょう。

と思って進めましたが、まず、あまりにも数が多すぎてCrationKitでは編集は出来ても保存しようとした際にクラッシュしてしまいます。

仕方ないので、コンテナへの配置などもバイナリ解析して固定出力します。
Meshesの配下には全部で15フォルダあるので、15個とMeshes直下のファイルを入れるコンテナ1個で、合計16個のコンテナを用意して、ゲーム内に配置します。
この辺はCreationKitですませます。

後は、コンテナにアイテムを含める部分のバイナリ解析をして、先ほどのMiscItemを生成する部分でコンテナに配置します。

しかし、実際にゲーム上で試してみるとファイル数が多いコンテナを開こうとすると、数分操作不能になります。
やっと動かせるようになっても、誤ってコンテナからアイテムを取得するとまた数分操作不能です。

これは実用的ではありません。

仕方ないので、もっとちゃんとしたツールにします。
これまではほぼ固定形式でファイル出力するツールとしていましたが、ファイルの読込を行い、データ構造に取り込み、編集して、ファイル出力できるようにします。
これには編集しやすいように各種構造をクラス化するなりしてそれなりに手間がかかります。
とはいえ、これをやれば、今後様々な対応が出来ます。

というわけで、合間合間にとせっせと作り、どうにか出来上がりました。
DLC側のNIF等すべて含めたespを作った場合、表示がおかしくなり、分けると大丈夫だったので、とりあえずは、2つに分けました。
gaming.youtube.com
gaming.youtube.com

すでにBethesdaで公開した分は更新し、DLC側のModは新規作成。合わせて、PC版とXB1版の公開。さらにNexusにも登録しました。


自分の備忘録のためにも過程をキャプチャ含めて記事を書きたかったのですが、ひと段落着くと気が抜けてしまって、そこまでやる気が出ないものです・・・