UNITYPACKAGE ファイル形式とは?
.unitypackage ファイルは、プロジェクト間や Asset Store を通じて Unity アセットをパッケージ化して配布するための Unity Technologies 独自のフォーマットです。その実体は gzip 圧縮された TAR アーカイブ です。ファイル名を .tar.gz に変更すれば 7-Zip などのツールで解凍できますが、アセットが正しく再現されるのは Unity Editor を通じてインポートした場合のみです。
アーカイブの内部には、アセットの 128 ビット GUID で命名されたディレクトリがアセットごとに 1 つずつ保持されています。各ディレクトリには以下が含まれます:
- アセットの生データバイト
- GUID とインポート設定を保持する
.metaファイル - 元のプロジェクト相対パスを記録した
pathnameテキストエントリ - オプションの
preview.pngサムネイル
このレイアウトにより、Unity はインポート時に元のフォルダ構造を再構築し、アセット間の参照を維持することができます。インポートするには、ファイルを Unity Editor ウィンドウにドラッグするか、Assets > Import Package を使用します。
.unitypackage は 2010 年の開始以来、Unity Asset Store の標準的な配布単位であり、Unity 6 でも引き続きサポートされています。これは、プレーンな tarball と package.json マニフェストを使用し、直接インポートするのではなく Package Manager ウィンドウからインストールする新しい Unity Package Manager (UPM) フォーマットと共存しています。
アーカイブには gzip の CRC-32 チェックサムが含まれていますが、暗号署名は含まれていないため、外部ツールなしで作成者を検証することはできません。
セキュリティと安全性
リスク: MEDIUM.unitypackage には、インポート時に Unity Editor 内で実行される C# スクリプト (.cs)、エディタスクリプト、および DLL が含まれる場合があります。そのため、悪意のあるパッケージは単に静的な素材を追加するだけでなく、プロジェクト内でコードを実行する可能性があります。パッケージは信頼できるソース(公式の Unity Asset Store は提出物を審査していますが、ランダムなフォーラムやトレントのパッケージは審査されていません)からのみインポートしてください。インポート前に含まれるスクリプトや DLL を確認し、ダウンロードしたパッケージはサードパーティのコードと同様に扱ってください。最初に .tar.gz として展開することで、中身を検査できます。
形式の詳細
概要UNITYPACKAGE ファイルを開くプログラム
技術的詳細
詳細仕様| コンテナフォーマット | gzip 圧縮された POSIX tar アーカイブ、.tar.gz ファイルと同等 |
| マジックバイト | バイトオフセット 0 に 0x1F 0x8B (標準的な gzip シグネチャ) |
| 圧縮 | アーカイブストリーム全体に適用された gzip / DEFLATE |
| 内部構造 | アセットごとに 1 つのディレクトリ、各ディレクトリ名はアセットの 128 ビット GUID |
| アセットごとのエントリ | アセットデータファイル、.meta ファイル (GUID + インポート設定)、pathname テキストファイル、およびオプションの preview.png サムネイル |
| アセットの識別 | 各アセットには付属の .meta ファイルに保存された 128 ビット GUID が割り当てられ、GUID はプロジェクト間の移動でも維持される |
| パスの復元 | 各 GUID フォルダ内の pathname テキストエントリが元のプロジェクト相対パスを記録し、インポート時にフォルダレイアウトを再構築するために使用される |
| 整合性チェック | 圧縮ストリームに対する gzip CRC-32。暗号署名やコード署名は適用されない |
| 暗号化 | なし - 組み込みの暗号化はなく、アーカイブの内容は解凍後に完全に読み取り可能 |
| MIME タイプ | application/octet-stream (主要); 一部のホストでは application/gzip も使用される |
| 典型的なファイルサイズ | 含まれるテクスチャ、モデル、オーディオの量に応じて、数十キロバイトから数ギガバイトまで |
| プラットフォームサポート | Windows、macOS、Linux - Unity Editor または tar 対応ツールが利用可能な環境 |
| インポート方法 | ファイルを Unity Editor ウィンドウにドラッグするか、メニューバーの Assets > Import Package を使用 |
| UPM との関係 | Unity Package Manager パッケージとは異なり、UPM は package.json マニフェストを含むプレーンな tarball を使用し、アセットとしてインポートするのではなく Package Manager ウィンドウ経由でインストールされる |
| リリース日 | Mid-2000s (Unity asset export; Asset Store launched 2010) |
| 最新バージョン | Legacy .unitypackage export (current Unity 6); coexists with the newer UPM/tarball package format |
| 仕様書 | docs.unity3d.com |
UNITYPACKAGE の変換
コミュニティ Q&A
ユーザーからの質問まだ質問はありません。UNITYPACKAGE ファイルについて最初の質問をしてみましょう。