ブログに戻る
チュートリアル

法線マップの規約: OpenGL vs DirectX の解説

法線マップが Unreal では反転しているのに Unity では問題ない理由 — 接線空間の Y 軸規約をわかりやすく解説し、具体的な修正方法を紹介します。

Admin2026年4月23日1 分で読めます11

法線マップを Unreal に読み込むと、表面が太陽が下から照らしているように見えます。同じファイルを Unity や Blender に読み込むと — 完璧に見えます。メッシュも同じ。テクスチャも同じ。何が起きているのでしょう?

2 つの業界、1 つの軸の不一致

法線マップは表面の方向を RGB チャンネルに保存します。赤 = X、緑 = Y、青 = Z。すべての PBR エンジンは 1 つの例外を除き、同じ方法でデコードします: Y の符号です。

OpenGL 規約 (Y+): より明るい緑チャンネルは表面が を向いていることを示します。Unity、Godot、Blender (Cycles と Eevee)、Substance Painter のデフォルトエクスポート、およびすべての WebGL ベースのエンジンで使用されています。

DirectX 規約 (Y−): より明るい緑は表面が を向いていることを意味します。Unreal Engine、レガシー Direct3D ツールチェーン、および一部の CryEngine/Xbox 時代のアセットで使用されています。

PNG 内の同じバイト。反対の物理的意味。

一目で識別する方法

法線マップ内の半球状のバンプ (ボタンやドーム) を見てください。OpenGL 規約では、バンプの下部は より暗い緑 になります。なぜなら表面が Y− に向かい、ライトから離れているからです。DirectX 規約では、下部は より明るい緑 です。

エンジン内でライティングが逆になっているように感じられる場合 — ハイライトが影になるべき場所にある場合 — 規約の不一致があります。

修正は 5 秒で完了

Unreal では、テクスチャインポートダイアログに Flip Green Channel チェックボックスがあります。これをオンにするとエンジンはサンプル時に G チャンネルを反転します。ソースを再度エクスポートする必要はありません。

Unity では、テクスチャタイプを Normal map に設定するとインポーターがすべてを処理します — Unity は OpenGL を想定していますが、ファイルが間違っているように見える場合は警告を表示します。Blender では、Separate Color → Invert G → Combine Color ノードチェーンを使用するか、Normal Map ノード内で DirectX スタイルの入力を直接選択してください。

そもそもなぜ 2 つの標準が存在するのか?

1990 年代に、OpenGL と DirectX は反対のテクスチャ座標空間を定義しました — OpenGL は Y が上に増加し、DirectX は Y が下に増加しました。法線マップが 2000 年代半ばに一般的になった際、各ツールチェーンは出力にその空間を組み込みました。確立されたパイプラインを反転させるのは高額なため、乖離は固着しました。

混乱なく法線マップを生成する

aukimi Normal Map Generator では、エクスポート時に規約を明示的に選択できます。ハイトマップの輝度に対して Sobel 勾配を実行し、(−dx·s, −dy·s, 1) を RGB にパックします — DirectX を選択した場合は Y が反転します。生成後に規約を切り替えて、何もアップロードせずに再ダウンロードできます。

内部的には式は同じです。唯一の違いは、緑チャンネルを書き込む前に Y 成分に適用する符号です。これを知っていれば、任意の画像エディタを使用して規約間でファイルを変換できます: PNG を開き、緑チャンネルを選択し、反転させ、保存します。これが Unreal の「Flip Green Channel」がしていることのすべてです。

クイックリファレンス

  • Unity、Godot、Blender、Substance Painter (デフォルト): OpenGL (Y+)。
  • Unreal Engine、レガシー Direct3D: DirectX (Y−)。
  • Unreal で間違って見える? インポート設定で Flip Green Channel を有効にしてください。
  • Unity で間違って見える? DirectX 規約ツールからエクスポートした可能性があります — 緑チャンネルを反転させるか再度エクスポートしてください。

規約を内在化すれば、修正は簡単です。最も難しい部分は最初にそれを認識することです。

#normal-map#3d#pbr#shaders#opengl#directx

この記事はいかがでしたか?

ShareHN

関連記事

industry

クリエイティブスタックが崩壊した:2026年4月下旬の1週間のAIツール

2026年4月27日から5月4日の間に、Adobe、Luma、Novi、fal、Figma、Canva、HeyGen、Anthropicが8日間ですべて同じ閾値を超えた。ここではどのようなものがリリースされたか、それが何を意味するのか、そしてそれをすべて統合しようとしているブラウザベースのクリエイティブスイートがどのような立場に置かれているのかについて説明します。

2026年5月4日記事を読む
industry

2026年のAIミュージックとSFX:インディーゲームオーディオで実際に機能するもの

3年前、インディーゲームのオーディオは、ロイヤリティフリーライブラリのライセンス(安価だが汎用的で、すべてのゲームが同じに聞こえる)か、作曲家の雇用(素晴らしいが高額)のどちらかでした。2026年、AIは出荷可能なスコアを生成します。どのツールが機能するのか、そしてヒューマン作曲家がまだ勝つ場所を説明します。

2026年5月2日記事を読む
industry

2026年のAIメッシュ生成:ゲームパイプラインで実際にシップするもの

Image-to-3Dは「不気味なデモ」から「インディープロジェクトでシップ」へ18ヶ月で進化しました。Tripo、Meshy、Rodin、Hyper3Dが本番環境で実際に何をするのか、そして3Dアーティストがモデルに勝つ場面はどこかを説明します。

2026年4月28日記事を読む