イメージのインポート

サポートされている画像形式

Godotは、次の画像形式をインポートできます:

  • BMP (.bmp) - 16 ビット/ピクセルの画像はサポートされていません。1 ビット、4 ビット、8 ビット、24 ビット、32 ビット/ピクセル画像のみがサポートされています。

  • DirectDraw Surface (.dds) - ミップマップがテクスチャに存在する場合、それらは直接ロードされます。これは、カスタムミップマップを使用してその効果を実現するために使用できます。

  • Khronos Texture (.ktx) - デコードは libktx を使用して行われます。2D画像のみをサポートします。キューブマップ、テクスチャ配列、およびパディング除去機能はサポートされていません。

  • OpenEXR (.exr) - HDRをサポートします(パノラマスカイ用に強くお勧めします)。

  • Radiance HDR (.hdr) - HDRをサポートします(パノラマスカイ用に強くお勧めします)。

  • JPEG (.jpg.jpeg) - フォーマットの制限に従って透明度はサポートしていません。

  • PNG (.png) - インポート時のチャンネルごとの精度は8ビットに制限されます(HDR画像なし)。

  • Truevision Targa (.tga)

  • SVG (.svg, .svgz) - SVGは、インポート時に ThorVG を使用してラスタライズされます。サポート内容は限られています: 複雑なベクトルは正しくレンダリングされない場合があります。テキストはパスに変換する必要があります; そうしないと、ラスタライズされたイメージに表示されません。ThorVG が特定のベクトルを正しくレンダリングできるかどうかは、Webビューア を使用して確認できます。複雑なベクトルの場合は、Inkscape を使用してPNGにレンダリングする方が良い場合が多くあります。これは、コマンドライン インターフェイス のおかげで自動化できます。

  • WebP (.webp) - WebPファイルは透明度をサポートし、不可逆圧縮または可逆圧縮が可能です。精度はチャネルあたり8ビットに制限されます。

注釈

特定のモジュールを無効にしてソースからGodotエディタをコンパイルした場合、一部の形式が利用できない場合があります。

テクスチャのインポート

Godotのデフォルトのアクションは、イメージをテクスチャとして読み込む方法です。テクスチャデータはビデオメモリに置かれます。スクリプトで Image に変換し直さない限り、CPUからテクスチャのピクセルデータに直接アクセスすることはできません。これによりテクスチャの描画が効率的になります。

ファイルシステムドックで画像ファイルを選択した後、調整できるインポートオプションが12個以上あります。

ファイルシステムドックで画像ファイルを選択した時のインポートドックのインポートオプション

ファイルシステムドックで画像を選択した後、インポートドックに表示されるインポートオプション。これらのオプションの一部は、特定の圧縮モードでのみ表示されます。

インポートタイプの変更

インポートドックではインポートされたリソースに対して、他のタイプを選択することもできます。

  • BitMap: 1ビットのモノクロテクスチャ (TextureButton および TouchScreenButton でクリックマスクとして使用することを目的としています)。このリソース タイプは2Dまたは3Dノードに直接表示することはできませんが、get_bit を使用して、スクリプトからピクセル値を照会できます。

  • Cubemap: キューブマップの面の間を補間した6面のキューブマップとしてテクスチャをインポートします (シームレスなキューブマップ)。これはカスタムシェーダーでサンプリングできます。

  • CubemapArray: Import the texture as a collection of 6-sided cubemaps, which can be sampled in custom shaders. This resource type can only be displayed when using the Forward+ or Mobile renderers, not the Compatibility renderer.

  • Font Data (Image Font): すべての文字の横幅が同じビットマップフォントとしてイメージをインポートします。Using Fonts を参照してください。

  • Image: 画像をそのままインポートします。このリソース タイプは2Dまたは3Dノードで直接表示することはできませんが、get_pixel を使用してスクリプトからピクセル値を参照できます。

  • Texture2D: 2Dおよび3Dサーフェスでの表示に適した2次元テクスチャとして画像をインポートします。これがデフォルトのインポートモードです。

  • Texture2DArray: 画像を2次元テクスチャのコレクションとしてインポートします。Texture2DArrayは3次元テクスチャに似ていますが、レイヤー間の補間はありません。組み込みの2Dおよび3Dシェーダーではこのテクスチャ配列を表示できないため、テクスチャ配列からテクスチャを表示するには、2D または 3D でカスタムシェーダーを作成する必要があります。

  • Texture3D: Import the image as a 3-dimensional texture. This is not a 2D texture applied onto a 3D surface. Texture3D is similar to a texture array, but with interpolation between layers. Texture3D is typically used for FogMaterial density maps in volumetric fog, particle attractor vector fields, Environment 3D LUT color correction, and custom shaders.

  • TextureAtlas: 画像をさまざまなテクスチャの アトラス としてインポートします。アニメーション化された2Dスプライトのメモリ使用量を削減するために使用できます。組み込みの3Dシェーダーでサポートされていないため、2Dでのみサポートされます。

