ゲームエフェクトデザイナーのブログ | A Real-Time VFX Artist's Blog

About Making Materials on UE, Making Tools with C#, etc

テクスチャのインポートについて

意外とテクスチャについての解説記事をほとんど見かけないので
アーティスト向けに、基本的なところだけここで解説しておきたいと思います。

 公式マニュアル:テクスチャ

テクスチャサイズについて


1 x 1 から 4096 x 4096 までをサポートすると公式マニュアルに書かれていますが、8192x8192も、またそれ以上の大きさのテクスチャもUE4には一応読み込めます。
(実際のサイズ制限はプラットフォームによって変わると思います)


2の累乗(2 , 4 , 8 , 16 , 32 , 64 , 128 , 256 , 512 , 1024 , 2048 ...)じゃなくてOKですが、2の累乗じゃない場合は、ミップマップが利用できなくなり、またそのためテクスチャストリーミングが行われなくなる制限があるようです。
テクスチャストリーミングは、テクスチャをミップマップレベルが高い(粗い)ものから表示して徐々に高精細にすることでロード時間を短縮しようとするもので、ミップマップが使えないとなると当然ストリーミングも使えない‥ということでしょうか。

 公式マニュアル:テクスチャのサポートと設定
 公式マニュアル:テクスチャのストリーミング

インポート可能な画像フォーマットについて


bmp , float , pcx , png , psd , tga , jpg , dds , hdr と公式に書かれています。

管理人おすすめはTGAPSDでしょうか。
PhotoshopからテクスチャをPSDで保存してそのまま読み込めるので、管理人はPSDをインポートすることが多いです。

インポートの際には注意点が3つあります。

まず、モードがグレースケールや32bit/チャンネルの場合インポートに失敗します。
(16bit/チャンネルはインポートできますが階調がかなり違ってしまいます)
なので、インポートするファイルを保存する際にはRGBカラー8bit/チャンネルになっていることを確認します(HDRフォーマットの場合はまた別です)。
import_faild1.jpg

次に、下図のように背景が透過された状態で保存する場合は、アルファチャンネルが存在すると透過情報がかち合ってインポートに失敗します。

▼カラーが透過状態  ▼加えてアルファチャンネルもある
touka1.jpg touka2.jpg

しかし、背景が透過された状態であるだけであればインポートできますが、透明な領域は白く塗りつぶされてしまい、透明部分が白味がかってしまいます。

▼UE4でのカラー  ▼自動生成されたα  ▼結果このように見える
touka3c.jpgtouka3a.jpgtouka3result.jpg

なので、PSDで保存する場合は背景を透過させないようにして、ちゃんとアルファチャンネルを用意します。
これはTGAなど他のアルファチャンネルを扱える形式でも同様だと思います。

ただし、PNGで保存する場合は話は変わります。
下図のように、自動的に透明部分を純粋なカラー値で埋めてくれるので、Photoshopと同じ結果になってくれます。

▼UE4でのカラー  ▼自動生成されたα  ▼結果このように見える

touka4c.jpgtouka4a.jpgtouka4result.jpg
なので、場合によってはPNGが楽な場合もあるでしょう。

そして最後にDDSをインポートする場合の注意点です。

UE4にインポートしたテクスチャは、使用用途や各種設定に応じてUE4内部で様々な圧縮フォーマットに変換するのが基本的なプロセスになります。
なので、元からDXT1やDXT5に圧縮したDDSはインポートに失敗します。
DDSをインポートしたい場合は、未圧縮の状態で用意する必要があります。

 公式マニュアル:テクスチャのインポートガイド

 
次は「テクスチャのプロパティについて」になります。