イメージのインポート

なぜそれらをインポートするのですか?

Godot 3+ では、イメージファイルはネイティブリソースではなくなり、インポートする必要があります。その背景には、イメージファイルをインポートできる構成パラメータが大量に含まれることが理由です。

この小さなチュートリアルでは、これらのパラメータが何であるか、およびそれらを最大限に活用する方法について説明します。

テクスチャのインポート

Godotのデフォルトのアクションは、イメージをテクスチャとして読み込む方法です。テクスチャはビデオメモリに格納され、直接アクセスすることはできません。それはそれらを効率的に描く為です。

インポートオプションは豊富です:

../../../_images/image_import1.png

3Dの検出(Detect 3d)

このオプションを使用すると、3Dでテクスチャ(これはデフォルトとして2D用にインポートされます)が使用されていることをGodotに認識させることができます。この場合、設定が変更され、テクスチャフラグが3D(ミップマップ、フィルタ、および繰り返しが有効になり、圧縮がVRAMに変更されます)によりわかりやすくなります。テクスチャも自動的に再読み込みされます。

Supported image formats

Godot can import the following image formats:

  • BMP (.bmp)
  • DirectDraw Surface (.dds) - If mipmaps are present in the texture, they will be loaded directly. This can be used to achieve effects using custom mipmaps.
  • OpenEXR (.exr) - Supports HDR (highly recommended for panorama skies).
  • Radiance HDR (.hdr) - Supports HDR (highly recommended for panorama skies).
  • JPEG (.jpg, .jpeg) - Doesn't support transparency per the format's limitations.
  • PNG (.png) - Precision is limited to 8 bits per channel upon importing (no HDR images).
  • Truevision Targa (.tga)
  • SVG (.svg, .svgz) - SVGs are rasterized using NanoSVG when importing them. Support is limited; complex vectors may not render correctly. For complex vectors, rendering them to PNGs using Inkscape is often a better solution. This can be automated thanks to its command-line interface.
  • WebP (.webp)

注釈

If you've compiled the Godot editor from source with specific modules disabled, some formats may not be available.

圧縮

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

圧縮モード(Compress Mode)

  • VRAM Compression: This is the most common compression mode for 3D assets. Size on disk is reduced and video memory usage is also decreased considerably (usually by a factor between 4 and 6). This mode should be avoided for 2D as it exhibits noticeable artifacts.
  • Lossless Compression: This is the most common compression mode for 2D assets. It shows assets without any kind of artifacting, and disk compression is decent. It will use considerably more amount of video memory than VRAM Compression, though. This is also the recommended setting for pixel art.
  • Lossy Compression: This is a good choice for large 2D assets. It has some artifacts, but less than VRAM and the file size is several times lower compared to Lossless or Uncompressed. Video memory usage isn't decreased by this mode; it's the same as with Lossless Compression or Uncompressed.
  • Uncompressed: Only useful for formats that can't be compressed (such as raw float images).

In this table, each of the four options are described together with their advantages and disadvantages (good = best, bad = worst):

  圧縮なし ロスレス圧縮(PNG) 非可逆圧縮(WebP) VRAMを圧縮
説明 未加工のピクセルとして保存 PNG形式で保存 WebP形式で保存 Stored as S3TC/BC or PVRTC/ETC depending on platform
ディスク上のサイズ |悪い|大きい |普通|小さい |良い|非常に小さい |普通|小さい
メモリ使用量 |悪い|大きい |悪い|大きい |悪い|大きい |良い|小さい
パフォーマンス |普通|通常 |普通|通常 |普通|通常 |良い|高速
品質損失 |良い|なし |良い|なし |普通|わずか |悪い|中程度
読み込み時間 |普通|通常 |悪い|遅い |悪い|遅い |良い|高速

HDRモード(HDR Mode)

