VTF ファイル形式とは?
.vtf ファイルは Valve Texture Format ファイルであり、Valve の Source エンジンで使用される独自のバイナリテクスチャコンテナです。2004年11月の Half-Life 2 で初めて導入されました。VTF ファイルは、圧縮または非圧縮の GPU 対応テクスチャデータを、事前構築されたミップマップピラミッドおよびエンジンプレビュー用の小さな DXT1 圧縮サムネイルと共に格納します。
ファイルは 4 バイトのマジックシグネチャ VTF\0(16進数 56 54 46 00)で始まり、その後にメジャー/マイナーバージョンペア(メジャーは常に 7、マイナーは 0 から 6 の範囲)が続きます。ヘッダーには、画像の寸法、フレーム数、深度(ボリュームテクスチャ用)、キューブマップの面数、反射率カラーベクトル、およびピクセル形式の列挙型がエンコードされています。バージョン 7.3 では、任意のエンジン定義メタデータチャンク用の拡張可能なリソースデータセクションが追加されました。
サポートされているピクセル形式には、DXT1 (4 bpp)、DXT5 (8 bpp)、BGR888 (24 bpp)、BGRA8888 (32 bpp)、および RGBA16161616F (64 bpp HDR) が含まれます。画像の寸法は 2 の累乗である必要があり、通常の使用では最大 4096×4096 です。
.vtf テクスチャは常に、シェーダーパラメータ、サーフェスタイプ、ブレンドモードを定義し、名前で .vtf を参照する .vmt (Valve Material Type) ファイルとペアになります。VTFEdit は、Valve の SDK 以外で .vtf ファイルを作成および編集するための標準的なコミュニティツールです。
Source 2 では、コンパイルされたテクスチャに相当するのは .vtex_c であり、これは VTFEdit ではなく VTex パイプラインによって生成されます。
セキュリティと安全性
リスク: LOWVTF は実行可能コードを含まないテクスチャデータファイルです。悪意を持って作成された VTF ファイルは、理論的には VTFLib/VTFEdit のパーサーのバグ(寸法や形式フィールドのバッファオーバーフロー)を誘発する可能性がありますが、これは理論上の懸念です。実際には、信頼できるゲームまたは Mod ソースからの VTF ファイルのみを開くようにしてください。
形式の詳細
概要VTF ファイルを開くプログラム
技術的詳細
詳細仕様| マジックバイト | オフセット 0 に `56 54 46 00` («VTF\0»)、オフセット 4 に 2 つの DWORD としてメジャーバージョン(常に 7)とマイナーバージョン(0-6) |
| バイト順序 | リトルエンディアン |
| ピクセル形式 | DXT1 (4 bpp)、DXT3、DXT5 (8 bpp)、BGR888 (24 bpp)、BGRA8888 (32 bpp)、RGBA16161616F (64 bpp HDR)。ヘッダーの形式列挙型によって選択 |
| ミップマップピラミッド | 最小から最大までのフルミップチェーンを格納。ミップ数はヘッダーで指定。LOD レンダリングに使用 |
| サムネイル | ヘッダー領域に格納された小さな DXT1 圧縮の低解像度プレビュー。エンジンによるアセットの迅速な識別に使用 |
| テクスチャタイプ | 2D テクスチャ、キューブマップ(6面)、ボリューム/3D テクスチャ、アニメーションスプライト(マルチフレーム)、ノーマルマップ |
| 寸法の制約 | 2 の累乗が必要(v7.5 未満)。通常は最大 4096x4096。一部の Source バージョンでは最大 16384x16384 をサポート |
| リソースセクション | v7.3 で追加された拡張可能なリソースデータチャンク。任意のエンジン定義メタデータを許可し、パーティクルシートデータなどに使用 |
| 一般的なサイズ | 解像度、ミップレベル、ピクセル形式に応じて 4 KB - 32 MB |
| ペア形式 | シェーダー、ブレンドモード、サーフェスタイプを定義する .vmt (Valve Material Type) ファイルと常に併用。.vtf はピクセルデータのみを保持 |
| 圧縮 | ファイルレベルの圧縮はなし。GPU テクスチャ圧縮 (DXT1/DXT5/BCn) が格納されたピクセルデータに焼き込まれている |
| Source 2 での相当形式 | .vtex_c (VTex パイプラインによってコンパイル)。VTF は引き続き Source エンジンタイトル (Team Fortress 2、CS:GO など) で現役 |
| リリース日 | 2004 (Half-Life 2 and Source engine launch) |
| 最新バージョン | VTF 7.5 (Source engine); VTF 7.6 (Source 2 / Portal 2 on Linux) |
| 仕様書 | developer.valvesoftware.com |
VTF の変換
コミュニティ Q&A
ユーザーからの質問まだ質問はありません。VTF ファイルについて最初の質問をしてみましょう。
よくある質問
ゲームをインストールせずに VTF ファイルを開くにはどうすればよいですか?
VTF を PNG や TGA に変換するにはどうすればよいですか?
vtfcmd -file input.vtf -output out.png -exportformat png