このセクションでは、Unity でアセットを使用するための原則を説明します。以下のトピックが含まれます。
また、マニュアルの他のセクションで以下の関連トピックも参照してください。
アセットは、プロジェクトで使用できるすべてのアイテムを表します。アセットは、3D モデル、オーディオファイル、画像など、Unity の外部で作成されたファイルから取得される場合もあります。Unity で ProBuilder メッシュ、アニメーターコントローラー、オーディオミキサー、レンダーテクスチャなどの数種類のアセットタイプを作成できます。
Unity はアセットを自動的にインポートして、それらに関する様々な種類の追加データ (例えば、アセットのインポート設定や、プロジェクト内でそのアセットを使用する箇所) を管理します。以下で、この処理のしくみを説明します。
場合によっては、Unity は 1 つのアセットファイルをインポートする間に複数のアセットを作成することがあります。詳細は、複雑なアセットのインポート を参照してください。
インポート設定 は Unity がアセットを処理する方法に影響します。詳細は、 アセットとそのインポート設定 を参照してください。
Assets
フォルダーに テクスチャなどのアセットを保存すると、Unity が新しいファイルの追加を検出します。なぜなら、Assets
フォルダーのコンテンツはエディターによって既知のアセットのリストと頻繁に照合されているからです。
Unity は新しいファイルを見つけると、一意の ID をアセットに割り当てます。これは Unity がアセットを参照するために内部的に使用する ID で、Unity は何も壊すことなくアセットの移動や名前の変更を行うことができます。
この例は、Unity がプロジェクトの Assets
フォルダー内の各アセットまたはフォルダーに対して .meta
ファイルを作成して、それらがシステムファイルブラウザーに表示されることを示しています。ただし、これらの .meta
ファイルはデフォルトで 非表示 になっているため、Project ウィンドウには表示されません。Mode プロジェクト設定から Visible Meta Files を選択すると、それらを表示することができます。
Unity がアセットの .meta
ファイルを作成するとき .meta
ファイルの内部にアセット ID を書き込み、アセットファイルと同じ場所にその .meta
ファイルを保存します。.meta
ファイルにはアセットの ID が含まれているため、関連するアセットファイルと同じ場所に保存する必要があります。Project ウィンドウでアセットを移動または名前変更すると、Unity は自動的に対応する .meta
ファイルを移動または名前変更します。ただし、Unity の外部でアセットを移動/名前変更する場合 (例えば、システムのファイルブラウザー) は、それに一致する .meta
ファイルを移動/名前変更してください。
アセットが .meta
ファイルを失うと (例えば、.meta
ファイルを更新せずにアセットを Unity のProject ウィンドウの外に移動/名前変更した場合)、そのアセットへの参照はすべて壊れます。Unity は違うアセットを扱うようにそのアセットのために新しい .meta
ファイルを生成し、“参照アセットがなくなった” 古い .meta
ファイルを削除します。
例えば、 テクスチャアセットが .meta
ファイルを失うと、そのテクスチャを使っていたすべてのマテリアルにテクスチャへの参照がなくなります。これを修正するには、 テクスチャを必要とするマテリアルに手動で再割り当てする必要があります。
同様に、ゲームオブジェクト (またはプレハブ) にアタッチされたスクリプトアセットがその .meta
ファイルを失うと、そのゲームオブジェクトはスクリプトの機能を失い、“割り当てのないスクリプト” コンポーネントになります。これを修正するには、スクリプトをゲームオブジェクトに手動で再割り当てする必要があります。
Unity は Assets
フォルダーに加えられたファイルを読み込み、処理して、ファイルのコンテンツをゲーム対応の内部データに変換します。アセットファイル自体は変更されずに残り、内部データはプロジェクトの Library
フォルダーに保存されます。
アセットに内部形式を使用すると、ゲームで使用可能なバージョンのアセットがランタイムにエディターで使用できるようになり、変更されていないソースファイルは Assets
フォルダーに保持されます。内部形式をアセットファイルと別にしておくと、素早く編集してエディターに自動的に変更を反映させることができます。例えば、Photoshop ファイル形式は便利で、.psd
ファイルを直接 Assets
フォルダーに保存できますが、モバイルデバイスや PC グラフィックスカードなどのハードウェアは、それらの形式を直接処理してテクスチャとしてレンダリングできません。
Unity はアセットの内部形式をキャッシュフォルダーのような Library
フォルダーに保存します。ユーザーは、Library
フォルダーを手動で変更する必要はありません。変更しようとすると、Unity エディターのプロジェクトに悪影響を及ぼす可能性があります。ただし、Unity でプロジェクトが開いていない限り、Library
フォルダーを安全に削除できます。なぜなら、Unity は Assets
フォルダーと ProjectSettings
フォルダーからすべてのデータを再生成できるためです。これは、Library
フォルダーをバージョン管理下に含めるべきではないことも意味します。
Unity が 1 つのアセットファイルをインポートするときに、複数のアセットを作成する場合があります。例えば、以下の状況で発生します。
インポートの状況 | Unity がファイルを処理する方法 |
---|---|
3D ファイル (FBX ファイルなど) がマテリアルを定義するか、埋め込まれたテクスチャを含む場合 | Unity は マテリアルと埋め込まれたテクスチャ を別々のアセットとして抽出します。 |
画像ファイルを複数の 2D スプライトとしてインポートしたい場合 | 1 つのグラフィックス画像から複数のスプライトを定義するには、2D スプライトエディター を使用します。この場合、エディターで定義された各スプライトは、 Project ウィンドウに個別のスプライトアセットとして表示されます。 |
3D ファイルに複数のアニメーションタイムラインまたは複数のクリップが含まれている場合 | Unity は、アニメーションのインポート設定 に基づいて、別々のアニメーションタイムラインやクリップを自動的に定義します。作成された複数のアニメーションクリップは、Project ウィンドウに個別のアニメーションクリップアセットとして表示されます。 |
アセットに割り当てられた一意の ID と同様に、.meta
ファイルには、Project ウィンドウでアセットを選択したときに Inspector ウィンドウに表示される インポート設定 のすべての値が含まれています。テクスチャの場合、Texture Type、Wrap Mode、Filter Mode、Aniso Level インポート設定が含まれます。
アセットのインポート設定を変更すると、新しい設定は アセットに付随する .meta
ファイルに保存されます。Unity は更新された設定に従ってアセットを再インポートし、プロジェクトの Library
フォルダー内のそれに対応する既存の “ゲーム専用” データを更新します。
プロジェクトをバックアップするとき、またはバージョン管理リポジトリにプロジェクトを加えるときは、Assets
フォルダーと ProjectSettings
フォルダーの両方を含むメインの Unity プロジェクトフォルダーを加えます。Unity は、アセットを再インポートしゲームやアプリケーションを再構築するために、これらのフォルダーの情報に依存します。Library
フォルダーと Temp
フォルダーをバックアップしたり、 バージョン管理下に置いたりしないでください。