エフェクトファイルについて

2019.05.15 23:55|スマブラX改造
エフェクトファイルについて調べてみました

今回は例外確認用にエフェクトファイルを読み込むアプリを作ってみました。
今回作ったものは読み取り専用かつ公式ファイルの例外確認用で、追加などの機能もないため公開しませんが、
そのうちエディタ機能を追加して読み込んだファイルから抽出・追加などをできるものを公開しようと思います。
キャラのデータに他キャラから持ってきたエフェクトを追加するのに、便利かもしれません。

あと、例外確認用に作ったアプリから見てみたところ、
ファイルの中のREFF、REFT、Bres(TextureData)の中にたまに使われていないと思われるものがありますね...消しても問題ないのかどうなのか...
(TextureDataデータの中にあるSwordGlowで使われるTraceは必要です。別のキャラにコピーしても同じようには使えませんが 残像の色について)

調べた結果:
EFLSの文字列データ(PtcXX)は、REFFデータを読み込むためのものです。(当然EFLSのデータを追加しただけでは意味はありません)
REFFデータは1つで完結しているとは限らず、対象を展開したAnimationの中にCHILD(BrawlBox0.77以降での表示)がある場合、別のREFFデータを読み込んでいる印です。(ただし中身は確認できません)
BrawlBox0.71ではAnimationの中にあるAnimCurveを開いてNameTableがある場合、String[] Array右の[...]から中身を確認できます。(REFFデータではなくREFTデータの場合もあります)
基本的にはEFLS名と同じPtcXXから次のPtcXXまでの間にあるREFFデータを抽出すればいいのですが、稀に例外があります(PtcCaptainFNMainAirなど)
さらに、PtcXXでないものの中にもCHILDがある場合もあります。また、TEXTURE1ROTATEなどはREFTデータが存在します。
(TEXTURE1ROTATEなどにあるREFTデータはef_commonから読み込まれるものがほとんどなので見なくていい場合が多いです)

EFLSの文字列データは、BRES(Brres)のみからファイルを読み込んでいる場合、表示です。(編集されたファイルを除く)
稀にRE3D(展開できるデータ)もあり、そこからREFFデータを読み込んでいる場合もあります。

つまり、別キャラのデータを持ってくるには、BrawlBoxではいろいろ面倒なのです。

あと、REFFデータとBRESデータ(Animation)にはFrameCountが存在します。
BRESデータのFrameCountはBrawlBoxでも確認でき、正常であることは分かりますが、REFFデータのFrameCountは無駄に大きい値だったり、最大のものすら実際の長さの半分の長さもなかったりとよくわかりませんでした...
でも公開するアプリには表示する予定です。


※BrawlBox(v0.78)の表示を基準として書いているため、バイナリエディタなどでの表示は一部異なります。

バイナリエディタで見てみると、EFLS、REFF、REFT、bres(BRES)すべて独立したデータとして扱われるようで、EFLSからREFFデータの文字列などを読み込むことはないようです。
EFLSのデータは[bres ID]、[データ Offset]、[RE3D Offset]、[Unknown]のループになっていて、RE3Dも独立したデータ扱いのようです。
REFFとREFTの文字列データはREFFファイル名(ef_marioならmario)の次にNameの長さ(2バイト)、Name、データOffset(4バイト)、データサイズ(4バイト)となっていました。
スポンサーサイト



プロフィール

ICLPX

Author:ICLPX
主にスマブラXの改造をやっています。
更新ペースはその時によってバラバラです。
質問などがあれば気軽に書き込んでください。
かなり過去に書いた記事も更新することがあります。

最新記事

最新コメント

月別アーカイブ

カテゴリ

検索フォーム

RSSリンクの表示

リンク

ブロとも申請フォーム

この人とブロともになる

QRコード

QR