UNITY3D ファイル形式とは?
.unity3d ファイルは、実行に Unity Web Player プラグインを必要としたブラウザゲームのデータを格納する 3D ゲームデータアーカイブ です。この形式は、Unity エンジンで構築されたゲームをウェブ上にデプロイするために使用されていました。1つの .unity3d ファイルには、環境データ、アセット、オブジェクト、テクスチャ、アニメーション、ライティング、オーディオなど、コンパイルされたゲームコードが含まれており、バイナリシリアライズされたコンテナとしてパッケージ化されています。
内部的には、.unity3d ファイルはバイトオフセット 0 の ASCII タグ UnityWeb(古い圧縮ストリームビルド)または新しいバリアントの UnityFS で始まり、その後にバージョン文字列が続きます。このコンテナ形式は、後に Unity AssetBundle (.bundle) へと進化しました。これは同じシリアライズ手法を共有しており、現在も活発に使用されています。
.unity3d 形式は Unity Technologies によって作成された独自の形式であり、Unity ゲームエンジンで使用されます。.unity3d ファイルを開くために必要なブラウザプラグインである Unity Web Player は、2016年の Unity 5.4 で非推奨となり、その後ブラウザベンダーは NPAPI プラグインのサポートを完全に終了しました。その結果、.unity3d ファイルは現代のブラウザでは再生できません。レガシーファイルは、AssetStudio などのコミュニティツールを使用して、引き続き検査や抽出を行うことができます。
セキュリティと安全性
リスク: MEDIUM.unity3d は Unity ランタイムによって読み込まれるデータですが、コンパイルされたスクリプト(ゲームコード)を含む可能性があるため、Unity アプリによって読み込まれる悪意のある、または改ざんされたバンドルは完全に不活性ではありません。より大きな実用的なリスクは周囲のエコシステムにあります。Unity Web Player プラグインは開発が終了しておりパッチも当たっていないため、これらのファイルを再生するためにプラグインを再インストールしたり、古い NPAPI ブラウザを実行したりしないでください。未知のバンドルを実行するのではなく、サンドボックス化されたツール(AssetStudio)でアセットを抽出するようにし、信頼できるソースからのみゲームを入手してください。
形式の詳細
概要UNITY3D ファイルを開くプログラム
技術的詳細
詳細仕様| MIME タイプ | application/vnd.unity |
| ファイルシグネチャ | バイトオフセット 0 に ASCII «UnityWeb»(圧縮ストリームビルド)。新しいバリアントは «UnityFS» で始まる |
| バイト順序 | ビッグエンディアン - Unity のレガシーシリアライザは、マルチバイト整数をビッグエンディアン順で格納します |
| 圧縮 | Web Player ストリームビルドではデフォルトで LZMA。後の Unity バンドルバリアントでは LZ4 や非圧縮モードもサポート |
| コンテナ構造 | 独自のバイナリコンテナ。ZIP ベースではなく、アセットとその依存関係グラフがフラットなシリアライズレイアウトで格納される |
| アセットタイプ | シーン、メッシュ、テクスチャ、オーディオクリップ、シェーダー、コンパイル済みスクリプト(Mono バイトコード)、アニメーションデータ |
| スクリプトの格納 | コンパイル済みの Mono C# バイトコード - ソースファイルは含まれません。スクリプトは Unity のビルドプロセス中にバンドル内に焼き付けられます |
| テクスチャ圧縮 | DXT(デスクトップ)、ETC(モバイル)、またはその他のプラットフォーム固有の GPU 圧縮形式で埋め込まれたテクスチャ |
| 配信モデル | HTTP ストリーミング向けに設計。ファイルヘッダーが最初に解析されるため、ダウンロードが完全に完了する前にアセットの読み込みを開始できる |
| 後継形式 | Unity AssetBundle (.bundle / .assetbundle) - 同じシリアライズコアを共有し、Unity Web Player の廃止後に .unity3d に取って代わった |
| 廃止 | ブラウザ内で .unity3d を開くことができる唯一のランタイムである Unity Web Player は、Unity 5.4 (2016) で廃止されました。現代のブラウザはこれをサポートしていません |
| 開発元 | Unity Technologies (カリフォルニア州サンフランシスコ)。形式は独自仕様であり、公には文書化されていません |
| リリース日 | Mid-2000s with the Unity Web Player; Web Player deprecated with Unity 5.4 (2016) |
| 仕様書 | docs.unity3d.com |