Godotは、高ダイナミックレンジテクスチャ(.HDRまたは.EXR)をサポートしています。これらは、Godot 2.xのキューブマップに代わる、高ダイナミックレンジの正距円筒(equirectangular)のパノラマスカイ(インターネットを検索すればたくさんあります)として非常に便利です。最近のPCはBC6H VRAM形式をサポートしていますが、まだサポートしていないものがたくさんあります。

テクスチャの種類に関してGodotに完全な互換性を確保する場合は、[RGBEを強制する]オプションを有効にします。

ノーマルマップ(Normal Map)

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

RGTC圧縮は、結果として得られるノーマルマップイメージに影響することに注意してください。これを考慮するには、ノーマルマップを使用するカスタム シェーダを調整する必要があります。

フラグ(Flags)

使用状況に応じて、イメージをテクスチャとして読み込むときに切り替えることができる設定が多数あります。

リピート(Repeat)

この設定は3Dで最も一般的に使用されるため、通常2Dでは無効になっています。 0,0~1,1の範囲を超えて「ループ」するUV座標を設定します。

リピートは、必要に応じてミラー (mirrored)モードに設定できます。

フィルタ(Filter)

テクスチャのピクセルが画面のピクセルより大きくなると、このオプションは線形補間を有効にします。その結果、より滑らかな(ブロックの少ない)テクスチャが得られます。この設定は2Dおよび3Dで一般的に使用できますが、ピクセルパーフェクト(テクスチャの画素と画面の画素が1対1)なゲームを作成する場合は通常無効になっています。

ミップマップ(Mipmaps)

ピクセルが画面よりも小さくなると、ミップマップが始まります。これにより、テクスチャを縮小する際の粒状効果を低減するのに役立ちます。古いハードウェア (GLES2、主にモバイル) では、ミップマップを使用する要件がいくつかあります:

  • テクスチャの幅と高さは 2 のべき乗でなければなりません(16、32、64、256など)
  • リピートを有効にする必要があります

携帯電話向けにゲームやアプリケーションを作成する際には、上記の注意を要し、完全な互換性を目指し、ミップマップが必要です。

3Dを実行する場合は、パフォーマンスも向上するので、ミップマップをオンにする必要があります(テクスチャの小さいバージョンは、遠くのオブジェクトに使用されます)。

異方性(Anisotropic)

テクスチャがビューとほぼ平行(床など)の場合、このオプションを使用すると、不鮮明さが軽減され、テクスチャがより詳細になります。

SRGB

Godotは、3Dレンダリング時に線形色空間を使用します。アルベドまたは詳細チャネルにマップされたテクスチャは、色が正しく表示されるために、このオプションをオンにする必要があります。 "Detect" モードに設定すると、アルベド チャネルで使用するとテクスチャがSRGBとしてマークされます。

プロセス(Process)

テクスチャとしてインポートする場合、いくつかの特別なプロセスを画像に適用できます。

アルファ境界線を修正する(Fix Alpha Border)

これにより、同じ周囲の色のピクセルが透明から非透明に移行します。 Photoshopなどから画像をエクスポートするときに、アウトライン効果を軽減するのに役立ちます。

../../../_images/fixedborder.png

特定の値が必要ない限り、既定のままにしておくことをお勧めします。

乗算済みアルファ(Premultiplied Alpha)

暗くなった境界線を修正する別の方法は、乗算済みアルファを使用することです。 このオプションを有効にすると、テクスチャはこのフォーマットに変換されます。 必要なキャンバスアイテムにPREMULT ALPHAブレンドモードを使用するマテリアルを作成する必要があることに注意してください。

HDR as sRGB

いくつかのHDRファイルには壊れたsRGBカラーデータが含まれています。そのようなファイルを使用しないことをお勧めしますが、最悪の場合、このオプションをオンに切り替えると正しく表示されるようになります。

色の反転

画像の色を反転します。これは、たとえば、外部プログラムによって生成された高さマップを Spatial Material で使用する深度マップに変換する場合に便利です。