For Cubemap, the expected image order is X+, X-, Y+, Y-, Z+, Z- (in Godot's coordinate system, so Y+ is "up" and Z- is "forward"). Here are templates you can use for cubemap images (right-click > Save Link As…):

Detect 3D

デフォルトのインポートオプション (ミップマップなし、Lossless 圧縮) は2Dには適していますが、ほとんどの3Dプロジェクトには適していません。Detect 3D により、テクスチャが3Dシーンで使用されていることが Godot に認識されます (BaseMaterial3D 内のテクスチャなど)。この場合、テクスチャフラグが3Dに適したものになるように、いくつかのインポート オプションが変更されます。3D検出時 > 圧縮モードの変更 が変更されていない限り、ミップマップが有効になり、圧縮モードが VRAM Compressed に変更されます。テクスチャも自動的に再インポートされます。

3Dで使用されるテクスチャが検出されると、出力パネルにメッセージが出力されます。

テクスチャが3Dで使用されることが検出されたときに品質の問題が発生する場合 (ピクセルアートテクスチャなど)、テクスチャを3Dで使用する前に 3D検出時 > 圧縮モードの変更 オプションを変更するか、テクスチャを3Dで使用した後に 圧縮 > モードLossless に変更します。ミップマップ生成は有効なままなので、遠くからテクスチャがざらざらして見えるのを防ぐことができるため、Detect 3D を無効にするよりもこの方法の方が適しています。

インポートオプション

参考

Godot 4.0から、テクスチャフィルターと繰り返しモードの変更はインポートオプションでは行えなくなりました。

代わりに、テクスチャフィルターと繰り返しモードは、2DではCanvasItemプロパティ (プロジェクト設定がデフォルトとして機能します) で設定でき、3Dでは マテリアル単位の設定 で設定できます。カスタムシェーダーでは シェーディング言語 ドキュメントで説明されているヒントを使用して sampler2D ユニフォームで設定できます。

圧縮 > モード

画像は、ゲーム内で最大のアセットの 1つです。それらを効率的に処理するには、圧縮する必要があります。Godot は、ユースケースに応じて、いくつかの圧縮方法を提供します。

  • Lossless(ロスレス) : これは2Dアセットで最も一般的な圧縮です。これは、あらゆるアーティファクトの影響を受けずにアセットを表示できるものであり、ディスク圧縮はまずまずです。ただし、VRAM圧縮よりもかなり多くのビデオメモリを使用します。これはピクセルアート向けの推奨設定でもあります。

  • Lossy(非可逆圧縮): これは、大きな2Dアセットに適しています。いくつかのアーティファクトがありますが、VRAMより小さく、ファイルサイズはLosslessまたはUncompressedに比べて数分の1の小ささです。このモードでは、ビデオメモリの使用量は減少しません。 Lossless や VRAM Uncompressedと同じです。

  • VRAM Compressed: これは3Dアセットデフォルトかつ最も一般的な圧縮モードです。ディスク上のサイズが削減され、ビデオメモリの使用量も大幅に削減されます(通常は1/4〜1/6)。このモードは、低解像度のテクスチャでは特に目立つアーティファクトが発生するため、2Dでは使用しないでください。

  • VRAM Uncompressed(圧縮なし): 圧縮できないフォーマット(raw floatなど)にのみ役立ちます。

  • Basis Universal: この代替VRAM圧縮モードでは、テクスチャのロード時にほとんどのGPU圧縮形式にトランスコードできる形式にエンコードします。これにより、VRAM 圧縮を使用した非常に小さなファイルが生成されますが、VRAM圧縮に比べて品質が低く、圧縮時間が長くなります。VRAMの使用量は、通常のVRAM圧縮と同じです。Basis Universal はfloat形式をサポートしていません (代わりにエンジンは内部的にVRAM圧縮にフォールバックします)。

注釈

3Dの場合でも、「ピクセルアート」テクスチャではVRAM圧縮を無効にする必要があります。解像度が低いとパフォーマンスが大幅に向上するわけでもなく、描画の見た目に悪影響を与えるためです。

この表では5つの項目について、それぞれの長所と短所と共に説明しています (good = 最高、 bad = 最悪):

圧縮モード (Compress Mode)

Lossless

Lossy

VRAM Compressed

VRAM Uncompressed

Basis Universal

説明

可逆圧縮WebP/PNGとして保存

非可逆圧縮WebPとして保存

プラットフォーム依存のS3TC/BPTC/ETC2として保存

未加工のピクセルとして保存

VRAM圧縮フォーマットへトランスコード

ディスク上のサイズ

普通 小さい

good 非常に小さい

普通 小さい

bad 大きい

good 非常に小さい

メモリ使用量

bad 大きい

bad 大きい

good 小さい

bad 大きい

good 小さい

パフォーマンス

普通 通常

普通 通常

good 高速

普通 通常

good 高速

品質損失

good なし

普通 わずか

bad 中程度

good なし

bad 中程度

ロード時間

bad 遅い

bad 遅い

good 高速

普通 通常

普通 通常

ミップマップを有効にした単一のRGBA8テクスチャの推定メモリ使用量がこちらです:

Texture size

Lossless

Lossy

VRAM Compressed

VRAM Uncompressed

Basis Universal

128×128

good 85 KiB

good 85 KiB

good 21 KiB

good 85 KiB

good 21 KiB

256×256

good 341 KiB

good 341 KiB

good 85 KiB

good 341 KiB

good 85 KiB

512×512

good 1.33 MiB

good 1.33 MiB

good 341 KiB

good 1.33 MiB

good 341 KiB

1024×1024

普通 5.33 MiB

普通 5.33 MiB

good 1.33 MiB

普通 5.33 MiB

good 1.33 MiB

2048×2048

bad 21.33 MiB

bad 21.33 MiB

普通 5.33 MiB

bad 21.33 MiB

普通 5.33 MiB

4096×4096

bad 85.33 MiB

bad 85.33 MiB

bad 21.33 MiB

bad 85.33 MiB

bad 21.33 MiB

注釈

上記の表では、アルファチャネルを持たない画像(RGB8)はメモリ使用量が25%削減されます。ミップマップが無効になっている画像はメモリ使用量がさらに25%削減されます。

解像度が高くなると、VRAM圧縮の影響がはるかに大きくなることに注目してください。圧縮率が 4:1 (S3TC を使用した不透明テクスチャの場合は 6:1) の場合、VRAM圧縮によりGPUで同じ量のメモリを使用しながら、テクスチャを各軸2倍の大きさにすることができます。

VRAM圧縮を活用するとテクスチャのサンプリングに必要なメモリ帯域幅も削減されるため、メモリ帯域幅が制限されるデバイス (統合GPUやモバイルGPUなど) でのレンダリングが高速化されます。これらの要素が組み合わさって、VRAM圧縮は高解像度テクスチャを使用する3Dゲームでは必須のものとなっています。

テクスチャ使用するメモリ量は、ファイルシステムドックでテクスチャをダブルクリックすることでインスペクターで確認できます。

インスペクターでテクスチャをプレビューする

インスペクターでテクスチャをプレビューしているところ。Credit: Red Brick 03 - Poly Haven

圧縮 > 高品質

注釈

High-quality VRAM texture compression is only supported in the Forward+ and Mobile renderers.

When using the Compatibility renderer, this option is always considered disabled.

これを有効にすると、デスクトッププラットフォームではBPTC圧縮が使用され、モバイルプラットフォームでは ASTC 圧縮が使用されます。BPTCを使用する場合、SDRテクスチャには BC7 が使用され、HDR テクスチャには BC6H が使用されます。

これが無効(デフォルト)の場合、デスクトッププラットフォームは高速だが品質の低い S3TC 圧縮を使用し、モバイル/Webプラットフォームでは ETC2 を使用します。S3TC を使用する場合、不透明テクスチャには DXT1 (BC1) が使用され、透明または法線マップ (RGTC) テクスチャには DXT5 (BC3) が使用されます。

BPTC と ASTC はHDRテクスチャのVRAM圧縮をサポートしていますが、S3TC と ETC2 はサポートしていません (以下の HDR 圧縮 を参照)。

圧縮 > HDR圧縮

注釈

このオプションは、GodotでHDR形式 (.hdr および .exr ファイル) としてインポートされたテクスチャにのみ影響します。

これを**無効** に設定すると、不透明か透明かに関係なく、HDR テクスチャにVRAM圧縮は使用されません。代わりにテクスチャは RGBE9995 (チャネルあたり 9 ビット + 5 ビット指数 = ピクセルあたり 32 ビット) に変換され、Half-FloatまたはFloatの画像形式と比較してメモリ使用量が削減されます。

不透明のみ (デフォルト) に設定すると、不透明なHDRテクスチャにのみVRAM圧縮が使用されます。これはHDR形式の制限によるものであり、透明度をサポートするVRAM圧縮HDR形式は存在しないためです。

Always に設定すると、アルファチャネルを持つHDRテクスチャでもVRAM圧縮が強制されます。これを実行するとインポート時にアルファチャネルが破棄されます。

圧縮 > 法線マップ

テクスチャを法線マップとして使用する場合、赤と緑のチャンネルのみが必要です。通常のテクスチャ圧縮アルゴリズムでは法線マップで見栄えの悪いアーティファクトが生成されるため、RGTC 圧縮形式がこのデータに最適です。このオプションを Enable にすると、Godot は画像を RGTC 圧縮としてインポートします。デフォルトでは、Detect に設定されています。つまりテクスチャが法線マップとして使用されることが検出されると、Enable に変更され、自動的に再インポートされます。

RGTC 圧縮は、結果として得られる法線マップのイメージに影響することに注意してください。これを考慮するには、法線マップの青チャンネルを使用するカスタム シェーダーを調整する必要があります。組み込みのマテリアルシェーダーは、法線マップの青チャンネルを既に無視します (実際の法線マップの内容に関係なく)。

以下の例では、RGTC 圧縮を使用した法線マップは、標準のRGBA形式のVRAM圧縮テクスチャと同じ量のメモリを使用しながら、品質をより適切に保持できます。

標準のVRAM圧縮の法線マップ(左) と、RGTCのVRAM圧縮の法線マップ(右)

標準のVRAM圧縮の法線マップ(左) と、RGTCのVRAM圧縮の法線マップ(右)

注釈

Godotでは法線マップは X+, Y+, Z+として使用されます。これはOpenGLスタイルの法線マップと呼ばれます。別のエンジンで使用するために作成されたマテリアルをインポートするときDirectXスタイルである可能性があります。その場合、インポート オプションで 法線マップのYを反転 を有効にして法線マップを変換する必要があります。

法線マップに関する詳細情報 (一般的なエンジンの座標順序テーブルを含む) については、こちら を参照してください。

圧縮 > チャンネルパック

sRGB Friendly (デフォルト) に設定すると、sRGBカラーがサポートされていないため、RGカラー形式が使用されなくなります。

Optimized に設定すると、テクスチャが青チャネルを使用しない場合にRGカラー形式を使用できるようになります。

A third option Normal Map (RG Channels) is only available in layered textures (Cubemap, CubemapArray, Texture2DArray and Texture3D). This forces all layers from the texture to be imported with the RG color format, with only the red and green channels preserved. RGTC compression is able to preserve its detail much better, while using the same amount of memory as a standard RGBA VRAM-compressed texture. This only has an effect on textures with the VRAM Compressed or Basis Universal compression modes.

ミップマップ > 生成する

ミップマップを有効にすると、インポート時にテクスチャの小さいバージョンが生成されます。たとえば、64×64 テクスチャは6つのミップマップ (32×32、16×16、8×8、4×4、2×2、1×1) を生成します。これにはいくつかの利点があります。

  • 3Dで対象が遠距離であったり、2DでカメラのズームやCanvasItemのスケールによって対象が縮小されたりしても、テクスチャは粗くなりません。

  • テクスチャが遠くに表示されると、元のテクスチャの小さいバージョンをサンプリングするようになります。これは高速で必要なメモリ帯域幅が少なくなるため、パフォーマンスが向上します。

ミップマップの欠点は、メモリ使用量が約33%増加することです。

3Dではミップマップを有効にすることをお勧めします。ただし2Dでは、プロジェクトでミップマップを有効にして目に見えるメリットがある場合にのみ有効にしてください。カメラが大幅にズームアウトしない場合は、ミップマップを有効にしてもメリットはなく、単にメモリ使用量が増加するだけになります。

ミップマップ > 制限値

警告

ミップマップ > 制限値 は現在実装されておらず、変更しても効果はありません。

-1 より大きい値に設定すると、生成できるミップマップの最大数が制限されます。極端な距離でテクスチャの解像度が低くなりすぎないようにしたい場合はこの値を減らします。ただし多少のざらつきは生じます。

ラフネス > モード

このテクスチャのラフネスマップとして使用するカラーチャンネル。ラフネス用の法線マップ が空でない場合にのみ有効です。

ラフネス > ラフネス用の法線マップ

インポート時にラフネスフィルタリングの法線マップとして使用するテクスチャへのパス。これを指定すると3Dでの光沢エイリアシングをわずかに減らすことができます。

インポート時のラフネスフィルタリングは2Dレンダリングではなく、3Dレンダリングでのみ使用されます。

インポートプロセス > アルファ境界を修正

これをオンにすると、同じ周囲の色のピクセルが透明から非透明に移行します。バイリニアフィルタリングで表示されるテクスチャの場合、画像エディタからイメージをエクスポートするときにアウトライン効果を軽減するのに役立ちます。

../../_images/fixedborder.png

特定のイメージに問題が発生しない限り、これを有効のままにしておくことをお勧めします (デフォルトのまま)。

インポートプロセス > 乗算済みアルファ

暗くなった境界は アルファ境界を修正 を使用して修正する代わりに、乗算済みアルファを使用することもできます。このオプションを有効にすると、テクスチャはこの形式に変換されます。乗算済みアルファテクスチャを正しく表示するには、特殊なマテリアルが必要です。

  • In 2D, a CanvasItemMaterial will need to be created and configured to use the Premul Alpha blend mode on CanvasItems that use this texture. In custom canvas item shaders, render_mode blend_premul_alpha; should be used.

  • In 3D, a BaseMaterial3D will need to be created and configured to use the Premul Alpha blend mode on materials that use this texture. In custom spatial shaders, render_mode blend_premul_alpha; should be used.

インポートプロセス > 法線マップのYを反転

Godotでは法線マップは X+, Y+, Z+として使用されます。これはOpenGLスタイルの法線マップと呼ばれます。別のエンジンで使用するために作成されたマテリアルをインポートするときDirectXスタイルである可能性があります。その場合、インポート オプションで 法線マップのYを反転 を有効にして法線マップを変換する必要があります。

法線マップに関する詳細情報 (一般的なエンジンの座標順序テーブルを含む) については、こちら を参照してください。

インポートプロセス > HDRをsRGBとして処理

オンラインで見つかるHDR画像の中には、壊れていてリニアカラーデータではなくsRGBカラーデータが含まれているものがあります。これらのファイルは使用しないことをお勧めします。どうしても必要な場合は、このオプションを有効にすると正しく表示されます。

警告

適切にフォーマットされたHDR画像で HDRをsRGB として処理 を有効にすると、結果の画像が暗くなりすぎるため、分からない場合は無効のままにしておきます。

インポートプロセス > HDRの明るさ上限処理

オンラインで見つかるHDRパノラマ画像の中には、クリッピングなしで実際のソースから取得されたため、非常に明るいピクセルが含まれているものがあります。

これらのHDRパノラマ画像は現実に忠実ですが、背景の空として使用するとGodotによって生成された放射輝度マップに輝きが含まれることがあります。これはマテリアルの反射で確認できます (極端な場合は粗いマテリアルでも)。HDRの明るさ上限処理 を有効にすると、目に見えるクリッピングが発生しないスマートクランプ式を使用してこの問題を解決できます。背景の空については輝きは引き続き有効になります。

インポートプロセス > サイズ制限

0より大きい値に設定すると、テクスチャのサイズはインポート時にここで指定した値以下に制限されるようになります。正方形以外のテクスチャの場合、サイズ制限は長い方の寸法に影響し、短い方の寸法はアスペクト比を維持するために拡大縮小されます。リサイズはキュービック補間を使用して実行されます。

これを使用すると、ソースイメージに影響を与えずにメモリ使用量を削減したり、モバイル/Web プラットフォームでテクスチャが表示されない問題を回避したりできます (通常これらのプラットフォームでは 4096×4096 より大きいテクスチャを表示できないため)。

3D検出時 > 圧縮モードの変更

これをオンにすると、テクスチャが3Dで使用されていることが検出されたとき、使用される 圧縮 > モード オプションが変更されます。

このインポートオプションの変更は、テクスチャが3Dで使用されていることが検出された場合にのみ有効です。これを Disabled に変更して再インポートすると、テクスチャの既存の圧縮モードは変更されません (3D で使用されていることが検出された場合) が、VRAM Compressed または Basis Universal を選択すると変更されます。

SVG > スケール

これはSVG画像でのみ利用可能です。

SVGをレンダリングするスケール。 1.0 は元のデザインサイズです。値が大きいほど画像が大きくなります。フォントのオーバーサンプリングとは異なり、これは2DでSVGがレンダリングされる物理的なサイズに影響することに注意してください。以下の エディター > Scale With Editor Scale も参照してください。

エディター > Scale With Editor Scale

これはSVG画像でのみ利用可能です。

オンの場合、インポートされたイメージをエディターの表示スケール係数に合わせて拡大縮小します。エディタープラグインアイコンとカスタムクラスアイコンの場合は有効にする必要がありますが、それ以外の場合は無効のままにしておきます。

エディター > エディターテーマで色を変換

これはSVG画像でのみ利用可能です。

オンにすると、インポートされた画像の色をエディターのアイコンとフォントのカラーパレットに合わせて変換します。これは、ソースファイルがダークエディターテーマ用に設計されており、画像が Godot のエディターアイコン用カラーパレット とまったく同じ色を使用していることを前提としています。エディタープラグインアイコンとカスタムクラスアイコンではこれを有効にする必要がありますが、それ以外の場合は無効のままにしておきます。

テキスト付きSVG画像のインポート

Godotが使用しているSVGライブラリはSVG画像内のテキストのラスタライズをサポートしていないため、テキストをパスに変換する必要があります。そうしないとラスタライズされた画像にテキストが表示されません。

これを非破壊的に実現する方法は2つあり、そうすると後から元のテキストを編集することができます。

  • Inkscapeでテキスト オブジェクトを選択し、Ctrl + D を押してその場で複製し、パス > オブジェクトをパスへ を使用します。その後、レイヤーとオブジェクト ドックを使用して元のテキストオブジェクトを非表示にします。

  • Inkscape コマンドラインを使用して、テキストをパスに変換したSVGを別のSVGファイルとしてエクスポートします。

inkscape --export-text-to-path --export-filename svg_with_text_converted_to_path.svg svg_with_text.svg

ベストプラクティス

アーティファクトなしで2Dの高解像度テクスチャをサポート

高解像度で鮮明なビジュアルで 複数の解像度 をサポートするには、高解像度のソースイメージ (ぼやけることなくサポートしたい最高解像度に適したもの。最新のデスクトップゲームでは4K) を使用する必要があります。

これを行うには、次の2つの方法があります:

  • プロジェクト設定で高い基本解像度 (4K など) を使用し、テクスチャを元のスケールで使用します。これは簡単な方法です。

  • プロジェクト設定で低い基本解像度 (1080p など) を使用し、テクスチャを使用するときに縮小します。これは多くの場合困難で、スクリプト内のさまざまな計算が面倒になる可能性があるため、上記のアプローチをお勧めします。

これを実行すると、ビューポートの解像度が低いとテクスチャが粗くなることがあります。これを解決するにはインポートドックで2Dで使用されるテクスチャの ミップマップ を有効にします。なおメモリ使用量は増加します。

ミップマップを有効にするとテクスチャがぼやけて見えることもありますが、レンダリング > テクスチャ > デフォルトフィルター > テクスチャミップマップバイアス を負の値に設定することで、テクスチャをよりシャープにすることもできます (多少の粒状感は犠牲になります)。

3Dで適切なテクスチャサイズを使用する

「すべてに当てはまる」推奨事項はありませんが、3Dでテクスチャ サイズを選択するための一般的な推奨事項を以下に示します。

  • テクスチャのサイズは、周囲のオブジェクトと比較してテクセル密度が一定になるように調整する必要があります。これを完全に保証することはできませんが、テクスチャサイズを2の累乗にすると、一般的に3Dシーン全体でテクスチャの詳細をほぼ一定に保つことができます。

  • 画面に表示されるオブジェクトが小さいほど、そのテクスチャも小さくする必要があります。たとえば背景にのみ表示される木には、プレイヤーが近くを歩くことができる他のオブジェクトほど高いテクスチャ解像度は必要ありません。

  • 2の累乗のテクスチャ サイズを使用することをお勧めしますが、必須ではありません。テクスチャは正方形である必要はなく、1024×512 などのサイズでもかまいません。

  • 大きなテクスチャサイズを使用しても、メモリ使用量と読み込み時間の増加にもかかわらず、メリットは少ないです。ピクセルアート スタイルを使用しない最近の 3D ゲームのほとんどは、平均して 2048×2048 のテクスチャを使用し、より小さな表面にまたがるテクスチャの場合は 1024×1024 と 512×512 を使用します。

  • 3Dで物理ベースのマテリアルを扱う場合、特定のテクスチャマップの解像度を低くすることで、品質にあまり影響を与えずにメモリ使用量とファイル サイズを削減できます。これは低周波の詳細のみを備えたテクスチャ (雪のテクスチャの法線マップなど) に特に適しています。

3Dモデルの作成方法を制御できる場合は、次のヒントも検討する価値があります。

  • ほぼ対称的な3Dモデルを扱う場合、ミラー化されたUVを使用して有効なテクセル密度を2倍にすることができます。ただしこれを人間の顔に使用すると不自然に見える場合があります。

  • 低ポリゴンスタイルとプレーンカラーを使用して3Dモデルを操作する場合、テクスチャではなく頂点カラーを使用することでモデルの表面上の色を表すことができます。

参考

イメージは 実行時のファイルの読込と保存 を使用して、エクスポートされたプロジェクトからのものも含め、実行時に読み込んで保存できます。