砂場

「砂場」の編集履歴(バックアップ)一覧はこちら

砂場」(2023/08/20 (日) 05:44:34) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

//人気ページの一覧は実装されたため削除します //マック主については「動画うp主一覧」「MUGENwiki・MUGEN動画における、問題・事件」に記載されたため削除します //格闘スタイルのプラグイン化について、同じような話題を取り扱っている「wiki情報管理・改善案」のページに移動させます wikiの編集方法を練習したりするところ。 wiki全体に関わるページ修正案を掲示したい場合は[[wiki情報管理・改善案]]でお願いします。 参考リンク -[[@wikiの基本操作>>https://w.atwiki.jp/guide/pages/11.html]] -[[@wikiプラグイン>>https://w.atwiki.jp/guide/pages/264.html]] -[[@wiki構文>>https://w.atwiki.jp/guide/pages/226.html]] -[[@wikiご利用ガイド>>https://w.atwiki.jp/guide/]] -[[wiki編集のすすめ>>https://w.atwiki.jp/editguide/]] //↑ここまでは砂場のお約束なので消さずに置いておいてください。 ---- 【作られているもの一覧】 #contents(level=1) ---- 以下、練習用部分 ---- ----
//人気ページの一覧は実装されたため削除します //マック主については「動画うp主一覧」「MUGENwiki・MUGEN動画における、問題・事件」に記載されたため削除します //格闘スタイルのプラグイン化について、同じような話題を取り扱っている「wiki情報管理・改善案」のページに移動させます wikiの編集方法を練習したりするところ。 wiki全体に関わるページ修正案を掲示したい場合は[[wiki情報管理・改善案]]でお願いします。 参考リンク -[[@wikiの基本操作>>https://w.atwiki.jp/guide/pages/11.html]] -[[@wikiプラグイン>>https://w.atwiki.jp/guide/pages/264.html]] -[[@wiki構文>>https://w.atwiki.jp/guide/pages/226.html]] -[[@wikiご利用ガイド>>https://w.atwiki.jp/guide/]] -[[wiki編集のすすめ>>https://w.atwiki.jp/editguide/]] //↑ここまでは砂場のお約束なので消さずに置いておいてください。 ---- 【作られているもの一覧】 #contents(level=1) ---- 以下、練習用部分 ---- //ここかららくがき わーい砂場だー MUGENのsffファイルフォーマットについて。 確認されているバージョンはSFFv1, SFFv2, SFFv2.1 先頭の16バイトで判別。 &u(){ElecbyteSpr\0\x01\0\x01} v2の場合\0\x01\0\x01の部分が\0\0\0\x02になり、v2.1の場合\0\x01\0\x02になります。 ファイルの先頭64バイトぐらいには重要な情報が詰め込まれています。v1とv2ではフォーマットがガラリとかわるので とりあえずv1から。 v1は先頭から20バイトの位置にsffが持つ総画像数が保管され、続いて、最初の画像情報のオフセットがあります。 数値は両方uint32_tで、リトルエンディアンです。 (すべての数値がリトルエンディアンです。)それ以外に いろいろなデータはありますが、あまり重要ではない 画像情報のオフセットから、32バイト読み出すと、画像の付加情報が読み出せます。 これらの情報は、グループid, イメージid などの情報です。 具体的な内容は、先頭から、次の画像情報のオフセット, 格納されている画像のサイズ(uint32_t x 2), X中心座標, Y中心座標 (int16_t x 2), グループNo, イメージNo, リンクindex (uint16_t x 3), パレットモード (uint8_t)です。あまりは PADです。 画像データーはそのままPCXデータです。画像情報オフセットに32バイト足した位置から、画像サイズバイト分です。 パレットモードは、1か0の2択で, 1の場合パレット情報としてsffの一番初めの画像のパレットを使うと言う意味に なります。前の画像のを参照するともありましたが、よく分かりません。しかしこれでうまく動きます。 そのままデーター部分をファイルに出力するとpcxファイルとして開けます。状況によってパレット データーをつけてあげる必要もあります。 画像のサイズが0の場合, 実際の画像データが格納されない代わりに、リンクindexにsff内の何番目の画像に 実際のデーターが入っているかというデータが入ります。(同じ画像で中心座標をずらしたりするときに使われる)  一方でsffv2は少し複雑な作りになっています。パレットをファイル内に格納できるようになり、 画像データとしてLZ5 RLE5 RAW RLE8 PNG が選べるようになり、画像情報と実際のファイルが陸続きではなくなりました。 v2とv2.1のフォーマットは同じです。先頭から36バイトの位置に、画像情報オフセット、総画像数、パレット情報オフセット、総パレット数、Lオフセット、そして4バイト抜かしてTオフセット (uint32_t x 6) となります。 画像情報オフセットから、画像情報のデータを28バイトづつ、画像個数分読み出せます。それぞれのデータの意味は、 グループno, イメージno, 画像幅, 画像高さ (uint16_t x 4) , x中心座標, y中心座標 (int16_t x 2), リンクindex (uint16_t), イメージ形式, イメージ色深度 (uint8_t x 2), イメージオフセットとサイズ (uint32_t x 2), パレットindex, フラグ (uint16_t x 2) 実際のイメージは、イメージオフセット+Lオフセット(フラグが0じゃないなら+Tオフセット)からサイズ分格納されています。 sffv2で特徴的なのは、パレットindexを参考にして、該当するパレットを引っ張り出して画像に適用する点です。sffv1は 画像にくっついていますがv2は別腹。 イメージのデーター形式はイメージ形式2(RLE8)、ほとんどこれです。先頭の4ビットが非圧縮状態でのバイト数です。uint32_t。 その後はMSBの2ビットが01 (0x40 - 0x70)の場合、後のビットがそのビットで表された数-0x40個続くという意味です。 それ以外の場合はそのままです。 イメージ形式が0(RAW)の場合単純に画像幅x高さ分のカラーインデックス(uint8_t)配列です。 イメージ色深度は8である必要があり、5の場合どうするかわからないです。 パレットの情報は、パレット情報オフセットからパレット個数分、16バイトずつ読み出せます。 それぞれ, GroupNo, PaletteNo, nCols, リンクid (uint16_t x 4), パレットのオフセットとサイズ (uint32_t x 2) です。 実際のオフセットはTオフセットが加算されます。データは大抵RGBA8888 (uint32_t)が256個連なった1024バイトの配列です。 カラーインデックス順にRGBARGBARGBA... とそれぞれuint8_tが4個ずつで、対応した画像データと合わせて使用します。 RLE8の例: Ex1: 00 11 22 33 45 00 --> 00 11 22 33 00 00 00 00 00 Ex2: 41 40 41 50 41 60 --> 40 50 60 //通りすがりのアメリカ人 (偽) プログラマー "kumohakasemk9" より //気晴らしに書いてみた、邪魔なら消してもらってもok //hexdumpとかddとか使って見比べてみるといいかも //参考文献 : https://github.com/kumohakasemk9/MUGENSFFReaderLibJava/blob/master/KumoSFFReader.java //ここまでらくがき ----

表示オプション

横に並べて表示:
変化行の前後のみ表示: