テクスチャは、視覚的な効果を与えるためにゲームオブジェクトを覆ったり包んだりする画像やムービーファイルです。ここでは、テクスチャを管理するのに必要なプロパティーを説明します。
Unity は 3D プロジェクトの Assets フォルダー内の画像やムービーファイルをすべてテクスチャとして認識します (2D プロジェクトの場合は、それらはスプライトとして保存されます)。画像が後述のサイズ要件を満たしている場合は、(オブジェクトに使用するシェーダーのすべてに、特定のテクスチャ要件があるとしても) ゲームに使用するためのインポートや最適化ができます。複数レイヤーの Photoshop や TIFF ファイルも使用できます。複数レイヤーはインポート時に自動的に統合されるので、ゲームの容量に関係ありません。統合化は PSD ファイル自体ではなく Unity 内部で行なわれ、必須でないため、レイヤーを損なわずに PSD ファイルの保存やインポートを継続することができます。
Inspector ウィンドウは、上部分の テクスチャインポーター と下部分の プレビュー の 2 つのセクションに分割されています。
テクスチャインポーターは、どのようにプロジェクトの Assets フォルダーから Unity に画像をインポートするかの方法を設定します。テクスチャインポーターにアクセスするには、Project ウィンドウで画像ファイルを選択すると、インスペクターウィンドウでテクスチャインポーターが開きます。
一般にあまり使用されないプロパティーの中には、デフォルトで非表示のものもあります。インスペクターウィンドウの Advanced をクリックすると、それらを表示できます。
テクスチャインポーターの最初のプロパティーは Texture Type です。これで、画像のソースファイルから作成したいテクスチャタイプを選択します。詳細はマニュアルの テクスチャタイプ を参照してください。
プロパティー | 機能 |
---|---|
Texture Type | このテクスチャが何に使用されるのかを選択します。テクスチャインポーターの他のプロパティーは、この選択によって変化します。 |
Default | すべてのテクスチャで使用されるもっとも一般的な設定です。テクスチャインポーターのほとんどのプロパティーにアクセスすることができます。 |
Normal Map | カラーチャンネルをリアルタイム法線マッピングに合った形式に変えます。法線マッピングに関する詳細は、 テクスチャのインポート を参照してください。 |
Editor GUI | テクスチャを任意の HUD/GUI 制御で使用します。 |
Sprite (2D and UI) | テクスチャを 2D ゲームの スプライト として使用します。 |
Cursor | テクスチャを カスタムのカーソルとして使用します。 |
Cookie | テクスチャをシーンの ライト の クッキー として使うために、基本パラメーターで設定します。 |
Lightmap | テクスチャを ライトマップ として使用する場合は、これを選択します。このオプションを使用すると、特定の形式 (プラットフォームに応じて RGBM または dLDR) へのエンコードと、テクスチャデータのポストプロセス処理 (プッシュ-プル拡張) が可能になります。 |
Single Channel | テクスチャでチャンネルが 1 つだけ必要な場合に選択します。 |
テクスチャインポーターの 2 番目のプロパティーは Texture Shape です。テクスチャの形状と構造を選択し定義します。
プロパティー | 機能 |
---|---|
Texture Shape | テクスチャの形状を決定します。デフォルトでは 2D に設定されています。 |
2D | すべてのテクスチャに対し、もっとも一般的な設定です。画像ファイルを 2D テクスチャとして定義します。テクスチャを、他のプロジェクト要素の中の 3D メッシュや GUI エレメントにマップするのに使用されます。 |
Cube | テクスチャを、キューブマップとして定義します。この設定は、スカイボックスやリフレクションプローブなどに使用できます。Cube を選択すると異なるマッピングオプションが表示されます。 |
Mapping | Texture Shape を Cube に設定するときのみ表示されます。ゲームオブジェクト上にどのようにテクスチャを投影するかを Mapping で設定します。デフォルトでは Auto に設定されています。 |
Auto | Unity はテクスチャの情報をもとに自動的にレイアウトしようとします。 |
6 Frames Layout (Cubic Environment) | テクスチャには標準のキューブマップレイアウト (クロス、または、直列 (+x -x +y -y +z -z) ) のうち 1 つで用意された 6 つの画像が含まれています。画像は平行、または垂直、いずれかの方向になります。 |
Latitude Longitude (Cylindrical) | テクスチャを 2D の緯度経度の表現にマップします。 |
Mirrored Ball (Sphere Mapped) | テクスチャを球状のキューブマップにマップします。 |
Convolution Type | テクスチャに使用したいプレコンボリューション (つまり、フィルタリング) のタイプを選択します。プレコンボリューションの結果はミップマップに格納されます。デフォルトでは None に設定されています。 |
None | テクスチャにプレコンボリューション (つまり、フィルタリング) を行いません。 |
Specular (Glossy Reflection) | キューブマップをリフレクションプローブとして使用します。テクスチャミップマップはエンジンの BRDF (双方向反射率分布関数) でプレコンボリューション (フィルタリング) されます。詳しくは、ウイキペディアの Bidirectional reflectance distribution function を参照してください。 |
Diffuse (Irradiance) | テクスチャはコンボリューション (フィルタリング) され照射します。これは、通常、キューブマップをライトプローブとして使用したいときに役立ちます。 |
Fixup Edge Seams | この設定は、 None か Diffuse コンボリューション (フィルタリング) でのみ可能です。これは、ローエンドのプラットフォームで、キューブマップの面が誤ってフィルタリングされるなどの、フィルタリングの制限の回避策として使用します。 |
Advanced settings (詳細設定) では、Unity がテクスチャを処理する方法をより細かく調整することができます。これらの設定の表示順序と使用可能かどうかは、選択した Texture Type (テクスチャタイプ) によって若干異なる場合があります。
プロパティー | 説明 |
---|---|
Non Power of 2 | テクスチャが 2 の累乗以外 (Non power of two) のテクスチャサイズを持つ場合、これによってインポート時のスケーリングの挙動が定義されます。2 の累乗以外のテクスチャサイズについては、テクスチャのインポート を参照してください。デフォルトでは None に設定されています。 |
None | テクスチャサイズは変更されません。 |
To nearest | テクスチャは、インポート時に最も近い 2 の累乗のテクスチャサイズにスケーリングされます。例えば、257x511 px のテクスチャは 256x512 px にスケーリングされます。PVRTC 形式ではテクスチャが正方形 (高さと幅が等しい) である必要があるため、最終には 512x512 px に拡大されます。 |
To larger | テクスチャは、インポート時に最も大きい 2 の累乗のテクスチャサイズにスケーリングされます。例えば、257x511 px のテクスチャは 512x512 px にスケーリングされます。 |
To smaller | テクスチャは、インポート時に最も小さい 2 の累乗のテクスチャサイズにスケーリングされます。例えば、257x511 px のテクスチャは 256x256 px にスケーリングされます。 |
Read/Write Enabled | このボックスをチェックすると、スクリプト関数 (Texture2D.SetPixels、Texture2D.GetPixels、その他の Texture2D 関数など) からテクスチャデータにアクセスが可能になります。ただし、テクスチャデータのコピーが作成され、テクスチャアセットに必要なメモリ量が 2 倍になるため、絶対に必要な場合にのみこのプロパティーを使用してください。この機能は非圧縮テクスチャと DXT 圧縮テクスチャに対してのみ有効です。他のタイプの圧縮テクスチャを読み込むことはできません。このボックスは、デフォルトでは無効になっています。 |
Streaming Mip Maps | このボックスをチェックすると、このテクスチャで テクスチャストリーミング が使用可能になります。この設定は、Unity がメッシュレンダラーで表示する 3D 環境のすべてのテクスチャに有効です。ディフューズテクスチャ、法線マップ、ライトマップはすべて、テクスチャストリーミングを使用できます。 |
Mip Map Priority | ミップマップの優先順位を設定します。Unity はこれを使用して、リソースを割り当てるときにどのミップマップを優先するかを決定します。値が高いほど優先順位が高くなります (例えば、3 は 1 より優先度が高い)。この設定は、Streaming Mip Maps が有効になっている場合にのみ可能です。 Mip Map Priority の数字は Memory Budget (Texture Streaming が有効な場合に、Quality 設定 で設定できます) のミップマップオフセットでもあります。例えば、優先順位が 2 の場合、テクスチャストリーミングシステムは、優先順位が 0 の他のテクスチャよりミップレベルが 2 つ高いミップマップを使用しようとします。ミップレベルが 1 つ高い場合は、各軸で 2 倍、2 つ高い場合は、各軸で 4 倍です。 そのため、ミップレベルが 2 つ高いと、結果的に、テクスチャは 16 倍の大きさになります。これを行うことができない場合は、Memory Budget に合う低いミップレベルを使用します。負の値も有効です。詳細は テクスチャストリーミング API を参照してください。 |
Generate Mip Maps | このボックスをチェックすると、ミップマップ生成が可能になります。ミップマップは縮小されたテクスチャで、画面上でとても小さくテクスチャを表示する場合に使います。ミップマップについて詳しくは Importing Textures を参照してください。 |
Border Mip Maps | このボックスをチェックすると、低 MIP レベルのエッジに色がしみ出ることを防ぐことができます。ライトのクッキーに使用します (後述)。このボックスは、デフォルトでは無効になっています。 |
Mip Map Filtering | 画像品質を最適化するために 2 種類のミップマップフィルタリングがあります。デフォルトは Box です。 |
Box | ミップマップをフェードアウトさせる最も簡単な方法です。MIP レベルは、テクスチャサイズが小さくなるにつれてより滑らかになります。 |
Kaiser | ミップマップ上では、テクスチャサイズが小さくなるにつれてシャープニングアルゴリズムが実行されます。テクスチャがあまりにもぼやけている場合は、このオプションを試してみてください。(アルゴリズムはカイザー窓 タイプです。詳細は Wikipedia を参照してください。) |
Mip Maps Preserve Coverage | このボックスをチェックすると、生成されたミップマップのアルファチャンネルは、アルファテストの間、範囲を維持します。詳細はTextureImporterSettings.mipMapsPreserveCoverage を参照してください。 |
Fadeout Mip Maps | このボックスをチェックすると、MIP レベルが進行するにつれてミップマップがグレーにフェードアウトします。これは、詳細マップに使用されます。スクロールの左端はフェードアウト開始時点の MIP レベルです。スクロールの右端は、テクスチャが完全にグレーに表示される MIP レベルを定義します。 |
Wrap Mode | タイルにするときのテクスチャの挙動を選択します。 デフォルトは Clamp です。 |
Repeat | テクスチャをタイル状に繰り返します。 |
Clamp | テクスチャのエッジを引き延ばします。 |
Mirror | テクスチャをすべての整数の境界でミラーし、繰り返しのパターンを作成します。 |
Mirror Once | テクスチャを 1 回ミラーし、エッジのピクセルに固定します。 |
Per-axis | U 軸と V 軸でテクスチャをラップする方法を個別に制御します。 |
Filter Mode | 3D 変形で伸長される際に、テクスチャをどのようにフィルタリングするかを選択します。デフォルトは Point (no filter) です。 |
Point (no filter) | 拡大したテクスチャをブロック状にします。 |
Bilinear | 拡大したテクスチャをぼかします。 |
Trilinear | Bilinear に似ていますが、テクスチャを異なる MIP レベル間でもぼかします。 |
Aniso Level | 急角度から見たときのテスクチャの品質を向上させます。床や地面のテクスチャに適しています。異方性フィルタリングに関して詳しくは テクスチャのインポート を参照してください。 |
Texture Inspector ウィンドウには プラットフォームに特化したオーバーライド パネルがあります。
さまざまなプラットフォーム向けにビルドするとき、それぞれのターゲットプラットフォームに対して、解像度、メモリサイズ要件に関連したファイルサイズ、ピクセル面積、テクスチャの品質を考慮する必要があります。プラットフォームに特化したオーバーライド パネルを使ってデフォルトのオプションを設定し (Default を使用)、次に、パネルの上部にあるボタンで特定のプラットフォームに設定をオーバーライドします。
プロパティー | 機能 |
---|---|
Max Size | インポートされたテクスチャの最大サイズ (ピクセル)。アーティストは、巨大な面積のテクスチャでの作業を好むことがあります。Max Size で、テクスチャを適切なサイズに縮小します。 |
Compression | テクスチャの圧縮タイプを選択します。このパラメーターによって、システムが、適切なテクスチャの圧縮形式を選択できます。プラットフォームや圧縮形式の使用可否によって、異なる設定でも、結果的に内部的に同じ形式になる場合があります (例えば、 Low Quality 圧縮 はモバイルプラットフォームに効果的ですが、デスクトッププラットフォームには効果がありません)。 |
None | テクスチャを圧縮しません。 |
Low Quality | テクスチャを低品質の形式で圧縮します。この結果、 Normal Quality に比べ、メモリ使用は少なくなります。 |
Normal Quality | テクスチャを標準品質の形式で圧縮します。 |
High Quality | テクスチャを高品質の形式で圧縮します。この結果、 Normal Quality に比べ、メモリ使用は多くなります。 |
Format | これを使って、自動システムをバイパスして、テクスチャにどの内部形式を使用するかを特定します。使用できる形式のリストは、プラットフォームとテクスチャタイプによります。詳細は、 プラットフォーム別オーバーライドのためのテクスチャ圧縮形式 を参照してください。 注意 プラットフォームがオーバーライドされていないときでも、ここには自動的に選択された形式が表示されます。Format プロパティーは、特定のプラットフォームをオーバーライドしたときにのみ選択可能で、デフォルト設定では使用できません。 |
Use crunch compression | 使用可能な場合は、Crunch 圧縮を使用します。Crunch は DXT テクスチャや ETC テクスチャの圧縮に使用できる不可逆圧縮形式です。テクスチャは CPU で DXT か ETC に解凍され、ランタイムに GPU に読み込まれます。Crunch 圧縮は、ディスク上やダウンロード時に使用するスペース量をできるだけ少なくしたいときに役立ちます。Crunch テクスチャは、圧縮するのにかなり時間がかかりますが、ランタイムでの解凍は高速です。 |
Compressor Quality | Crunch テクスチャ圧縮では、スライダーを使って品質を調整することができます。高品質な圧縮は、より大きなテクスチャや、より長い圧縮時間を意味します。 |