スポンサーサイト

    PAYDAY2 Blacklist Assist

    最近更新中のPAYDAY2のBlacklist MODの補助ツール
    ※特に理由が無い場合は最新バージョンを使用してください。


    ━━━━━━━━━━━━━━━━━━━━━━━━━━━

    上記の広告は1ヶ月以上更新のないブログに表示されています。
    新しい記事を書く事で広告が消せます。

    [技術的なこと]ndoorsのTGAの読み込み方法

    PAYDAY2 Blacklist Assist

    最近更新中のPAYDAY2のBlacklist MODの補助ツール
    ※特に理由が無い場合は最新バージョンを使用してください。


    ━━━━━━━━━━━━━━━━━━━━━━━━━━━

    技術的なことシリーズ第三弾

    自分の忘備録もかねて

    書かれている内容を実行する場合は自己責任でお願いします。

    何か問題が起こったとしても私は責任はとれません。

    ━━━━━━━━━━━━━━━━━━━━━━━━━━━

    TGAファイルとは何かということについてはwikiから引用しまして


    TGAファイルは一般にDOS/Windowsシステムでは".tga"、古いMacintoshでは".tpic"の拡張子を持つ(Mac OS Xは.tgaを使用)。各ピクセルと完全に一致する32ビットのイメージデータを格納できる。カラーデータはカラーマップ(パレット)、ダイレクトカラーまたはトゥルーカラーフォーマットであり、オプションで可逆RLE圧縮を利用できる。

    TGAファイルは元々Truevision社のBrad Pillowによって1984年に定められた。現在のバージョン(2.0)は(サムネイルとしてよく知られている)ポステージスタンプ(訳注:郵便切手)、アルファチャンネル、ガンマ値、テクスチャのメタデータなどのような拡張を含み、Truevision社のDavid Spoelstraによって1989年に定められた。

    色深度の制限にもかかわらず、TGAはアニメーションとビデオ産業の全域に渡って未だ使われている。


    ついでに、以前書いた記事から引用して少し説明します。

    アトランティカに関する技術的なこと(拡張子)
    http://rinatl.blog.fc2.com/blog-entry-217.html

    *.tga
    画像ファイルです。
    TGA形式に対応しているビューアなら表示可能です。

    しかし表示できないTGAファイルもあり謎は深まるばかり。そして全てのアイテムデータが取得できたわけではないので当初の目的は当分果たされなさそうです。

    使っているビューア
    Paint.NET:http://www.forest.impress.co.jp/lib/pic/piccam/picedit/paintdotnet.html
    TGAViewer:http://www.ne.jp/asahi/crazy-for/gfn/tgaviewer.html
    VIX:http://www.gigafree.net/tool/view/vix.html
    (VIXは作者ホームページが見つからなかったため紹介ページ)

    おすすめはVIXです。
    Paint.NETでは色がきちんと読み込まれない場合が多いです。

    ━━━━━━━━━━━━━━━━━━━━━━━━━━━

    前回拡張子について書いた時には

    >しかし表示できないTGAファイルもあり謎は深まるばかり。

    1.jpg

    VIXでサムネイルの一覧を表示したところ緑の枠で囲ったようにファイルを何もいじらず見られるファイルと赤い枠で囲ったように読み込めないファイルがありました。

    今回は赤い枠で囲ったファイルをデータ書き換えによって読み込めるようにする作業を書きます。

    ━━━━━━━━━━━━━━━━━━━━━━━━━━━

    まずは、なぜ読み込めないかですが

    バイナリエディタで読み込めるデータと読み込めないデータを比較してみます。

    バイナリエディタについてはわからない方はグーグルで検索してください。

    2.jpg

    左が読み込めるデータ、右が読み込めないデータです。

    ここでTGAの規格について調べてみると

    ProjectASURAーテクスチャを読み込む!!(2)
    http://asura.iaigiri.com/OpenGL/gl5.html


    tga_fileformat.png
    ◆ヘッダー部は0x0000のID field lengthから0x0011のDiscipterまで18バイトあります。
    ◆データ部は0x0012から始まります
    ◆フッター部はデータ部のおわりから始まり,26バイトあります。


    TGA (Targa) 形式
    http://www.openspc2.org/format/TGA/index.html


    ヘッダ
    1バイトIDフィールド長
    1バイトカラーマップ有無(0=なし、1=あり)
    1バイト画像形式
    0イメージなし
    1インデックスカラー(256色)
    2フルカラー
    3白黒
    9インデックスカラー。RLE圧縮
    10フルカラー。RLE圧縮
    11白黒。RLE圧縮
    2バイトカラーマップエントリー
    1バイトカラーマップエントリーサイズ
    2バイト画像のX座標
    2バイト画像のY座標
    2バイト画像の横幅/TD>
    2バイト画像の縦幅
    1バイト色深度
    1バイト
    ビット内  容
    0~3属性
    格納方向(0=左から右、1=右から左)
    格納方向(0=下から上、1=上から下)
    6、7インターリーブ(使用不可)
    データ
    不定
    ■24ビット圧縮無しの場合
    青(0~255)
    緑(0~255)
    赤(0~255)
    ■32ビット圧縮無しの場合
    青(0~255)
    緑(0~255)
    赤(0~255)
    α(0~255)
    フッタ
    4バイトファイル位置
    4バイトディベロッパーディレクトリファイル位置
    17バイト"TRUEVISION-TARGA"の文字
    1バイトゼロ



    この規格を見て改めて先ほどのバイナリエディタの画像を見比べてみます。

    わかりやすいかは微妙ですが色分けと各パラメータの名前を線で結んでみました。

    3.jpg

    先ほどの規格と照らし合わせ重要なところだけ書くと
    Color map type:あり
    Image type:8bit
    Bit per pixel:08

    4.jpg

    こちらは読み込めないデータですが、ぐちゃぐちゃです。

    ヘッダのデータが正常でないために読み込めないと思われますので、この読み込めるデータのヘッダ情報を読み込めないデータのヘッダ情報に書き換えてみます。

    5.jpg

    ITEMIMG1_40X40_00_000.jpg

    周りが赤いですが、読み込めるようになりました。

    ほかの読み込めないデータも同じように書き換えたところ、正常には読み込めませんでした。

    例えば、ITEMIMG36_40X40_00_000.tgaこのデータを書き換えてみます。

    6.jpg

    すると、

    7.jpg

    真っ白のデータが見えるようになりました。

    正常に読み込めていないために真っ白に見えています、TGAの規格に従って少しずつバイナリエディタで数値を変更していきます。

    まず初めにいじる数値はBit per pixelです。

    いろいろいじってみた結果Bit per pixelのとりうる値は08、10、18、20のどれかでした。

    Bit per pixelを08にした時の画像
    ITEMIMG36_40X40_00_000_08.jpg


    Bit per pixelを10にした時の画像
    ITEMIMG36_40X40_00_000_bpp10.jpg

    Bit per pixelを18にした時の画像
    ITEMIMG36_40X40_00_000bpp18.jpg

    Bit per pixelを20にした時の画像
    ITEMIMG36_40X40_00_000bpp20.jpg

    Bit per pixelは18で適当なようです。

    しかし、画像が左右に飛び出しているのでほかの値もいじります。

    Color map lengthが00 01となっていると思いますが、それを00 00に書き換えます。

    8.jpg

    すると

    ITEMIMG36_40X40_00_000.jpg

    きちんと読み込めるようになりました。

    ━━━━━━━━━━━━━━━━━━━━━━━━━━━

    読み込めるかどうかは

    Image type
    Bit per pixel

    この二つの組み合わせです。

    位置の調整は

    Color map lenght

    この辺がわかればほかのTGAファイルも同じように書き換えてやることで読み込めるようになります。
    スポンサーサイト
    上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。