VPK ファイル形式とは?
.vpk ファイル(Valve Pak ファイルとも呼ばれる)は、Valve の Source エンジン用にゲームアセットをパッケージ化するために使用される非圧縮アーカイブです。.vpk には、マテリアル、モデル、パーティクル、振り付けシーン、音声、その他のファイルタイプを格納するマスターディレクトリを含めることができます。.vpk 形式は、古い .GCF コンテンツ形式の後継であり、*Counter-Strike: Global Offensive*、*Team Fortress 2*、*Left 4 Dead 2* などの Source エンジンタイトルの標準パッケージングシステムとして置き換えられました。
.vpk ファイルは、1つのマスターディレクトリファイルと、1つ以上の番号付き VPK アーカイブファイルで構成されます。ディレクトリファイル(通常は pak01_dir.vpk という名前)には、4バイトのリトルエンディアン・マジックシグネチャ(オフセット 0 に 34 12 AA 55)と、すべてのアセットのインデックス(拡張子、パス、ファイル名、ファイルごとの CRC-32 チェックサム、およびどの番号のアーカイブにデータが保持されているか)が含まれています。番号付きアーカイブ(pak01_000.vpk、pak01_001.vpk、…)は、独自のヘッダーを持たない生の非圧縮アセットバイトを保持し、個々のアーカイブは通常 200 MB 前後で制限されています。.VMT マテリアルファイルや .VTF テクスチャなどのアセットは、ディレクトリ・エントリ自体の中に最大 65,535 バイトの小さなプリロードブロックをインラインで保存することもできます。
.vpk ファイルは Source SDK に含まれるコマンドラインツール vpk.exe を使用して作成され、複数のアーカイブにまたがる VPK パッケージの一部として保存できます。2つの形式バージョンが存在します:バージョン 1(ヘッダーとディレクトリツリー)と、パッケージレベルの整合性検証のための MD5 チェックサムとオプションの RSA 署名ブロックを追加したバージョン 2 です。GCFScape や Crowbar などのサードパーティ製ツールを使用すると、Windows 上で .vpk アーカイブの閲覧、抽出、再パックが可能です。
セキュリティと安全性
リスク: MEDIUM主なリスクは自己責任によるものです。ゲームの .vpk ファイルを削除、名前変更、または不注意に編集すると、インストールが破損します。「空き容量を増やす」ためにこれらを削除しないでください。代わりに Steam を使用してアンインストールしてください。ダウンロードした VPK モッドについては、VPK 自体はコードを自動実行しないアセットコンテナですが、モッドパッケージにはスクリプトや実行ファイルが同梱されている場合があるため、信頼できるサイトから入手し、元の .vpk を置き換える前にバックアップを取ってください。PS Vita の .vpk 自作ソフトについては、システムアクセス権限で実行されるため、信頼できるソースからのみインストールしてください。
形式の詳細
概要- PlayStation Vita VPK パッケージ - PS Vita 用の ZIP ベースの自作アプリ/ゲームパッケージで、VitaShell でインストールされます。Valve とは無関係です。
- Visual Paradigm / その他のアプリのエクスポート - いくつかの無関係なアプリケーションが独自のパッケージファイルに .vpk を再利用しています。作成元のプログラムによって識別してください。
VPK ファイルを開くプログラム
vpk x pak01_dir.vpk、VPK 作成には vpk <folder> を使用します。Steam の Source SDK やゲームに同梱されています。 技術的詳細
詳細仕様| マジックバイト | バイトオフセット 0 に 34 12 AA 55(リトルエンディアン 0x55AA1234)。`_dir.vpk` ディレクトリファイルにのみ存在し、番号付きデータアーカイブにはヘッダーがありません |
| アーカイブ構造 | 1つの `*_dir.vpk` インデックスファイルと、生の連結されたアセットバイトを保持する番号付きデータアーカイブ(`*_000.vpk`、`*_001.vpk`、…)に分割されています |
| 圧縮 | なし - Source エンジンによる直接的かつ低遅延なストリーミングのために、アセットは非圧縮で保存されます |
| エンコーディング | バイナリ、全体を通してリトルエンディアンのバイト順 |
| 形式バージョン | バージョン 1:4バイトのマジック、バージョン uint32、ツリーサイズ、その後にディレクトリツリー。バージョン 2:データセクションサイズ、アーカイブごとの MD5 ブロック、全体の MD5 セクション、および RSA 署名セクションが追加されます |
| ファイルごとの整合性 | 両方のバージョンでファイルエントリごとに CRC-32 チェックサムを保持。バージョン 2 ではさらにデータアーカイブブロックごとの MD5 ハッシュと、パッケージ全体をカバーするオプションの RSA-2048 署名を保存します |
| ディレクトリツリーのレイアウト | ファイル拡張子 → パス → ファイル名の 3 レベルのインデックス。各リーフエントリにはアーカイブ番号、データオフセット、データ長、プリロードバイト数、および CRC-32 が保存されます |
| プリロードデータ | 各ディレクトリ・エントリには最大 65,535 バイトのファイル内容をインラインで埋め込むことができ、非常に小さなアセットに対するアーカイブのシークを排除します |
| データアーカイブのサイズ | 個々の番号付きアーカイブは通常、各約 200 MB に制限されています。完全なゲームの VPK セットは合計で数ギガバイトに及ぶことがあります |
| インデックス化されるアセットタイプ | テクスチャ(`.vtf`)、マテリアル(`.vmt`)、モデル(`.mdl`)、マップ(`.bsp`)、音声、パーティクルシステム、振り付けシーン(`.vcd`)、およびその他の Source エンジンリソースタイプ |
| プラットフォームのサポート | Windows、macOS、Linux、および Android(Source エンジンの移植版経由) |
| MIME タイプ | application/octet-stream |
| 開発元 | Valve Corporation(Source エンジン・コンテンツパイプライン) |
| 前身の形式 | 以前の Steam/Source エンジンバージョンで使用されていた古い GCF および NCF コンテンツパッケージング形式を置き換えました |
| 公式作成ツール | `vpk.exe`(Windows Source SDK)または `vpk` CLI(Linux Source SDK)。サードパーティ製ツールには GCFScape や Crowbar があります |
| リリース日 | 2010 (Source engine; replaced the older GCF content packaging) |
| 最新バージョン | VPK directory format version 2 (adds per-file CRC and signature sections); v1 still in use |
| 仕様書 | developer.valvesoftware.com |
VPK の変換
コミュニティ Q&A
ユーザーからの質問まだ質問はありません。VPK ファイルについて最初の質問をしてみましょう。
よくある質問
VPK ファイルを開くにはどうすればよいですか?
pak01_dir.vpk を開き、アセットを閲覧または抽出します。Valve のコマンドラインツール vpk.exe でも抽出可能です(vpk x pak01_dir.vpk)。PS Vita の .vpk は異なり、VitaShell を使用してインストールします。空き容量を増やすために VPK ファイルを削除してもいいですか?
なぜ pak01_000.vpk、pak01_001.vpk、そして pak01_dir.vpk があるのですか?
モッディングのために VPK からモデルやテクスチャを抽出するには?
pak01_dir.vpk を開き、必要なファイル(.mdl モデル、.vtf/.vmt テクスチャ)を抽出します。モデルを編集するには、抽出した .mdl を Crowbar でデコンパイルします。テクスチャを表示するには、VTFEdit で .vtf を開きます。Source の VPK と PS Vita の VPK は同じものですか?
独自の VPK を作成するには?
vpk <folder>)、pak##_dir.vpk と番号付きアーカイブが作成されます。正しいフォルダ構成については、各ゲームのモッドガイドに従ってください。