ゲームエフェクトデザイナーのブログ (新)

Houdini勉強開始。レポート記事とか色々。

テクスチャのプロパティについて

さて、UE4にテクスチャをインポートしただけではダメで使用用途に応じて適切な設定を行わないといけません。
また、圧縮フォーマットによって品質もかなり変わりますし、設定に応じてマテリアルでのノード構成を変えないといけない場面も出てきます。

まずはコンテンツブラウザ上でテクスチャをダブルクリックすると開くテクスチャエディタでの各種設定項目について解説します。

テクスチャエディタ


アーティストが知っておいた方が良い項目は赤線で示したあたりです。
texture_propaty1.jpg
 公式マニュアル:テクスチャエディタUI

設定の保存とテクスチャの再インポート


テクスチャの設定に変更を加えたら忘れず「保存」ボタンで保存しましょう。
また、インポート元のファイルのパスに変更が無ければ「Reimport」ボタンでテクスチャの再インポートが可能です。
 texture_propaty2a.jpgtexture_propaty2b.jpg

テクスチャの各チャンネルや最終的な見た目の確認


表示」メニューから各チャンネルの情報を確認できます。
アルファにもチェックを入れて背景をチェッカー模様にすることで、テクスチャの透過具合を確認することができます。
texture_propaty4.jpg

詳細パネル上部のテクスチャ情報


texture_propaty3.jpg
詳細パネル上部にはテクスチャの主な設定の情報が表示されます。
メソッド」はテクスチャストリーミングの設定です。
フォーマット」でDXT1やDXT5、BC4といった圧縮形式が分かります。

 

Level Of Detail の設定


texture_propaty5a.jpg
● Mip Gen Settings
ミップマップの適用のされ方をプルダウンメニューから選びます。
内容については下記公式のマニュアルを参照してみてください。
管理人はまだ各設定でのレベル上での見え方などちゃんと検証してません。
ただしパーティクルにミップマップが適用されて困るような場面もあり、ミップマップを切りたい場合は「NoMipmaps」に設定します。
※エディタ上での確認方法やNoMipmapsにする場面について最後に補足しています

● LOD Group
LODの設定のプリセットといった感じのようです。
パーティクル用のテクスチャは「Effects」が適切なのでしょうか?
各グループの内部での設定内容はこちらに記載されています。
ミップマップを切りたい時以外、各種設定について良く分からないうちはデフォルト設定でいいのかな?とは思います。

 公式マニュアルテクスチャのプロパティ

Texture の設定


texture_propaty5b.jpg
● Source File Path
インポート元のファイルのパスです。
なぜかテクスチャエディタではグレーアウトされて直接書き換えることができません。
一応コピー&ペーストが可能です(バージョンアップで修正されることに期待)。

● sRGB
テクスチャをガンマ補正するかどうかの項目のようですが、基本的にチェックを入れておかないとテクスチャの明るさが変わってしまいます。
ただし圧縮フォーマットによってはチェックを入れることができないため、注意が必要です。

● X-axis Tilling Method と Y-axis Tilling Method
テクスチャ座標(UV)のアドレッシングの設定になります。
エッジにゴミを出さないようClumpにしたり1/2や1/4サイズのテクスチャをミラータイリングしたい場合にMirrorに設定しますが、特に意図が無い場合はWrapで良いと思います。
(タイリングしたかったりUVスクロールさせたい時はClampにしてはいけません)

● Never Stream
ONにするとテクスチャストリーミングをしません。
ゲーム実行中にテクスチャを読み込むのがテクスチャストリーミングで、ロードを速くする代わりにテクスチャが粗い状態から徐々に綺麗になるアレです。綺麗なテクスチャを後から読んでいる訳です。
しかしエフェクトは突発的に出る上に画面近くで粗いテクスチャが表示されると困りますよね。なのでNever Streamに設定するとストリームせず最適なMipレベルのテクスチャが表示されます。これはつまり全てのMipレベルを事前にロードするということであり、そもそも旧来の方法でもあります。

● Filter
テクスチャのフィルタリングの設定になります。
画面に表示した際にピクセルをどう補間するかの種類です。
Nearest」はPhotoshopでもお馴染、ニアレストネイバー方式ですが、ドット絵やフォント、HUDのパーツなど絵柄がボケると困る場合に設定します。

▼デフォルト設定   ▼Nearestに設定
dot_texture2.jpgdot_texture3.jpg
 公式マニュアルテクスチャのプロパティ
 公式マニュアル:テクスチャのストリーミング

Compression の設定


texture_propaty5c.jpg
● Comress Without Alpha
アルファチャンネル情報を破棄するかどうかです。
アルファチャンネルが無い、または必要ない場合はチェックを入れることで、メモリを節約できるようです。
一応DXT1にも2値のアルファ情報を保持することができるようですが、それが不必要ならチェックを入れた方が良かったりするのかも知れません。

● Compression Settings
圧縮フォーマットの種類を設定します。
エフェクトアーティストにとって一番重要な設定はこちらになります。
圧縮フォーマットを何にするかによってテクスチャの品質がかなり変わります。
例えば、解像度が低いテクスチャでは色の境がハッキリとした絵柄の場合、4x4pixelのブロック単位で色を決めるDXT1やDXT5は不向きだったりします。

▼DXT1       ▼TC Editor Icon
dot_texture3.jpgdot_texture4.jpg

 公式マニュアル:テクスチャのプロパティ

ミップマップレベルの確認


エディタ上部の「ミップマップレベ」というチェックボックスにチェックを入れて入力ボックスの値を変えると、その場でミップマップレベルをプレビューできます。
詳細パネルの上部の「Displayed」でサイズも確認できます。
mipmap_level0.jpg
▼ミップマップレベル:2(16x16 pixel)
mipmap_level2.jpg
▼ミップマップレベル:4(4x4 pixel)
mipmap_level4.jpg
▼ミップマップレベル:6(1x1 pixel)
mipmap_level6.jpg

不具合だと思いますが、マテリアルでTexcoordinateノードでUVのタイリング数を大きくしてパーティクルで表示すると、カメラから近くてもミップレベルが最大になってしまい、1色で塗りつぶされた■で表示されてしまったりします。
その際にNoMipmapにすることで一応の回避は可能です。


次は「テクスチャのフォーマットについて」になります。