Jen S Abbott氏は6月4日(木)、自身のArtStationにてチュートリアル記事「How do you blend two normal maps in Unreal Engine 5.7?」を公開した。Unreal Engine 5.7のマテリアルエディタ上において、微細な凹凸と大きな形状の変化を表す2種類のノーマルマップを数学的に正確な手法でブレンドし、個別の強度コントロールを実装するワークフローを解説している。
マイクロとマクロの2層のノーマルマップを用いた質感表現
記事(動画)冒頭ではまず、必要なテクスチャの種類について解説。コンクリートの粒子や細かい隆起といった微細な表面を表すマイクロディテールのノーマルマップと、パネルの溝や大まかな面形状を表すマクロディテールのノーマルマップの2つを用意する。これらとBase ColorとRoughnessを組み合わせることにより、豊かで説得力のあるマテリアルの表面を構築する。
BlendAngleCorrectedNormalsノードによる正確な合成
2つのノーマルマップを組み合わせる際、ノード同士を単純に加算(Add)してしまうと、法線の方向が崩れて不自然なライティングやシェーディングのアーティファクトが生じる原因となる。Abbott氏は、Unreal Engine公式の推奨手法としてBlendAngleCorrectedNormalsノードの使用を挙げている。このノードを使用することで、マイクロノーマルをBase Normalに、マクロノーマルをAdditional Normalに接続し、それぞれのTangent Spaceにおける角度のちがいを補正しながら、数学的に正確なブレンドを実行できる。
ComponentMaskとAppendVectorを用いた強度の個別制御
2つのディテールをブレンドした後は、それぞれのノーマルマップの強度を個別に調整するためのコントロール基盤を構築する。まず、ComponentMaskノードを使用してノーマルマップのRGB情報からレッドとグリーンのチャンネルのみを抽出する。Z軸に相当するブルーのチャンネルには影響を与えないように分離したうえで、MultiplyノードとScalar Parameterを接続してX軸とY軸の強度をスケーリングする。その後、AppendVectorノードを用いて、定数1を持たせたブルーチャンネルの情報を再結合し、強度調整後のノーマルマップを正確に再構築する。
Normalizeノードによるベクトルの正規化とインスタンス化
ノーマルマップの強度を動的に変更する計算を行うことで、出力されるNormal Vectorの長さが変化し、ライティングの計算結果が破綻してしまう可能性がある。これを修正するため、ブレンド処理の直後にNormalizeノードを追加。このノードによって、計算で崩れたベクトルの長さ(強さ)を元の基準値1に揃える(正規化する)ことができるため、、あらゆる強度設定で正確な光の反射を実現できる。
最終的にこれらのパラメータをマテリアルインスタンスに公開し、ビューポート上でスライダ操作をしながらリアルタイムでマイクロ/マクロディテールを個別に調整できるようになっている。
■How do you blend two normal maps in Unreal Engine 5.7?(ArtStation)
https://www.artstation.com/blogs/jsabbott/V9q8K/how-do-you-blend-two-normal-maps-in-unreal-engine-57
CGWORLD関連情報
●UE5+Ultra Dynamic Skyによるグラウンドフォグのチュートリアル動画公開 基本設定から局地的な天候制御、ブラシペイントによる精密な配置まで
Aziel ArtsがUnreal Engine 5用のライティング&環境構築アセット「Ultra Dynamic Sky」を利用したグラウンドフォグの作成手順を解説する動画「Realistic Ground Fog in Unreal Engine 5 (Ultradynamic Sky Tutorial)」を公開。シーン全体に対するボリュメトリック フォグの基礎的な設定から、特定のエリアへの局所的な適用、さらにはブラシツールを用いたフォグのペイント配置まで、約22分にわたって網羅的に解説している。
https://cgworld.jp/flashnews/01-202605-UE5-RealFog.html
●Zibra AI、UE向けプラグイン「ZibraGDS」オープンベータ開始 独自圧縮技術とリアルタイムレンダリング技術により破壊や流体、キャラクターアニメーションなどのVFXを高速描画
Zibra AIがUnreal Engineでアニメーションジオメトリの圧縮とリアルタイムレンダリングを実現するプラグイン「ZibraGDS」のオープンベータ版を公開。独自の圧縮技術により、複雑な3Dモデルの動きを維持したまま、データサイズを劇的に削減しつつ高速に描写する。対応するUnreal Engineのバージョンは5.3〜5.7。
https://cgworld.jp/flashnews/01-202605-ZibraGDS.html
●UE5による日本の桜舞う風景環境制作のブレイクダウン動画 MegaPlants、Cine カメラ、パーティクル、ムービー レンダー キューなど活用、プロジェクトファイル無償配布
pinkpocketTVがYouTubeでブレイクダウン動画「Unreal Engine 5 Beginner Tutorial: Create a Cherry Blossom Environment」を公開。Unreal Engine 5.7を用いて、桜が舞う日本風の環境を構築し、シネマティックなアニメーションをつけてレンダリングするまでの実践的なワークフローが解説されている。また、本動画のプロジェクトファイル(アセットは含まれない)は同氏Patreonで無償配布。
https://cgworld.jp/flashnews/01-202604-UE5CherryBlossom.html