完全ガイド:Unreal EngineでのPBRテクスチャの使い方

Unreal Engineにテクスチャをインポートしたり作成したりしたいけれど、どこに何を接続すればいいかわからない…とお困りではありませんか?CGBOOKCASEによる解説をベースにしたPBRテクスチャ活用ガイドをご紹介します。
テクスチャのインポート
マテリアル用のテクスチャをコンテンツブラウザ(Content Browser)にドラッグ&ドロップするか、緑色のAdd/Importボタンを使用します。

テクスチャの設定
テクスチャをダブルクリックして設定を開きます。特に重要な設定項目が2つあります。圧縮設定(Compression Settings)とsRGB設定です。

圧縮設定(Compression Settings)
Unreal Engineは通常、適切な設定を自動で判別してくれます。ただし、念のため以下の設定になっているか確認してください:
- Base Color、AO、Roughness、Metallic:圧縮設定 Default(DX11ではDXT1/5、BC1/3)
- Normal Maps:圧縮設定 Normalmap(DX11ではDXT5、BC5)
sRGB
テクスチャにガンマ補正を適用するかどうかを設定します:
- 有効(ON):Base Color、場合によってはAO
- 無効(OFF):Roughness、Metallic、Normal
ℹ️ 詳細については、Unreal Engineの公式ドキュメントもあわせてご確認ください。
マテリアルの作成
コンテンツブラウザで右クリック → Materialを選択します。作成したマテリアルをダブルクリックすると、ノードエディタ(マテリアルエディタ)が開きます。
ノードの追加

右クリックから「TextureSample」を検索するか、Tキーを押しながら左クリックしてTextureSampleノードを追加します。サイドパネルの詳細設定からテクスチャを選択してください。

各マップの接続:
- Base Color:Base Color入力に接続します

- AO:AOとBase Colorの間にMultiplyノードを挟んで乗算します。強さを調整したい場合はLinearInterpolate (Lerp)ノードを使用できます。

- AOはAmbient Occlusion入力に直接接続することもできますが、効果が反映されるのはStatic/Stationaryライトのみです
- Roughness:Roughness入力に接続します。質感の微調整にはPowerノードを追加すると便利です。

- Normal:Normal入力に接続します。強度の調整にはFlattenNormalノードやOneMinusノードを使用します。

便利なヒント&ベストプラクティス
テクスチャサイズの調整(タイリング)
TextureCoordinatesノードを追加し、TextureSampleのUVs入力に接続します。UTilingとVTilingの数値を調整してタイリングサイズを変更できます。

複数のテクスチャを一括編集する
- 変更したいテクスチャをすべて選択します
- 右クリック → Asset Actions > Bulk Edit via Property Matrix を選択
- 右側のパネルでパラメータを一括編集します

マテリアルインスタンス(Material Instances)
シェーダーの再コンパイルを行うことなく、同じマテリアルのバリエーションを素早く作成できる非常に強力な機能です:
- マテリアルを右クリック → Create Material Instance を選択
- 作成されたインスタンスをダブルクリックして開き、パラメータを調整します
パラメータへの変換
インスタンス側で値を変更できるようにするには、元となるマテリアルでパラメータ化しておく必要があります:
- ノードを右クリック → Convert to Parameter を選択
- または、Scalar Parameter、Vector Parameter、TextureSampleParameter2Dノードを直接配置します
マテリアルインスタンスを活用することで、以下のメリットが得られます:
paragraph -->- 素早いバリエーション展開(例:色や粗さ/Roughnessの変更)
- パフォーマンスの向上(コンパイルが1回で済む)
- 動的な制御(ブループリントやC++経由)
テクスチャのパッキング
テクスチャの呼び出し(フェッチ)を最適化しましょう:
- R、G、Bチャンネルを使用して、複数のマップ(例:AO、Roughness、Metallic)を1つのファイルに統合します
- 例:R = AO、G = Roughness、B = Metallic
- 注意:これらの統合テクスチャには「Normalmap」圧縮設定を避けてください。アーティファクトが発生する原因になります。

